You are on page 1of 41

Avant-propos

Aujourdhui, la disponibilit de systmes de gestion de base de donnes fiables permet aux organisations de toutes tailles de grer des donnes efficacement, de dployer des applications utilisant ces donnes et de les stocker. Les bases de donnes sont actuellement au c ur du systme dinformation des entreprises. Les bases de donnes relationnelles constituent lobjet de ce cours. Ces bases sont conues suivant le modle relationnel, dont les fondations thoriques sont solides, et manipules en utilisant lalgbre relationnelle. Il sagit, ce jour, de la mthode la plus courante pour organiser et accder des ensembles de donnes. Cependant, il est difficile de modliser un domaine directement sous une forme base de donnes relationnelle. Une modlisation intermdiaire est gnralement indispensable. Le modle entits-associations permet une description naturelle du monde rel partir des concepts dentit et dassociation. Aprs une courte introduction (chapitre 1), nous prsenterons et utiliserons le modle entits-associations pour aborder le problme de la conception des bases de donnes (chapitre 2). Nous dcrivons ensuite le modle relationnel, le passage du modle entits-associations au modle relationnel et enfin lalgbre relationnelle dans le chapitre 3. Le chapitre 4 est entirement consacr au langage SQL (StructuredQueryLanguage) qui peut tre considr comme le langage daccs normalis aux bases de donnes relationnelles. Ce langage est support par la plupart des systmes de gestion de bases de donnes commerciaux (comme Oracle) et du domaine libre (comme PostgreSQL). Nous dtaillons dans ce chapitre les instructions du langage de dfinition de donnes et celles du langage de manipulation de donnes. Cette premire bauche de cours est parue dans sa version finalise, largement augmente et corrige, chez Ellipses collection Info+ sous le titre Base de donnes - de la modlisation au SQL. Ce support a t ralis en utilisant les ouvrages cits en bibliographie.
1.1 Qu est-ce qu une base de donnes ?
1.1.1 Notion de base de donnes Description gnrale

Il est difficile de donner une dfinition exacte de la notion de base de donnes. Une dfinition trs gnrale pourrait tre :

Dfinition 1 -Base de donnes- Un ensemble organis d informations avec un objectif commun.


Peu importe le support utilis pour rassembler et stocker les donnes (papier, fichiers, etc.), ds lors que des donnes sont rassembles et stockes dune manire organise dans un but spcifique, on parle de base de donnes. Plus prcisment, on appelle base de donnes un ensemble structur et organis permettant le stockage de grandes quantits dinformations afin den faciliter lexploitation (ajout, mise jour, recherche de donnes). Bien entendu, dans le cadre de ce cours, nous nous intressons aux bases de donnes informatises.
Base de donnes informatise

Dfinition 2 -Base de donnes informatise- Une base de donnes informatise est un ensemble structur de donnes enregistres sur des supports accessibles par l ordinateur, reprsentant des informations du monde rel et pouvant tre interroges et mises jour par une communaut d utilisateurs.
Le rsultat de la conception dune base de donnes informatise est une description des donnes. Par description on entend dfinir les proprits densembles dobjets modliss dans la base de donnes et non pas dobjets particuliers. Les objets particuliers sont crs par des programmes dapplications ou des langages de manipulation lors des insertions et des mises jour des donnes. Cette description des donnes est ralise en utilisan t un modle de donnes 1. Ce dernier est un outil formel utilis pour comprendre lorganisation logique des donnes. La gestion et laccs une base de donnes sont assurs par un ensemble de programmes qui constituent le Systme de gestion de base de donnes (SGBD). Nous y reviendrons dans la section 1.2. Un SGBD est caractris par le modle de description des donnes quil supporte (hirarchique, rseau, relationnel, objet : cf. section 1.1.2). Les donnes sont dcrites sous la forme de ce modle, grce un Langage de Description des Donnes (LDD). Cette description est appele schma. Une fois la base de donnes spcifie, on peut y insrer des donnes, les rcuprer, les modifier et les dtruire. Cest ce quon appelle manipuler les donnes. Les donnes peuvent tre manipules non seulement par un Langage spcifique de Manipulation des Donnes (LMD) mais aussi par des langages de programmation classiques.

Enjeux

Les bases de donnes ont pris une place importante en informatique, et particulirement dans le domaine de la gestion. Ltude des bases de donnes conduit au dveloppement de concepts, mthodes et algorithmes spcifiques, notamment pour grer les donnes en mmoire secondaire ( i.e. disques durs)2. En effet, ds lorigine de la discipline, les informaticiens ont observ que la taille de la RAM ne permettait pas de charger lensemble dune base de donnes en mmoire. Cette hypothse est toujours vrifie car le volume des donnes ne cesse de saccrotre sous la pousse des nouvelles technologies du WEB. Ainsi, les bases de donnes de demain devront tre capables de grer plusieurs dizaines de tra-octets de donnes, gographiquement distribues lchelle dInternet, par plusieurs dizaines de milliers dutilisateurs dans un contexte dexploitation changeant (on ne sait pas trs bien matriser ou prdire les dbits de communication entre sites) voire sur des n uds volatiles. En physique des hautes nergies, on prdit quune seule exprience produira de lordre du pta-octets de donnes par an. Comme il est peu probable de disposer dune technologie de disque permettant de stocker sur un unique disque cette quantit dinformations, les bases de donnes se sont orientes vers des architectures distribues ce qui permet, par exemple, dexcuter potentiellement plusieurs instructions dentre/sortie en mme temps sur des disques diffrents et donc de diviser le temps total dexcution par un ordre de grandeur.
1.1.2 Modle de base de donnes Modle hirarchique

Une base de donnes hirarchique est une forme de systme de gestion de base de donnes qui lie des enregistrements dans une structure arborescente d e faon ce que chaque enregistrement nait quun seul possesseur (par exemple, une paire de chaussures nappartient qu une seule personne). Les structures de donnes hirarchiques ont t largement utilises dans les premiers systmes de gestion de bases de donnes conus pour la gestion des donnes du programme Apollo de la NASA. Cependant, cause de leurs limitations internes, elles ne peuvent pas souvent tre utilises pour dcrire des structures existantes dans le monde rel. Les liens hirarchiques entre les diffrents types de donnes peuvent rendre trs simple la rponse certaines questions, mais trs difficile la rponse dautres formes de questions. Si le principe de relation 1 vers N nest pas respect (par exemple, un malade peut avoir plusieurs mdecins et un mdecin a, a priori, plusieurs patients), alors la hirarchie se transforme en un rseau.

Modle rseau

Le modle rseau est en mesure de lever de nombreuses difficults du modle hirarchique grce la possibilit dtablir des liaisons de type n-n, les liens entre objets pouvant exister sans restriction. Pour retrouver une donne dans une telle modlisation, il faut connatre le chemin daccs (les liens) ce qui rend les programmes dpendants de la structure de donnes Ce modle de bases de donnes a t invent par C.W. Bachman. Pour son modle, il reut en 1973 le prix Turing.
Modle relationnel

