III. Présentation du modèle relationnel

8
Bases de Données Avancées M1 SEM Dr. A.TACHOUCHE III. Présentation du modèle relationnel Introduction Le modèle relationnel est un modèle logique proposé par Codd à IBM-St-José en 1970, et associé aux SGBD relationnels (ex: Oracle, Access, Paradox, dBase, SQLServer). Une BD relationnelle est une BD dont le schéma est un ensemble de schémas de relations et dont les occurrences sont des tuples ou n-uplets de ces relations. Autrement dit, les entités et les associations du modèle E-A sont représentées exclusivement par des relations (des tables). Ce modèle propose une démarche pour la description (LDD), et l'interrogation (LMD) des données par laquelle les objets sont manipulés par des opérateurs algébriques relationnels (UNION, INTERSECTION, PRODUIT CARTESIEN, SELECTION, PROJECTION, JOINTURE, ...). 1. Notions de base: - Un schéma relationnel est un ensemble de schémas de relations dont les occurrences sont des n-uplets de ces relations (ou tuples). - Une Relation est un ensemble d'attributs {A1,A2,…,An}. Par exemple: la relation PRODUIT est l'ensemble des attributs {NumProd, Dési, PrixUni} - Chaque attribut Ai prend ses valeurs dans un domaine D(Ai).Par exemple: D(PrixUni) = ]0, 10000] - Un n-uplet est un ensemble de valeurs t= où Vi dom(Ai) ou bien Vi est la valeur nulle (NULL). Par exemple : est un tuple de la table ou la relation R. peut être aussi un tuple de la relation. - Le schéma de la relation R est la liste des attributs de R avec, pour chacun, son domaine, parfois sous- entendu. Par exemple : Le schéma de r est R = (NOM : D1, ADR : D2, NUM : D3) peut être écris écrit en abrégé R = (NOM, ADR, NUM). - Représentation d’une relation : Chaque tuple (n-uplet) d’une relation est écrit dans une ligne d’un tableau dont les noms des colonnes sont les attributs de la relation. Chaque tuple est unique. Les duplications ne sont pas autorisées et l’ordre des tuples est indifférent. - Une Clé primaire et un ensemble d'attributs dont les valeurs permettent de distinguer les n-uplets les uns des autres (identifiant) tandis qu’une Clé étrangère est un attribut qui est une clé primaire d'une autre relation. Notons ici que clés primaires sont généralement soulignées et les clés étrangères en italiques. Par exemple : NumProd est une clé primaire de la relation PRODUIT et l'attribut NumFour est une clé étrangère à la relation PRODUIT (NumProd,Dési,PrixUni,NumFour). 2. Passage modèle Entité-Association / modèle Relationnel:

Transcript of III. Présentation du modèle relationnel

Page 1: III. Présentation du modèle relationnel

Bases de Données Avancées M1 SEM

Dr. A.TACHOUCHE

III. Présentation du modèle relationnel

Introduction

Le modèle relationnel est un modèle logique proposé par Codd à IBM-St-José en 1970, et associé aux

SGBD relationnels (ex: Oracle, Access, Paradox, dBase, SQLServer).

Une BD relationnelle est une BD dont le schéma est un ensemble de schémas de relations et dont les

occurrences sont des tuples ou n-uplets de ces relations. Autrement dit, les entités et les associations du

modèle E-A sont représentées exclusivement par des relations (des tables). Ce modèle propose une

démarche pour la description (LDD), et l'interrogation (LMD) des données par laquelle les objets sont

manipulés par des opérateurs algébriques relationnels (UNION, INTERSECTION, PRODUIT CARTESIEN,

SELECTION, PROJECTION, JOINTURE, ...).

1. Notions de base:

- Un schéma relationnel est un ensemble de schémas de relations dont les occurrences sont des n-uplets

de ces relations (ou tuples).

- Une Relation est un ensemble d'attributs {A1,A2,…,An}. Par exemple: la relation PRODUIT est l'ensemble

