Les Bases de Donn©es R .Les Bases de Donn©es Relationnelles : Normalisation et SQL Email : odahan@

  • View
    214

  • Download
    0

Embed Size (px)

Text of Les Bases de Donn©es R .Les Bases de Donn©es Relationnelles : Normalisation et SQL Email :...

  • Les bases de donnes relationnelles, normalisation et SQL Page 1

    Confrence Borland 4/5 nov 97 - Confrence DL210 + Sept 98 Version 20/07/2000 02:51 O.Dahan

    Les Bases de Donnes Relationnelles : Normalisation et SQL Email : odahan@cybercable.fr

    Web : http://perso.cybercable.fr/stargate/

    1. Introduction Depuis sa premire version 16 bits, jusqu' la version 32 bits actuelle (V4), Delphi est livr avec un moteur de base de donnes de type Relationnel : le BDE1. Les grandes fonctions de ce moteur sont accessibles via des composants Delphi, ce qui en cache la sophistication mais aussi le fonctionnement intime. La banalisation bnfique des composants fait que, visuellement depuis la palette, un TTable occupe une place ni plus ni moins importante quun TLabel. Pourtant lun est une porte dentre vers le BDE et lautre nest quun bout de texte affich lcran. Les SGBD-R, avec leur gnralisation en microinformatique, marquent une tape essentielle de lvolution du dveloppement dapplications pour PC, il est donc important, afin de concevoir des logiciels performants, de connatre les principes et concepts sous-jacents de cette technologie. Le but du prsent article est de rappeler ces principes et concepts. Il se termine par une prsentation du SQL2 au travers de Delphi.

    2. SGBD-R

    2.1 Le BDE, bref historique Un moteur de base de donnes relationnel est avant tout un logiciel comme un autre. Sa fonction principale est de stocker de linformation et de la restituer en tablissant un dialogue avec lapplication cliente. Ce dialogue repose sur un langage, gnralement SQL, dont nous verrons plus loin la nature. Le BDE est un SGBD-R. Il a t originellement conu pour grer le format de donnes Paradox3. A ce titre il privilgie, en interne, un autre langage dinterrogation qui est le QBE4. Dans ses premires versions lanctre du BDE tait un logiciel DOS dit rsidant avec lequel le dveloppeur dialoguait par des Interruptions5. Aprs le rachat de dBase, Borland a entrepris de fusionner les mthodes dexploitation des donnes de ce produit et de celles de Paradox. Puis, au fil des volutions, le BDE a pris corps, notamment en devenant une interface de programmation unifie donnant accs dautres moteurs de base de donnes. Le support du SQL local a aussi t ajout, en plus du QBE. Cest ainsi que le BDE sest aussi ouvert aux donnes gres via ODBC de Microsoft et aux principaux grands SGBD-R du march via des pilotes spcialiss et optimiss que sont les SQL Links. Aujourdhui, sous Windows, le BDE se prsente sous la forme dune srie de DLL proposant une interface de programmation (API6) qui a t encapsule dans Delphi sous la forme de composants7.

    2.2 Concepts fondateurs des SGBD-R

    2.2.1 Dfinitions

    Les SGBD-R utilisent une terminologie propre dont voici un extrait : Champ Plus petit lment inscable dinformation. Il peut tre aussi petit quun Bit

    ou aussi grand quune image. Le contenu dun champ ne peut tre dcoup en sous-units plus petites sans perte de sens de linformation. Un champ

    1 BDE : Borland Database Engine, Moteur de Base de Donnes Borland 2 SQL : Strutured Query Language, Langage dInterrogation Structur 3 Originellement cr par ANSA Software puis achet par Borland, aujourdhui vendu par Corell sous Licence Borland. 4 QBE : Query By Example, Requte par lexemple. 5 Technique de programmation utilisant des adresses mmoire, points dentre, permettant un dialogue entre une application cliente (appelante) et une librairie de fonction (serveur). Le DOS se programmait de cette faon ainsi que tous les modules chargs en mmoire appels rsidants . 6 API : Application Program Interface, interface de programmation. 7 Composant : Objet rpondant une syntaxe particulire lui permettant dtre ajout la palette de Delphi.

  • Les bases de donnes relationnelles, normalisation et SQL Page 2

    Confrence Borland 4/5 nov 97 - Confrence DL210 + Sept 98 Version 20/07/2000 02:51 O.Dahan

    ne peut avoir quune seule signification constante dans le temps. Enregistrement Collection de champs dont lunit repose sur une ou plusieurs relations. Si

    on imagine un fichier de donnes sous la forme dun tableau, les champs sont les colonnes, les enregistrements les lignes.

    Table Collection denregistrements ayant la mme structure (mme dcoupage de champs). Souvent confondu avec un fichier, le concept de table est pourtant radicalement diffrent notamment par le fait quil peut fort bien ny avoir aucun fichier reprsentant physiquement les donnes dune table. De plus, le concept de table impose une structure (au moins logique) alors quun fichier peut contenir nimporte quoi, stock nimporte comment.

    Base de donnes Collection de tables. Une base de donnes peut tre aussi bien un sous-rpertoire sur un disque (comme pour dBase ou Paradox) quune seule et mme entit gre par un Serveur local ou distant (Interbase, Oracle...).

    Cl primaire Un champ ou un ensemble de champs permettant didentifier sans ambigut tout enregistrement dune table. Par essence les cls primaires sont uniques (elles nacceptent pas les doublons).

    Cl trangre Un champ ou un ensemble de champs lintrieur dune table qui se trouvent tre la cl primaire dune autre table.

    Cl secondaire Une table peu possder, en plus de sa cl primaire, dautres cls dites secondaires. Elles sont concrtises par des index (secondaires eux aussi). Les cls secondaires se caractrisent par le fait que pour tre cls elles sont uniques ( la diffrence dun simple champ dindex secondaire). Les cls secondaires ont un intrt pratique mais ne font pas directement partie de la thorie relationnelle.

    2.2.2 Le Relationnel

    La caractristique la plus marquante des SGBD-R ... cest le R ... En effet, lvolution majeure se trouve justement dans la capacit de ces systmes grer des relations entre des entits et de maintenir lintgrit de ces relations. Dans une gestion de fichier classique, de type squentiel index, cest le dveloppeur qui soccupe de tout. Lorsquil veut interroger les donnes, il doit crire une boucle pour balayer un ou plusieurs fichiers, parfois par une indirection depuis un ou plusieurs index, afin de trouver les donnes intressantes et les fournir dans un ordre prcis. Une telle programmation est incontournable puisque dans un tel cas il nexiste aucune intelligence sur laquelle le dveloppeur puisse se reposer pour le soulager. Les SGBD-R sont, comme nous le disions plus haut, des logiciels part entire, ds lors ils proposent une certaine puissance, une intelligence qui prend en charge certains aspects essentiels de la gestion des donnes. De plus, un SGBD-R connat les donnes quil gre : leur structure, les relations entre les champs et les tables. De fait, il est capable dautomatiser toutes les tches de bas niveau (maintenir les index, grer les conflits daccs, autoriser les annulations de modification, etc) mais aussi dassurer des fonctions de plus haut niveau comme la mise jour par lot denregistrements rpondant des critres ventuellement complexes ou ltablissements de rsultats synthtiques utilisant des calculs statistiques et des regroupements (par exemple le CA total et moyen par famille darticles et par reprsentant sur une priode donne). Un SGBD-R ne devine rien, il exploite les informations que le dveloppeur lui a donnes. Cest lors de la conception mme de la base de donnes que les relations entre les entits seront mises en vidence. La modlisation dune base de donnes relationnel passe par une phase de conception durant laquelle on peut utiliser des outils CASE qui en simplifient la mise en uvre, comme, par exemple, AMC Designor ou Win-Design.

    2.2.3 Les types de relations

    Dans un modle relationnel, on distingue plusieurs types de relations entre les entits. Lors du passage du modle conceptuel8 (logique) au modle Physique9 ces relations seront reprsentes soit par

    8 Le modle conceptuel reprsente toutes les relations existantes entre les entits. Par exemple, il peut y avoir un entit Client et une entit Commande entre lesquelles il existe une relation Un-vers-N.

  • Les bases de donnes relationnelles, normalisation et SQL Page 3

    Confrence Borland 4/5 nov 97 - Confrence DL210 + Sept 98 Version 20/07/2000 02:51 O.Dahan

    linsertion de cl trangres dans certaines tables, soit par la cration de nouvelles tables. Voici les relations utilises en pratique :

    2.2.3.1 Relation Un-vers-Un Une relation Un-vers-Un existe quand pour chaque cl primaire il y a zro ou une valeur correspondante pour un autre champ ou un autre enregistrement. Lorsque la relation concerne des champs, ceux-ci sont gnralement placs dans une mme table, mais cela nest pas obligatoire. Lorsque la relation concerne des entits (des enregistrements dans le modle physique) elle peut sentendre entre deux entits ou bien dune entit vers elle-mme. Ce dernier cas permet la reprsentation de hirarchies10 (par exemple lentit employ peut avoir une relation vers une autre entit employ avec la dfinition a pour chef... ).

    2.2.3.2 Relation Un-vers-N Une relation Un-vers-N (un vers plusieurs) existe quand, pour chaque enregistrement dans une table il existe zro ou plusieurs enregistrements lis dans une autre table (exemple : un client a plusieurs commandes).

    2.2.3.3 Relation N-vers-Un Une telle relation existe lorsque plusieurs enregistrements dune mme table font rfrence de faon non ambigu un seul enregistrement dune autre table. On appelle parfois cette relation une relation Lookup ou table de rfrence car elle reprsente une rfrence vers la cl primaire dune autre table. Une relation N-vers-Un impliquant des cls trangres peut gnralement tre renverse (en Un-vers-N), alors quune relation Un-vers-N impliquant que des cls primaires (liens identifiants) ne peut pas tre renverse en N-vers-Un.

    2.2.3.4 Relation