Evry, 29-31 mai 2000

publicité
Programme

Introduction aux BD et aux SGBD
Le modèle relationnel
© INT

Le langage de requête SQL

La conception d’une BD relationnelle

Protection des informations

Perspectives des BD
Evry, 29-31 mai 2000
1
Le modèle relationnel

Inventé par E. F. Codd

Laboratoire de recherche IBM à San José

Publication ACM 1970 "A Relational Model of Data for
Large Shared Data Banks"
© INT
Evry, 29-31 mai 2000
2
Les concepts descriptifs
© INT

Notion de domaine

Clé

Produit cartésien

Schéma de relation

Relation

Clé étrangère

Attribut

Métabase

Exemples de relations

Résumé des notions
Evry, 29-31 mai 2000
3
Notion de domaine

Définition
– Ensemble de valeurs

Exemples
– Entier, réel, chaîne de caractères, booléen
– Salaire = 4000...100000
– Couleur = {bleu, blanc, rouge}
– Point = [X: entier, Y: entier]
– Triangle = [P1, P2, P3: Point]
– Polygone = {Point}
© INT
Evry, 29-31 mai 2000
4
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
© INT
Evry, 29-31 mai 2000
5
Produit cartésien (suite)

Exemple
– D1 = {Cadre, Ouvrier, Directeur}
– D2 = {5000, 15000, 30000}
D1 X D2
© INT
D1
Cadre
Cadre
Cadre
Ouvrier
Ouvrier
Ouvrier
Directeur
Directeur
Directeur
D2
5000
15000
30000
5000
15000
30000
5000
15000
30000
Evry, 29-31 mai 2000
6
Relation

Définition
– sous-ensemble du produit cartésien d'une liste de domaines
– caractérisée par un nom.

Exemple
– D1 = Fonction
– D2 = Salaire
Salaire_moyen
© INT
D1
Cadre
Ouvrier
Directeur
D2
15000
5000
30000
Evry, 29-31 mai 2000
7
Relation (suite)

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.
© INT
Evry, 29-31 mai 2000
8
Attribut

Définition
– nom donné à une colonne d'une relation
– prend ses valeurs dans un domaine

Exemple
– Fonction
© INT
Evry, 29-31 mai 2000
9
Exemples de relations
Salaire_moyen
Départements
© INT
D1
Cadre
Ouvrier
Directeur
Nom
R&D
DRH
R&D
R&D
Production
D2
15000
5000
30000
Région
Ile de France
Ile de France
Sarthe
Ile de France
Sarthe
Directeur
Le Blanc
Dupont
Le Bihan
Lajoie
Le Bihan
Nb_employé
100
300
100
200
250
Evry, 29-31 mai 2000
10
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 salaire_moyen ?
– Clé de départements ?

Contrainte d'intégrité
– Toute relation doit posséder une clé renseignée (sans valeur inconnue).
© INT
Evry, 29-31 mai 2000
11
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
– Départements(Nom: texte, Région: texte, Directeur: texte, Nb_employés:
entier)
© INT
Evry, 29-31 mai 2000
12
Schéma de relation (suite)

Intention
– Un schéma de relation: intention de la relation
– table: extension
– Le schéma d'une BD relationnelle: ensemble des schémas des relations
© INT
Evry, 29-31 mai 2000
13
Clé étrangère

