Vous êtes sur la page 1sur 21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Cours de Bases de Donnees


Dana Torres Luis Gonzalez SaraTassini 9.30-11.00 Introduction +Modelisation conceptuel + EX n1 11.00 Pause 11.30- 12.30 Model logique relationnelle + EX2
jeudi 10 Avril

13.30 - 15.30 Model physique, le langage SQL 15.30 16.00 -17.30 Prsentation de MyAdmin

vendredi 11 Avril

9.00-11.00 Introduction PHP, Mysql 11.00 Pause 11.30- 12.30 Exercices 13.30 - 16.00 Prparation du Projet Bibliographie

LES BASES DE DONNES


Dfinition : Une base de donnes (BD) est un ensemble de donnes mmorises sur des supports accessibles par un ordinateur pour satisfaire simultanment plusieurs utilisateurs de faon slective et en temps trs court. Elles constituent le cur du systme d information. Il existe 4 types de bases de donnes :

. BD Hirarchiques : les plus anciennes fondes sur une modlisation arborescente des donnes. . BD Relationnelles : organisation des donnes sous forme de tables et exploitation l aide d un langage
dclaratif (ex: Oracle, mySQL, Access).

. BD Dductives : organisation de donnes sous forme de table et exploitation l aide d un langage


logique.

. BD Objets : organisation des donnes sous forme d instances de classes hirarchises qui possdent leur
propres mthodes d exploitation. Dans les lignes qui suivent nous aborderons la conception et la mise en place de bases de donnes relationnelles.

CONCEPTION DES BASES DE DONNEES RELATIONNELLES


Les BD constituent le cur du systme d information. La conception de ces bases est la tche la plus ardue du processus de dveloppement du systme d information. Les mthodes de conception prconisent une dmarche en tapes et font appel des mod les pour reprsenter les objets qui composent les systmes d information, les relations existantes entre ces objets ainsi que les r gles sous-jacentes. La modlisation se ralise en trois tapes principales qui correspondent trois niveaux d abstraction diffrents :

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

1/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

I. Niveau conceptuel : reprsente le contenu de la base en termes conceptuels, indpendamment de toute considration informatique. II. Niveau logique relationnelle : rsulte de la traduction du schma conceptuel en un schma propre un type de BD. III. Niveau physique : est utilis pour dcrire les mthodes d organisation et d accs aux donnes de la base.

I.

Modlisation conceptuel

La modlisation est une tape fondamentale de la conception de la BD dans la mesure o, d une part, on y dtermine le contenu de la BD et, d autre part, on y dfinit la nature des relations entre les concepts principaux. Les lments de base du modle ER (Entit-Relation)ou E-A (Entit -Association)

. . . .

Les entits Les attributs Type de relation : cardinalits L identifiant

. Entit : dfinit comme un objet pouvant tre identifie distinctement.


Il existe deux catgories d entits : - Entits rgulires : son existence ne dpend pas de l existence d une autre entit. - Entits faibles : son existence dpend de l existence d une autre entit. Ex : l entit CONTRAT n existe que si l entit CLIENT correspondante est prsente. Figure N 1 : LES ENTITES

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

2/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

. Attributs : caractristiques ou proprits des entits.


Un attribut peut tre obligatoire ou facultatif et avoir un domaine de valeurs. Figure N 2 : LES ATTRIBUTS

. Les relations :

reprsentent les liens existants entre les entits.

Contrairement aux entits, les relations n ont pas de relations propres. Les relations sont caractrises, comme les entits, par un nom et ventuellement des attributs. Cardinalit : la description complte d une relation ncessite la dfinition prcise de la participation des entits. La cardinalit est le nombre de participation d une entit une relation.

Cardinalit un un : si et seulement si un employ ne peut tre directeur que dans un seul dpartement et un dpartement n a qu un seul employ comme directeur. Figure N 3 : CARDINALITE UN UN

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

3/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Cardinalit un plusieurs : un dpartement peut occuper plusieurs employs qui ralisent diffrentes fonctions mais chaque employ ne fait partie que d un seul dpartement. Figure N 4 : CARDINALITE UN PLUSIEURS

Cardinalit plusieurs plusieurs : tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htmun type de produit peut tre fabriqu en plusieurs usines et une usine

