Vous êtes sur la page 1sur 19

Service de Formation Continue

Conception dune Base de Donnes Relationnelle applique la Biologie

Cyril GALLUT
UMR 7138 Systmatique, Adaptation et volution.

Bernard BILLOUD
Atelier de BioInformatique.

Conception dune Base de Donnes Relationnelle

Plan du cours
1 Introduction....................................................................................................................................... 4 1.1 Quest-ce quune base de donnes ?.......................................................................................... 4 1.2 Donnes versus connaissances...................................................................................................4 1.3 Systme de Gestion de Bases de Donnes.................................................................................4 1.4 Diffrents niveaux dune base de donnes.................................................................................5 Niveau physique..........................................................................................................................5 Niveau conceptuel.......................................................................................................................5 Niveau externe............................................................................................................................ 5 1.5 tapes de la ralisation dune base de donnes......................................................................... 6 1.6 Quest-ce quun modle ?.......................................................................................................... 6 UML : Unified Modeling Language........................................................................................... 6 Modle Entits Relations ...................................................................................................... 6 Modle Relationnel..................................................................................................................... 7 1.7 SQL : Structured Query Language............................................................................................ 7 1.8 Types de donnes....................................................................................................................... 7 1.9 tapes de la modlisation.......................................................................................................... 7 2 Modle UML / Entits Relations.......................................................................................................8 2.1 Classe / Entit............................................................................................................................ 8 Diagramme de Classe..................................................................................................................8 2.2 Association / Relation................................................................................................................ 9 Diagramme dAssociation...........................................................................................................9 Association 1 n.................................................................................................................... 9 Association n-m......................................................................................................................9 3 Modle relationnel...........................................................................................................................10 3.1 Schma de relation................................................................................................................... 11 3.2 Clefs......................................................................................................................................... 11 3.3 Association 1 n...................................................................................................................... 11 3.4 Association n m.....................................................................................................................12 3.5 Passage du diagramme UML au schma conceptuel............................................................... 14 4 Modlisation, Guide de bonnes pratiques....................................................................................... 14 4.1 Normalisation...........................................................................................................................15 4.2 Les valeurs Multiples...............................................................................................................15 4.3 Les attributs dupliqus............................................................................................................. 16 4.4 Dpendance fonctionnelle........................................................................................................17 4.5 Domaines................................................................................................................................. 18 4.6 Dnormalisation.......................................................................................................................19

Conception dune Base de Donnes Relationnelle

1 Introduction
1.1 Quest-ce quune base de donnes ?
Par dfinition, une Base de donnes est un ensemble de donnes, structures et organises de manire pouvoir tre facilement manipules. Une base de donnes permet de : stocker de grandes quantits de donnes, garantir leur cohrence, les mettre jour, les retrouver facilement et rapidement, selon de nombreux critres, les rendre accessibles simultanment plusieurs utilisateurs.

1.2 Donnes versus connaissances.


Les donnes concernent des observations ralises sur un individu : ex : le spcimen de Cygnodraco mawsoni N 43 mesure 28 cm, ce sont des informations instancies (associes un individu), nexpriment que ce qui a t observ, peuvent tre traites avec les Systme de Gestion de Bases de Donnes (SGBD). ex : les poissons C. mawsoni mesurent entre 21 et 43cm, ce sont des informations instanciables, se basent sur ce qui a t observ mais nexpriment pas seulement ce qui a t vu, ne peuvent pas tre mises en uvre de faon raliste avec les SGBD.

Les connaissances concernent des faits gnraux :

1.3 Systme de Gestion de Bases de Donnes.


Systme informatique permettant la conception et lutilisation de bases de donnes. Assure la persistance des donnes Gre le support permanent Indexation des donnes : vite laccs squentiel. Garantit la scurit des donnes Autorise le partage des donnes. Restitue la version la plus rcente la suite dune panne. Protge laccs aux donnes. Cache les dtails de la reprsentation physique.

Conception dune Base de Donnes Relationnelle

1.4 Diffrents niveaux dune base de donnes.

