Modèle relationnel et algèbre relationnelle

45
62 Modèle relationnel et algèbre relationnelle INT Management

Transcript of Modèle relationnel et algèbre relationnelle

Page 1: Modèle relationnel et algèbre relationnelle

62

Modèle relationnel et algèbre

relationnelle

INT Management

Page 2: Modèle relationnel et algèbre relationnelle

63

Plan du document

� Modèle relationnel slide 64� Opérateurs de l’algèbre slide 78� Exemples de requêtes slide 94� Optimisation slide 99

Page 3: Modèle relationnel et algèbre relationnelle

64

Les concepts descriptifs

� Notion de domaine � Produit cartésien � Relation� Attribut� Clé� Schéma de relation et de BD� Clé étrangère� Métabase

Modèle relationnel

Page 4: Modèle relationnel et algèbre relationnelle

65

Notion de domaine

� Définition� Ensemble de valeurs

� Exemples� Entier, réel, chaîne de caractères, booléen� Salaire = 1000…100000 (€)� Couleur = {‘rosé’, ‘blanc’, ‘rouge’}

Modèle relationnel

Page 5: Modèle relationnel et algèbre relationnelle

66

Produit cartésien

� Définition� Le produit cartésien de D1, ...., Dn est l'ensemble des n-

uplets (tuples) <V1, ...., Vn> tel que Vi ∈ Di

� Notation� D1 X ....X Dn

� Exemple :� D1 = {‘BD’, ‘IO’} (Code UV)� D2 = {‘Carpentier’, ‘Lalevée’, ‘Millot } (Prof)

CarpentierIO

LalevéeIO

MillotIO

MillotBD

LalevéeBD

CarpentierBD

D2D1D1 X D2

Modèle relationnel

Page 6: Modèle relationnel et algèbre relationnelle

67

Relation

� Définition� Sous-ensemble du produit cartésien d'une liste de

domaines� Caractérisée par un nom

� Exemple� D1 = Code UV� D2 = Prof

Modèle relationnel

LalevéeIO

CarpentierBD

D2D1UV

Page 7: Modèle relationnel et algèbre relationnelle

68

Relation (2)

� Plus simplement, une relation est un tableau àdeux dimensions

� Une ligne est un n-uplet (tuple)� On associe un nom à chaque colonne afin de la

repérer indépendamment de l'ordre = attribut� Prend ses valeurs dans un domaine� Exemple : code

Modèle relationnel

LalevéeIO

CarpentierBD

coordcodeUV

Page 8: Modèle relationnel et algèbre relationnelle

69

Exemples de relations

21MaiselMeunier3

20CROUSMillot2

20MaiselBélaïd1

AgeAdresseNomNumElève

10BD2

20BD1

18IO3

17IO2

NoteCodeUVNumElèveInscrit

Modèle relationnel

Page 9: Modèle relationnel et algèbre relationnelle

70

Clé

� Définition� Une clé est un groupe d'attributs minimum qui détermine un n-

uplet unique dans une relation (à tout instant)

� Exemple� Clé de Elève ?� Clé de UV ?� Clé de Inscrit ?

� Contrainte d'intégrité� Toute relation doit posséder une clé renseignée (sans valeur

inconnue)

Modèle relationnel

Page 10: Modèle relationnel et algèbre relationnelle

71

Schéma de relation� Définition

� Le schéma d'une relation décrit :� Son nom� La liste des attributs qu'elle comporte et des domaines associés� La liste des attributs composant la clé (la clé est soulignée)

� Exemple� Elève(num : entier, nom : chaîne, adresse : chaîne, age :

entier de 18 à 35)

� Intention vs. Extension� Schéma de relation : intention de la relation� Table : extension� Schéma d'une BD relationnelle : ensemble des schémas des

relations

Modèle relationnel

Page 11: Modèle relationnel et algèbre relationnelle

72

Clé étrangère

� Définition� Une clé étrangère est un groupe d'attributs qui

apparaît comme clé dans une autre relationR1(A1, A2, .... , Ap, Ap+1, ...., An)

R2(B1, B2, ......, Bn)

� Rôle� Les clés étrangères définissent des contraintes

d'intégrités référentielles entre relations

Modèle relationnel

Page 12: Modèle relationnel et algèbre relationnelle

73

