bd

136
Les Bases de données relationnelles de la théorie à la pratique

description

systeme d'information

Transcript of bd

Diapositive 1

Les Bases de donnes relationnelles

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... ).ContenuL'approche base de donnes Conception d'une base de donnes Bases de donnes relationnelles Pratique d'un SGBD

Etapes et Dmarche de modlisation

1. Analyse de la situation existante et des besoins 2. Cration d'une srie de modles qui permettent de reprsenter tous les aspects importants

3. A partir des modles, implmentation d'une base de donnes

Un modle de base de donnes est un ensemble dlments qui dcrit les donnes et permet dexprimer les proprits et les liens entre ces donnes. Le modle est souvent reprsent de manire graphique. Il se compose dune description des donnes et de leurs relations ainsi que dun ensemble de contraintes concernant la valeur que peuvent prendre les donnes ou concernant les liens qui les relient.Un schma de base de donnes est une description de la structure des donnes grer via lutilisation dun langage dtermin.

Information: Une information est un lment qui permet de complter notre connaissance sur un objet, un vnement, une personne ... .Exemple: Le nom d'une personne est une information concernant cette personne.Systme d'information: Un systme d'information est constitu par l'ensemble des informations relatives un domaine bien dfini.Exemple: Librairie: stock, commandes, ventes Un S. I. existe indpendamment des techniques informatiques. Il contient les donnes et les traitements ncessaires pour assimiler et stocker les informations entrantes et produire les informations sortantes.

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.Les donnes sont des faits, connus et qui ont un sens pour lutilisateur. Ces donnes doivent avoir une relation entre elles.

collection de donnes enregistres ensemble, sans redondance pnible ou inutile, pour servir plusieurs applications, on y enregistre les donnes de faon ce quelles soient indpendantes des programmes qui les utilisent, on utilise une approche commune et contrle pour ajouter, modifier, retrouver des donnes. James MartinCollection de donnes persistantes utilises par des systmes dapplication de certaines entreprises Dfinitions

Exemples: FPMs BD sur tous les tudiants. Une banque BD sur tous les clients. Une socit d'assurances BD contrats d'assurances et sinistres.Une base de donnes correctement construite permet de partager les donnes entre plusieurs utilisateurs, de restreindre laccs ou la modification des donnes, dassurer lintgrit des donnes et dquilibrer les conflits des besoins tout en rduisant les redondances et en vitant les incohrencesDfinitions

---- une base de donnes ?Contrle centralis des donnesRedondance rduiteIncohrence viteDonnes partagesNormes imposesRestrictions de scurit possiblesIntgrit assure (36/15/2005 est impensable)Conflits des besoins quilibrsEt stocker, consulter, modifier des informationsLorsquon a besoin dorganiser les donnes en un ensemble structur et :Qu'attendre Pourqoui

Un systme de gestion de bases de donnes (SGBD) est un programme qui permet la reprsentation informatique des donnes, qui nous permet de crer, de modifier et d'exploiter des bases de donnes. Ce systme constitue donc notre interface pour accder aux donnes.

SGBDBD

SGBD logiciel grant une BD. Il permet un utilisateur de communiquer (requtes) avec une base de donnes pour : - dcrire et organiser les donnes sur les mmoires, - rechercher, slectionner et modifier les donnes.Systme de gestion de bases de donnes:

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.---- un SGBD?SGBDQu'attendre Pourqoui

a) le modle hirarchique: les donnes sont classes hirarchiquement, selon une arborescence descendante. Ce modle utilise des pointeurs entre les diffrents enregistrements. Le plus ancien, peu souple.b) le modle rseau: Comme le modle hirarchique ce modle utilise des pointeurs vers des enregistrements. Moyennement souple, complexe pour le dveloppement, performance moyenne.c) le modle relationnel (SGBDR, Systme de gestion de bases de donnes relationnelles): les donnes sont enregistres dans des tables. La manipulation de ces donnes se fait selon la thorie mathmatique des relations , thorie ensembliste. (du mathmaticien CODD). Fort souple, ais dvelopper.d) le modle objet (SGBDO, Systme de gestion de bases de donnes objet): les donnes sont stockes sous forme de classes.

a)b)

c)

d)fort souple, ais dvelopper+ieurs MODELES de BASES de DONNEES 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 SGBD

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* Objets simples : table, ligne, colonne* Bas sur des objets mathmatiques bien connus : - Relation, n-tuple, ensemble, etc.* Oprations d'interrogation - Slection, projection, jointure

Actuellement le modle le plus rpandu (de loin)

1980 : Les systmes de gestion de bases de donnes relationnels apparaissent sur le march.1990 : Les systmes de gestion de bases de donnes relationnels dominent le march.

Les objectifs du modle relationnel :

proposer des schmas de donnes faciles utiliser, fournir une approche mthodologique dans la construction des schmas. amliorer l'indpendance logique et physique, mettre la disposition des utilisateurs des langages de haut niveau pouvant ventuellement tre utiliss par des non informaticiens, optimiser les accs la base de donnes, amliorer l'intgrit et la confidentialit,Manipulations relationnelles, en gnral exprimes en SQL, transforment des tables en une table

Algbre RelationnelleLes donnes sont perues par lutilisateur comme des tablesJOIN: relie 2 tables grce aux valeurs communes de 2 colonnes communes

Oprations relationnellesSlection :ProjectionRestrictionJointureDivisionAgrgationOpration suppl.Mise jourCration dune vue

Liste non exhaustive de SGBD relationnels:

Adabas de Software AG Access de Microsoft DB2 : IBMInformix: UnixIngres: Vax, IBM, Sun, HP, DosMS-sqlMySQL (logiciel libre)Oracle : Oracle (multi plateforme)Progress : Unix, Dos, VMS, OS/2PostgreSQL (logiciel libre)SqlServer de Microsoft Sybase de Sybase

Mise en oeuvre dun SGBD

