27
Le modèle relationnel Frédéric Gava (MCF) [email protected] LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général de Gaulle 94010 Créteil cedex

Le modèle relationnel Frédéric Gava (MCF) [email protected] LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

Embed Size (px)

Citation preview

Page 1: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

Le modèle relationnel

Frédéric Gava (MCF)[email protected]

LACL, bâtiment P2 du CMC, bureau 223Université de Paris XII Val-de-Marne

61 avenue du Général de Gaulle94010 Créteil cedex

Page 2: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

2/16

« Théorie »

Page 3: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

3/16

Définitions (1) C’est le modèle le plus utilisé par les SGBD actuels. Il n’utilise que le concept de relation. On peut lui associer le cadre mathématique de l’algèbre relationnelle (non vue ici) Une relation est une partie d’un produit cartésien d’ensembles. Dans le langage SGBD, les ensembles sont appelés domaine L’arité d’une relation est le nombre de ses domaines Une relation est représenté par une table où les lignes sont des « uplets » et les colonnes des composants (ou attributs). Exemple :

Numéro avocat Nom Prénom Nombre de clients

1 Lecouturier Guigui 10

2 Collard Bebert 0

3 Vergès Jacquy 100

Page 4: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

4/16

Définitions (2) Cette table représente un ensemble d’avocats. Pour facilité la lisibilité de la table, on nomme les colonnes (nom, domaine). Exemple (nom, chaîne de caractères) Le schéma de la relation est la liste de ses attributs (numéro, nom, prénom, nb_clients) Pour simplifier, on omettra les domaines, ils sont souvent implicite. Les notions de clé et de dépendance fonctionnelle seront aussi utilisées. Les attributs constituant la clé d’une table seront soulignés. Si un attribut d’une table appartient à la clé principale d’autre autre table, il est dit clé externe (ou étrangère). On le mettra en rouge.

Page 5: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

5/16

Définitions (3) Le schéma de relation donne la signification ou l’interprétation de la relation. Il est définit par :

son nom la liste des attributs ses clés et clés externes sa définition la liste des contraintes

Par mis les contraintes se trouvent les dépendances fonctionnelles

Page 6: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

6/16

Exemple Complet Avocats (numéro, nom, prénom, nb_clients)

(nom, chaîne de caractères) (prénom, chaîne de caractères) (numéro, entier) (nb_client, entier)

Contrainte : le nom ne peut être identique au prénom.

En pratique, on se contentera d’écrire juste la relation et écrire à côtés les contraintes. Les domaines seront sous-entendus

Page 7: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

7/16

Important Avocats (numéro, nom, prénom, nb_clients) et le nom ne peut être identique au prénom.

Écrire cette relation correspond à :

On fait une abstraction des données en ne donnant juste que les noms des colonnes et les relations entres elles

Numéro sera la clé de la relation car elle identifie une ligne de manière unique : il ne pourra pas y avoir 2 avocat ayant le même numéro (pas 2 français ayant le même numéro de sécu)

Numéro Nom Prénom Nombre de clients

1 Lecouturier Guigui 10

2 Collard Bebert 0

3 Vergès Jacquy 100

Page 8: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

8/16

Passage des diagrammes EA aux tables du

relationnel À partir d’un diagramme EA, il est possible de construire un diagramme relationnel . Les TE et les TA sont transformés en schéma de relation (table) suivant cette méthode :

chaque TE donne naissance à une relation de même nom, ayant les mêmes attributs et les mêmes clés chaque TA, dont aucune des « pattes » ne contient une connectivité maximale égale à 1 (dépendance fonctionnelle) devient une relation dont les attributs sont les clés des TE liés et de ses propres attributs. En cas d’une dépendance fonctionnelle, le TA n’est pas transformé en relation et il est matérialisé par l’ajout d’un attribut dans la relation source de la dépendance fonctionnelle, cet attribut correspond à la clé de l’autre TE Dans le cas d’un TE faible, on ne fait qu’une seule table avec le TA et le TE. On ajoute aussi la clé de l’autre TE (clé extérieur)

Page 9: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

9/16

Exemple 1

EtudiantNº, nom

MatièreNº, libellé

ContrôleNote

(0,n)(0,n)

LivreISBN, titre, auteur

ExemplaireNº, date, état

Est_un(1,1)(1,n)

Etudiant(Nº, Nom) Contrôle(Nºétudiant, Nºmatière, note) Matière(Nºmatière, libellé)

