conception dune base de données passage au schéma relationnel

23
Conception d’une Base de Données Passage au Schéma Relationnel

Upload: maddie-rousset

Post on 04-Apr-2015

120 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Conception dune Base de Données Passage au Schéma Relationnel

Conception d’une Base de Données

Passage au SchémaRelationnel

Page 2: Conception dune Base de Données Passage au Schéma Relationnel

2

Conception d’une BD : les niveaux

• conceptuel• logique• physique• externe

schémaphysique

schémaconceptuel

schémalogique

R1R2

UtilisateursUtilisateurs

Page 3: Conception dune Base de Données Passage au Schéma Relationnel

3

Conception d’une BD : les étapes

Monde ExtérieurMonde Extérieur

Modélisation(UML)

Modélisation(UML)

Produits

idProdésignationpoids

Fournisseurs

idFourraisonSocialeadresse

Fournir

prixAchat

<< Association >>1 1* 1..*

Schéma Conceptuel : DCSchéma Conceptuel : DC

Produits (IdPro, désignation, poids)

Fournir(IdPro, IdFour, PrixAchat)

Fournisseurs(IdFour, RaisonSociale, adresse)

Produits (IdPro, désignation, poids)

Fournir(IdPro, IdFour, PrixAchat)

Fournisseurs(IdFour, RaisonSociale, adresse)

Schéma Logique ou RelationnelSchéma Logique ou Relationnel

Règles depassageRègles depassage

Normalisation ?Normalisation ?

Mise en œuvre

de la BD

Mise en œuvre

de la BD Schéma PhysiqueSchéma Physique

Page 4: Conception dune Base de Données Passage au Schéma Relationnel

4

Schéma Logique : Schéma Relationnel Présentation

• Base théorique du langage SQL• Modèle basé sur les valeurs

– Di = {valeurs atomiques}

• Attribut – ai prenant sa valeur dans Di

• Relation – R[a1,..., an] définie sur les domaines D1, ..., Dn

– R sous-ensemble du produit cartésien D1*D2*...*Dn ETUDIANT (INE, NOM,ADRESSE)

INE = {100, 200, 300}NOM = {‘Sylvie’,’Patrick’}ADRESSE = {‘Toulouse’,’Montauban’}

ETUDIANT (INE, NOM,ADRESSE)

INE = {100, 200, 300}NOM = {‘Sylvie’,’Patrick’}ADRESSE = {‘Toulouse’,’Montauban’}

Page 5: Conception dune Base de Données Passage au Schéma Relationnel

5

Schéma relationnelConcepts et Terminologie

• Relation : nom de la structure tabulaire regroupant les informations de même nature

• Tuple ou N-Uplet : ligne d’une relation• Attribut : nom du domaine • Clé primaire : attribut(s) permettant d’identifier

d’une manière unique une ligne • Clé étrangère : attribut(s) permettant d’identifier

d’une manière unique une ligne d’une autre relation (correspondant à une clé primaire)

• Clé candidate : attribut(s) pouvant se substituer à la clé primaire

Page 6: Conception dune Base de Données Passage au Schéma Relationnel

6

Schéma relationnelExemple

10 Informatique 2

20 Achats 3

IdSerIdSer

SERVICESERVICE

NomSerNomSer NombreEmpNombreEmp

100 Michel 20 300

200 Sylvie 10 400

300 Bernard 20 ------

400 Claude 10 ------

500 Thomas 10 400

EMPLOYEEMPLOYE

IdEmpIdEmp NomEmpNomEmp IdSerIdSer IdEmp_RespIdEmp_Resp

Clés PrimairesClés Primaires

Clés ÉtrangèresClés ÉtrangèresClé CandidateClé Candidate

Page 7: Conception dune Base de Données Passage au Schéma Relationnel

7

Schéma relationnelQuelques postulats

• Clé primaire – Obligatoire pour toutes les relations– Peut être composée de plusieurs attributs – Ne peut pas avoir de valeur indéfinie (NULL)

• Clé étrangère – Aucune ou plusieurs par relation – Peut être composée de plusieurs attributs Contrainte d’Intégrité Référentielle

• Clé candidate– Accès rapide dans le schéma physique

Page 8: Conception dune Base de Données Passage au Schéma Relationnel

8

Passage du S. Conceptuel au S. RelationnelLes règles de passage

• Règle n°1 : Classes normales– Chaque classe devient une relation – L’identifiant de la classe devient la clé primaire de la relation

• Règle n°2 : Classes d’Associations 1-N (Mère-Fille)– Cette classe disparaît– La clé de la relation mère glisse dans la relation fille Clé Étrangère

• Règle n°3 : Classes d’Associations N-M (et n-aires) – Cette classe devient une relation– La clé primaire est composée des clés associées (clé primaire

composée)

• Règle n°4 : Classes d’Associations 1-1 – Cas particulier : expliqué plus loin

• Règle n°5 : Généralisation et Spécialisation– Expliqué plus loin