4/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Cardinalit plusieurs plusieurs : un type de produit peut tre fabriqu en plusieurs usines et une usine donne peut fabriquer plusieurs types de produits. Figure N 5 : CARDINALITE PLUSIEURS PLUSIEURS

Les cardinalits prsentes ci-dessus sont appeles cardinalit s maximales dans la mesure o elles reprsentent le nombre maximum de participations d une entit une relation. En revanche, la cardinalit minimale est le nombre minimal de participations d une entit une relation. La cardinalit minimale peut tre 0 ou 1. Les cardinalits maximales et minimales traduisent les contraintes propres aux entits et relations. Dans un schma conceptuel, elles sont reprsentes comme suit : 0-1 1-1 0-N 1-N aucune ou une seule une et une seule aucune ou plusieurs une ou plusieurs

Figure N 6 : CARDINALITES MINIMALES ET MAXIMALES

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

5/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

. L identifiant : parmi tous les attributs de l entit, l identifiant est un attribut ou un ensemble d attributs
permettant de dterminer une et une seule entit l intrieur de l ensemble. Graphiquement les identifiants sont les attributs souligns. L entit faible aura un identifiant compos de l identifiant de l entit dont elle dpend et d un autre attribut.

Figure N 7: LES IDENTIFIANTS

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

6/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Une situation modliser peut avoir plusieurs schmas diffrents, chaque modle prsentant des avantages et des inconvnients. Pour mesurer la qualit d une modlisation ER il existe plusieurs critres utiliser de manire combine : L expressivit : traduit la richesse smantique du schma. Peut tre caractrise par exemple par le nombre de concepts et/ou contraintes exprims dans le tableau ; La minimalit : tend privilgier les schmas avec un nombre de redondances minimales ; La lisibilit : consiste valuer la reprsentation graphique proprement dite ; La simplicit : privilgie les schmas contenant un nombre de concepts minimum. On peut la mesurer par exemple on calculant le nombre d entits et d associations prsentes sur un schma.

Comment construire un schma conceptuel La construction d un schma conceptuel peut se raliser de la manire suivante : 1. 2. Dterminer la liste des entits. Pour chaque entit :

a) tablir la liste de ses attributs ; b) parmi ceux-ci, dterminer un identifiant. 3. 4. Dterminer les relations entre les entits. Pour chaque relation :

a) dresser la liste des attributs propres la relation ; b) vrifier la dimension (binaire, ternaire, etc.) ;
tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

c) dfinir les cardinalits.

7/21

05/11/11

c) dfinir les cardinalits. 5.

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Vrifier le schma obtenu, notamment :

a) supprimer les transitivits ; b) s assurer que le schma est connexe ; c) s assurer qu il rpons aux demandes. 6. Valider avec les utilisateurs.

EXERCICES n1 Corrig Le corrig ci-aprs propose une solution possible. 1.D termination de la liste des entit s 2.D termination des attributs et des identifiants 3.D termination des relations entre les entit s 4.D termination des caract ristiques des relations 5.V rification du sch ma obtenu 6.Validation avec les utilisateurs

II.

Modlisation logique relationnelle

Dans le modle relationnel, les entits du schma conceptuel sont transformes en tableaux deux dimensions. Le modle relationnel s appui sur trois concepts fondamentaux : le domaine, l attribut et la relation ou table.

. Domaine : ensemble de valeurs dfini en extension ou en intension. Un domaine peut tre simple ou
compos. Domaine simple : si tous les lments sont atomiques ou dcomposables. Ex : l ensemble des grades du salari peut tre dfinit en extension par employ, agent de matrise, ou cadre. Domaine compos : si les lments peuvent tre dcomposs. Ex : les dates sont dcomposes d un jour, un mois et une anne.

. Attribut : chaque colonne est appele attribut et contient un ensemble des valeurs d un domaine.
Chaque ligne reprsente un ple.

. Relation ou table : une relation est un tableau deux dimensions. Le degr de la relation est le nombre
de colonnes ou des domaines considrs. Figure N 8: DESCRIPTION D UNE TABLE DEUX DIMENSIONS D UNE BASE DE DONNEE

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