Niveau physique
Le stockage physique des donnes est entirement gr par le SGBD et le systme dexploitation. Ce niveau est invisible pour utilisateur, ainsi lutilisateur na jamais se proccuper des noms de fichiers dans lesquels sont stockes les donnes.

Niveau conceptuel.
Le schma conceptuel (SC) dune base de donnes est la reprsentation logique, lintrieur du SGBD, de la ralit que la base est cense transcrire. La cration du SC revient modliser linformation. Il existe diffrents types de modles : hirarchique, en rseau, relationnel, orient objet.

Niveau externe.
Cest le niveau dinterrogation de la base, on accde aux donnes par des vues. Une vue se prsente comme un tableau mais nest pas physiquement stocke, elle est construite au moment de la requte.

Conception dune Base de Donnes Relationnelle

1.5 tapes de la ralisation dune base de donnes.

1.6 Quest-ce quun modle ?


Le terme de modle revt deux significations : un modle est une reprsentation abstraite de la ralit, une carte est une reprsentation dun pays . Un modle reprsente une ralit mais il ne constitue pas cette ralit et il na pas en avoir toutes les proprits, un moyen dexprimer cette reprsentation, la projection de Mercator est un modle de reprsentation de la terre sur un plan . Un modle est systme formel qui dfinit des lments permettant de reprsenter les objets de la ralit. Par exemple : modle statistique, modle empirique, modle numrique, modle relationnel.

UML : Unified Modeling Language


LUML a t cr pour le gnie logiciel orient-objet. Cest un langage graphique o les lments sont reprsents sous forme de diagrammes. Cest un langage trs vaste mais pas directement prvu pour la conception de bases de donnes relationnelles. Il manque certains lments du modle relationnel.

Modle Entits Relations


Le modle Entits-Relations (ER) est frquemment utilis pour la modlisation de bases de donnes relationnelles. Il existe de nombreux standard de reprsentation, les plus rcents sont trs similaires aux reprsentations UML. Il inclut des lments du modle relationnel.

Conception dune Base de Donnes Relationnelle

Modle Relationnel
Il est bas sur lalgbre relationnelle dveloppe par E. Codd en 1970, qui permet de manipuler des relations en sappuyant sur la thorie des ensembles. Le Modle Relationnel permet de reprsenter les lments absents de lUML et qui sont ncessaires limplmentation dune base de donnes. Cest le modle formel de la plupart des SGBD, qui portent alors le nom de Systmes de Gestion Bases de Donnes Relationnelles , ou SGBDR.

1.7 SQL : Structured Query Language.


Le langage SQL est utilis pour construire et manipuler les bases de donnes relationnelles. Il est bas sur lalgbre relationnelle et fournit des possibilits supplmentaires. Cest un langage dclaratif, contrairement la plupart des langages qui sont procduraux. Il existe plusieurs standards qui sont plus ou moins disponibles dans les diffrents SGBDR.

1.8 Types de donnes.


Les donnes peuvent tres de diffrentes natures : Entiers : 0, 10, -3, 527, 19 etc., Rels : 3.67 3/7 3.14 etc., Chanes de caractres : toto titi Gros minet etc., Dates : 2009-09-28, Heures : 10h05, Boolens : Vrai Faux, etc. En fonction du type de donnes on peut dfinir des oprateurs pour manipuler ces donnes. Numriques : +, -, *, /, %..., Boolens : ET, OU, NON, Comparaisons : <, >, ==, != etc. Caractres : concatnation, comparaison, minuscule, majuscule...

1.9 tapes de la modlisation


La modlisation consiste reprsenter de manire abstraite une partie de la ralit au moyen d'un modle. Il est ncessaire de formaliser les informations contenues dans les donnes avant de les reprsenter au moyen des outils fournit par le modle. Cette reprsentation sera ensuite implmente sous la forme d'une base de donnes. cela comporte plusieurs tapes : 1. Dlimitation et caractrisation des objets prsents dans les donnes (en franais), 2. Reprsentation sous forme de diagramme UML, 3. Transcription en modle relationnel Schma Conceptuel. La premire tape est cruciale pour obtenir une base de donnes fonctionnelle. Une bonne connaissance des donnes modliser est indispensable.

