sgbdr libres

Upload: viot-camille

Post on 19-Jul-2015

325 views

Category:

Documents


0 download

TRANSCRIPT

CONSERVATOIRE NATIONAL DES ARTS ET MTIERS CENTRE REGIONAL DE MONTPELLIER

Examen probatoire du cycle ingnieur C.N.A.M. Filire : Systme de conduite Prsent par Christophe CARPENA

Comparaison de SGBD libres : langage, triggers, administrationSoutenu en Mai 2006

JURYPrsident : Membres : M. Ranchin M. Marc Nanard (Professeur principal) Mme Maguelonne Teisseire

Remerciements

Je tiens remercier le CNAM ainsi que lensemble des professeurs pour les connaissances fort utiles quils mont apportes et je regrette de navoir pas pu devenir un spcialiste de tous ces domaines forts intressants.

Un remerciement particulier tous mes amis Jj, Ba, Grim et Ludivine, Vincent et Cathy (Pardon ceux que je nai pas cit) qui mont support dans tous les sens du terme. Je ne vous parlerai plus de cours. Du moins, plus aussi souvent

Le dernier remerciement, mais non le moindre, est pour ma douce toile du nord Ocane, sans qui je nen serais pas ou jen suis aujourdhui.

Comparaison des SGBD Libres.doc

2/49

CNAM 2005-2006

Table des matires

Introduction _______________________________________________________________ 4 1 2 Caractristiques d'un SGBD ______________________________________________ 5 Les SGBD libres disponibles ______________________________________________ 72.1 2.2 2.3 Les SGBD les plus aboutis _________________________________________________ 7 Les SGBD en progression__________________________________________________ 9 Synthse et Choix _______________________________________________________ 12 Normes et dialecte SQL __________________________________________________ 14 SQL-92, les diffrents niveaux _____________________________________________ 16 SQL-99 ________________________________________________________________ 22 Quest-ce quun dclencheur ______________________________________________ 27 Langage SQL/PSM ______________________________________________________ 28 Support de SQL/PSM ____________________________________________________ 31 Interfaces avec les langages de programmation. ______________________________ 31 Protection des donnes ___________________________________________________ 34 Optimisation ___________________________________________________________ 39 Gestion des sauvegardes / restaurations _____________________________________ 41 Tableau de synthse _____________________________________________________ 42

3

Le langage des SGBD : SQL _____________________________________________ 143.1 3.2 3.3

4

Les dclencheurs ______________________________________________________ 274.1 4.2 4.3 4.4

5

Administration ________________________________________________________ 345.1 5.2 5.3 5.4

Conclusion _______________________________________________________________ 43 Bibliographie _____________________________________________________________ 44 Glossaire _________________________________________________________________ 46

Comparaison des SGBD Libres.doc

3/49

CNAM 2005-2006

Introduction Range ta chambre ! Quel enfant n'a pas entendu de ses parents cette phrase synonyme de corve venir. En ce qui concerne le rangement, linformatique reprsente un avantage certain : il se fait de manire automatise. Que ce soit le logiciel de dfragmentation qui range les bouts de fichiers en les dplaant sur le disque, ou les bases de donnes qui rangent les informations afin de pouvoir aisment les retrouver, ces tches sexcutent de faon automatique, sans intervention humaine proprement parler. L'volution de l'informatique a toujours t rapide et impressionnante. Le domaine des bases de donnes ne droge pas la rgle. Au commencement, les fichiers plat ont stock les informations, sans structure. Puis sont apparus, chronologiquement parlant, les bases de donnes hirarchiques prsentant une structure arborescente o chaque enregistrement n'a qu'un seul possesseur, les bases de donnes rseaux, lesquelles ont t en mesure de lever de nombreuses difficults du modle prcdent, les bases de donnes relationnelles utilisant des principes de lalgbre ensembliste et les bases de donnes orientes objet dont les informations sont reprsentes sous forme d'objets. Chaque volution a lev nombre de limitations de la gnration prcdente et a ajout toujours plus de fonctionnalits. Lvolution des technologies des bases de donnes tait ncessaire dans notre socit de linformation. En effet, il nest pas rare davoir, aujourdhui, des bases de donnes contenant des gigaoctets d'informations. Certaines atteignent mme plusieurs traoctets alors que le texte du roman Les trois Mousquetaires ne reprsente quenviron 1,35 mgaoctets. Les bases de donnes peuvent donc stocker lquivalent de plusieurs millions de livres. On pourrait se demander comment retrouver ces informations. Au vu de la taille et de leur nombre, il semblerait facile une information de se perdre, une erreur de se glisser, une personne malintentionne de la modifier son avantage. La maintenance, le bon fonctionnement et la scurisation dun tel systme sont dune grande difficult. Les systmes de gestion de base de donnes doivent donc offrir des facilits pour l'excution de ces tches. Nous verrons au cours de cet expos comment les systmes de gestion de base de donnes (SGBD) libres rpondent ces problmatiques. Dans un premier temps, nous rpertorierons les caractristiques principales dun SGBD et quels sont les SGBD libres disponibles rpondant ces critres. Ensuite nous verrons comment les interroger, voir sils parlent tous le mme langage, et donc, voir si lon peut sadresser eux de la mme faon. Dans un deuxime temps, nous analyserons comment, grce aux dclencheurs (Trigger), nous tenterons de maintenir lintgrit dune base et en faciliter ladministration. Pour terminer, nous aborderons les lments considrer pour administrer une base (par exemple la sauvegarde des informations ou encore, la gestion et la restriction des accs). Comment empcher un pirate dentrer ? Comparaison des SGBD Libres.doc 4/49 CNAM 2005-2006

1 Caractristiques d'un SGBDLa fonction premire d'un Systme de Gestion de Base de Donnes (SGBD) est d'tre un outil de stockage d'informations offrant des fonctions simples de manipulation de grands volumes de donnes. Lun des avantages de ces SGBD est que l'interrogation de ces informations seffectue dune manire indpendante de l'architecture physique de stockage. Les SGBD garantissent la cohrence de ces donnes en cas de mise jour simultane par plusieurs utilisateurs. Les transactions assurent l'intgrit des donnes en cas d'oprations incorrectes ralises par un programme ou un utilisateur. Les donnes stockes dans un SGBD sont dites persistantes, leur fiabilit et leur rcupration en cas de panne matrielle ou logicielle doit tre toujours possible. De plus, le SGBD doit assurer la confidentialit des donnes en cas d'accs malveillant ou accidentel. Les fonctionnalits essentielles d'un SGBD sont donc les suivantes : Le systme doit assurer la persistance des donnes. Lorsquune transaction (ensemble de requtes) est valide, les donnes doivent tre persistantes, c'est dire qu'elles doivent tre enregistres de manire permanente. Le systme doit assurer la fiabilit des donnes. Une transaction doit tre atomique, autrement dit, soit excute compltement, soit pas du tout. Des mcanismes de reprise sur panne doivent tre prsents. La panne d'une mmoire ou d'un disque ne doit pas endommager les donnes. Le systme doit offrir la possibilit plusieurs utilisateurs de manipuler les donnes concurremment. Il doit au minimum assurer la srialisation des transactions. La srialisation des transactions est l'excution en parallle dun ensemble de transactions, produisant le mme rsultat que si elles taient excutes en srie. Le systme doit offrir la possibilit l'utilisateur d'interroger la base de faon simple. Le langage de requte SQL a t cre dans le but d'interroger, de manire relativement simple, les bases de donnes. Il peut tout de mme tre remplac, pour le nophyte, par une interface graphique.

Comparaison des SGBD Libres.doc

5/49

CNAM 2005-2006

Le systme doit assurer la confidentialit des donnes. La notion d'utilisateur et de droits associs (droits de lecture, d'criture et d'excution sur les objets de la base) est indispensable afin assurer cette confidentialit. Le systme doit galement prvoir des mcanismes de cession et de retrait de droits. Le systme doit pouvoir efficacement grer les demandes Les performances doivent tre suffisamment bonnes. Pour cela, le SGBD doit utiliser des techniques d'indexation, d'optimisation de requtes et de gestion de caches. De plus, il est essentiel que le SGBD puisse facilement voluer et sadapter laugmentation du nombre de requtes et celle de lespace de stockage, cette augmentation se produisant immanquablement au fil des ans.

Aprs avoir recens les principes gnraux des bases de donnes, passons maintenant en revue les SGBD libres existants, afin de voir s'ils rpondent tous l'ensemble de ces critres.

Comparaison des SGBD Libres.doc

6/49

CNAM 2005-2006

2 Les SGBD libres disponiblesLes SGBD se singularisent dans le monde du logiciel libre. En effet, les logiciels libres sont rarement concurrents. Il existe des logiciels libres aux fonctionnalits proches mais le public vis est en gnral diffrent. Les SGBD libres font donc un peu office dexception en proposant plusieurs logiciels proches en terme de fonctionnalits et visant un public similaire. Nous allons, dans un premier temps, examiner les SGBD libres principalement du point de vue des systmes sur lesquels ils peuvent tre utiliss et surtout de la taille de base vise par les dveloppeurs du SGBD afin de voir sils satisfont tous la caractristique d'volutivit que nous avons dfinie comme essentielle.

2.1 Les SGBD les plus aboutis

