1 modèle relationnel de données witold litwin 2 base de données relationnelle fichier...

58
Modèle Relationnel de Données Witold Litwin

Upload: cosme-lebreton

Post on 03-Apr-2015

125 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

1

Modèle Relationnel de Données

Witold Litwin

Page 2: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

2

Base de données relationnelle

Fichier = table ou relationDonnée = ligne ou attribut atomique Opérations = transformations de tables en une table

Opérationrelationnelle

Page 3: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

3

Base de données relationnelle

Une collection d'objets :Relations réelles (tables de base)Contraintes d'intégrité (surtout référentielle)

intra-relationnelles monoattribut et multiattribut

inter-relationnelles (et multiattribut)

Déclencheurs (ang. triggers)notamment pour maintenir l'intégrité

Autres (procédures stockées…) Schéma conceptuel = Définition de la

collection

Page 4: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

4

Empl (E#, Nom, Prénom, Né, Rue, CodePost, Ville, Dep#) ;E# Counter ; Nom Text ; Né Date ; Dep# Int...:Syst-date - Né < 65 * Contrainte de validationDep# Not Null ; * Contrainte d'existence

Taches (T#, Description) ;Planning (E#, T#, Date-fin, Avancement) ;Dep (Dep#, Name) ;Trigger on Empl

On Insert Check-Ref-Int (Dep, Empl.Dep#) ; Autres Déclencheurs utiles ?

Ce schéma est possible sous MsAccess, bien que exprimé différemment

Schéma de BD Entrepriseclé

Page 5: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

5

Schémas Externes

Schéma (vue) externe = Collection de vues relationnels (tables virtuelles dérivées de relations réelles)

Un usager ne voit pas de différence entre une vue relationnelle et une table réelle En principe !

Une vue relationnelle n'est pas une vue externe au sens ANSI-SPARC

Celle-ci serait une base virtuelle

Page 6: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

6

P# PNAME COLOR WEIGHT CITYP1 Nut Red 12 London

P2 Bolt Green 17 Paris

P3 Screw Blue 14 Rome

P4 Screw Red 12 London

P5 Cam Blue 19 Paris

P6 Cog Red 19 London

P

Page 7: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

7

P# PNAME COLOR WEIGHT CITYP1 Nut Red 12 London

P2 Bolt Green 17 Paris

P3 Screw Blue 14 Rome

P4 Screw Red 12 London

P5 Cam Blue 19 Paris

P6 Cog Red 19 London

P

P# PNAME COLORP1 Nut Red

P2 Bolt Green

P3 Screw Blue

P4 Screw Red

P5 Cam Blue

P6 Cog Red

P1

Create View P1 asselect P#, PNAME, COLORfrom P;

Page 8: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

8

P# PNAME COLOR WEIGHT CITYP1 Nut Red 12 London

P2 Bolt Green 17 Paris

P3 Screw Blue 14 Rome

P4 Screw Red 12 London

P5 Cam Blue 19 Paris

P6 Cog Red 19 London

P

P# PNAME COLORP1 Nut Red

P2 Bolt Green

P3 Screw Blue

P4 Screw Red

P5 Cam Blue

P6 Cog Red

P1

Create View P1 asselect P#, PNAME, COLORfrom P;

P# PNAME COLORP1 Nut Red

P4 Screw Red

P6 Cog Red

P2

Create View P2 asselect P#, PNAME, COLORfrom P where CITY = 'London';

Page 9: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

9

P# PNAME COLOR WEIGHT CITYP1 Nut BLUE 12 London

P2 Bolt Green 17 Paris

P3 Screw Blue 14 Rome

P4 Screw Red 12 London

P5 Cam Blue 19 Paris

P6 Cog Red 19 London

P

Page 10: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

10

P# PNAME COLOR WEIGHT CITYP1 Nut BLUE 12 London

P2 Bolt Green 17 Paris

P3 Screw Blue 14 Rome

P4 Screw Red 12 London

P5 Cam Blue 19 Paris

P6 Cog Red 19 London

P

P# PNAME COLORP1 Nut BLUE

P2 Bolt Green

P3 Screw Blue

P4 Screw Red

P5 Cam Blue

P6 Cog Red

P1

P# PNAME COLORP1 Nut BLUE

P4 Screw Red

P6 Cog Red

P2

Page 11: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

11

Base relationnelleTables réelles

Page 12: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

12

Base relationnelleTables réelles et vues

Page 13: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

13

Relations

Di ; i = 1,2..n des ensembles dits domaines Une relation R est un sous-ensemble de

produit cartésien: Di R Di,1 x Di,2 ... x ... Di,k k n

Dans une BD relationnelle, on n’a que des relations finies

Les Di,j sont les attributs de R ; les rôles de domaines (Codd)

Page 14: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

14

Les noms R et Di,j constituent le schéma de la relation

Ce schéma et l'ensemble des éléments possibles de R constituent une intention de R.

Les éléments de R y présent à un moment donnée constituent une extension de R.

Une mise à jour modifie une extension et change l'état de la base

Schéma d'une relation

Page 15: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

15

S# SNAME STATUS CITYS1 Smith 20 London

S2 Jones 10 Paris

S3 Blake 30 Paris

S4 Clark 20 London

S5 Adams 30 Athens

P# PNAME COLOR WEIGHT CITYP1 Nut Red 12 London

P2 Bolt Green 17 Paris

P3 Screw Blue 14 Rome

P4 Screw Red 12 London

P5 Cam Blue 19 Paris

P6 Cog Red 19 London

S# P# QTYS1 P1 300

S1 P2 200

S1 P3 400

S1 P4 200

S1 P5 100

S1 P6 100

S2 P1 300

S2 P2 400

S3 P2 200

S4 P2 200

S4 P4 300

S4 P5 400

Un état de la base S-P

S

P

SP

Intention de S

Une extension

de S

Page 16: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

16

Deux relations R et R' sont égales si elles diffèrent seulement par ordre :

d'attributs (colonnes) de tuples (lignes) Il n'y a pas de tuples égaux dans une

relation

Egalité de relations

Page 17: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

17

S# SNAME STATUS CITYS1 Smith 20 London

S2 Jones 10 Paris

S3 Blake 30 Paris

S4 Clark 20 London

S5 Adams 30 Athens

Une même relation S

SNAME S# STATUS CITYSmith S1 20 London

Jones S2 10 Paris

Blake S3 30 Paris

Clark S4 20 London

Adams S5 30 Athens

S# SNAME STATUS CITYS3 Blake 30 Paris

S4 Clark 20 London

S1 Smith 20 London

S2 Jones 10 Paris

S5 Adams 30 Athens

CITY SNAME STATUS S#Paris Blake 30 S3

London Clark 20 S4

London Smith 20 S1

Paris Jones 10 S2

Athens Adams 30 S5

Page 18: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

18

Une mise à jour est correcte si la nouvelle extension est dans l'intention de R

C'est le rôle des contraintes d'intégrité de ne permettre que les mises à jour correctes

Un changement de schéma de R est une restructuration

MAJ / Restructuration

Page 19: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

19

Emp (E#, Nom, Prénom, Age, Rue, CodePost, Ville, Dep#) ;

Age < 65 * Contrainte de validation Dep# Not Null ; * Contrainte d'existence

Update Emp Set Age = 35 Where E# = '123' ;Update Emp Set Age = 75 Where E# = '456' ;Alter Emp Add Tel Integer ;

Alter Emp Drop Ville ;Create Table CP - V

CodePost Int Ville Text Primary key (CodePost, Ville) ;

C'est une décomposition d'une relation

SQL : MAJ / Restructuration ?

Page 20: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

20

Une relation est un fichier qui supporte les opérations relationnelles

Une opération relationnelle transforme des relations arguments dans une relation résultat : une relation temporaire n'appartenant pas

au schéma de la base. une relation de la base (mise à jour) une vue

Opérations relationnelles

Page 21: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

21

OpOpérationsérations relationnelle relationnelless

Sélection :

Projection

Restriction

Jointure

Division

Agrégation

Opération suppl.

Mise à jour

Création d ’une vue

Voir aussi le cours sur l’algèbre

relationnelle

Page 22: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

22

Opérations relationnelles (SQL)

Voit (Im#, Pref, Mod, Couleur) Amende (A#, I#, Nom, Addr, Payé)

Select * From Voit ;

Select Mod From Voit Where Couleur = 'rose' ;

Select Nom, Addr From Amende, Voit Where Payé Is Null and Mod = 'Ferrari' and I# = Im# ;

Update Amende Set Payé = '10-01-96' where A# = '123' ;

Create View En-instance AsSelect * From Amende, Voit WherePayé Is Null and Amende.I# = Voit.Im# ;

Page 23: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

23

Une relation réelle est définie à partir de ses attributs

Une relation virtuelle (vue) est dérivée (héritée) par une opération relationnelle à partir de relations réelles ou de vues

Relations

Page 24: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

24

En général, un domaine et donc un attribut peut être un ensemble XML

Dans les SGBD actuels, ils ne sont considérés pour les opérations relationnelles que comme des éléments (valeurs) atomiques

De telles relations sont dites normales

Relations

Page 25: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

25

P1P2P3P4

S1

S2P1P2P3

P1P2P3P4

P1P2P3

S1S1S1S1

S2S2S2

Norm.

O NF 1 NF

Page 26: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

26

Normalization en 1-NF

Contrainte très importante ! Etud (E#, Tel, Hobbies, Dipl, Enfants, Voit) Etudiant Dupont:

3 tel, 5 hobbies, 3 diplômes, 3 enfants, 2 voitures

Un tuple d’ue relation en 0-NF suffit Il faut 3*5*3*3*2 = 270 tuples pour une relation en

1-NF ! Solution : normalisation en i-NF ; i > 1

voir le cours sur la normalisation relationnelle

Page 27: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

27

Opérations relationnelles sont définies par les expressions :

d'algèbre relationnelle de calcul de tuple (de prédicat) (QUEL, ALPHA) de calcul de domaine (QBE) les trois formalismes sont équivalents (Codd)les trois formalismes sont équivalents (Codd) Un langage de base de données peut mélanger les

types d'expression ci-dessus (SQL) Calcul de tuple et algèbre

Relations

Page 28: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

28

Dans toute relation R il existe une combinaison C d'attributs dite clé telle que dans tout tuple t d'intention de R, la valeur C(t)

identifie t, il n'y a pas de sous-combinaison de C avec cette

propriété Démontrez cette assertion !

Exemples: N° SS, N° Étudiant, Nom de pays, (Nom, Prénom, Tel), Oid,...

C atomique consiste d’un attribut C composite en contient plusieurs

Clés

Page 29: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

29

Le choix de C est dicté par l'intention de R Soit R = Pers (Nom, Prénom, SS#, Tel)

Dans une famille Pers (Nom, Prénom, SS#, Tel)

A la SS Pers (Nom, Prénom, SS#, Tel)

A l'état civil Pers (Nom, Prénom, SS#, Tel)

Les valeurs d'un attribut d'une extension peuvent à un moment donné être toutes différentes sans qu'il s'agisse d'une clé !

Clés

Page 30: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

30

La clé C définie comme auparavant peut-être appelée aussi clé minimale

Tout ensemble C' d'attributs de relation R incluant C est alors appelée clé

Alternativement, si C est appelé clé, alors tout C' est appelé super-clé

Dans notre base S-P, S# est une clé (minimale) de S, donc (S#, SNAME) est une super-clé de S.

Et les attributs (SNAME, STATUS) ne sont même pas une super-clé

Relations

Page 31: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

31

R peut avoir plusieurs clés. Dans ce cas: Une clé est arbitrairement choisie est dite

primaire Les autres deviennent clés candidates

La clé C d'une relation R peut être des attributs F d'une autre relation R'

F deviennent une clé étrangère dans R’ F n'est pas en général une clé de R'

Relations

Page 32: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

32

Voit (Châssis#, Moteur#, Plaque#, Mod, Poids, Coul )

Clé primaire

Clé candidate

Clé candidate

Etud (E#, Nom, Prénom, Tel, Adresse )

Participants (C#, E#, Note)

Clé étrangèreClé étrangère

Clé candidatecomposée

Page 33: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

33

L'égalité C = F constitue le lien sémantique entre les relations correspondants

Dans un SGBD de 2-ème génération ces liens étaient les références explicites (pointeurs)

Entre C et F il peut exister la contrainte d'intégrité référentielle

En général: pas de F sans C pas de participant qui ne serait pas un étudiant connu

Les SGBD majeurs gèrent désormais de telles contraintes, MSAccess :

L'intégrité ref. 1:1 et 1:N Jointures implicites

Relations

Page 34: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

34

Intégrité référentielle

MariM#

1 1

MariM#

FemmesM#, F#

1 N

AmieA#

M N

PP#, PS# Produit

Composé

ProduitP#

FemmeF#

1 1

N N

AmiA# Comment

faire ?

Page 35: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

35

Les clés C et F peuvent aussi être dans une même

relation:

Emp ( E#, Enom, Tel, Chef# )

Personne ( SS#, Nom, Mère#, Père#)

De tels liens génèrent les récurrences exigeant le calcul de fermetures transitives

Les opérations relationnelles ne permettent pas de calculer les fermetures transitives

Relations

Page 36: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

36

Une valeur nulle est un abus de langage pour designer une absence de valeur d’un attribut On dit aussi un nul

Valeurs nulles

S# SNAME STATUS CITY S1 20 London

S2 Jones 10

S3 Blake 30 Paris

S4 Clark London

S5 Adams 30 Athens

Page 37: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

37

Valeur inconnue Ville de fournisseur inconnue

Valeur inapplicable Fournisseur connu pour être sans statut

Cette distinction est rarement appliquée en pratique

Types de nuls

Page 38: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

39

Pourquoi ? Peut-on néanmoins en pratique

Sur MsAccess, Oracle, DB2…

Autoriser une valeur nulle pour un attribut-clé ? Créer des relations sans clé ?

Les nuls et les clés

Un attribut-clé ne peut être nul

Page 39: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

43

UML Des diagrammes standard proposées par

OMG Données, Opérations, Messages… Notamment pour les BDs Une adaptation dans de dernier but du modèle

ER Une autre présentation de certains diagrammes Les concepts OO

Composition, Agrégation

Page 40: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

44

UML Objet = Entité (Entity) Type = Type ou classe Propriété = Association (Relationship)

Page 41: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

45

UML

Modèle d’une auto-école

basé sur l’ex. de M. Manouvrier

L’école peut envoyer entre

0 et 8 étudiants à un exam

Diagramme de noteen UML

Appartient à

Rôle de l’associon (directionnelle)

Nom de l’association

Page 42: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

46

Réification d’une classe d’associations

EmpName

lname : Stringfname : Stringmi : String

SalaryHistoryAssociation

start_date : Dateend_date : Datesalary : Currency

Employee

<<PK>> emp_id : String

SalaryLevel

<<PK>> level_id : Stringmin_salary : Currencymax_salary : Currencystart_date : Dateend_date : Date

*

*

*

*

Page 43: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

47

EmpName

lname : Stringfname : Stringmi : String

Employee

<<PK>> emp_id : String

SalaryHistoryReified

seq_num : Integerstart_date : Dateend_date : Datesalary : Currency

**

SalaryLevel

<<PK>> level_id : Stringmin_salary : Currencymax_salary : Currencystart_date : Dateend_date : Date

*

1..1

*

1..1

Réification d’une classe d’associations

Page 44: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

58

Une base relationnelle n'est correctement définie que si son le graphe de références

est un graphe connecté.

Une BD relationnelle en général comporte plusieurs relations

Un graphe de références représente sa structure Les nœuds sont des relations Les arcs orientés sont les contraintes d'intégrité

référentielle C -> F 1:N ou 1:1

Les autres sont les liens sémantiques

Modélisation relationnelle :Graphe de références

Page 45: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

59

Il faut minimiser le nombre de nœuds du graphe de références

Sous contraintes : D’absence d’anomalies

d’insertion, suppression, MAJ

De préservation de dépendances fonctionnelles

Modélisation relationnelle : Conception d’une BD relationnelle

Page 46: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

60

Plusieurs relations Chaque relation consistant

d’une clé de max d’attributs identifiés

chacun comme une fonction atomique de la clé

Modélisation relationnelle : Résultat typique

Page 47: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

61

Spécifications fonctionnelles:

Une entreprise a des fournisseurs S Un fournisseur f a un ID, un nom, un statut, et est dans

une ville Un f fournit des fournitures SP de pièces P Chaque fourniture fp comporte une certaine quantité

d'une pièce p Chaque p a un ID, un nom, un poids, une couleur Une pièce p peut être l'objet de plusieurs fournitures fp

Exemple canon

Page 48: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

62

Exemple canon

FournisseursPièc

es

Fournitures

S#

P#

S# P#

Page 49: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

63

S# SNAME STATUS CITYS1 Smith 20 London

S2 Jones 10 Paris

S3 Blake 30 Paris

S4 Clark 20 London

S5 Adams 30 Athens

P# PNAME COLOR WEIGHT CITYP1 Nut Red 12 London

P2 Bolt Green 17 Paris

P3 Screw Blue 14 Rome

P4 Screw Red 12 London

P5 Cam Blue 19 Paris

P6 Cog Red 19 London

S# P# QTYS1 P1 300

S1 P2 200

S1 P3 400

S1 P4 200

S1 P5 100

S1 P6 100

S2 P1 300

S2 P2 400

S3 P2 200

S4 P2 200

S4 P4 300

S4 P5 400

Exemple canon

S

P

SP

Page 50: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

64

Pourquoi S-P est comme ça ? Avantages :

Pas de duplicata de valeurs d'attributs entre les tables S, SP, et P,

sauf le strict minimum (les clés) Pas d‘anomalies.

On verra cette notion dans le cours suivant. Efficacité de stockage.

Pas d’attribut-clé unique pour SP Compare à la conception en une seule relation

Problèmes : Comment trouver le Nom du fournisseur de pièces

rouges ? etc..

Page 51: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

65

Solution

Opération relationnelle de jointure entre les relations

en SQL :

SELECT SNAME FROM S, SP, PWHERE S.S# = SP.S# AND SP.P# = P.P#AND COLOR = 'RED' ;

Page 52: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

68

Base Hôpital

Les patients sont soignés par des médecins, dans des services

Un médecin peut être partagé entre plusieurs patients et services

1P SSPM

1 N N

M

N

1

La vie est moins facile

Page 53: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

69

Un employé travaille dans un (seul) département ayant un nom et une localisation. On fait une relation ?

Emp (E#, Enom, D#, Dnom, Loc) Ou deux ?

Emp (E#, Enom, D#) D (D#, Dnom, Loc)

Et pourquoi pas les rel. atomiquesEmp (E#), Empn (E#, Enom), Empd (E#, D#), D (D#), Dn (D#, Dnom), Dl (D#, Loc), L (Loc)

Pas de bonne réponse générale dans la théorie des bases

relationnelles

La vie est moins facile

Page 54: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

70

E# et Enom sont des clés candidates pour un étudiant.

Quel schéma choisir pour créer la base des notes des étudiants ?

E (E#, Enom, C#, Note) ? E (E#, Enom, C#, Note) ? ou peut-être :

E (E#, C#, Note) et EN (E#, Enom) ou enfin :

E (Enom, C#, Note) et EN (E#, Enom)

La vie est moins facile

Page 55: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

71

Un cour est donné par des profs et comporte une liste de livres quelle base faut-il créer

Cours (C#, P#, Livre) ? Cours (C#, P#, Livre) ? Cours (C#, P#, Livre) ?

ou peut-être la base Cours (C#, Livre) et CP (C#, P#) ?

La vie est moins facile

Page 56: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

73

Solutions

Théorie formelle de la conception relationnelle

Fondée dans les années 70 - 80 Codd, Boyce, Fagin, Armstrong, Bancilhon,

Spyratos, Delobel, Date, Ullman, Sagiv, Vardi... Largement délaissée depuis Mais il y a des contributions récentes

Date & Fagin, Krishnamourthy & Litwin...

Page 57: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

74

FINMerci de votre

attention

W. Litwin

Page 58: 1 Modèle Relationnel de Données Witold Litwin 2 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations

75