Conception dune Base de Donnes Relationnelle

2 Modle UML / Entits Relations


2.1 Classe / Entit
En UML, on nomme Classe ( entit dans le modle ER) nimporte quel objet qui doit tre reprsent dans la base. Cest un concept, tel un objet physique, ou un fait tel quun vnement ou une action. Par exemple : une personne, un cours. La premire tape de cration dune Classe consiste la caractriser en franais afin de bien la dfinir. Une Classe est dcrite de faon unique par un ensemble dattributs (UML et ER). Chaque attribut est donc une information, dune nature (ou type ) dfinie, et qui contribue caractriser la Classe. Chaque membre (ou instance ) de la Classe est caractris par un ensemble de valeurs donnes aux diffrents attributs. Par exemple on peut dfinir une Classe Personne par les attributs : Nom Prnom Sexe Date de naissance

On peut alors crer deux instances de la Classe Personne : Curie Monet Chevalier de Lamarck Marie Jean-Baptiste Pierre Antoine Fminin Masculin 7 11 1867 1 8 1744

En UML on identifie uniquement les attributs descriptifs, ceux qui fournissent une information sur les membres de la Classe. On les appelle attributs naturels. Les attributs ncessaires au fonctionnement de la base, tels que des index numriques ne sont pas reprsents en UML, mais on les ajoute dans le modle Entits Relations.

Diagramme de Classe.
Le diagramme de Classe montre le nom (un nom singulier) et les attributs de la Classe. Chaque attribut est caractris par le type de donnes correspondant.

Pour chaque attribut il est important de dfinir le domaine de valeurs, cest--dire lensemble de valeurs valides. Par exemple, pour des donnes numriques, cest la plage de valeurs du min au max. 8
Conception dune Base de Donnes Relationnelle

2.2 Association / Relation


Une Association en UML ( Relation en ER) est un lien fonctionnel entre deux Classes. (Attention Relation na pas le mme sens en ER et en Modle Relationnel !). Par exemple : un enseignant peut faire un cours. On commence par dcrire lassociation en franais : un enseignant fait un cours. Une association est caractrise par sa cardinalit. Ainsi, une association peut relier une ou plusieurs instances dune Classe une ou plusieurs instances de lautre Classe. On dfinit ainsi trois grands types de cardinalits : 1 1, Un lien de 1 1 reprsente en ralit deux caractristiques du mme objet, il ny a donc pas lieu de faire deux Classes. 1 n, Un lien de 1 n relie une instance dune Classe plusieurs instances de lautre Classe. de n m. Un lien de n m relie plusieurs lments dune Classe plusieurs lments de lautre Classe. Dans les deux derniers cas, il demeure possible quune instance dune Classe ne soit relie aucune instance de lautre Classe. Les cardinalits possibles sont donc les suivantes : 0..1 0..n et 0..n 0..m. On prcise donc les bornes si elles sont connues. Par exemple, un enseignant peut faire de 0 une infinit de cours, un cours est forcment fait par un enseignant et un seul. Cest un lien de 1 n ou plus prcisment de 1 0..n.

Diagramme dAssociation.
Le diagramme dAssociation montre le lien entre deux Classes, sa cardinalit et sa signification.
Association 1 n.

Association n-m.

Un auteur crit de un une infinit de livres et un livre est crit par un une infinit dauteurs. Cest une association de n m ou de 1..n 1..m. Chaque auteur dun livre a un rang dans la liste des auteurs, il peut tre le premier auteur, le deuxime auteur etc. Lassociation a donc un attribut rang. Pour reprsenter cette association on cre une Classe association.

Conception dune Base de Donnes Relationnelle

3 Modle relationnel
Dans le Modle Relationnel une Classe est reprsente par un schma de Relation. Cest un ensemble dattributs et de rgles qui dfinissent les valeurs qui peuvent leur tre assignes. Ces ensembles de valeurs correspondent aux domaines des attributs. Chaque instance du schma de relation est un tuple. Un tuple est une fonction qui assigne une valeur du domaine chaque attribut du schma. Cela implique un certain nombre de caractristiques : un schma de relation ne peut pas contenir dlments dupliqus, pour chaque attribut la valeur est unique (atomicit), lordre des attributs ne compte pas, de mme que lordre des valeurs du tuple.

