cours 4 introduction à la conception de bases de données relationnelles

23
COURS 4 Introduction à la conception de Bases de Données Relationnelles

Upload: christia-berthelot

Post on 04-Apr-2015

123 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: COURS 4 Introduction à la conception de Bases de Données Relationnelles

COURS 4

Introduction à la conception de Bases de Données Relationnelles

Page 2: COURS 4 Introduction à la conception de Bases de Données Relationnelles

2

Motivations et Plan

Motivations : Eléments de méthode pour la conception (premières étapes du cycle de vie)

Plan

1) Modélisation des données

2) Elaboration d'un modèle conceptuel

3) Passage à un modèle logique relationnel.

NB. Ces éléments sont indépendants d’un SGBD particulier.

D’un point de vue pratique, Expérimentations par des implantations Access ou PostgreSQL

Page 3: COURS 4 Introduction à la conception de Bases de Données Relationnelles

3

Modélisation des données : le modèle conceptuel

Spécification de la mémorisation des données indépendamment d’une solution informatique.

– Outil de représentation de la mémorisation des données.

– Elaboration “ coopérative ” entre le concepteur et les utilisateurs visés.

Outil de documentation de la Base de Données.– Porte la sémantique des données, les règles de gestion des

données.

– Ne contient que les données utiles, sans redondance.

– Outil de dialogue entre concepteur et utilisateur.

Base du processus d’implantation.

Page 4: COURS 4 Introduction à la conception de Bases de Données Relationnelles

4

Les concepts

Modèle Conceptuel des Données ou Schéma Entités-Associations

1.1 Entité (Individu, Objet).

Une entité est un objet du monde réel ayant une existence propre et présentant un intérêt pour l'application. Une entité est utilisée par l'application, l'entreprise ou l'organisme.

On représente un type d'entité pour figurer un ensemble d’entités : une entité = 1 occurrence de l'ensemble.

JOUEURS

Page 5: COURS 4 Introduction à la conception de Bases de Données Relationnelles

5

Les concepts

1.2 Propriété (Information, Attribut).

Information ayant des valeurs qualifiant une occurrence d'une entité.

Une propriété ne doit dépendre que de la seule entité à laquelle elle appartient.

Eviter les données calculées.

1.3 Identifiant.

Une ou plusieurs propriétés identifiant

de manière unique une entité de l'ensemble.

Exemple:

ENTITEIdentifiantPropriété 1Propriété 2Propriété 3

JOUEURSN°Joueur NomJoueurPrénomJoueur

Joueur 6,Cantona,Eric

Joueur 16,Cantona,Joël

Page 6: COURS 4 Introduction à la conception de Bases de Données Relationnelles

6

Les concepts

1.4 Association.

Ensemble de liens entre occurrences d'entités.

L'Equipe 1 Fait Jouer 5 Joueurs. Le Joueur 1 Joue dans l’Equipe 1.

Une association se lit dans les deux sens.

Joueur 1

Joueur 2

Joueur 3

Joueur 4

Joueur 5

Equipe 1

1,15,nEquipesN°Equipe NomEquipeVille

Fait-JouerJOUEURS

N°Joueur NomJoueurPrénomJoueur

Page 7: COURS 4 Introduction à la conception de Bases de Données Relationnelles

7

Les concepts

1.5 Cardinalités d'une association.

Nombre Mini et Maxi d'occurrences de l'association.

Une Equipe Fait Jouer de 5 à n Joueurs.

Un Joueur joue dans 1 et au plus 1 Equipe.

1.6 Propriété d'une association.

Une association peut avoir une propriété si celle-ci dépend de toutes les occurrences d'entités qu'elle relie.

JOUEURSN°Joueur NomJoueurPrénomJoueur

0,nMatchs

N°Match NbSpectateursNbPtsLocauxNbPtsVisiteurs

0,nA-joué

NbPointsMarquésNbFautes

Page 8: COURS 4 Introduction à la conception de Bases de Données Relationnelles

8

Les concepts

Cardinalités :

Un Joueur a joué dans 0 à n Matchs.

Un Match fait jouer de 0 à n Joueurs

(0 quand le match n’a pas été joué).

Joueur 1

Joueur 2

Joueur 3Joueur 4

Joueur 15

Match 1

Match 2

Match 3

Joueur 16

Page 9: COURS 4 Introduction à la conception de Bases de Données Relationnelles

9

Les concepts

Exemples :

Association reliant les occurrences d'une même entité.

Association entre trois entités.

(A éviter si possible)

0,n

0,2

PersonneNom Prénom

Parent de

0,n