8/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Les contraintes d intgrit : permettent dassurer la cohrence des donnes. Les contraintes dintgrit sont : Contrainte de domaine : restriction de lensemble des valeurs possibles dun attribut. Contrainte de cl : dfinit un sous-ensemble minimal des colonnes tel que la table ne puisse contenir deux lignes ayant mmes valeurs pour ces colonnes. Il existe trois types de cls: Cl primaire : Ensemble minimum d'attributs qui permet de distinguer chaque n-uplet de la table par rapport tous les autres.Chaque table doit avoir une cl primaire. Cl candidate : Ensemble minimum d'attributs susceptibles de jouer le rle de la cl primaire. Cl trangre : fait rfrence la cl primaire d'une autre table. Contrainte obligatoire : prcise quun attribut ou plusieurs attributs doivent toujours avoir une valeur. Contrainte dintgrit rfrentielle ou dinclusion: lie deux colonnes ou deux ensembles de colonnes de deux tables diffrentes. La thorie de la normalisation : permet de dfinir formellement la qualit des tables au regard du problme pos par la redondance des donnes. La thorie de la normalisation sappui sur la dpendance fonctionnelle. Cod a dfinit un ensemble de formes normales caractrisant les tables relationnelles : Premire forme normale : si elle ne contient que des attributs atomiques. Deuxime forme normale : si elle ne contient que des attributs atomiques et, si de plus, il nexiste pas de dpendance fonctionnelle entre une partie dune cl et une colonne non cl de la table. Troisime forme normale : si elle ne contient que des attributs atomiques, sil nexiste pas de dpendance fonctionnelle entre une partie dune cl et une colonne non cl de la table et si, de plus, aucune dpendance fonctionnelle entre les colonnes non cl. Ainsi, plus une table est normalise moins elle comporte de redondances et donc de risques dincohrence smantiques dans les schmas relationnels.

Rgles suivre pour concevoir un schma relationnel Les rgles principales de transformation dun schma conceptuel Entit-Relation en un schma relationnel sont :
tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

Rgle I : Toute entit est traduite en une table relationnelle dont les caractristiques sont les suivantes :

9/21

05/11/11

R gle I : Toute entit est traduite en une table relationnelle dont les caractristiques sont les suivantes : le nom de la table est le nom de lentit ; la cl de la table est lidentifiant de lentit ; les autres attributs de la table forment les autres colonnes de la table. Figure N 9 : TRADUCTION DE LA RELATION PLUSIEURS PLUSIEURS

COCEPTION DES BASES DE DONNEES RELATIONNELLES

R gle II : Toute relation binaire plusieurs plusieurs est traduite en une table relationnelle dont les caractristiques sont les suivantes : le nom de la table est le nom de la relation ; la cl de la table est forme par la concatnation des identifiants des entits participant la relation ; les attributs spcifiques de la relation forment les autres colonnes de la table. Une contrainte dintgrit rfrentielle est gnre entre chaque colonne cl de la nouvelle table et la table dorigine de cette cl.

Figure N 10 : TRADUCTION DE LA RELATION PLUSIEURS PLUSIEURS

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

10/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

R gle III : Toute relation binaire un plusieurs est traduite :

. soit par un report de cl : lidentifiant de lentit participant la relation ct N est ajoute comme
colonne supplmentaire la table reprsentant lautre entit. Cette colonne est parfois appele cl trang re. Le cas chant, les attributs spcifiques la relation sont eux aussi ajouts la mme table ;

. soit par une table spcifique dont les caractristiques sont les suivantes :
le nom de la table est le nom de la relation ; la cl de la table est lidentifiant de lentit participent la relation ct 1 ; les attributs spcifiques de la relation forment les autres colonnes de la table. Figure N 11 : TRADUCTION DE LA RELATION UN PLUSIEURS

R gle 4 : Toute relation binaire un un est traduite, au choix, par lune des trois solutions suivantes : fusion des tables des entits quelle relie (choix1) ; report de cl dune table dans lautre (choix2) ;

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

11/21

05/11/11

report de cl dune table dans lautre (choix2) ;

COCEPTION DES BASES DE DONNEES RELATIONNELLES