Une relation est un ensemble de tuples bass sur le mme schma. Dans une relation chaque tuple est unique et ils ne sont pas ordonns. On peut appliquer des oprateurs densembles, tels que Union, Intersection, Diffrence, plusieurs relations partir du moment o elles sont bases sur le mme schma. On peut joindre des relations bases sur des schmas diffrents, la jointure se fait sur lassociation qui lie les relations. Le rsultat dune jointure est une nouvelle relation contenant un sousensemble du produit cartsien des relations correspondant aux associations valides. On peut galement appliquer des oprateurs unaires une relation, tels que : projection, la projection construit une relation contenant un sous ensemble des attributs dune relation. slection. la slection construit une relation contenant un sous-ensemble des tuples dune relation.

10

Conception dune Base de Donnes Relationnelle

3.1 Schma de relation


Reprsentation du schma de relation : Nom de la relation Nom des attributs Personne Nom Prenom Sexe Datedenaissance

Il nexiste pas de moyens graphique vident pour reprsenter le domaine de chaque attribut. Reprsentation de la relation : Nom de la relation Nom des attributs Tuple Tuple Personne Nom
Curie Monet Chevalier de Lamarck

Prenom
Marie JeanBaptiste Pierre Antoine

Sexe
Fminin Masculin

DateDenaissance
7 11 1867 1 08 1744

Valeur du domaine assigne lattribut Dans le langage SQL une relation est une table, les attributs sont les colonnes, les tuples sont les lignes de la table et les cellules sont les champs.

3.2 Clefs
Comme chaque tuple de la relation est unique, il ne peut y avoir deux lignes de la table qui ont exactement les mmes valeurs pour tous les attributs. Pour sassurer de cela il faut dfinir un sous-ensemble dattributs dont les valeurs prises ensembles garantissent lunicit. Tout sous-ensemble dattributs remplissant ce rle forme une Super Clef . Les super clefs sont une proprit de la relation. Il peut exister plusieurs super clef, il convient den choisir une qui servira de Clef Pri maire. Pour la relation Personne, il est possible que deux personnes aient le mme nom et soient du mme sexe mais il est peut probable quelles soient en plus nes le mme jour.

3.3 Association 1 n

Le schma de relation de la Classe Cours contient tous les attributs de la Classe.


Conception dune Base de Donnes Relationnelle

11

Pour reprsenter lAssociation, il faut reprsenter une information supplmentaire : qui fait le cours. Pour cela on ajoute la Classe Cours les attributs de la clef primaire de la Classe Ensei gnant. Cela constitue alors pour la Classe Cours une Clef trangre :

tant donn quil ne peut y avoir de cours sans enseignant, on appelle le schma Enseignants Parent et le schma Cours enfant. Cest toujours le ct 1 de lassociation le parent et le ct n lenfant. Cest donc toujours le schma enfant qui a la clef trangre. Les attributs de la clef tran gre doivent avoir exactement les mmes noms et types que ceux de la clef primaire. La clef trangre permet dassurer lintgrit rfrentielle. La taille de la clef primaire est importante prendre en compte lorsquelle sert de clef trangre pour une autre relation. Lorsquelle nest pas limite un attribut cela duplique une grande quantit de donne ce qui nest pas optimal du point de vue du stockage. On remplace alors la super clef par un nouvel attribut, soit artificiel (un index numrique) soit de substitution qui possde une valeur descriptive comme labrviation deux lettres pour les pays : france fr.

3.4 Association n m

Le schma de relation Auteurs ne peut contenir la clef trangre du schma de relation Livres et vice versa, en effet cela introduirait beaucoup de redondance. On introduit par consquent un schma de relation intermdiaire qui correspond la Classe dassociation Comit de rdaction qui contient les clefs trangres des deux autres schmas :

12

Conception dune Base de Donnes Relationnelle

IDauteurs est une clef de remplacement. ISBN est une clef externe, rgie par la norme ISO. Il convient de toujours choisir ce type de clefs lorsquelles existent. Exemple de relations bases sur ces schmas : Livres ISBN
2020202239 2858821860