Clé étrangère (2)

� Mises à jour et clés étrangères� Insertion: la valeur des attributs doit exister dans la

relation référencée.� Insertion de (4, ‘BD’, 15) dans Inscrit ?

� Suppression dans la relation référencée; les n-uplets référençant doivent disparaître.� Suppression de l’élève 2 dans Elève ?

� Les clés étrangères sont la traduction des associations du modèle E/A

Modèle relationnel

Page 13: Modèle relationnel et algèbre relationnelle

74

Clé étrangère

� ExemplesÉlève(num, nom, adresse, age)

UV(code, nbh, coord)

Inscrit(numElève, codeUV, note)

Livre(côte, titre,numElève, datePrêt)

Chambre(no, prix, numElève)

Modèle relationnel

Page 14: Modèle relationnel et algèbre relationnelle

75

Métabase

� Définition� base de données contenant l'ensemble des schémas et des

règles de correspondances associées à une base de données

� Principe� Une base décrivant les autres bases, c'est-à-dire:

� les relations� les attributs� les domaines� les clés .....

� Notion de dictionnaire de données� Base particulière, système, gérée par l'administrateur de BD

Modèle relationnel

Page 15: Modèle relationnel et algèbre relationnelle

76

Résumé des notionsModèle relationnel

Clé

Tab

le

Schéma

Intention

Tuple / n-uplet

Relation2Clé

étrangère

Relation1 AttributnAttribut1

Attributa

Attribut2

vn

v1

v3

w1

v1

w2

w1

w2

w2

Attributb

xi

wn

BD

Attribut2Relation1

Attribut1Relation1

AttributNomRelSchémaBD

Métabase

Page 16: Modèle relationnel et algèbre relationnelle

77

Langages associés au modèle relationnel

� Langages de Définition de Données (LDD) :� Définition /mise à jour des schémas des relations

� Langages de manipulation de données (LMD) :� Interrogation : recherche de données� Mises à jour : insertion, suppression, modification

� 2 classes de langages :� Algébriques � SQL� Prédicatifs � QBE

Page 17: Modèle relationnel et algèbre relationnelle

78

Les opérateurs de manipulation

� Tout résultat d'une opération est une relation; peut donc être réutilisée en entrée d'un nouvel opérateur.

� Les opérateurs peuvent être classifiés en :� opérateurs ensemblistes / opérateurs relationnels� opérateurs de base / opérateurs dérivés� opérateurs unaires / opérateurs binaires

� Unaires : sélection (restriction), projection, � Binaires : union, intersection, différence, produit cartésien, jointure,

division

Algèbre relationnelle

Page 18: Modèle relationnel et algèbre relationnelle

79

Restriction� But

� Permet de "sélectionner" des tuples

� La restriction réduit la taille de la relation verticalement

� Contraintes� Unaire� Spécifier une condition

� Notation� Notation textuelle:

Tσcond(R)� Notation graphique:

� Inscrits en BD : σcodeUV=‘BD’(Inscrit)

� Majors (note > 15) de BD : σcodeUV=‘BD’ et note >15(Inscrit)

Algèbre relationnelle

Cond.

10BD2

20BD1

NoteCodeUVNumElèveResu

20BD1

NoteCodeUVNumElèveResuR

T

Page 19: Modèle relationnel et algèbre relationnelle

80

Projection

� But� Permet de "sélectionner" des

attributs� La projection réduit la taille de la

relation horizontalement

� Contraintes� Unaire� Spécifier une liste d'attributs

� Notation� Notation textuelle: TΠattributs(R)� Notation graphique:

R

T

� Adresses des élèves : ΠAdresse(Elève)

� Code et nb heures des UV : Πcode,nbh(UV)

Algèbre relationnelle

attributs.

Maisel

CROUS

AdresseResu

15BD

45IO

nbhCodeResu

Pas de

doublon

Page 20: Modèle relationnel et algèbre relationnelle

81

Union

� But� Permet de fusionner 2 relations

� Contraintes� Binaire� Même schéma

� Notation� Notation textuelle: T R ∪ S � Notation graphique:

� Nom des profs, des élèves

� Nom des personnes à l’INT : Prof∪Eleve2

Algèbre relationnelle

R S

T

Carpentier

Millot

Lalevée

NomProf

Meunier

Millot