Livre(ISBN, titre, auteur)Exemplaire(Nº exemplaire, date, état, ISBN)

Page 10: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

10/16

Suite exemple 1

Nous aurons donc les tables (relations) suivantes :Etudiant(Nº, Nom)

Contrôle(Nºétudiant, Nºmatière, note)

Matière(Nºmatière, libellé)

Livre(ISBN, titre, auteur)Exemplaire(Nº exemplaire, date, état, ISBN)

Ces relations seront notre base de données. Dans un SGBD, il suffira de créer ces tables puis de les remplir, consulter etc.

Nous verrons cela plus tard

Page 11: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

11/16

Exemple 2

(0,n)

VéhiculeNº immatriculation, type

AssureDate

AssuranceNº, type

PersonneNº, nom, prénom

(1,n)(0,1)

Véhicule(Nº immatriculation, type, date, Nºpersonne, Nº assurance )

Assurance(Nº assurance, type)

Personne(Nºpersonne, nom, prénom)

Page 12: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

12/16

Suite exemple 2

Nous aurons donc les tables (relations) suivantes :Véhicule(Nº immatriculation, type, date, Nºpersonne, Nº

assurance )

Assurance(Nº assurance, type)

Personne(Nºpersonne, nom, prénom)

Page 13: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

13/16

Notion de clôture On part d’un ensemble d’attribut X d’une relation R et l’on veut calculer tous les autres attributs qui dépendent fonctionnellement de cette ensemble initial (noté {X}+) On parle aussi de fermeture transitive Définition mathématique : trop dure pour ici Méthode (algorithme) : On commence avec l’ensemble de départ (initial). Pour chaque dépendance fonctionnelle, on regarde s’ils on peut obtenir de nouveaux attributs. L’on rajoute alors ces nouveaux attributs à l’ensemble précédent d’attribut. On recommence alors l’opération jusqu’à ne plus rajouter d’attributs Propriété : {clé}+=R La clôture minimal est la clôture qui est la plus petite et qui recouvre le maximal

PECA

Page 14: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

14/16

Algorithme de X+ de REntrée : La relation R, un ensemble d’attribut X de R et des DF sur RSortie : La clôture X+ de X sur R d’après les DFDébut X+ X Aux Répéter Aux X+

pour chaque YZ faire si YX alors X + X+ Z fin pour chaque Jusqu’à Aux=X+ ou X+=RFin

PECA

Page 15: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

15/16

Mathématiquement

A ne lire que que si vous êtes à l’aise en maths Méthode déclaratif :

X+={A R | XA}

Obtenue par la relation de récurrence suivante : X(0) = X

X(i+1) = X(i) {A} tel que si YZF alors YX(i) et AZ}

PECA

Page 16: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

16/16

Exemple d’une clôture

R(A,B,C,D,E) avec DF={ABC, BD, CDE}

X0={A,B}

X1=X0{C}{D}={A,B,C,D} car ABC et BD

X2=X1{E}=R car CDE

On ne rajoute plus d’attribut donc X2={AB}+

PECA

Page 17: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

17/16

L’opération de jointure

Page 18: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

18/16

Décomposer une relation (1) Étant donnée une relation non satisfaisante

(répétitions, pbs d’intégrités etc.) on peut trouver un sous-ensemble de sous-relation satisfaisant et qui décrivent les mêmes informations

Exemple :

NOM STATUT AGE COURS

GAVA MCF 26 Parallélisme

HAINS Pr 40 Sécurité

HAINS Pr 40 Sémantique

NOM STATUT AGE

GAVA MCF 26

HAINS Pr 40

NOM COURS

GAVA Parallélisme

HAINS Sécurité

HAINS Sémantique

Page 19: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

19/16

Décomposer une relation (2)

On dira qu’une décomposition est « bonne » si on peut retrouver les informations de la relation initiale à partir des sous-relations

Pour retrouver les informations d’une relation à partir des relations « filles », on utilisera l’opérateur de jointure naturelle

Page 20: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

20/16

La jointure L’opérateur que nous allons utilisés est appelé jointure.

+ est un opérateur sur les entiers Il prend 2 entiers par exemple 2 et 3 en fait la somme

En résumé 2+3 5

sera un opérateur sur les tables (relations) le résultat sera une nouvelle table

celle-ci contiendra une « fusion » des données des 2 tables utilisées pour la jointure

