Title: Initiation aux bases de donn
1Initiation aux bases de données et à la
programmation événementielle
- Cours N5
- Schéma dune Base de Données
Support de cours de Souheib BAARIR. Page web
pagesperso-systeme.lip6.fr/Souheib.Baarir/bdvba/su
pport.htm E-mail souheib.baarir_at_u-paris10.fr
Université Paris Ouest Nanterre la
Défense. 2009-2010.
2Introduction
- Il ne suffit pas de de savoir écrire une requête
en SQL pour - faire une BD.
- Il faut dabord savoir
- répartir les informations à mémoriser entre le
différentes - tables et,
- définir les liens logiques qui relient ces
tables.
- Autrement dit, savoir concevoir une Base de
Données - définir un schéma de BD.
-
3De linformation à la BD
- Une information est complexe
-
- on peut la décomposer en éléments (informations
élémentaires), - un élément est une donnée.
- Une donnée est décrite par un champ dune table.
- Les données sont réparties en ensembles,
- chaque ensemble décrit un sens commun,
- il décrit donc un même concept.
- ?Finalement, une table est la réalisation
dun concept. - Les concepts ne sont pas indépendants,
- ensemble, ils permettent de restituer
linformation 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).
4Un 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.
5Un premier exemple un seul concept
- Décrire lauteur (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 1803 1885 Les travailleurs de la mer
2 Hugo Victor Mr 1804 1900 Les misérables
Incohérence
Redondance
Règle fondamentale une information (complexe ou
non) ne doit pas être mémorisée plusieurs fois.
6Un premier exemple deux concepts
- La description dun auteur est une information
complexe et cohérente. - La description dune œ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 dauteur correspondent N
occurrences dœuvre, - à 1 occurrence dœuvre ne correspond qu1 seule
occurrence dauteur. - Alors,
- ? cest 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).
7Un premier exemple représentation graphique du
schéma dune table
- Plusieurs conventions possibles pour représenter
le schéma dune table. - On représente une table par un rectangle.
8Un 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.
9Un deuxième exemple (1/2)
- BD pour la gestion des commandes dans une
entreprise - un client passe une commande
- une commande nest 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,
- Client nom, adresse, etc.
- Produit nom du produit, description, prix
unitaire, etc. - Commande numéro, date, liste des produits
commandés avec la quantité commandée pour chacun
deux.
10Un 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
intermédiaire
11Un deuxième exemple représentation graphique
Quelle clef primaire pour cette table ?
12Un deuxième exemple clef composée pour
Lien_Cde_Pdt
- Si une occurrence de Produit ne peut être
associée quune seule fois à - une occurrence de Commande,
- ? Alors, clef composée des deux clefs externes.
13Un 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.
14Un 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 ? - ? 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 lassociation entre Commande et Produits.
Règle pour placer un champ dans une table, il
faut quil dépende entièrement de sa clef
primaire.
15Un deuxième exemple allons un peu plus
loin(2/2)