Une base de donnes relationnelle est une base de donnes structure suivant les principes de lalgbre relationnelle. Le pre des bases de donnes relationnelles est Edgar Frank Codd. Chercheur chez IBM la fin des anne 1960, il tudiait alors de nouvelles mthodes pour grer de grandes quantits de donnes car les modles et les logiciels de lpoque ne le satisfaisait pas. Mathmaticien de formation, il tait persuad quil pourrait utiliser des branches spcifiques des mathmatiques (la thorie des ensembles et la logique des prdicats du premier ordre) pour rsoudre des difficults telles que la redondance des donnes, lintgrit des donnes ou lindpendance de la structure de la base de donnes avec sa mise en uvre physique. En 1970, [8] publia un article o il proposait de stocker des donnes htrognes dans des tables, permettant dtablir des relations entre elles. De nos jours, ce modle est extrmement rpandu, mais en 1970, cette ide tait considre comme une curiosit intellectuelle. On doutait que les tables puissent tre jamais gres de manire efficace par un ordinateur. Ce scepticisme na cependant pas empch Codd de poursuivre ses recherches. Un premier prototype de Systme de gestion de bases de donnes relationnelles (SGBDR) a t construit dans les laboratoires dIBM. Depuis les annes 80, cette technologie a mri et a t adopte par lindustrie. En 1987, le langage SQL, qui tend lalgbre relationnelle, a t standardis. Cest dans ce type de modle que se situe ce cours de base de donnes.
Modle objet

La notion de bases de donnes objet ou relationnel-objet est plus rcente et encore en phase de recherche et de dveloppement. Elle sera trs probablement ajoute au modle relationnel.

2.1 Introduction
2.1.1 Pourquoi une modlisation pralable ?

Il est difficile de modliser un domaine sous une forme directement utilisable par un SGBD. Une ou plusieurs modlisations intermdiaires sont donc utiles, le modle entits-associations constitue lune des premires et des plus courantes. Ce modle, prsent par [7], permet une description naturelle du monde rel partir des concepts dentit et dassociation 1. Bas sur la thorie des ensembles et des relations, ce modle se veut universel et rpond lobjectif dindpendance donnes-programmes. Ce modle, utilis pour la phase de conception, sinscrit notamment dans le cadre dune mthode plus gnrale et trs rpandue : Merise.
2.1.2 Merise

MERISE (Mthode dtude et de Ralisation Informatique pour les Systmes dEntreprise) est certainement le langage de spcification le plus rpandu dans la communaut de linformatique des systmes dinformation, et plus particulirement dans le domaine des bases de donnes. Une reprsentation Merise permet de valider des choix par rapport aux objectifs, de quantifier les solutions retenues, de mettre en uvre des techniques doptimisation et enfin de guider jusqu limplmentation. Reconnu comme standard, Merise devient un outil de communication. En effet, Merise russit le compromis difficile entre le souci dune modlisation prcise et formelle, et la capacit doffrir un outil et un moyen de communication accessible aux non -informaticiens. Un des concepts cls de la mthode Merise est la sparation des donnes et des traitements. Cette mthode est donc parfaitement adapte la modlisation des problmes abords dun point de vue fon ctionnel2. Les donnes reprsentent la statique du systme dinformation et les traitements sa dynamique. Lexpression conceptuelle des donnes conduit une m odlisation des donnes en entits et en associations. Dans ce cours, nous cartons volontairement la modlisation des traitements puisque nous ne nous intressons la mthode Merise que dans la perspective de la modlisation de bases de donnes. Merise propose une dmarche, dite par niveaux, dans laquelle il sagit de hirarchiser les proccupations de modlisation qui sont de trois ordres : la conception, lorganisation et la technique. En effet, pour aborder la modlisation dun systme, il convient de lanalyser en premier lieu de faon globale et de se concentrer sur sa fonction : cest--dire de sinterroger sur ce quil fait avant de dfinir comment il le fait. Ces niveaux de modlisation sont organiss dans une double approche donnes/traitements. Les trois niveaux de reprsentation des donnes, puisque ce sont eux qui nous intressent, sont dtaills ci -dessous.

Niveau conceptuel :

le modle conceptuel des donnes (MCD) dcrit les entits du monde rel, en terme d objets, de proprits et de relations, indpendamment de toute technique d organisation et d implantation des donnes. Ce modle se concrtise par un schma entits-associations reprsentant la structure du systme d information, du point de vue des donnes. Niveau logique : le modle logique des donnes (MLD) prcise le modle conceptuel par des choix organisationnels. Il s agit d une transcription (galement appele drivation) du MCD dans un formalisme adapt une implmentation ultrieure, au niveau physique, sous forme de base d e donnes relationnelle ou rseau, ou autres (cf. section 1.1.2). Les choix techniques d implmentation (choix d un SGBD) ne seront effectus qu au niveau suivant. Niveau physique : le modle physique des donnes (MPD) permet d tablir la manire concrte dont le systme sera mis en place (SGBD retenu).
2.2 lments constitutifs du modle entits-associations

La reprsentation du modle entits-associations sappuie sur trois concepts de base :


y y y

l objet ou entit, l association, la proprit.

Lobjet est une entit ayant une existence propre. Lassociation est un lien ou relation entre objets sans existence propre. La proprit est la plus petite donne dinformation dcrivant un objet ou une association.
2.2.1 Entit

Figure 2.1: Reprsentation graphique d un exemple de type-entit.

Dfinition 1 -entit- Une entit est un objet, une chose concrte ou abstraite qui peut tre reconnue distinctement et qui est caractrise par son unicit.
Exemples dentit : Jean Dupont, Pierre Bertrand, le livre que je tiens entre les mains, la Ferrari qui se trouve dans mon garage, etc. Les entits ne sont gnralement pas reprsentes graphiquement.

Dfinition 2 -type-entit- Un type-entit dsigne un ensemble d entits qui possdent une smantique et des proprits communes.
Les personnes, les livres et les voitures sont des exemples de type -entit. En effet, dans le cas dune personne par exemple, les informations associes (i.e. les proprits), comme le nom et le prnom, ne changent pas de nature. Une entit est souvent nomme occurrence ou instance de son type -entit. La figure 2.1 montre la reprsentation graphique dun exemple de type-entit (Personne) sans ses proprits associes. Les type-entit Personne, caractris par un nom et un prnom, et Voiture, caractris par un nom et une puissance fiscale, ne peuvent pas tre regroups car ils ne partagent leurs proprits (le prnom est une chane de caractres et la puissance fiscale un nombre). Les type-entit Personne, caractris par un nom et un prnom, et Livre, caractris un titre et un auteur, possdent tous les deux deux attributs du type chane de caractres. Pourtant, ces deux type-entits ne peuvent pas tre regroups car ils ne partagent pas une mme smantique : le nom dune personne na rien voir avec le titre dun livre, le prnom dune personne na rien voir avec un auteur. Par abus de langage, on utilise souvent le mot entit en lieu et place du mot type entit, il faut cependant prendre garde ne pas confondre les deux concepts.
2.2.2 Attribut ou proprit, valeur

Figure 2.2: Reprsentation graphique d un exemple de type-entit comportant trois attributs

Dfinition 3 -attribut, proprit- Un attribut (ou une proprit) est une caractristique associe un type-entit ou un type-association.
Exemples dattribut : le nom dune personne, le titre dune livre, la puissance dune voiture.

Dfinition 4 -valeur- Au niveau du type-entit ou du type-association, chaque attribut possde un domaine qui dfinit l ensemble des valeurs possibles qui peuvent tre choisies pour lui (entier, chane de caractres, boolen, ). Au niveau de l entit, chaque attribut possde une valeur compatible avec son domaine.
La figure 2.2 montre la reprsentation graphique dun exemple de type-entit (Personne) avec trois attributs.