Page 21: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

21/16

Jointure naturelle L’opération de jointure naturelle permet de composer des sous-relations pour en obtenir une plus grosse relation : R1(X,Y)R2(Y,Z)=R(X,Y,Z) Dans la relation R1 et R2, X et Z correspondent aux attributs non utilisés (voir exemple) C’est donc un lien entre plusieurs tables disposant de colonnes commune sémantiquement Chaque ligne de R est fabriquée avec une ligne de R1 et une ligne de R2 de telle sorte que les valeurs sur les attributs de Y soient identiques dans les ligne de R1 et de celle de R2 Elle permet donc de recomposer une relation qui avait été préalablement décomposée ; une décomposition est dite « sans perte d’informations » si les jointures naturelles des sous-relations redonne la relation initiale

Page 22: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

22/16

Produit cartésien : concaténation de toutes les lignes de la première table avec toutes les lignes de la seconde table. Exemple

Jointure : lien entre 2 tables disposant d’au moins une colonne commune (sémantiquement). On associe a chaque ligne de la première table toutes les lignes de la seconde table Exemple

Jointure et produit cartésien

Table 1 Table 2 Produit

a x a,x

b y a,y

c b,x

b,y

c,x

c,y

Table 1 Table 2 Jointure

a1,b1 b1,c1 a1,b1,c1

a2,b1 b2,c2 a2,b1,c1

a3,b2 b3,c3 a3,b2,c2

Page 23: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

23/16

Exemple Jointure (1)Nom Prénom Numéro avocat

Collard Bebert 1

Vergès Jacquy 2

Numéro avocat Procès Résultat

1 HLM Perdu

2 Serial Killer Gagné

1 Outreau Perdu

2 Du siècle Gagné

R1 =

R2 =

R1R2 =

Nom Prénom Numéro avocat Procès Résultat

Collard Bebert 1 HLM Perdu

Vergès Jacquy 2 Serial Killer Gagné

Collard Bebert 1 Outreau Perdu

Vergès Jacquy 2 Du siècle Gagné

Calculons la jointure R1(Nom;Prénom,Num)R2(Num,Procès;Résultat)

Page 24: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

24/16

Exemple Jointure (2)

R1 =

A B C

a1 b1 c1

a2 b1 c2

a3 b2 c2

a4 b2 c3

R2 =C D

c1 d1

c2 d1

c2 d2

c3 d3

Calculons la jointure R1(A;B,C)R2(C,D)

A B C D

a1 b1 c1 d1

a2 b1 c2 d1

a2 b1 c2 d2

a3 b2 c2 d1

a3 b2 c2 d2

a4 b2 c3 d3

Page 25: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

25/16

Jointure en générale Dans les jointures naturelles, nous comparions l’égalités des données de 2 tables différentes sur un attribut (une colonne) En fait, on peut généraliser cette notion, c’est-à-dire ne plus se limiter et :

utiliser plusieurs tables, parfois plusieurs fois les mêmes utiliser autre chose que le test d’égalité, en fait n’importe quel opérateur tant qu’il répond « vrai » ou « faux »

inférieur, supérieur pour les entiers, chaîne de caractère, dates, etc. etc.

Prenons un dernier exemple…

Page 26: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

26/16

Différentes jointures Définition : une équi-jointure est une jointure dont la condition est une comparaison d’égalité de 2 colonnes appartenant aux 2 tables

Définition : une theta-jointure est est une jointure dont la condition est une comparaison autres que l’égalité de 2 colonnes appartenant aux 2 tables

Définition : une jointure multiple met en relation plus de 2 tables.

Définition : une auto-jointure est une jointure d’une table avec elle-même

Page 27: Le modèle relationnel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général

27/16

Bibliographie C. Date « An introduction to database systems », Addison Wesley, 1986

C. Delobel et M. Adiba « Bases de données et systèmes relationnels », Dunod Informatique, 1982

J. Ullman « Principles of database systems », Computer Science Press, 1982

G. Gardarin « Bases de Données », Eyrrolles, 1998

Tout pleins d’autres livres plus récent…

Site internet : http://www.commentcamarche.net

http://fr.wikipedia.org/wiki/Base_de_données

http://www.culture.gouv.fr/culture/bdd/

http://ceria.dauphine.fr/cours98/BD-wl-98.html

http://www.i3s.unice.fr/~mcollard/BD_L2/