Bélaïd

NomElève2

Meunier

Bélaïd

Carpentier

Millot

Lalevée

NomResu

Pas de

doublon

Page 21: Modèle relationnel et algèbre relationnelle

82

Intersection

� But� Permet d’obtenir l’ensemble des

tuples appartenant à deux relations

� Contraintes� Binaire� Même schéma

� Notation� Notation textuelle: T R ∩ S � Notation graphique:

� Nom des profs, des élèves

� Noms communs élèves-profs : Prof∩Elève2

Algèbre relationnelle

R S

T

Carpentier

Millot

Lalevée

NomProf

Meunier

Millot

Bélaïd

NomElève2

Millot

NomResu

Page 22: Modèle relationnel et algèbre relationnelle

83

Différence� But

� Obtenir l’ensemble des tuplesd’une relation qui ne figurent pas dans une autre

� Contraintes� Binaire� Même schéma

� Non commutatif

� Notation� Notation textuelle: T R - S � Notation graphique:

� Nom des profs, des élèves

� Noms des élèves qui ne portent pas le nom d’un prof : Eleve2-Prof

Algèbre relationnelle

-

R S

T

Carpentier

Millot

Lalevée

NomProf

Meunier

Millot

Bélaïd

NomElève2

Meunier

Bélaïd

NomRésu

Page 23: Modèle relationnel et algèbre relationnelle

84

Produit cartésien

� But� Ensemble de tous les tuples obtenus par concaténation de chaque

tuple de R avec chaque tuple de S� Contraintes

� Binaire� Schéma du résultat:

� R(a1, a2, ...., an), S(b1, b2, ..., bp)� T R X S, T(a1, a2, ...., an, b1, b2, ..., bp)

� Card (R X S) = Card (R) * Card (S)� Notation

� Notation textuelle: T R X S � Notation graphique:

Algèbre relationnelle

X

R S

T

Page 24: Modèle relationnel et algèbre relationnelle

85

Produit cartésien (2)Algèbre relationnelle

21MaiselMeunier3

20CROUSMillot2

20MaiselBélaïd1

AgeAdresseNomNumElève

Carpentier15BD

Lalevée45IO

CoordNbhCodeUV

Carpentier15BD21MaiselMeunier3

Carpentier15BD20CROUSMillot2

Carpentier15BD20MaiselBélaïd1

21

20

20

Age

IO

IO

IO

Code

45

45

45

Nbh

Lalevée

Lalevée

Lalevée

Coord

MaiselMeunier3

CROUSMillot2

MaiselBélaïd1

AdresseNomNumElève X UV

Page 25: Modèle relationnel et algèbre relationnelle

86

Jointure

� But� Permet d’établir le lien sémantique entre les relations

� Contraintes� Binaire� Schéma du résultat:

� R(a1, a2, ...., an), S(b1, b2, ..., bp)� T R �� S T(a1, a2, ...., an, b1, b2, ..., bp)

� Notation� Notation textuelle: T R �� S

condition

� Notation graphique:

Algèbre relationnelle

R S

T

condition

Page 26: Modèle relationnel et algèbre relationnelle

87

200

150

Prix

3

2

numElève

1021MaiselMeunier3

2120CROUSMillot2

Age NoAdresseNomNumElève��Chambre

150

200

Prix

2

3

numElève

21

10

NoChambre

Elève.Num=Chambre.numElève

1er exemple de jointure

� 1 tuple de Chambre � 1 tuple de résultat� 1 tuple de Elève � 0 ou 1 tuple de résultat

� On a perdu Bélaïd !

21

20

20

Age

MaiselMeunier3

CROUSMillot2

MaiselBélaïd1

AdresseNomNumElève

Page 27: Modèle relationnel et algèbre relationnelle

88

3

2

2

1

NumElève

18

10

17

20

Note

IO21MaiselMeunier3

BD20CROUSMillot2

20

20

Age

IO

BD

CodeUV

CROUSMillot2

MaiselBélaïd1

AdresseNomNumInscrit ��Elève

10BD2

20BD1

18IO3

17IO2

NoteCodeUVNumElèveInscrit

21MaiselMeunier3

20CROUSMillot2

20MaiselBélaïd1

AgeAdresseNomNumElève

Inscrit.NumElève=Elève.Num

