Le Modèle Relationnel

Page 1 sur 14Lecteur de document UniversityLib

Le Modèle Relationnel

Database Systems · notes

Voir tous les documents en bases de données

Faculté des Sciences Économiques et de Gestion de Tunis

CHAPITRE3

Le Modèle Relationnel

Dr. Semia Sonia SELMI

2008-2009

Le Modèle Relationnel

Modèle de niveau logique, très simple

Défini par Ted Codd en 1970. Développé par IBM lab.

Aujourd’hui utilisé par beaucoup de SGBDs commerciaux (Oracle, Informix, DB2,

Ingres, Sybase, dBase, SqlServer, Access, etc.) et GIS

Modèle à deux concepts:

Ø Relation (table)

Ø Attribut (colonne)

05/11/2009

2

1

05/11/2009

Le Modèle Relationnel: Concepts de Base

Étudiant (CodeEtud, NomEtud, PrénomEtud, AgeEtud)

Nom de la Relation

Nom des Attributs

Une table est un ensemble de données relatives à un même sujet (entité) et

structurées sous forme de tableau

Étudiant

CodeEtud

NomEtud

PrénomEtud

AgeEtud

125

134

167

Ben Saleh

Ben Fraj

Ben Ahmed

Ali

Mohamed

Moussa

Colonne

19

20

20

Tuple / Occurence

3

Le Schéma Relationnel

Une BD = ensemble de relations

Schéma d’une BD relationnelle = un ensemble de schémas de relation: R1, R2, …, RX

Schéma d’une relation = un ensemble d’attributs Ri = (A1, A2, …, Ay)

4

2

05/11/2009

Règles de Structuration

Attributs: simples et monovalués (domaine de valeurs atomiques)

Structure plate régulière

Attribut 1

Attribut 2

Attribut 3

Attribut 4

Attribut 1

Attribut 2

Attribut 3

Attribut 4

V1

V2

Attribut 1

Attribut 2

Attribut 3

Attribut 4

V1

V2

Une et une seule valeur atomique par attribut

INTERDIT

5

Valeurs Nulles

Un attribut peut ne pas avoir de valeur pour un tuple: on dit alors qu’il a une valeur

nulle.

Exemple: on ne connaît ni le numéro de téléphone d’Ali ni l’e-mail de Saleh.

136

Ben Ahmed

Ali

NIL

[email protected]

234

Tounsi

Anis

71 000666

[email protected]

675

Ben Mohamed Mohsen

73 666 876 [email protected]

676

Ben Saleh

Saleh

72 666 999 NIL

6

3

Passage du Modèle EA au Modèle Relationnel

1- Traduction des entités

2- Traduction des associations 1-1

3- Traduction des associations 1-N

4- Traduction des associations M-N

5- Traduction des associations n-aires et récursives

6- Élimination des attributs composés et multivalués

7- Traduction de la Spécialisation

8- Récapitulatif

EA a M.Relationnel: 1- Traduction des Entités

Créer une Relation par Entité en lui donnant pour attributs les propriétés

explicitées et pour clé l'identifiant.

A

Id_A

a1

a2

R

B

Id_B

b1

b2

b3

A (id_A, a1, a2)

B (id_B, b1, b2, b3)

ÉTUDIANT (Numéro, nom, Date naissance)

Exemple:

ÉTUDIANT

Numéro

Nom

Date naissance

a

05/11/2009

7

8

4

05/11/2009

EA a M.Relationnel: 2- Traduction des associations 1,1

La traduction d'une association 1-1 dépend des cardinalités minimales de

l'association

11erer cascas ::

les deux cardinalités minimales sont 1 a On construit une seule relation

contenant les attributs des deux entités. La clé est reportée une seule fois si

elle est la même.

Exemple:

PATIENT

1,1

Possèder

1,1

N°SS

Nom

DOSSIER MEDICAL

N°SS

Date création

Thérapie

Ä

Publicité

PATIENT DOSSIER (N°SS, Nom, Date création, Thérapie)

PATIENT

1,1

Possèder

1,1

N°SS

Nom

DOSSIER MEDICAL

N°Dossier

Date création

Thérapie