Rgle 5 Un attribut ne peut en aucun cas tre partag par plusieurs type -entits ou type-associations. Rgle 6 Un attribut est une donne lmentaire, ce qui exclut des donnes calcules ou drives. Rgle 7 Un type-entit et ses attributs doivent tre cohrents entre eux ( i.e. ne traiter que d un seul sujet).
Par exemple, si le modle doit comporter des informations relatives des articles et leur fournisseur, ces informations ne doivent pas coexister au sein dun mme type-entit. Il est prfrable de mettre les informations relatives aux articles dans un type-entit Article et les informations relatives aux fournisseurs dans un typeentit Fournisseur. Ces deux type-entits seront probablement ensuite relis par un type-association.
2.2.3 Identifiant ou cl

Figure 2.3: Reprsentation graphique d un exemple de type-entit comportant quatre attributs dont un est un identifiant : deux personnes peuvent avoir le mme nom, le mme prnom et le mme ge, mais pas le mme numro de scurit sociale.

Dfinition 8 -identifiant, cl- Un identifiant (ou cl) d un type-entit ou d un type-association est constitu par un ou plusieurs de ses attributs qui doivent avoir une valeur unique pour chaque entit ou association de ce type.
Il est donc impossible que les attributs constituant lidentifiant dun type -entit (respectivement type-association) prennent la mme valeur pour deux entits (respectivement deux associations) distinctes. Exemples didentifiant : le numro de scurit sociale pour une personne, le numro dimmatriculation pour une voiture, le code ISBN dun livre pour un livre (mais pas pour un exemplaire).

Rgle 9 Chaque type-entit possde au moins un identifiant, ventuellement form de plusieurs attributs.
Ainsi, chaque type-entit possde au moins un attribut qui, sil est seul, est donc forcment lidentifiant. Dans la reprsentation graphique, les attributs qui constituent lidentifiant sont souligns et placs en tte (cf. figure 2.3).
2.2.4 Association ou relation

Figure 2.4: Reprsentation graphique d un exemple de type-association liant deux type-entits.

Dfinition 10 -association- Une association (ou une relation) est un lien entre plusieurs entits.
Exemples dassociation : lemprunt par ltudiant Tanidute du 3 livre Matrisez SQL .
me

exemplaire du

Les associations ne sont gnralement pas reprsentes graphiquement.

Dfinition 11 -type-association- Un type-association (ou un type-relation) dsigne un ensemble de relations qui possdent les mmes caractristiques. Le type-association dcrit un lien entre plusieurs type -entits. Les associations de ce type-association lient des entits de ces type-entits.
Comme les type-entits, les type-associations sont dfinis laide dattributs qui prennent leur valeur dans les associations.

Rgle 12 Un attribut peut tre plac dans un type-association uniquement lorsqu il dpend de toutes les entits lies par le type -association.
Un type-association peut ne pas possder dattribut explicite et cela est relativement frquent, mais on verra quil possde au moins des attributs implicites. Exemples de type-association : lemprunt dun livre la bibliothque. Une association est souvent nomme occurrence ou instance de son type association. La figure 2.4 montre la reprsentation graphique dun exemple de type-association. Par abus de langage, on utilise souvent le mot association en lieu et place du mot type-association, il faut cependant prendre garde ne pas confondre les deux concepts.

Dfinition 13 -participant- Les type-entits intervenant dans un type-association sont appels les participants de ce type-association. Dfinition 14 -collection- L ensemble des participants d un type-association est appel la collection de ce type-association.
Cette collection comporte au moins un type-entit (cf. section 2.3.2), mais elle peut en contenir plus, on parle alors de type-association n-aire (quand n=2 on parle de type-association binaire, quand n=3 de type-association ternaire, ).

Dfinition 15 -dimension ou arit d un type-association- La dimension, ou l arit d un type-association est le nombre de type-entits contenu dans la collection.
Comme un type-entit, un type-association possde forcment un identifiant, quil soit explicite ou non.

Rgle 16 La concatnation des identifiants des type-entits lis un typeassociation constitue un identifiant de ce type-association et cet identifiant n est pas mentionn sur le modle (il est implicite).
Cette rgle implique que deux instances dun mme type -association ne peuvent lier un mme ensemble dentits. Souvent, un sous-ensemble de la concatnation des identifiants des type-entits lis suffit identifier le type-association. On admet galement un identifiant plus naturel et explicite, condition quil ne soit quun moyen dexprimer plus simplement cett e concatnation.
2.2.5 Cardinalit

Figure 2.5: Reprsentation graphique des cardinalits d un type-association. Dans cet exemple pdagogique, on suppose qu un livre ne peut possder qu un auteur.

Dfinition 17 -cardinalit- La cardinalit d une patte reliant un type-association et un type-entit prcise le nombre de fois minimal et maximal d interventions d une entit du type-entit dans une association du type-association. La cardinalit minimale doit tre infrieure ou gale la cardinalit m aximale.
Exemple de cardinalit : une personne peut tre lauteur de 0 n livre, mais un livre ne peut tre crit que par une personne (cf. figure 2.5).

Rgle 18 L expression de la cardinalit est obligatoire pour chaque patte d un type-association. Rgle 19 Une cardinalit minimal est toujours 0 ou 1 et une cardinalit maximale est toujours 1 ou n.
Ainsi, si une cardinalit maximale est connue et vaut 2, 3 ou plus, alors nous considrons quelle est indtermine et vaut n. En effet, si nous connaissons n au

moment de la conception, il se peut que cette valeur volue au cours du temps. Il vaut donc mieux considrer n comme inconnue ds le dpart. De la mme manire, on ne modlise pas des cardinalits minimales qui valent plus de 1 car ces valeurs sont galement susceptibles dvoluer. Enfin, une cardinalit maximale de 0 na pas de sens car elle rendrait le type-association inutile. Les seuls cardinalits admises sont donc :

0,1 : une occurrence du type-entit peut exister tout en tant implique dans aucune association et peut tre implique dans au maximum une association. 0,n : c est la cardinalit la plus ouverte ; une occurrence du type -entit peut exister tout en tant implique dans aucune association et peut tre implique, sans limitation, dans plusieurs associations. 1,1 : une occurrence du type-entit ne peut exister que si elle est implique dans exactement (au moins et au plus) une association. 1,n : une occurrence du type-entit ne peut exister que si elle est implique dans au moins une association.
Une cardinalit minimale de 1 doit se justifier par le fait que les entits du type-entit en questions ont besoin de lassociation pour exister. Dans tous les autres cas, la cardinalit minimale vaut 0. Ceci dit, la discussion autour dune cardinalit minimale de 0 ou de 1 nest intressante que lorsque la cardinalit maximale est 1. En effet, nous verrons que, lors de la traduction vers un schma relationnel (cf. section 3.1.3), lorsque la cardinalit maximale est n, nous ne ferons pas la diffrence entre une cardinalit minimale de 0 ou de 1.
Remarques

La seule difficult pour tablir correctement les cardinalits est de se poser les question dans le bon sens. Pour augmenter le risque derreurs, il faut noter que, pour les habitus, ou les futurs habitus, du modle UML, les cardinalits dun type-association

