Sunteți pe pagina 1din 15

Initiation aux bases de donnes et la programmation vnementielle

Cours N5 : Schma dune Base de Donnes

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 Dfense. 2009-2010.

Introduction
Il ne suffit pas de de savoir crire une requte en SQL pour faire une BD.

Il faut dabord savoir : rpartir les informations mmoriser entre le diffrentes tables et, dfinir les liens logiques qui relient ces tables.
Autrement dit, savoir concevoir une Base de Donnes : dfinir un schma de BD.
2

De linformation la BD
Une information est complexe : on peut la dcomposer en lments (informations lmentaires), un lment est une donne. Une donne est dcrite par un champ dune table. Les donnes sont rparties en ensembles, chaque ensemble dcrit un sens commun, il dcrit donc un mme concept. Finalement, une table est la ralisation dun concept.

Les concepts ne sont pas indpendants, ensemble, ils permettent de restituer linformation complexe, ils sont donc relis par des liens smantiques.
Ralis au travers des liens logiques, qui dpendent du choix de gestion mettre en place : (1-N) ou (N-N).

Un premier exemple

On

veut enregistrer des informations sur des crivains et leurs uvres. faut-il dfinir ?

Que

un seul concept (luvre et son auteur), ou bien, deux concepts spars.

Un premier exemple : un seul concept


Dcrire lauteur (nom, prnom, sexe, annes de naissance et de dcs) et luvre dans une table unique.
Auteuruvre (N Autv, nom, prnom, sexe, anne N, anne D, titre uvre)

Les descriptions risquent dtre redondantes et/ou incohrentes :


N Autv 1 2 Nom Hugo Hugo Prnom Victor Victor Sexe Mr Mr Anne N 1803 1804 Anne D 1885 1900 Titre uvre Les travailleurs de la mer Les misrables

Redondance

Incohrence

Rgle fondamentale : une information (complexe ou non) ne doit pas tre mmorise plusieurs fois.
5

Un premier exemple : deux concepts


La description dun auteur est une information complexe et cohrente. La description dune uvre est une information complexe et cohrente.

Donc deux concepts spars (deux tables), mais associs


Si le choix de gestion est, 1 occurrence dauteur correspondent N occurrences duvre, 1 occurrence duvre ne correspond qu1 seule occurrence dauteur. Alors, cest une Association (1-N), appele aussi, pre/fils. Un lien pre/fils (pre du ct 1 et fils du ct N).

Ralis par le couple clef primaire (du pre) / clef externe (du fils).

Un premier exemple : reprsentation graphique du schma dune table


Plusieurs conventions possibles pour reprsenter le schma dune table. On reprsente une table par un rectangle.

Auteur Clef primaire CP : N auteur Sexe Nom auteur

Nom de la table

Prnom auteur
Anne naissance Anne dcs

Liste des champs (attributs)

Un premier exemple : reprsentation graphique du lien logique


Le lien logique est reprsent par une flche allant de la clef externe de la table fils la clef primaire de la table pre. Lien logique Auteur CP : N auteur uvre CP : N uvre

Sexe
Nom auteur Prnom auteur Anne naissance Anne dcs

CE : Rfrence auteur
Titre

Clef externe

Un deuxime exemple (1/2)


BD pour la gestion des commandes dans une entreprise : un client passe une commande ; une commande nest passe que par un seul client ; la commande est constitue de plusieurs produits ; un produit peut tre prsent sur plusieurs commandes.

Les concepts identifis sans problme,

1. Client : nom, adresse, etc.


2. Produit : nom du produit, description, prix unitaire, etc. 3. Commande : numro, date, liste des produits commands avec la quantit commande pour chacun deux.

Un deuxime 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 pre : Client. la table fils : Commande.

Une association (N-N) entre Commande et Produit.


Un lien logique simple (Cl primaire/Cl externe) ne peut pas dcrire cette association. Il faut donc casser cette association (N-N), par deux associations (1-N), par consquent, ajouter une table intermdiaire
10

Un deuxime exemple : reprsentation graphique


Client

Produit
CP : Code produit

CP : N client
Nom client Adresse Quelle clef primaire pour cette table ? Commande CP : N Commande CE : Rf Client Date commande

Nom produit
Description Prix Unitaire

Lien_Cde_Pdt CP : ? CE : Rf Commande CE : Rf Produit


11

Un deuxime exemple : clef compose pour Lien_Cde_Pdt


Si une occurrence de Produit ne peut tre associe quune seule fois une occurrence de Commande, Alors, clef compose 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 : Rf Client Date commande

Lien_Cde_Pdt CP CE : Rf Commande CE : Rf Produit


12

Un deuxime exemple : clef autonome pour Lien_Cde_Pdt


Si une occurrence de Produit peut tre associe plusieurs fois une occurrence de Commande, Alors, on utilise une clef autonome. Client CP : N client Nom client Adresse Produit

CP : Code produit
Nom produit Description Prix Unitaire

Commande CP : N Commande CE : Rf Client Date commande

Lien_Cde_Pdt CP : N ligne cde CE : Rf Commande CE : Rf Produit


13

Un deuxime exemple : allons un peu plus loin(1/2)


On veut ajouter la quantit commande de chaque produit notre BD.

O placer le champ correspondant la donne Quantit commande ? Rgle : pour placer un champ dans une table, il faut quil dpende entirement de sa clef primaire.

La valeur de la quantit commande dpend la fois de la commande

et du produit concern. Il faut placer le champ dans la table qui dcrit lassociation entre Commande et Produits.
14

Un deuxime 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 : Rf Client Date commande Lien_Cde_Pdt

CP CE : Rf Commande
CE : Rf Produit Quantit commande
15

S-ar putea să vă placă și