Vous êtes sur la page 1sur 56

Le modle relationnel

8Les structures de donnes 8Les rgles dintgrit structurelle 8Lalgbre relationnelle

Le modle relationnel
Invent par E. F. Codd en 1970 Fond sur la thorie mathmatique des ensembles et sur la notion de base qui lui est rattache : la relation.

Objectifs dun modle relationnel:


Rappel
Proposer une indpendance des donnes et des traitements. Permettre de grer les problmes de cohrence et de redondance des donnes. Utiliser des structures de donnes simples et issues de la vie courante (tables). Proposer des langages de manipulation de donnes non procduraux Permettre des vues utilisateurs diffrentes des relations implantes 3

Le modle relationnel :
Les 10 concepts cls (1/2)
La dfinition du domaine dun attribut Le concept de relation Les attributs Les tuples Le schma dune relation
4

Le modle relationnel :
Les 10 concepts cls (2/2)
La cl La contrainte rfrentielle Les valeurs nulles La contrainte dentit La contrainte de domaine
5

Les structures de donnes :


Domaine dun attribut
Dfinition : ensemble des valeurs prises par un attribut Un domaine se dfinit soit :
en extension
8ex. : couleur_yeux = {bleu, vert, marron, noir}

en comprhension
8ex. : ge_enfants = {0, 15}
6

Dfinition du produit cartsien:


Rappel
Soient deux ensembles O et P, on appelle Produit cartsien de O et P, l'ensemble not OP , des couples (x,y) o xO et yP.
tudiants={ A , T , M } Professeurs = { L , Y } tudiants Professeurs={ (A,L) , (A,Y) , (T,L) , (T,Y) , (M,L) , (M,Y) }

Les structures de donnes :


la relation
Dfinition : Sous-ensemble du produit cartsien dun ensemble dattributs Nom de la relation
Attributs , champs

PRODUIT
N u m _ p ro d N o m _ p ro d Q t _ sto c k
Occurrences , Tuples, Enregistrements

24 141 67

C h a ise T a b le L it

63 27 12

Caractrise par : Cardinalit de la relation (nombre de lignes) Unicit du nom des attributs Indiffrence de lordre des lignes et des colonnes Nombre de colonnes = degr

Les structures de donnes :


Schma de relations
4 Le schma de relation reprsente la structure invariante dune relation. 4Il est constitu du nom de la relation suivi de la liste des attributs et de leurs domaines associs
PRODUIT (NPRODUIT : entier, NOM : chane, QTE EN STOCK : entier>0)

Nom relation

Attributs (cl) (soulign) Attributs non cl


9

Rgles dintgrit structurelle


Assertions qui doivent tre vrifies par les donnes contenues dans la base.
Rgles inhrentes au modle relationnel

10

Rgles dintgrit structurelle du modle relationnel


Unicit de cl Contrainte de rfrence Contrainte dentit Contrainte de domaine
11

Cl dune relation
Une relation tant un ensemble de tuples, il ne peut y avoir deux tuples identiques dans une relation. Cl : ensemble minimal dattributs dont la connaissance des valeurs permet didentifier un tuple unique

12

Contrainte rfrentielle(1/2)
Contrainte dintgrit portant sur une relation R1, consistant imposer que la valeur dun groupe dattributs apparaisse comme valeur de cl dans une autre relation R2. 8Elles dfinissent des liens obligatoires entre relations. 8Garantissent le succs des oprations de mise jour.
13

Contrainte rfrentielle(2/2)
Les contraintes de rfrence sont lies la notion de cls trangres : 8Lors de linsertion dun tuple dans une relation soumise une contrainte rfrentielle ( relations rfrenantes ) , il faut vrifier que les valeurs de cls trangres existent dans les relations rfrences. 8Lors de la suppression dun tuple dans une relation rfrence, il faut vrifier quaucun tuple de la relation rfrenante ne fasse rfrence au tuple que lon souhaite supprimer. soit le SGBD refuse la suppression 14 soit il la rpercute en cascade.

Contrainte dentit
Lorsque la valeur dun attribut est inconnue, on utilise une valeur conventionnelle appele valeur nulle La contrainte dentit impose que toute relation possde une cl primaire et que tout attribut participant cette cl primaire soit non null.
15

Contrainte de domaine

Les valeurs dun attribut doivent vrifier une assertion logique

16

Algbre relationnelle :
Dfinition
Collection doprations formelles qui agissent sur des relations et produisent une relation en rsultat. Dans la plupart des systmes relationnels, la rponse une requte sobtient par lutilisation dun ou plusieurs oprateurs relationnels.
17

Algbre relationnelle :
Oprateurs relationnels
Oprateurs unaires :
8Slection 8Projection 8Complment

Oprateurs binaires :
8Union 8Intersection 8Diffrence 8Les produits et Jointures 8Division