sont lenvers (par rfrence UML) pour les typeassociations binaires et lendroit pour les n-aires avec n>2. La notion de cardinalit nest pas dfinie de la mme manire dans le modle Amricain et dans le modle Europen (Merise). Dans le premier nexiste que la notion de cardinalit maximale. Avec un SGBD relationnel, nous pourrons contraindre des cardinalits des valeurs comme 2, 3 ou plus en utilisant des dclencheurs (trigger).
2.3 Complments sur les associations
2.3.1 Associations plurielles

Figure 2.6: Exemple d associations plurielles entre un type-entit Personne et un type-entit Livre. Sur ce schma, un type-association permet de modliser que des personnes crivent des livres et un autre que des personnes critiquent (au sens de critique littraire) des livres.

Deux mmes entits peuvent tre plusieurs fois en association (cest le cas sur la figure 2.6).
2.3.2 Association rflexive

Figure 2.7: Exemple d associations reflexives sur le type-entit Personne. Le premier type-association permet de modliser la relation parent/enfant et le deuxime type-association la relation de fraternit.

Les type-associations rflexifs sont prsents dans la plupart des modles.

Dfinition 20 -Type-association rflexif- Un type-association est qualifi de rflexif quand il matrialise une relation entre un type-entit et lui-mme (cf. figure 2.7).
Une occurrence de ce type-association (i.e. une association) associe gnralement une occurrence du type-association (i.e. une entit) une autre entit du mme type. Cette relation peut tre symtrique, cest le cas du type -association Etre frre sur la figure 2.7, ou ne pas ltre, comme le type-association Etre parent sur cette mme figure. Dans le cas o la relation nest pas symtrique, on peut prciser les rles sur les pattes du type-association comme pour la relation Etre parent de la figure 2.7. Lambigut pose par la non-symtrie dun type-association rflexif sera leve lors du passage au modle relationnel (cf. section 3.1.3).
2.3.3 Association n-aire (n>2)

Dans la section 2.2.4 nous avons introduit la notion de type -association n-aire. Ce type-association met en relation n type-entits. Mme sil ny a, en principe, pas de limite sur larit dun type-association, dans la pratique on ne va rarement au-del de trois. Les associations de degr suprieur deux sont plus difficiles manipuler et interprter, notamment au niveau des cardinalits.
Exemple d association n-aire inapproprie

Figure 2.8: Exemple de type-association ternaire inappropri.

Le type-association ternaire Contient associant les typeentits Facture, Produit et Client reprsent sur la figure 2.8 est inappropri puisquune facture donne est toujours adresse au mme client. En effet, cette modlisation implique pour les as sociations (instances du typeassociation) Contient une rptition du numro de client pour chaque produit dune mme facture.

Figure 2.9: Type-association ternaire de la figure 2.8 corrig en deux type-associations binaires.

La solution consiste clater le type-association ternaire Contient en deux typeassociations binaires comme reprsent sur la figure 2.9.
Dcomposition d une association n-aire

Figure 2.10: Exemple de type association ternaire entre des type-entits Crneau horaire, Salle et Film.

Figure 2.11: Transformation du type-association ternaire de la figure 2.10 en un type-entit et trois type-associations binaires.

La figure 2.10 nous montre un exemple de type-association ternaire entre les typeentits Crneau horaire, Salle et Film. Il est toujours possible de saffranchir dun type-association n-aire (n>2) en se ramenant des type-associations binaires de la manire suivante :
y

On remplace le type-association n-aire par un type-entit et on lui attribut un identifiant.

On cre des type-associations binaire entre le nouveau type -entit et tous les type-entits de la collection de l ancien type -association n-aire. La cardinalit de chacun des type-associations binaires crs est 1,1 du ct du type-entit cr (celui qui remplace le type-association n-aire), et 0,n ou 1,n du ct des type-entits de la collection de l ancien type -association naire.

La figure 2.11 illustre le rsultat de cette transformation sur le schma de la figure 2.10. Lavantage du schma de la figure 2.11 est de rendre plus intelligible la lecture des cardinalits. Il ne faut surtout pas le voir comme un aboutissement mais comme une tape intermdiaire avant daboutir au schma de la figure 2.10 (cf. rgle 27). Ainsi, le mcanisme, que nous venons de dtailler ci -dessus, de passage dun typeassociation n-aire (n>2) un type-entit et n type-associations binaires est tout fait rversible condition que :
y

toutes les pattes des type-associations binaires autour du type-entit central ont une cardinalit maximale de 1 au centre et de n l extrieur ; les attributs du type-entit central satisfont la rgle de bonne formation des attributs de type-association (cf. section 2.4.2).

Dtection d une erreur de modlisation par dcomposition d une association n -aire

Figure 2.12: Modle reprsentant un type-association ternaire Vol liant trois typeentits Avion, Trajet et Pilote.

Figure 2.13: Transformation du type-association ternaire de la figure 2.12 en un type-entit et trois type-associations binaires.

Figure 2.14: Modle de la figure 2.13 corrig au niveau des cardinalits.

Passer par cette tape intermdiaire ne comportant pas de type -association n-aire (n>2) peut, dans certains cas, viter dintroduire un type-association n-aire inappropri. Imaginons par exemple un type-association ternaire Vol liant trois type-entits Avion, Trajet et Pilote comme reprsent sur la figure 2.12. La transformation consistant supprimer le type-association ternaire du modle de la figure 2.12 produit le modle de la figure 2.13. Ce modle fait immdiatement apparatre une erreur de conception qui tait jusque l difficile diagnostiquer :

gnralement, un vol donn sont affects plusieur pilotes (par exemple le commandant de bord et un copilote) et non pas un seul. Le modle correct modlisant cette situation est celui de la figure 2.14 o le typeentit Vol ne peut tre transform en un type-association ternaire Vol comme sur la figure 2.12.
2.4 Rgles de bonne formation d un modle entits-associations

La bonne formation dun modle entits-associations permet dviter une grande partie des sources dincohrences et de redondance. Pour tre bien form, un modle entits-associations doit respecter certaines rgles et les type-entits et typeassociations doivent tre normalises. Un bon principe de conception peut tre formul ainsi : une seule place pour chaque fait . Bien que lobjectif des principes exposs dans cette section soit daider le concepteur obtenir un diagramme entits-associations bien form, ces principes ne doivent pas tre interprt comme des lois. Quil sagisse des rgles de bonne formation ou des rgles de normalisation, il peut exister, trs occasionnellement, de bonnes raisons pour ne pas les appliquer.
2.4.1 Rgles portant sur les noms

Rgle 21 Dans un modle entits-associations, le nom d un type-entit, d un typeassociation ou d un attribut doit tre unique.

Figure 2.15: La prsence des deux type-entits Enseignant et Etudiant est symptomatique d une modlisation inacheve. A terme, ces deux type-entits doivent tre fusionns en un unique typeentit Personne. Rfrez vous la rgle 25 pour plus de prcisions concernant cette erreur de modlisation.

Figure 2.16: Ici, les attributs Adresse de facturation sont redondants. Cette situation doit tre vite tout prix car elle entrane un gaspillage d espace mmoire mais aussi et surtout un grand risque d incohrence. En effet, que faire si, dans le cadre d une occurrence du typeassociation Correspondre, la valeurs des deux attributs Adresse de facturation diffrent ?

