Click here to load reader

M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique

  • View
    118

  • Download
    5

Embed Size (px)

Text of M. BENJELLOUN 2006-07 Bases de données relationnelles - 1 Les Bases de données relationnelles...

  • Page 1
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 1 Les Bases de donnes relationnelles Mohammed BENJELLOUN Service dInformatique Facult Polytechnique de Mons [email protected] 2006-2007 de la thorie la pratique
  • Page 2
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 2 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
  • Page 3
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 3 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
  • Page 4
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 4 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.
  • Page 5
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 5 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
  • Page 6
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 6 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. sans redondance plusieurs applications indpendantes des programmes approche commune et contrle 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 Martin Collection de donnes persistantes utilises par des systmes dapplication de certaines entreprises Dfinitions
  • Page 7
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 7 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 incohrences Dfinitions
  • Page 8
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 8 ---- une base de donnes ? Contrle centralis des donnes Redondance rduite Incohrence vite Donnes partages Normes imposes Restrictions de scurit possibles Intgrit assure (36/15/2005 est impensable) Conflits des besoins quilibrs Et stocker, consulter, modifier des informations Lorsquon a besoin dorganiser les donnes en un ensemble structur et : Qu'attendre Pourqoui
  • Page 9
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 9 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 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 :
  • Page 10
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 10 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? Qu'attendre Pourqoui
  • Page 11
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 11 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
  • Page 12
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 12 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
  • Page 13
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 13 Historique
  • Page 14
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 14 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.
  • Page 15
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 15 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 Relationnelle Les donnes sont perues par lutilisateur comme des tables JOIN: relie 2 tables grce aux valeurs communes de 2 colonnes communes
  • Page 16
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 16 Oprations relationnelles Slection : Projection Restriction Jointure Division Agrgation Opration suppl. Mise jour Cration d une vue
  • Page 17
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 17 Liste non exhaustive de SGBD relationnels : Adabas de Software AG Access de Microsoft DB2 : IBM Informix : Unix Ingres : Vax, IBM, Sun, HP, Dos MS-sql MySQL (logiciel libre) Oracle : Oracle (multi plateforme) Progress : Unix, Dos, VMS, OS/2 PostgreSQL (logiciel libre) SqlServer de Microsoft Sybase de Sybase
  • Page 18
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 18 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 conceptuel Description 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. ES CS IS
  • Page 19
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 19 ES CS IS 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.
  • Page 20
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 20 Schmas Externes (ESs) Dfinit une vue de la BD Vues SQL, Vbasic, orients Web notamment (HTML, XML) ES CS IS Une BD est en gnral munie de plusieurs diffrentes ESs Mais tous ont le CS comme racine commune
  • Page 21
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 21 Schma Interne (IS) Comment transformer les objets? Comment ils seront stocks? Comment y accdes? 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.
  • Page 22
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 22 Terme relationnel formelEquivalent informel relation relation perue entre entits (!!table) n-upletligne ou enregistrement cardinalitnombre de lignes attributcolonne ou champ degrnombre de colonnes cl primaireidentificateur unique cl trangrerfrence = attribut principal ailleurs domaine Ensemble de valeurs lgales (ensemble des valeurs dun attribut) Objets relationnels: domaines et relations
  • Page 23
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 23 Les composants d'une base de donnes relationnelle Quatre 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 7000 132Oblix1900 5060 1187Picsou1134 1000 354... Valeurs de lattributUn champ de donnes (Attribut) Enregistrement, N_Uplet Table : Employs_D isney
  • Page 24
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 24 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. 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.Select 2. Requtes d'insertion.Insert 3. Requtes de modification.Update 4. Requtes de suppression.Delete Pour chaque requte nous retrouvons le cycle suivant: Formuler la requte Analyser et Excuter la requte Rsultat de la requte
  • Page 25
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 25 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.
  • Page 26
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 26 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
  • Page 27
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 27 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 MCT Organisationnel ou logique MLDMOT (QUI ? QUAND ?) Oprationnel ou physique MPD MOPT
  • Page 28
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 28 Donc la dmarche classique d'un projet en BD comprend les tapes suivantes: 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 Mthodologie pour traduire un systme d'information naturel en une base de donnes Analyse MCD MLD MPD Rel Peru Schma Conceptuel Schma Logique Niveaux dabstractions Niveau Conceptuel Niveau Logique Niveau Physique Elaboration du Modle E-R Passage au Modle Relationnel Implmentation Sur SGBD-R Univers de lapplication
  • Page 29
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 29 Application? Choix de lapplication / groupe Niveau Conceptuel Niveau Logique Niveau Physique Elaboration du Modle E-R Passage au Modle Relationnel Implmentation Sur SGBD-R Schma Conceptuel Schma Logique Schma Physique Implmentation Sur SGBD-R Rapport Def. Dom. C.Chg Univers de lapplicatio n
  • Page 30
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 30 1 er rapport : mars 2006 Cahier de charges. 2 me rapport : .. Cahier de charges et MCD. 3 me rapport : .. Rapport final Votre rapport doit respecter scrupuleusement la table des matires suivante : 1. Cahier de charges de lapplication 2. MCD 3. MLD 4. MPD (qlq tables et relations) 5. Implmentation 6. Conclusion 7. Explications du fonctionnement de votre base de donnes 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 ! 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 ?
  • Page 31
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 31 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 MCD Analyse Niveau Conceptuel Elaboration du Modle E-R Schma Conceptuel
  • Page 32
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 32 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 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.
  • Page 33
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 33 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...
  • Page 34
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 34 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 : MLD Modle physique des donnes : MPD Niveau Logique Passage au Modle Relationnel Schma Logique Niveau Physique Implmentation Sur SGBD-R Schma Physique
  • Page 35
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 35 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. Passer 1, N1,1 CLIENT Numro Nom Commande Numro Date Quantit
  • Page 36
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 36 Le Modle Conceptuel des Donnes (MCD) Analyse (MCD) : "Schma Entit-Relation" ou "Schma Entit-Association". COMMANDE No Cde Date Cde PRODUIT No Prod Dsignation Prix Unitaire CONCERNER Quantit Cde Relation ou Association Proprit de la Relation Nom de la RelationNom dentit ENTITE Proprit dentit
  • Page 37
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 37 Dans l'exemple, l'entit Produit produits S.I.. et l'entit Commande commandes S.I. Un identifiant est une colonne dont les valeurs permettent de reprer une seule ligne NOM Identifiant Attributs Nom de lentit Proprit 1 Proprit 2 Proprit 3 Proprit 4 PRODUIT No Prod Dsignation Prix Unitaire Le choix d'un identifiant correcte est trs important pour la modlisation: Choix ? ENTITE 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.
  • Page 38
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 38 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 Le modle conceptuel des donnes propose de souligner les identifiants
  • Page 39
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 39 Attributs caractristiques des entits obligatoires ou facultatives avec un domaine (type) de valeurs CLIENTVEHICULE No Nom Adresse No_Matric. Marque Modle Anne Cylindre ID_Personne Nom Prnom Sexe Email Adresse Personnes Qu'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)
  • Page 40
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 40 Associations ou Relations CLIENT No Nom Adresse CONTRAT No Type Date VEHICULE No Marque Modle Anne Cylindre APPARTIENT SIGNE PersonnesDiplmes Obtenir ID_Personne Nom Prnom Sexe Adresse Tlphone Email Code_diplme Titre_diplme Abrviation Anne_d_obtention
  • Page 41
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 41 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. Passer CLIENT Numro Nom Prnom Adresse Code_postal Localit Commande Numro Date Quantit MCD Relation binaire Dverser LAC RIVIERE Dcharge EMPLOYE N Matricule CONJOINT Relation ternaire Relation rflexive (relation rcursive)
  • Page 42
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 42 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 Les cardinalits prcisent la participation de l'entit concerne la relation. cardinalit minimale cardinalit maximale Passer 1, N1,1 CLIENT Numro Nom Prnom Adresse Code_postal Localit Commande Numro Date Quantit * 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.
  • Page 43
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 43 Autres exemples Utiliser 0,N1,N Employ Numro Nom Prnom Adresse Code_postal Service Ordinateur Numro_PC Type Configuration Entre 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 COMMANDE No Cde Date Cde PRODUIT No Prod Dsignation Prix Unitaire CONCERNER Quantit Cde 1,N 0,N Une 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.
  • Page 44
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 44 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. plusieurs un
  • Page 45
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 45 CONFIGURATIONS POSSIBLES : 0,1 Une occurrence participe au moins 0 fois et au plus 1 fois lassociation 1,1 Une occurrence participe exactement 1 fois lassociation 0,N Une occurrence peut ne pas participer ou participer plusieurs fois 1,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. !
  • Page 46
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 46 Les cardinalits, du point de vue de l'association, dans une interprtation ensembliste Notation E-A ExplicationRelation ensembliste 1,1 TOUTE occurrence de A a un homologue UNIQUE parmi les occurrences de B et rciproquement ???? 1,N TOUTE occurrence de A a AU MOINS un homologue parmi les occurrences de B et rciproquement RELATIONS OBLIGATOIRES Notation E-A ExplicationRelation 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
  • Page 47
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 47 CLIENT No Nom Adresse CONTRAT No Type Date ACCIDENT No Date (Montant) VEHICULE No Marque Modle Anne Cylindre APPARTIENT SIGNE CONCERNE Exercice 0: Cardinalits? 0-N 1-1 1-N 1-1 0-N
  • Page 48
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 48 Passer 1,N1,1 CLIENT Numro Nom Prnom Adresse Code_postal Localit Commande Numro Date Quantit Exercice 1: Laquelle des deux modlisations est correcte ? Passer 0,N1,1 CLIENT Numro Nom Prnom Adresse Code_postal Localit 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.
  • Page 49
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 49 Disposer 0,N1,1 CLIENT Numro Nom Prnom Adresse Code_postal Localit Carte_Membre No_Carte Type_Abonnement Date_cration Exemple La 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. !
  • Page 50
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 50 La modlisation suivante par exemple n'est pas correcte !!! Disposer 1,11,1 1,1 CLIENT Numro Nom Prnom Adresse Code_postal Localit Carte_Membre No_Carte Type_Abonnement Date_cration Dans ce cas, il faut runir les proprits des deux entits dans une seule. !
  • Page 51
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 51 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.
  • Page 52
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 52 1,11,1 0,N0,N Medecin Marticul Nom Patient No_SS Nom Mutuelle Medicament Code Libelle Prescrit Nb Prises DonnerAssister 0,N0,N 1,N1,N Consultation No_Cons Date 1,11,1 0,N0,N Visites dans un centre mdical 1.Un patient peut-il effectuer plusieurs visites? 2.Un mdecin peut-il recevoir plusieurs patients dans la mme consultation? 3.Peut-on prescrire plusieurs mdicaments dans une mme consultation? 4.Deux mdecins diffrents peuvents-ils prescrire le mme mdicament. Oui Non Oui Non Oui
  • Page 53
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 53 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. 0001 5, avenue SGBD 7000 FPMs Mons, le 15.02.2003 Client Nom : Nom_Client Prnom : Pre_Client Adresse : Serv. Info, 15 Code_postal: 7000 Localit : Mons Montant de la facture : 3400 PARTIE 1 Obtenir 1,N1,1 CLIENT No_Client Nom Prnom Adresse Code_postal Localit Facture No_Facture Date Montant
  • Page 54
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 54 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. la facture devrait avoir: Voici l'aspect que la facture devrait avoir: LabDB SPRL Facture No. 0002 5, avenue SGBD 7000 FPMs Mons, le 15.02.2003 Client Nom : Nom_Client Prnom : Pre_Client Adresse : Serv. Info, 15 Code_postal: 7000 Localit : Mons No. Article LibellPrix unitaire QuantitPrix 233Analyse1000 1 025MCD700 21400 142MLD1000 1 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.
  • Page 55
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 55 Solution de lexercice " LabDB " PARTIE 1 Obtenir 1,N1,1 CLIENT No_Client Nom Prnom Adresse Code_postal Localit Facture No_Facture Date Montant Remarque: No_Client en + proprit artificielle dfinit comme identifiant. Sinon il faut dfinir un identifiant compos de +ieur proprits. PARTIE 2 Obtenir 1,N1,1 CLIENT No_Client Nom Prnom Adresse Code_postal Localit Facture No_Facture Date Porter 1,N 0,N0,N Article No_Article Libell Prix_Unitaire Quantit 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. !
  • Page 56
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 56 Exercice 4 : Structure administrative On 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.
  • Page 57
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 57 DIRECTION Nom PDG DEPARTEMENT Nom_Dep Directeur SERVICE Nom_Serv Responsable PERSONNE No_Pers Nom Adresse DOSSIER No_Dos Titre Date Description dir-dp dp-serv traite travaille 0-N 1-1 0-N Structure administrative
  • Page 58
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 58 Peut il devenir comme cela ? Entit Nom Responsable PERSONNE No_Pers Nom Adresse DOSSIER No_Dos Titre Date Description traite travaille 1-1 0-N
  • Page 59
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 59 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 d un attribut X de T ssi chaque valeur de X est associe a une et une seule valeur de Y X Y Ex: {Nom, Tel.} dfinit {ID} {Nom, Prnom} {Adresse,Sexe,Tlphone,Email} //Vrai sil ny a pas de problme dhomonymie Les formes normales 2NF, 3NF et BCNF sont bases sur des contraintes en relation avec la notion de dpendance fonctionnelle. Notion de dpendance fonctionnelle
  • Page 60
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 60 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
  • Page 61
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 61 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. 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 : L e processus de Normalisation p ermet, 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)
  • Page 62
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 62 NORMALISATION Programmation plus facile des applications Relations plus simples grer Normaliser 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. Normalisation La normalisation permet de: - viter les redondances (perte de place et incohrences) - minimiser lespace de stockage - viter les problmes de mises jour.
  • Page 63
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 63 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 ). NomAdresse Picsou9, rue de Houdain, 7000 Mons NomNRueCPVille Picsou9Houdain7000Mons Non 1FN En 1FN 1FN ID_Personne Adresse Personnes PEREENFANT P1{ Enf11, Enf12, Enf13 } P2{ Enf21, Enf22, Enf23 } PEREENFANT P1Enf11 P1Enf12 P1Enf13 P2Enf21 P2Enf22 Non 1FN En 1FN Normalisation
  • Page 64
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 64 Exercice: Normaliser la relation COMMANDE COMMANDEPRODUITS Cd1{ Bureau 50, Chaise 49, Ecran 199 } Cd2{ Ecran 199, Souris 19 } Solution: COMMANDEPRODUITPRIX en Cd1Bureau50 Cd1Chaise49 Cd1Ecran199 Cd2Ecran199 Cd2Souris19 Normalisation
  • Page 65
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 65 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 3FN Normalisation
  • Page 66
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 66 Exemple : Soit la relation concernant des dons de bienfaiteurs pour une association. NomVilleRueMontantDate PicsouDisneyPas de sous10 3/10/99 PicsouDisneyPas de sous12 13/1/01 PicsouDisneyPas de sous30 23/7/03 DonaldDisneyBcp de sous50015/6/05 redondanc e Supposer Picsou change d'adresse (VILLE = Mons, RUE = Houdain ). Risque de ne pas corriger toutes les lignes concernes. D'o BD incohrente 2e ET 3e FORME NORMALE Difficult maintenance intgrit. Normalisation
  • Page 67
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 67 Problme dit Anomalies de Mise Jou r: Cause: Les Redondances d'informations sont sources d'Incohrences Solution: On aurait aim la structure suivante: PERSONNE DONS NomVilleRue PicsouDisneyPas de sous DonaldDisneyBcp de sous NomMontantDate Picsou10 3/10/99 Picsou12 13/1/01 Picsou30 23/7/03 Donal d 50015/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 Endroit Normalisation
  • Page 68
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 68 Normalisation du schma - limination des redondances internes 1 fait 1 donne DEPARTEMENT IdDepart Localisation EMPLOYE NumEmp Nom dpend 1-1 0-N Localisation ne dpend que de DEPARTEMENT EMPLOYE NumEmp Nom DEPARTEMENT Localisation Normalisation 2FN
  • Page 69
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 69 Soit la table dcrivant des fournisseurs d'une socit Autre Exemple : NOM_FOURVILLECD_POSTALPIECEQTE_EXP F1Mons7000 Bureau 300 F1Mons7000 Ecran 500 F1Mons7000Armoire20 F2Charleroi6000 Bureau 500 F2Charleroi6000 Ecran 600 F3Keumie5060 Ecran 500 FOUR1 Quelques 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
  • Page 70
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 70 On dcompose donc (PROJECTION) EXPEDITION NOM_FOURPIECEQTE_EXP F1Bureau300 F1Ecran500 F1Armoire20 F2Bureau500 F2Ecran600 F3Ecran500 NOM_FOURVILLECD_POSTAL F1Mons7000 F2Charleroi6000 F3Keumie5060 F4Mons7000 FOUR2 NOM_FOURVILLECD_POSTALPIECEQTE_EXP F1Mons7000Bureau300 F1Mons7000Ecran500 F1Mons7000Armoire20 F2Charleroi6000Bureau500 F2Charleroi6000Ecran600 F3Keumie5060Ecran500 FOUR1 Normalisation 2FN
  • Page 71
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 71 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). 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 NOM_FOURVILLECD_POSTAL F1Mons7000 F2Charleroi6000 F3Keumie5060 F4Mons7000 FOUR2
  • Page 72
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 72 On dcompose encore la relation FOUR2 FOUR3 NOM_FOURVILLE F1Mons F2Charleroi F3Keumie F4Mons COMMUNE VILLECD_POSTAL Mons7000 Charleroi6000 Keumie5060 On dit qu'on est pass la 3e Forme Normale Normalisation Dans 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 redondances RSULTAT FINAL: FOUR3 COMMUNE EXPEDITION NOM_FOURVILLE CD_POSTAL NOM_FOURPIECEQTE_EXP 3FN
  • Page 73
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 73 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 cl EmployNumEmployNomEmploy ProjetNumProjetNumEmployFonction NumEmploy est la fois cl primaire et cl externe dans Projet Normalisation
  • Page 74
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 74 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 Normalisation Pourquoi? Relation en 2FN mais pas en 3FN EmployNumEmployNomEmployNumServiceNomService Pourquoi? Un autre exemple: COMPAGNIEVolAvionPilote Pourquoi?
  • Page 75
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 75 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
  • Page 76
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 76 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.
  • Page 77
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 77 Lintgrit relationnelle contrle la smantique et gre les contraintes de type ifthen Voici lexemple dune 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 ; Intgrit de relationnelle : C. I.
  • Page 78
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 78 Contraintes dintgrit fonctionnelle Les 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.
  • Page 79
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 79 PersonnesDiplmes 0N0N 0N0N ID_Personne Nom Prnom Sexe Adresse Tlphone Email Code_diplme Titre_diplme Abrviation Obtenir Anne_d_obtention Universits Code_universit Nom_universit Abrviation 0 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 0N0N Obtenir Anne_d_obtention Universits Diplmes Dlivrer 0N0N 0101 CIF
  • Page 80
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 80 1,11,1 1,N1,N Activit Cumul Nb H dactivit 0,N0,N 0,N0,N Chauffeur Matri_Chauf. Camion No_Camion Conduire Mois 0,N0,N Trouver un MCD quivalent ce MCD : Activit Cumul Nb H dactivit Chauffeur Matri_Chauf. Camion No_Camion Conduire Mois 1,11,1 1,N1,N 0,N0,N 0,N0,N Un camion nayant quun chauffeur, lactivit du chauffeur par camion est lactivit du camion CIF
  • Page 81
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 81 1,11,1 2 Relation 4 3 Entit 2 Entit 1 CIF 1 Principe de simplification par les contraintes dintgrit fonctionnelles Relation binaire non porteuse de donnes avec 1,1 sur lune des pattes On 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
  • Page 82
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 82 1,11,1 0,N0,N 1,N1,N 1,N1,N Chauffeur Matri_Chauf. Camion No_Camion 0,N0,N 1,N1,N 0,N0,N 1,1 Client NClient Type de Client Type Activit Cumul Nb H dactivit Affecter 1,11,10,N0,N 1,11,1 0,N0,N 1,N1,N 1,N1,N Chauffeur Matri_Chauf. Camion No_Camion 0,N0,N 1,N1,N 0,N0,N 1,1 Client NClient Type de Client Type Activit Cumul Nb H dactivit Affecter 1,11,10,N0,N CIF
  • Page 83
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 83 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
  • Page 84
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 84 Gestion FPMS_Etudiants La FPMs veut r-informatiser son systme d'information qui gre les tudiants, Groupes dtudiants (classes)(1 er _A,..., 3 eme _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 1 er ) et par une indication du groupe ou spcialit (P.ex : 1 er _A, 4 eme _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.).
  • Page 85
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 85 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.
  • Page 86
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 86 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 Analyse MCD MLD Rel Peru Schma Conceptuel Schma Logique
  • Page 87
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 87
  • Page 88
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 88 Entit Toute 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. EMPLOYE Matricule Nom Fonction EMPLOYE (Mat, Nom, Fonc) Identifant Cl primaire PropritAttribut modle conceptuel modle logique
  • Page 89
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 89 Association ou relation Notion Pre_fils ou mre_fille Les relations du modle conceptuel peuvent, sous certaines conditions, soit disparatre, soit devenir une table.
  • Page 90
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 90 Une cl trangre est une colonne constitue 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)
  • Page 91
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 91 (1,1) - (0,N) : se fait comme une relation un--plusieurs normale. EMPLOYE Matricule Nom Fonction DEPARTEMENT Nom Adresse Occupe 1-1 0-N EMPLOYE MatriculeNomFonctionNomDpt DEPARTEMENT NomAdresse
  • Page 92
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 92 Relation plusieurs--plusieurs (1,N) - (1,N) : (0,N) - (0,N) : (0,N) - (1,N) CLIENT Cde Client Nom Adresse PRODUIT Rfrence Dsignation Prix Unitaire COMMANDER Quantit 1,N CLIENT(CdCli, Nom, Adresse) PRODUIT(Ref, Des, Prix) COMMANDER(#CdCli, #Ref, Quant) Cl primaire Cls trangres
  • Page 93
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 93 0,N : La mme rgle s'applique COMM CdCliRef CLIENT CdCli NomAdresse PRODUIT RefDes Prix CLIENT Cde Client Nom Adresse PRODUIT Rfrence Dsignation Prix Unitaire COMMANDER Quantit 0,N Qu
  • Page 94
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 94 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). !
  • Page 95
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 95 Disposer 0,11,1 CLIENT Numro Nom Prnom Adresse Code_postal Localit Carte_membre No_Carte Type_Abonnement Date_cration CLIENT NoClient Nom Prnom Adresse Cde_postal Localit Carte_membre No_Carte NoClient Type_Abonnement Date_cration Disposer Relation (0,1) (0,1) : Idem que prcdemment avec choix. Si lassociation contient elle mme des proprits, alors >>> ajouter avec la cl trangre.
  • Page 96
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 96 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. Acte Code-acte Dsignation 0-N Mdecin Nom-mdecin Adresse Pratiquer Lieu Patient NSec.Soc Nom 1-N Medecin(Nom-Med, Adr) Acte(Cd-Acte, Des) Patient(NSS, Nom-Pat) Pratiquer(#Nom-Med, #Cd-Acte, #NSS, Lieu)
  • Page 97
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 97 Rsum : A A-B B Relation 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.
  • Page 98
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 98 Relation ternaire A-B-C A B C A ( 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
  • Page 99
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 99 EXCE :
  • Page 100
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 100
  • Page 101
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 101 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. Obtenir 1,N1,1 CLIENT No_Client Nom Prnom Adresse Code_postal Localit Facture No_Facture Date Porter 1,N 0,N0,N Article No_Article Libell Prix_Unitaire Quantit Obtenir CLIENT No_Client Nom Prnom Adresse Code_postal Localit Facture N_Facture NClient Date Article No_Article Libell Prix_Unitaire Porter N Facture No_Article Quantit
  • Page 102
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 102 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 Date commande: 22.02.2003N commande: 4711 N client012Nom client:BISCORNUS Prnom:M. Adresse:BABAORUM CodeLibellQuantitPrix unitaire 12MENHIR CLASSIC2500 21MENHIR SE/3011500 25MENHIR II FX12500 Donner : Le MCD Les cardinalits et leur signification. Le Modle des donnes.
  • Page 103
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 103 Rep_ Oblix Schma Entit-Association COM_PRO CLIENTCOMMANDE PRODUIT CLI_COM 0,N1,1 1,N 0,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. Lassociation CLI_COM est du type (1,N). Lassociation COM_PRO est du type (N,N). Modle des donnes CLIENT(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)
  • Page 104
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 104 Modle relationnel textuel : Client(NoClient, Nom, Prnom) Commande (NoCde, DateCde, NoClient#) Produit(RefPdt, Dsignation, Prix) Ligne(NoCde#, RefPdt#, Qt) ClientCommande NoClientNomPrnomNoCdeDateCdeNoClient# 1LassusAnnick10014/04/20012 2MundubeltzArmelle10114/04/20011 3ChauletBernadette ProduitLigne RefPdtDsignationPrixen NoCde#RefPdt#Qt VE45Vlo150100VE451 VE32Kit 2 roues30100VE321 VE21Kit clairage15101VE212
  • Page 105
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 105 NumClientNomVille 001AlbertBruxelles 002FrancoisLige 003BraboAnvers NumClientNumPieceQuantite 00100023 00200021 00200035 NumPieceDescr.Cout 0001Table500 0002Chaise300 0003Armoire1.000 CLIENT PRODUIT COMMANDE des relations existent entre les tableaux d une BD, ici: Albert de Bruxelles a command 3 chaises 300 EUR
  • Page 106
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 106 CLIENT NumCli Nom Adresse CONTRAT NumCtr Type Date ACCIDENT NumAcc Date (Montant) VEHICULE NumVeh Marque Modle Anne Cylindre APPARTIENT SIGNE COUVERT CONCERNE 0-N 1-1 0-1 0-N 1-1 0-N (1-N)
  • Page 107
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 107 VEHICULE NumVeh...NumCli CONTRAT NumcliNumCtrTypeDate CONCERNE NumVehNumAcc ACCIDENT NumAccDate(Montant) NumCtr CLIENT NumCliNom Adresse
  • Page 108
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 108 Exemple - SQL create 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 )
  • Page 109
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 109 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)
  • Page 110
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 110 Access
  • Page 111
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 111
  • Page 112
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 112 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.
  • Page 113
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 113 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
  • Page 114
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 114 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 donnes SMALLINTentier (16 bits) INTEGERentier (32 bits) DECIMAL (m,n)dcimaux de m chiffres (dont n aprs la virgule) FLOATrels flottants CHAR (n)chane de n caractres VARCHARchane variable dau plus n caractres DATEdates (anne, mois et jour) TIMEinstants (heure, minute, seconde)
  • Page 115
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 115 On peut aussi inclure dans la dfinition des attributs des mots de contrle pour forcer la saisie. Par exemple: NOM CHAR(20) NOT NULL dfinit 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.
  • Page 116
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 116 Exercice "LabDB" Obtenir 1,N1,1 CLIENT No_Client Nom Adresse Facture No_Facture Date Porter 1,N 0,N0,N Article No_Article Libell Prix_Unitaire Quantit Obtenir 1,N1,1 CLIENT No_Client Nom Boite_Post Rue Code_postal Localit Facture No_Facture Date Porter 1,N 0,N0,N Article No_Article Libell Prix_Unitaire Quantit
  • Page 117
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 117 Obtenir CLIENT No_Client Nom Boite_Post Rue Code_postal Localit Facture N_Facture #NClient Date Article No_Article Libell Prix_Unitaire Porter N Facture No_Article Quantit Obtenir 1,N1,1 CLIENT No_Client Nom Boite_Post Rue Code_postal Localit Facture No_Facture Date Porter 1,N 0,N0,N Article No_Article Libell Prix_Unitaire Quantit
  • Page 118
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 118 Cration dune table CREATE TABLE Client (No_ClientCHAR (4), NomCHAR (12), Bte_Post INTEGER, RueCHAR(30), Code_PINTEGER, LocaliteCHAR (20) ); create table Aperu des oprations les plus courantes CLIENT No_Client Nom Boite_Post Rue Code_postal Localit
  • Page 119
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 119 Identifiant primary key CREATE TABLE Client ( No_ClientCHAR (4) NOT NULL, NomCHAR (12), Code_PINTEGER, LocaliteCHAR (20), PRIMARY KEY (No_Client) ); not null CLIENT No_Client Nom Boite_Post Rue Code_postal Localit
  • Page 120
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 120 Facture N_Facture #NClient Date Article No_Article Libell Prix_Unitaire Porter N Facture No_Article Quantit 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 Article foreign key Cl trangre
  • Page 121
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 121 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); CLIENT No_Client Nom Prenom Boite_Post Rue Code_postal Localit Dtruire un index DROP INDEX PR-Cli1
  • Page 122
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 122 Consultation dune BD SELECTNom, Localite prcise les valeurs (colonnes, valeurs calcules) qui constituent chaque ligne du rsultat FROMClient indique les tables desquelles le rsultat tire ses valeurs WHERELocalite = Charleroi donne la condition de slection que doivent satisfaire les lignes qui fournissent le rsultat
  • Page 123
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 123 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 :
  • Page 124
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 124 SELECT ID_Personnel, Nom, Code_Postal FROM Client Extraction
  • Page 125
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 125 Extraction SELECT * FROM Client
  • Page 126
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 126 Extraction SELECT ID_Personnel, Nom, Code_Postal FROM Client WHERE Nom = Bros
  • Page 127
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 127 AVANT DISTINCT SELECT DISTINCT Localite FROMClient WHERECategorie = 1 APRES SANS DISTINCT APRES AVEC DISTINCT Le DISTINCT permet d'obtenir une liste qui ne contient qu'une fois chaque Localite.
  • Page 128
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 128 Conditions de slection SELECTNom, Compte FROMClient WHERELocalite = Charleroi AND Compte >= 0 and or not () SELECT TableClient.Nom, TableClient.compte FROM TableClient WHERE (((TableClient.Localite)='Charleroi') AND ((TableClient.compte)>=0)); Access
  • Page 129
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 129 EXCE : Trouver les N_Com avec leur date de tous les Clients de Charleroi. Facture N_Facture #NClient Date
  • Page 130
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 130 Sous-requtes SELECTNo, Date FROMCommande WHERENoClient in (SELECTNo FROMClient WHERELocalite = Charleroi) AVANT Facture N_Facture #NClient Date
  • Page 131
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 131 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.
  • Page 132
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 132 SELECT* FROMClient WHERELocalite IN ( SELECTLocalite FROMClient WHEREClient.No = 3) Les clients qui habitent dans la mme localit que le client n2
  • Page 133
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 133 Diffrents oprateursDiffrentes fonctions = IN NOT IN CONTAIN DOES NOT CONTAIN COUNT SUM AVG MIN MAX On peut galement se servir de mots de contrle tels: BETWEEN, NULL, LIKE, EXISTS, IN, ALL, SOME, etc.. COUNT(*)nombre de lignes trouves AVG(colonne)moyenne des valeurs de la colonne SUM(colonne)somme des valeurs de la colonne MIN(colonne)minimum des valeurs de la colonne MAX(colonne)maximum des valeurs de la colonne
  • Page 134
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 134 Donnes calcules et duplication de lignes SELECT COUNT (NoClient) FROM Commande nombre de commandes !!! distinct APRES 9 SELECT COUNT (DISTINCT NoClient) FROM Commande nombre de commandes !!! APRES 6 nombre de commandes ???
  • Page 135
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 135 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.
  • Page 136
  • M. BENJELLOUN 2006-07 Bases de donnes relationnelles - 136 Cration : INSERT INTO ASSOCIATION (NOPCE,NOFOUR,PRIX) VALUES(1,"KK",10); Cre dans la table ASSOCIATION un enregistrement en assignant des valeurs aux colonnes.