cration dune table spcifique reliant les cls des deux entits (choix3). Les attributs spcifiques de cette relation sont ajouts la table rsultant de la fusion (choix1), reports avec la cl (choix2), ou insrs dans la table spcifique (choix3). Figure N 12 : TRADUCTION DE LA RELATION UN UN

Figure N 13a: TRADUCTION D UN SCHEMA CONCEPTUEL EN SCHEMA RELATIONNEL

Figure N 13b: TRADUCTION D UN SCHEMA CONCEPTUEL EN SCHEMA RELATIONNEL

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

12/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

EXERCICES n2 Transformer le schma ER de la gestion de la bibliothque de l exercice n1 en schma relationnel.

III. Le la gage SQL


tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

Le langage SQL (Structured Query Langage) s appui sur les oprateurs de l algbre

13/21

05/11/11

Le langage SQL (Structured Query Langage) s appui sur les oprateurs de l alg bre relationnelle dfinit en 1970 par Codd, mathmaticien, chercheur chez IBM. Le langage SQL est bas sur le concept de relation de la thorie des ensembles. Oprateurs de l algbre relationnelles :

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Les oprations de base : La projection La slection La Jointure Les oprations ensemblistes L union L intersection La diffrence Produit cartsien PROJECTION Cet oprateur ne porte que sur 1 relation. Il permet de ne retenir que certains attributs spcifis d'une relation. On obtient tous les n-uplets de la relation l'exception des doublons.

Opration PROJECTION
SELECT DISTINCT liste d'attributs FROM table ; SELECT liste d'attributs FROM table ; Exemples : SELECT DISTINCT Esp ce FROM Champignons ; SELECT DISTINCT Esp ce, Catgorie FROM Champignons ; La clause DISTINCT permet d'liminer les doublons. SELECTION Cet oprateur porte sur 1 relation. Il permet de ne retenir que les n-uplets rpondant une condition exprime l'aide des oprateurs arithmtiques ( =, >, <, >=, <=, <>) ou logiques de base (ET, OU, NON). Tous les attributs de la relation sont conservs. Un attribut peut ne pas avoir t renseign pour certains n-uplets. Si une condition de slection doit en tenir compte, on indiquera simplement : nom_attribut "non renseign".

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

14/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Op ration SELECTION
SELECT * FROM table WHERE condition ; Exemple : SELECT * FROM Champignons WHERE Cat gorie="Sec" ; La condition de slection exprime derrire la clause WHERE peut tre spcifie l'aide : des oprateurs de comparaison : =, >, <, <=, >=, <> des oprateurs logiques : AND, OR, NOT des oprateurs : IN, BETWEEN, LIKE, IS Autres exemples : Soit la table ETUDIANT (N Etudiant, Nom, Age, CodePostal, Ville) SELECT * FROM ETUDIANT WHERE Age IN (19, 20, 21, 22, 23) ; SELECT * FROM ETUDIANT WHERE Age BETWEEN 19 AND 23 ; SELECT * FROM ETUDIANT WHERE CodePostal LIKE '42%' ; SELECT * FROM ETUDIANT WHERE CodePostal LIKE '42___' ; SELECT * FROM ETUDIANT WHERE Ville IS NULL ;

// Etudiants pour lesquels la ville n'est pas renseigne

SELECT * FROM ETUDIANT WHERE Ville IS NOT NULL ;

// Etudiants pour lesquels la ville est renseigne

JOINTURE (R1, R2, condition d'galit entre attributs) - Cet oprateur porte sur 2 relations qui doivent avoir au moins un attribut dfini dans le mme domaine (ensemble des valeurs permises pour un attribut). - La condition de jointure peut porter sur l'galit d'un ou de plusieurs attributs dfinis dans le mme domaine (mais n'ayant pas forcment le mme nom). - Les n-uplets de la relation rsultat sont forms par la concatnation des n-uplets des relations d'origine qui vrifient la condition de jointure.
Remarque : Des jointures plus complexes que l'quijointure peuvent tre ralises en gnralisant
tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm 15/21

05/11/11

Remarque : Des jointures plus complexes que l'quijointure peuvent tre ralises en gnralisant l'usage de la condition de jointure d'autres critres de comparaison que l'galit (<,>, <=,>=, <>).

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Opration JOINTURE (quijointure)