Thorie des ensembles

18

Algbre relationnelle :
Slection (ou restriction) (1/3)
Elimination des occurrences de la relation qui ne satisfont pas une condition donne. Ex. : Considrons la relation Commande
N COMMANDE 28 29 30 52 DATE Octobre Octobre Novembre Dcembre MONTANT 1986 2024 1610 512

La slection permet de rpondre la question : Donnez les commandes passes aprs le mois doctobre
N COMMANDE 30 52 DATE Novembre Dcembre MONTANT 1610 512

La condition peut contenir plusieurs critres


19

Algbre relationnelle :
Slection (ou restriction) (2/3)
Opration sur une relation R1 produisant une relation R2 de mme schma, mais comportant les seuls tuples qui vrifient la condition prcise en argument. Notation : condition (R1) R2=selection (R1,condition)

20

Algbre relationnelle :
Slection (ou restriction) (3/3)
Oprateurs de comparaison
=, , <, >, , , BETWEEN, IN, LIKE

Combinaison de plusieurs conditions relies par des oprateurs logiques :


AND, OR, NOT

Valeurs NULL
21

Algbre relationnelle :
Projection (1/2)
Consiste supprimer des attributs dune relation Soit la relation ETUDIANT :
Num_tu 521 632 569 451 Nom_tu Nom1 Nom2 Nom3 Nom1 Nom_dpart Informatique Mathmatique Informatique Informatique Adr_dpart Fes Meknes Rabat Rabat

La projection sur nom_tu, nom_dpart donne :


Nom_tu Nom1 Nom2 Nom3 Nom_dpart Informatique Mathmatique Informatique

La projection sur nom_dpart, adr_dpart donne :


Nom_dpart Informatique Mathmatique Informatique Adr_dpart Fes Meknes Rabat
22

Algbre relationnelle :
Projection (2/2)
Opration sur une relation R1 consistant composer une relation R2 en enlevant la relation initiale tous les attributs non mentionns en oprandes. Notation: A1, A2, , An (R1) R2=projection(R1;A1,A2,,An)
23

Algbre relationnelle :
Complment (1/2)
Consiste construire la relation qui contient toutes les occurrences qui nexistent pas (cest la relation qui exprime le FAUX) Soit la relation R :
Professeur Prof1 Prof1 Prof2 Prof2 Prof2 Prof3 Prof3 Elve Nom2 Nom1 Nom2 Nom1 Nom4 Nom1 Nom4

Le complment de R sera :
Professeur Prof1 Prof3 Elve Nom4 Nom2

24

Algbre relationnelle :
Complment (2/2)
Ensemble des tuples du produit cartsien des domaines des attributs dune relation nappartenant pas cette relation Notation: Not (R1) R2=Comp (R1)

25

Algbre relationnelle :
Union (1/2)
Permet de fusionner deux relations en une seule. Cette opration nest possible que sur des relations ayant les mmes attributs. Soit la relation OUVRIER
Num_empl 15 17 56 Nom_empl Nom1 Nom3 Nom2

Soit la relation CADRE


Num_empl 3 21 Nom_empl Nom5 Nom6

Lunion permet de construire la relation EMPLOYE


Num_empl 3 21 15 17 56 Nom_empl Nom5 Nom6 Nom1 Nom3 Nom2

26

Algbre relationnelle :
Union (2/2)
Opration portant sur deux relations de mme schma R1 et R2, consistant construire une relation de mme schma R3 ayant pour tuples ceux appartenant R1 ou (inclusif) R2. Notation: R1R2 R3=Union (R1,R2)
27

Algbre relationnelle :
Intersection (1/2)
Permet de fournir des occurrences prsentes dans lune et lautre des relations. Cette opration nest possible que sur des relations ayant les mmes attributs. Soit la relation INGENIEUR Soit la relation CHEF DE SERVICE
Num_empl 3 21 15 56 Nom_empl Nom5 Nom6 Nom1 Nom2 Num_empl 3 15 28 Nom_empl Nom5 Nom1 Nom4

Lintersection permet de construire la relation suivante


Num_empl 3 15 Nom_empl Nom5 Nom1
28

Algbre relationnelle :
Intersection (2/2)
Opration portant sur deux relations de mme schma R1 et R2 consistant construire une relation de mme schma R3 ayant pour tuples ceux appartenant la fois R1 et R2. Notation: R1 R2 R3=Intersection (R1,R2)
29

Algbre relationnelle :
Diffrence (1/2)
Permet dobtenir les occurrences de la relation 1 qui nappartiennent pas la relation 2. Les deux relations doivent avoir les mmes attributs. Cette opration nest pas commutative. Soit la relation INSCRITS
Nom_tu Nom2 Nom5 Nom2 Nom2 Nom5 Nom_UV Maths Maths Physique Chimie Chimie