Figure 2.17: Dans cette situation, les deux attributs Adresse doivent simplement tre renomms en Adresse client et Adresse fournisseur. Il en va de mme pour les deux attributs Nom.

Lorsque des attributs portent le mme nom, cest parfois le signe dune modlisation inacheve (figure 2.15) ou dune redondance (figure 2.16). Sinon, il faut simplement ajouter au nom de lattribut l e nom du type-entit ou du typeassociation dans lequel il se trouve (figure 2.17). Il faut toutefois remarquer que le dernier cas dcrit nest pas rdhibitoire et que les SGDB Relationnel saccommodent trs bien de relations comportant des attributs de mme nom. Lcriture des requtes sera tout de mme plus lisible si les attributs ont tous des noms diffrents.
2.4.2 Rgles de normalisation des attributs

Rgle 22 Il faut remplacer un attribut multiple en un type -association et un typeentit supplmentaires.

Figure 2.18: Remplacement des attributs multiples en un type-association et un type-entit et dcomposition des attributs composites.

En effet, les attributs multiples posent rgulirement des problmes dvolutivit du modle. Par exemple, sur le modle de gauche de la figure 2.18, comment faire si un employ possde deux adresses secondaires ou plusieurs numros de portable ? Il est galement intressant de dcomposer les attributs composites comme lattribut Adresse par exemple. Il est en effet difficile dcrire une requte portant sur la ville o habitent les employs si cette information est noye dans un unique attribut Adresse.

Rgle 23 Il ne faut jamais ajouter un attribut driv d autres attributs, que ces autres attributs se trouvent dans le mme type -entit ou pas.

Figure 2.19: Il faut supprimer l attribut Montant total du type-entit Commande car on peut le calculer partir des attributs Quantit du type association Contenir et Prix unitaire du typeentit Article.

En effet, les attributs drivs induisent un risque dincohrence entre les valeurs des attributs de base et celles des attributs drivs. La figure 2.19 illustre le cas dun attribut Montant total dans un type-entit Commande qui peut tre calcul partir des attributs Quantit du type association Contenir et Prix unitaire du typeentit Article. Il faut donc supprimer lattribut Montant total dans le typeentit Commande. Dautres attributs drivs sont galement viter comme lge, que lon peut dduire de la date de naissance et de la date courante. Il faut cependant faire attention aux piges : par exemple, le code postal ne dtermine ni le numro de dpartement ni la Ville 3 Comme nous lavons dj dit (cf. rgle 12), les attributs dun type-association doivent dpendre directement des identifiants de tous les type-entits de la collection du type-association.

Figure 2.20: Comme la cardinalit maximale du type-association Livrer est 1 du ct du typeentit Livraison, l attribut Nom livreur de Livrer doit tre dplac dans Livraison.

Par exemple, sur la figure 2.19, lattribut Quantit du typeassociation Contenir dpend bien la fois de lidentifiant N commande et de N article des type-entits de la collection de Contenir. Inversement, sur cette mme figure, lattribut Prix-unitaire ne dpend que de N article du type-entit Article, il ne pourait donc pas tre un attribut du type -association Contenir. Une consquence immdiate de cette rgle est quun type association dont la cardinalit maximale de lune des pattes est 1 ne peut pas possder dattribut. Si elle en possdait, ce serait une erreur de modlisation et il faudrait les dplacer dans le type -entit connect la patte portant la cardinalit maximale de 1 (cf. figure2.20).

Rgle 24 Un attribut correspondant un type numr est gnralement avantageusement remplac par un type-entit.
Par exemple, sur la figure 2.21, lattribut Type caractrise le type dune mission et peut prendre des valeurs comme : actualit, culturelle, reportage, divertissement, etc. Remplacer cet attribut par un type -entit permet, dune part, daugmenter la cohrence (en saffranchissant, par exemple, des variations du

genre culturelle, culture, Culture, ) et dautre part, si les cardinalits le permettent, de pouvoir affecter plusieurs types une mme entit (ex : actualitet culturelle)

Figure 2.21: Un attribut correspondant un type numr est gnralement avantageusement remplac par un type-entit..

2.4.3 Rgles de fusion/suppression d entits/associations

Rgle 25 Il faut factoriser les type-entits quand c est possible.


La spcialisation du type-entit obtenu peut se traduire par lintroduction dun attribut supplmentaire dont lensemble des valeurs possibles est lensemble des noms des type-entits factoriss (figure 2.22).

Figure 2.22: Il faut factoriser les type-entits quand c est possible, ventuellement en introduisant un nouvel attribut.

Mais lintroduction dun attribut supplmentaire nest pas forcment ncessaire ou souhaitable. Par exemple, sur le modle entits-associations final de la figure 2.23, on peut distinguer les entits qui correspondent des crivains ou des abonns en fonction du type de lassociation, Ecrire ou Emprunter, que lentit en question

entretient avec une entit du type Livre. Ne pas introduire dattribut permet en outre de permettre une personne dtre la fois unAbonn et un crivain.

Figure 2.23: Il faut factoriser les type-entits quand c est possible, mais l introduction d un attribut supplmentaire n est pas toujours ncessaire. Remarque : ce diagramme est intentionnellement simplifi outrance.

Rgle 26 Il faut factoriser les type-associations quand c est possible.


Cette rgles est le pendant pour les type-associations de la rgle 25 qui concerne les type-entits. La spcialisation du type-association obtenu peut se traduire par lintroduction dun attribut supplmentaire dont lensemble des valeurs possibles est lensemble des noms des type-associations factoriss.

Figure 2.24: Un seul type-association suffit pour remplacer les quatre type-associations Jouer en tant que

La figure 2.24 montre un exemple de multiplication inutile de type -associations.

Rgle 27 Un type-entit remplaable par un type-association doit tre remplac.


Par exemple, le type-entit Projection de la figure 2.11 page ?? doit tre remplac par le type-association ternaire Projeter pour aboutir au schma de la figure 2.10 page ??.

Rgle 28 Lorsque les cardinalits d un type-association sont toutes 1,1 c est que le type-association n a pas lieu d tre.
Il faut aussi se poser la question de lintrt du type-association quand les cardinalits maximale sont toutes de 1.

Figure 2.25: Lorsque les cardinalits d un type-association sont toutes 1,1 c est qu il s agit d un typeassociation fantme.

Lorsque les cardinalits dun type-association sont toutes 1,1, le type-association doit gnralement tre supprim et les type-entits correspondant fusionns comme lillustre la figure 2.25. Nanmoins, mme si toutes ses cardinalits maximale sont de 1, il est parfois prfrable de ne pas supprimer le type-association, comme dans lexemple de la figure 2.26.

Figure 2.26: Mme si toutes les cardinalits maximale sont de 1, il vaut mieux conserver le typeassociation Etre.

Rgle 29 Il faut veiller viter les type-associations redondants. En effet, s il existe deux chemins pour se rendre d un type -entit un autre, alors ces deux chemins doivent avoir deux significations ou deux dures de vie distinctes. Dans le cas contraire, il faut supprimer le chemin le plus court puisqu il est dductible des autres chemins.

Figure 2.27: Si un client ne peut pas rgler la facture d un autre client, alors le typeassociation Payer est inutile.

Figure 2.28: Solution au problme de la redondance du type-association de la figure 2.27.