Définition
– Une clé étrangère est un groupe d'attributs qui apparaît comme clé dans
une autre relation
– R1(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
© INT
Evry, 29-31 mai 2000
14
Mises à jour et clés étrangères
Département
No_dept
R&D1
R&D2
R&D3
Prod
DRH
Directeur
1234
5678
4545
5678
1111
Employé
No
1234
5678
4545
1111
Nom
Le Blanc
Le Bihan
Lajoie
Dupont
– Insertion: la valeur des attributs doit exister dans la relation référencée.

Insertion de (R&D4, 2222) ?
– Suppression dans la relation référencée, les n-uplets référençant doivent
disparaître.

Suppression de l'employé 5678
– Les clés étrangères définissent les liens entités-associations.
© INT
Evry, 29-31 mai 2000
15
Clé étrangère

Exemples
– Département(No_départ, Libellé, Région)
– Employé(No_emp, Nom, Prénom, Adresse)
– Travaille_dans(No_dept, No_emp, Date_embauche)
– Clés étrangères:
© INT

No_dept dans Travaille_dans référence No_départ dans Département;

No_emp dans Travaille_dans référence No_emp dans Employé.
Evry, 29-31 mai 2000
16
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
© INT
Evry, 29-31 mai 2000
17
Résumé des notions
© INT
Evry, 29-31 mai 2000
18
Les opérateurs de manipulation

Tout résultat d'une opération est une relation; celui-ci peut
donc être réutilisé en entrée d'un nouvel opérateur.

Les opérateurs peuvent être classifiés en :
– opérateurs ensemblistes / opérateurs relationnels
– opérateurs unaires / opérateurs binaires
– opérateurs de base / opérateurs dérivés
© INT

Base: union, différence, restriction, projection, produit cartésien

dérivés: intersection, jointure, division
Evry, 29-31 mai 2000
19
Union

But
– Permet de fusionner deux relations

Contraintes
– Binaire
– Même schéma
© INT
Evry, 29-31 mai 2000
20
Union (suite)

Exemple
Employé
No_emp
1234
4545
5678
1111
Nom
Le Blanc
Lajoie
Le Bihan
Dupont
Employé
© INT
Embauche No_emp
2222
3333
No_emp
1234
4545
5678
1111
2222
3333
Nom
Martin
Augier
Nom
Le Blanc
Lajoie
Le Bihan
Dupont
Martin
Augier
Evry, 29-31 mai 2000
21
Union (suite)

Notation
– Notation textuelle: T = R S
– Notation graphique: R
S

T
© INT
Evry, 29-31 mai 2000
22
Différence

But
– Conserver les tuples d'une relation ne figurant pas dans une autre

Contraintes
– Binaire
– Même schéma
– Non commutatif
© INT
Evry, 29-31 mai 2000
23
Différence (suite)

Exemple
Employé
No_emp
1234
4545
5678
2222
3333
1111
Nom
Le Blanc
Lajoie
Le Bihan
Martin
Augier
Dupont
Employé
© INT
Licenciement No_emp
1111
No_emp
1234
4545
5678
2222
3333
Nom
Dupont
Nom
Le Blanc
Lajoie
Le Bihan
Martin
Augier
Evry, 29-31 mai 2000
24
Différence (suite)

Notation
– Notation textuelle: T = R - S
– Notation graphique: R
S

T
© INT
Evry, 29-31 mai 2000
25
Restriction

But
– Permet de "sélectionner" des tuples
– La restriction réduit la taille de la relation verticalement

Contraintes
– Unaire
– Spécifier une condition
© INT
Evry, 29-31 mai 2000
26
Restriction (suite)

Exemple
Employé

No_emp
1234
4545
5678
2222
3333
Nom
Le Blanc
Lajoie
Le Bihan
Martin
Augier
Restriction telle que salaire 
15000
Employé
© INT
Salaire
15000
14000
16000
14000
16000

Restriction telle que Nom > 'Le
Blanc'
No_emp
1234
4545
2222
Nom
Le Blanc
Lajoie
Martin
Salaire
15000
14000
14000
Employé
No_emp
2222
Nom
Martin
Salaire
14000
Evry, 29-31 mai 2000
27
Restriction (suite)

Notation
– Notation textuelle: T =  cond (R)
– Notation graphique:
R
Cond
T
© INT
Evry, 29-31 mai 2000
28
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
© INT
Evry, 29-31 mai 2000
29
Projection (suite)

Employé


Exemple
No_emp
1234
4545
5678
2222
3333
Nom
Le Blanc
Lajoie
Le Bihan
Martin
Augier
Employé
© INT
Employé
Salaire
15000
14000
16000
14000
15000
Projection sur No_emp
No_emp
1234
4545
5678
2222
3333
Projection sur Nom

Nom
Le Blanc
Lajoie
Le Bihan
Martin
Augier
Projection sur No_emp et salaire
Employé
No_emp
1234
4545
5678
2222
3333
Salaire
15000
14000
16000
14000
15000
Evry, 29-31 mai 2000
30
Projection (suite)

Notation
– Notation textuelle: T =  liste d'attributs (R)
– Notation graphique:
R
Attributs
T
© INT
Evry, 29-31 mai 2000
31
Produit cartésien

But
– Ensemble de tous les tuples obtenus par concaténation de chaque tuple de
R avec chaque tuple de S
– Relation X Relation Relation

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)
© INT
Evry, 29-31 mai 2000
32
Produit cartésien (suite)

Exemple
Employé
No_emp
1234
5678
2222
3333
Nom
Le Blanc
Le Bihan
Martin
Augier
Employé X Département
© INT
Salaire
15000
16000
14000
15000
No_emp
1234
1234
5678
5678
2222
2222
3333
3333
Nom
Le Blanc
Le Blanc
Le Bihan
Le Bihan
Martin
Martin
Augier
Augier
Département No_dept
R&D1
R&D2
Salaire
15000
15000
16000
16000
14000
14000
15000
15000
No_dept
R&D1
R&D2
R&D1
R&D2
R&D1
R&D2
R&D1
R&D2
Evry, 29-31 mai 2000
33
Produit cartésien (suite)