PATIENT DOSSIER (N°SS, Nom, Date création, Thérapie, N°Dossier)

9

EA a M.Relationnel: 1- Traduction des associations 1,1

22èmeème cascas ::

Si une cardinalité minimale est 0, l'autre est 1 a On reporte, dans l'entité

dont la participation est totale, la clé de l'autre entité.

PATIENT

0,1

Possèder

1,1

N°SS

Nom

DOSSIER MEDICAL

N°Dossier

Date création

Thérapie

PATIENT (N°SS, Nom)

DOSSIER (N°Dossier, Date création, Thérapie, #N°SS)

Ä

33èmeème cas :

cas :

Si les deux cardinalités minimales sont 0 a On crée une relation spécifique

avec les clés des deux entités.

FEMME

Se marier

Date

Lieu

0,1

N°SSF

NomF

HOMME

0,1

N°SSH

NomH

Ä

HOMME (N° SSH, nomH)

FEMME (N° SSF, nomF)

MARIAGE (N°SSH, N°SSF, Date, lieu)

10

5

05/11/2009

EA a M.Relationnel: 3- Traduction des associations *,N

11erer Cas:Cas:

Si la cardinalité maximale de l’autre côté de l’association est 1 a On reporte

l'identifiant de l'entité (*,N) dans la relation représentant l'entité (1,1)

Migration de la clé primaire de l’entité mère (du côté de la cardinalité

maximale N) vers l’entité fille (du côté de la cardinalité maximale 1)

1,1

R

*,N

A

Id_A

a1

a2

B

Id_B

b1

b2

b3

A (id_A, a1, a2, #Id_B)

B (id_B, b1, b2, b3)

Exemple:

EMPLOYÉ

Matricule

Nom

Travailler

1,1

DEPARTEMENT

1,N

Code

Libelle

Ê

EMPLOYÉ (Matricule, Nom, #Code)

DEPARTEMENT (Code, Libelle)

11

EA a M.Relationnel: 3- Traduction des associations *,N

Si l’association est porteuse de données a On crée une relation spécifique

pour traduire l'association

ETUDIANT

1,1

S’inscrire

Date

Numéro

Nom

0,N

Formation

Code

Libelle

Ê

ETUDIANT (Numéro, Nom)

FORMATION (Code, Libelle)

ETUDIANT FORMATION (Numéro, Code, Date)

12

6

05/11/2009

EA a M.Relationnel: 4- Traduction des associations N,M

Dans tous les cas, on crée une relation spécifique dont la clé sera composée des

clés des entités participantes.

Relation dont la clé primaire est composée des clés des entités liées par

l’association en question

N,M

A

Id_A

a1

a2

R

r1

N,M

B

Id_B

b1

b2

b3

A (id_A, a1, a2)

B (id_B, b1, b2, b3)

R (id_A, id_B, r1)

Exemple:

EMPLOYÉ

1,N

Matricule

Nom

Travailler

% Temps

1,N

Projet

Code

Libellé

Responsable

Ä

EMPLOYÉ (Matricule, Nom)

PROJET (Code, Libelle, Responsable)

TRAVAILLER (Matricule, Code, %Temps)

EA a M.Relationnel:

5- Traduction des associations N-aires

Elles se traduisent comme les associations N, M.

C

Id_C

c1

1,N

Publicité

R

r1

1,N

B

Id_B

b1

b2

b3

A

Id_A

a1

a2

1,N

A (id_A, a1, a2)

B (id_B, b1, b2, b3)

C (id_C, c1)

R (id_A, id_B, id_C, r1)

Exemple::

PIECE

1,N

CodePièce

FOURNISSEUR

CodeFour

1,N

Distribuer

Qté

1,N

Ê

PROJET

CodeProjet

FOURNISSEUR (CodeFour)

PROJET (CodeProjet)

PIECE (CodePièce)

DISTRIBUER (CodeFour, CodeProjet, CodePièce, Qté)

13

14

7

05/11/2009

EA a M.Relationnel:

5- Traduction des associations Récursives

•Premier cas : cardinalité (X,1) - (X,n), avec X=0 ou X=1.

La Clé Primaire de l'entité se dédouble et devient une Clé Etrangère dans la

relation ou nouvelle table.

Exactement comme si l'entité se dédoublait et était reliée par une relation

binaire (X,1) - (X,n)

Exemple: une société organisée de manière pyramidale : chaque employé a

0 ou 1 supérieur hiérarchique direct. Simultanément, chaque employé est le

supérieur hiérarchique direct de 0 ou plusieurs employés.

EMPLOYE

Matricule

Nom

Chef de

0,N

Chef

a

0,1

Subordonné

CHEF(MatriculeSub, Nom, #MatriculeChef)

EA a M.Relationnel:

5- Traduction des associations Récursives

•Deuxième cas : cardinalité (X,n) - (X,n), avec X=0 ou X=1.

De même, tout se passe exactement comme si l'entité se dédoublait et était

reliée par une relation binaire (X,n) - (X,n). Il y a, donc, création d'une nouvelle

table.

PIECE

CodePièce

Composé

0,N

Fait de

Ê

0,N

Composant

Fait de(CodePièceComposant, CodePièceComposé)

16

8

05/11/2009

EA a M.Relationnel:

6- Élimination des attributs Composés

Il y a trois possibilités de traduction :

soit on supprime la composition et on rattache les attributs à

l'entité directement

ETUDIANT

ETUDIANT

Numéro

nom

?

ADRESSE

ADRESSE

Rue

Ville

Code Postal

Numéro

Nom

Rue

Ville

Code Postal

soit on concatène en un seul attribut tous les éléments de

l'attribut composé

ETUDIANT

1ère solution

Numéro

Nom

Adresse

2ème solution

(de type Chaîne de caractères)

soit on crée une entité remplaçant l’attribut composé et reliée

par une association M-N à l’entité initiale.

ADRESSE

ETUDIANT

1,N

Numéro

nom

a

1,N

Rue

Ville

Code Postal

17

EA a M.Relationnel: 7- Traduction de la Spécialisation

La clé du supertype est uniquement

répétée

sous-tables.

L'héritage est réalisé par jointure.

dans

les

C

Id_C

c1

A

a1

a2

1

B

b1

b2

b3

b3

C

Id_C

c1

A

Id_C

a1

a2

a2

B

Id_C

b1

b2

b3

Publicité

b3

EMPLOYÉ

N°SS

nom

Adresse

SECRETAIRE

TECHNICIEN

PROFESSEUR

Vitesse de frappe

Grade

Discipline

a

EMPLOYÉ (N°SS, Nom, Adresse)

SECRETAIRE (N°SS,Vitesse de frappe)

TECHNICIEN (N°SS, Grade)

PROFESSEUR (N°SS, Discipline)

18

9

05/11/2009

EA a M.Relationnel: 7- Traduction de la Spécialisation

C

Id_C

c1

A

a1

a2

2

B

b1

b2

b3

b3

table est

par

supprimée et

La super

avec

reconstituée

projections et unions sur les sous-

classes.

une

vue

C

Id_C

c1

A

Id_C

c1

a1

a2

B

Id_C

c1

b1

b2

b3

EMPLOYÉ

N°SS

nom

Adresse

a

SECRETAIRE (N°SS, Nom, Adresse, Vitesse de frappe)

TECHNICIEN (N°SS , Nom, Adresse, Grade)

PROFESSEUR (N°SS , Nom, Adresse, Discipline)

SECRETAIRE

TECHNICIEN

PROFESSEUR

Vitesse de frappe

Grade

Discipline

19

EA a M.Relationnel: 7- Traduction de la Spécialisation

C

Id_C

c1

c1

A

a1

a2

3

Les sous-tables sont fusionnées dans

la super

table. Les attributs non

pertinents ont la valeur NULL.

B

b1

b2

b3

b3

C

Id_C

c1

a1

a2

b1

b2

b3

b3

EMPLOYÉ

N°SS

nom

Adresse

a

EMPLOYÉ (N°SS, Nom, Adresse, Vitesse de frappe,

Grade, Discipline)

SECRETAIRE

TECHNICIEN

PROFESSEUR

Vitesse de frappe

Grade

Discipline

20

10

05/11/2009

Exemple de passage du modèle EA au Relationnel

0..n

avoir

1..1

ABONNE

1..n

S’inscrire

0..n

MOTIVATION

Id_Motivation

intitulé

Id_Abonne

Nom

Prénom

Date_Naissance

Sexe

Profession

email

MOTIVATION (Id_Motivation,intitulé)

ABONNE(Id_abonné, Nom, Prénom, Date_Naissance, sexe, Profession,

email, )

#Id_Motivation

RUBRIQUE(Id_Rubrique, Nom_Rubrique)

RUBRIQUE

Id_Rubrique

Nom_Rubrique

0..n

Encadrer

1..1

NEWSLETTER

Id_Newsletter

Sujet

Date_Envoie

Contenu

NEWSLETTER(Id_Newsletter, Sujet, Date-Envoie, Contenu, )

#Id_Rubrique

Publicité

S’INSCRIRE (Id_Abonne,Id_Rubrique)

21

Les Contraintes d’Intégrité

La définition d’un modèle de données impose un ensemble de règles

d’organisation de données.

L’Unicité de la Clé

Toute relation possède un identifiant (clé)

Un enregistrement ne doit exister qu’une seule fois dans une relation.

Il ne peut y avoir deux tuples identiques dans la même relation

L’identifiant n’admet pas de valeurs nulles

La contrainte d’unicité de clé impose que toute relation doit avoir

une et une seule clé

22

11

05/11/2009

Les Contraintes d’Intégrité

La Contrainte Référentielle

Elle impose que toute valeur prise par une clé étrangère doit être une

valeur d’une clé primaire d’une autre relation.

Toute association de cardinalité 1:1 engendre une contrainte d'intégrité

référentielle.

A

1,1

R

r1

Id_A

a1

a2

A

Id_A

a1

A2

Id_B

Clé

étrangère

B

B

Id_B

b1

b2

b3

Id_B

b1

b2

b3

FOREIGN KEY (id_B) REFERENCES B (id_B)

Les Contraintes d’Intégrité

A

N,M

R

r1

Id_A

a1

a2

association

Toute

en

relation engendre deux contraintes

d'intégrité référentielle

transformée

A

Id_A

a1

a2

FOREIGN KEY (id_A) REFERENCES A (Id_A)

FOREIGN KEY (id_B) REFERENCES B (id_B)

R

Id_A

Id_B

r1

23

24

N,M

B

Id_B

b1

b2

b3

B

Id_B

b1

b2

b3

12

05/11/2009

Les Contraintes d’Intégrité

Exemple 1:

Étudiant

Appartient

1,1

1, N

Groupe

N°CIN

PrénomEtud

NomEtud

Code

Spécialité

NombreEtud

Étudiant (N°CIN, PrénomEtud, NomEtud, #Code)

Groupe (Code, Spécialité, NombreEtud)

Exemple 2:

Employé (N°CIN, PrénomEmpl, NomEmpl, #CodeDépart)

Département (CodeDépart, Libellé)

07769092

Saleh

Ben Ahmed

07787654

Ali

Tounsi

05567890

Fatma

Ben Saleh

05645342

Mouna

Ben Ahmed

F123

M13

F123

G45

F123

Finance

M13

Marketing

25

Les Contraintes d’Intégrité

La Contrainte d’Entité

Elle impose que tout attribut participant à une clé primaire d’une

relation doit être non nulle

La Contrainte de Domaine

Le domaine d’un attribut est l’ensemble des valeurs qui lui sont possibles

d’être affectées.

Il est judicieux de le mentionner afin de pouvoir contrôler les opérations

effectuées ultérieurement sur cet attribut et préparer l’espace mémoire

nécessaire.

Elle impose que toute valeur prise par un attribut doit être dans le

domaine de ce dernier.

26

13

Les Contraintes d’Intégrité

Les domaines de valeurs

Un domaine est un ensemble de valeurs atomiques que peut prendre un attribut

Exemples de domaines:

− Dnom: chaînes de caractères de longueur maximale 30

− DCode: entiers compris entre 0 et 99999

− Dcouleur: {« bleu », « vert », « jaune »}

− DAge: entiers compris entre 18 et 60

05/11/2009

27

14