En SQL, il est possible d'encha ner plusieurs jointures dans la mme instruction SELECT. En SQL de base : SELECT * FROM table1, table2, table3, ... HERE table1.attribut1=table2.attribut1 AND table2.attribut2=table3.attribut2 AND ...; Exemple : SELECT * FROM Produit, Dtail_Commande WHERE Produit.CodePrd=Dtail_Commande.CodePrd ; ou en utilisant des alias pour les noms des tables : SELECT * FROM Produit A, Dtail_Commande B WHERE A.CodePrd=B.CodePrd ;

Les oprations ensemblistes


UNION (R1, R2) Cet oprateur porte sur 2 relations qui doivent avoir le mme nombre d'attributs dfinis dans le mme domaine (ensemble des valeurs permises pour un attribut). On parle de relations ayant le mme schma. La relation rsultat possde les attributs des relations d'origine et les n-uplets de chacune, avec limination des doublons ventuels.

Opration UNION
SELECT liste d'attributs FROM table1 UNION SELECT liste d'attributs FROM table 2 ; Exemple : SELECT n enseignant, NomEnseignant FROM E1 UNION SELECT n enseignant, NomEnseignant FROM E2 ; INTERSECTION (R1, R2) Cet oprateur porte sur deux relations de mme schma. La relation rsultat possde les attributs des relations d'origine et les n-uplets communs chacune.
tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm 16/21

05/11/11

La relation rsultat possde les attributs des relations d'origine et les n-uplets communs chacune.

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Exemple : E1 : Enseignants lus au CA E2 : Enseignants reprsentants syndicaux On dsire conna tre les enseignants du CA qui sont des reprsentants syndicaux. R2 = INTERSECTION (E1, E2)

Opration INTERSECTION
En SQL de base : SELECT attribut1, attribut2, ... FROM table1 WHERE attribut1 IN (SELECT attribut1 FROM table2) ; ou avec SQL2 : SELECT attribut1, attribut2, ... FROM table1 INTERSECT SELECT attribut1, attribut2, ... FROM table2 ; Exemple : SELECT n enseignant, NomEnseignant FROM E1 WHERE n enseignant IN (SELECT n enseignant FROM E2) ; ou SELECT n enseignant, NomEnseignant FROM E1 INTERSECT SELECT n enseignant, NomEnseignant FROM E2 ;

DIFFERENCE (R1, R2) Cet oprateur porte sur deux relations de mme schma. La relation rsultat possde les attributs des relations d'origine et les n-uplets de la premire relation qui n'appartiennent pas la deuxime. Attention ! DIFFERENCE (R1, R2) ne donne pas le mme rsultat que DIFFERENCE (R2, R1)

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

17/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Exemple : On dsire obtenir la liste des enseignants du CA qui ne sont pas des reprsentants syndicaux. R3 = DIFFERENCE (E1, E2)

Opration DIFFERENCE En SQL de base :


SELECT attribut1, attribut2, ... FROM table1 WHERE attribut1 NOT IN (SELECT attribut1 FROM table2) ; SELECT table1.attribut1, table1.attribut2,... FROM table1 LEFT OUTER JOIN table2 ON table1.attribut1 = table2.attribut1 WHERE table2.attribut1 IS NULL ; Exemple : SELECT n enseignant, NomEnseignant FROM E1 WHERE n enseignant NOT IN (SELECT n enseignant FROM E2) ; ou SELECT n enseignant, NomEnseignant FROM E1 EXCEPT SELECT n enseignant, NomEnseignant FROM E2 ; ou encore SELECT E1.n enseignant, E1.NomEnseignant FROM E1 LEFT OUTER JOIN E2 ON E1.n enseignant = E2.n enseignant WHERE E2.n enseignant IS NULL ; voici le rsultat renvoy par la jointure externe gauche entre E1 et E2 :

PRODUIT (R1, R2) - Cet oprateur porte sur deux relations. La relation rsultat poss de les attributs de chacune des relations d'origine et ses nuplets sont forms par la concatnation de chaque n-uplet de la premi re relation avec l'ensemble des n-uplets de la deuxi me.
Exemple : Etudiants Epreuves

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