Titre
Quest-ce que la vie ? Connatre et reconnatre les fruits sauvages.

Editions
Fayard Ouest-France

DatePublication
1981 1979

Auteurs IDauteurs
1 2 3

Nom
Schrdinger Lemoine Claustre

Prenom
Erwin Ccile Georges

DateDeNaissance
12 08 1887 17 03 1949 29 04 1956

ComitesDeRedaction IDauteurs
1 2 3

ISBN
2020202239 2858821860 2858821860

rang
1 1 2

Conception dune Base de Donnes Relationnelle

13

Jointure de ces trois tables : IDauteurs Nom Prenom DateDe ISBN rang Titre Naissan ce
12 08 1887 17 03 1949 2020 1 2022 39 2858 1 8218 60 2858 2 8218 60 Quest-ce que la vie ?

Editions

DateP ublica tion


1981

Schrdinger Erwin

Fayard

Lemoine

Ccile

Connatre et Ouestreconnatre les France fruits sauvages. Connatre et Ouestreconnatre les France fruits sauvages.

1979

Claustre

Georges 29 04 1956

1979

Le schma conceptuel dune base de donnes est constitu de lensemble des schmas de relation qui permettent de reprsenter toutes les informations contenues dans les donnes. Le schma conceptuel sera implment directement.

3.5 Passage du diagramme UML au schma conceptuel


Pour passer du diagramme UML au schma conceptuel il faut suivre les tapes suivantes : 1. Pour chaque Classe dfinir la Table correspondante, 2. Pour chaque Table dfinir les clefs potentielles, 3. Pour chaque Association dfinir les clefs trangres, primaires et la table de croisement.

4 Modlisation, Guide de bonnes pratiques


Dlimitation des concepts. Identifier lensemble des concepts prsents dans les donnes, Rechercher les types de liens entre ces concepts, Soit de type 1 1, soit 1 n, soit n m. Dfinir les clef primaires de chaque table. Rechercher lensemble minimal de champs rendant les enregistrements uniques. Plusieurs rgles informelles doivent sappliquer la conception dune base de donnes : 14 viter les redondances dans les donnes, Elles font perdre de la place et sont des causes dincohrences potentielles. viter les champs dupliqus dans une mme table,

Conception dune Base de Donnes Relationnelle

Les contenus de champs exprimant la mme ide doivent tre dans des enregistrements diffrents pour ne pas perdre de la place car le nombre denregistrements est dynamiquement extensible et pas le nombre de colonnes. Ne pas faire des champs fourre-tout , Pour faciliter linterrogation, un champ doit exprimer une seule ide (atomicit). Nommer les tables et les attributs de faon explicite. Pour faciliter la maintenance et lutilisation.

4.1 Normalisation
Il existe des formes de normalisation qui, appliques rcursivement aux donnes, permettent dobtenir un bon schma conceptuel. 1re forme 2me forme 3me forme Tous les attributs doivent tre atomiques, Il ne doit pas y avoir de groupes. Pas de dpendance fonctionnelle partielle. Pas de dpendance fonctionnelle transitives. liminer les valeurs multiples, liminer les attributs dupliqus. liminer les sous-clefs dans les clefs primaires liminer les sous-clefs hors des clefs primaires.

4.2 Les valeurs Multiples


Enseignants IDenseignants Nom
1 2 3 Gallut Billoud

Prenom
Cyril Bernard

NumeroTel
01 40 79 96 38 01 44 27 51 23

Disciplines
Biologie, Bases de donnes. Bases de donnes, analyse de squences. Analyse de squences, Gnomique.

Gonalves Isabelle 01 44 27 65 82

Les valeurs multiples dans un champ (ici le champ Disciplines ) ne permettent pas une recherche optimale. Il devient difficile de faire une recherche sur une seule valeur et il est impossible de lister chaque valeur individuellement. Pour palier ce problme on remplace lattribut par un nouveau schma de relation avec lattribut correspondant. On a ainsi deux schmas :

Conception dune Base de Donnes Relationnelle

15