Figure 2.29: Dans le modle de la figure 2.27, si un client peut rgler la facture d un autre client, il faut remplacer le type-entit Rglement par un type-association Rgler.

Par exemple, dans le modle reprsent sur la figure 2.27, si un client ne peut pas rgler la facture dun autre client, alors le type-association Payer est redondant et doit purement et simplement tre supprim du modle (cf. figure 2.28). On pourra toujours retrouver le client qui a effectu un rglement en passant par la facture correspondante. Par contre, si un client peut rgler la facture dun autre client, alors cest la rgle 27 quil faut appliquer : on remplace le type-entit Rglement par un typeassociation Rgler (cf. figure 2.29).
2.4.4 Normalisation des type-entits et type-associations Introduction

Les formes normales sont diffrent stades de qualit qui permettent dviter la redondance, source danomalies. La normalisation peut tre aussi bien effectue sur un modle entits-associations, o elle sapplique sur les type-entits et typeassociations, que sur un modle relationnel. Il existe 5 formes normales principales et deux extensions. Plus le niveau de normalisation est lev, plus le modle est exempte de redondances. Un type -entit ou un type-association en forme normale de niveau n est automatiquement en forme normale de niveau n1. Une modlisation rigoureuse permet gnralement daboutir directement des type-entits et type-associations en forme normale de Boyce-Codd. Nous avons dcid de prsenter deux fois cette thorie de la normalisation :

Une premire fois, dans le cadre du modle entits -associations (la prsente section 2.4.4), en privilgiant une approche plus intuitive qui n introduit pas explicitement la notion de dpendance fonctionnelle (et encore moins les notions de dpendance multivalue et de jointure). Nous nous arrterons, dans cette section, la forme normale de Boyce -Codd. Puis une seconde fois, dans le cadre de modle relationnel (section 3.2), en privilgiant une approche plus formelle s appuyant sur la dfinition des dpendances fonctionnelle, multivalue et de jointure. Nous irons alors jusqu la cinquime forme normale.

Premire forme normale (1FN)

Figure 2.30: Exemple de normalisation en premire forme normale.