Soit la relation RECUS


Nom_tu Nom2 Nom5 Nom2 Nom_UV Maths Maths Chimie

La diffrence permet de construire la relation suivante


Nom_tu Nom_UV

Nom2 Nom5

Physique Chimie

30

Algbre relationnelle :
Diffrence (2/2)
Opration portant sur deux relations de mme schma R1 et R2, consistant construire une relation de mme schma R3 ayant pour tuples ceux appartenant R1 et nappartenant pas R2. Notation : R1 R2 R3=Difference(R1,R2)
31

Algbre relationnelle :
Produit cartsien (1/2)
Le produit cartsien se construit en combinant toutes les possibilits. Soit la relation LIVRE Soit la relation EDITION
Titre X Y Auteur Nom2 Nom1 Couleur Rouge Blanc Vert Edition Luxe Broch Cartonn

Le produit cartsien permet de construire la relation suivante


Titre X X X Y Y Y Auteur Nom2 Nom2 Nom2 Nom1 Nom1 Nom1 Couleur Rouge Blanc Vert Rouge Blanc Vert Edition Luxe Broch Cartonn Luxe Broch Cartonn
32

Algbre relationnelle :
Produit cartsien (2/2)
Opration portant sur deux relation R1 et R2, consistant construire une relation R3 ayant pour schma la concatnation de ceux des relations oprandes et pour tuples toutes les combinaisons des tuples des relations oprandes Notation: R1 R2 R3=Produit (R1,R2)
33

Algbre relationnelle :
Thta-produit (thta-jointure) (1/4)
Le thta-produit consiste en un produit cartsien doubl dune slection. On ne retient que les occurrences qui vrifient une condition logique. Thta prend les valeurs : <, <=, >, >=, != ou <> Soit la relation EMPLOYE
Nom_emp E1 E2 E3 Salaire_emp 20000 10000 6000

Soit la relation CHEF


Nom_chef Nom2 Nom1 Salaire_chef 25000 12000

Le thta-produit permet de rpondre la question : Donnez le nom des employs qui gagnent plus quun chef de service On effectue dabord un produit cartsien puis une slection dont la condition est salaire_emp > salaire_chef
34

Algbre relationnelle :
Thta-produit (thta-jointure) (2/4)
Produit cartsien
Nom_emp E1 E1 E2 E2 E3 E3 Salaire_emp 20000 20000 10000 10000 6000 6000 Nom_chef Nom2 Nom1 Nom2 Nom1 Nom2 Nom1 Salaire_chef 25000 12000 25000 12000 25000 12000

Slection
Nom_emp E1 Salaire_emp 20000 Nom_chef Nom1 Salaire_chef 12000

35

Algbre relationnelle :
Thta-produit (thta-jointure) (3/4)
Oprande consistant rapprocher selon une condition les tuples de deux relations R1 et R2 afin de former une relation R3 qui contient lensemble de tous les tuples obtenus en concatnant un tuple de R1 et un de R2 vrifiant la condition de rapprochement.

36

Algbre relationnelle :
Thta-produit (thta-jointure) (4/4)
Notation: R1 condition R2 R3= -jointure(R1,R2; condition)

37

Algbre relationnelle :
Jointure naturelle (quijointure) (1/4)
La jointure naturelle permet de raliser une liaison logique entre deux tables. La condition de slection est lgalit entre les deux cls des deux relations. Cest un thta-produit qui prend la valeur " = " entre des attributs identiques.
Soit la relation EMPLOYE
Num_emp 02 10 72 62 Nom_emp Nom2 Nom1 Nom2 Nom4 Num_service S1 S8 S6 S1

Soit la relation SERVICE


Num_service S1 S6 S8 S4 Nom_service Informatique Mathmatiques Sociologie Anglais

38

Algbre relationnelle :
Jointure naturelle (quijointure) (2/4)
La jointure naturelle permet de rpondre la question : Donnez le nom des employs et le nom de leur service.
Num_emp 02 10 72 62 Nom_emp Nom2 Nom1 Nom2 Nom4 Num_service S1 S8 S6 S1 Nom_service Informatique Sociologie Mathmatiques Informatique

Rq : Le service S4 Anglais qui na pas dassoci , nest pas prsent dans la jointure. La jointure naturelle est lune des oprations fondamentales de lalgbre relationnelle.
39

Algbre relationnelle :
Jointure naturelle (quijointure) (3/4)
Oprande consistant rapprocher les tuples de deux relations R1 et R2 afin de former une troisime relation R3 dont les attributs sont lunion des attributs de R1 et R2, et dont les tuples sont obtenus en composant un tuple de R1 et un tuple de R2 ayant mmes valeurs pour les attributs de mme nom.
40

