Académique Documents
Professionnel Documents
Culture Documents
de la thorie la pratique
Objectifs
- Comprendre les concepts et techniques sur lesquels reposent les fonctions
principales d'un systme de gestion de bases de donnes.
- Pouvoir reprsenter dans une base de donnes le contenu d'information d'un
domaine d'application.
- Pouvoir utiliser ces fonctions pour mettre en oeuvre une application simple
reposant sur une base de donnes (Analyse, conception, structuration des donnes,
mise en oeuvre dune base de donne relationnelles avec intraction... ).
Contenu
L'approche base de
donnes
Conception d'une base de
donnes
Bases de donnes
relationnelles
Pratique d'un SGBD
2. Cration d'une srie de modles qui permettent de reprsenter tous les aspects
importants
Dfinitions
Information : Une information est un lment qui permet de complter notre
Dfinitions
Base de donnes :
Une base de donnes (BD) est un ensemble bien structur de donnes relatives
un sujet global. Ces donnes peuvent tre de nature et d'origine diffrentes.
Lesdonnessontdesfaits,connusetquiontunsenspourlutilisateur.Ces
donnesdoiventavoirunerelationentreelles.
collection de donnes enregistres ensemble,
sansredondance pnible ou inutile, pour
servir plusieursapplications,on y enregistre
les donnes de faon ce quelles soient
indpendantesdesprogrammes qui les
utilisent, on utilise une approchecommuneet
contrle pour ajouter, modifier, retrouver des
donnes.
JamesMartin
Collection de donnes persistantes utilises par des systmes dapplication de
certaines entreprises
Dfinitions
SGBD
SGBD
BD
Qu'attendre
---- un SGBD?
Pourqoui
Un SGBD assure
- la description des donnes,
- leur recherche et mise jour,
- la sret : vrifier les droits daccs des utilisateurs ; limiter les accs non
autoriss ; crypter les informations sensibles
- la scurit : sauvegarde et restauration des donnes ; limiter les erreurs de
saisie, de manipulation
- lintgrit : dfinir des rgles qui maintiennent lintgrit de la base de
donnes (contraintes dintgrit)
- la concurrence daccs : dtecter et traiter les cas o il y a conflit daccs
entre plusieurs utilisateurs et les traiter correctement.
SGBD
SGBD
a)
b)
fort souple,
ais dvelopper
c)
d)
SGBD
Les caractristiques
L'architecture trois niveaux dfinie par le standard ANSI/SPARC permet d'avoir une indpendance
entre les donnes et les traitements. D'une manire gnrale un SGBD doit avoir les caractristiques
suivantes:
Indpendance physique: Le niveau physique peut tre modifi indpendamment du niveau conceptuel.
Cela signifie que tous les aspects matriels de la base de donnes n'apparaissent pas pour l'utilisateur, il
s'agit simplement d'une structure transparente de reprsentation des informations
Manipulabilit: des personnes ne connaissant pas la base de donnes doivent tre capables de dcrire
leur requtes sans faire rfrence des lments techniques de la base de donnes
Rapidit des accs: le systme doit pouvoir fournir les rponses aux requtes le plus rapidement possible,
cela implique des algorithmes de recherche rapides
Administration centralise: le SGBD doit permettre l'administrateur de pouvoir manipuler les donnes,
insrer des lments, vrifier son intgrit de faon centralise
Limitation de la redondance: le SGBD doit pouvoir viter dans la mesure du possible des informations
redondantes, afin d'viter d'une part un gaspillage d'espace mmoire mais aussi des erreurs
Vrification de l'intgrit: les donnes doivent tre cohrentes entre elles, de plus lorsque des lments
font rfrences d'autres, ces derniers doivent tre prsents
Partageabilit des donnes: le SGBD doit permettre l'accs simultan la base de donnes par plusieurs
utilisateurs
Scurit des donnes: Le SGBD doit prsenter des mcanismes permettant de grer les droits d'accs aux
donnes selon les utilisateurs
Historique
Modle relationnel
Les concepts mis en oeuvre dans le modle relationnel sont fonds sur une
thorie mathmatique directement issue de l'algbre relationnelle, de la thorie
des ensembles et de la logique formelle.
Cette technologie a vu le jour dans les annes 70 avec les travaux de Codd
Algbre
Relationnelle
JOIN: relie 2 tables grce aux valeurs
communes de 2 colonnes communes
Oprations relationnelles
Slection :
Projection
Restriction
Jointure
Division
Agrgation
Opration suppl.
Mise jour
Cration d une vue
le niveau externe avec les vues (comment lutilisateur voit les donnes)
Description pour chaque utilisateur de sa perception des donnes.
ES
ES
CS
IS
ES
ES
ES
CS
IS
ES
ES
ES
CS
IS
CS
Schma Conceptuel
Merise
Merise est une des mthodes de conception et de dveloppement de projets
informatiques. Cette mthode date de 1978-1979, et fait suite une consultation
nationale lance en 1977 par le ministre de lIndustrie franais dans le but de
choisir des socits de conseil en informatique dont la mission tait de dfinir
une mthode de conception de systmes dinformation.
Une des techniques permettant de concevoir une base de donnes relationnelle
est base sur cette mthode. En effet, une des caractristiques principales de la
mthode Merise est la sparation des donnes et des traitements du futur
systme dinformation.
relation
n-uplet
cardinalit
attribut
degr
cl primaire
cl trangre
domaine
Requtes,
Formulaires, Rapports.
1. Les Tables
Une table est une collection de donnes relatives un domaine bien dfini.
Table :
Employs_Di
sney
N Mat
NOM
SALAIRE
Code post.
159
Donald
1500
7000
132
Oblix
1900
5060
1187
Picsou
1134
1000
354
..
Valeurs de lattribut
Enregistrement,
N_Uplet
Cl primaire
Pour identifier de manire unique chaque enregistrement de la table.
La cl primaire, constitue d'un ou de plusieurs champs, nous permet
d'identifier de manire unique chaque enregistrement d'une table.
Pour dfinir des liens entre plusieurs tables la cl primaire est indispensable.
Formuler la requte
Analyser et
Excuter la requte
Les formulaires offrent certains avantages: facilit d'utilisation, scurit des donne
4.
Niveaux dabstraction
Cahier des charges en accord avec le client (activit et besoins)
crer une reprsentation virtuelle de la ralit.
produire quatre modles de donnes relatifs quatre niveaux dabstraction.
Le niveau logique fournit une description des donnes prenant en compte les moyens
informatiques de mmorisation et limplmentation du systme par un SGBD. Cest
galement ici que lon retrouvera lalgbre relationnelle.
Le niveau physique exprime les choix techniques et dcrit les donnes de la base de
donnes dans la syntaxe du systme de gestion adopt.
Statique (donnes)
Conceptuel
MCD
Organisationnel
ou logique
MLD
Oprationnel
ou physique
MPD
Dynamique (traitements)
MCT
MOT
(QUI?QUAND?)
MOPT
Niveau Conceptuel
Niveau Logique
Niveau Physique
Analyse
MCD
Rel
Peru
Schma
Conceptuel
MLD
MPD
Schma
Logique
Application?
Choix de lapplication / groupe
Univers de
lapplicatio
n
Elaboration du Modle
E-R
Rapport
Niveau Conceptuel
Def. Dom.
C.Chg
Schma
Conceptuel
Passage au Modle
Relationnel
Niveau Logique
Implmentation
Sur SGBD-R
Niveau Physique
Schma
Logique
Schma
Physique
1er rapport :
2me rapport :
3me rapport :
mars 2006
..
..
Cahier de charges.
Cahier de charges et MCD.
Rapport final
Utilisez :
Formulaires, index, requtes, rapport.
Pouvoir faire :
Trier, excuter des requtes en SQL, utiliser des macros en SQL.
Genre de documents diter :
Liste alphabtique des clients,( tudiants, ) par ville (secteur ) ..
Liste par chiffre daffaire des clients (moyenne pour les tudiants)
Lors de la conclusion :
Les besoins futurs !
Analyse
Elaboration du Modle
E-R
Niveau Conceptuel
Schma
Conceptuel
modlisation directe :
Elle consiste identifier, partir dune description exprime en langage naturel,
les entits et les associations en appliquant les rgles suivantes :
les noms deviennent des entits
les verbes deviennent des associations
La partie analytique consiste essentiellement transformer des phrases
dcrivant certains aspects de la ralit en entits, relations et cardinalits.
Passage au Modle
Relationnel
Niveau Logique
Schma
Logique
Niveau Physique
Schma
Physique
3. Le niveau physique, qui se base sur le modle logique des donnes, contient
finalement toutes les dfinitions et dtails relatifs l'utilisation d'un SGBD
spcifique (p.ex. Access, dBASE, Oracle, Cach ...). A partir de ce niveau, on peut
directement crer la base de donnes. Ce niveau est reprsent par le:
Le schma conceptuel
Un des modles possibles pour le schma conceptuel est le modle
entit-association. Propos par Peter Chen en 1976, il est
notamment utilis dans la mthodologie Merise.
Traduire lanalyse du systme rel tablie pralablement en
entit, en relations, en proprits et en cardinalits.
Une entit permet de modliser un
ensemble dobjets de mme nature.
Les relations sont des liens smantiques
qui peuvent exister entre plusieurs
entits.
CLIENT
Numro
Nom
1, N
Passer
1,1
Commande
Numro
Date
Quantit
Relation ou Association
ENTIT
Nom Nom de la Relation
E
dentit
COMMANDE
PRODUIT
CONCERNER
No Cde
Date Cde
Quantit Cde
No Prod
Dsignation
Prix Unitaire
ENTITE
Dans l'exemple,
l'entit Produit produits S.I.. et
Nom de lentit
Proprit 1
Proprit 2
Proprit 3
Proprit 4
PRODUIT
No Prod
Dsignation
Prix Unitaire
L'identifiant est une proprit (une ou plusieurs) particulire d'un objet telle qu'il n'existe
pas deux occurrences de cet objet pour lesquelles cette proprit pourrait prendre une
mme valeur.
Choix ?
Choix ?
Comme choix pour l'identifiant d'une entit nous distinguons gnralement
3 possibilits:
1. Une proprit naturelle
Exemple: Le nom d'un pays pour une entit Pays
2. Une proprit artificielle qui est invente par le crateur du MCD
Exemple: Le numro d'un client pour une entit Client, Produit,
Commande,
3. Une proprit compose d'autres proprits naturelles
Exemple: Le nom et la localit pour une entit Entreprise
Attributs
VEHICULE
Personnes
No_Matric.
Marque
Modle
Anne
Cylindre
ID_Personne
Nom
Prnom
Sexe
Email
Adresse
Associations ou Relations
Obtenir
Personnes
ID_Personne
Nom
Prnom
Sexe
Adresse
Tlphone
Email
VEHICULE
No
Marque
Modle
Anne
Cylindre
Anne_d_obtention
Diplmes
Code_diplme
Titre_diplme
Abrviation
CLIENT
APPARTIENT
No
Nom
Adresse
SIGNE
CONTRAT
No
Type
Date
La notion de relation
Une relation dcrit un lien entre deux ou plusieurs entits.
Chaque relation possde un nom, qui est gnralement constitu par un verbe l'infinitif.
Chaque relation a implicitement un identifiant, qui est compos par les identifiants des
entits auxquelles elle est lie.
CLIENT
MCD
Relation binaire
Numro
Nom
Prnom
Adresse
Code_postal
Localit
LAC
Relation ternaire
Passer
Commande
Numro
Date
Quantit
Dverser
RIVIERE
Dcharge
Relation rflexive
(relation rcursive)
EMPLOYE
N Matricule
CONJOINT
Cardinalit
Les cardinalits prcisent la participation de l'entit concerne la
relation.
cardinalit minimale
CLIENT
Numro
Nom
Prnom
Adresse
Code_postal
Localit
cardinalit maximale
1, N
Passer
1,1
Commande
Numro
Date
Quantit
Entre l'entit CLIENT et la relation Passer, nous avons les cardinalits suivantes:
* Cardinalit minimale = 1, ce qui veut dire que chaque client passe au moins une commande.
* Cardinalit maximale= N, ce qui veut dire que chaque client peut passer plusieurs (N) commandes.
Entre l'entit Commande et la relation Passer, nous retrouvons les cardinalits suivantes:
* Cardinalit minimale = 1, donc chaque commande est passe par au moins un client.
* Cardinalit maximale =1, chaque commande est passe au maximum par un seul client.
Autres exemples
COMMANDE
1,N
No Cde
Date Cde
CONCERNER
Quantit Cde
0,N
PRODUIT
No Prod
Dsignation
Prix Unitaire
Utiliser
0,N
Ordinateur
1,N
Numro
Nom
Prnom
Adresse
Code_postal
Numro_PC
Type
Configuration
Service
Entre l'entit Ordinateur et la relation Utiliser, nous avons:
Cardinalit minimale = 1
Cardinalit maximale =N
un
plusieurs
plusieurs
plusieurs
CONFIGURATIONS POSSIBLES :
0,1
1,1
0,N
1,N
Le fait d'indiquer pour cardinalit minimale '1' implique une contrainte forte : elle
signifie qu'une entit ne peut exister indpendamment d'une autre. De telles entits
sont dites ''faibles'' .
Insistons sur le point suivant : les cardinalits n'expriment pas une vrit
absolue, mais des choix de conception. Ils ne peuvent tre dclars valides
que relativement un besoin. Plus ce besoin sera exprim prcisment, et
plus il sera possible d'apprcier la qualit du modle.
1,1 <->
1,1
1,N <->
1,N
Explication
Relation ensembliste
TOUTE occurrence de A a un
homologue UNIQUE parmi les
occurrences de B et rciproquement
????
TOUTE occurrence de A a AU
MOINS un homologue parmi les
occurrences de B et rciproquement
RELATIONS Optionnelles
Notation
E-A
Explication
0,N <->
0,1
1,N <->
0,N
TOUTE occurrence de A a AU
MOINS un homologue.
Mais UNE occurrence de B peut ne
pas en avoir, en avoir 1 ou plusieurs.
Relation ensembliste
Exercice 0: Cardinalits?
CLIENT
APPARTIENT
0-N
No
Nom
Adresse
SIGNE
0-N
1-1
CONTRAT
1-1
No
Type
Date
VEHICULE
No
Marque
Modle
Anne
Cylindre
1-N
0-N
CONCERNE
ACCIDENT
No
Date
(Montant)
Exercice 1:
CLIENT
Numro
Nom
Prnom
Adresse
Code_postal
Localit
1,N
1,1
Commande
Numro
Date
Quantit
CLIENT
Numro
Nom
Prnom
Adresse
Code_postal
Localit
0,N
Passer
1,1
Commande
Numro
Date
Quantit
Une commande est toujours passe par au moins un client. Une commande est
galement passe au maximum par un client. Une commande est donc toujours
passe par un et un seul client.
Un client passe au moins une commande et au maximum plusieurs (N) commandes.
Cette modlisation ne tient pas compte des clients qui ne passent aucune commande.
Un client est uniquement considr comme tel s'il passe au moins une commande
Un client peut passer aucune commande et au maximum plusieurs (N) commandes.
Cette modlisation tient compte des clients qui ne passent aucune commande.
Exemple
CLIENT
Disposer
0,N
Numro
Nom
Prnom
Adresse
Code_postal
Localit
Carte_Membre
1,1
No_Carte
Type_Abonnement
Date_cration
CLIENT
Numro
Nom
Prnom
Adresse
Code_postal
Localit
Disposer
1,1
1,1
No_Carte
Type_Abonnement
Date_cration
Exercice 2
Voici le rsultat simplifi d'une analyse faite auprs d'une compagnie d'assurance qui dsire
informatiser la gestion des contrats auto.
Un client peut assurer plusieurs voitures auprs de la compagnie. Chaque voiture est
En ce qui concerne un client, la compagnie dsire connatre son nom, prnom, adresse
complte, numro de tlphone ainsi qu'un numro de compte bancaire avec indication
de la banque.
Chaque contrat contient un numro de contrat unique, la prime annuelle payer, la date
de paiement annuel, la marque de la voiture, le modle de la voiture, le numro
d'immatriculation de la voiture, la valeur de la voiture et la date d'acquisition de la
voiture.
Medecin
Patient
Marticul
Nom
Code
Libelle
No_SS
Nom
Mutuelle
0,N
0,N
1,N
Donner
Prescrit
Nb Prises
Assister
1,1
0,N
Consultation
1,1
No_Cons
Date
1.
2.
3.
4.
Oui
Oui
Non
Non
Oui
Oui
Oui
Oui
Obtenir
1,N
1,1
No_Client
Nom
PARTIE 1
Prnom
LabDB SPRL
Adresse
La socit "LabDB" Code_postal 5, avenue SGBD
7000 FPMs
dsire informatiser son Localit
systme de facturation.
Les factures devraient
se prsenter de la faon
suivante:
Facture
No_Facture
Date
Montant
Client
Nom :
Nom_Client
Prnom
:
Pre_Client
Adresse
:
Serv. Info, 15
Code_postal :
7000
Localit
:
Mons
Montant de la facture :
3400
Crez un MCD,
qui permet de modliser correctement le systme d'information ncessaire, sachant que:
Un client peut bien sr recevoir plusieurs factures, mais il est uniquement considr
comme tel partir du moment ou il reoit sa premire facture.
Une facture concerne un et un seul client.
PARTIE 2
Le responsable de la facturation de la socit dsire rendre les factures plus
informatives. Comme un client peut acheter plusieurs articles diffrents en
mme temps, la facture devrait indiquer pour chaque article le numro , un
libell, le prix unitaire, la quantit vendue et le prix total pour ce type
d'article.
LabDB SPRL
Facture No. 0002
la facture devrait avoir:
5, avenue SGBD
Voici l'aspect que
7000 FPMs
Mons, le 15.02.2003
la facture devrait avoir:
Client
Proposez un nouveau MCD qui
reflte ces modifications, en
respectant le fait que tous les
articles disponibles sont stocks
(p.ex. No=233 Libell="Analyse"
PU=1000 ). Mme si un article
n'est pas encore considr par une
facture, il existe dans le systme
d'information.
Nom :
Nom_Client Prnom
:
Pre_Client
Adresse
:
Serv. Info, 15
Code_postal :
7000
Localit
:
Mons
No.
Article
233
Libell
Quantit
Prix
Analyse
Prix
unitaire
1000
1000
025
MCD
700
1400
142
MLD
1000
1000
3400
CLIENT
Remarque:
L'entit Facture ne contient plus la proprit
Montant. Il existe une rgle gnrale de conception
qui dit:
Aucune proprit qui peut tre calcule partir
d'autres proprits existantes ne devra tre
stocke dans le MCD.
1,N
No_Client
Nom
Prnom
Adresse
Code_postal
Localit
Facture
1,1
No_Client
Nom
Prnom
Adresse
Code_postal
Localit
CLIENT
PARTIE 2
Obtenir
No_Facture
Date
Montant
Obtenir
1,N
Facture
1,1
No_Facture
Date
1,N
Porter
Quantit
0,N
Article
No_Article
Libell
Prix_Unitaire
Structure administrative
DIRECTION
dir-dp
1-1
DEPARTEMENT
dp-serv
0-N
Nom_Dep
Directeur
1-1
SERVICE
traite
0-N
Nom_Serv
Responsable
0-N
travaille
1-1
1-1
DOSSIER
No_Dos
Titre
Date
Description
PERSONNE
No_Pers
Nom
Adresse
0-N
Nom
PDG
Entit
traite
0-N
Nom
Responsable
0-N
travaille
1-1
1-1
DOSSIER
No_Dos
Titre
Date
Description
PERSONNE
No_Pers
Nom
Adresse
Ex:
{Nom, Tel.}
dfinit
{Nom, Prnom}
{ID}
{Adresse,Sexe,Tlphone,Email}
Les formes normales 2NF, 3NF et BCNF sont bases sur des
contraintes en relation avec la notion de dpendance fonctionnelle.
Cetteentitestjustemaiselleimpliqueuneredondancedinformationrelative
lacatgorie.Lassociationentrelenumrodelacatgorieetsonlibellesten
effetrptedanschaqueoccurrencedelentitARTICLE.
Normalisation
Le processus de normalisation du modle relationnel pour objectif dtablir une
meilleure reprsentation conceptuelle des donnes dune application par
des tables relationnelles. Cela consiste, essentiellement, dcomposer les tables
(entits, relations) contenant trop dinformations en tables (E/R) plus petites.
Un mauvais schma relationnel pouvant entraner des anomalies lors des
manipulations.
1 FN (Codd, 1971)
2 FN (Codd, 1971)
3 FN (Codd, 1971)
BCFN (Boyce, Codd, 1971)
4 FN (Fagin, 1977)
5 FN (Fagin, 1979)
FN=Forme Normale.
Normalisation
Normalisation
1FN
Personnes
Nom
Adresse
ID_Personne
Picsou
Adresse
Non 1FN
Nom
Rue
CP
Ville
Picsou
Houdain
7000
Mons
Non 1FN
PERE
ENFANT
P1
Enf11
PERE
ENFANT
P1
Enf12
P1
P1
Enf13
P2
P2
Enf21
P2
Enf22
En 1FN
En 1FN
Normalisation
PRODUITS
Cd1
{Bureau50,Chaise49,Ecran199}
Cd2
{Ecran199,Souris19}
Solution:
COMMANDE
Cd1
Cd1
PRODUIT
Bureau
Chaise
PRIXen
50
49
Cd1
Cd2
Cd2
Ecran
Ecran
Souris
199
199
19
2FN et 3FN
Normalisation
Une relation est en 2FN si elle est en 1FN et si tout attribut nappartenant pas la cl
dpend totalement et non-partiellement de la cl. On dit alors que chaque attribut est en
dpendance irrductible avec la cl. Cest la phase didentification des cls. Cette tape
est trs importante vu quelle vite de nombreuses redondances.
( 2FN: 1FN + si tous les attributs qui ne participent aucune cl pour
l'entit, sont des attributs d'entits et non pas d'autres entits.)
(2FN: 1FN + toute colonne qui n'appartient pas une cl dpend
pleinement de la cl et ne peut se dduire d'un sous-ensemble de cette
cl. )
Une relation est en 3FN si elle est en 2FN et si tous les attributs qui nappartiennent pas
la cl primaire sont mutuellement indpendants. Ceci correspond la non transitivit
des dpendances fonctionnelles et permet dviter les redondances. La forme 3FN
implique que chaque attribut peut tre mis jour indpendamment des autres.
3FN si:
primaire
(tout attribut n'appartenant pas une cl ne dpend pas d'un
attribut non-cl.)
Normalisation
2e ET 3e FORME NORMALE
Exemple :
Soit la relation concernant des dons de bienfaiteurs pour une association.
Nom
redondance
Ville
Rue
Montant
Date
Picsou
Picsou
Picsou
10
12
30
3/10/99
13/1/01
23/7/03
Donald
Disney
500
15/6/05
Bcp de sous
Normalisation
Nom
Picsou
Ville
Disney
Rue
Pas de sous
Donald
Disney
Bcp de sous
DONS
Nom Montant
Date
Picsou
10
3/10/99
Picsou
12
13/1/01
Picsou
30
23/7/03
Donal
d
500
15/6/05
Normalisation
DEPARTEMENT
IdDepart
Localisation
0-N
dpend
Localisation ne dpend
que de DEPARTEMENT
1-1
EMPLOYE
NumEmp
Nom
Normalisation
VILLE
CD_POSTAL
PIECE
QTE_EXP
F1
Mons
7000
Bureau
300
F1
Mons
7000
Ecran
500
F1
Mons
7000
Armoire 20
F2
Charleroi
6000
Bureau
500
F2
Charleroi
6000
Ecran
600
F3
Keumie
5060
Ecran
500
Quelques anomalies:
FOUR1
Redondances.
Difficult de maintenance.
Mmoriser ladresse fournisseur impossible si pas de pice fournie. e.g.
<F4, Mons, 7000>
Suppression de toutes les pices fournies par F2, fait perdre aussi son adresse.
Normalisation
FOUR1
NOM_FOUR
VILLE
CD_POSTAL
PIECE
QTE_EXP
F1
Mons
7000
Bureau
300
F1
Mons
7000
Ecran
500
F1
Mons
7000
Armoire
20
F2
Charleroi
6000
Bureau
500
F2
Charleroi
6000
Ecran
600
F3
Keumie
5060
Ecran
500
EXPEDITION
2FN
NOM_FOUR
PIECE
QTE_EXP
F1
Bureau
300
F1
Ecran
500
NOM_FOUR
VILLE
CD_POSTAL
F1
Armoire
20
F1
Mons
7000
F2
Bureau
500
F2
Charleroi
6000
F2
Ecran
600
F3
Keumie
5060
F3
Ecran
500
F4
Mons
7000
FOUR2
Normalisation
En fait, les redondances ont juste t minimises. Car la relation FOUR2 souffre
encore de quelques anoma1ies.
Exercice: Lesquelles?
Considrer toujours le tuple supplmentaire
<F4, ..., Mons, 7000>
NOM_FOUR
FOUR2
VILLE
CD_POSTAL
F1
Mons
7000
F2
Charleroi
6000
F3
Keumie
5060
F4
Mons
7000
Normalisation
VILLE
F1
3FN
COMMUNE
VILLE
CD_POSTAL
Mons
Mons
7000
F2
Charleroi
Charleroi
6000
F3
Keumie
Keumie
5060
F4
Mons
FOUR3
NOM_FOUR
VILLE
COMMUNE
VILLE
CD_POSTAL
EXPEDITION
NOM_FOUR
PIECE
QTE_EXP
Normalisation
Exces :
Deuxime forme normale (2FN)!!!
Une relation est en 2FN si:
Elle est en 1FN,
Tout attribut, non cl primaire, est dpendant de la cl primaire.
Exemple de relation en 1FN mais pas en 2FN:
Projet
NumProjet
NumEmploy
Pourquoi?
Fonction
NomEmploy
Problmes
- on ne peut enregistrer un employ que s'il participe un projet
- si un employ participe plusieurs projets, on doit rpter les informations sur cet employ
(redondance et problmes de m--j)
Une solution peut tre propose qui consiste extraire la dpendance fonctionnelle:
1. On cr une nouvelle relation contenant l'attribut dtermin par une partie de la cl primaire
2. La cl primaire de la nouvelle relation est cette partie de la cl
Employ
NumEmploy
NomEmploy
Projet
NumProjet
NumEmploy
Fonction
Normalisation
Nclient
nom
prnom
date de naissance
rue
ville
quantit
Nfournisseur
ville
Pourquoi?
Pourquoi?
NumEmploy
NumService
Pourquoi?
Un autre exemple:
COMPAGNIE
NomEmploy
Vol
Avion
Pilote
NomService
Contraintes dintgrit
Aprs MLD
contraintes de domaine et de non-nullit sont gres en langage SQL, lors de la cration de la tab
Intgrit de rfrence :
Lintgrit de rfrence (ou intgrit rfrentielle) est un
ensemble de contraintes contrlant les dpendances et
indpendances des relations. Elle concerne principalement
lintgrit des cls trangres dont les valeurs sont NULL ou
des valeurs de la cl primaire.
C. I.
Intgrit de relationnelle :
Lintgrit relationnelle contrle la smantique et gre les
contraintes de type ifthen Voici lexempledune rgle
dintgrit qui assure la suppression du numro de tlphone
dune personne dcde.
CREATE INTEGRITY RULE Rgle_Dcs
FORALL Personnes (IF Personnes.Dcd= True
THEN Personnes.Tlphone = NULL)
ON ATTEMPTED VIOLATION Reject;
C. I.
CIF
Personnes
0
N
Obtenir
Anne_d_obtention
ID_Personne
Nom
Prnom
Sexe
Adresse
Tlphone
Email
0
N
Diplmes
Code_diplme
Titre_diplme
Abrviation
0N
CIF
Universits
Code_universit
Nom_universit
Abrviation
Si on imagine re-normaliser les diplmes de telle manire que chaque universit possde
lexclusivit du diplme quelle dlivre, dans ce cas, la connaissance du diplme implique
celle de luniversit. Il y a donc une contrainte dintgrit fonctionnelle entre lentit Diplmes
et lentit Universits.
Personnes 0
Obtenir
Anne_d_obtention
0
N
Diplmes
0
1
Dlivrer
0
N
Universits
CIF
Camion
0,N
No_Camion
Activit
Conduire
1,1
Matri_Chauf.
Camion
No_Camion
0,N
0,N
Activit
Conduire
1,N
Chauffeur
Mois
Mois
Cumul Nb H
dactivit
Chauffeur
1,N
0,N
Cumul Nb H
dactivit
0,N
Mois
Mois
Matri_Chauf.
CIF
Entit 1
CIF
Relation
Entit 2
CIF
1,1
Camion
1,N
0,N
Type de Client
No_Camion
0,N
Type
Activit
Cumul Nb H
dactivit
Chauffeur
0,N
Matri_Chauf.
1,N
1,1
1,1
Camion
Client
1,N
1,1
0,N
Affecter
1,N
NClient
0,N
Type de Client
No_Camion
0,N
Type
Activit
Cumul Nb H
dactivit
Chauffeur
0,N
Matri_Chauf.
1,1
1,N
Client
1,N
Affecter
NClient
0,N
1,1
CIF
LassociationbinairequirelielentitCONTRATetlentit
PROPRIETAIREdoittretedumodlecaronpeutretrouver
lepropritairepartirdesassociationsConcerneret
Appartenir.Il sagit dune association transitive.
Gestion FPMS_Etudiants
La FPMs veut r-informatiser son systme d'information qui gre les tudiants, Groupes
dtudiants (classes)(1er_A,... , 3eme_IG,) .
Sachant que :
Un tudiant est caractris par [no. matricule, nom, prnom, date de naissance, adresse,
Email ].
Une classe est caractrise par le nom de la classe (p.ex 1er) et par une indication du groupe
ou spcialit (P.ex : 1er_A, 4eme_Elec) ainsi que par le nombre dtudiants qui la frquente.
Un tudiant enregistr dans le systme frquente au moins une classe au cours des annes.
On dsire galement saisir tous les enseignants dans le systme d'information. Un enseignant
est caractris par un code interne (CodeProf) , nom, prnom, Email et la matire qu'il
enseigne.
Une matire (cours) peut tre compose de cours, T.P. et Exercices. Chacun des modules
prsente un poids en pourcentage de la cte globale lexamen. Un module peut tre donn
par un ou plusieurs enseignants.
Une matire est reprsente au moins par un code matire (p.ex. INF_B =
Informatique de base, BD = Base de donnes, etc.) et un libell complet qui exprime
le terme gnral ( p.ex "Informatique" etc.).
Modlisez le fait que chaque classe soit enseigne chaque anne par
un ou plusieurs enseignants. Un enseignant peut bien sr donner des
cours (cours, Labo., Exercices) plusieurs classes, enseigner
plusieurs matires diffrentes pendant une ou plusieurs annes, mais
peut galement ne pas donner de cours pendant une ou plusieurs
annes.
Exprimez aussi le fait que ltudiant puisse suivre des cours en
deux annes diffrentes.
Exprimez la contrainte suivante : connaissant le code postal de
ltudiant, nous pouvons choisir parmi les localits, celle qui
correspond ladresse de ltudiant, ou connaissant la localit le
code postal est capt automatiquement.
Analyse
Rel
Peru
Schma
Conceptuel
Schma
Logique
Identifant
Cl
primaire
EMPLOYE
(Mat, Nom, Fonc)
Propri
t
Attribut
Association ou relation
Notion Pre_fils ou mre_fille
(1,N) : (1,1)
(0,N)
(contrainte rfrentielle)
DEPARTEMENT
Nom
Adresse
DEPARTEMENT
Nom
Adresse
0-N
Occupe
1-1
EMPLOYE
Matricule
Nom
Fonction
EMPLOYE
Matricule
Nom Fonction
NomDpt
CLIENT
COMMANDER
Quantit
Cde
Client
Nom
Adresse
1,N
PRODUIT
Rfrence
Dsignation
Prix Unitaire
Cls trangres
0,N
COMMANDER
0,N
Rfrence
Dsignation
Prix Unitaire
Quantit
Cde Client
Nom
Adresse
CLIENT
CdCli
Nom
PRODUIT
PRODUIT
Adresse
Ref
COMM
CdCli
Ref
Qu
Des
Prix
Disposer
CLIENT
0,1
Numro
Nom
Prnom
Adresse
Code_postal
Localit
Carte_membre
1,1
No_Carte
Type_Abonnement
Date_cration
CLIENT
Carte_membre
NoClient
Nom
Prnom
Adresse
Cde_postal
Localit
Disposer
No_Carte
NoClient
Type_Abonnement
Date_cration
DIMENSION SUPERIEURE A 2:
Si la relation entre chacune des paires d'entits ne peut dterminer la troisime entit.
Une table pour chacune des entits et une table pour la relation. Cette dernire
possdera une cl primaire compose d'au moins trois champs.
Mdecin
Nom-mdecin
Adresse
0-N
Pratiquer 0-N
Lieu
Acte
Code-acte
Dsignation
1-N
Patient
NSec.Soc
Nom
Medecin(Nom-Med, Adr)
Acte(Cd-Acte, Des)
Patient(NSS, Nom-Pat)
Pratiquer(#Nom-Med, #Cd-Acte, #NSS, Lieu)
Rsum :
Relation binaire :
A-B
(0,1) (0,1) : Idem que (0,1)- (1,1) avec choix du placement de la cl trangre.
Relation ternaire
-N
-N
A-B-C
-N
EXCE :
Exercice "LabDB"
Transformez le MCD suivant, qui reprsente la facturation de la socit
"LabDB" en un MLD en respectant toutes les rgles du passage MCD MLD.
CLIENT
No_Client
Nom
Prnom
Adresse
Code_postal
Localit
Obtenir
1,N
Facture
CLIENT
No_Facture
Date
No_Client
Nom
Prnom
Adresse
Code_postal
Localit
1,1
1,N
Porter
Obtenir
Facture
N_Facture
NClient
Date
Quantit
0,N
Porter
Article
No_Article
Libell
Prix_Unitaire
N Facture
No_Article
Quantit
Article
No_Article
Libell
Prix_Unitaire
Exercice_Oblix
La socit Oblix et Compagnie fournit des menhirs dans le monde entier et
gre les commandes laide dun micro-ordinateur.
Exemple dune commande:
Oblix et Compagnie
Livreur de menhirs
Village gaulois
Donner :
Le MCD
Les cardinalits et leur
signification.
Le Modle des
donnes.
012
Nom client:
N commande:
BISCORNUS
Prnom:
M.
Adresse:
BABAORUM
Code Libell
Quantit
12
MENHIR CLASSIC
21
MENHIR SE/30
1500
25
MENHIR II FX
2500
Prix unitaire
500
4711
Rep_Oblix
Schma Entit-Association
0,N
CLIENT
1,1
CLI_COM
COMMANDE
1,N
Signification:
- Une commande est passe par un (1) client.
- Un client peut passer plusieurs (N) commandes.
- Une commande peut concerner plusieurs (N) produits.
- Un produit peut intervenir dans plusieurs (N) commandes.
COM_PRO
0,N
PRODUIT
Modlerelationneltextuel:
Client(NoClient,Nom,Prnom)
Commande(NoCde,DateCde,NoClient#)
Produit(RefPdt,Dsignation,Prix)
Ligne(NoCde#,RefPdt#,Qt)
Client
NoClient
Nom
Commande
Prnom
NoCde
DateCde
NoClient#
Lassus
Annick
100
14/04/2001
Mundubeltz
Armelle
101
14/04/2001
Produit Bernadette
Chaulet
RefPdt
Dsignation
Prixen
Ligne
NoCde#
RefPdt#
Qt
VE45
Vlo
150
100
VE45
VE32
Kit2roues
30
100
VE32
CLIENT
NumClient
001
002
003
Nom
Albert
Francois
Brabo
PRODUIT
Ville
Bruxelles
Lige
Anvers
COMMANDE
NumClient NumPiece
001
0002
002
0002
002
0003
NumPiece
0001
0002
0003
Descr.
Table
Chaise
Armoire
Cout
500
300
1.000
Quantite
3
1
5
des relations existent entre les tableaux d une BD, ici: Albert de
Bruxelles a command 3 chaises 300 EUR
CLIENT
APPARTIENT
0-N
NumCli
Nom
Adresse
SIGNE
0-N
1-1
1-1
CONTRAT
VEHICULE
0-1
NumCtr
Type
Date
0-N
ACCIDENT
(1-N)
NumAcc
Date
(Montant)
NumVeh
Marque
Modle
Anne
Cylindre
1-1
0-N
COUVERT
CONCERNE
CLIENT
NumCli
Nom
Adresse
CONTRAT
VEHICULE
NumVeh
...
NumCli
NumCtr
Numcli
NumCtr
Type
Date
ACCIDENT
NumAcc
CONCERNE
NumVeh
NumAcc
Date
(Montant)
Exemple - SQL
create table CLIENT (
NumCli char (12) not null,
Nom
char (38) not null,
Adresse char (60) not null,
primary key
(NumCli) )
create table
CONTRAT (
NumCli char (12)
not null,
NumCtr char (8)
not null,
Type
decimal (4)
not null,
Date
date
not null
primary key
(NumCtr)
Foreign key
(NumCli) references CLIENT )
Access
SQL
S.Q.L. Structured Query Language , "langage structur de
requte" est un langage pour interroger et grer les bases de
donnes relationnelles.
Il permet de crer, modifier et slectionner des donnes.
Le SQL peut se diviser en trois parties:
DDL (data definition language), sert dfinir la structure:
crer, modifier, effacer...
DML (data manipulation language), sert manipuler les donnes:
choisir, ajouter, effacer des tuples.
DCL (data control language), sert contrler l'accs l'information.
CREATE TABLE
CREATE INDEX
CREATE VIEW
ALTER TABLE
DROP TABLE
INSERT
UPDATE
DELETE
SELECT
Insrer un tuple
Modifier un tuple
Effacer un tuple
Choisir un ensemble de tuples
Types de donnes
SMALLINT entier (16 bits)
INTEGER entier (32 bits)
DECIMAL (m,n) dcimaux de m chiffres (dont n aprs la virgule)
FLOAT rels flottants
CHAR (n) chane de n caractres
VARCHAR chane variable dau plus n caractres
DATE dates (anne, mois et jour)
TIME instants (heure, minute, seconde)
Exercice "LabDB"
CLIENT
No_Client
Nom
Adresse
Obtenir
1,N
Facture
1,1
No_Facture
Date
1,N
Porter
Quantit
0,N
CLIENT
No_Client
Nom
Boite_Post
Rue
Code_postal
Localit
Obtenir
1,N
Facture
1,1
No_Facture
Date
1,N
Porter
Quantit
0,N
Article
Article
No_Article
Libell
Prix_Unitaire
No_Article
Libell
Prix_Unitaire
CLIENT
No_Client
Nom
Boite_Post
Rue
Code_postal
Localit
Obtenir
1,N
Facture
CLIENT
No_Facture
Date
No_Client
Nom
Boite_Post
Rue
Code_postal
Localit
1,1
1,N
Porter
Obtenir
N_Facture
#NClient
Date
Quantit
Porter
0,N
N Facture
No_Article
Quantit
Article
No_Article
Libell
Prix_Unitaire
Facture
Article
No_Article
Libell
Prix_Unitaire
create
table
Identifiant
CREATE TABLE Client (
not
null
CHAR (12),
Code_P
INTEGER,
Localite
CHAR (20),
PRIMARY KEY (No_Client)
);
primary
key
CLIENT
No_Client
Nom
Boite_Post
Rue
Code_postal
Localit
Facture
N_Facture
#NClient
Date
Porter
N Facture
No_Article
Quantit
Article
No_Article
Libell
Prix_Unitaire
INTEGER,
);
foreign
key
Cl trangre
Crer un index
CREATE INDEX PR-Cli1 ON Client (Localite);
Dtruire un index
DROP INDEX PR-Cli1
CLIENT
No_Client
Nom
Prenom
Boite_Post
Rue
Code_postal
Localit
Consultation dune BD
SELECT Nom, Localite
prciselesvaleurs(colonnes,valeurscalcules)
quiconstituentchaquelignedursultat
FROM
Client
indiquelestablesdesquelleslersultattiresesvaleurs
WHERE Localite = Charleroi
donnelaconditiondeslection
quedoiventsatisfaireleslignesquifournissentlersultat
Extraction
Extraction
Extraction
Le DISTINCT permet d'obtenir une liste qui ne contient qu'une fois chaque Localite.
DISTINCT
AVANT
APRES
AVEC
DISTINCT
Conditions de slection
and
or
not
()
SELECT TableClient.Nom,
TableClient.compte
FROM TableClient
Access
WHERE
(((TableClient.Localite)='Charleroi')
AND ((TableClient.compte)>=0));
Facture
N_Facture
#NClient
Date
Sous-requtes
Facture
N_Facture
#NClient
Date
EXCE :
Lesclientsquihabitentdanslammelocalitqueleclientn2
SELECT *
FROM Client
WHERE Localite IN (
SELECT
Localite
FROM Client
WHEREClient.No = 3)
Diffrents oprateurs
=
IN
NOT IN
CONTAIN
DOES NOT
CONTAIN
Diffrentes fonctions
COUNT
SUM
AVG
MIN
MAX
nombredecommandes???
APRES
APRES
Mise jour :
UPDATE ASSOCIATION
SET PRIX=23 WHERE NOPCE=5 AND NOFOUR="ZZ";
Suppression :
DELETE FOURNISSEUR WHERE NOFOUR="ZZ";
Dans la table FOURNISSEUR supprime l'enregistrement dont NOFOUR=ZZ.
Il faut s'assurer que ce fournisseur n'est pas utilis dans la table
ASSOCIATION.
Cration :
INSERT INTO ASSOCIATION
(NOPCE,NOFOUR,PRIX) VALUES(1,"KK",10);
Cre dans la table ASSOCIATION un enregistrement en
assignant des valeurs aux colonnes.