Dfinition 30 -Premire forme normale (1FN)- Un type-entit ou un typeassociation est en premire forme normale si tous ses attributs sont lmentaires, c est--dire non dcomposables.
Un attribut composite doit tre dcomposs en attributs lmentaires (comme lattribut Adresse sur la figure 2.30) ou faire lobjet dune entit supplmentaire (comme lattribut Occupants sur la figure 2.30. Llmentarit dun attribut est toutefois fonction des choix de gestion. Par exemple, la proprit Adresse peut tre considre comme lmentaire si la gestion de ces adresses est globale. Par contre, sil faut pouvoir considrer les codes postaux, les noms de rues, , il convient dclater la proprit Adresse en Adresse (au sens numro dappartement, numro et nom de rue, ), Code postal et Ville. En cas de doute, il est prfrable (car plus gnral) dclater une proprit que deffectuer un regroupement.
Deuxime forme normale (2FN)

Figure 2.31: Exemple de normalisation en deuxime forme normale. On suppose qu un mme fournisseur peut fournir plusieurs produits et qu un mme produit peut tre fourni par diffrents fournisseurs.

Dfinition 31 -Deuxime forme normale (2FN)- Un type-entit ou un typeassociation est en deuxime forme normale si, et seulement si, il est en premire forme normale et si tout attribut n appartenant pas la cl dpend de la totalit de cette cl.
Autrement dit, les attributs doivent dpendre de lensemble des attributs participant la cl. Ainsi, si la cl est rduite un seul attribut, ou si elle contient tous les attributs, le type-entit ou le type-association est, par dfinition, forcment en deuxime forme normale. La figure 2.31 montre un type-entit Article dcrivant des produits provenant de diffrents fournisseurs. On suppose quun mme fournisseur peut fournir plusieurs produits et quun mme produit peut tre fourni par diffrents fournisseurs. Dans ce cas, les attributs Produit ou Fournisseur ne peuvent constituer un identifiant du type-entit Article. Par contre, le couple Produit/Fournisseur constitue bien un identifiant du type-entit Article. Cependant, lattribut Adresse fournisseur ne dpend maintenant que dune partie de la cl (Fournisseur). Opter pour une nouvelle cl arbitraire rduite un seul attribut N article permet dobtenir un typeentit Article en deuxime forme normale. On va voir dans ce qui suit que cette solution na fait que dplacer le problme.
Troisime forme normale (3FN)

Figure 2.32: Exemple de normalisation en troisime forme normale. Dans cet exemple, l attribut Adresse fournisseur dpend de l attribut Fournisseur.

Dfinition 32 -Troisime forme normale (3FN)- Un type-entit ou un typeassociation est en troisime forme normale si, et se ulement si, il est en deuxime forme normale et si tous ses attributs dpendent directement de sa cl et pas d autres attributs.
Cette normalisation peut amener dsimbriquer des type -entits caches comme le montre la figure 2.32. Un type-entit ou un type-association en deuxime forme normale avec au plus un attribut qui nappartient pas la cl est, par dfinition, forcment en troisime forme normale.
Forme normale de Boyce-Codd (BCNF)

Figure 2.33: Exemple de normalisation en forme normale de Boyce-Codd.

Dfinition 33 -Forme normale de Boyce-Codd (BCNF)- Un type-entit ou un type-association est en forme normale de Boyce -Codd si, et seulement si, il est en troisime forme normale et si aucun attribut faisant partie de la cl dpend d un attribut ne faisant pas partie de la cl.
Intressons-nous, par exemple (cf. figure 2.33), un typeentit Diplm modlisant des personnes (Nom et Prnom) possdant un diplme (Diplme) dune institution (Institution). On suppose quil ny a pas dhomonyme, quune mme personne ne possde pas deux fois le mme diplme mais quelle peut possder plusieurs diplmes diffrents. Une institution ne dlivre quun type de diplme, mais un mme diplme peut tre dlivr par plusieurs institutions (par exemple, plusieurs coles dingnieurs dlivrent des diplmes dingnieur). Une cl possible pour le type-entit Diplm est donc Nom, Prnom, Diplme. Le type-

entit obtenu est en troisime forme normale, mais une redondance subsiste car lattribut Institution dtermine lattribut Diplme. Le type-entit Diplm nest donc pas en forme normale de Boyce-Codd. Un modle en forme normale de Boyce-Codd est considr comme tant de qualit suffisante pour une implantation.
Autres formes normales

Il existe dautres formes normales. La quatrime et la cinquime forme normale sont prsentes dans la section 3.2 dans le cadre du modle relationnel.

3 Le code postal en France identifie le bureau distributeur qui achemine le courrier dans une commune. En consquence et d aprs cette dfinition, il n existe pas de relation entre le code postal et le code du dpartement de la commune. Par exemple, la commune La Feuillade, dont le code postal est 19600, est situe dans le dpartement de la Dordogne (24). Dans cette non correspondance entre code postal et dpartement, il y a toute la Corse ! Il n y a pas non plus de correspondance biunivoque entre le code postal et une ville. Une commune peut avoir plusieurs codes postaux, un code postal peut recouvrir plusieurs communes.
2.5 laboration d un modle entits-associations
2.5.1 tapes de conceptions d un modle entits-associations

Pour concevoir un modle entits -associations, vous devrez certainement passer par une succession dtapes. Nous les dcrivons ci-dessous dans lordre chronologique. Sachez cependant que la conception dun modle entits-associations est un travail non linaire. Vous devrez rgulirement revenir une tape prcdente et vous navez pas besoin den avoir termin avec une tape pour commencer ltape suivante.

Recueil des besoins C est une tape primordiale. Inventoriez l ensemble des donnes partir des documents de l entreprise, d un ventuel cahier des charges et plus gnralement de tous les supports de l information. N hsitez pas poser des questions. Tri de l information

Faites le tri dans les donnes recueillies. Il faut faire attention, ce niveau, aux problmes de synonymie/polysmie. En effet, les attributs ne doivent pas tre redondants. Par exemple, si dans le langage de l entreprise on peut parler indiffremment de rfrence d article ou de n de produit pour dsigner la mme chose, cette caractristique ne devra se concrtiser que par un unique attribut dans le modle. Inversement, on peut parler d adresse pour dsigner l adresse du fournisseur et l adresse du client, le contexte permettant de lever l ambigut. Par contre, dans le modle, il faudra veiller bien distinguer ces deux caractristiques par deux attributs distincts.
Un autre exemple est celui dune entreprise de production fabricant des produits destination dune autre socit du mme groupe. Il se peut que dans ce cas, le prix de production (i.e. le cot de revient industriel) soit le mme que prix de vente (aucune marge nest ralise). Mme dans ce cas o les deux caractristiques sont identiques pour chaque entit (prix de production gale prix de vente), il faut imprativement les scinder en deux attributs au niveau du type-entit Produit. Sinon, cette galit factuelle deviendrait une contrainte impose par le modle, obligeant alors lentreprise de production revoir son systme le jour o elle dcidera de raliser une marge (prix de production infrieure au prix de vente).

Identification des type-entits Le reprage d attributs pouvant servir d identifiant permet souvent de reprer un type-entit. Les attributs de ce type-entit sont alors les attributs qui dpendent des attributs pouvant servir d identifiant.
Attention, un mme concept du monde rel peut tre reprsent dans certains cas comme un attribut et dans dautres cas comme un type-entit, selon quil a ou non une existence propre. Par exemple, la marque dune automobile peut tre vue comme un attribut du type-entit Vhicule de la base de donnes dune prfecture mais aussi comme un type -entit Constructeur automobile dans la base de donnes du Ministre de lIndustrie. Lorsquon ne parvient pas trouver didentifiant pour un type -entit, il faut se demander sil ne sagit pas en fait dun type-association. Si ce nest pas le cas, un identifiant arbitraire numrique entier peut faire laffaire.

Identification des type-associations

Identifiez les type-associations reliant les type-entits du modle. Le cas chant, leur affecter les attributs correspondant.
Il est parfois difficile de faire un choix entre un type-entit et un typeassociation. Par exemple, un mariage peut tre considr comme un type association entre deux personnes ou comme un type -entit pour lequel on veut conserver un numro, une date, un lieu, , et que lon souhaite manipuler en tant que tel. tudiez galement les cardinalits des type-associations retenus. Lorsque toutes les pattes dun type-association portent la cardinalit 1,1, il faut se demander si ce type-association et les type-entits lis ne dcrivent pas en fait un seul type-entit (cf. rgle 2.25).

Vrification du modle Vrifiez que le modle respecte bien les rgles que nous avons nonces et les dfinitions concernant la normalisation des type-entits et des typeassociations. Le cas chant, oprez les modifications ncessaires pour que le modle soit bien form.
Remarque :

pour faciliter la lecture du schma, il est assez courant de ne pas y faire figurer les attributs ou de ne conserver que ceux qui font partie des identifiants. Les attributs cachs doivent alors absolument tre spcifis dans un document part.
2.5.2 Conseils divers Concernant le choix des noms

Pour les type-entits, choisissez un nom commun dcrivant le type-entit (ex : tudiant, Enseignant, Matire). Certain prfrent mettre le nom au pluriel (ex : tudiants, Enseignants, Matires). Restez cependant cohrents, soit tous les noms de type-entit sont au pluriel, soit ils sont tous au singulier. Pour les type-association, choisissez un verbe linfinitif, ventuellement la forme passive ou accompagn dun adverbe (ex : Enseigner, Avoir lieu dans). Pour les attributs, utilisez un nom commun au singulier ventuellement accompagn du nom du type-entit ou du type-association dans lequel il se trouve (ex : nom de client, numro darticle).

Concernant le choix des identifiants des type-entits

vitez les identifiants composs de plusieurs attributs (comme, par exemple, un identifiant form par les attributs nom et prnom dun typeassociation Personne) car :
y y

ils dgradent les performances du SGBD,

mais surtout l unicit suppose par une telle dmarche finit gnralement, tt ou tard, par tre dmentie !
vitez les identifiants susceptibles de changer au cours du temps (comme la plaque dimmatriculation dun vhicule). vitez les identifiants du type chane de caractre. En fait, il est souvent prfrable de choisir un identifiant arbitraire de type entier pour les type-entits. Cet identifiant deviendra une cl primaire dans le schma relationnel et le SGBD lincrmentera automatiquement lors de la cration de nouvelles instances. Linconvnient de cette pratique est quil devient possible de se retrouver avec deux instances du type-entits reprsentant le mme objet mais avec deux numros diffrents. Malgr cette inconvnient, cette politique de lidentifiant reste largement avantageuse dans la pratique et permet, en outre, de saffranchir (en la satisfaisant automatiquement) de la deuxime forme normale (cf. section 2.4.4).
Bien distinguer les concepts de donnes et de traitements

La modlisation conceptuelle de donnes exclut la reprsentation des traitements futurs sur ces donnes. Toutefois, elle ncessite la connaissance de ces traitements pour prvoir les donnes lmentaires indispensables ceux-ci. En consquence, il existe une confusion frquente entre les concepts de donnes et de traitements. Par exemple, la facturation est un traitement qui ncessite de connatre toutes les caractristiques dune commande. Par contre, la facturation ne se traduit ni par un type -entit, ni par un typeassociation dans le schma entits-associations.

3.1 Introduction au modle relationnel


3.1.1 Prsentation

Le modle relationnel a dj t introduit dans la section 1.1.2. Dans ce modle, les donnes sont reprsentes par des tables, sans prjuger de la faon dont les informations sont stockes dans la machine. Les tables constituent

donc la structure logique1 du modle relationnel. Au niveau physique, le systme est libre dutiliser nimporte quelle technique de stockage (fichiers squentiels, indexage, adressage dispers, sries de pointeurs, compression, ) ds lors quil est possible de relier ces structures des tables au niveau logique. Les tables ne reprsentent donc quune abstraction de lenregistrement physique des donnes en mmoire. Le succs du modle relationnel auprs des chercheurs, concepteurs et utilisateurs est d la puissance et la simplicit de ses concepts. En outre, contrairement certains autres modles, il repose sur des bases thoriques solides, notamment la thorie des ensembles et la logique des prdicats du premier ordre. Les objectifs du modle relationnel sont :
y y y y y y

proposer des schmas de donnes faciles utiliser ; amliorer l indpendance logique et physique (cf. section 1.2.2) ; mettre la disposition des utilisateurs des langages de haut niveau ; optimiser les accs la base de donnes ; amliorer l intgrit et la confidentialit ; fournir une approche mthodologique dans la construction des schmas.

De faon informelle, on peut dfinir le modle relationnel de la manire suivante :


y

les donnes sont organises sous forme de tables deux dimensions, encore appeles relations, dont les lignes sont appeles n -uplet ou tuple en anglais ; les donnes sont manipules par des oprateurs de l algbre relationnelle ; l tat cohrent de la base est dfini par un ensemble de contraintes d intgrit.

y y

Au modle relationnel est associe a la thorie de la normalisation des relations qui permet de se dbarrasser des incohrences au moment de la conception dune base de donnes relationnelle.
3.1.2 lments du modle relationnel

Dfinition 1 -attribut- Un attribut est un identificateur (un nom) dcrivant une information stocke dans une base.
Exemples dattribut : lge dune personne, le nom dune personne, le numro de scurit sociale.

Dfinition 2 -Domaine- Le domaine d un attribut est l ensemble, fini ou infini, de ses valeurs possibles.
Par exemple, lattribut numro de scurit sociale a pour domaine lensemble des combinaisons de quinze chiffres et nom a pour domaine lensemble des combinaisons de lettres (une combinaison comme cette dernire est gnralement appele chane de caractres ou, plus simplement, chane).

Dfinition 3 -relation- Une relation est un sous-ensemble du produit cartsien de n domaines d attributs (n > 0).
Une relation est reprsente sous la forme dun tableau deux dimensions dans lequel les n attributs correspondent aux titres des n colonnes.

Dfinition 4 -schma de relation- Un schma de relation prcise le nom de la relation ainsi que la liste des attributs avec leurs domaines.
Le tableau 3.1 montre un exemple de relation et prcise son schma.

N Scu

Nom

Prnom

354338532195874 Durand Caroline 345353545435811 Dubois Jacques 173354684513546 Dupont Lisa 973564213535435 Dubois Rose-Marie Tableau 3.1: Exemple de relation de schma Personne(N scu : Entier, Nom : Chane, Prnom : Chane)

Dfinition 5

-degr- Le degr d une relation est son nombre d attributs.

Dfinition 6 -occurrence ou n-uplets ou tuples- Une occurrence, ou n-uplets, ou tuples, est un lment de l ensemble figur par une relation. Autrement dit, une occurrence est une ligne du tableau qui reprsen te la relation. Dfinition 7 -cardinalit- La cardinalit d une relation est son nombre d occurrences.

Dfinition 8 -cl candidate- Une cl candidate d une relation est un ensemble minimal des attributs de la relation dont les valeurs identifient coup sr une occurrence.
La valeur dune cl candidate est donc distincte pour toutes les tuples de la relation. La notion de cl candidate est essentielle dans le modle relationnel.

Rgle 9 Toute relation a au moins une cl candidate et peut en avoir plusieurs.


Ainsi, il ne peut jamais y avoir deux tuples identiques au sein dune relation. Les cls candidates dune relation nont pas forcment le mme nombre dattributs. Une cl candidate peut tre forme dun attribut arbitraire, utilis cette seule fin.

Dfinition 10 -cl primaire- La cl primaire d une relation est une de ses cls candidates. Pour signaler la cl primaire, ses attributs sont gnralement souligns. Dfinition 11 -cl trangre- Une cl trangre dans une relation est forme d un ou plusieurs attributs qui constituent une cl primaire dans une autre relation. Dfinition 12 -schma relationnel- Un schma relationnel est constitu par l ensemble des schmas de relation. Dfinition 13 -base de donnes relationnelle- Une base de donnes relationnelle est constitue par l ensemble des n -uplets des diffrentes relations du schma relationnel.
3.1.3 Passage du modle entits-associations au modle relationnel Rgles de passage

Pour traduire un schma du modle entits-associations vers le modle relationnel, on peut appliquer les rgles suivantes :

1. La normalisation devrait toujours tre effectue avant le passage au modle relationnel (cf. section 2.4.4). Dans les faits, elle est parfois faite a posteriori (section 3.2), ce qui impose toujours une surcharge de travail importante. 2. Chaque type-entit donne naissance une relation. Chaque attribut de ce type-entit devient un attribut de la relation. L identifiant est conserv en tant que cl de la relation. 3. Chaque type-association dont aucune patte n a pour cardinalit maximale 1 donne naissance une relation. Chaque attribut de ce type -association

devient un attribut de la relation. L identifiant, s il est prcis, est conserv en tant que cl de la relation, sinon cette cl est forme par la concatnation des identifiants des type-entits qui interviennent dans le type-association. 4. Un type-association dont au moins une patte a une cardinalit maximale 1 (ce type-association devrait tre binaire et n a gnralement pas d attribut) ne devient pas une relation. Il dcrit en effet une dpendance fonctionnelle (cf. section 3.2). La relation correspondant au type-entit dont la patte vers le type-association a une cardinalit maximale valant 1, se voit simplement ajouter comme attribut (et donc comme cl trangre) l identifiant de l autre type-entit.
Cas particulier d un type-assocuation du type 1 vers 1

Figure 3.1: Reprise de l exemple de la figure 2.26 d un type-association Etre o toutes les cardinalits maximales sont de 1.

Dans lexemple de la figure 3.1 toutes les cardinalits maximales du typeassociation Etre sont de 1. Lapplication des rgles de passage du modle entitsassociations au modle relationnel nonces ci -dessus nous donnerait :
y y

Citoyen(Num-Citoyen, Num-Candidat, Nom, Prnom, Adresse) Candidat(Num-Candidat), Num-Citoyen, Parti)

