Commande

publicité
Initiation aux bases de données et
à la programmation événementielle
Cours N°5 :
Schéma d’une Base de Données
(Conception d’une BD)
Souheib BAARIR.
Page web :
http://pagesperso-systeme.lip6.fr/Souheib.Baarir/bdvba/support.htm
E-mail :
[email protected]
Université Paris Ouest Nanterre la Défense.
1
Introduction (1/2)
Nous avons étudié:
• les requêtes d’Interrogation de Données (LID).
 Requêtes de Bases.
 Requêtes Statistiques.
• Les requêtes de Manipulation de Données (LMD).
• Les requêtes de Définition de Données (LDD).
 Ceci est « suffisant »,
• pour interroger une BD existante ou,
• pour en créer une, dont les schémas des tables sont établies.
 Comment faire quand les schémas n’existent pas !?
• On a juste un Cahier de Charge (CC) informel citant des
informations complexes liées entre elles !
2
Introduction (2/2)
 Il faut savoir concevoir une Base de Données :
• à partir d’un CC, définir le schéma de la BD.
Schéma d’une BD : l’ensembles des schémas des tables de la
Base de Données (avec les liens logiques).
Autrement dit, à partir du CC, savoir :
• répartir les informations à mémoriser entre le
différentes tables et,
• définir les liens logiques qui relient ces tables.
3
De l’information à la BD
• Une information est complexe :
 on peut la décomposer en éléments (informations atomiques),
 un élément est une donnée.
Une donnée est décrite par un champ d’une table.
 Les données sont réparties en ensembles,
 chaque ensemble décrit un sens commun,
 il décrit donc un même concept.
Une table est la réalisation d’un concept.
 Les concepts ne sont pas indépendants,
 ensemble, ils permettent de restituer l’information complexe,
 ils sont donc reliés par des liens sémantiques.
Réalisé au travers des liens logiques, qui dépendent du
choix de gestion à mettre en place : (1-N) ou (N-N).
4
Un premier exemple
 On
veut enregistrer des informations sur :
• des écrivains et leurs œuvres.
 Que faut-il définir ?
• un seul concept (l’œuvre et son auteur), ou bien,
• deux concepts séparés.
5
Un premier exemple :
un seul concept
 Décrire l’auteur (nom, prénom, sexe, années de naissance et de décès) et
l’œuvre dans une table unique.
AuteurŒuvre (N° AutŒv, nom, prénom, sexe, année N, année D, titre œuvre)
 Les descriptions risquent d’être redondantes et/ou incohérentes :
N° AutŒv
Nom
Prénom
Sexe
Année N
Année D
Titre œuvre
1
Hugo
Victor
Mr
1802
1885
Les travailleurs de la mer
2
Hugo
Victor
Mr
1804
1900
Les misérables
Redondance
Incohérence
Règle fondamentale : une information (complexe ou non) ne doit pas être
mémorisée plusieurs fois.
6
Un premier exemple :
deux concepts
 La description d’un auteur est une information complexe et cohérente.
 La description d’une œuvre est une information complexe et cohérente.
 Donc, deux concepts séparés (deux tables), mais associés…
 Si le choix de gestion est,
 à 1 occurrence d’auteur correspondent N occurrences d’œuvre,
 à 1 occurrence d’œuvre ne correspond qu’1 seule occurrence d’auteur.
Alors,
 c’est une Association (1-N), appelée aussi, père/fils.
 Un lien père/fils (père du côté 1 et fils du côté N).
 Réalisé par le couple clef primaire (du père) / clef externe (du fils).
7
Un premier exemple : représentation
graphique du schéma d’une table
 Plusieurs conventions possibles pour représenter le schéma d’une
table.
 On représente une table par un rectangle.
Auteur
Clef primaire
Nom de la table
CP : N° auteur
Sexe
Nom auteur
Prénom auteur
Année naissance
Liste des champs
(attributs)
Année décès
8
Un premier exemple : représentation
graphique du lien logique
 Le lien logique est représenté par une flèche allant de la clef externe de
la table fils à la clef primaire de la table père.
Lien logique
Auteur
Œuvre
CP : N° auteur
CP : N° œuvre
Sexe
CE : Référence auteur
Nom auteur
Titre
Prénom auteur
Année naissance
Clef externe
Année décès
9
Un deuxième exemple (1/2)
 BD pour la gestion des commandes dans une entreprise :

un client passe une commande ;

une commande n’est passée que par un seul client ;

la commande est constituée de plusieurs produits ;

un produit peut être présent sur plusieurs commandes.
 Les concepts identifiés sans problème,
1. Client : nom, adresse, etc.
2. Produit : nom du produit, description, prix unitaire, etc.
3. Commande : numéro, date, liste des produits commandés avec
la quantité commandée pour chacun d’eux.
10
Un deuxième exemple (2/2)
•
Les concepts Client, Produit et Commande sont des tables.
•
Une association (1-N) entre Client et Commande.
 un lien logique simple : clef primaire/clef externe.
 la table père : Client.
 la table fils : Commande.
•
Une association (N-N) entre Commande et Produit.
 Un lien logique simple (Clé primaire/Clé externe) ne peut pas
décrire cette association.
 Il faut donc « casser » cette association (N-N),
 par deux associations (1-N),
 par conséquent, ajouter une table de jonction…
11
Un deuxième exemple :
représentation graphique
Produit
Client
CP : N° client
CP : Code produit
Nom client
Nom produit
Adresse
Description
Quelle clef primaire
pour cette table ?
Commande
Prix Unitaire
Lien_Cde_Pdt
CP : N° Commande
CP : ?
CE : Réf Client
CE : Réf Commande
Date commande
CE : Réf Produit
12
Un deuxième exemple :
clef composée pour Lien_Cde_Pdt
Si une occurrence de Produit ne peut être associée qu’une seule fois à
une occurrence de Commande,
 Alors, clef composée des deux clefs externes.
Produit
Client
CP : N° client
Nom client
Adresse
CP : Code produit
Nom produit
Description
Prix Unitaire
Commande
CP : N° Commande
CE : Réf Client
Date commande
Lien_Cde_Pdt
CP CE : Réf Commande
CE : Réf Produit
13
Un deuxième exemple :
clef autonome pour Lien_Cde_Pdt
Si une occurrence de Produit peut être associée plusieurs fois à une occurrence
de Commande,
Alors, on utilise une clef autonome.
Client
Produit
CP : N° client
CP : Code produit
Nom client
Nom produit
Adresse
Description
Prix Unitaire
Commande
Lien_Cde_Pdt
CP : N° Commande
CP : N° ligne cde
CE : Réf Client
CE : Réf Commande
Date commande
CE : Réf Produit
14
Un deuxième exemple :
allons un peu plus loin…(1/2)
• On veut ajouter la quantité commandée de chaque produit à notre BD.
• Où placer le champ correspondant à la donnée Quantité commandée ?
Règle : pour placer un champ dans une table (jonction), il faut
qu’il dépende entièrement de sa clef primaire.
 La valeur de la quantité commandée dépend à la fois de la commande
et du produit concerné.
 Il faut placer le champ dans la table qui décrit l’association entre
Commande et Produits.
15
Un deuxième exemple :
allons un peu plus loin…(2/2)
Client
Produit
CP : N° client
CP : Code produit
Nom client
Nom produit
Adresse
Description
Prix Unitaire
Commande
CP : N° Commande
CE : Réf Client
Date commande
Lien_Cde_Pdt
CP CE : Réf Commande
CE : Réf Produit
Quantité commandée
16
Téléchargement