des attributs {NumProd, Dési, PrixUni}

- Chaque attribut Ai prend ses valeurs dans un domaine D(Ai).Par exemple: D(PrixUni) = ]0, 10000]

- Un n-uplet est un ensemble de valeurs t= où Vi ∈ dom(Ai) ou bien Vi est la valeur nulle (NULL). Par

exemple : est un tuple de la table ou la relation R. peut être aussi un tuple de la relation.

- Le schéma de la relation R est la liste des attributs de R avec, pour chacun, son domaine, parfois sous-

entendu. Par exemple : Le schéma de r est R = (NOM : D1, ADR : D2, NUM : D3) peut être écris écrit en

abrégé R = (NOM, ADR, NUM).

- Représentation d’une relation : Chaque tuple (n-uplet) d’une relation est écrit dans une ligne d’un

tableau dont les noms des colonnes sont les attributs de la relation. Chaque tuple est unique. Les

duplications ne sont pas autorisées et l’ordre des tuples est indifférent.

- Une Clé primaire et un ensemble d'attributs dont les valeurs permettent de distinguer les n-uplets les

uns des autres (identifiant) tandis qu’une Clé étrangère est un attribut qui est une clé primaire d'une autre

relation. Notons ici que clés primaires sont généralement soulignées et les clés étrangères en italiques.

Par exemple : NumProd est une clé primaire de la relation PRODUIT et l'attribut NumFour est une clé

étrangère à la relation PRODUIT (NumProd,Dési,PrixUni,NumFour).

2. Passage modèle Entité-Association / modèle Relationnel:

Page 2: III. Présentation du modèle relationnel

Bases de Données Avancées M1 SEM

Dr. A.TACHOUCHE

La modélisation E-A des données étant effectuée, il faut implanter la structure obtenue en machine, par

exemple sous forme d'un SGBD relationnel. Nous allons donc transformer cette structure sous une forme

relationnelle. On dit aussi que l'on transforme le diagramme E-A en schéma relationnel.

� Etape 1 : Toute classe d’entités du diagramme Entité/Association est représentée par une relation

dans le schéma relationnel équivalent. La clé primaire de cette relation est l’identifiant de la classe

d’entités correspondante. Dans la figure nous pouvons avoir 4 relations équivalentes aux 4 classes

d’entités : Acteur (NumActeur, Nom, Prénom) Film (NumFilm, Titre, Metteur_En_Scène) Cinema

(NumCinéma, Nom, Adresse) Réalisateur (NumRealisateur, Nomréa, Prénomréa)

� Etape 2 Toute association est transformée en relation. La clé de cette relation est composée de

tous les identifiants des entités participantes. Dans la figure nous pouvons avoir 3 autres relations

équivalentes aux 3 associations : Joue (NumACteur, NumFilm, Rôle) Affiche (NumFilm,

NumCinema,Date) Réalise (NumFilm,NumRéalisateur)

� Etape 3 (Optimisation) Toute association reliée à une classe d’entités avec une cardinalité de type

0,1 ou 1,1 peut être fusionnée avec la classe d’entités. Dans ce cas on déplace les attributs de

l’association vers ceux de la relation traduisant la classe d’entités. Pour l’exemple de la figure et

après l’optimisation des 7 relations trouvées précédemment, on retrouve le schéma relationnel

optimal suivant :

Acteur (NumActeur, Nom, Prénom)

Film (NumFilm, Titre, MetteurEnScène,NumReal)

Cinema (NumCinéma, Nom, Adresse)

Réalisateur(NumRealisateur,Nom, Prénom)

Joue (NumACteur, NumFilm, Rôle)

Affiche (NumFilm, NumCinema,Date)

3. Algèbre relationnelle :

La notion de relation a engendré le développement de langages d’interrogation assertionnels qui

permettent de définir les données que l’on souhaite visualiser sans dire comment y accéder. Un langage

