Notes de cours 2008 2009
10 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
10 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Chapitre2Lemodèlerelationnel2.1 BasesdedonnéesrelationnellesLe Dr Codd, travaillant dans les laboratoires I.B.M. au cours des années 70, a mis au pointun système nouveau de description des données. Il aura fallu attendre plus de 15 ans avant queles premiers systèmes mettant en application ses théories puissent tourner de manière efficace.Le système de Codd se base sur la notion mathématique de relation. Les bases de donnéesactuelles ne sont donc pas relationnelles parce qu’elles établissent des relations entre les tables(il ne semble pas possible de créer une base de données sans forcément mettre des données enrelation les unes avec les autres), mais parce que les tables SONT des relations.2.1.1 Ensembles,couples,triplets,tuplesetautresanimauxétrangesLa théorie des ensembles, inventée par Peano à la fin du XIXe siècle, a profondémentmarqué l’histoire des mathématiques du XXe siècle. La notion d’ensemble est une primitive etse définit comme une collection d’objets, appelés éléments de l’ensemble. Parmi les propriétésremarquables d’un ensemble figure l’impossibilité qu’un même élément appartienne deux foisau même ensemble.La théorie des relations met en œuvre plusieurs ensembles et utilise les notions de couple,triplet et tuple. Un couple est un ensemble ordonné de deux éléments, cela signifie qu’uncouple comporte deux éléments et que chacun a sa place (le premier membre du couple et lesecond membre du couple). On peut aussi définir des triplets (à trois ...

Informations

Publié par
Nombre de lectures 17
Langue Français

Extrait

Chapitre 2
Le modÈle relationnel
2.1
Bases de donnÉes relationnelles
Le Dr Codd, travaillant dans les laboratoires I.B.M. au cours des annes 70, a mis au point un systme nouveau de description des donnes. Il aura fallu attendre plus de 15 ans avant que les premiers systmes mettant en application ses thories puissent tourner de manire efficace. Le systme de Codd se base sur la notion mathmatique de relation. Les bases de donnes actuelles ne sont donc pas relationnelles parce qu’elles tablissent des relations entre les tables (il ne semble pas possible de crer une base de donnes sans forcment mettre des donnes en relation les unes avec les autres), mais parce que les tables SONT des relations.
2.1.1
Ensembles, couples, triplets, tuples et autres animaux Étranges
La thorie des ensembles, invente par Peano À la fin du XIXe sicle, a profondment marqu l’histoire des mathmatiques du XXe sicle. La notion d’ensembleest une primitive et se dfinit comme une collection d’objets, appelsÉlÉmentsde l’ensemble. Parmi les proprits remarquables d’un ensemble figure l’impossibilit qu’un mme lment appartienne deux fois au mme ensemble. La thorie des relations met en œuvre plusieurs ensembles et utilise les notions de couple, triplet et tuple. Un couple est un ensemble ordonn de deux lments, cela signifie qu’un couple comporte deux lments et que chacun a sa place (le premier membre du couple et le second membre du couple). On peut aussi dfinir des triplets (À trois lments ordonns) et des tuples Ànlments. Leproduit cartÉsiende deux ensembles est l’ensemble de tous les couples qu’il est pos-sible de former en prenant un lment dans le premier ensemble et un lment dans le second ensemble. On voit rapidement que le nombre d’lments d’un produit cartsien est gal au produit des nombres d’lments des deux ensembles. Quand une opration malencontreuse gnre un produit cartsien, on peut facilement bloquer la machine (deux tables de 1000 l-ments ne sont pas rares dans une base de donnes, mais leur produit cartsien possdent un million d’lments, une masse de donnes pnible À grer). Voici un exemple de produit cartsien de deux ensemblesHetF, qui comprend neuf couples (3x3).
H={a, b, c}
F={p, f, d}
(a, p), H×F= (b, p), (c, p),
17
(a, f), (b, f), (c, f),
(a, d),(b, d), (c, d)
18
CHAPITRE 2. LE MODèLE RELATIONNEL
Une relation entre deux ensembles est un sous-ensemble du produit cartsien de deux en-sembles, c’est-À-dire un ensemble form avec des lments choisis dans le produit cartsien. Les relationsR1etR2sont des relations entre les ensemblesHetF.
H={a, b, c}F={p, f, d}   (a, p),(a, f),(a, d),  H×F= (b, p),(b, f),(b, d),     (c, p),(c, f),(c, d)
R1={(a, p),(b, f),(c, d)}
R1H×F
R2={(a, f)}
R2H×F
Le systme formel dfini par la notion de relation est en gnral mis en parallle avec une signification intressante pour les utilisateurs. Ainsi, si l’ensembleHreprsente l’ensemble des hommes dont il est question dans l’ditorial de la revuePoints de vue(Albert, Baudouin et Charles) etFl’ensemble des femmes mentionnes dans le mme article (Paola, Fabiola et Diana), les relations relationsR1etR2pourraient signifier respectivement « a pous » et « est beau-frre de ». Notons que l’interprtation est impossible À dterminer sur base de l’numration, ce qui signifie clairement que l’ordinateur qui manipule des relations n’aura jamais accs À lasignificationde ces relations. Nous avons examin des relations entre deux ensembles, qui sont constitues par des en-sembles de couples, mais nous pouvons gnraliser les relations À des ensembles de triplets constitus avec les lments de 3 ensembles, ou des ensembles detuplesconstitus avec des lments pris dansnensembles.
2.1.2
Des relations aux tables
En pratique, on reprsente les relations au moyen de tables.
H={a, b, c} F={p, f, d} R1={(a, p),(b, f),(c, d)}
Hommes Albert Baudouin Charles
Femmes Paola Fabiola Diana
Les ensembles participant À la relation deviennent desattributsoucolonnes, les tuples de-viennent deslignes. Chacun sait que les tables permettent de reprsenter des donnes, les en-sembles intervenant dans la relation tant la plupart du temps implicites. Si on veut reprsenter une srie de personnes, on va prendre l’ensemble des prnoms possibles, des noms possibles, des adresses possibles et des dates possibles. Le produit cartsien de ces quatre ensembles est gigantesque, mais on va y slectionner un sous-ensemble, une relation, qui se compose de tuples qui correspondent aux personnes qui nous intressent (membres d’un club, clients d’une entreprise ou tudiants d’une cole).
PrÉnom Jean Pierre Jasmine
Nom DUPONT DUMONT SAIDA
Adresse rue de l’Èglise rue de la gare rue des sapins
Date de naissance 1/5/1984 6/8/1944 4/8/1965
2.2. MODéLISATION RELATIONNELLE
19
2.1.3 AlgÈbre relationnelle Codd a repris des oprations mathmatiques et les a appliques À sa thorie des relations. Nous les verrons en dtail dans les prochains chapitres. Toutes ces oprations prsentent une caractristique commune : elles produisent toujours une nouvelle relation, qui peut servir de base À une autre opration et ainsi de suite... Opration Description UnionL’union consiste À prendre tous les tuples prsents dans deux relations et À les runir dans une nouvelle relation. Les doublons sont automatique-ment limins puisqu’un lment ne peut figurer deux fois dans un mme ensemble. IntersectionL’intersection ne gardera de deux relations que les tuples qui sont dans les deux relations (cet ensemble comportera prcisment les doublons qui seraient limins dans l’opration d’union). DiffÉrenceLa diffrence consiste À retirer d’une relation les tuples qui sont prsents dans une autre relation. La diffrence entre deux relations n’est pas sy-mtrique. ProjectionLa projection consiste À liminer un ou plusieurs attributs d’une relation (les colonnes d’une table). Nous verrons qu’un problme d’limination des doublons survient ici galement. RestrictionUne restriction ou slection ne garde que certains tuples d’une relation (lignes d’une table), en fonction d’un critre de choix. JointureLa jointure opre une jonction entre des relations en combinant des tuples de la premire avec des tuples de la seconde pour obtenir des tuples ayant plus d’lments que ceux des tables originales. La jointure se ralise sur base de critres prcis et s’accompagne souvent d’une projection pour liminer certains attributs jugs inutiles. Il y a en fait plusieurs types de jointures, un cas dgnr tant le produit cartsien qui combine tous les tuples d’une relation avec tous les tuples de l’autre. Ajoutons pour terminer la notion declÉ primairequi est un sous-ensemble d’attributs qui composent des tuples uniques. Comme tous les tuples de la relation sont par dfinition dif-frents, au pire, la cl primaire sera constitue de tous les attributs. Dans la plupart des cas, on trouve quand mme une liste d’attributs de dimension raisonnable (une, deux ou trois co-lonnes) ou on cre un attribut arbitrairement en lui donnant une valeur diffrente pour chaque tuple (c’est l’origine des numros nationaux et des codes clients). La connaissance de la cl primaire permet d’identifier facilement chaque ligne de la relation. Ainsi, chaque donne ato-mique dans une base de donnes peut tre dfinie et atteinte au moyen de trois paramtres : 1. le nom de la table 2. le nom de l’attribut ou de la colonne 3. la valeur de la cl primaire
2.2
ModÉlisation relationnelle
Nous avons vu dans le chapitre prcdent plusieurs manires de grer une petite facturation. La solution relationnelle va consister À essayer de crer une relation qui reprendrait les donnes pertinentes pour chaque facture. Notons que nous voudrions pouvoir profiter de notre base de donnes pour examiner nos donnes autrement qu’en partant des clients, par exemple, en effectuant des statistiques sur les ventes d’articles.
20
2.2.1 Mise en tableau Voici les donnes pour quatre factures :
CHAPITRE 2. LE MODèLE RELATIONNEL
Ce magnifique tableau ne constitue videmment pas une relation. Nous pouvons le consi-drer de deux manires : – soit la partie consacre aux articles prsente plusieurs valeurs simultanes (dans le cas de la premire facture, le marteau et la cl de 10, avec leur prix et la quantit achete) – soit on considre qu’il y a plusieurs lignes par facture, comme le suggre la mise en 1 page, et nos tuples potentiels ne sont pas complets . Nous allons privilgier la seconde hypothse et complter les tuples avec les valeurs qui manquent.
2.2.2
Mise en relation
Il serait possible de faire transformer ce tableau en relation, mais on constate encore plu-sieurs dfauts : – il n’existe pas de cl primaire convaincante, c’est-À-dire, un ensemble de tuples permet-tant d’identifier chaque ligne de manire unique – on peut raisonnablement douter de la pertinence des ensembles servant À dfinir les valeurs possibles pour les colonnes Client et Adresse. Pour parler savamment, on dira que les donnes ne sont pas atomiques. – le montant devrait pouvoir tre calcul automatiquement sur base des autres donnes. – enfin, et surtout, on remarque que de nombreuses donnes se rptent : l’adresse des clients, le prix des outils, la date des factures.
1 A titre d’anecdote, l’illustration propose dans cette page a t ralise À l’aide d’Oracle et il m’a fallu ruser pour afficher ces tuples incomplets et surtout les garder dans le bon ordre. Preuve que cette reprsentation n’est vraiment pas relationnelle.
2.2. MODéLISATION RELATIONNELLE
21
Nous allons tenter de remdier À ces diffrents problmes. Le but tant d’arriver À une repr-sentation des donnes sans redondances et avec des donnes atomiques.
2.2.3 PremiÈre forme normale Une relation est normalise si – aucun attribut n’est reprsent plusieurs fois et – aucun attribut n’est dcomposable en plusieurs (n’est lui mme une relation).
Pour parvenir À cette premire forme normale, nous allons devoir nous occuper du second critre (le premier a t corrig dans la sous-section prcdente). Nous allons clater les don-nes du client en un champ nom et un champ prnom. Notons que cette sparation peut se faire facilement gráce À notre connaissance de l’onomastique belge. Ce serait plus compliqu si nous avions affaire À des noms trangers. Ce qui est certain, c’est qu’aucun ordinateur ne sera capable de raliser cette opration spontanment. Nous procdons de mme pour l’adresse.
Il reste À trouver la cl primaire. Aprs un examen attentif, nous constatons que le couple form par le numro de la facture et la dsignation de l’article est le seul À tre unique (c’est vrai aussi actuellement du coupleId_Facture-PrixUnitaire, mais on conÇoit bien que deux articles pourraient avoir le mme prix). Notre ralit est profondment influence par l’informatique. Nous savons que les entre-prises utilisent des codes pour dsigner leurs articles et il n’est pas rare d’avoir des codes clients. Nous verrons que cela nous sera bien utile par la suite. Nous allons donc introduire ces deux notions (et au passage masquer les champsPrenom,Numero,CodePostaletLocalitequi n’apportent rien À la dmonstration).
La cl primaireId_Facture-Id_Articleest encore plus sÛre que celle que nous avions auparavant.
22
CHAPITRE 2. LE MODèLE RELATIONNEL
Le rsultat obtenu est insatisfaisant À bien des gards : – une mme donne est rpte plusieurs fois (par exemple, l’adresse de Schyns ou le prix du marteau) ; – si on complte la table, il est parfaitement possible d’encoder une nouvelle facture pour Comhaire en lui attribuant une adresse diffrente ; – si on supprime la facture d’un nouveau client, on risque de perdre les coordonnes de ce client.
2.2.4 DeuxiÈme forme normale Une relation est en deuxime forme normale si – elle est en premire forme normale et – toutes les dpendances issues de la cl sont lmentaires (c’est-À-dire qu’elles ont pour source la cl entire et non un de ses attributs).
On parle dedÉpendance fonctionnelleentre deux attributsAetBd’une relation lorsque pour tous les couples (Ai,Bj), obtenus par une projection de la relation sur les deux attributsA etB, on peut faire correspondre ncessairement À un mme lmentAiun mme lmentBj. L’attribut du premier lment s’appelle la source de la fonction, l’attribut du second le but. Dans la relation en premire forme normale, chaque fois que nous avons l’identifiant d’ar-ticle 1, la valeur deDÉsignationest ncessairement ’Marteau’. Examinons la relation. La cl complexe forme deid_FactureetidArticlespcifie une seule valeur de chacun des autres attributs. Mais on trouve d’autres dpendances fonctionnelles : – entre le numro de facture et soit la date, soit le numro du client, soit son nom, soit son adresse – entre le numro de l’article et soit sa dsignation, soit son prix.
Nous allons devoir les liminer. Pour liminer les dpendances fonctionnelles dcouvertes dans notre exemple, nous allons scinder notre relation initiale en deux autres relations. Nous allons liminer les dpendances fonctionnelles entre l’attributid_Factureet chacun des attributs de la relation en les regroupant
2.2. MODéLISATION RELATIONNELLE
23
dans une autre relation. La premire relation obtenue possde une cl primaire simple. Cette particularit fait qu’elle est automatiquement en deuxime forme normale.
La seconde relation ne conservera que les attributs qui ne dpendaient pas deid_Facture.
Ce qu’on pourrait appeler la table des commandes prsente encore des dpendances fonc-tionnelles entre une partie de la cl (id_Article) et des attributs qui ne sont pas membres de la cl. Il devient ncessaire de la scinder À nouveau en deux nouvelles relations.
24
2.2.5
TroisiÈme forme normale
CHAPITRE 2. LE MODèLE RELATIONNEL
Une relation est en troisime forme normale si : – elle est en deuxime forme normale – toutes les dpendances fonctionnelles issues de la cl sont directes
Toutes les dpendances n’ont pas encore t puises par notre normalisation. En effet, dans la relation des factures, on peut dire que le nom du client (ou son adresse) dpend de la cl primaire. Mais cette dpendance n’est pas directe. Le nom du client dpend du numro qui est lui-mme dpendant de la cl primaire. On parle alors de dpendance transitive. Cette dpendance entraïne À nouveau des risques d’incohrence. La solution consiste de nouveau À scinder la table.
2.2. MODéLISATION RELATIONNELLE
2.2.6
Reconstruction des donnÉes originales
25
A quoi peut bien servir de disposer d’une base de donnes, si nous voyons nos donnes se disperser dans des tables spares ? Il existe heureusement des oprations d’algbre rela-tionnelle qui permettent de recrer les relations originales, dont l’existence devient virtuelle, mais qu’on peut parfaitement exploiter pour afficher les donnes. Lorsque les applications doivent manipuler frquemment certaines de ces relations, il est possible d’en enregistrer les commandes dans unevue, qu’on peut employer sans connaïtre les commandes complexes per-mettant les jointures de tables.
SELECT * FROMFactures INNER JOINClientsUSING(id_Client) INNER JOINCommandesUSING(id_Facture) INNER JOINArticlesUSING(id_Article)
26
CHAPITRE 2. LE MODèLE RELATIONNEL
2.2.7 Les avantages de l’analyse Le processus de cration des tables que nous venons de dcrire insiste fortement sur les principes qui sous-tendent la dcomposition en relations (tables). En pratique, une telle d-marche risquerait de mener À des difficults insurmontables, ds qu’on dpasserait quatre ou cinq tables. Heureusement, il existe d’autres techniques qui permettent d’obtenir des schmas de base de donnes normaliss. Plusieurs mthodes d’analyse, dont la mthode Merise, pro-posent un diagramme entits/associations qui, bien construit, peut produire un schma de base de donnes normaliss de manire quasi automatique. Dans notre problme, nous allons distinguer trois entits, qui correspondent À des groupes d’objets du monde rel : les factures, les clients et les articles. Il est possible d’tablir deux associations entre ces entits : payer et commander. Il est capital À ce niveau de spcifier les « cardinalits » minimales et maximales des assocations : – une facture n’est paye que par un seul client (cardinalit 0,1) – un client peut se voir associer une ou plusieurs factures (cardinalit 1,N) – une facture peut se lier avec un ou plusieurs articles (cardinalit 1,N) – un article peut figurer dans 0, 1 ou plusieurs factures (cardinalit 0,N)
Le diagramme ci-dessus a t ralis avec le programme WinDesign. Un simple appui sur la touche Control-G nous permet d’obtenir le schma de la base de donnes et en appuyant À nouveau sur la mme touche, nous obtiendrions le script dans le dialecte SQL de notre choix.
Nous remarquons que ce schma est parfaitement conforme À celui que nous avons obtenu À l’aide de la normalisation.
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents