Initiation aux bases de données et à la programmation événementielle

Cours N°5 : Schéma d’une Base de Données

Support de cours de Souheib BAARIR. Page web : pagesperso-systeme.lip6.fr/Souheib.Baarir/bdvba/support.htm E-mail : souheib.baarir@u-paris10.fr Université Paris Ouest Nanterre la Défense. 2009-2010.

1

2 . • Autrement dit. savoir concevoir une Base de Données :  définir un schéma de BD.Introduction • Il ne suffit pas de de savoir écrire une requête en SQL pour faire une BD.  définir les liens logiques qui relient ces tables. • Il faut d’abord savoir :  répartir les informations à mémoriser entre le différentes tables et.

 ensemble.  ils sont donc reliés par des liens sémantiques.  Les données sont réparties en ensembles.  chaque ensemble décrit un sens commun.De l’information à la BD • Une information est complexe :  on peut la décomposer en éléments (informations élémentaires).  Réalisé au travers des liens logiques. une table est la réalisation d’un concept.  un élément est une donnée. Finalement. Une donnée est décrite par un champ d’une table. qui dépendent du choix de gestion à mettre en place : (1-N) ou (N-N). 3 .  Les concepts ne sont pas indépendants.  il décrit donc un même concept. ils permettent de restituer l’information complexe.

Un premier exemple • On veut enregistrer des informations sur des écrivains et leurs œuvres. 4 . ou bien. faut-il définir ? • Que • un seul concept (l’œuvre et son auteur). • deux concepts séparés.

AuteurŒuvre (N° AutŒv.Un premier exemple : un seul concept • Décrire l’auteur (nom. année N. sexe. sexe. année D. 5 . nom. années de naissance et de décès) et l’œuvre dans une table unique. titre œuvre) • Les descriptions risquent d’être redondantes et/ou incohérentes : N° AutŒv 1 2 Nom Hugo Hugo Prénom Victor Victor Sexe Mr Mr Année N 1803 1804 Année D 1885 1900 Titre œuvre Les travailleurs de la mer Les misérables Redondance Incohérence Règle fondamentale : une information (complexe ou non) ne doit pas être mémorisée plusieurs fois. prénom. prénom.

 c’est une Association (1-N). • La description d’une œuvre est une information complexe et cohérente. mais associés… • Si le choix de gestion est.  à 1 occurrence d’œuvre ne correspond qu’1 seule occurrence d’auteur.  Un lien père/fils (père du côté 1 et fils du côté N). appelée aussi.Un premier exemple : deux concepts • La description d’un auteur est une information complexe et cohérente. père/fils.  Réalisé par le couple clef primaire (du père) / clef externe (du fils). • Donc deux concepts séparés (deux tables). •Alors.  à 1 occurrence d’auteur correspondent N occurrences d’œuvre. 6 .

Auteur Clef primaire CP : N° auteur Sexe Nom auteur Nom de la table Prénom auteur Année naissance Année décès Liste des champs (attributs) 7 . • On représente une table par un rectangle.Un premier exemple : représentation graphique du schéma d’une table • Plusieurs conventions possibles pour représenter le schéma d’une table.

Lien logique Auteur CP : N° auteur Œuvre CP : N° œuvre Sexe Nom auteur Prénom auteur Année naissance Année décès CE : Référence auteur Titre Clef externe 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.

etc. Client : nom. un produit peut être présent sur plusieurs commandes.Un deuxième exemple (1/2) • BD pour la gestion des commandes dans une entreprise :     • un client passe une commande . 9 . etc. prix unitaire. description. Produit : nom du produit. une commande n’est passée que par un seul client . date. 2. Commande : numéro. Les concepts identifiés sans problème. adresse. liste des produits commandés avec la quantité commandée pour chacun d’eux. 3. la commande est constituée de plusieurs produits . 1.

 par deux associations (1-N).  un lien logique simple : clef primaire/clef externe. • Une association (N-N) entre Commande et Produit.  par conséquent.  la table fils : Commande.  Un lien logique simple (Clé primaire/Clé externe) ne peut pas décrire cette association. ajouter une table intermédiaire… 10 . Produit et Commande sont des tables.  Il faut donc « casser » cette association (N-N).Un deuxième exemple (2/2) • • Les concepts Client. Une association (1-N) entre Client et Commande.  la table père : Client.

Un deuxième exemple : représentation graphique Client Produit CP : Code produit CP : N° client Nom client Adresse Quelle clef primaire pour cette table ? Commande CP : N° Commande CE : Réf Client Date commande Nom produit Description Prix Unitaire Lien_Cde_Pdt CP : ? CE : Réf Commande CE : Réf Produit 11 .

clef composée des deux clefs externes.  Alors.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. 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 12 .

on utilise une clef autonome. Alors.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. Client CP : N° client Nom client Adresse Produit CP : Code produit Nom produit Description Prix Unitaire Commande CP : N° Commande CE : Réf Client Date commande Lien_Cde_Pdt CP : N° ligne cde CE : Réf Commande CE : Réf Produit 13 .

 La valeur de la quantité commandée dépend à la fois de la commande et du produit concerné. il faut qu’il dépende entièrement de sa clef primaire. • Où placer le champ correspondant à la donnée Quantité commandée ? Règle : pour placer un champ dans une table.  Il faut placer le champ dans la table qui décrit l’association entre Commande et Produits.Un deuxième exemple : allons un peu plus loin…(1/2) • On veut ajouter la quantité commandée de chaque produit à notre BD. 14 .

Un deuxième exemple : allons un peu plus loin…(2/2) Client CP : N° client Nom client Adresse Produit 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 Quantité commandée 15 .

Sign up to vote on this title
UsefulNot useful