de manipulation des données (LMD) se compose d’un ensemble de commandes permettant

l’interrogation de la base et d’un ensemble de commandes permettant de modifier celle-ci (insertion,

mise à jour, suppression). Les langages algébriques, où l’expression d’un besoin d’utilisateur se fait à l’aide

d’opérations dont les opérandes sont des relations. Ces langages consistent en une séquence d'opérateurs

sur les relations qu’on en peut aussi donner une représentation graphique sous forme d'arbre. Par

Page 3: III. Présentation du modèle relationnel

Bases de Données Avancées M1 SEM

Dr. A.TACHOUCHE

exemple, l’interrogation des données utilisée ans le langage SQL (Structured English QUEry Language) est

basé sur l’algèbre relationnelle (développée par CODD).

- L’algèbre relationnelle est un ensemble d’opérations (unaires et binaires) ayant pour opérandes

(entrées) des relations et pour résultat une autre relation.

- On trouve 5 opérateurs de base et 3 opérateurs supplémentaires.

3.1. Opérateurs de base

3.1.1. Union

L'union de deux relations R1 et R2 de même schéma est une relation R3 de schéma identique qui a pour

n-uplets les n-uplets de R1 et/ou R2. Et on notera (R1 U R2) ou bien Union (R1, R2).

Exemple : R et S sont les relations Matière de deux départements qui fusionnent et veulent unifier leur

formation. Le résultat est une relation T. Matière (Intitulé, année, semestre, coef, credit)

Notation graphique :

3.1.2. Intersection

L’intersection entre deux relations R1 et R2 de même schéma est une relation R3 de schéma identique

ayant pour n-uplets les n-uplets communs à R1 et R2. On notera (R1 ∩ R2) ou Intersect (R1, R2). Exemple

: l’intersection des deux relations Matière : R et S est une relation T contenant les matières communes

des deux départements.

Page 4: III. Présentation du modèle relationnel

Bases de Données Avancées M1 SEM

Dr. A.TACHOUCHE

Notation graphique :

3.1.3. Différence

La différence entre deux relations R1 et R2 de même schéma est une relation R3 de schéma identique

ayant pour n-uplets les n-uplets de R1 n'appartenant pas à R2. On notera (R1 − R2). Remarque :

Contrairement aux deux opérations précédentes, cette opération n’est pas commutative. Exemple : la

différence entre R et S est une relation T contenant les matières enseignées seulement dans le premier

département.

Notation graphique :

3.1.4. Projection (opérateur unaire)

La projection d'une relation R est la relation T obtenue en supprimant les attributs de R1 non mentionnés

puis en éliminant éventuellement les n-uplets identiques. En d’autre terme, elle correspond à un

Page 5: III. Présentation du modèle relationnel

Bases de Données Avancées M1 SEM

Dr. A.TACHOUCHE

découpage vertical (élimination de colonnes) et on notera : T = ∏( Ai, Aj, …, Am) la projection d'une relation R

sur les attributs Ai, Aj, …, Am. Exemple : La relation T répond à la question : donnez les triplets (matière,

coefficient, crédit) des matières enseignées dans le premier département.

Notation graphique :

3.1.5. Restriction (opérateur unaire)

La restriction d'une relation R est une relation T de même schéma n'ayant que les n-uplets de R1

répondant à la condition énoncée. En d’autre terme, elle correspond à un découpage horizontal

(élimination de tuples) et on notera : T = R la restriction d'une relation R suivant le critère Q, où Q peut

être :

- une comparaison simple entre 2 attributs ou entre un attribut et une valeur en utilisant les opérateurs

relationnels : =, , , ≤, ≥.

- Une combinaison logique de plusieurs conditions simples, en utilisant les opérateurs logique : Et, ou,

Non, etc.

Exemple : Les relations T et T’ répondent respectivement aux questions suivantes :

1. donnez toutes les matières enseignées ayant un coefficient strictement supérieur à 1.