2ème exemple de jointure

� 1 tuple de Inscrit � 1 tuple de résultat

� 1 tuple de Elève � 0 à n tuples de résultat

� On a dupliqué Millot !

Page 28: Modèle relationnel et algèbre relationnelle

89

Division� But

� Répondre aux requêtes de type « tous les »� Un tuple t est dans T si et seulement si pour tout tuple s de S, le tuple <t,s> est

dans R

� Contraintes � Binaire� Schéma du résultat:

� R(a1, a2, ...., an, b1, b2, ..., bp), S(b1, b2, ..., bp)� T R ÷ S, T(a1, a2, ...., an)

� Notation� Notation textuelle: T = R � S� Notation graphique:

� Dérivation� Projection + Produit cartésien + Différence.� R � S T1 - T2 avec:

� T1 ∏ schéma(R) - schéma(S) (R)� T2 ∏ schéma(R) - schéma(S) ((∏ schéma(R) - schéma(S) (R) X S) - R)

Algèbre relationnelle

R S

T

Page 29: Modèle relationnel et algèbre relationnelle

90

Division (2)

� Exemple� Quels sont les élèves inscrits à toutes les UVs ?

Algèbre relationnelle

10BD2

20BD1

18IO3

17IO2

NoteCodeUVNumElèveInscrit

Page 30: Modèle relationnel et algèbre relationnelle

91

Division (3)� Exemple

� Construire R : ensemble de toutes les informations dont on a besoin = attributs NumElève et CodeUV de Inscrit (R)

� Construire S : ensemble correspondant à "tous les" (UV) = codeUV (S)

� Résultat R � S� Vérification :

� Résultat X S ⊆ R

� RΠNumElève,CodeUV(Inscrit)

� SΠCode(UV)

� Résultat

BD2

BD1

IO3

IO2

CodeUVNumElèveR

BD

IO

CodeUVS

2

NumElèveResu

Algèbre relationnelle

Page 31: Modèle relationnel et algèbre relationnelle

92

Bilan : sémantique et notations des

opérateurs

Algèbre relationnelle

T R � S

T R �� Scondition

T R X S

T R - S

T R ∩ S

T R ∪ S

TΠattributs(R)

Tσcond(R)

Notation textuelle

Répondre aux requêtes de type « tous les »Division

conditionEtablir le lien sémantique entre les relationsJointure

Concaténer chaque tuple de R avec chaque tuple de S

Produit cartésien

Tuples d’une relation qui ne figurent pas dans une autre

Différence

Obtenir l’ensemble des tuples communs à deux relations

Intersection

Fusionner les extensions de 2 relationsUnion

« Sélectionner » des attributsProjection

« Sélectionner » des tuplesRestriction

Notation graphique

SémantiqueOpérateur

Cond.

attributs.

X

condition

Page 32: Modèle relationnel et algèbre relationnelle

93

Bilan : contraintes des opérateursAlgèbre relationnelle

Schéma(R)=Schéma(S)+Schéma(T)

Schéma(T)=Schéma(S)∪Schéma(R)

Schéma(T)=Schéma(S)∪Schéma(R)

Schéma(R)=Schéma(S)=Schéma(T)

Schéma(R)=Schéma(S)=Schéma(T)

Schéma(R)=Schéma(S)=Schéma(T)

Schéma(T) ⊆ Schéma(R)

Schéma(T) = Schéma(R)

Schémas

BinaireDivision T R � S

Condition de jointure sur attributs de R et S

BinaireJointure T R �� Scondition

BinaireProduit cartésien T R X S

BinaireDifférence T R - S

BinaireIntersection T R ∩ S

BinaireUnion T R ∪ S

Liste d’attributs de RUnaireProjection TΠattributs(R)

Condition sur attributs de RUnaireRestriction Tσcond(R)

« Paramètres »Unaire/Binaire

Opérateur

Page 33: Modèle relationnel et algèbre relationnelle

94

Exemples de requêtes en algèbre

relationnelle

� Base de données exemple : les vinsVins(num, cru, annee, degre)Recoltes(nvin, nprod, quantite)Producteurs(num, nom, prenom, region)Buveurs(num, nom, prenom, ville)Commandes(ncde, date, nb, nvin, qte)Livraisons(ncde, no_ordre, qteLivree)