1,n0,n

Salle Groupe

Cours

PlageHoraire

DateHeure

Page 10: COURS 4 Introduction à la conception de Bases de Données Relationnelles

10

Les concepts

Spécialisation, généralisation, héritage (Orienté-Objet).

PersonneN°Sécu NomPrénomAdresse

EtudiantN°Etudiant PromoGroupe

Enseignant

N°Enseignant GradeFonction

Page 11: COURS 4 Introduction à la conception de Bases de Données Relationnelles

11

Les concepts

1.7 Contraintes d'intégrité.

Importance de l'intégrité de la base de données, de la validité des données mémorisées.

Définir les contraintes d'intégrité des données le plus tôt possible, dans le modèle.

Les faire vérifier : par le SGBD par programmation.

Types de contraintes

Contraintes d’intégrité référentielle

Contraintes d’intégrité fonctionnelle

Contraintes sur les valeurs des propriétés

Contraintes sur les cardinalités

Contraintes sur les ensembles

Page 12: COURS 4 Introduction à la conception de Bases de Données Relationnelles

12

Les contraintes d’intégrité

Contrainte d'intégrité référentielle.

La cardinalité 1,1 pour la relation Fait-Jouer impose que le joueur ne puisse pas exister sans être relié à une équipe.

Contrainte d'intégrité fonctionnelle.

Description de restriction qu'une association doit respecter.

Simplification du modèle.

CIF : Une voiture n'appartient qu'à une seule personne.

1,15,nEquipesN°Equipe NomEquipeVille

Fait-JouerJOUEURS

N°Joueur NomJoueurPrénomJoueur

0,n

0,n

1,n

Voiture

Personne

Bâtiment

Gare

CIF

0,n1,1

0,n1,n

Voiture

Personne

Bâtiment

Gare Bât

Posséde

Page 13: COURS 4 Introduction à la conception de Bases de Données Relationnelles

13

Les contraintes d’intégrité

Contrainte sur les valeurs des propriétés

- Plages de valeurs possibles e.g., NbFautes <= 5.

- Comparaison par rapport à d'autres valeurs de propriétés.

e.g., Date de livraison > Date de commande.

- Contrôles au moment de la saisie des données.

Contrainte sur les cardinalités

Cardinalité minimum ou maximum à respecter.

1,15,nEquipesN°Equipe NomEquipeVille

Fait-JouerJOUEURS

N°Joueur NomJoueurPrénomJoueur

Page 14: COURS 4 Introduction à la conception de Bases de Données Relationnelles

14

Les contraintes d’intégrité

Nombre de joueurs minimal dans une équipe pour la relation Fait_Jouer : 5

La cardinalité minimale de la relation A_joué entre Matchs et Joueurs est de 0 lorsque le match n’a pas été joué mais passe à 10 lorsqu’il a été joué et que l’on crée les liens entre le match et les joueurs.

JOUEURSN°Joueur NomJoueurPrénomJoueur

0,nMatchs

N°Match NbSpectateursNbPtsLocauxNbPtsVisiteurs

0,nA-joué

NbPointsMarquésNbFautes

Page 15: COURS 4 Introduction à la conception de Bases de Données Relationnelles

15

Les contraintes d’intégrité

Contrainte sur les ensembles

– Inclusion

La personne qui dirige un service

appartient à ce service.

– Exclusion

Une personne ne peut suivre et

enseigner le même cours.

– Ou Exclusif

Un produit est soit stocké dans

un entrepôt, soit utilisé dans une usine.

0,1 1,1

1,n1,1

Personne Service

Appartient

Dirige

I

0,n 0,n

0,n0,n

Personne Cours

Suit

Enseigne

X

0,n

0,10,1

0,n

Produit

Entrepot Usine

Stocker Utiliser

+

Page 16: COURS 4 Introduction à la conception de Bases de Données Relationnelles

16

-2- Elaboration d ’un modèle conceptuel de données

Reconnaissance des entités et associations "évidentes".

Ce sont celles qui font l'objet de l'application à gérer.

Etablissement d'une liste d'informations (de propriétés)

... que l'on veut gérer et mémoriser dans l'application.

Issues de documents, de données à éditer ...

Page 17: COURS 4 Introduction à la conception de Bases de Données Relationnelles

17

-3- Passage à un Modèle Logique de Données de type Relationnel

Affectation des propriétés aux entités et aux associations dont elles dépendent.

Eventuellement, créer de nouvelles entités ou de nouvelles associations.

Question à se poser :

De quoi dépend cette information ?