Page 9: Conception dune Base de Données Passage au Schéma Relationnel

9

Association 1-N : Exemple

DiplomeDiplome EtudiantEtudiant

IdDipNomDipRespDip

IdDipNomDipRespDip

IneEtudiantNomEtudiantAdrEtudiant

IneEtudiantNomEtudiantAdrEtudiant**11

InscrireInscrire

DIPLÔME (IdDip, NomDip, RespDip)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant, IdDip#)

DIPLÔME (IdDip, NomDip, RespDip)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant, IdDip#)

Page 10: Conception dune Base de Données Passage au Schéma Relationnel

10

Association N-N sans attribut : Exemple

EtudiantEtudiant StageStage

IneEtudiantNomEtudiantAdrEtudiant

IneEtudiantNomEtudiantAdrEtudiant

IdStageThémeStageEntrepriseRespStage

IdStageThémeStageEntrepriseRespStage

1..*1..***

ChoisirChoisir

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

CHOISIR (IneEtudiant#, IdStage# )

STAGE (IdStage, Thèmestage, Entreprise, RespStage)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

CHOISIR (IneEtudiant#, IdStage# )

STAGE (IdStage, Thèmestage, Entreprise, RespStage)

Page 11: Conception dune Base de Données Passage au Schéma Relationnel

11

Clé primaire composée : postulats

• Autant de composants que de classes associées (N-aires)

• Composée entièrement de clés étrangères• L’ordre des composants n’a pas d’importance

(pour le schéma relationnel)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

CHOISIR (IneEtudiant#, IdStage# )

STAGE (IdStage, Thèmestage, Entreprise, RespStage)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

CHOISIR (IneEtudiant#, IdStage# )

STAGE (IdStage, Thèmestage, Entreprise, RespStage)

Page 12: Conception dune Base de Données Passage au Schéma Relationnel

12

Association N-N avec attributs : Exemple

FournisseurFournisseur ProduitProduit

IdFourNomFourAdrFour

IdFourNomFourAdrFour

IdProduitNomProduitQtéStock

IdProduitNomProduitQtéStock

** 1..*1..*

FournirFournir

PrixDélaiLivQtéMin

PrixDélaiLivQtéMin

FOURNISSEUR(IdFour, NomFour, AdrFour)

FOURNIR (IdFour #, IdProduit#, Prix, DélaiLiv, QtéMin )

PRODUIT (IdProduit, NomProduit, QtéStock)

FOURNISSEUR(IdFour, NomFour, AdrFour)

FOURNIR (IdFour #, IdProduit#, Prix, DélaiLiv, QtéMin )

PRODUIT (IdProduit, NomProduit, QtéStock)

Page 13: Conception dune Base de Données Passage au Schéma Relationnel

13

Association de type N-aires : Exemple

FournisseurFournisseur ProduitProduit

IdFourNomFourAdrFour

IdFourNomFourAdrFour

IdProduitNomProduitQtéStock

IdProduitNomProduitQtéStock

FournirFournir

PrixDélaiLivQtéMin

PrixDélaiLivQtéMin

ConditionnementConditionnement

IdCondLibCondIdCondLibCond

1..*1..*

**

**

Page 14: Conception dune Base de Données Passage au Schéma Relationnel

14

Association de type N-aires : Exemple

FOURNISSEUR(IdFour, NomFour, AdrFour)

PRODUIT (IdProduit, NomProduit, QtéStock)

CONDITIONNEMENT (IdCond, LibCond)

FOURNIR (IdFour #, IdProduit#, IdCond#,

Prix, DélaiLiv, QtéMin )

FOURNISSEUR(IdFour, NomFour, AdrFour)

PRODUIT (IdProduit, NomProduit, QtéStock)

CONDITIONNEMENT (IdCond, LibCond)

FOURNIR (IdFour #, IdProduit#, IdCond#,

Prix, DélaiLiv, QtéMin )

Page 15: Conception dune Base de Données Passage au Schéma Relationnel

15

Association 1-N réflexive : Exemple

EnseignantEnseignant

IdEnsNomEnsFonction

IdEnsNomEnsFonction

Est responsable deEst responsable de

A pour responsable A pour responsable **

0..10..1

ENSEIGNANT (IdEns, NomEns, Fonction, IdEns_Resp#)ENSEIGNANT (IdEns, NomEns, Fonction, IdEns_Resp#)

(nul autorisé)(nul autorisé)

Page 16: Conception dune Base de Données Passage au Schéma Relationnel

16

Association N-N réflexive : Exemple

ProduitProduit

IdProduitLibProduitPrix

IdProduitLibProduitPrix

Est composé de Est composé de

Entre dans la composition de Entre dans la composition de **

**

ComposerComposer

QtéQté

PRODUIT (IdProduit, LibProduit, Prix)

COMPOSER (IdProduitComposé#, IdProduitComposant#, Qté)

PRODUIT (IdProduit, LibProduit, Prix)

COMPOSER (IdProduitComposé#, IdProduitComposant#, Qté)

Page 17: Conception dune Base de Données Passage au Schéma Relationnel

17

Reprise de classe d’association : Exemple

JoueurJoueur TournoiTournoiIdLicenceNomJoueurClassement

IdLicenceNomJoueurClassement

IdTournoiNomTournoiVilleDate

IdTournoiNomTournoiVilleDate

** **

ParticiperParticiperRésultatRésultat

AmendeAmendeIdAmendeMontantIdAmendeMontant

** **

RecevoirRecevoirPrixPrix

IdPrixMontantIdPrixMontant

ObtenirObtenir

0..10..1**

Page 18: Conception dune Base de Données Passage au Schéma Relationnel

18

Reprise de classe d’association : Exemple

JOUEUR (IdLicence, NomJoueur, Classement)

TOURNOI (IdTournoi, NomTournoi, Ville, date)

PARTICIPER (IdLicence#, IdTournoi#, Résultat, IdPrix#)

PRIX (IdPrix, Montant)

AMENDE (IdAmende, Montant)

RECEVOIR (IdAmende#,(IdLicence,IdTournoi)#)

JOUEUR (IdLicence, NomJoueur, Classement)

TOURNOI (IdTournoi, NomTournoi, Ville, date)

PARTICIPER (IdLicence#, IdTournoi#, Résultat, IdPrix#)

PRIX (IdPrix, Montant)

AMENDE (IdAmende, Montant)

RECEVOIR (IdAmende#,(IdLicence,IdTournoi)#)

(nul autorisé)(nul autorisé)

2 clés étrangères2 clés étrangères

Page 19: Conception dune Base de Données Passage au Schéma Relationnel

19

Associations de type symétrique (1-1)Règle N°4 : 3 cas possibles

C1C1 C2C2

IdC1IdC1 IdC2IdC2

AssociationAssociation

11 11

C1 (IdC1, ……., IdC2#)

C2 (IdC2, ………..)

C1 (IdC1, ……., IdC2#)

C2 (IdC2, ………..)

C1 (IdC1, …….)

C2 (IdC2, ……….., IdC1#)

C1 (IdC1, …….)

C2 (IdC2, ……….., IdC1#)

C1 (IdC1, …….)

C2 (IdC2, ………..)

Association (IdC1#, IdC2#)

C1 (IdC1, …….)

C2 (IdC2, ………..)

Association (IdC1#, IdC2#)

UNIQUEUNIQUE

Valeurs nulles autorisées ou passelon les valeursminimums

Valeurs nulles autorisées ou passelon les valeursminimums

Dans le cas d’uneassociation optionnelle

Dans le cas d’uneassociation optionnelle

Page 20: Conception dune Base de Données Passage au Schéma Relationnel

20

Associations de type 1-1 : Exemple

EtudiantEtudiant StageStage

IneEtudiantNomEtudiantAdrEtudiant

IneEtudiantNomEtudiantAdrEtudiant

IdStageThémeStageEntreprise

IdStageThémeStageEntreprise0..10..10..10..1

EffectuerEffectuer

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

STAGE (IdStage, ThèmeStage, Entreprise)

EFFECTUER (IdStage#, IdEtudiant#)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

STAGE (IdStage, ThèmeStage, Entreprise)

EFFECTUER (IdStage#, IdEtudiant#)

UNIQUEUNIQUE

Page 21: Conception dune Base de Données Passage au Schéma Relationnel

21

Généralisation et Spécialisation : Règle N°5

• Chaque classe devient une relation• Une ‘super classe’ peut contenir un attribut de

spécialisation• Chaque relation de l’ensemble possède la même

clé primaire• La vraie spécialisation avec l’héritage

correspondant sera pris en charge avec les SGBD Objet-Relationnel

Page 22: Conception dune Base de Données Passage au Schéma Relationnel

22

Généralisation et Spécialisation : Exemple

PersonnelPersonnelIdPersNomIndice

IdPersNomIndice

ChercheurChercheur

SpécialitéLaboratoireSpécialitéLaboratoire

EnseignantEnseignantSectionTitreHeuresCours

SectionTitreHeuresCours

IngénieurIngénieurGradeFonctionDomaine

GradeFonctionDomaine

Page 23: Conception dune Base de Données Passage au Schéma Relationnel

23

Généralisation et Spécialisation : Exemple

PERSONNEL (IdPers, Nom, Indice, TypePers)

INGENIEUR (IdPers, Grade, Fonction, Domaine)

ENSEIGNANT (IdPers, Section, Titre, HeuresCours)

CHERCHEUR (IdPers, Spécialité, laboratoire)

PERSONNEL (IdPers, Nom, Indice, TypePers)

INGENIEUR (IdPers, Grade, Fonction, Domaine)

ENSEIGNANT (IdPers, Section, Titre, HeuresCours)

CHERCHEUR (IdPers, Spécialité, laboratoire)

Attribut de SpécialisationAttribut de Spécialisation