On distingue trois niveaux dapprhension dfinis par la norme ANSI/SPARC (architecture de rfrence d'un SGBD). A chaque niveau correspond un schma de reprsentation : le niveau interne avec le schma physique Description du stockage des donnes au niveau des units de stockage le niveau conceptuel avec le schma conceptuelDescription de la structure des donnes de la base, description de leurs proprits (relations qui existent entre elles), sans soucis d'implmentation physique ni de la faon de s'en servir. le niveau externe avec les vues (comment lutilisateur voit les donnes)Description pour chaque utilisateur de sa perception des donnes.

ESESESCSIS

ESESESCSIS

ESs : Schmas Externes CS : Schma Conceptuel IS : Schma Interne L'administrateur aura pour rle : la conception du modle partir du monde rel reprsenter, le rglage du schma physique pour certaines optimisations de performances, le maintien de la base de donnes physique, la description des schmas externes l'usage des utilisateurs finaux.

Schmas Externes (ESs)Dfinit une vue de la BD Vues SQL, Vbasic, orients Web notamment (HTML, XML)

ESESESCSIS

Une BD est en gnral munie de plusieurs diffrentes ESsMais tous ont le CS comme racine commune

Schma Interne (IS)Comment transformer les objets? Comment ils seront stocks? Comment y accdes?

CSSchma Conceptuel

MeriseMerise 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.

Terme relationnel formelEquivalent informelrelation relation perue entre entits (!!table)n-upletligne ou enregistrementcardinalitnombre de lignesattributcolonne ou champdegrnombre de colonnescl primaireidentificateur uniquecl trangrerfrence = attribut principal ailleurs domaine Ensemble de valeurs lgales (ensemble des valeurs dun attribut)

Objets relationnels: domaines et relations

Les composants d'une base de donnes relationnelleQuatre types d'objets. Tables, Requtes, Formulaires, Rapports.1. Les Tables Une table est une collection de donnes relatives un domaine bien dfini.

N MatNOMSALAIRECode post.159Donald1500 7000132Oblix1900 50601187Picsou1134 1000354....

Valeurs de lattribut Un champ de donnes (Attribut) Enregistrement, N_UpletTable: Employs_Disney

Cl primairePour 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.2.Les requtes (angl. Queries)Les requtes "questions" qu'on pose au SGBD. Le rsultat est toujours un sous-ensemble d'une ou de plusieurs tables.Il existe 4 types de requtes:1. Requtes de slection.Select2. Requtes d'insertion.Insert3. Requtes de modification.Update4. Requtes de suppression.DeletePour chaque requte nous retrouvons le cycle suivant:Formuler la requte Analyser et Excuter la requteRsultat de la requte

3. Les formulaires (angl. Forms) Les formulaires pour ajouter, modifier ou supprimer des donnes dans les tables.

Les formulaires offrent certains avantages: facilit d'utilisation, scurit des donne 4. Les rapports (angl. Reports)

Pas de dialogue interactif avec l'utilisateur.Un rapport se base gnralement sur une ou plusieurs tables ou le rsultat d'une requte.

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 conceptuel identifie et dcrit formellement lensemble des informations du domaine gr par le futur systme dinformation. Ce niveau amne donc le concepteur construire une reprsentation formelle de la signification des donnes.

Le niveau organisationnel exprime la rpartition organisationnelle des donnes informatises, la scurit des donnes par rapport aux acteurs des units organisationnelles et prcise quelles sont, parmi les donnes dfinies au niveau conceptuel, celles qui seront prises en compte par le futur systme informatis. On ne dveloppera pas cet aspect vu quil dpend fortement de lenvironnement dintgration du systme dinformation.

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.Niveaux dabstraction

Cycle d'abstraction de conception des S.I.

La conception du systme d'information se fait par tapes, afin d'aboutir un systme d'information fonctionnel refltant une ralit physique. Il s'agit donc de valider une une chacune des tapes en prenant en compte les rsultats de la phase prcdente. D'autre part, les donnes tant spares des traitements, il faut vrifier la concordance entre donnes et traitement afin de vrifier que toutes les donnes ncessaires aux traitements sont prsentes et qu'il n'y a pas de donnes superflues.Cette succession d'tapes est appele cycle d'abstraction pour la conception des systmes d'information:NiveauStatique (donnes)Dynamique (traitements) Conceptuel MCD MCTOrganisationnelou logiqueMLDMOT(QUI ? QUAND ?)Oprationnelou physique MPD MOPT

Donc la dmarche classique d'un projet en BD comprend les tapes suivantes:

1. Analyse de la situation existante et des besoins2. Cration d'une srie de modles qui permettent de reprsenter tous les aspects importants3. A partir des modles, implmentation d'une base de donnes

Mthodologie pour traduire un systme d'information naturel en une base de donnesAnalyseMCDMLDMPD

Rel Peru

Schma ConceptuelSchma Logique

Niveaux dabstractionsNiveau ConceptuelNiveau LogiqueNiveau PhysiqueElaboration du Modle E-RPassage au ModleRelationnelImplmentationSur SGBD-RUnivers de lapplication

Application?Choix de lapplication / groupeNiveau ConceptuelNiveau LogiqueNiveau PhysiqueElaboration du Modle E-RPassage au ModleRelationnelImplmentationSur SGBD-RSchma ConceptuelSchma LogiqueSchma Physique

Implmentation Sur SGBD-RRapportDef. Dom. C.Chg

Univers de lapplication

1er rapport: mars 2006 Cahier de charges.2me rapport : .. Cahier de charges et MCD.3me rapport: .. Rapport final Votre rapport doit respecter scrupuleusement la table des matires suivante:1. Cahier de charges de lapplication 2. MCD3. MLD4. MPD (qlq tables et relations)5. Implmentation6. Conclusion7. Explications du fonctionnement de votre base de donnesUtilisez: 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!Noubliez pas de joindre une disquette ou un CD de votre base de donnes.Indiquez aussi les noms des tudiants qui composent le groupe sur le support informatique et le rapport.

Quelles seront les volutions possibles de votre base de donnes ?

1. Le niveau conceptuel, se base directement sur l'analyse, cest une reprsentation du monde rel par un seul modle. Il dcrit, de faon formelle, l'ensemble des donnes du systme d'information, sans tenir compte de l'implmentation informatique de ces donnes. Ce niveau reprsente donc la signification des donnes, se traduit par un formalisme que nous appelons:Permet de dfinir les informations pertinentes pour lapplication et denvisager leur structure.Doit reflter le plus fidlement possible la ralit modliser dans la BD, tout niveau: donnes, relation, contraintes de cohrence de donnes, .. Modle conceptuel des donnes MCDAnalyse

Niveau ConceptuelElaboration du Modle E-RSchma Conceptuel

La construction du schma conceptuel comporte normalement les tapes suivantes : Dfinir les objectifs Analyser la ralit Tracer le schma conceptuel Pour la construction du modle conceptuel, beaucoup de mthodes ont t mises en place mais aucune ne donne rellement satisfaction. On peut cependant les rpartir en deux catgories: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 entitsles verbes deviennent des associations La partie analytique consiste essentiellement transformer des phrases dcrivant certains aspects de la ralit en entits, relations et cardinalits.

Il semble que la bonne approche de construction dun modle conceptuel des donnes soit un compromis entre la mthode directe, qui laisse une large part lintuition et la mthode base sur ltude des dpendances fonctionnelles. Quelle que soit la technique utilise, le modle doit tre vrifi, normalis et enrichi de concepts tendus pour reprsenter le plus fidlement possible lapplication.modlisation par analyse des dp. fonctlles Identifier toutes les proprits du S.I. analyser. Cette tape aboutit au dictionnaire des donnes pur qui devra comporter ni synonyme, ni donne calcule ...

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:2. Le niveau logique se base sur le modle conceptuel des donnes. Ce niveau introduit la notion des tables logiques, et constitue donc le premier pas vers les tables des SGBD. Ce niveau est reprsent par le:Modle logique des donnes : MLDModle physique des donnes : MPDNiveau LogiquePassage au ModleRelationnelSchma Logique

Niveau PhysiqueImplmentationSur SGBD-R

Schma Physique

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. Le schma conceptuel 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. Les cardinalits reprsentent le nombre possible dinteractions entre les entits et les attributs .

Passer1, N1,1CLIENTNumroNom

CommandeNumroDateQuantit

Le Modle Conceptuel des Donnes (MCD)Analyse (MCD): "Schma Entit-Relation" ou "Schma Entit-Association".

COMMANDENo CdeDate Cde

PRODUITNo ProdDsignationPrix Unitaire

CONCERNER

Quantit CdeRelation ou AssociationProprit de la RelationNom de la RelationNom dentitENTITEProprit dentit

Dans l'exemple, l'entit Produit produits S.I.. et l'entit Commande commandes S.I. Un identifiant est une colonne dont lesvaleurs permettent de reprer une seule ligne

NOM

IdentifiantAttributs

Nom de lentitProprit 1Proprit 2Proprit 3Proprit 4

PRODUITNo ProdDsignationPrix Unitaire

Le choix d'un identifiant correcte est trs important pour la modlisation:Choix ?ENTITEL'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 ?Comme choix pour l'identifiant d'une entit nous distinguons gnralement 3 possibilits:

Une proprit naturelle Exemple: Le nom d'un pays pour une entit Pays

2. Une proprit artificielle qui est invente par le crateur du MCDExemple: Le numro d'un client pour une entit Client, Produit, Commande,

3. Une proprit compose d'autres proprits naturellesExemple: Le nom et la localit pour une entit EntrepriseLe modle conceptuel des donnes propose de souligner les identifiants

Attributscaractristiques des entitsobligatoires ou facultativesavec un domaine (type) de valeurs

CLIENT

VEHICULE

NoNomAdresseNo_Matric.MarqueModleAnneCylindreID_PersonneNomPrnomSexeEmailAdressePersonnesQu'est ce qu'un bon schma Entit-Relation (formes normales) ? ni perte d'information ni redondance contraintes (dintgrit) entre les valeurs des attributs le but: indpendance / applications (vues particulires)

Associations ou Relations

CLIENTNoNomAdresse

CONTRATNoTypeDate

VEHICULENoMarqueModleAnneCylindre

APPARTIENTSIGNEPersonnesDiplmes

ObtenirID_PersonneNomPrnomSexeAdresseTlphoneEmailCode_diplmeTitre_diplmeAbrviation

Anne_d_obtention

La notion de relationUne 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.

Passer

CLIENTNumroNomPrnomAdresseCode_postalLocalit

CommandeNumroDateQuantitMCD Relation binaire

DverserLACRIVIEREDcharge

EMPLOYE N Matricule

CONJOINT Relation ternaire Relation rflexive (relation rcursive)

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:CardinalitLes cardinalits prcisent la participation de l'entit concerne la relation. cardinalit minimale cardinalit maximale

Passer1, N1,1CLIENTNumroNomPrnomAdresseCode_postalLocalit

CommandeNumroDateQuantit* 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

Utiliser0,N1,NEmployNumroNomPrnomAdresseCode_postalService

OrdinateurNumro_PCTypeConfigurationEntre l'entit Employ et la relation Utiliser, nous avons: Cardinalit minimale = 0 Certains employs n'utilisent pas d'ordinateur Cardinalit maximale = N Entre l'entit Ordinateur et la relation Utiliser, nous avons: Cardinalit minimale = 1 Cardinalit maximale =N

COMMANDENo CdeDate Cde

PRODUITNo ProdDsignationPrix Unitaire

CONCERNER

Quantit Cde1,N0,NUne occurrence de commande est concerne au moins 1 fois.Une occurrence de commande peut tre concerne plusieurs (N) fois.Une occurrence de produit peut ne pas tre concerne (0).Une occurrence de produit peut tre concerne plusieurs (N) fois.

1,1 : Un COUREUR Provient au min d1 PAYS et au max d1 PAYS.Un COUREUR Provient dun et dun seul PAYS.0,n : Un PAYS est reprsent au min par 0 COUREUR et au max n. Un PAYS est reprsent par aucun ou plusieurs COUREURS.

plusieursplusieursplusieursun

CONFIGURATIONS POSSIBLES :

0,1 Une occurrence participe au moins 0 fois et au plus 1 fois lassociation1,1 Une occurrence participe exactement 1 fois lassociation0,N Une occurrence peut ne pas participer ou participer plusieurs fois1,N Une occurrence participe au moins 1 fois, voire plusieurs 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.!

Les cardinalits, du point de vue de l'association, dans une interprtation ensembliste

Notation E-A

Explication

Relation ensembliste

1,1 1,1

TOUTE occurrence de A a un homologue UNIQUE parmi les occurrences de B et rciproquement????

1,N 1,N

TOUTE occurrence de A a AU MOINS un homologue parmi les occurrences de B et rciproquement

RELATIONS OBLIGATOIRES Notation E-A

Explication

Relation ensembliste

0,N 0,1

UNE occurrence de A peut avoir 0,1,N vis--vis. UNE occurrence de B est limite 0 ou 1 homologue

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.

RELATIONS Optionnelles

CLIENTNoNomAdresse

CONTRATNoTypeDate

ACCIDENTNoDate(Montant)

VEHICULENoMarqueModleAnneCylindre

APPARTIENTSIGNECONCERNEExercice 0: Cardinalits?0-N0-N1-1

1-N1-1

0-N

Passer1,N1,1CLIENTNumroNomPrnomAdresseCode_postalLocalit

CommandeNumroDateQuantitExercice 1: Laquelle des deux modlisations est correcte ?

Passer0,N1,1CLIENTNumroNomPrnomAdresseCode_postalLocalit

CommandeNumroDateQuantitUne 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.

Disposer0,N1,1CLIENTNumroNomPrnomAdresseCode_postalLocalit

Carte_MembreNo_CarteType_AbonnementDate_cration ExempleLa cardinalit minimale indique donc quelle entit est indpendante(0) et quelle entit est dpendante(1).On dit qu'une entit est indpendante par rapport une relation lorsque sa cardinalit minimale vaut 0.

Une relation ne peut pas tre lie uniquement des entits dpendantes qui ont une cardinalit maximale de 1.!On dit que CLIENT est l'entit indpendante par rapport l'association Disposer, tandis que Carte_Membre est l'entit dpendante. Une occurrence d'un client peut trs bien exister sans carte de membre, mais une carte de membre ne peut pas exister sans client.!

49

La modlisation suivante par exemple n'est pas correcte !!!

Disposer1,11,1CLIENTNumroNomPrnomAdresseCode_postalLocalit

Carte_MembreNo_CarteType_AbonnementDate_cration

Dans ce cas, il faut runir les proprits des deux entits dans une seule.!

50

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 assure par un seul contrat. Un contrat assure une seule voiture. 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.

51

1,10,NMedecinMarticulNomPatientNo_SSNomMutuelle MedicamentCodeLibelle

PrescritNb Prises

Donner

Assister0,N1,NConsultationNo_ConsDate 1,10,NVisites dans un centre mdicalUn patient peut-il effectuer plusieurs visites?Un mdecin peut-il recevoir plusieurs patients dans la mme consultation?Peut-on prescrire plusieurs mdicaments dans une mme consultation?Deux mdecins diffrents peuvents-ils prescrire le mme mdicament.OuiNonOuiOui

Exercice 3 " LabDB "

La socit "LabDB" dsire informatiser son systme de facturation. Les factures devraient se prsenter de la faon suivante: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.LabDB SPRL Facture No. 00015, avenue SGBD7000 FPMs Mons, le 15.02.2003

ClientNom: Nom_ClientPrnom: Pre_ClientAdresse: Serv. Info, 15Code_postal: 7000 Localit: Mons

Montant de la facture: 3400

PARTIE 1

Obtenir1,N1,1CLIENTNo_ClientNomPrnomAdresseCode_postalLocalit

FactureNo_FactureDateMontant

53

PARTIE 2Le 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.la facture devrait avoir:

Voici l'aspect que la facture devrait avoir:

LabDB SPRL Facture No. 00025, avenue SGBD7000 FPMs Mons, le 15.02.2003

ClientNom: Nom_Client Prnom: Pre_Client Adresse: Serv. Info, 15Code_postal: 7000 Localit: Mons

No. Article

Libell

Prix unitaire

Quantit

Prix

233

Analyse

1000

1

1000

025

MCD

700

2

1400

142

MLD

1000

1

1000

Montant total de la facture: 3400 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.

54

Solution de lexercice " LabDB "PARTIE 1

Obtenir1,N1,1CLIENTNo_ClientNomPrnomAdresseCode_postalLocalit

FactureNo_FactureDateMontantRemarque:No_Client en + proprit artificielle dfinit comme identifiant. Sinon il faut dfinir un identifiant compos de +ieur proprits.

PARTIE 2

Obtenir1,N1,1CLIENTNo_ClientNomPrnomAdresseCode_postalLocalit

FactureNo_FactureDate

Porter1,N0,NArticleNo_ArticleLibellPrix_Unitaire

QuantitRemarque: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.

!

55

Exercice 4 : Structure administrativeOn considre un sous-ensemble dune structure administrative.

Dune direction (caractrise par un nom unique et le nom de son PDG) dpendent plusieurs dpartements (dots chacun dun nom unique dans sa direction et du nom de son directeur).

Un dpartement est dcoup en services, ayant un nom (unique dans son dpartement) et un responsable. Un service a la charge dun certain nombres de dossiers (identifis par un numro et dots dun titre, dune date et dune description).

Dans chaque service travaillent des employs identifis par un numro et caractriss par leur nom et leur adresse.

DIRECTIONNomPDG

DEPARTEMENTNom_DepDirecteur

SERVICENom_ServResponsable

PERSONNENo_PersNomAdresse

DOSSIERNo_DosTitreDateDescription

dir-dpdp-servtraitetravaille

0-N1-11-11-11-10-N0-N0-NStructure administrative

Peut il devenir comme cela ?

EntitNomResponsable

PERSONNENo_PersNomAdresse

DOSSIERNo_DosTitreDateDescription

traitetravaille

1-11-10-N0-N

Une dpendance fonctionnelle (df) existe lorsqu'un ensemble d'attributs dtermine parfaitement un autre ensemble d'attributs.

Pour une table T(relation R), un attribut Y de T dpend fonctionnellement dun attribut X de T ssi chaque valeur de X est associe a une et une seule valeur de YX YEx: {Nom, Tel.} dfinit {ID}{Nom, Prnom} {Adresse,Sexe,Tlphone,Email} //Vrai sil ny a pas de problme dhomonymieLes formes normales 2NF, 3NF et BCNF sont bases sur des contraintes en relation avec la notion de dpendance fonctionnelle.Notion de dpendance fonctionnelle

Considrons lentit suivante et quelques une de ses occurrences :Cette entit est juste mais elle implique une redondance dinformation relative la catgorie. Lassociation entre le numro de la catgorie et son libell est en effet rpte dans chaque occurrence de lentit ARTICLE.

Notion de dpendance fonctionnelle

NormalisationLe 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. On peut mesurer la qualit dune relation par son degr de normalisation. Ainsi, au plus une relation appartient une forme normale avance, au plus sa qualit augmente. Dfinition: Le processus de Normalisation permet, par tapes, d'aboutir des relations ayant les bonnes proprits.FN=Forme Normale. 1 FN (Codd, 1971) 2 FN (Codd, 1971)3 FN (Codd, 1971)BCFN (Boyce, Codd, 1971)4 FN (Fagin, 1977) 5 FN (Fagin, 1979)

NORMALISATION Programmation plus facile des applications Relations plus simples grerNormaliser un schma relationnel c'est le remplacer par un schma quivalent o toutes les relations vrifient certaines proprits. Ces proprites sont bases sur l'analyse des dpendances fonctionnelles l intrieur de chaque relation.NormalisationLa normalisation permet de:- viter les redondances (perte de place et incohrences)- minimiser lespace de stockage- viter les problmes de mises jour.

Dfinition: Une relation est en Premire Forme Normale (1FN) si et seulement si elle ne contient que des valeurs simples et lmentaires (si tout attribut est atomique= non dcomposable ). NomAdressePicsou9, rue de Houdain, 7000 Mons

NomNRueCPVillePicsou9Houdain7000Mons

Non 1FNEn 1FN1FN

ID_PersonneAdressePersonnes

PEREENFANTP1{ Enf11, Enf12, Enf13 }P2{ Enf21, Enf22, Enf23 }

PEREENFANTP1Enf11P1Enf12P1Enf13P2Enf21P2Enf22

Non 1FNEn 1FNNormalisation

Exercice: Normaliser la relation COMMANDECOMMANDEPRODUITSCd1{ Bureau 50, Chaise 49 , Ecran 199 }Cd2{ Ecran 199, Souris 19 }

Solution:COMMANDEPRODUITPRIX en Cd1Bureau50Cd1Chaise 49Cd1Ecran199Cd2Ecran199Cd2Souris19

Normalisation

3FN si: Elle est en 2FN, Il nexiste aucune DF entre deux attributs non cl primaire (tout attribut n'appartenant pas une cl ne dpend pas d'un attribut non-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. 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. )2FN et 3FNNormalisation

Exemple :Soit la relation concernant des dons de bienfaiteurs pour une association.NomVilleRueMontantDatePicsouDisneyPas de sous10 3/10/99PicsouDisneyPas de sous12 13/1/01PicsouDisneyPas de sous30 23/7/03DonaldDisneyBcp de sous50015/6/05

redondance

Supposer Picsou change d'adresse (VILLE = Mons, RUE = Houdain). Risque de ne pas corriger toutes les lignes concernes. D'o BD incohrente2e ET 3e FORME NORMALE Difficult maintenance intgrit.Normalisation

Problme dit Anomalies de Mise Jour:Cause: Les Redondances d'informations sont sources d'IncohrencesSolution: On aurait aim la structure suivante:PERSONNEDONSNomVilleRuePicsouDisneyPas de sousDonaldDisneyBcp de sous

NomMontantDatePicsou10 3/10/99Picsou12 13/1/01Picsou30 23/7/03Donald50015/6/05

L'adresse de Picsou figure une seule fois. On a spar des informations distinctes(sur la personne, sur les dons).Le Bon Attribut au Bon EndroitNormalisation

Normalisation du schma - limination des redondances internes1 fait1 donne

DEPARTEMENTIdDepartLocalisation

EMPLOYENumEmpNom

dpend

1-10-N

Localisation ne dpendque de DEPARTEMENT

EMPLOYENumEmpNomDEPARTEMENTLocalisation

Normalisation2FN

Soit la table dcrivant des fournisseurs d'une socitAutre Exemple :NOM_FOURVILLECD_POSTALPIECEQTE_EXPF1Mons7000Bureau300F1Mons7000Ecran500F1Mons7000Armoire20F2Charleroi6000Bureau500F2Charleroi6000Ecran600F3Keumie5060Ecran500

FOUR1Quelques anomalies: Redondances. Difficult de maintenance. Mmoriser ladresse fournisseur impossible si pas de pice fournie. e.g. Suppression de toutes les pices fournies par F2, fait perdre aussi son adresse. deux tables distinctes : fournisseur (info fournisseur) pices fournies.Normalisation

On dcompose donc (PROJECTION)EXPEDITIONNOM_FOURPIECEQTE_EXPF1Bureau300F1Ecran500F1Armoire20F2Bureau500F2Ecran600F3Ecran500

NOM_FOURVILLECD_POSTALF1Mons7000F2Charleroi6000F3Keumie5060F4Mons7000

FOUR2NOM_FOURVILLECD_POSTALPIECEQTE_EXPF1Mons7000Bureau300F1Mons7000Ecran500F1Mons7000Armoire20F2Charleroi6000Bureau500F2Charleroi6000Ecran600F3Keumie5060Ecran500

FOUR1Normalisation2FN

Dans la relation FOUR1, des attributs non cl (e.g. VILLE), dpendaient d'une partie de la cl (NOM_FOUR). Les anomalies prcdentes ont ainsi t limines, renforant l'intgrit de la base. (on a pu insrer F4... par exemple).NormalisationEn fait, les redondances ont juste t minimises. Car la relation FOUR2 souffre encore de quelques anoma1ies.

Exercice: Lesquelles?Considrer toujours le tuple supplmentaire NOM_FOURVILLECD_POSTALF1Mons7000F2Charleroi6000F3Keumie5060F4Mons7000

FOUR2

On dcompose encore la relation FOUR2FOUR3NOM_FOURVILLEF1MonsF2CharleroiF3KeumieF4Mons

COMMUNEVILLECD_POSTALMons7000Charleroi6000Keumie5060

On dit qu'on est pass la 3e Forme NormaleNormalisationDans la relation FOUR2, des attributs non cl (e.g. CD_POSTAL), dpendaient d'un autre attribut non cl ( ici VILLE) . Il n'y a plus de redondancesRSULTAT FINAL:FOUR3COMMUNEEXPEDITIONNOM_FOURVILLE

VILLECD_POSTAL

NOM_FOURPIECEQTE_EXP

3FN

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: ProjetNumProjetNumEmployFonctionNomEmploy

Pourquoi?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 clEmployNumEmployNomEmploy

ProjetNumProjetNumEmployFonction

NumEmploy est la fois cl primaire et cl externe dans ProjetNormalisation

On peut aussi tudier d'autres relations comme:CLIENTNclientnomprnomdate de naissancerueville

Cette relation est en 2FN par contre la suivante n'est pas en 2FN. COMMANDE_PRODUITNproduitquantitNfournisseurville

NormalisationPourquoi?Relation en 2FN mais pas en 3FNEmployNumEmployNomEmployNumServiceNomService

Pourquoi?Un autre exemple: COMPAGNIEVolAvionPilote

Pourquoi?

Contraintes dintgrit utilisant le mot rserv CHECK Le concepteur peut galement dfinir ses propres domaines:CREATE DOMAIN Domaine_Sexe CHAR(1)CHECK (VALUE IN (M, F));Le modle d'une base de donnes relationnelle implique, par sa conception, un certain nombre de contraintes d'intgrit (C. I. ) qui traduisent les proprits smantiques des donnes : Intgrit de domaine : Contraintes dintgrit statiques : concerne le contrle des valeurs des attributs, le contrle entre valeurs des attributs ainsi que le contrle des oprateurs entre attributs.Intgrit de cl primaire : la contrainte de cl primaire d'une relation implique la non duplication des lignes, c'est--dire que chaque objet du monde rel peut tre enregistr sans ambigut par une seule ligne, un seul "tuple"; - on peut ajouter une colonne la contrainte de non-nullit qui implique que cette colonne ne peut pas avoir de valeur nulle, c'est--dire ne peut pas tre indfinie ou inutilisable; Les contraintes de domaine et de non-nullit sont gres en langage SQL, lors de la cration de la table.

Aprs MLD

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.Lobjectif des cls trangres tant de reprer un enregistrement dans diffrents espaces, des contraintes dintgrit rfrentielle doivent assurer la validit des rfrences entre tables.

Lintgrit rfrentielle signifie quil ny a pas de valeurs de cls trangres invalides. Pour cela, il faut donc prendre des dcisions quant la suppression ou la modification de la cible que rfrence la cl trangre. FOREIGN KEY Nom_Cl REFERENCES Nom_Table [ON DELETE option] [ON UPDATE option]C. I.

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_DcsFORALL Personnes (IF Personnes.Dcd= TrueTHEN Personnes.Tlphone = NULL)ON ATTEMPTED VIOLATION Reject;Intgrit de relationnelle :C. I.

Contraintes dintgrit fonctionnelleLes contraintes dintgrit fonctionnelles (CIF) contrlent la dtermination absolue dune entit participant une association du modle conceptuel par une ou plusieurs autres participant la mme association. Ce type de contrainte permet donc didentifier les dpendances entre entits.

Les CIFs ne doivent pas tre confondues avec les dpendances fonctionnelles, qui permettent de dterminer les dpendances qui existent entre deux groupes dattributs au sein dune mme relation Lidentification des CIFs permet de corriger certaines erreurs de conception de bases de donnes relationnelles. En effet, si la connaissance dune ou plusieurs entits dune association conduit la dtermination complte dune autre entit participant la mme association, on peut considrer quil y a redondance dinformation dans le modle.

PersonnesDiplmes

0N0NID_PersonneNomPrnomSexeAdresseTlphoneEmailCode_diplmeTitre_diplmeAbrviation

ObtenirAnne_d_obtentionUniversitsCode_universitNom_universitAbrviation0 N

CIF

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

0N0N

ObtenirAnne_d_obtentionUniversitsDiplmes

Dlivrer0N01CIF

1,11,N

ActivitCumul Nb H dactivit0,N0,NChauffeurMatri_Chauf.

CamionNo_Camion

ConduireMoisMois

0,NTrouver un MCD quivalent ce MCD :

ActivitCumul Nb H dactivitChauffeurMatri_Chauf.

CamionNo_Camion

ConduireMoisMois

1,11,N0,N0,NUn camion nayant quun chauffeur, lactivit du chauffeur par camion est lactivit du camionCIF

1,12

Relation43Entit 2

Entit 1

CIF1Principe de simplification par les contraintes dintgrit fonctionnellesRelation binaire non porteuse de donnes avec 1,1 sur lune des pattesOn supprime la patte n3.!CONTRAINTE D'INTEGRITE FONCTIONNELLE Une Contrainte d'Intgrit Fonctionnelle (en abrg : CIF) se dfinit par le fait que l'une des entits participant l'association est compltement dtermine par la connaissance d'une ou plusieurs autres entits participant dans cette mme association.CIF

1,10,N1,N1,NChauffeurMatri_Chauf.

CamionNo_Camion

0,N1,N

0,N1,1ClientNClient

Type de ClientType

ActivitCumul Nb H dactivit

Affecter1,10,N1,10,N1,N1,NChauffeurMatri_Chauf.

CamionNo_Camion

0,N1,N0,N1,1ClientNClient

Type de ClientType

ActivitCumul Nb H dactivit

Affecter1,10,N

CIF

Les associations transitives Considrons le modle suivant :

Lassociation binaire qui relie lentit CONTRAT et lentit PROPRIETAIRE doit tre te du modle car on peut retrouver le propritaire partir des associations Concerner et Appartenir. Il sagit dune association transitive. CIF

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.

Le Modle Logique des Donnes (MLD)Dfinition Le niveau logique, qui se base sur le modle conceptuel des donnes, introduit la notion des tables logiques, et constitue donc le premier pas vers les tables des SGBD.Passage du MCD au MLD Le passage du schma conceptuel la structure relationnelle (MLD) se fait facilement et obit certaines rgles. Le MLD est toujours bas sur MCD. Un MLD est essentiellement compos de tables logiques relies entre elles par des flches

AnalyseMCDMLD

Rel Peru

Schma ConceptuelSchma Logique

86

87

EntitToute entit est transforme en table. Les proprits de l'entit deviennent les attributs de la table.L'identifiant de l'entit devient la cl primaire de la table.

EMPLOYEMatriculeNomFonction

EMPLOYE (Mat, Nom, Fonc)IdentifantCl primaire

PropritAttribut

modle conceptuel modle logique

88

Association ou relation Notion Pre_fils ou mre_fille

Les relations du modle conceptuel peuvent, sous certaines conditions, soit disparatre, soit devenir une table.

89

Une cl trangre est une colonneconstitue de lidentifiant dune autre table(et joue le rle de rfrence une ligne de cette table)Relation un--plusieurs (participation totale) (1,1) (1,N): (1,1) (0,N) Porter dans la relation fille la cl primaire de la relation mre. L'attribut ainsi ajout s'appelle cl trangre. Par convention, nous la symboliserons au moyen de #.

(contrainte rfrentielle)

90

(1,1) - (0,N) : se fait comme une relation un--plusieurs normale.

EMPLOYEMatriculeNomFonction

DEPARTEMENTNomAdresseOccupe1-10-N

EMPLOYE

MatriculeNom

FonctionNomDpt

DEPARTEMENT

NomAdresse

Relation plusieurs--plusieurs (1,N) - (1,N) : (0,N) - (0,N) : (0,N) - (1,N)

CLIENTCde ClientNomAdresse

PRODUITRfrenceDsignationPrix Unitaire

COMMANDER

Quantit 1,N1,N

CLIENT(CdCli, Nom, Adresse)PRODUIT(Ref, Des, Prix)COMMANDER(#CdCli, #Ref, Quant)Cl primaireCls trangres

92

0,N : La mme rgle s'applique

COMM

CdCliRef

CLIENT

CdCliNom

Adresse

PRODUIT

RefDes

Prix

CLIENTCde ClientNomAdresse

PRODUITRfrenceDsignationPrix Unitaire

COMMANDER

Quantit 0,N0,N

Qu

Relation un--un (1,1)(1,1) :L'une des entits devient un attribut de l'autre entit. Exemple : Client(No_Client, Nom, Adresse) Carte_Membre(No_Carte,Type_Abonnement) Deviennent: Client(No_Client, Nom, Adresse, #No_Carte,Type_Abonnement).!

94

Disposer0,11,1CLIENTNumroNomPrnomAdresseCode_postalLocalit

Carte_membreNo_CarteType_AbonnementDate_cration

CLIENTNoClientNomPrnomAdresseCde_postalLocalit

Carte_membreNo_CarteNoClientType_AbonnementDate_crationDisposerRelation (0,1) (0,1) : Idem que prcdemment avec choix.Si lassociation contient elle mme des proprits, alors >>> ajouter avec la cl trangre.

95

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.

ActeCode-acteDsignation

0-N0-N

MdecinNom-mdecinAdresse

PratiquerLieu

PatientNSec.SocNom

1-NMedecin(Nom-Med, Adr)Acte(Cd-Acte, Des)Patient(NSS, Nom-Pat)Pratiquer(#Nom-Med, #Cd-Acte, #NSS, Lieu)

96

Rsum :

A

A-BBRelation binaire: (1,1) (1,N) et (1,1) - (0,N) :A ( id_A, a1, a2, , #id_B) (1,1) - (0,N) B ( id_B, b1,b2,)(1,N) - (1,N) , (0,N) - (1,N) :A ( id_A, a1, a2, ,)(0,N) - (0,N) B ( id_B, b1,b2,)A-B (#id_A, #id_B, a-b,)(1,1) - (1,1): A ( id_A, a1, a2, , id_B, b1,b2,)(0,1)- (1,1) : A ( id_A, a1, a2, )B ( id_B, b1,b2,,#id_A)(0,1) (0,1) : Idem que (0,1)- (1,1) avec choix du placement de la cl trangre.

97

Relation ternaire

A-B-CABCA ( id_A, a1, a2, ,)B ( id_B, b1,b2,)C ( id_B, b1,b2,)A-B-C (#id_A, #id_B, #id_C, a-b-c,)-N-N-N

98

EXCE:

99

100

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.

Obtenir1,N1,1CLIENTNo_ClientNomPrnomAdresseCode_postalLocalit

FactureNo_FactureDate

Porter1,N0,NArticleNo_ArticleLibellPrix_Unitaire

Quantit

ObtenirCLIENTNo_ClientNomPrnomAdresseCode_postalLocalit

FactureN_FactureNClientDateArticleNo_ArticleLibellPrix_Unitaire PorterN FactureNo_ArticleQuantit

101

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 CompagnieLivreur de menhirsVillage gauloisDate commande: 22.02.2003N commande: 4711N client012Nom client:BISCORNUSPrnom:M.Adresse:BABAORUMCodeLibellQuantitPrix unitaire12MENHIRCLASSIC250021MENHIRSE/301150025MENHIRII FX12500Donner : Le MCDLes cardinalits et leur signification.Le Modle des donnes.

102

Rep_OblixSchma Entit-Association

COM_PRO

CLIENT

COMMANDE

PRODUITCLI_COM0,N1,11,N0,NSignification:- 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.

Lassociation CLI_COM est du type (1,N).Lassociation COM_PRO est du type (N,N).Modle des donnesCLIENT(NUM_CLI, NOM_CLI, PRE_CLI, ADR_CLI)COMMANDE(NUM_COM, DAT_COM, #NUM_CLI)PRODUIT(NUM_PRO, LIB_PRO, PRI_UNI)COM_PRO(#NUM_COM, #NUM_PRO,QTE_COM)

103

Modle relationnel textuel:Client(NoClient, Nom, Prnom)Commande (NoCde, DateCde, NoClient#)Produit(RefPdt, Dsignation, Prix)Ligne(NoCde#, RefPdt#, Qt)ClientCommandeNoClientNomPrnomNoCdeDateCdeNoClient#1LassusAnnick10014/04/200122MundubeltzArmelle10114/04/200113Chaulet Bernadette

ProduitLigneRefPdtDsignationPrixen NoCde#RefPdt#QtVE45Vlo 150100VE451VE32Kit 2 roues30100VE321VE21Kit clairage15101VE212

NumClientNomVille001AlbertBruxelles002FrancoisLige003BraboAnversNumClientNumPieceQuantite001000230020002100200035NumPieceDescr.Cout0001Table5000002Chaise3000003Armoire1.000CLIENTPRODUITCOMMANDE

des relations existent entre les tableaux dune BD, ici: Albert de Bruxelles a command 3 chaises 300 EUR

CLIENTNumCliNomAdresse

CONTRATNumCtrTypeDate

ACCIDENTNumAccDate(Montant)

VEHICULENumVehMarqueModleAnneCylindre

APPARTIENTSIGNECOUVERTCONCERNE0-N0-N1-10-10-N1-11-10-N

(1-N)

VEHICULE

NumVeh...

NumCli

CONTRAT

NumcliNumCtr

Type

Date

CONCERNE

NumVehNumAcc

ACCIDENT

NumAccDate

(Montant)

NumCtr

CLIENT

NumCliNom

Adresse

Exemple - SQLcreate table CLIENT ( NumClichar (12) not null, Nomchar (38) not null, Adressechar (60)not null, primary key(NumCli) )

create table CONTRAT ( NumClichar (12)not null, NumCtrchar (8)not null, Typedecimal (4) not null, Datedate not null primary key(NumCtr) Foreign key(NumCli) references CLIENT )create tableVEHICULE ( NumVehchar (16)not null, Marquechar (30)not null, Modelechar (30)not null, Annee decimal (4)not null, Cylindree decimal (6)not null, NumCli char (12)not null, Ncli char (12)not null, NumCtr decimal (8)not null, primary key (NumVeh), unique (Numcli, NumCtr), Foreign key (Numcli) references CLIENT, Foreign key (Numcli, NumCtr) references CONTRAT )

create table ACCIDENT ( NumAccchar (10)not null, Datedatenot null, Montantdecimal (6), not null, primary key(NumAcc))

create table CONCERNE ( NumVehchar (16) not null, NumAccchar (10) not null, primary key(NumVeh, NumAcc), foreign key(NumVeh) references VEHICULE,foreign key(NumAcc) references ACCIDENT)

Access

SQLS.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.

On retrouve dans le DDL les commandes principales suivantes: CREATE TABLE Cration d'une table CREATE INDEXCration d'un index CREATE VIEW Cration dune vue ALTER TABLE Modification de la structure DROP TABLE Effacement d'une table On retrouve dans le DML les commandes principales suivantes: INSERT Insrer un tuple UPDATE Modifier un tuple DELETE Effacer un tuple SELECT Choisir un ensemble de tuples

Il existe de plus des fonctions: De tri (ORDER BY) et de regroupement (GROUP BY) arithmtiques, mathmatiques et statistiques (moyenne, maximum, minimum, etc.) logiques (UNION, INTERSECTION, etc.) etc.Les donnes sont dfinies selon des types (entier,caractres, date,etc.). Types de donnesSMALLINTentier (16 bits)INTEGERentier (32 bits)DECIMAL (m,n)dcimaux de m chiffres (dont n aprs la virgule)FLOATrels flottantsCHAR (n)chane de n caractresVARCHARchane variable dau plus n caractres DATEdates (anne, mois et jour)TIMEinstants (heure, minute, seconde)

On peut aussi inclure dans la dfinition des attributs des mots de contrle pour forcer la saisie.Par exemple: NOM CHAR(20) NOT NULLdfinit une variable "NOM" qui sera constitue d'un champs de 20 caractres auquel on devra obligatoirement attribuer une valeur si on dsire ajouter un tuple contenant cet attribut.

Exercice "LabDB"

Obtenir1,N1,1CLIENTNo_ClientNomAdresse

FactureNo_FactureDate

Porter1,N0,NArticleNo_ArticleLibellPrix_Unitaire

Quantit

Obtenir1,N1,1CLIENTNo_ClientNomBoite_PostRueCode_postalLocalit

FactureNo_FactureDate

Porter1,N0,NArticleNo_ArticleLibellPrix_Unitaire

Quantit

ObtenirCLIENTNo_ClientNomBoite_PostRueCode_postalLocalit

FactureN_Facture#NClientDateArticleNo_ArticleLibellPrix_Unitaire PorterN FactureNo_ArticleQuantit

Obtenir1,N1,1CLIENTNo_ClientNomBoite_PostRueCode_postalLocalit

FactureNo_FactureDate

Porter1,N0,NArticleNo_ArticleLibellPrix_Unitaire

Quantit

Cration dune tableCREATE TABLE Client (No_ClientCHAR (4), NomCHAR (12), Bte_Post INTEGER,RueCHAR(30),Code_PINTEGER, LocaliteCHAR (20) );

createtableAperu des oprations les plus courantesCLIENTNo_ClientNomBoite_PostRueCode_postalLocalit

IdentifiantprimarykeyCREATE TABLE Client (No_ClientCHAR (4) NOT NULL, NomCHAR (12), Code_PINTEGER, LocaliteCHAR (20), PRIMARY KEY (No_Client));notnullCLIENTNo_ClientNomBoite_PostRueCode_postalLocalit

FactureN_Facture#NClientDateArticleNo_ArticleLibellPrix_Unitaire PorterN FactureNo_ArticleQuantit

CREATE TABLE Porter(No_FactureCHAR (8) NOT NULL, No_ArticleCHAR (8) NOT NULL, QuantitINTEGER, PRIMARY KEY (No_Facture, No_Article),

);FOREIGN KEY (No_Facture) REFERENCES Facture,FOREIGN KEY (No_Article) REFERENCES ArticleforeignkeyCl trangre

Ajouter une colonne une table ALTER TABLE Client ADD Prenom CHAR(25); Dtruire une table DROP TABLE FOURNISSEUR; Crer un index CREATE INDEX PR-Cli1 ON Client (Localite);CLIENTNo_ClientNomPrenomBoite_PostRueCode_postalLocalit

Dtruire un index

DROP INDEX PR-Cli1

Consultation dune BDSELECTNom, Localite prcise les valeurs (colonnes, valeurs calcules) qui constituent chaque ligne du rsultatFROMClient indique les tables desquelles le rsultat tire ses valeursWHERELocalite = Charleroi donne la condition de slection que doivent satisfaire les lignes qui fournissent le rsultat

Slection de tous les attributs: SELECT * FROM Client; Slection de certains attributs: SELECT Nom, Prenom FROM Client; Slection de certains attributs et tuples: SELECT Nom, Code_P FROM Client WHERE Code_P < 7000 AND ; Slectionner le nom de tous les Clients qui vivent Mons: SELECT Nom FROM Client WHERE VILLE= MONS;Manipulation des donnes:

SELECT ID_Personnel, Nom, Code_Postal FROM Client

Extraction

Extraction

SELECT * FROM Client

Extraction

SELECT ID_Personnel, Nom, Code_Postal FROM ClientWHERE Nom = Bros

AVANT

DISTINCTSELECT DISTINCT LocaliteFROMClientWHERECategorie = 1

APRESSANSDISTINCTAPRESAVECDISTINCT

Le DISTINCT permet d'obtenir une liste qui ne contient qu'une fois chaque Localite.

Conditions de slectionSELECTNom, CompteFROMClientWHERELocalite = Charleroi AND Compte >= 0andornot()SELECT TableClient.Nom, TableClient.compteFROM TableClientWHERE (((TableClient.Localite)='Charleroi') AND ((TableClient.compte)>=0));Access

EXCE: Trouver les N_Com avec leur date de tous les Clients de Charleroi.FactureN_Facture#NClientDate

Sous-requtesSELECTNo, DateFROMCommandeWHERENoClient in(SELECTNo FROMClient WHERELocalite = Charleroi) AVANTFactureN_Facture#NClientDate

EXCE: Trouver les noms de tous les fournisseurs qui vendent la pice numro 2.

Rep: SELECT NOM FROM FOURNISSEUR WHERE NOFOUR IN (SELECT NOFOUR FROM ASSOCIATION WHERE NOPCE=2);

Le IN signifie inclus dans. Il existe une autre mthode: JOIN Pour comprendre les requtes (ou query) imbriques, il faut excuter d'abord la requte entre parenthses.

SELECT*FROMClientWHERELocalite IN ( SELECTLocalite FROMClient WHEREClient.No = 3)

Les clients qui habitent dans la mme localit que le client n2

Diffrents oprateurs

Diffrentes fonctions

=INNOT INCONTAINDOES NOT CONTAIN

COUNTSUMAVGMINMAX

On peut galement se servir de mots de contrle tels: BETWEEN, NULL, LIKE, EXISTS, IN, ALL, SOME, etc.. COUNT(*)nombre de lignes trouvesAVG(colonne)moyenne des valeurs de la colonneSUM(colonne)somme des valeurs de la colonneMIN(colonne)minimum des valeurs de la colonneMAX(colonne)maximum des valeurs de la colonne

Donnes calcules et duplication de lignesSELECT COUNT (NoClient)FROM Commandenombre de commandes !!!distinctAPRES9

SELECT COUNT (DISTINCT NoClient)FROM Commandenombre de commandes !!!APRES6

nombre de commandes ???

Mise jour : UPDATE ASSOCIATION SET PRIX=23 WHERE NOPCE=5 AND NOFOUR="ZZ";Dans la table ASSOCIATION pour tous les enregistrements dont le NOPCE=5 et NOFOUR=ZZ, la colonne PRIX sera mise 23.

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.