Si elle dépend d'une seule entité, elle appartient à cette entité. Si elle dépend de plusieurs entités, elle appartient à une association entre ces entités.

Recherche et choix des identifiants

Définition des cardinalités.

Page 18: COURS 4 Introduction à la conception de Bases de Données Relationnelles

18

-3- Passage à un Modèle Logique de Données de type Relationnel

Deuxième étape du cycle de vie:

On choisit le type de SGBD que l'on veut utiliser indépendamment d’un SGBD spécifique.

Choix possibles ?

Hiérarchique (e.g., IMS d'IBM) obsolète

Réseau (e.g., IDS Honeywell) obsolète

Relationnel

Objet (O2, ...) L’avenir ?

Modèle Logique Relationnel

Access, Oracle, Ingres, DB2, ...

Page 19: COURS 4 Introduction à la conception de Bases de Données Relationnelles

19

Règles de passage d ’un MCD à un Modèle Logique Relationnel

1. Une Entité Une Table

2. Un Identifiant Une Clé primaire

3. Une Propriété Un Attribut

4. Une Association binaire hiérarchique

Cardinalités de la relation : x,1 - x,n

Une Clé étrangère

Clé de l'entité mère devient un attribut

de la table issue de l'entité fille

Page 20: COURS 4 Introduction à la conception de Bases de Données Relationnelles

20

Règles de passage d ’un MCD à un Modèle Logique Relationnel

Modèle conceptuel de données.

Modèle logique relationnel.

Schéma Relationnel.

EQUIPES (N°Equipe, nomequipe, Ville, Entraineur)

JOUEURS (N°Joueur, N°Equipe, NomJoueur, PrénomJoueur)

1,15,nEquipesN°Equipe NomEquipeVille

Fait-JouerJOUEURS

N°Joueur NomJoueurPrénomJoueur

EQUIPESN°EQUIPE NOMEQUIPEVILLE

JOUEURS

N°JOUEUR N°EQUIPENOMJOUEURPRENOMJOUEUR

Page 21: COURS 4 Introduction à la conception de Bases de Données Relationnelles

21

5. Les autres associations

Cardinalités de la relation : x,n - x,n

Une Table ayant comme clé primaire la concaténation des

identifiants des entités qu'elle relie.

Modèle Conceptuel de Données.

Modèle Logique Relationnel.

Schéma Relationnel

MATCHS (N°Match, Date, NbSpectateurs, NbPtsLocaux,

NbPtsVisiteurs)

A_JOUE (N°Match, N°Joueur, NbPointsMarqués, NbFautes)

JOUEURSN°Joueur NomJoueurPrénomJoueur

0,nMatchs

N°Match NbSpectateursNbPtsLocauxNbPtsVisiteurs

0,nA-joué

NbPointsMarquésNbFautes

MATCHS

N°MATCH NBSPECTATEURSNBPTSLOCAUXNBPTSVISITEURS

JOUEURS

N°JOUEUR NOMJOUEURPRENOMJOUEUR

A_JOUEN°MATCH N°JOUEUR NBPOINTSMARQUESNBFAUTES

Page 22: COURS 4 Introduction à la conception de Bases de Données Relationnelles

22

5. Les autres associations

Modèle Conceptuel de Données

Modèle Logique de données

0,n

0,n

1,15,n

0,n

1,1

1,1

0,n

EQUIPES

N°Equipe NomEquipeVilleEntraineur

JOUEURS

N°Joueur NomJoueurPrénomJoueur

MATCHS

N°Match NbSpectateursNbPtsLocauxNbPtsVisiteurs

Fait-Jouer

Matchs-Locaux

Matchs-Visiteurs

A_JOUE

NbPointsMarquésNbFautes

MATCHSN°Match N°LocauxN°Visiteurs

NbSpectateursNbPtsLocauxNbPtsVisiteurs

A_JOUE

N°Joueur N°Match NbPointsMarquésNbFautes

Date

EQUIPES

N°Equipe NomEquipeVilleEntraineur

JOUEURS

N°Joueur N°EquipeNomJoueurPrénomJoueur

Page 23: COURS 4 Introduction à la conception de Bases de Données Relationnelles

23

5. Les autres associations

Schéma RelationnelEQUIPES (N°Equipe, NomEquipe, Ville, Entraineur)

JOUEURS (N°Joueur, N°Equipe, NomJoueur, PrénomJoueur)

MATCHS (N°Match, N°Locaux, N°Visiteurs, Date, NbSpectateurs, NbPtsLocaux, NbPtsVisiteurs)

A_JOUE (N°Joueur, N°Match, NbPointsMarqués, NbFautes)