Algbre relationnelle :
Jointure naturelle (quijointure) (4/4)
Notation: R1 condition R2 R3=jointure(R1, R2; condition)

41

Algbre relationnelle :
Jointure externe (1/3)
Il sagit dune jointure naturelle qui permet de faire figurer les occurrences qui nont pas dassoci dans lautre relation. On leur associe alors la valeur nulle (symbole ).
Soit la relation EMPLOYE
Num_emp 02 10 72 62 25 Nom_emp emp1 emp2 emp1 emp3 emp4 Num_service S1 S8 S6 S1 S5

Soit la relation SERVICE


Num_service S1 S6 S8 S4 S2 Num_btiment B8 B9 B3 B3 B1

42

Algbre relationnelle :
Jointure externe (2/3)
La jointure extrieure conduit la relation :
Num_emp 02 10 72 62 25 Nom_emp emp1 emp2 emp1 emp3 emp4 Num_service S1 S8 S6 S1 S5 S4 S2 Num_btiment B8 B3 B9 B8 B3 B1

43

Algbre relationnelle :
Jointure externe (3/3)
R3 contient les tuples issus de la jointure de R1 et R2 ainsi que ceux de R1 et R2 ne participant pas la jointure, avec des valeurs nulles pour les attributs non renseigns.

44

Algbre relationnelle : Jointure externe gauche (1/3)


Permet de faire apparatre en totalit les occurrences dune des deux relations. On dfinira une semi-jointure gauche ou une semi-jointure droite. Exemple de semi-jointure droite :
Soit la relation EMPLOYE
Num_emp 02 10 72 62 25 Nom_emp emp1 emp2 emp1 emp3 emp4 Num_service S1 S8 S6 S1 S5

Soit la relation SERVICE


Num_service S1 S6 S8 S4 S2 Num_btiment B8 B9 B3 B3 B1
45

Algbre relationnelle : Jointure externe gauche (2/3)


Le rsultat de la semi-jointure gauche donne le rsultat suivant :
Num_emp 02 10 72 62 25 Nom_emp emp1 emp2 emp1 emp3 emp4 Num_service S1 S8 S6 S1 S5 Num_btiment B8 B3 B9 B8 _

46

Algbre relationnelle : Jointure externe gauche (3/3)


Opration portant sur R1 et R2 donnant en rsultat les tuples de R1 qui participent la jointure des deux relations

47

Algbre relationnelle :
Auto-jointure (1/2)
Cest une jointure naturelle dans laquelle les deux relations initiales sont R1 et R1. Soit la relation Enseignant
Num_ens 12 56 27 43 51 Nom_ens emp1 emp2 emp1 emp3 emp4 Grade Assistant MDC Assistant MDC MDC Salaire 9 500 10 500 11 500 12 000 12 500

48

Algbre relationnelle :
Auto-jointure (2/2)
Lauto-jointure permet de rpondre la question suivante : Donnez le nom des assistants qui gagnent plus quun MDC ? Relation rsultat
Nom_ens emp1
49

Algbre relationnelle :
Division (1/3)
Permet dobtenir les occurrences de R1 qui sont associes toutes les occurrences de R2. Une relation est donc divise par une autre relation contenant exclusivement des attributs de la premire relation
Soit la relation suivante
Nom_tu Etu1 Etu2 Etu3 Etu4 Etu1 Etu2 Etu3 Nom_prof Prof3 Prof1 Prof3 Prof4 Prof1 Prof3 Prof4

Soit la relation suivante


Nom_tu Etu1 Etu2

50

Algbre relationnelle :
Division (2/3)
La division permet de rpondre la question suivante : Donnez le nom des profs qui enseignent conjointement aux lves figurant dans la seconde relation.

La relation rsultat est :

Nom_prof Prof3 Prof1

51

Algbre relationnelle :
Division (3/3)
Notation R1 R2

52

Fonctions de calcul (1/2)


Expression arithmtique construite partir dattributs dune relation, de constantes, doprateurs arithmtiques et de fonctions
8Oprateurs arithmtiques
+ / *

8Fonctions
somme moyenne maximum, minimum compte
53

Fonctions de calcul (2/2)


Ces fonctions sont lies une opration
Par exemple, avec une projection on a :

A1, A2*A4-10 (R1)

54

Les agrgats (1/2)


Partitionnement horizontal dune relation en fonction des valeurs dun groupe dattributs, suivi dun regroupement des valeurs de chaque groupe par application dune fonction de calcul.

55

Les agrgats (2/2)


Notation :
Agrgat (R1 ; attribut de regroupement ; attribut de calcul)

Cumul
R = cumul(relation, attribut de regroupement, attribut de calcul) Ou R=regrouper_calculer (relation,attribut de regroupement, cumul(attribut de calcul))

Compte
R = compte(relation, attribut de regroupement)
56