Enseignants IDenseignants
1 2 3

Nom
Gallut Billoud Gonalves

Prenom
Cyril Bernard Isabelle

NumeroTel
01 40 79 96 38 01 44 27 51 23 01 44 27 65 82

Disciplines IDenseignants
1 1 2 2 3 3

Disciplines
Biologie Bases de donnes Bases de donnes Analyse de squences Analyse de squences Gnomique

4.3 Les attributs dupliqus


Enseignants Nom
Gallut Billoud Gonalves

Prenom
Cyril Bernard

NumeroTel
01 40 79 40 79 01 44 27 44 27

Fax
01 44 27 72 44

Portable
06 00 00 00 01

Isabelle 01 44 27 47 24

01 44 27 74 24

Aucun des enseignants na une valeur pour chacun des attributs. Les attributs non renseigns prennent la valeur NULL. Il est prfrable dviter au maximum les valeurs NULL. De plus, il est toujours possible que de nouveaux types de numros de tlphone soient crs. Avec la relation ci-dessus, il faudrait alors ajouter des attributs. Cette opration est toujours complique lorsque la base est dj en fonction. Pour palier ces problmes, on remplace les attributs dupliqus par un nouveau schma de relation.

16

Conception dune Base de Donnes Relationnelle

4.4 Dpendance fonctionnelle


Il y a dpendance fonctionnelle lorsque un ou plusieurs attributs implique dautres attributs. Cest le cas de la clef primaire qui implique les autres attributs du schma de relation. Il arrive quun autre attribut implique les valeurs que lon a dans certains attributs. Dans ce cas la dpendance fonctionnelle pose problme. Enseignants IDenseignants Nom
1 2 3 Gallut Billoud Gonalves

Prenom
Cyril Bernard Isabelle

Rue
Belleville Charrone Charles

CodePostal
75020 75020 45000

Ville
Paris Parsi Orlans

Dans cet exemple le code postal implique la valeur de ville. Cest une sous-clef. Pour rsoudre le problme il faut pour chaque sous-clef : crer un nouveau schma de relation avec les attributs fonctionnellement dpendants, prendre la sous-clef comme clef primaire du nouveau schma, garder la sous-clef comme clef trangre dans le schma de dpart.

Enseignants IDenseignants Nom


1 2 3 Gallut Billoud Gonalves

Prenom
Cyril Bernard Isabelle

Rue
Belleville Charrone Charles

CodePostal
75020 75020 45000

CodesPostaux CodePostal
75020 45000

Ville
Paris Orlans

On constate que la redondance a t limine grce cette normalisation. Ce qui permet dassurer lintgrit des donnes (voir erreur de frappe dans la premire table) et limite la taille de la base. Ce schma est donc plus optimal.

Conception dune Base de Donnes Relationnelle

17

4.5 Domaines
Il est important de prciser les domaines de tous les attributs la cration. Certains sont difficiles dcrire prcisment : Nom de personne. Certains possdent un patron : adresse mail par exemple. Certains ont une forme prcise et immuable : numro de ISBN ou numro de scurit sociale. Enfin certains peuvent tre une numration connue (au moins en partie) la cration. Dans ces cas, il est bon de faire un schma de relation indpendant. Par exemple : Disciplines.

Enseignants IDenseignants
1 2 3

Nom
Gallut Billoud Gonalves

Prenom
Cyril Bernard Isabelle

NumeroTel
01 40 79 96 38 01 44 27 51 23 01 44 27 65 82

EnseignantsDisciplines IDenseignants
1 1 2 2 3 3

Disciplines IDdiscipline
1 2 2 3 3 4

IDdiscipline Disciplines
1 2 3 4 Biologie Bases de donnes Analyse de squences Gnomique

18

Conception dune Base de Donnes Relationnelle

4.6 Dnormalisation
Il peut arriver que pour des raisons de performances il soit ncessaire de fusionner certaines tables, ce qui va dans le sens contraire de la normalisation. Il faut garder en tte quil faut maintenir lintgrit des donnes un autre niveau, par exemple lors de la saisie des donnes.

Conception dune Base de Donnes Relationnelle

19