Exemples

V

R

P

B

C

L

Page 34: Modèle relationnel et algèbre relationnelle

95

Modèle E/A de la BD des vins

0,n

1,1

(1,1)0,n

1,1

0,n

0,n

0,n

Vins

numcrudegréannee

Producteurs

numnomprenomregion

recoltes

Livraisons

No_ordreqteLivréedate

concerne

Buveurs

numnomprenomville

Commandes

ncdeqtédate

Passer

Donner_lieu

quantite

Exemples

Page 35: Modèle relationnel et algèbre relationnelle

96

Composition des opérateurs

� Ecriture textuelle :Temp σ annee=1995 (Vins)Resultat Π num(Temp)Resultat Π num(σ annee=1995 (Vins))

� Arbre algébrique : annee=1995

num

Vins.

Résultat

Exemples

Page 36: Modèle relationnel et algèbre relationnelle

97

Noms des producteurs de Muscadet

Mus σ cru=‘Muscadet’ (V)

RecMus Mus �� RMus.num=R.nvin

ProdMus RecMus �� PRec.nprod=P.num

Resultat Π nom(ProdMus)

Exemples

cru=‘Muscadet’.

nom

Vins

Résultat

Recoltes

Producteurs

num=nvin

nprod=num

Page 37: Modèle relationnel et algèbre relationnelle

98

Numéros des vins ne faisant l’objet d’aucune commandeNumVins Π num(V)

VinsCdes Π nvin(C)

Resultat NumVins – VinsCdes

Exemples

num

Résultat

Vins

nvin

Commandes

-

Page 38: Modèle relationnel et algèbre relationnelle

99

Optimisation

� Noms et prénoms des buveurs habitant Paris ayant commandé du Mâcon 1995 avant le 01 janvier 2000� Plusieurs réponses possibles� Optimiser = choisir la meilleure façon

Optimisation

Page 39: Modèle relationnel et algèbre relationnelle

100

Réponse 1

ville=‘Paris’

Buveurs

num=nb

nvin=num

nom, prenom

Résultat

date < 01/01/2000

Commandes

cru=‘Mâcon’ et

annee=1995

Vins

Optimisation

Page 40: Modèle relationnel et algèbre relationnelle

101

Réponse 2

ville=‘Paris’

Buveurs

num=nb

nvin=num

nom, prenom

Résultat

date < 01/01/2000

Commandes Vins

cru=‘Mâcon’ et

annee=1995

Optimisation

Page 41: Modèle relationnel et algèbre relationnelle

102

Réponse 3

ville=‘Paris’ et

date < 01/01/2000 et

cru=‘Mâcon’ et

annee =1995

Buveurs

num=nb

nvin=num

nom, prenom

Résultat

Commandes Vins

Optimisation

Page 42: Modèle relationnel et algèbre relationnelle

103

Réponse 4

date < 01/01/2000

Commandes

nvin,nb

num=nb

nvin, nom, prenom

cru=‘Mâcon’ et

annee=1995

Vins

num

nvin=num

nom, prenom

Résultat

ville=‘Paris’

Buveurs

nb, nom, prenom

Optimisation

Page 43: Modèle relationnel et algèbre relationnelle

104

Optimisation par le SGBD

� Optimiser :� Le nombre d’E/S� Le temps UC� …

� Facteurs déterminants :� Ordre d'exécution des opérations algébriques� Algorithme implantant les opérations algébriques� Placement des données sur le disque� Taille des relations intermédiaires

Optimisation

Page 44: Modèle relationnel et algèbre relationnelle

105

Restructuration

� Heuristique la plus employée� Remonter les opérateurs unaires (restriction, projection) =>

diminution de la taille des relations� Descendre les jointures

� Propriétés utilisées� Associativité des jointures� Commutativité restriction / projection� Commutativité restriction / jointure� Commutativité projection / jointure

Optimisation

Page 45: Modèle relationnel et algèbre relationnelle

106

Problème

� Libérer l’utilisateur des problèmes d’optimisation� Exprimer une question sans préciser l’enchaînement des

opérations algébriques� � langage non procédural� � langage déclaratif

� Responsabilités du SGBD :� Traduction sous la forme d’un arbre algébrique� Optimisation de l’arbre� Exécution de l’arbre optimisé

Optimisation