Notation
– Notation textuelle: T = R X S
– Notation graphique: R
S
X
T
© INT
Evry, 29-31 mai 2000
34
Intersection

But
– Permet d’obtenir l’ensemble des tuples appartenant à deux relations

Contraintes
– Binaire
– Même schéma
© INT
Evry, 29-31 mai 2000
35
Intersection (suite)

Exemple
Directeur R&D No_emp
1234
4545
5678
1111
Nom
Le Blanc
Lajoie
Le Bihan
Dupont
Directeur Prod No_emp
5678
Nom
Le Bihan
Directeurs R&D et Prod No_emp Nom
5678
Le Bihan
© INT
Evry, 29-31 mai 2000
36
Intersection (suite)

Notation
– Notation textuelle: T = R S
– Notation graphique: R
S

T

Dérivation
– T = R - (R - S)
– T = S - (S - R)
© INT
Evry, 29-31 mai 2000
37
Jointure

But
– Permet d’établir le lien sémantique entre les relations

Contraintes
– Binaire
– Schéma du résultat:
© INT

R(a1, a2, ...., an)

S(b1, b2, ..., bp)

T = R X S  T(a1, a2, ...., an, b1, b2, ..., bp)
Evry, 29-31 mai 2000
38
Jointure (suite)

Exemple
Département
No_dept
R&D1
R&D2
R&D3
Prod
DRH
Département
© INT
Directeur
1234
5678
4545
5678
1111
No_dept
R&D1
R&D2
R&D3
Prod
DRH
Directeur
1234
5678
4545
5678
1111
Employé
No
1234
5678
4545
5678
1111
No
1234
4545
5678
1111
2222
3333
Nom
Le Blanc
Lajoie
Le Bihan
Dupont
Martin
Augier
Nom
Le Blanc
Le Bihan
Lajoie
Le Bihan
Dupont
Evry, 29-31 mai 2000
39
Jointure (suite)

Notation
– Notation textuelle: T = R
><
S
Critère de jointure
– Notation graphique : R
S
Critère de jointure
T

Dérivation
– Produit cartésien + restriction
© INT
Evry, 29-31 mai 2000
40
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:
© INT

R(a1, a2, ...., an, b1, b2, ..., bp)

S(b1, b2, ..., bp)

T = R ¸ S  T(a1, a2, ...., an)
Evry, 29-31 mai 2000
41
Division (suite)

Exemple
Projet
No_proj
P2
P1
P5
P3
P1
P1
P3
No_emp
1234
5678
5678
1111
1234
1111
5678
– Quels sont les employés qui travaillent sur tous les projets ?
© INT
Evry, 29-31 mai 2000
42
Division (suite)

Exemple
– Construire R: ensemble de toutes les informations dont on a besoin
– Construire S: ensemble correspondant à "tous les" (projets)
R = Projet
No_proj
P2
P1
P5
P3
P1
P1
P3
T
© INT
No_emp
1234
5678
5678
1111
1234
1111
5678
S
No_projet
P1
P2
P3
P5
No_emp
5678
Evry, 29-31 mai 2000
43
Division (suite)

Notation
– Notation textuelle: T = R S
– Notation graphique: R
S

T

Dérivation
– Projection + Produit cartésien + Différence.
– R  S = T1 - T2 avec:
© INT

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)
Evry, 29-31 mai 2000
44
Bilan
Opérateurs
Union
Différence
Restriction
Projection
Produit cartésien
Intersection
Jointure
Unaire/Binaire
Binaire
Binaire
Unaire
Unaire
Binaire
Binaire
Binaire
Contraintes
Même schéma
Même schéma
Condition
Liste attributs
Schéma résultat
Même schéma
Schéma résultat
Notations
RS
R-S
 cond (R)
 liste d'attributs (R)
RXS
RS
R  S
critère
Division
© INT
Binaire
Schémas
R S
Evry, 29-31 mai 2000
45
Exemples de requêtes en algèbre
relationnelle

Base de données
– Employé(Nom_emp, Prénom_emp, No_ss, Date_naiss, Adresse_emp,
Sexe, Salaire, No_chef, Nod)
– Département(Nom_d, No_dept, No_dir, Date_affect)
– Dept_local(Num_dept, Id_loc)
– Projet(Nom, No_proj, Local_proj, Nod)
– Travaille_sur(No_ss, No_projet, Nb_heures)
© INT
Evry, 29-31 mai 2000
46
Requête 1