18/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Examen = PRODUIT (Etudiants, Epreuves)

Opration PRODUIT CARTESIEN


SELECT * FROM table1, table2 ; Exemple : SELECT * FROM Etudiants, Epreuves ;

La cration d une table peut tre ralise au moyen de la commande suivante :


CREATE TABLE nom_table Le langage SQL dispose galement des commandes suivantes : ALTER TABLE : permet la modification de la structure d une table, ajout d une colonne, ajout d une contrainte, modification de la dfinition d une colonne, suppression d une contrainte, etc. DROP TABLE : permet de supprimer une table. RENAME : permet de modifier le nom d une table.

SQL Interrogation des donnes Le langage de manipulation des donnes comprend quatre instructions principales : SELECT : pour l interrogation d une ou plusieurs tables ; INSERT : pour l ajout des lignes dans une table ; UPDATE : pour la modification des lignes ; DELETE : pour la suppression des lignes. Les contraintes de colonnes et les contraintes de table matrialisent les diffrentes contraintes d intgrit dont les SBD prend en charge la vrification systmatique : La contrainte d unicit (clause UNIQUE) : permet d assurer qu il n existe pas de valeur duplique dans la colonne La contrainte d obligation (clause NOT NULL) autorise et gre une valeur particulire appele la valeur nulle. Cette valeur nulle traduit la fois la valeur manquante et la valeur inexistante (ex. le nom de jeune fille pour un homme). NOT NULL est toujours une contrainte colonne, et ne peut pas tre une contrainte de table. La contrainte de cl primaire (clause PRIMARY KEY) : permet de choisir une colonne (ou un groupe de colonnes) unique privilgie dans une table ; La contrainte d intgrit rfrentielle admet deux syntaxes selon qu elle porte sur une colonne (contrainte de colonne) ou sur plusieurs (contrainte de table). Dans le premier cas, on utilise la clause REFERENCES. Dans le second, on utilise l expression FOREIGN KEY. La cl trangre fait rfrence la cl primaire d'une autre Table.Elle traduit un lien smantique avec une autre Table. La contrainte smantique (clause CHECK) : permet de spcifier les conditions
tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm 19/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

logiques portant sur une ou plusieurs colonnes d une mme table.

Traduction du sch ma relationnel de la Fig. 13b en langage SQL


create table NumCli Nom Adresse primary key create table NumCli CLIENT ( not null, not null, not null,

char (12) char (38) char (60)

(NumCli) ); CONTRAT ( not null, not null, not null, not null, (NumCli, NumCtr),

char (12)

NumContr char (38) Type Date primary key

decimal (4) date

foreign key (NumCli) references CLIENT); create table NumVeh Marque Modele NumCli VEHICULE ( not null, not null, not null,

char (16)

char (30)

decimal (30) char (12) not null,

NumContr decimal (8) primary key unique (NumVeh),

not null,

(Numcli, NumContr),

foreign key (NumCli) references CONTRAT); create table NumAcc Date primary key create table NumVeh NumAcc primary key ACCIDENT ( not null, not null, (NumAcc) ); CONCERN ( not null, not null,

char (10) date

char (16) char (10)

(NumVeh, NumAcc),

foreign key (NumVeh) references CLIENT foreign key (NumAcc) references CLIENT);

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

20/21

05/11/11

COCEPTION DES BASES DE DONNEES RELATIONNELLES

Travail raliser : - Crer une base de donn dans MyAdmin. - Rdiger un rapport. Le rapport devra comprendre la justification du th me et la dmarche conceptuelle suivie (prsentation du schma conceptuel et relationnelle utilis) .

Bibliog aphie
Philippe Rigaux (2001), Pratique de MySQL et PHP, O'REILLY. J.Akoka et I.Comyn-Wattiau (2001), Conception des bases de donnes relationnelles en pratique, Vuibert, Paris. Solange Ghernaouti- Hlie et Yves Pigneur, Notions et principes gnraux d'informatique: Base de donnes II, (Support de cours), Universit de Lausanne

tecfa.unige.ch/staf/staf-h/tassini/staf2 /Heidi/last_bd.htm

21/21