2. donnez toutes les matières enseignées en deuxième semestre et qui ont un coefficient strictement

supérieur à 1.

Notation graphique :

Page 6: III. Présentation du modèle relationnel

Bases de Données Avancées M1 SEM

Dr. A.TACHOUCHE

3.2. Opérateurs supplémentaires ou additionnels

3.2.1. Jointure

La jointure de deux relations R1 et R2 est une relation T dont les n-uplets sont obtenus en concaténant

les n-uplets de R1 avec ceux de R2 et en ne gardant que ceux qui vérifient la condition de liaison (permet

de composer 2 relations à l'aide d'un critère de liaison). On notera : T = R1 ∞condition R2 .

• Le schéma de la relation T résultat de la jointure est la concaténation des schémas des opérandes (s'il y

a des attributs de même nom, il faut les renommer).

• Les n-uplets de T sont tous les couples (u1,u2) d'un n-uplet de R1 avec un n-uplet de R2 qui satisfont

"condition".

Exemple : considérons deux relations : Matière (Intitulé, année, semestre, coef, credit) Résultat

(Num_Etudiant, Nom_Etudiant, Année_Etude, Nom_Matière, note) La relation T résultat de la jointure de

Matière et Résultat sur la condition (Nom_Matière = Intitulé) et (Année_Etude = Année), donne un relevé

de note annuel des étudiants.

Notation graphique :

Cas particuliers :

L’Equi-Jointure de r et s sur les attributs Ai et Bj : c’est la jointure selon la condition (Ai=Bj). Par exemple,

la jointure de la figure ci-dessus est une equi-jointure. L’Auto-Jointure de r et selon l’attribut Ai : c’est la

jointure de r avec elle-même selon la condition (Ai = Ai). Étant donné que la relation r représente les deux

opérandes de l’opération, alors on doit les renommer. Par exemple, la relation T = Matière As M1 ∞

Page 7: III. Présentation du modèle relationnel

Bases de Données Avancées M1 SEM

Dr. A.TACHOUCHE

Matière As M2 est le résultat d’une auto-jointure de la relation matière. Elle donne les couples des

matières ayant le même coefficient dans le même semestre. La Jointure Naturelle de r et s de schéma R

et S est l’équi-jointure de r et s sur tous les attributs de même nom dans R et S, suivie de la projection qui

élimine les doublures de colonnes. Elle est notée (r ∞ s).

3.2.2. Division

Soit deux relations R1 (A1, A2, … , An, B1, B2, … , Bm) et R2 (B1, B2, … , Bm). Si le schéma de R2 est un

sous-schéma de R1, la division de R1 par R2 est une relation T dont :

- le schéma est le sous-schéma complémentaire de R2 par rapport à R1.

- un n-uplet (a1, a2, … , an) appartient à T si (a1, a2, … , an, b1, b2, … , bm) appartient à R1 pour tous (b1,

b2, … , bm) ∈ R2. On notera : T = R1 ÷ R2.

Exemple : considérons la relation T résultat de la jointure de la Figure. Et la relation Etudiant

(Num_Etudiant, Nom_Etudiant). La relation T résultat de la division de T par Etudiant donne les matières

examinées par tous les étudiants.

Notation graphique :

3.3. Composition d’opérateurs

Avec les opérateurs, il est possible de composer la plupart des requêtes que l’on peut faire sur une base

de données relationnelle. Les requêtes s’expriment à l’aide d’une combinaison d’opérations : Union,

Différence, Jointure, Restriction et Projection, etc. la représentation graphique d’une requête est

nommée : Arbre algébrique dont les feuilles représentent les opérandes. Par exemple, pour connaitre les

noms des étudiants qui ont examiné dans une matière dont le crédit dépasse 1, on doit succéder deux

opérations algébriques : la jointure et la projection. Et ça donnera :

Page 8: III. Présentation du modèle relationnel

Bases de Données Avancées M1 SEM

Dr. A.TACHOUCHE