Nom et adresse de tous les employés travaillant pour le
département "R&D"

Solution textuelle
– DEPT_RECH <-  Nom_d="R&D" (Département)
– EMP_DE_RECH <- DEPT_RECH >< Employé
No_dept = Nod
– RESULTAT <-  Nom_emp, Prénom_emp, Adresse_emp (EMP_DE_RECH)
© INT
Evry, 29-31 mai 2000
47
Arbre algébrique (Requête 1)
© INT
Evry, 29-31 mai 2000
48
Requête 2

Pour chaque projet situé à Paris, donner le numéro du
projet, le numéro du département correspondant, et le nom,
l'adresse et la date de naissance du directeur

Solution textuelle
– PROJ_PARIS <-  Local_proj="Paris" (Projet)
– DEPT_DE_PROJ_PARIS <- PROJ_PARIS >< Département
Nod= No_dept
– DIR_DE_PROJ_PARIS <- DEPT_DE_PROJ_PARIS >< Employé
No_dir= No_ss
– RESULTAT <-  No_proj, No_dept, Nom_emp, Adresse_emp, Date_naiss
(DIR_DE_PROJ_PARIS)
© INT
Evry, 29-31 mai 2000
49
Arbre algébrique (Requête 2)
© INT
Evry, 29-31 mai 2000
50
Requête 3

Donner le nom des employés qui travaillent sur tous les
projets du departement

Solution textuelle
– PROJ_DE_DEPT5 <-  No_proj ( Nod=5 (Projet))
– EMP_PROJ <-  No_ss, No_projet(Travaille_sur)
– EMP_PROJETS_DEPT5 <- EMP_PROJ  PROJ_DE_DEPT5
– RESULTAT <-  Nom_emp (EMP_PROJETS_DEPT5 >< Employé)
No_ss = No_ss
© INT
Evry, 29-31 mai 2000
51
Arbre algébrique (Requête 3)
© INT
Evry, 29-31 mai 2000
52
Requête 4

Donner la liste des numéro de projets sur lesquels travaille
"Karl", soit en tant que directeur soit en tant qu'exécutant

Solution textuelle
– EMP_KARL <-  Prénom_emp="Karl" (Employé)
– TRAVAILLEUR_KARL  No_projet (EMP_KARL >< Travaille_sur)
No_ss = No_ss
– DEPT_DIRIGES_KARL  No_dept (EMP_KARL >< Département)
No_ss = No_dir
– PROJ_DIR_KARL <-  No_projet (DEPT_DIRIGES_KARL >< Projets)
No_dept = No_d
– RESULTAT <- TRAVAILLEUR_KARL  PROJ_DIR_KARL
© INT
Evry, 29-31 mai 2000
53
Arbre algébrique (Requête 4)
© INT
Evry, 29-31 mai 2000
54
Requête 5

Donner le nom des employés qui ne travaillent sur aucun
projet

Solution textuelle
– TOUS_EMP <-  No_ss (Employé)
– EMP_SUR_PROJ <-  No_ss (Travaille_sur)
– EMP_SANS_PROJ <- TOUS_EMP - EMP_SUR_PROJ
– RESULTAT <-  Nom_emp (EMP_SANS_PROJ >< Employé)
No_ss = No_ss
© INT
Evry, 29-31 mai 2000
55
Arbre algébrique (Requête 5)
© INT
Evry, 29-31 mai 2000
56
Requête 6

Donner le nom des directeurs qui travaillent au moins sur
un projet

Solution textuelle
– DIREC <-  No_dir (Département)
– TRAV <-  No_ss (Travaille_sur)
– RESULTAT <-  Nom_emp ((DIREC  TRAV) >< Employé)
No_ss = No_ss
© INT
Evry, 29-31 mai 2000
57
Arbre algébrique (Requête 6)
© INT
Evry, 29-31 mai 2000
58
Optimisation de requêtes
© INT

On peut répondre de diverses façon à une même requête

Optimiser = choisir la meilleure façon
Evry, 29-31 mai 2000
59
Exemple: Requête 1
© INT
Evry, 29-31 mai 2000
60
Facteurs déterminants
© INT

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
Evry, 29-31 mai 2000
61
Restructuration

Règles
– Exécuter les opérateurs unaires le plus tôt possible (restriction, projection)
=> diminution de la taille des relations
– Exécuter les jointures le plus tard possible

Propriétés
– Associativité des jointures
– Commutativité restriction / projection
– Commutativité restriction / jointure
– Commutativité projection / jointure
© INT
Evry, 29-31 mai 2000
62
Téléchargement