Base de Données : Conception de base de...

29
1 Base de Données : Conception de base de données

Transcript of Base de Données : Conception de base de...

Page 1: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

1

Base de Données :Conception de base de données

Page 2: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

2

Plan du cours de Base de Données

●Vaste introduction●Le modèle relationnel●Le langage SQL●Conception de BD relationnelles

Page 3: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

3

Quelques questions

●Quelles tables ?●Quelles colonnes ?●Quelles contraintes ?

●La conception aide les premiers choix. Ex.:l'adresse de livraison va dans la table Client ouCommande ?●Première étape (la plus importante)

Page 4: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

4

La conception

●Une BD est conçue via un modèle (niveau conceptuel)●Conception vs réalisation.●Faire des choix justifiés :–Cerner le domaine de la BD

–Comprendre l'utilisation future

–Connaître les contraintes technique du commanditaire

–Anticiper les problèmes de maintenance

●Une tache d'expert (base lisible, évolutive, efficace,reflétant la réalité du domaine).

Page 5: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

5

But de ce chapitre

●La conception de base de donnée relève del'expérience.●Ce chapitre : –sensibilise aux problèmes classiques

–aborde les solutions générales

–ne remplace pas l'expérience

–Aide à se poser les bonnes questions

●Base de données mal conçue : mauvais système●Base de donnée bien conçue : normal

Page 6: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

6

Plan du chapitre

●Introduction●Modèle Conceptuel de Donnée (MCD)●Etude de cas●Passage MCD à MLD ●Dépendances fonctionnelles●Formes normales

Page 7: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

7

Modèle Conceptuel de Données

●modèle graphique (facilite les échangesconcepteur/commanditaire)●Très répandu et intuitif●Force le concepteur à se poser les bonnes questions●Issu de la méthode MEURISE (France, 1978)●Pas grand chose à voir avec un diagramme declasse (programmation objet).

Page 8: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

8

Modèle Entité/Association

●Modèle E/A = MCD●Entité : population homogène d'individus.–Ex: les articles d'un magasin

–Contre-ex: les clients et les articles de leur commande

●Association : liaison entre plusieurs entités, avecune signification précise.●Attribut : propriété de l'entité ou de l'associationdans laquelle il est indiqué●Identifiant : attribut(s) d'entité référençant demanière unique les individus d'une entité.

Page 9: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

9

Modèle E/A : esquisse

Page 10: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

10

Modèle E/A : cardinalités

●La cardinalité d'un lien entre une entité et unerelation précise le minimum et le maximum de foisqu'un individu de l'entité peut être concerné par larelation.●Cardinalité n : signifie une cardinalité positive sanslimite●Cardinalité minimale de 1 : les individus de l'entitéont besoin de l'association pour exister (vs 0)●Choix discutable/justifiable

Page 11: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

11

Modèle E/A : cardinalités

●une cardinalité se lit de l'entité vers l'association :combien de fois un élément de l'entité peut êtreconcerné par l'association.●Exemples de question à se poser :–Pour un film donné, combien de fois peut-il être projetédans l'ensemble des cinémas ?

–Pour un cinéma donné, combien de projections peuventêtre programmée (tous films confondus) ?

●La réflexion sur les cardinalités impose souventl'apparition/disparition d'entités, par souci decohérence.

Page 12: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

12

Modèle E/A : exemple

Page 13: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

13

Les différents types d'associations

●Association plurielle●Association réflexive●Association n-aire (non binaire)

Page 14: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

14

Association plurielle●désigne des associations différentes qui relient lesmêmes entités

Page 15: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

15

Association réflexive

●désigne une association qui relie une entité à elle-même

Page 16: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

16

Association n-aire●désigne une association qui lient n entités. Essayerde les éviter.●Difficulté : les cardinalités.

Page 17: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

17

Règles de normalisation

●Un bon schéma E/A doit suivre quelques grandesrègles●A connaître absolument●Dictées par la méthode MERISE●Parfois contournables...

Page 18: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

18

Normalité des entités●Toute entité remplaçable par une association doitêtre remplacée.●Facilement repérable : au centre d'un ensembled'associations, souvent avec des cardinalités 1,1.

Page 19: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

19

Normalisation des noms

●nom d'une entité, d'une association, d'un attribut :unique.●Pas d'espace de noms●Peut être relâchée : si désigne la même quantité.

●Nom des entités au singulier.

Page 20: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

20

Normalisation des identifiants

●Chaque entité possède un identifiant (future cléprimaire).●Quelques conseils :–pas d'identifiant sur plusieurs attributs

–de préférence de type Entier

–Éviter les types non numériques (chaîne, ...)

–Indépendant des attributs ordinaires

–Le moins de place possible

●Mauvais exemples : plaque d'immatriculation, numérode sécurité sociale

Page 21: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

21

Normalisation des attributs●Il s'agit de remplacer les attributs (factorisation) quiapparaissent dans plusieurs entités par une entitéspécifique reliées aux première via des associations.

●Ne pas avoir d'attribut calculable à partir des autres.

Page 22: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

22

Normalisation des attributsd'association

●Règle très importante●les attributs d'une association doivent dépendredirectement des identifiants de toutes les entitésmise en relation par l'association.●Du coup : beaucoup d'associations sans attribut.

→ Si le(s) attribut(s) d'une association sans lienavec tous les identifiants alors créer une nouvelleentité avec ce(s) attribut(s) ou déplacer ces attributsdans les entités.

Page 23: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

23

Normalisation des attributs d'association

Page 24: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

24

Normalisation des associations

●Il faut supprimer certaines associations :–association fantôme : association binaire dont toutes lescardinalités sont 1,1

–association redondante : association apparaissantconjointement à une autre, sans information supplémentaire(en particulier les mêmes cardinalités).

=> Supprimer le plus court chemin.

–associations similaires : de même arité, sur les mêmesentités, de même cardinalité maximum

Page 25: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

25

Normalisation des associations (suite)

Association redondante

Association similaire

Page 26: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

26

Normalisation des cardinalités

●Cardinalité minimum : 0 ou 1●Cardinalité maximum : 1 ou n

●En pratique : utilisation de triggers (déclencheur)pour pour vérifier des cardinalités comme 2,2 : cesont des fonctions PL/SQL qui s'exécutent à la suited'une insertion (ou autre modification) pour vérifierce type de contraintes.

Page 27: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

27

Méthodologie de base pour construireun MCD

●MCD = Modèle Conceptuel de Données = (+/-)modèle E/A●Première étape de la réalisation de BD●Phase réalisée avec le commanditaire qui construitun cahier des charges (objectif, contenu, contraintes,etc.)●Aller-retours commanditaire/concepteur jusqu'à ceque le MCD reflète au plus près la réalité expriméepar le commanditaire.

Page 28: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

28

5 phases

●Construire le MCD : de quelques heures à quelquesmois●A la fin : aucune ambiguïté, choix justifiables ●5 étapes :

1. Identifier les entités présentes

2. Lister les propriétés de chaque entités

3. Identifier de manière unique chaque individu de chaqueentité

4. Établir les relations entre entités

5. Identifier les cardinalités

(+ 6. Normalisation) .

Page 29: Base de Données : Conception de base de donnéesrichard-ostrowski.eu/SILNTI/ressources/ip2/BD_Cours_6... · 2017. 11. 23. · 4 La conception Une BD est conçue via un modèle (niveau

29

Construction du MCD

● Nous allons voir les différentes étapes via unexemple de cahier des charges (copyrightCécile Capponi )

● En pratique ça ne se passe pas comme ça : lecahier des charge se monte en parallèle avec laréalisation du MCD.