Chapitre 5
description
Transcript of Chapitre 5
Cours VB 2007/2008 1
Chapitre 5
Introduction aux Bases de Données
Relationnelles
2 Cours VB – ISG 2007/2008
Introduction
Une Base de Données est un ensemble de données mémorisé par un ordinateur, utilisé par de nombreuses personnes et possédant une organisation régie par un modèle de données.
Les BD possèdent une organisation donc une structure régie par un modèle
A. Flory, Bases de données : conception et réalisation, Editions Economica, Paris 1982
Remarque: Les données stockées dans une base sont indépendantes des programmes informatiques qui les utilisent ainsi que du type de mémoire auxiliaire sur laquelle elles sont stockées.
3 Cours VB – ISG 2007/2008
Exemple
Système de Gestion de Bases de Données (SGBD)
Base de données sur la clientèle
Traitement des opérations des clients
Programmesde comptes
chèques
Programmesde comptes d’épargne
Programmesde prêts à
tempérament
User
4 Cours VB – ISG 2007/2008
Une BD doit satisfaire cinq critères principaux: Bonne représentation du monde réel Non-redondance de l’information Indépendance des données par rapport aux traitements Sécurité et confidentialité des données Performance des applications et des requêtes
La conception d’une BD suppose une démarche composées de plusieurs étapes
Déterminer et identifier les problèmes Proposer des solutions possibles Modéliser le futur système Mettre en œuvre une solution Tester la solution proposée Maintenir et faire évoluer le système
Critères et Conception d'une BD
5 Cours VB – ISG 2007/2008
Les Systèmes de Gestion de Bases de Données (SGBD)
Un SGBD est un outil logiciel qui permet, selon un modèle de BD particulier, de gérer les données en offrant les fonctionnalités suivantes :
un langage de définition des données (LDD), c'est-à-dire un langage de définition du modèle (organisation physique)
un langage de manipulation des données (LMD) pour ajouter, modifier, retrouver, supprimer des données;
la gestion des règles assurant l'intégrité des données; la gestion de la confidentialité des données; la gestion des conflits d'accès simultanés aux données; la sécurité de fonctionnement, avec des outils de sauvegardes et
reprises de la base. L'administrateur de la base fera appel à toutes ces fonctionnalités du
SGBD. L'utilisateur final n'accédera généralement qu'au LMD
6 Cours VB – ISG 2007/2008
Le modèle relationnel a été défini par Codd dans les années 70 Un grand succès par rapport à ses prédécesseurs de type "hiérarchique", "réseau" etc. grâce à :
La simplicité de la structure des données, La simplicité des opérateurs, L’indépendance entre les données et les applications.
Exemples de SGBDR commercialisés : ACCESS, DB2, ORACLE, INGRES, SYBASE, INFORMIX, PARADOX, SQL Server, etc.
Base de données relationnelles
7 Cours VB – ISG 2007/2008
I. Modèle conceptuel des Données (MCD)
La modélisation des données sur le plan conceptuel, aboutit à une représentation schématique de l’ensemble des données et de leurs liens, au sein du domaine étudié.
Le MCD traduit les choix ou contraintes de gestion fondamentaux exprimés à travers les concepts du modèle E/A (Entité-Association), traduction de E/R (Entity-Relationship) qui est un modèle conceptuel conçu dans les années 1970.
Entité 1 Entité 2Association
8 Cours VB – ISG 2007/2008
I.1 Entité Une entité correspond à un objet abstrait ou concret
que l’on perçoit de la réalité. Une entité est dotée d’une existence propre, ayant un
intérêt pour l’organisme et facilement identifiable. Les entités permettent de décrire
Des objets tangibles : employés, produits,.. Des objets abstraits : qualité, expertise,
calendrier.. Transactionnels : contrat, commande,..
Elle est totalement définie par : Son nom Son identifiant (d’une façon unique) Ses attributs (au moins deux)
CLIENTNumClientNom Prénom Adresse Téléphone Solde
identifiantNom de l'entité
attributs
9 Cours VB – ISG 2007/2008
Identifiant: C'est l'attribut ou l'ensemble d'attributs qui identifient un et un seul enregistrement.
Un identifiant peut être simple (un seul attribut) (exemple: NumClient) ou composée (plusieurs attributs) (exemple: NumVoiture + NumSérie)
Exemples : Numclient est un identifiant de l’entité
CLIENT: Il permet d’identifier un client d’une manière unique.2 clients différents ne peuvent pas avoir le même Numclient
L’attribut Nom ne peut pas être un identifiant de l’entité CLIENT 2 clients peuvent avoir le même nom Sellami Mohamed – Sellami Ali
I.2 Identifiant
10 Cours VB – ISG 2007/2008
1.3 Attribut & Occurence
Un attribut (ou propriété) est le plus petit élément d’information manipulé. C’est une propriété caractéristique de l’entité.
Il associe à chaque entité une valeur appartenant à un domaine. A chaque attribut est associé un et un seul domaine.
Exemple: Le domaine de l'attribut couleur (rouge, blanc, bleu, noir, vert) Une occurrence d’une entité est l’ensemble des valeurs des attributs qui la
caractérisent. Pour chaque entité il existe une ou plusieurs occurrences. Exemple: Occurrences de l'entité CLIENT
NumClient Nom Prénom Adresse Téléphone Solde
133 Sellami Mohamed Z.I Manouba 71 645 765 1.200,000134 Nabli Samir Z.I Ben Arous 71 380 476 2.800,000
11 Cours VB – ISG 2007/2008
I.4 Association
Une association est un lien ou relation entre deux ou plusieurs entités.
Exemple: Une commande contient des articles.
Il est possible de caractériser l’association par des attributs
Exemple : l’association Contenir peut être porteuse de données concernant la quantité du produit commandé.
On distingue : les associations n-aires qui relient plus de deux
entités. les association binaires qui ne relient que deux
entités.
CommandeNumCom…
ProduitsRefProd…
ContenirQt
12 Cours VB – ISG 2007/2008
La cardinalité exprime le nombre minimum et maximum d’occurrences d’entités participatives à l’association
(0,*) ou (1,*) : cardinalité minimale Une cardinalité min de 0 : l’entité peut avoir
des occurrences qui ne participent pas à l’association – participation facultative
Une cardinalité min de 1 : toute occurrence de l’entité doit obligatoirement participer à une occurrence de l’association – participation obligatoire
(*,1) ou (*,n) : cardinalité maximale
Cardinalité
Nom de l’association Attribut de l’association
ProduitNumprod…
CommandeNumCli…
Contenir Qt
(1,n) (0,n)
I.5 Cardinalité (1)
13 Cours VB – ISG 2007/2008
?Facture
NumFact…
ClientNumCli…
Une facture est attribuée à un et un seul client (min, max) : (1,1) Un client peut ne pas avoir de facture Un client peut avoir plusieurs factures (min,max) : (0,n)
Avoir
I.5 Cardinalité (2)
Contrainte d’intégrité fonctionnelle (CIF) est une association particulière dont la cardinalité présente les valeurs 0,1 ou 1,1 entre une association et une entité.
[un à plusieurs] ou[un à un]
FactureNumFact…
ClientNumCli…
Avoir(1,1)(0,n) CIF
14 Cours VB – ISG 2007/2008
Contrainte d’intégrité multivaluée (CIM) [plusieurs à plusieurs] sont toutes associations que ne présentent pas les cardinalités 0,1 ou 1,1 entre une association et une entité
QtContenir
ProduitRefProd…
CommandeNumCommande…
(1,n) (0,n)CIM
I.5 Cardinalité (3)
Une commande contient au moins un produit Une commande peut contenir plusieurs produits (min,max) : (1,n) Un produit peut ne pas être commandé Un produit peut être commandé dans plusieurs
commandes (min, max) : (0,n)
?Produit
Numprod…
CommandeNumCli…
Contenir Qt
15 Cours VB – ISG 2007/2008
II. Passage du modèle E/Aau modèle Relationnel (1)
On dispose du diagramme de modélisation E/A des données, il faut implanter la structure obtenue en machine sous forme d'un modèle relationnel.
Nous allons donc transformer notre structure du niveau conceptuel « le diagramme E/A » sous une forme relationnelle « schéma relationnel » ou « modèle logique » au niveau logique.
Ce Passage se fait à l’aide de règles de passage …
16 Cours VB – ISG 2007/2008
Relation 1Clé primaire 1
Relation 2Clé primaire 2
# Clé étrangère 1
Règle 2
CIFAssociation
Entité 1Identifiant 1
Entité 2Identifiant 2 Forte
0 ou 1,n
Faible0 ou 1,1
Règle 1: Toute entité se traduit par une table relationnelle (avec les même attributs) t.q l'identifiant devient la clé primaire de la table
EntitéIdentifiant
RelationClé primaire
Règle 1
II. Passage du modèle E/Aau modèle Relationnel (2)
Règle 2 : Les CIF non porteuses de données disparaissent mais le lien est conservé. La clé primaire de la relation initialement de type (*,n) devient une clé étrangère dans la deuxième relation.
17 Cours VB – ISG 2007/2008
Règle 3 : Les CIM se transforment en relation. La clé de la relation est formée des
identifiants des entités.
II. Passage du modèle E/Aau modèle Relationnel (3)
Association
Entité 1Identifiant 1
Entité 2Identifiant 2 0 ou 1,n 0 ou 1,n
CIM
Relation 1Clé primaire 1
Relation 2Clé primaire 2
Règle 3
Relation 3# Clé 1# Clé 2
18 Cours VB – ISG 2007/2008
Règle 4 : Toute association porteuse de données se
transforme en relation quelque soit les cardinalités des liens.
La clé de la relation est formée des identifiants des entités.
II. Passage du modèle E/Aau modèle Relationnel (4)
AssociationAttribut 1Attribut 2
Règle 4
Entité 1Identifiant 1
Entité 2Identifiant 2
Relation 1Clé primaire 1
Relation 2Clé primaire 2
Relation 3# Clé 1# Clé 2 Attribut 1Attribut 2
19 Cours VB – ISG 2007/2008
Exemple
FactureNumFact…
ClientNumCli….
Avoir(1,1)(0,n) CIF
ProduitRefProd…
CommandeNumCommande…
(1,n) (0,n)CIM
Contenir Qt
Passer
(0,n)
(1,1)
CIF
20 Cours VB – ISG 2007/2008
Exemple
FactureNumFactNumCli…
ClientNumCli…
ProduitRefProd…
CommandeNumCommNumCli…
ContenirNumCommRefProdQt
21 Cours VB – ISG 2007/2008
Travail à faire
Gestion de vol:Acteurs: Avions, Vol, Voyageur,…
Gestion de bibliothèqueActeurs: Livres, Auteurs, Étudiants, Professeurs,…
Gestion de la coupe d'AfriqueActeurs: Équipes, Joueurs, Arbitres, Matchs, Entraîneurs, Billets…
22 Cours VB – ISG 2007/2008
III. Requêtes
Requête = liste de conditions pour la sélection de certains enregistrements
Poser une requête = avoir une vue particulière de la BD
Langage algébrique : Collection d'opérations qui agissent sur des tables et produisent des tables en résultats.
Opérateurs algébriques
Opérateurs relationnels SélectionJointureProjection
Opérateurs ensemblistes UnionIntersectionDifférenceProduit cartésien
23 Cours VB – ISG 2007/2008
L'union est appliquée sur deux tables de même structure R1 et R2 pour obtenir une table R3 contenant l' ensemble des enregistrements de R1 et R2.
III.1 Opérateurs Ensemblistes : a- Union ()
Exemple Soient les deux tables Voitures1 et Voitures2. Voitures = Voitures1 Voitures2
Voitures1 NV Marque Série Puissance1240 FORD 84 51456 BMW 80 7
Voitures2 NV Marque Série Puissance1456 BMW 80 71364 GOLF 86 61845 FORD 84 5
Voitures NV Marque Série Puissance1240 FORD 84 51456 BMW 80 71364 GOLF 86 61845 FORD 84 5
24 Cours VB – ISG 2007/2008
L'intersection est appliquée sur deux tables de même structure R1 et R2 pour obtenir une table R3 contenant l'ensemble des enregistrements appartenant à la fois à R1 et R2.
III.1 Opérateurs Ensemblistes : b- Intersection()
Exemple: Soient les deux tables Voitures1 et Voitures2. Voitures = Voitures1 Voitures2
Voitures1 NV Marque Série Puissance1240 FORD 84 51456 BMW 80 7
Voitures2 NV Marque Série Puissance1456 BMW 80 71364 GOLF 86 61845 FORD 84 5
Voitures NV Marque Série Puissance1456 BMW 80 7
25 Cours VB – ISG 2007/2008
La différence est appliquée sur deux tables de même structure R1 et R2 pour obtenir une table R3Contenant l'ensemble des tuples appartenant à R1 et n'appartenant pas à R2.
III.1 Opérateurs Ensemblistes : c- Différence (-)
Exemple: Soient les deux tables Voitures1 et Voitures2. Voitures = Voitures1 - Voitures2
Voitures1 NV Marque SériePuissance
1240 FORD 84 51456 BMW 80 7
Voitures2 NV Marque SériePuissance
1456 BMW 80 71364 GOLF 86 61845 FORD 84 5
Voitures NV Marque Série Puissance1240 FORD 84 5
26 Cours VB – ISG 2007/2008
Le produit cartésien est appliqué sur deux tables R1 et R2 n'ayant pas nécessairement la même structure pour obtenir une relation R3 composée de l'ensemble des enregistrements obtenus suite à toutes les combinaisons des enregistrements de R1 et R2
III.1 Opérateurs Ensemblistes: d- Produit cartésien ()
Exemple: Soient les deux tables Voitures1 et Voitures2. Voitures = Voitures1 Voitures2Voitures1 Marque Modèle
FORD élanceFORD flair
Voitures2 Puissance54
Voitures Marque Modèle PuissanceFORD élance 5FORD élance 4FORD flair 5FORD flair 4
27 Cours VB – ISG 2007/2008
La sélection est une opération qui produit une nouvelle table en enlevant des enregistrements à la table de départ.
III.2 Opérateurs Relationnels: a- Sélection ()
(())
Exemple: Quels sont les prêts dont le taux est >= à 14% dans la relation prêt :
Relation PrêtN°Prêt Nom TauxIntérêt Montant150 AMEUR 13 10 000161 BEN SALAH 13 5 000162 DRIDI 15 2 000167 FARHAT 14 20 000171 AMEUR 13,5 15 000
Relation résultatN°Prêt Nom TauxIntérêt Montant162 DRIDI 15 2 000167 FARHAT 14 20 000
28 Cours VB – ISG 2007/2008
La projection est une opération qui produit une nouvelle table en enlevant des attributs à la table de départ.
III.2 Opérateurs Relationnels: b- Projection ()
(())
Exemple: Soit la nouvelle relation TI (N°Prêt, Nom, TauxIntérêt) crée à partir de la relation Prêt. Relation Prêt
N°Prêt Nom TauxIntérêt (%) Montant150 AMEUR 13 10 000161 BEN SALAH 13 5 000162 DRIDI 15 2 000167 FARHAT 14 20 000171 AMEUR 13,5 15 000
Relation TI N°Prêt Nom TauxIntérêt (%)150 AMEUR 13161 BEN SALAH 13162 DRIDI 15167 FARHAT 14171 AMEUR 13,5
29 Cours VB – ISG 2007/2008
La jointure consiste à rapprocher selon une condition les enregistrements de deux tables R1 et R2 pour former une table R3. R1 et R2 n'ayant pas nécessairement la même structure. Chaque enregistrement dans R3 sera le résultat de la fusion d'un enregistrement de R1 et d'un enregistrement de R2 vérifiant la condition de rapprochement.Remarque : Si les tables R1 et R2 n'ont pas d'attributs en commun, la jointure sera assimilée à un produit cartésien.
III.3 Opérateurs Relationnels: c- Jointure ()
A B
Voiture
Marque ModèleFORD éléganceFORD flair
Type Puissanceélégance 5élégance 4
Marque Modèle PuissanceFORD élégance 5FORD élégance 4
Exemple
30 Cours VB – ISG 2007/2008
Les SGBD qui présentent les données sous la forme de relations (ou tables) proposent un langage de requête dénommé SQL (Structured Query Language).
SQL est un langage unique qui permet de décrire, de manipuler, de contrôler l'accès et d’interroger les bases de données relationnelles.
IV. Le langage SQL
31 Cours VB – ISG 2007/2008
IV. Le langage SQL
SELECT [DISTINCT] {* | expr [AS alias], ... }FROM table [alias], ...[WHERE { conditions | sous conditions} ][GROUP BY expr, ...] [HAVING conditions][ORDER BY {expr | num}{ASC | DESC}, ...];
SELECT Précise les colonnes qui vont apparaître dans la réponseFROM Précise la (ou les) table intervenant dans l'interrogation
WHERE
Précise les conditions à appliquer sur les lignes. Onpeut trouver :- Des comparateurs : =, >, <, >=, <=,<>- Des opérateurs logiques : AND, OR, NOT- Les prédicats : IN, LIKE, NULL, ALL, SOME, ANY,
EXISTS...GROUP BY Précise la (ou les) colonne de regroupement
HAVING Précise la (ou les) conditions associées à unregroupement
ORDER BYPrécise l'ordre dans lequel vont apparaître les lignes de
la réponse :- ASC : En ordre ascendant (par défaut)- DESC: En ordre descendant
32 Cours VB – ISG 2007/2008
Choisit le nom des colonnes de la (ou des) table(s) que l'on souhaite voir apparaître dans la réponse.
Les colonnes sont données après la clause SELECT (* signifie tous).
La ou les table(s) (ou relations) sont indiquées après la clause FROM.
IV.1 Projection
ClientNom Adresse Localité Compte
AMEURBEN SALAHMRABETKRAIEMLABIDICHAOUACHIGAFSIJELALIROUISSI
23, a. Carthage25, r. du Caire112, r. d’Athène5, a. de Madrid180, r. de Rome3, a. des Roses14, r. de l’Eté72, r. de la Gare65, r. Lafayette
CarthageTunisArianaTunisTunisLa MarsaCarthageArianaTunis
125.000-230.000
0.0000.000
72.000-258.000870.000320.000
35.000
Catégorie
111122333
NoCli
123456789
SELECT NoCli, Nom, Localité FROM Client
ClientNom Localité
AMEURBEN SALAHMRABETKRAIEMLABIDICHAOUACHIGAFSIJELALIROUISSI
CarthageTunisArianaTunisTunisLa MarsaCarthageArianaTunis
NoCli
123456789
RESULTAT
33 Cours VB – ISG 2007/2008
IV.2 Sélection Sélectionne des lignes (n-uplets, tuples)
d'une (ou plusieurs) table(s) qui satisfont certaines conditions.
La ou les conditions sont indiquées après la clause WHERE (on peut avoir plusieurs conditions séparées par des opérateurs logiques (and, or,…).
ClientNom Adresse Localité Compte
AMEURBEN SALAHMRABETKRAIEMLABIDICHAOUACHIGAFSIJELALIROUISSI
23, a. Carthage25, r. du Caire112, r. d’Athène5, a. de Madrid180, r. de Rome3, a. des Roses14, r. de l’Eté72, r. de la Gare65, r. Lafayette
CarthageTunisArianaTunisTunisLa MarsaCarthageArianaTunis
125.000-230.000
0.0000.000
72.000-258.000870.000320.000
35.000
Catégorie
111122333
NoCli
123456789
SELECT *FROM ClientWHERE Localité="Ariana"
Nom Adresse Localité Compte
MRABETJELALI
112, r. d’Athène72, r. de la Gare
ArianaAriana
0.000320.000
Catégorie
13
NoCli
38
RESULTAT
34 Cours VB – ISG 2007/2008
IV.3 Projection & Sélection
ClientNom
MRABETJELALI
NoCli
38
ClientNom Adresse Localité Compte
AMEURBEN SALAHMRABETKRAIEMLABIDICHAOUACHIGAFSIJELALIROUISSI
23, a. Carthage25, r. du Caire112, r. d’Athène5, a. de Madrid180, r. de Rome3, a. des Roses14, r. de l’Eté72, r. de la Gare65, r. Lafayette
CarthageTunisArianaTunisTunisLa MarsaCarthageArianaTunis
125.000-230.000
0.0000.000
72.000-258.000870.000320.00035.000
Catégorie
111122333
NoCli
123456789
SELECT NoCli, NomFROM ClientWHERE Localité="Ariana"
RESULTAT
35 Cours VB – ISG 2007/2008
IV.4 Jointure
SELECT Commande.NoCom, Client.NoCli, Nom, Adresse, DateFROM Commande, ClientWHERE Commande.NoCli = Client.NoCli
ClientNom Adresse Localité Compte
AMEURBEN SALAHMRABETKRAIEMLABIDICHAOUACHIGAFSIJELALIROUISSI
23, a. Carthage25, r. du Caire112, r. d’Athène5, a. de Madrid180, r. de Rome3, a. des Roses14, r. de l’Eté72, r. de la Gare65, r. Lafayette
CarthageTunisArianaTunisTunisLa MarsaCarthageArianaTunis
125.000-230.000
0.0000.000
72.000-258.000870.000320.000
35.000
Catégorie
111122333
NoCli
123456789
Commande#NoCli Date
984592321
09/09/9907/12/9903/01/0005/04/0012/12/0015/02/0109/07/0116/04/0112/04/02
NoCom
100101102103104105106107108
Nom
AMEURBEN SALAHBEN SALAHMRABETKRAIEMLABIDIJELALIROUISSIIROUISSII
NoCli
122345899
NoCom
108105107106102103101100104
Adresse
23, a. Carthage25, r. du Caire25, r. du Caire112, r. d’Athène5, a. de Madrid180, r. de Rome72, r. de la Gare65, r. Lafayette65, r. Lafayette
Date
12/04/0215/02/0116/04/01 09/07/0103/01/0005/04/0007/12/9909/09/9912/12/00
RESULTAT