Lattribut Num-Candidat dans la relation Citoyen est une cl trangre de la relation Candidat. Lattribut Num-Citoyen dans la relation Candidat est une cl trangre de la relation Citoyen. Le type-association Etre tant du type 1 vers 1, il est entirement matrialis dans la relation Candidat par lattribut Num-Citoyen. Il est donc inutile de la rematrialiser dans la relation Citoyen. Lattribut Num-Candidat dans la relation Citoyen doit donc tre supprim. Dautre part, dans la relation Candidat, lattribut Num-Citoyen, en plus dtre une cl trangre, constitue une cl candidate. On peut donc se passer de la cl Num-Candidat.

Le schma relationnel adquat correspondant au modle entits-associations de la figure 3.1 devient donc :
y y

Citoyen(Num-Citoyen, Nom, Prnom, Adresse) Candidat(Num-Citoyen, Parti)

o Num-Citoyen, en plus dtre la cl de la relation Candidat, est une cl trangre de la relation Citoyen.
Cas particulier d un type-entit sans attribut autre que sa cl

Lorsquun type-entit ne possde pas dattribut en dehors de sa cl, il ne faut pas ncessairement en faire une relation.

Figure 3.2: Ici, le type-entit Date ne doit pas se matrialiser par une relation.

Par exemple, le type-entit Date de la figure 3.2 ne doit pas se traduire par une relation. Le schma relationnel adquat correspondant au modle entitsassociations de la figure 3.2 est donc :
y y y

Exemplaire(Num-Exemplaire, date-achat) Personne(Num-Personne, nom, prnom, adresse) Emprunter(Num-Exemplaire, Num-Personne, Date, date-retour)

Exemple complet

Figure 3.3: Exemple trs simplifi de modlisation entits-associations