2.1.1 MySQL (http://www.mysql.com/)MySQL, dont la dernire version stable sortie l'heure o ces lignes sont crites est la version 5, est certainement la base de donnes libre la plus connue. Elle est en effet la plus prsente dans les entreprises en terme de part de march. Offrant l'avantage d'tre facilement configurable pour les petites bases (moins de cinq minutes pour installer un serveur), elle supporte l'utilisation de grosses bases contenant des millions de lignes. La gestion des grappes1 (clusters) est prsente mais encore fortement limite (l'ensemble du contenu des tables doit tre prsent en mmoire vive). Cette architecture (toutes les donnes en mmoire vive) offre certes un temps de rponse minimum, mais impose une forte contrainte. La version 5.1, rduira cette contrainte en imposant uniquement les index en mmoire centrale. MySQL possde plusieurs systmes d'criture des donnes. Les systmes de fichiers sont MyIsam, InnoDB, BDB, etc. Les fonctionnalits supportes, comme les cls trangres ou les transactions, sont diffrentes en fonction du systme de fichier choisi. Dans cette tude, nous considrerons uniquement le systme de fichier InnoDB qui assure les fonctionnalits prsentes prcdemment. MySQL fonctionne sur les systmes suivants : Linux Unix: Solaris, HP-UX, AIX, SCO BSD: FreeBSD Apple: Mac OS Windows Novell: NetWare1

Ensemble de machines qui cooprent, visible de lextrieur comme un seul serveur extrmement puissant.

Comparaison des SGBD Libres.doc

7/49

CNAM 2005-2006

2.1.2 MaxDB/SAP DB (http://www.sapdb.org/)Le SGBD MaxDB est dvelopp par MySQL AB. Les fonctionnalits sont relativement proches de celles de la version 5 de MySQL. Certaines fonctionnalits, comme les dclencheurs (triggers), qui auparavant n'taient prsentes que dans MaxDB, ont t portes dans MySQL. Cette importation de fonctionnalits de MaxDB dans MySQL est encore plus marque dans la version 5.1en cours de dveloppement. Il semble que, dans un futur plus ou moins proche, la fusion des deux produits sera une ralit. MaxDB supportent les grappes. La liste suivante est un rsum des principales diffrences entre MaxDB et MySQL : MaxDB ne fonctionne pas sur toutes les plates-formes supportes par MySQL MaxDB supporte les procdures stockes. Avec MySQL, les procdures stockes sont implmentes en version 5. Max DB supporte aussi les dclencheurs (triggers), lesquels sont en partie implments dans MySQL 5 comme nous le verrons. MaxDB contient un dbogueur pour les langages utiliss dans les procdures stockes. Il peut dclencher des sous-programmes imbriqus en cascade, et supporte les dclencheurs multiples sur action et par ligne. MaxDB est livr avec des interfaces utilisateur en mode texte ou graphique, ou encore sur le web. MySQL est livr avec des interfaces utilisateurs en mode texte uniquement; une interface utilisateur graphique (MySQL Control Center) est distribue sparment. Les interfaces utilisateur sur le web pour MySQL sont offertes par des diteurs tiers. MaxDB contient des fonctionnalits administratives que MySQL ne possde pas encore : la planification de tches, les vnements et alerte ainsi que l'envoi de messages une base de donnes administrateur sur signal d'alerte. MaxDB fonctionne sur les systmes suivants : Linux Unix: Solaris, HP-UX, AIX Windows

2.1.3 INGRES (http://www.ingres.com/)INGRES (la dernire version : INGRES 2006) est un SGBD relationnel qui vient dentrer dans le monde du libre. Cette base de donnes est dune installation simple et supporte les bases allant de quelques lignes une taille demandant lutilisation dune grappe (cluster). Elle respecte la norme SQL-92 avec beaucoup dextensions propritaires. Les transactions simples et distribues sont ainsi implmentes.

Comparaison des SGBD Libres.doc

8/49

CNAM 2005-2006

INGRES fonctionne sur les systmes suivants : Linux Unix: Solaris, HP-UX, AIX, OpenVMS Windows

2.1.4 PostgreSQL (http://www.postgresql.org/)Autre grand nom de la base de donnes libre, PostgreSQL, dont la version actuelle est la 8.1, est une base de donnes relationnel objet (Possibilit de stocker des objets dans la base). Le SGBD supporte une grande partie de la norme SQL et offre les fonctionnalits des bases de donnes modernes comme les requtes complexes, les cls trangres, les dclencheurs, les vues. Il supporte aussi lobjet relationnel dont les extensions sont spcifies dans la norme SQL-99. Nanmoins, PostgreSQL tant la seule base libre supporter l'objet relationnel, la comparaison avec d'autres bases sur ce sujet n'a pas de vraiment de sens. PostgreSQL fonctionne sur les systmes suivants: Linux Unix Windows

2.2 Les SGBD en progression2.2.1 Berkeley DB (http://www.sleepycat.com/)Rachet par Oracle, cette base est prsente dans dautres produits comme par exemple MySQL grce une implmentation pense pour lintgration. De par la faon dont Berkeley DB stocke les informations (Cl, Valeur stocke avec les types de lapplication), elle est le choix idal pour les requtes prdtermines portant sur des donnes mouvantes tandis que les SGBD traditionnels sont plus performants sur les requtes dynamiques portant sur des donnes statiques. OpenLDAP, un serveur libre dannuaire, utilise cette base car la structure Cl/Valeur donne de meilleures performances. Ce produit est dclin en trois versions : la version de base une version optimise pour Java, utilise par exemple par Sun dans certains de ses produits Berkeley DB XML, une surcouche ajoutant des nombreuses fonctionnalits XML comme le support de XML Query2 (Nomm aussi XQuery, cest un langage qui offre la possibilit d'extraire des informations d'un document XML).2

Norme XQuery du W3C (en anglais): http://www.w3.org/TR/xquery

Comparaison des SGBD Libres.doc

9/49

CNAM 2005-2006

Berkeley DB fonctionne sur les systmes suivants : Linux Windows Et sur tous les systmes supportant JAVA.

2.2.2 Firebird (http://www.firebirdsql.org/)Ce challenger de MySQL, en terme de part de march, est l'toile montante dans le firmament des SGBD libres. La dernire version stable l'heure o ces lignes sont crites est la version 1.5, la version 2.0 tant encore en bta. Les bases de donnes supportes par Firebird vont de la petite base ne contenant que quelques lignes de bases de taille importante en comportant plusieurs millions. Firebird 2 possde un grand nombre de nouvelles fonctionnalits. Parmi celles-ci, les tables temporaires alimentes par requte (derived table), une augmentation de la taille maximale des tables, une gestion amliore des index supprimant la limite de 252 octets, une amlioration de l'optimisation des requtes et le support des sauvegardes incrmentales chaud. La liste des fonctions supplmentaires qui seront prsentes dans la version 3 est longue3. Parmi celles-ci, l'amlioration du support de la norme SQL : le SGBD supportera les requtes rcursives, la notion de schma et mme les grappes (clusters). Firebird fonctionne sur les systmes suivants : Linux Unix: Solaris, HP-UX BSD: FreeBSD Apple: Mac OS Windows Firebird ne rivalise pas encore en terme de fonctionnalits ou de support de la norme SQL avec les grands SGBD libres. Mais sa communaut active, son dveloppement rapide, ainsi que la succession de versions comportant des amliorations toujours plus impressionnantes, en font une valeur sure dont il convient de suivre lvolution.

3

Liste complte : http://www.firebirdsql.org/devel/engine/roadmap2006.html

Comparaison des SGBD Libres.doc

10/49

CNAM 2005-2006

2.2.3 Apache DB (http://db.apache.org/)Le projet Derby est une base de donnes entirement crite en Java. Ce SGBD ne supporte pas la gestion des droits utilisateurs, ni compltement les jointures externes ou encore les dclencheurs, il ne peut donc pas tre pris en compte dans ce comparatif. Derby fonctionne sur les systmes suivants : Linux Windows Et sur tous les systmes supportant JAVA.

2.2.4 HypersonicSQL (http://hsqldb.org/)HypersonicSQL est un SGBD crit en java. Il respecte lensemble des critres noncs comme les transactions, les dclencheurs, la gestion des droits des utilisateurs. Par contre, il ne supporte pas les grappes (clusters). HypersonicSQL fonctionne sur les systmes suivants : Linux Windows Et sur tous les systmes supportant JAVA.

2.2.5 PicoSQL

(http://www.picosoft.it/picosql/)

PicoSQL est un SGBD crit dans le but de pouvoir tre facilement install et dutiliser peu de mmoire. Il supporte les transactions et mme les vues en mise jour. Malheureusement, la gestion des dclencheurs ainsi que celle des droits des utilisateurs ne sont pas encore prsentes. PicoSQL fonctionne sur les systmes suivants : Linux Windows

Comparaison des SGBD Libres.doc

11/49

CNAM 2005-2006

2.2.6 Daffodil DB (http://www.daffodildb.com/)Daffodil DB et One$DB, sa version libre et gratuite, contiennent les mmes fonctionnalits. Entirement crit en Java, ce SGBD est bas sur la norme SQL-99. Pour information, lobjet relationnel nest pas implment dans Daffodil DB. One$DB fonctionne sur les systmes suivants : Linux Windows Et sur tous les systmes supportant JAVA.

2.2.7 SQLite (http://www.sqlite.org)SQLite est une petite librairie C qui gre un SGBD sans configuration. Le manque de fonctionnalits importantes , comme les dclencheurs, les jointures externes, les cls trangres ainsi que linexistence de la gestion des droits utilisateurs (Grant et Revoke), fait que ce SGBD ne sera pas lobjet dune tude approfondie.

2.3 Synthse et ChoixFirebird est, en terme de part de march, deuxime derrire MySQL, mais le dveloppement rapide de ce SGBD en terme de fonctionnalits nest pas suffisant en soi et, ce jour, il ne peut entrer dans ce comparatif de par une non implmentation de pans complets de la norme SQL et du non support des grappes (clusters). SQLite ne possde pas les fonctionnalits ncessaires, la gestion des droits, par exemple, est inexistante. Cette base de donnes ne peut galement entrer dans ce comparatif. HypersonicSQL, One$DB et SleepyCat (Berkeley DB) n'autorisent pas les volutions du systme grce aux grappes (cluster). SleepyCat (Berkeley DB) est plus souvent intgr dans dautres offres logicielles comme MySQL ou Oracle. Ces SGBD ne supportant pas l'volutivit voulue et notamment les grappes (clusters), nous arrterons ici leur tude.

Comparaison des SGBD Libres.doc

12/49

CNAM 2005-2006

Synthse :

Une analyse rapide de l'volutivit des SGBD et des fonctionnalits nous font donc retenir pour une analyse approfondie les SGBD suivants : MySQL, MaxDB, PosgreSQL, Ingres. Nous venons donc de voir quels SGBD rpondent au cahier des charges suivant : Le systme doit assurer la fiabilit des donnes : la possibilit dexcuter des transactions4 doit tre prsente. Le systme doit offrir la possibilit plusieurs utilisateurs de manipuler les donnes concurremment, c'est--dire qu'il doit grer des utilisateurs diffrents et verrouiller les enregistrements. Le systme doit assurer la confidentialit des donnes par l'existence d'une gestion des droits utilisateurs. Ce point sera abord dans la partie consacre l'administration. Le systme doit tre volutif, notamment avec la possibilit de grer des grappes (clusters). Le systme doit offrir, l'utilisateur, la possibilit d'interroger la base de faon simple : support du langage SQL. Comme nous l'analyserons dans le chapitre suivant, le standard SQL a volu au cours du temps et des drives, sous forme de dialectes diffrents, sont apparues. Nous verrons comment les SGBD ont adapt et supportent ce langage SQL, lequel est autant employ par lutilisateur lors de l'interrogation de la base, que par ladministrateur pour assurer lintgrit des donnes avec laide des dclencheurs (triggers).

4

MySQL supporte les transactions avec le systme de fichier InnoDB mais pas avec le systme de fichier MyIsam par exemple.

Comparaison des SGBD Libres.doc

13/49

CNAM 2005-2006

3 Le langage des SGBD : SQLLe langage SQL, acronyme de Structured Query Language, a t dvelopp par IBM dans les annes soixante dix afin de traiter les donnes contenues dans les ordinateurs centraux (mainframes). Le cur du SQL est le modle relationnel. On pourrait dfinir ce modle comme un modle ensembliste simple. Le modle relationnel a t invent en 1970 par Dr E.F. Codd, un chercheur dIBM5. Le projet System/R a commenc en 1974 et a produit un langage nomm SEQUEL (Structured English QUEry Language). Celui-ci a t implment dans un prototype nomm SEQUEL-XRM durant les annes 1974-1975. Plus tard, IBM a rajout les tables multiples et la gestion de plusieurs utilisateurs en simultan. Cette version 2, SEQUEL/2, a t renomme SQL . SQL est utilis pour crer, maintenir et interroger des bases de donnes relationnelles et il utilise des mots courants de la langue anglaise pour la plupart des commandes, ce qui le rend facile utiliser. Il est souvent amlior par lutilisation dun langage de programmation. La diffrence fondamentale entre SQL et un langage de programmation standard est que SQL est dclaratif. On spcifie les donnes extraire de la base et le SGBD est le seul dterminer les actions entreprendre pour retrouver ces donnes. Le paragraphe suivant montrera quil existe diffrents SQL et pourquoi ils existent. Leur tude engendrera l'analyse des diffrentes fonctionnalits supportes par les SGBD, et dans quelle mesure ils les supportent.

3.1 Normes et dialecte SQLLa norme SQL, ou devrait-on plutt dire les normes SQL, ont volues au cours des annes. Afin de les distinguer, le nom de la norme SQL est donc suffix de l'anne de sortie. En 1986, lAmerican National Standard Institute (ANSI) valide la premire norme SQL, SQL-86. Elle a, depuis, t adopte par lInternational Organization for Standardization (ISO). SQL est un standard international, nombre de SGBD le supportent. Cependant chaque SGBD possde des extensions propritaires pour des raisons commerciales mais aussi historiques. Une premire rvision du standard, connue sous le nom SQL-89, mais aussi sous le nom SQL1, a t publie en 1989. Elle ajoute l'intgrit rfrentielle la norme SQL-86. Malheureusement des pans entiers de cette nouvelle norme sont rests inachevs et donc incomplets cause de conflits dintrts dordre commerciaux. Afin de faire de la norme un vritable standard, lANSI a publi une version majeure en 1992. Nomme SQL-92, connue aussi sous le nom SQL2, cette version ne laisse que peu de place linterprtation. Son descriptif passe ainsi de 100 pages 600. La norme dfinit trois niveaux de conformit possibles. Chaque niveau ajoute des fonctionnalits supplmentaires celles du niveau prcdent. Les noms de ces diffrents niveaux sont entre (Entry), intermdiaire (Intermediate) et complet (Full).

5

Dr. E. F. Codd, A Relational Model of Data for Large Shared Data Banks, http://www.cs.duke.edu/~junyang/cps216/papers/codd-1970.pdf

Comparaison des SGBD Libres.doc

14/49

CNAM 2005-2006

Il existe un quatrime niveau nomm "Transitional" se situant entre le niveau entre et le niveau intermdiaire . Il ne fait pas partie de la norme ANSI SQL mais est propos par le Federal Information Processing Standards Publications (FIPS PUBS)6. Lorsquun SGBD clame quil respecte la norme SQL-92, il devrait prciser, ce qui est important, le niveau. Nous verrons dans la prochaine section, une description condense des diffrences entre ces niveaux. En 1999, une nouvelle version de la norme, nomme SQL-99, mais aussi connue sous le nom de SQL3, a t diffuse. Elle introduit de nouveaux concepts avancs comme les concepts de lobjet relationnel ou encore du langage de programmation structure SQL/PSM. Elle reprend le principe des niveaux de la norme SQL-92 (Entry, Intermediate et Full) mais les remplace par les siens : SQL-99 Central (Core) et Modules/Amliorations (Non-core, Enhanced). Pour des facilits de lecture, la norme a t dcoupe en parties; les mille cinq cents pages ont t scindes en neuf volumes traitant, chacun, dun domaine particulier : Sql, Sql/Psm, etc... Lobjet relationnel reste lavance majeure de cette norme, lintgration dXML fait ses dbuts. SQL-99 a galement normalis les dclencheurs, mme si beaucoup de SGBD les possdaient dj. Cet ordre chronologique (les dclencheurs crits avant la norme ne la respectent pas entirement) engendre des problmes de portabilit. Par exemple, entre Oracle et son PL/SQL ou Microsoft SQL Server et son Transac-SQL, ces langages ne sont pas totalement compatibles, ni compatibles avec SQL/PSM d'ailleurs. Rcemment, en 2003, lANSI/ISO a rendu publique la norme SQL-2003. Les fonctionnalits les plus marquantes de cette nouvelle norme sont les suivantes : Une augmentation des types de collections (Objets grant des ensembles dobjets : les tableaux, les listes, les arbres sont des exemples de collection) Une amlioration des spcifications de lobjet relationnel. Des nouvelles rfrences dans XML. Nous pouvons dduire aisment des paragraphes prcdents que SQL-92 tait le prcdent standard et SQL-99 le standard actuel, mme si peu de bases de donnes implmentent lobjet relationnel. Dans les SGBD libres, seul PosgreSQL supporte lobjet relationnel. Dans les systmes commerciaux, Oracle possde cette fonctionnalit. SQL-2003 sera le prochain standard support par les SGBD. Cette norme, trs rcente est peu implmente dans les SGBD; la partie XML est la plus frquemment prsente mais elle trouve ses fondements dans la norme SQL-99. La norme SQL-2003 tant trs peu supporte, elle ne sera pas analyse. Etudions maintenant plus en dtails les principaux apports de la norme SQL-92 avant de voir rapidement les ajouts apports par SQL-99.

6

Federal Information Processing Standards Publication 127-2, Announcing the Standard for Database Language SQL, http://www.itl.nist.gov/fipspubs/fip127-2.htm

Comparaison des SGBD Libres.doc

15/49

CNAM 2005-2006

3.2 SQL-92, les diffrents niveaux3.2.1 Le niveau entre Le niveau entre est avant tout une correction de la norme SQL-89. Il apporte un complment de commandes manquantes mais pourtant indispensables lusage. Il met en place une standardisation des codes de retour des commandes via une variable nomme SQLSTATE et la possibilit de nommer les colonnes par nimporte quel mot. Auparavant, les codes ntaient pas normaliss. La variable SQLCODE contenait zro si tout allait bien, cent si la requte ne renvoyait pas de donnes et une valeur ngative en cas derreur. Mais il ny avait aucune normalisation des codes ngatifs, entranant lcriture de programmes non portables. SQLCODE a t conserv pour des problmes de compatibilit. SQLSTATE est un code normalis 5 caractres remplaant SQLCODE. Chaque caractre peut tre une lettre majuscule (de A Z) ou un chiffre (de 0 9). Les deux premiers caractres dterminent la classe derreur et les trois derniers une sous-classe. Par exemple lerreur 01504 se dcoupe de la faon suivante : classe derreur 01 01 : Avertissement sous classe derreur 504 504 : la requte UPDATE ou DELETE ne contient pas de clause WHERE. La norme ajoute aussi la possibilit de renommer les colonnes et dutiliser les mots cls du langage en tant que nom de table ou colonne en linsrant entre des guillemets. Tous les SGBD actuels annonant supporter SQL-92, doivent respecter au minimum ces fonctions en plus du langage SQL pur.

3.2.2 Le niveau Intermdiaire

3.2.2.1 Les variablesLe niveau Intermdiaire , en plus des fonctions du niveau entre , offre un meilleur support pour les donnes de type temps. Il introduit les types suivants : DATE qui contient un jour, un mois et une anne TIME qui contient une heure, une minute, une seconde TIMESTAMP qui est la concatnation dune date et dune heure au sein de la mme donne

Comparaison des SGBD Libres.doc

16/49

CNAM 2005-2006

INTERVAL supporte deux prcisions. Dans la premire, lintervalle est compt en mois et anne. Dans la seconde, lintervalle est compt en seconde minute heure et jour. Il est noter que SQL-92 supporte les oprations arithmtiques sur les dates, comme par exemple laddition ou la soustraction de dates. SQL-92 admet la cration de domaines qui sont, nanmoins, des sous-ensembles de domaines existants et offre la possibilit d'inclure des contrles dintgrit. Exemple : cration du domaine Monnaie par la commande suivante :CREATE DOMAINE Monnaie is DECIMAL(5,2) CHECK(VALUE>0) NOT NULL

Le niveau intermdiaire propose, galement, les amliorations suivantes : Diffrents alphabets. Les caractres propres chaque pays sont grs. Le support des collations (COLLATE). Cette fonctionnalit entrane le support de plusieurs ordres de comparaison pour les chanes de caractres et, ainsi, gre correctement les caractres accentus lors des phases de tris. Un tri binaire, au vu du code ASCII des caractres, aurait donn : parle, parleur, parloir, parl alors que lon s'attend, de faon naturelle, avoir parl entre parle et parleur . La concatnation de chanes par loprateur || et lextraction de sous-chanes par la commande SUBSTRING. La conversion dun type de donne en un autre par la commande CAST Les chanes de longueurs variables (VARCHAR) et la possibilit de connatre la longueur dune chane par la commande LENGTH.

3.2.2.2 Lintgrit rfrentielleLintgrit rfrentielle7 a t amliore dans SQL-92. Prcdemment, toute violation entranait le rejet de la mise jour. La nouvelle norme dfinit d'ventuelles actions correctives en cas de violations lors de la suppression dun tuple : Supprimer en cascade (ON DELETE CASCADE). Cette option supprime tous les tuples dont dpend le tuple supprim. Rendre nul lattribut rfrenant (ON DELETE SET NULL)7

Lintgrit rfrentielle est un jeu de rgles empchant d'effacer ou de modifier par inadvertance des donnes d'une table lorsque cela peut dclencher des problmes sur une table en relation (cls trangres par exemple)

Comparaison des SGBD Libres.doc

17/49

CNAM 2005-2006

Il est maintenant possible dexcuter les contraintes dintgrit la fin de chaque opration (IMMEDIATE) ou la fin de la transaction (DEFERRED) :SET CONSTRAINTS { ALL | nom de la contrainte } {DEFERRED | IMMEDIATE}

Pour en terminer avec lintgrit, SQL-92 dfinit quatre niveaux d'isolation de transaction pour empcher trois phnomnes indsirables de se produire lors de transactions concurrentes qui sont : La lecture inconsistante : une transaction lit des donnes crites par une transaction concurrente qui nest pas encore valide.

La lecture non rptitive : Une transaction relit des donnes qu'elle a lues prcdemment et trouve que ces donnes ont t modifies par une autre transaction (valide depuis la lecture initiale).

Comparaison des SGBD Libres.doc

18/49

CNAM 2005-2006

Les lignes fantmes : Une transaction excute nouveau une requte renvoyant un ensemble de lignes satisfaisant une condition de recherche et trouve que l'ensemble des lignes satisfaisant cette condition a chang du fait d'une autre transaction rcemment valide.

Ces phnomnes peuvent ou ne peuvent pas se produire en fonction du niveau disolation. Les niveaux d'isolation des transactions dfinis sont les suivants : Niveau d'isolation Lecture de donnes non valides (Uncommitted Read) Lecture de donnes valides (Committed Read) Lecture rpte (Repeatable Read) Srialisable (Serializable) Lecture inconsistante Possible Impossible Impossible Impossible Lecture non rptitive Possible Possible Impossible Impossible Lignes fantmes Possible Possible Possible Impossible

Le niveau Srialisable supprime tous les effets des accs concurrents mais en contrepartie il est galement le plus lent. Une requte avec un niveau disolation Lecture de donnes non valides pourrait lire des enregistrements verrouills en criture par une autre requte et donc ne pas attendre le relchement des verrous8. Pour certains types de requtes, comme celles utilises dans un entrept de donnes, le fait de ne pas avoir les dernires donnes jour nest pas significatif.8

Mcanisme grant la simultanit daccs afin dviter des incohrence (deux critures en mme temps).

Comparaison des SGBD Libres.doc

19/49

CNAM 2005-2006

3.2.2.3 Union, intersection et diffrenceSQL-89 supportait uniquement lunion de deux ensembles de rsultats :Select Co1,Col2 From Table1 UNION Select Co1,Col2 From Table2

SQL-92 tend les oprations ensemblistes disponibles par lajout des commandes grant lintersection (INTERSECT) et la diffrence (EXCEPT) d'ensembles.

3.2.2.4 Les jointuresLes jointures externes ont la capacit de prendre en compte les lments nayant pas de correspondance dans lautre table lors dune jointure.SELECT ... FROM table1 LEFT OUTER JOIN table2 ON

Toutes les lignes de table1 seront affiches que soit ralise ou non dans table2. La requte suivante affiche tous les tudiants, qu'ils aient ou non une note. Si un tudiant n'a pas de note, le champ Numetu de la table correspondante (NOTES) aura la valeur NULL. :SELECT DISTINCT(E.Nometu), N.Numetu FROM ETUDIANT E LEFT OUTER JOIN NOTES N ON E.Numetu=N.Numetu;

On peut ainsi retenir les lments nayant pas de correspondance dans la table de gauche (LEFT OUTER). Sur le mme principe, on peut aussi retenir les lments nayant pas de correspondance dans celle de droite (RIGHT OUTER) ou dans les deux (FULL OUTER)

3.2.2.5 Les SchmasSQL92, grce la commande ALTER TABLE, offre la possibilit de modifier le schma9. La commande est : ALTER TABLE

9

Ensemble des objets (tables, index, dclencheurs) proprit d'un utilisateur

Comparaison des SGBD Libres.doc

20/49

CNAM 2005-2006

Les diffrentes modifications possibles sont : Ajout dune colonne (ADD COLUMN) Modification de la dfinition dune colonne (ALTER COLUMN) Suppression dune colonne (DROP COLUMN) Ajout dune contrainte (ADD CONSTRAINT) Suppression dune contrainte (DROP CONSTRAINT)

3.2.2.6 Excution de requtesLexcution dune requte ncessite deux grandes phases : la premire est la phase de compilation de la requte (PREPARE), la deuxime est celle dexcution (EXECUTE). Avec SQL-89, ces deux phases taient indissociables. Avec SQL-92, il est possible de lancer la compilation de la requte (PREPARE), puis dexcuter plusieurs fois la requte (EXECUTE).

3.2.3 Le niveau Complet Les fonctionnalits supplmentaires apportes par le niveau complet sont les suivantes : Support de contraintes dintgrit portant sur plusieurs tables grce la clause CHECK. Maintenance de vues concrtes (MATERIALIZED VIEW). Une vue concrte est une table contenant une copie physique de tuples insrs dans d'autres tables. Les vues concrtes offrent la possibilit, par exemple, doptimiser les requtes lorsque les donnes changent peu en stockant les jointures. Des dclencheurs (triggers) sont utiliss pour leur mise jour. Support de tables temporaires. Elles sont dtruites en fin de transactions. Possibilit de faire un select dans la clause from, engendrant la cration dune table temporaire. Exemple :Select Nom, Prenom From (Select * from Etude where diplome=ingenieur);

Possibilit de renommer les colonnes afin de les faire correspondre dans les requtes comportant un des termes suivants : UNION, INTERSECT, EXCEPT. Extension du support des dates et temps avec support des fuseaux horaires et possibilit de dfinir des chelles de temps pour le type INTERVAL Comparaison des SGBD Libres.doc 21/49 CNAM 2005-2006

Cration d'un type de donne BIT pour supporter les objets binaires comme les images

3.3 SQL-99La premire forme normale de Codd (valeur atomique c'est dire non compose) est inadapte aux objets complexes tel que les documents structurs (document XML) ou les donnes multimdias. Cest pourquoi la norme SQL-99 a introduit une dnormalisation de la premire forme normale avec l'objet relationnel ou encore avec les objets larges tels que les CLOB (Character Large Object) et les BLOB (Binary Large Object). Nanmoins, la recherche dans les objets larges (Large Object) est limite et squentielle. Labsence de pointeurs visibles tait, dans SQL-92, pnalisante. Stocker un gros objet et utiliser des rfrences plusieurs endroits dans la base gnre des conomies de place. Il est aussi possible dviter de faire de coteuses jointures grce ces rfrences. Lobjet relationnel est fait pour palier aux points faibles du modle relationnel. SQL-99 a introduit les modifications principales suivantes : Suppression du type de donne BIT qui servait supporter les objets binaires. Lobjet relationnel le remplace avantageusement. Extension des fonctions comparaisons floues SQL-92 les prenait en compte grce linstruction LIKE. SQL-99 en tend les possibilits grce linstruction SIMILAR et par lutilisation dexpressions rgulires faon UNIX : WHERE NAME SIMILAR (SQL(86|89|92|99))|(SQL(1|2|3)). Cette ligne prend en compte les versions de SQL sorties avant lanne 2000. Utilisation de nouveaux type de donnes : o o o o o BLOB CLOB BOOLEAN ARRAY : JourDelaSemaine VARCHAR(10) ARRAY[7] ROW : NID ROW (NOM VARCHAR(50), PRENOM VARCHAR(50)) SELECT E.NID.NOM FROM Employ E Ajout de la possibilit de dfinir des types propres lutilisateur par la commande CREATE TYPE.

Comparaison des SGBD Libres.doc

22/49

CNAM 2005-2006

Possibilit de mettre jour les vues (View) : Dans la norme SQL-92, les vues ntaient quen lecture seule. Les applications taient donc obliges de modifier les tables sous-jacentes la vue en cas de mise jour, ce qui enlve une partie de lintrt des vues. Cration de points de sauvegarde (Savepoint) : Ces points de sauvegarde agissent comme des sous ensembles de transaction. Dans une transaction, il est possible dannuler un sous ensemble de la transaction et donc de remonter ltat du dernier point de sauvegarde sans pour autant annuler la transaction en entier. ROLLBACK TO SAVEPOINT Nom et RELEASE SAVEPOINT agissent respectivement comme les ROLLBACK et COMMIT dune transaction. SET SAVEPOINT Nom dfinit un point de sauvegarde nomm Nom . Introduction de XML avec la possibilit de retrouver les donnes grce XQUERY. Cette partie est tendue dans SQL-2003. Apparition des requtes rcursives. Par exemple, sur une table Etapes compose de deux colonnes, VilleDpart et VilleArrive , on pourrait excuter la requte suivante :SELECT VilleArrive START WITH VilleDpart=Montpellier CONNECT BY PRIOR VilleArrive=VilleDpart;

Cration de rles facilitant la gestion des droits des utilisations par dfinition d'ensembles de droits prts lemploi . On prpare un rle Mise a jour des clients en lui attribuant les droits ncessaires. Il suffira ensuite dattribuer ce rle lensemble des utilisateurs devant mettre jour les clients. Mise en place de dclencheurs (Trigger). Un dclencheur est une procdure compile qui sexcute automatiquement lorsque lvnement associ le dclenchant se produit comme la mise jour dune colonne dans la base. Utilisation du langage de programmation SQL/PSM qui est un langage procdural. Lcriture de procdures stockes ou de dclencheurs dans ce langage est possible.

Comparaison des SGBD Libres.doc

23/49

CNAM 2005-2006

Cration d'extensions ncessaires lobjet relationnel comme la notation point (Employ.Salaire), la dfinition d'hritage etc. Avant de voir les tableaux rcapitulatifs des fonctionnalits supportes par les SGBD, prcisons la lgende :

Ce que lon peut retenir du tableau suivant est que le SGBD possdant le plus grand nombre de fonctions des normes SQL92 et SQL99 est PosgreSQL. Les principales fonctions manquantes de PosgreSQL version 8.1 sont : les vues modifiables. Cette fonctionnalit est prvue dans la prochaine version. les vues concrtes le Check sur plusieurs tables les requtes rcursives

Comparaison des SGBD Libres.doc

24/49

CNAM 2005-2006

Tableau rcapitulatif SQL - Page 1/2

Tableau rcapitulatif SQL - Page 2/2

Comparaison des SGBD Libres.doc

26/49

CNAM 2005-2006

4 Les dclencheursAprs avoir tudi comment le langage SQL est support par les diffrents SGBD, voyons comment il est utilis, en conjonction avec les dclencheurs, afin de faciliter lintgrit des donnes.

4.1 Quest-ce quun dclencheurUn dclencheur (Trigger) est une suite d'instructions stocke dans une base de donnes (sorte de procdure stocke). Il est associ une table de la base de donne. Lorsquun vnement (mise jour dun champ par une requte, suppression) se produit sur celle-ci, la suite d'instructions est excute automatiquement, contrairement aux procdures stockes qui doivent tre appeles. Ces vnements sont au nombre de six :Before Update : Avant une mise jour de la table After Update : Aprs une mise jour de la table Before Insert : Avant une insertion dans la table After Insert : Aprs une insertion dans la table Before Delete : Avant une suppression dans la table After Delete : Aprs une suppression dans la table

Lorsquune requte va tenter de mettre jour, dinsrer une valeur ou den supprimer une, il est donc possible de lancer une suite d'instructions avant ou aprs le passage de cette requte. Le programme peut tre lanc, soit pour chaque ligne modifie de la table (FOR EACH ROW), soit une seule fois pour lensemble des lignes (FOR EACH STATEMENT). Lors de lcriture dun dclencheur de type ligne (ROW), il est possible davoir les valeurs avant (OLD) et aprs modification (NEW). Ceci est galement valable dans le cas dun dclencheur de type Statement , les variables se nomment alors OLD_TABLE et NEW_TABLE et contiennent lensemble des enregistrements avant et aprs altration par la requte. Le mot cl ATOMIC, prcise que le corps du trigger doit tre excut comme une transaction, c'est dire d'un seul coup et sans concurrence (excution atomique). La ligne [WHEN condition] rajoute une condition vrifier avant l'excution de la requte.

CREATE TRIGGER NomTrigger { BEFORE | AFTER } { INSERT | DELETE | UPDATE } ON NomTable { REFERENCING OLD [ROW] [AS] NomAnciennesValeursLigne | NEW [ROW] [AS] NomNouvellesValeursLigne | OLD TABLE [AS] NomAnciennesValeursTable | NEW TABLE [AS] NomNouvellesValeursTable } FOR EACH { ROW | STATEMENT } [WHEN condition] BEGIN [ATOMIC] Code du trigger END

Exemple :TABLE test1 (a1 INT); TABLE test2 (a2 INT); CREATE TRIGGER RecopieTest1 BEFORE INSERT ON test1 FOR EACH ROW BEGIN INSERT INTO test2 SET a2 = NEW.a1; END;

Les dclencheurs lance donc des requtes lors de certains vnements. Attention, une requte lance dans un dclencheur peut provoquer le dmarrage d'un autre dclencheur. Il appartient au dveloppeur de vrifier les boucles infinies pouvant se produirent. Comme nous venons de le voir, les dclencheurs lancent des requtes lors de certains vnements, mais il est possible daller au-del de ce simple lancement. En effet, les dclencheurs peuvent tre crits dans le mme langage que les procdures stockes, savoir SQL/PSM. Lutilisation d'un langage structur renforce les possibilits des dclencheurs.

4.2 Langage SQL/PSMLe langage SQL/PSM (Persistent Stored Module) est le langage procdural normalis dans la norme SQL-99. La notion de Module est la suivante : un module contient un ensemble de fonctions ou procdures stockes partageant des proprits similaires, comme travailler sur la mme table ou tre une suite logique dopration. SQL/PSM est utilisable dans les procdures stockes et les dclencheurs. Nous allons maintenant en voir les principes de base.

4.2.1 DclarationLa cration d'un module (ensemble de fonctions ou procdures stockes) se fait par l'instruction suivante :CREATE MODULE ModuleName LANGUAGE [SQL|C| ] END MODULE

Comparaison des SGBD Libres.doc

28/49

CNAM 2005-2006

On remarquera dans cette instruction comme dans la suivante, le mot cl LANGUAGE qui offre la possibilit du choix du langage et donc de ne pas utiliser obligatoirement le langage SQL/PSM. Les procdures ou les fonctions stockes peuvent scrire avec diffrents langages comme C, Ada, Cobol, Pascal Exemple en java :CREATE OR REPLACE PROCEDURE AjouteEmp (empno NUMBER, ename VARCHAR2, sal NUMBER, deptno NUMBER) AS LANGUAGE JAVA NAME Employee.AjouteEmp( int, java.lang.String, float, int);

Un des avantages du langage SQL/PSM par rapport un langage volu tel que C ou Java est qu'il n'y pas besoin d'une conversion de type entre les donnes de la base et les variables utilises pour les stocker. Voici un exemple de module :MODULE gestion_compte LANGUAGE SQL; DECLARE total DECIMAL(16,2); FUNCTION solde (SQLCODE, client_id) RETURNS FLOAT; SELECT SUM(CPT_CREDIT) - SUM(CPT_DEBIT) INTO total FROM COMPTE_BANCAIRE WHERE CLI_ID = client_id; RETURN total; PROCEDURE credite (SQLCODE, client_id, montant DECIMAL(16,2)); INSERT INTO COMPTE BANCAIRE (CLI_ID, CPT_CREDIT, DATE_HEURE_TRANSACTION) VALUES (client_id, montant, CURRENT_TIMESTAMP); PROCEDURE debite (SQLCODE, client_id, montant DECIMAL(16,2)) INSERT INTO COMPTE BANCAIRE (CLI_ID, CPT_DEBIT, DATE_HEURE_TRANSACTION) VALUES (client_id, montant, CURRENT_TIMESTAMP); END MODULE;

4.2.2 Contrle de lexcutionL'instruction suivante fait des tests du type SiAlorsSinon :If Then Else If Then EndIf; EndIf;

Comparaison des SGBD Libres.doc

29/49

CNAM 2005-2006

Linstruction suivante effectue une suite dinstructions en fonction du contenu de la variable :CASE valeur When 1 Then When 2 Then Else END CASE

Les instructions suivantes ralisent des boucles :LOOP END LOOP

L'instruction Loop est une instruction rptant une boucle l'infinie. L'instruction LEAVE entrane la sortie de la boucle. L'instruction Tantque excute le code prsent au sein de sa boucle tant que la condition est vraie.WHILE END WHILE

L'instruction RpterJusqu' excute le code prsent au sein de sa boucle jusqu' ce que la condition soit vraie.REPEAT UNTIL END REPEAT

L'instruction suivante parcourt le curseur :FOR AS DO END FOR

Aprs avoir vu les principes de base de SQL/PSM, analysons maintenant comment ces fonctions sont supportes par les diffrents SGBD.

Comparaison des SGBD Libres.doc

30/49

CNAM 2005-2006

4.3 Support de SQL/PSML'appel de procdures stockes peut s'effectuer comme l'envoi d'une requte la base et cela, dans peu prs tous les langages. Par contre, les bases de donnes ne supportent pas n'importe quel langage pour l'criture des procdures stockes. La notion de module que nous venons de voir, savoir une compilation de fonctions, n'existe pas dans les SGBD libres. Il est possible de prciser le mot cl LANGAGE au niveau de la syntaxe de la procdure afin de dterminer dans quel langage celle-ci a t crite. Toutes les bases de donnes libres supportent le langage SQL/PSM avec, tout de mme, un bmol pour la base de donnes Ingres 2006 qui n'accepte qu'un sous ensemble des fonctions. Seul PosgreSQL supporte l'criture de procdures stockes et dclencheurs dans divers langages, tel que TCL, Perl et Python.

Pour des raisons chronologiques, le langage SQL/PSM est support par les bases de donnes libres, plus qu'il ne l'est dans les bases de donnes commerciales. En effet, ces dernires ont implment un quivalent au langage SQL/PSM bien avant la publication de la norme SQL-99. Cette dernire aurait du sortir en 1996 au lieu de fin 1999, ce qui a contribu a une non conformit des SGBD commerciaux. C'est, par contre, un point fort pour les SGBD libres, qui ayant mis en place ce langage aprs la publication de la norme, ont pu la respecter fidlement. Les dclencheurs peuvent aider maintenir l'intgrit de la base, laquelle fait partie des tches de l'administrateur de base de donnes. Avant de lister les tches d'administration existant sur les SGBD, voyons comment un SGBD peut sinterfacer avec un langage de programmation afin de dvelopper de nouvelles applications, comme des applications de maintenance par exemple.

4.4 Interfaces avec les langages de programmation.4.4.1 SQL intgrLorsque le SQL est intgr, on insre les instructions SQL dans celles du langage de programmation. Un prprocesseur est ncessaire pour convertir les instructions SQL en appels des procdures fournies dans une librairie du SGBD. Chaque prprocesseur est donc propre un SGBD et la faon d'invoquer le SQL est, par consquent, diffrente d'un SGBD l'autre. Le gros dfaut de cette approche rside dans le fait que les instructions SQL sont spcifies dans le code source, de faon statique et en fonction du SGBD. Les performances sont grandes (pas de traduction faire en fonction du SGBD), ce qui constitue un avantage pour le SQL intgr. Par contre, les instructions figes et valables uniquement pour un seul SGBD en sont un inconvnient.

Comparaison des SGBD Libres.doc

31/49

CNAM 2005-2006

4.4.2 SQL dynamiqueLe SQL dynamique offre la possibilit de construire des instructions SQL sans les connatre priori. Lutilit principale est de fabriquer un code gnrique et rutilisable. La programmation est, certes, un peu plus complexe. Une requte peut tre prpare avec divers paramtres et ces paramtres n'tre donns quau moment de lexcution. Le SGBD fait tous les choix possibles lors de cette phase (compilation de la requte, utilisation des index) et, donc, passe un minimum de temps lors de lexcution.

4.4.3 APIChaque SGBD possdant ses propres mthodes d'accs, la tche des programmeurs dsireux de s'y connecter ne s'en trouve pas simplifie. Ces "API", comme on les nomme (Application Programming Interface), sont autant de syntaxes matriser afin de communiquer avec chaque SGBD. L'ide est alors venue de fournir une librairie de fonctions, indpendante du SGBD, afin de faciliter la programmation et damliorer linteroprabilit des programmes envers les divers SGBD. Si on utilise une API propritaire (comme OCI chez Oracle, libmysql.dll pour MySQL), le code sera trs efficace. Si en revanche, on utilise une API gnrique, telle que, par exemple ODBC (Open Database Connectivity), la portabilit du code sera meilleure, mais l'excution sera moins performante car la conversion des instructions SQL en leur quivalent du SGBD utilis ne pourra se faire que pendant l'excution car c'est seulement ce moment que l'on saura quel type de SGBD on a rellement affaire. Cest Microsoft qui a crit ODBC, librairie gnrique daccs aux bases de donnes. RDO (Remote Data Object), est une surcouche dODBC galement dveloppe par Microsoft. Celle-ci est destine faciliter le travail des programmeurs Visual Basic, alors qu'ODBC est davantage tourne vers les programmeurs C/C++. Une autre technique d'accs, encore plus simple, a ensuite fait son apparition : "DAO" (Data Access Object). La standardisation n'tait plus vraiment standard . Microsoft, souhaitant offrir une mthode de connexion indpendante des sources de donnes, tente d'unifier encore une fois le tout et dveloppe une nouvelle API : "OLE-DB" (Object Linking And Embedding Database). Puis, Microsoft toujours, afin d'aider les dveloppeurs qui peinent crire des fonctions "OLE-DB", propose la technologie ADO (ActiveX Data Object), laquelle accde diverses sources de donnes plus facilement. ADO.Net, volution dADO est la dernire norme propose par Microsoft. Les normes de Microsoft, actuellement utilises sont : ODBC, ADO et ADO.NET. Cependant, Microsoft nest pas le seul avoir crit des librairies gnriques. IDAPI est une API daccs aux bases de donnes, dveloppe par Borland. Elle sait aussi interroger ODBC et cela lui ouvre lensemble des bases du march. JDBC (Java DataBase Connectivity) est une API de connexion aux bases de donnes fournie avec Java. Comparaison des SGBD Libres.doc 32/49 CNAM 2005-2006

Il suffit de disposer dun driver supportant lAPI choisie pour qu'un programme fonctionne avec la base de donne. Ce dernier peut, par exemple, se connecter sur une base MySQL. Si l'on change de driver dans ODBC pour utiliser une base Microsoft Sql Serveur, un mme programme fonctionnera de la mme faon. Tableau rcapitulatif :

Tous les SGBD libres de ce comparatif supportent les deux plus grands standards actuels, savoir ODBC et JDBC, d'o, ce critre importera peu au moment du choix.

Voyons maintenant quelles sont les tches dadministration et en quoi les dclencheurs ou des programmes crits avec laide de ces API, peuvent venir en aide l'administrateur.

Comparaison des SGBD Libres.doc

33/49

CNAM 2005-2006

5 AdministrationLa premire des tches d'administration d'une base de donnes, chronologiquement parlant, est de prvoir la dimension du serveur qui va l'hberger, c'est--dire le nombre de processeurs, la taille mmoire et les besoins de stockage ncessaires lors de la cration de la base et, en tenant compte, si possible des besoins futurs. Ces choix dpendent de la finalit du systme : La base doit elle tre en ligne 365 jours par an ou pas ? Combien d'utilisateurs vont accder en simultan la base ? En cas de panne, quel est le temps acceptable pour restaurer une sauvegarde ? La perte de donnes est-elle acceptable ou pas ? Autant de questions qui vont dterminer le dimensionnement du systme et le choix du niveau de redondance des quipements afin de pallier aux pannes. Une fois le systme choisi et install, les principales tches de l'administrateur de base de donnes sont : La gestion de la scurit L'optimisation des requtes L'optimisation de l'utilisation des disques La gestion des sauvegardes La conception et la cration de nouvelles bases

5.1 Protection des donnesLa scurit d'une base dpend principalement de la dfinition des droits de chaque utilisateur. Il est cependant possible de se prmunir contre certains types d'attaques diriges vers un SGBD par l'utilisation d'un pare-feu (firewall) ou des lments rseaux empchant l'coute des communications, comme les commutateurs (switches). Maintenir jour le SGBD et le systme d'exploitation en installant les mises jour de scurit est indispensable afin de supprimer les risques dus aux failles. Dans tous les cas, la dfinition des droits des utilisateurs est primordiale. Ils dfinissent quels utilisateurs ont quels droits sur quels objets et scurise le SGBD contre toute manipulation malencontreuse. Lcriture de programmes, ou mieux de dclencheurs (Trigger), peut aider vrifier lintgrit des donnes.

Comparaison des SGBD Libres.doc

34/49

CNAM 2005-2006

5.1.1 Identification et authentification des utilisateursLes utilisateurs sont identifis sur un SGBD par un nom de connexion (login) et par un mot de passe. L'attaque, par un intrus essayant de se faire passer pour quelquun dautre, peut se produire en deux endroits diffrents : Au niveau de la base Au niveau du rseau Au niveau de la base, il ne faut pas que n'importe quel utilisateur puisse avoir accs au catalogue. Une base de donnes spciale , souvent nomme catalogue ou mta-donnes, contient un ensemble de tables stockant, entre autre, les informations suivantes : la liste des bases, la liste des tables, la liste des vues, la liste des utilisateurs et de leur droits En fait, le catalogue contient l'ensemble des informations donnant la possibilit de grer les bases de donnes prsentes dans le SGBD. Ce catalogue contient, dans une table, la liste des utilisateurs et les mots de passes. Ces mots de passe sont chiffrs. Mais, les fonctions de hachage sens unique10 utilises, comme par exemple MD5 ou SHA, offrent une rsistance ingale au test de toutes les combinaisons (Brut Force Attack). Deuxime possibilit d'attaque, la rcupration du mot de passe par coute des trames rseaux (Sniffing). Des protocoles comme SSL, rajoutent une couche de chiffrement la transmission de ces donnes, ce qui rduit fortement la possibilit d'coute en rendant les donnes inintelligibles pour toute personne autre que lmetteur et le SGBD. Tous les SGBD de ce comparatif supportent cette fonctionnalit.

5.1.2 Contrle d'accs aux donnesLes commandes GRANT et REVOKE attribuent et retirent des droits aux utilisateurs. Les droits sont les suivants : SELECT, droit de lecture des informations. Ce droit peut tre rduit certaines colonnes dune ligne par SELECT (col,...) INSERT, droit de rajout de lignes UPDATE, droit de modification de lignes. Ce droit peut tre rduit certaines colonnes dune ligne par UPDATE (col,...) DELETE, droit de suppression de lignes

Dans un SGBD, x est le mot de passe et f(x) la valeur chiffre, stocke dans la base. Cest une fonction rpondant aux critres suivants : Il est facile de calculer f(x) ayant x, il est quasi-impossible de calculer x en ayant f(x). Si x et x' sont diffrents alors f(x) est diffrent de f(x').

10

Comparaison des SGBD Libres.doc

35/49

CNAM 2005-2006

ALTER, droit de modification de la dfinition de la table Le droit ALL contient lensemble des droits prcdents (Insert, Update, Delete et Alter). Un utilisateur ayant reu un droit avec l'option GRANT peut le transmettre son tour condition que le droit soit transmis avec, dans la commande, WITH GRANT OPTION.GRANT { SELECT | INSERT | UPDATE | DELETE | ALTER | ALL } ON {nom_table | nom_vue | nom_base } TO nom_utilisateur {WITH GRANT OPTION};

La suppression dun droit se fait de la faon suivante :REVOKE { SELECT | INSERT | UPDATE | DELETE | ALTER | ALL } ON {nom_table | nom_vue | nom_base } FROM nom_utilisateur { CASCADE }

Loption CASCADE supprime les droits de lutilisateur marqus dans la commande mais aussi les droits de tous les utilisateurs qui un utilisateur aurait donn ces mmes droits. Admettons que A donne un droit B avec WITH GRANT OPTION et que B donne ce droit C. Si A ne met pas CASCADE, il retire le droit B mais pas C. Si A spcifie CASCADE, il retire le droit B et C. Les droits sont cumulatifs. Supposons que lutilisateur A reoive, la fois de lutilisateur B et lutilisateur C, le droit de lire une table T, il faut que B et C retirent tous les deux ce droit de lecture A pour que celui-ci ny accde plus. PosgreSQL a ajout des droits ceux prcdemment cits comme, par exemple, le droit de crer des cls trangres (REFERENCES), des dclencheurs (TRIGGER), des schmas (CREATE) et des tables temporaires (TEMPORARY). MySQL a aussi ajout ses propres droits, comme par exemple, l'obligation faite lutilisateur d'employer une connexion chiffre, les limitations en terme de nombre de requtes (MAX_QUERIES_PER_HOUR, MAX_UPDATES_PER_HOUR) ou en terme de nombre de connexions (MAX_CONNECTIONS_PER_HOUR, MAX_USER_CONNECTIONS). Ingres a aussi ajout des droits comme par exemple le droit de crer des squences (compteur partag et auto incrment) ou le droit de consulter les statistiques du SGBD. Le tableau ci-aprs rpertorie les droits supports. Sa lecture en fait ressortir un point important : tous les SGBD supportent les droits dfinis par lISO dans la norme SQL. Mais chaque SGBD a rajout des droits supplmentaires qui lui sont propres.

Comparaison des SGBD Libres.doc

36/49

CNAM 2005-2006

5.1.3 La notion de RleComme nous venons de le voir, la gestion des droits est dfinie par utilisateur. Au dpart, dans les SGBD, il n'existait pas, proprement parler, de groupe comme pour les utilisateurs Windows (cette notion est naissante dans MaxDB). Afin de palier ce manque et de faciliter la gestion des droits, la notion de rle a t invente. Un rle n'est pas un groupe d'utilisateurs mais un ensemble de droits sur un ensemble d'objets. Par exemple, une personne devant mettre jour les tables concernant les ressources humaines d'une entreprise, doit mettre jour la table des employs et la table des formations suivies. Un rle autorisant l'criture dans ces deux tables peut tre cr. Ce rle sera ensuite attribu l'ensemble des utilisateurs faisant partie des ressources humaines afin qu'ils puissent effectuer leur mission. La cration de rle se fait par la commande CREATE ROLE . La commande GRANT attribue les droits un rle. La syntaxe est identique celle utilise pour donner des droits un utilisateur. Il faut, ensuite, ajouter ce rle aux utilisateurs concerns :GRANT role TO { nomutilisateur | PUBLIC } [ WITH ADMIN OPTION ] WITH ADMIN OPTION donne l'utilisateur le droit d'assigner, de retirer, de modifier et de supprimer son tour les privilges du rle reus. PUBLIC est un rle particulier car il est

attribu par dfaut tous les utilisateurs. Il est noter que seul le SGBD MySQL ne supporte pas les rles.

5.1.4 Protection des changes rseauComme nous l'avons dj voqu, les changes rseaux sont en proie des attaques ayant pour but de dcouvrir les mots de passe des utilisateurs. Mme s'il est toujours possible de crer un tunnel SSL (Sorte de tunnel chiffr11, cr entre deux machines, dans lequel passent les informations), un systme de chiffrage implment au niveau du protocole de la base de donnes facilite la mise en place dune solution de chiffrage et rend les informations coutes incomprhensibles. Il devient impossible de voler le mot de passe. Pour une scurit accrue, il faut que le protocole de chiffrement soit prouv. Des protocoles utiliss partout dans le monde, comme par exemple RSA, sont des bons candidats la scurisation des transmissions d'informations entre le client et la base de donnes. Seul le SGBD Ingres ne supporte pas le chiffrement des communications. Il est noter que la cration de tunnels SSL est plus la charge de ladministrateur rseaux que de ladministrateur de base de donnes. Nanmoins, ladministrateur de base de donnes doit avoir des comptences rseaux afin de comprendre comment les mots de passe peuvent tre dcouverts ou pourquoi les temps de rponses de ses requtes sont mauvais. Le problme ne provient pas toujours de la base de donnes.11 Le mot crypter , driv de langlais to crypt , est utilis dans le langage courant la place du terme chiffrer , employ par les spcialistes de la cryptologie.

5.1.5 Protection des donnes stockesL'accs aux fichiers de la base doit, bien sr, tre rserv au programme de base de donnes. Lors de l'installation de la base sur le serveur, il est fortement conseill de crer un utilisateur particulier et de ne donner les droits sur le rpertoire de l'application ainsi que sur les fichiers de donnes qu' cet utilisateur. Cette mesure vite qu'une personne puisse rcuprer les fichiers, les copier, et les remonter sur son propre SGBD. Les administrateurs du poste ont videmment accs ces fichiers. La cryptographie peut, encore une fois, offrir un niveau de scurit supplmentaire en chiffrant les fichiers. Cependant la surcharge de travail pour le processeur rserve cette mthode des bases pour lesquelles la scurit est cruciale. Les bases de donnes tudies ne supportent pas le chiffrage des donnes, sauf PosgreSQL qui offre la possibilit de chiffrer certaines colonnes. Par contre, il est possible de chiffrer des partitions du disque dur. Ce systme tant transparent pour la base, il peut tre mis en place quelle que soit la base.

5.1.6 Intgrit du logicielLe logiciel du SGBD doit pouvoir faire l'objet de contrles afin de vrifier que l'application excute est bien celle qui a t valide par les autorits comptentes, et non pas une version modifie de manire non autorise. Ce besoin concerne, la fois, le logiciel serveur et les logiciels clients. La cryptographie, grce notamment aux fonctions de hachage, peut assurer la non modification des programmes. Les SGBD libres ne supportent pas cette fonctionnalit.

5.1.7 Services d'auditAfin de pouvoir contrler les accs posteriori, il est ncessaire d'avoir un systme qui rpertorie les connexions mais aussi les actions des diffrents utilisateurs sur les bases. Il est aussi indispensable que ce systme soit protg contre les modifications, autres que celles faites par le SGBD. Les SGBD libres ne supporte pas cette fonctionnalit.

5.2 Optimisation5.2.1 Optimisation des requtesL'optimisation des requtes et des temps de rponse du SGBD incombe l'administrateur de bases de donnes. Quatre vingt dix pour cent de l'optimisation de la base est faite pendant la conception. Les dix pour cent restants se font pendant la production.

Comparaison des SGBD Libres.doc

39/49

CNAM 2005-2006

Le SGBD doit fournir l'administrateur toutes les informations ncessaires cette optimisation : L'occupation mmoire Afin d'avoir les performances maximales, il faut que le SGBD ne fonctionne qu'en mmoire, il ne doit pas utiliser le fichier d'change prsent sur le disque. Les informations de cette occupation mmoire doivent tre dtailles par zones car le SGBD utilise des zones mmoires diffrentes : une pour stocker les modifications de donnes, une pour trier les tables lors de l'excution des requtes L'affichage de ces informations est ncessaire l'administrateur, qui doit voir si une requte ne manque pas de mmoire par exemple dans la zone de tri. Les choix effectus par le programme qui optimise les requtes Avant d'excuter une requte, le SGBD choisit l'algorithme qu'il va utiliser pour les jointures et dtermine les index possibles L'affichage de ces informations est ncessaire l'administrateur pour dterminer o se situe l'ventuel goulet d'tranglement (un index manquant par exemple). Ladministrateur de base de donnes peut aussi dcider de crer une table contenant une jointure prcalcule. Cette solution entrane un gain de temps considrable dans le cas de tables souvent lues et peu mises jour. La mise jour de cette table contenant une jointure est assure par des triggers prsents sur la table concerne. Tous les SGBD de ce comparatif supportent ces fonctionnalits. Il est noter que lvolution de la complexit des SGBD, avec notamment les grappes (clusters) rpartition de charges (Data Grid), rend de plus en plus difficile loptimisation des serveurs. Cest pourquoi la tendance naissante est dintroduire une optimisation calcule et dcide par le SGBD luimme.

5.2.2 Optimisation de l'utilisation des disquesMme si le fait de dplacer des tables frquemment utilises sur des systmes de disques diffrents amliore les performances, la principale proccupation de ladministrateur de base de donnes, au niveau des disques, est la gestion de lespace restant en fonction de laugmentation de taille de la base. Voyons maintenant comment les SGBD stockent les objets prsents dans une base de donnes ou comment se fait la liaison entre larchitecture logique (les bases, les tables) et larchitecture physique (les fichiers). Une solution simple est lutilisation de fichiers plats. Chaque base ou chaque table se trouve dans un fichier contenant les informations. Cest ainsi que fonctionne le systme de fichier MyIsam de MySQL. Un rpertoire porte le nom de la base et chaque fichier contient les donnes prsentes dans la table. La base, dans le pire des cas (cas de MyIsam), ou une table dans le meilleur des cas, doit absolument tenir sur un seul disque. Ce systme ne possde aucune souplesse de gestion.

Comparaison des SGBD Libres.doc

40/49

CNAM 2005-2006

Pour remdier aux dfauts de la solution prcdente, la plupart des SGBD grent des espaces de stockages virtuels (tablespace). Un tablespace est, en fait, un ensemble de fichiers pouvant se trouver sur des espaces de stockage physiques diffrents. Il est possible de rajouter facilement un nouveau fichier cet espace de stockage logique et donc daugmenter la possibilit de stockage de donnes. Une table peut tre partage sur plusieurs fichiers du mme espace de stockage virtuel (tablespace).

5.3 Gestion des sauvegardes / restaurationsLes sauvegardes des bases sont destines pouvoir effectuer une rgnration des donnes aprs un sinistre (corruption de base de donnes, problme systme). Aprs linstallation dune base, un administrateur de bases de donnes doit mettre en place un plan de sauvegarde en fonction du degr de tolrance de perte des donnes et de la dure d'indisponibilit acceptable pour lapplication. Il existe plusieurs types de sauvegarde : La sauvegarde complte de la base de donnes : sauvegarde de tous les fichiers de la base un instant donn. La sauvegarde partielle de la base de donnes : sauvegarde d'une partie des fichiers de la base un instant donn. La sauvegarde des journaux de reprises : sauvegarde des fichiers log, intervalles rguliers. Afin de mieux comprendre les sauvegardes, il est ncessaire de savoir que lorsquune modification est effectue sur une base de donnes, celle-ci est enregistre deux niveaux : Sur les donnes proprement dites, lorsque la modification est enregistre dans les fichiers de donnes. Dans les fichiers journaux de reprises o lon recense squentiellement les modifications apportes la base. Il existe deux modes de sauvegarde / restauration : Base ferme dite " froid". La base tant arrte, cette sauvegarde est une simple copie de fichier. Base ouverte dite " chaud" La base de donnes continue tre utilise. En mode restauration, les donnes sont indisponibles le temps de la restauration et de la mise niveau grce aux journaux de reprise. Comparaison des SGBD Libres.doc 41/49 CNAM 2005-2006

La prsence de fichiers journaux de reprises gnrs par le SGBD est ncessaire pour effectuer une sauvegarde chaud. Dans le cadre d'environnements haute disponibilit, l'arrt de la base est impossible. Le problme qui se pose provient, alors, de la constante modification des valeurs prsentes. Pour effectuer une sauvegarde chaud, l'espace de stockage virtuel (tablespace) est pass en mode "Sauvegarde". Les modifications sont mmorises uniquement dans les fichiers journaux durant la sauvegarde de cet espace de stockage virtuel. Ensuite, l'espace de stockage virtuel est mis jour avec les fichiers journaux avant d'tre repass en mode "Normal". La planification des tches est un systme offrant la possibilit de lancer, avec une frquence dtermine, une tche comme la sauvegarde des bases de donnes, la mise jour des statistiques ncessaires au programme d'optimisation des requtes, etc. Elle automatise donc la procdure. Les bases de donnes libres, fonctionnant sous forme de commandes saisies sur la ligne de commande (Mysql, PostgreSQL), sappuient sur le systme (Planificateur de tache sous Windows, cron sous linux) afin d'offrir cette possibilit.

5.4 Tableau de synthseLes diffrentes fonctionnalits exposes ci-dessus sont prsentes dans le tableau de synthse suivant :

Le choix devient, cette fois, plus difficile. Ingres et MaxDB ont l'avantage d'avoir une administration intgre avec des interfaces graphiques natives tandis que MySQL utilise des diteurs tiers pour produire les logiciels contenant des interfaces. PostgreSQL, de par ses modules en ligne de commande, offre la possibilit d'crire des scripts shell, ce qui le rend hautement configurable et automatisable.

Comparaison des SGBD Libres.doc

42/49

CNAM 2005-2006

Conclusion

Cette tude montre que les SGBD libres possdent nombre datouts. Mme sils noccupent pas encore la majorit des parts de march, ils en sont la valeur montante. Le dveloppement rapide des ultimes fonctionnalits leurs faisant dfaut, par rapport leurs homologues commerciaux, et leurs cots imbattables en font des alternatives qui ne peuvent qu'tre srieusement considres. Le nombre impressionnant de SGBD libres offre la possibilit de choisir celui qui convient le mieux aux besoins. La couverture va de la petite base mono poste mono utilisateur la base gante contenant des milliards de lignes et ncessitant un cluster rpartition de charge pour grer des milliers de requtes par seconde. Le respect de la norme SQL engendre un nombre minimal dadaptions raliser en cas de changement de SGBD. Lutilisation dAPI gnriques vite l'adaptation des programmes en fonction de la base. Lutilisation des procdures stockes offre loptimisation du temps dexcution des requtes. La facilitation des oprations de maintenance est prsente avec les dclencheurs (triggers). La souplesse et les possibilits rajoutes par le langage procdural SQL/PSM ouvrent de nombreux horizons quant lutilisation des requtes stockes et des dclencheurs. Ladministration de bases de donnes se compose des tches suivantes : Gestion de la scurit : droit daccs et chiffrement des communications Optimisation du SGBD, des diffrentes zones mmoires, des requtes par lutilisation des dclencheurs Gestion des sauvegardes

On peut se demander comment les SGBD commerciaux vont arriver survivre la dferlante des SGBD libres. Demain, les SGBD libres auront les mmes fonctionnalits que les SGBD commerciaux. Ils possdent, en outre, un avantage de taille : un prix imbattable. Les espaces de stockage auront des tailles gigantesques qui pourront stocker le savoir de lhumanit dans tous les domaines. Laccs se fera en langage naturel, il suffira de penser une question pour en avoir la rponse. Dans ces conditions, quel sera lintrt daller lcole ? Lhumanit arrivera t-elle encore progresser dans ses connaissances ?

Comparaison des SGBD Libres.doc

43/49

CNAM 2005-2006

Bibliographie

Carolyn Begg et Thomas Connolly, Systme de base de donnes, Edition Eyrolles, 2005. Christian Mare, Guy Ledant, SQL2 Initiation/Programmation, Editions Dunod, 1999. Cyril Nocton, PHP4 et MySQL en ligne, Micro Application, 2001. Georges Gardarin, Bases de donnes, Edition Eyrolles, 2003. Pierre Risler, Manuel dadministration Oracle. 2005. http://www.MySQL.com, Le site officiel du SGBD MySQL, MySQL AB, 1995-2006 http://www.sapdb.org, un site officiel du SGBD MaxDB, SAP AG. On peut aussi trouver ce logiciel sur le site de MySQL. http://www.firebirdsql.org, le site officiel du SGBD FireBird, Firebird Project, 2000-2006 http://www.ingres.com, le site officiel du SGBD Ingres, Ingres Corporation, 2006 http://www.postgresql.org, le site officiel du SGBD PosgreSQL, PostgreSQL Global Development Group, 1996-2006 http://www.sleepycat.com/, le site officiel du SGBD Berkeley DB. http://db.apache.org/, le site officiel du SGBD Derby, Apache Software Foundation, 20012006 http://hsqldb.org/, le site officiel du SGBD Hypersonic SQL, The hsqldb Development Group, 2001-2005

Comparaison des SGBD Libres.doc

44/49

CNAM 2005-2006

http://www.picosoft.it/picosql/, le site officiel du SGBD PicoSQL, 2006. http://www.daffodildb.com/, le site officiel du SGBD Daffodil DB et de sa dclinaison open source One$DB, Daffodil Software Ltd, 2004-2006 http://www.sqlite.org, le site officiel du SGBD SQLite, 2006 http://sqlpro.developpez.com, Site contenant diverses informations sur les bases de donnes, Frdric Brouard, 2003-2006 http://www.linux-france.org/article/cel/SICOMOR/SGBDR/html/Rapport_7-9V10.html, Scurisation des SGBDR, EADS Sycomore. http://www.cs.duke.edu/~junyang/cps216/papers/codd-1970.pdf, Dr. E. F. Codd, A Relational Model of Data for Large Shared Data Banks, http://www.itl.nist.gov/fipspubs/fip127-2.htm Federal Information Processing Standards Publication 127-2, Announcing the Standard for Database Language SQL

Comparaison des SGBD Libres.doc

45/49

CNAM 2005-2006

GlossaireANSI : American National Standard Institute. Institut amricain charg de valider et publier des normes. Atomique : Une transaction atomique (ensemble dinstructions) est un ensemble indivisible, entirement excut ou pas du tout. Cache : Technique de stockage en mmoire de valeurs lues ou crire sur le disque. En groupant les accs disques, on augmente la vitesse globale dchange avec le disque. Cl trangre : Une cl trangre est une cl primaire ou candidate dans une autre table. Collation : Dfinit la position ordinale de chaque caractre dans un jeu de caractre. Le mme jeu de caractre peut donc tre tri diffremment. Commutateur : Dispositif rseau reliant plusieurs machines sur un mme cble et qui ne transmet les informations quau bon destinataire (pas de broadcast). Contrainte dintgrit : Une contrainte d'intgrit est une clause qui oblige que les donnes saisies dans la base soient conformes aux donnes attendues (Not Null, Unique) Dclencheur : Bout de programme sur le serveur qui est automatiquement invoqu lorsqu'un enregistrement est insr, mis jour ou effac. Il effectue de petites oprations tel que des vrifications de donnes, des modifications... Domaine : Ensemble de valeurs que peut prendre un attribut.

Comparaison des SGBD Libres.doc

46/49

CNAM 2005-2006

Entrept de donnes : Outil d'aide la dcision, bas sur une base de donnes fdrant et homognisant les informations des diffrents services d'une organisation. Fonctions de hachage sens unique : Fonction rpondant aux critres suivants : Il est facile de calculer f(x) ayant x mais il est quasi-impossible de calculer x en ayant f(x). Si x et x' sont diffrents alors f(x) est diffrent de f(x'). Elles servent assurer la dtection dune modification dans un document. Grappe : Cluster en Anglais. Ensemble de machines qui cooprent, visibles de lextrieur comme un seul serveur extrmement puissant. Index : Structure de donnes offrant la possibilit d'accder de manire efficace un tuple en connaissant la valeur d'un de ses attributs. Un index amliore les performances d'accs en interrogation mais pnalise les mises jour et prend de la place sur le disque. Intgrit rfrentielle : Capacit d'un SGBD imposer sur une table des rgles de validation provenant d'une autre table (cl trangre). International Standards Organization (ISO) : Organisation non gouvernementale qui fdre des organismes nationaux et s'occupe d'dicter des normes internationales. Jointure externe : La jointure consiste combiner deux tables (ou plus) pour obtenir une table rsultat. En concatnant deux deux les lignes des deux tables initiales (produit cartsien) et en ne gardant (restriction) que les lignes dont deux colonnes (ou plus) dans les tables initiales vrifient une certaine proprit, on obtient une jointure. Si on garde toutes les lignes dune table ou des deux, on parle de jointure externe. Objet large : Type de donne stockant une information de grande taille. Pare-feu : Dispositif logiciel ou matriel protgeant un rseau en bloquant certaines communications juges dangereuses.

Comparaison des SGBD Libres.doc

47/49

CNAM 2005-2006

Point de sauvegarde : Sous ensemble de transactions. Procdures stockes : Ensemble dinstructions prsentes dans le SGBD et prtes tre excutes. Relationnel objet : Se dit dune base qui supporte les objets. Requte : Ensemble dinstructions manipulant des ensembles de donnes. Rle : Ensemble de droits sur un ensemble dobjet de la base. Sauvegarde : Copie de la base afin de pouvoir la restaurer en cas de problme grave. Schma : Ensemble des objets (tables, index, dclencheurs) proprit d'un utilisateur. Srialisation : Excution en parallle dun ensemble de transactions produisant le mme rsultat que si elles taient excutes en srie. SGBD : Systme de Gestion de Base de Donnes. Programme grant une base de donnes, autrement dit un grand volume dinformations. SQL : Structured Query Langage. Langage utilis dans les bases de donnes afin de manipuler les donnes. SSL : Secure Socket Layer. Couche logicielle effectuant le chiffrement/dchiffrement dune communication quelconque.

Comparaison des SGBD Libres.doc

48/49

CNAM 2005-2006

Transaction : Ensemble de requtes. Une transaction simple est execut sur un serveur. Les transactions distribues peuvent tre excutes sur plusieurs serveurs. Tuple : Un tuple est une ligne structure comme un ensemble de valeurs. Verrou : Mcanisme grant la simultanit daccs afin dviter des incohrences (deux critures en mme temps). Vue : Du point de vue de lutilisateur, cest comme une table. Du point de vue de la base, cest le rsultat dune requte. Les vues simplifient la structure dune base et restreignent laccs des donnes. XML : eXtensible Markup Language. Cest un langage de balise extensible dont la forme gnrale est texte. XQuery : Langage offrant la possibilit de retrouver des informations dans un document XML.

Comparaison des SGBD Libres.doc

49/49

CNAM 2005-2006