Vous êtes sur la page 1sur 10

DOSSIER

volution de bases de donnes


Quiconque s'occupe professionnellement des questions de la programmation tait srement dj confront la programmation des bases de donnes. La question de la programmation de bases est trs large et il est intressant de connatre de nombreux aspects lis ce sujet. En pratique quotidienne, les programmeurs doivent se connecter aux serveurs divers de bases de donnes, ce qui n'est pas banal.
Sur lauteur
ARTUR MOCICKI
L'auteur est diplm de la facult d'informatique. Depuis longtemps, il s'occupe de la question du travail commun des environnements divers et des bases de donnes ainsi que de la programmation de bases de donnes. Il a galement co-crit un ouvrage Oracle 10g et Delphi. Programmation de bases de donnes. Contact avec l'auteur : arturmoscicki@op.pl

Niveau de difficult

es serveurs de bases proposent des fonctionnalits diffrentes, sont pourvus des formats de donnes divers, se spcialisent dans les applications concrtes et sont donc destins aux utilisateurs finals compltement diffrents. Afin de programmer donc une base de donnes stocke sur un serveur dtermin, il est ncessaire d'utiliser une technologie d'accs aux bases de donnes. L'objectif de notre article consiste analyser l'efficacit des technologies d'accs aux bases suivantes : Oracle, DB2, SQL Server, Informix, InterBase, MySQL et Access du niveau de l'application crite en Delphi. L'application a t cre pour les besoins de cet article et nous y analyserons l'efficacit des technologies disponibles dans l'environnement : ADO, ODBC, BDE, dbExpress, IBX, IBO, FIB, ODAC, SDAC, MyDAC, EasySoft et Gemini. Afin de mieux comprendre les rsultats de l'efficacit prsents dans la suite de cet article, il faut dans un premier temps faire connaissance des caractristiques de chaque technologie. Nous prsenterons ces caractristiques suivant la chronologie de la naissance de chaque technologie d'accs aux bases de donnes.

volution des technologies d'accs aux bases de donnes


Aprs que les systmes de bases de donnes, tels que dBase Paradox, Clipper et FoxPro, soient devenus populaires au dbut des annes quatre-vingt-dix, il tait ncessaire de crer des mcanismes d'accs aux donnes stockes dans les bases au niveau des langages diffrents.
32

Ce facteur tait l'origine de la cration des technologies d'accs aux bases de donnes. C'est ainsi que les systmes suivants ont t crs : DAO (Data Access Object), OLE.DB (Object Linking and Embedding DataBase) ainsi que ODBC (Objects DataBase Connectivity). La technologie DAO tait l'un des premiers mcanismes d'accs aux donnes. DAO est la premire technologie utiliser les objets d'accs aux donnes. Elle comprenait un ensemble d'objets permettant de supporter facilement les petites bases de donnes, du type dBase, MS Access etc. dans le systme d'exploitation Microsoft Windows. Ensuite, on a cr notamment ODBC : connectivit ouverte pour bases de donnes). ODBC est une interface permettant aux programmes de se connecter aux systmes de gestion des bases de donnes. C'est une API (Application Programming Inteface) indpendante du langage de programmation, du systme d'exploitation et de la base de donnes. Ce standard a t conu par SQL Access Group en septembre 1992 en tant qu'une alternative DAO et il est utilis jusqu' prsent. Les reprsentants de plusieurs entreprises fabriquant aussi bien le matriel que les logiciels ont travaill, pendant plusieurs annes, chez SQL Access Group (SAG) pour dfinir une manire universelle d'accder aux donnes, afin de simplifier les logiciels du type client-serveur. L'entreprise Microsoft a bnfici des rsultats de travail de l'quipe SAG et a conu une interface, dite call-level interface, appele ensuite Open Database Connectivity (ODBC).

ODBC dfinit un ensemble de fonctions de bas niveau, permettant aux applications du client et du serveur d'changer les donnes et de transmettre les instructions, sans les informations dtailles sur l'implmentation du client et du serveur. Ce point concerne n'importe quelle instruction effectue dans les applications client-serveur, indpendamment du fait si le client et le serveur fonctionnent sur le mme ordinateur ou sur les ordinateurs diffrents, voire sur les plate-formes logicielles et matrielles diffrentes. L'architecture de l'interface ODBC comprend quatre lments (Figure 1, deux lments, pilote et gestionnaire de pilotes, sont apparus dans les technologies d'accs pour la premire fois) : application effectue les oprations de traitement et, pour ce faire, elle utilise les requtes SQL afin d'obtenir et de stocker les donnes indispensables au processus gestionnaire de pilotes (Driver Manager) sous forme de la bibliothque DLL (Dynamic Link Library) dont l'objectif consiste offrir l'application un pilote de base de donnes appropri pilote en gnral, sous forme de la bibliothque DLL, l'lment qui excute les fonctions de l'interface ODBC appeles par le gestionnaire de pilotes. Il transmet galement les requtes SQL la source de donnes et les rsultats obtenus l'application. En cas de besoin, le pilote est capable de modifier la requte SQL
1/2006 www.linuxdevjournal.com

volution et efficacit des technologies d'accs

effectue, afin de l'adapter la spcificit de la source de donnes finale (par exemple, adapter le dialecte SQL un systme de gestion des bases de donnes concret) source de donnes il s'agit le plus souvent d'un systme de gestion des bases de donnes. Au moment de la ralisation de ODBC, l'entreprise Microsoft a invent le modle d'objets COM (Component Object Model) qu'il est possible d'utiliser dans chaque environnement de dveloppement Win32. Le composant avec l'extension dll et la technologie OLE.DB sont des rsultats de la cration des objets COM. OLE DB est un mcanisme de Microsoft qui sert obtenir l'accs par rapport n'importe quelle source de donnes et non seulement aux bases de donnes SQL. Les applications peuvent utiliser OLE DB pour accder directement aux donnes ou bien elles peuvent appeler ODBC via OLE DB afin d'obtenir l'accs aux bases. L'implmentation de OLE.DB est trs difficile ; pour cette raison, on a cr plus tard les technologies de haut niveau, utilises par OLE.DB pour se connecter aux bases mais leur implmentation est plus facile. ADO ( ActiveX Data Objects) peut tre un exemple d'une telle technologie. En OLE.DB, de mme qu'en DAO, on emploie les classes, les objets et les mthodes, permettant de se connecter aux bases de donnes. OLE.DB est dvelopp sans cesse et c'est aujourd'hui une des technologies cls. Aprs le succs de OLE.DB et ODBC, d'autres technologies d'accs aux bases de donnes ont t cres. Le plus grand essor des technologies d'accs a commenc avec l'apparition sur le march des environnements Borland Delphi et Borland C++ Builder. De nombreuses technologies spcialises ont t cres pour ces environnements : IBX (InterBase Express), IBO (InterBase Objects), FIB (Free InterBase), ODAC (Oracle Data Access Components), SDAC (SQL Server Data Access Components), MyDAC (MySQL Data Access Components), Gemini, EasySoft, BDP.NET (Borland Data Provider for .NET), BDE (Borland Data Engine). Les entreprises Microsoft et Sun ont galement cr des technologies d'accs pour leurs outils de dveloppement. C'est ainsi que ADO et JDBC (Java DataBase Connectivity) ont vu le jour. La technologie ADO a t adapte par d'autres entreprises et nous pouvons ainsi utiliser aujourd'hui ADO, par exemple, dans Borland Delphi. La Figure 2 prsente l'volution des technologies d'accs aux bases de donnes en prenant en compte les caractristiques de chaque technologie. Remarquez qu'avec le dveloppement des technologies d'accs aux bases de donnes, ces technologies se divisent et se spcialisent. De nouvelles
www.linuxdevjournal.com

technologies universelles, bases sur les objets, existent et se dvelopperont probablement. Elles permettront d'accder aux bases de donnes diffrentes. Avec l'volution, des technologies se sont formes qui doivent tre lances sur une machine virtuelle ou un environnement d'excution (.NET Framework). Leur implmentation et portabilit sur d'autres ordinateurs sont ainsi plus faciles. Avec l'apparition sur le march de l'environnement Borland Delphi, on commence crer des technologies ddies un seul serveur de bases de donnes. Parmi elles se trouvent des technologies d'accs direct aux bases de donnes, celles bases sur les mcanismes ODBC ainsi que les technologies hybrides, qui, mis part les mcanismes spcifiques d'accs aux bases, sont galement capables d'utiliser les sources ODBC. Au bout d'un moment, on a remarqu que ODBC n'tait pas une technologie assez efficace. On a donc cr un nouveau mcanisme d'accs, BDE (Borland DataBase Enigme). BDE a t cr grce la collaboration de plusieurs entreprises, notamment Borland, Microsoft, IBM, HP et Oracle. Autrefois, c'tait

la technologie lmentaire d'accs aux bases de donnes ; actuellement, elle est dpasse par d'autres technologies, comme ADO et dbExpress. BDE fonctionne plus rapidement et est simple d'emploi ce qui constitue des qualits par rapport ODBC ; en revanche, sa portabilit constitue son dfaut. Ce point est li au fait que BDE ne supporte pas directement le systme de gestion des bases de donnes maiselle le fait via un intermdiaire : programme SQL Links. Actuellement, Borland renonce dvelopper cette technologie mais il est toutefois possible de l'utiliser toujours pour connecter une application aux bases de donnes. Contrairement aux technologies dcrites, BDE est un ensemble de bibliothques DDL et d'outils d'intermdiaires pour se connecter une base de donnes. Il n'est pas ainsi ncessaire de manipuler les fonctions de la base de donnes concrtes ; les options disponibles chez BDE sont suffisantes. La Figure 3 prsente les relations entre l'application et BDE. La notion du moteur de bases de donnes (engine) est apparue pour la premire fois en BDE. Comment ce mcanisme, fonctionne-t-il ?

Tableau 1. Composants des technologies diffrentes qui servent raliser une application travaillant avec les bases de donnes Composant qui sert se connecter DataBase (composant de la technologie BDE) DataBase ADOConnection Connection Composant qui sert effectuer les requtes SQL Query (composant de la technologie BDE) Query ADOQuery SQLQuery IBXQuery (ncessite de placer le composant IBTransaction) IB_Query (ncessite de placer le composant IB_ Transaction) IB_Query (ncessite de placer le composant pFIBTransactio) OraQuery MSQuery MyQuery Query (composant de la technologie BDE) Query (composant de la technologie BDE) Composant qui transmet les donnes visualiser DataSource (composant de la technologie BDE) DataSource DataSource Composant qui sert visualiser les donnes

Technologie

ODBC BDE ADO dbExpress

DBGrid DBGrid DBGrid ListView

IBX

IBXDataBase

DataSource

DBGrid

IBO

IB_Connection

IB_DataSource

DBGrid

FIB

pFIBConnection

DataSource

DBGrid

ODAC SDAC MyDAC Gemini

OraSession MSConnection MyConnector DataBase (composant de la technologie BDE) DataBase (composant de la technologie BDE)

OraDataSource DataSource DataSource DataSource

DBGrid DBGrid DBGrid DBGrid

EasySoft

DataSource

DBGrid

1/2006

33

DOSSIER

Listing 1. Mthode charge de mesurer la dure d'excution de plusieurs oprations


var

Freq, TimeStart, TimeEnd : Int64; czas : double;

begin

...

if QueryPerformanceFrequency(Freq) then begin QueryPerformanceCounter(TimeStart); QueryPerformanceCounter(TimeEnd); czas:=(TimeEnd-TimeStart)/Freq;

// opration dont la dure est mesure

RichEdit.Lines.Add('L'excution de la requte SELECT a dur : +FloatToStr(temps)+' secondes'); end; ... end;

Chaque systme de gestion de bases de donnes est dot de sa propre interface API qui communique avec la base de donnes. Il est rare, voire impossible, que deux systmes aient la mme interface. Grce BDE, il n'est plus ncessaire de connatre les dtails de l'implmentation de ces bases, la connexion Oracle ou InterBase se droule de la mme manire. Les pilotes spciaux, sous forme des programmes SQL Links, traduisent les commandes BDE en commandes spcifiques pour le systme donn de gestion de bases de donnes. Grce cette solution, l'application peut se connecter n'importe quelle base de donnes sans connatre les dtails de son implmentation. La mmoire tampon d'enregistrements, sous forme d'ensemble de donnes (DataSet), est galement apparue pour la premire fois en BDE. La dfinition d'un ensemble de donnes a t formule comme une structure de colonnes (qui regroupent les donnes du mme type) et de lignes qui constituent une couche intermdiaire entre les composants de la gestion de donnes (en Delphi, il s'agit par exemple d'un composant de la classe TTable) et les composants visuels, permettant de reprsenter le contenu de tableaux (par exemple DBGrid). BDE n'est pas hlas une solution parfaite. Il a t conu l'poque de simples systmes de bases de donnes, bass sur les fichiers plats, comme Paradox et dBase. Actuellement, les bases de donnes relationnelles sont la solution le plus souvent utilise. Ces bases de donnes sont gres l'aide du langage SQL et travaillent avec les logiciels dans l'architecture client-serveur. Il est souvent impossible d'installer BDE sur les serveurs Internet lous parce que les entreprises grant le service (ISP) craignent le lancement des services systme sur leurs serveurs. Malgr l'actualisation de BDE, par
34

exemple, l'ajout du support des mcanismes, comme un modle relationnel orient objets, de nombreuses caractristiques de ce moteur sont toujours lies ses racines de Paradox. La faon de mappage des champs numriques en types de donnes est un bon exemple. En BDE, cette opration pose des problmes de compatibilit lors du travail du code Delphi avec des serveurs SQL diffrents. Actuellement, la technologie BDE se prte trs bien la ralisation de petits projets locaux o la scurit et la cohrence de donnes ne sont pas trs importantes. Les succs de ODBC et BDE ont pouss Microsoft concevoir un nouveau mcanisme d'accs aux donnes, plus facile d'implmenter que OLE.DB. C'est ainsi que ADO, technologie d'accs aux bases de donnes a t cre. ADO de mme que OLE.DB repose sur les objets COM. la base de la cration de ADO se trouve la volont d'accder une base de donnes sans connatre sa structure interne. Les concepteurs de BDO avaient la mme volont. La diffrence entre BDE et ADO est

toutefois importante. BDE constitue de simples composants qui utilisent les bibliothques supplmentaires. ADO est en revanche une couche intermdiaire et une technologie proprement parler. ADO suppose le mme support de toutes les bases de donnes (et tous les systmes de bases de donnes sont dots des fonctionnalits diffrentes) ; pour supporter toutes les options communes, il faut dterminer le dnominateur commun le moins lev pour toutes les bases. Comme nous l'avons mentionn, ADO constitue une sorte de couche intermdiaire ; cette technologie a t cre afin de faciliter l'utilisation des services OLE.DB. Mis part l'accs aux bases de donnes, ADO permet d'obtenir l'accs aux fichiers Excel, aux fichiers textes, aux fichiers Lotus, HTML et d'autres sources de donnes, ce qui constitue une ide trs novatrice. Avec l'arrive de la plate-forme .NET, Microsoft a propos des modifications en ADO qui est disponible prsent comme ADO.NET. Il est possible de diviser le nouveau ADO en mcanismes d'accs aux donnes et en systme de stockage de donnes. Toutes les interfaces caractristiques pour la plate-forme .NET ont t places dans l'espace de noms System.Data. Les classes lies au stockage de donnes sont les suivantes : DataSet (ensemble de donnes), DataTable, DataRow et DataColumn. Contrairement aux mcanismes de stockage de donnes qui se trouvent dans les classes, l'accs aux donnes se droule l'aide des interfaces. .NET est dot de cinq mcanismes d'accs aux donnes qui se trouvent dans les espaces suivants : System.Data.SQLClient, System.Data.OleDb, System.Data.ODBC, System.Data.SQLServerCE, System.Data.OracleClient. La Figure 4 prsente une architecture simplifie ADO.NET dont les composants principaux sont un ensemble de donnes (DataSet) et un fournisseur de donnes (Data Provider). La source de donnes peut se trouver dans la base de donnes physique ou dans un fichier XML. Data Provider ralise les connexions et envoie les commandes et DataSet reprsente les donnes dans la mmoire.

Comment raliser une application qui mesure l'efficacit des technologies d'accs aux bases de donnes ?

Il est assez facile de raliser une application en Delphi charge de mesurer l'efficacit des technologies d'accs et de plus, semblable malgr l'utilisation des technologies diffrentes. Pour cette raison, je vous expliquerai comment raliser une application l'aide de ADO. Placez les composants ADOConnection, ADOQuery, DataSource, DBGrid, 2 composants Button et un champ d'dition RichEdit dans le formulaire. Ensuite, configurez la connexion la base de donnes ; pour ce faire, double-cliquez sur le composant ADOConnection et suivez les instructions affiches dans la nouvelle fentre de connexion. Ensuite, modifiez la proprit Connected du composant ADOConnection en True. Dans le composant ADOQuery, configurez la proprit Connection en composant ADOConnection ; dans le composant DataSource, configurez la proprit DataSet en composant ADOQuery et dans le composant DBGrid, modifiez la proprit DataSource en composant DataSource. La dernire tape consiste placer les procdures prsentes dans les Listings 2 et 3 dans le code du programme et les appeler dans les vnements onClick, avec les paramtres appropris, bien videmment.

1/2006 www.linuxdevjournal.com

volution et efficacit des technologies d'accs

C'est une base de donnes locale ou place sur le serveur qui constitue la source de donnes ; les fichiers XML, Excel, Lotus etc. la constituent plus rarement. ADO.NET fournit les composants appropris qui effectuent les oprations sur le serveur, envoient les requtes SQL adquates et reoivent le rsultat de l'opration. Le fournisseur de donnes (Data Provider) est quivalent du pilote, charg de se connecter la base de donnes ou de lire le fichier appropri, en masquant les dtails de l'implmentation. ADO.NET garantit le support des bases de donnes MS SQL Server, Oracle ainsi que des technologies OLE.DB. Borland fournit galement les mcanismes supplmentaires, appels Borland Data Provider (BDP), permettant les connexions simples avec les sources de donnes supplmentaires, par exemple, avec les bases InterBase ou DB2. L'ensemble de donnes (DataSet) en ADO.NET est un mappage dans la mmoire des tables, des donnes et des relations. ADO.NET travaille avec les donnes en mode d'accs dconnect aux donnes. Cela signifie que toutes les oprations sur les donnes ne sont pas mappes de manire physique dans une table, seuls les utilisateurs ont cette impression. Afin d'actualiser rellement les donnes, il faut programmer des oprations supplmentaires. En ADO, les donnes entre la source de donnes et l'application taient transportes sous forme d'un ensemble d'enregistrements (RecordSet), indpendamment du fait si elles proviennent d'une seule ou de plusieurs tables. En ADO.NET, l'ensemble d'enregistrements a t remplac par un ensemble de donnes. Les donnes qui se trouvent dans cet ensemble sont contenues dans les tables (DataTable). Si l'application demande ADO.NET de retourner les donnes de deux tables, elles sont alors retournes sous forme de deux tables qui se trouvent dans un ensemble de donnes. En ce qui concerne les relations entre les tables qui se trouvent dans l'ensemble de donnes, elles sont reprsentes par l'instance de la classe DataRelation. Mis part les diffrences analyses entre ADO et ADO.NET, il existe une autre caractristique qui diffre ces deux technologies : la plate-forme .NET Framework. Elle est ncessaire lancer l'application ADO.NET. .NET Framework est un environnement d'excution, ncessaire lancer sous Microsoft Windows les programmes crs en .NET (par exemple, dans les langages C#, Borland Delphi 2005, VB.NET). .NET Framework constitue donc une sorte de machine virtuelle Java. La diffrence entre une machine virtuelle et un environnement d'excution est toutefois essentielle : la machine virtuelle sert lancer les applications Java sur plusieurs platesformes alors que .NET Framework sert lancer les applications crites en langages divers sur
www.linuxdevjournal.com

la plate-forme systme MS Windows. .NET Framework contient des types de donnes communes, des mcanismes d'accs, possibles d'utiliser dans les langages adapts .NET Nous avons mentionn les mcanismes BDP qui facilitaient la connexion aux sources de donnes. Avec l'arrive de ADO.NET, de nouveaux fournisseurs de donnes ont t crs pour .NET ; ils s'appellent Borland Data Provider for .NET (BDP.NET). BDP.NET est un ensemble de composants conformes CLX (Component Library X-Platform for Cross Platform), qui tend les fonctionnalits de ADO.NET et facilite l'utilisation des bases de donnes (par exemple, de InterBase) en .NET. BDP.NET appartient au code gr sous .NET mais il est conu par Borland. Il est donc ncessaire d'ajouter certains assemblages au systme o sera lance l'application. En ce qui concerne ADO.NET, cette dmarche n'est pas ncessaire : la bibliothque System.Data.dll se trouve dans .NET Framework. En revanche, en ce qui concerne Delphi, BDP.NET est une bonne solution ncessaire au cas o il faut se connecter InterBase ou DB2 l'aide de ADO.NET. Grce au succs de la technologie ADO, l'entreprise Borland a conu une meilleure technologie d'accs aux bases de donnes que BDE. C'est ainsi que la technologie dbExpress a t ne ; elle est disponible aussi bien dans Delphi que Kylix. Cette technologie est rapide et souple, plus efficace que BDE et ODBC. Elle emploie les pilotes efficaces et garantit ainsi l'un des plus rapides accs aux informations stockes dans les bases de donnes. Les composants de ce groupe spcialement crs sont universels et disponibles galement pour la plate-forme Linux. Cette universalit permet d'avoir seulement un ensemble assez modeste des fonctionnalits, en ce qui concerne la manipulation de donnes.

Paramtres matriels et systme de l'ordinateur o nous avons test l'application


Paramtres matriels : processeur : AMD Duron 800 MHz, mmoire RAM : 384 Mo (DIMM), disque : Samsung 80 Go, 4 Mo cache

Paramtres systme : systme d'exploitation : Windows XP Professional + SP2

L'architecture de dbExpress repose sur les pilotes prvus aux diffrents systmes de gestion des bases de donnes. Chacun de ces pilotes implmente un ensemble d'interfaces, permettant d'accder aux donnes spcifiques pour le serveur. Les composants du groupe DataCLX organisent le travail commun de l'application avec ces pilotes. Le fonctionnement de ces composants ressemble celui des composants BDE, cette diffrence prs qu'ils sont dpourvus de certaines charges inutiles. L'une des caractristiques les plus importantes de l'architecture dbExpress (qui n'existe pas dans d'autres technologies), qui lui garantit une grande efficace, est le fait que ses ensembles de donnes sont sens unique. Les rsultats des requtes SQL sont stocks dans les curseurs sens unique. Ce type des curseurs permet de passer de n'importe quel enregistrement dans un autre mais il ne permet pas de revenir l'enregistrement prcdent. Cette caractristique ne permet pas d'utiliser le composant DBGrid pour visualiser les donnes. L'approche fait toutefois en sorte que toutes les oprations lies au traitement de donnes se droulent plus rapidement. Grce ce caractre sens unique des ensembles

Tableau 2. Exemples de requtes ralises dans la table Livres dont l'efficacit a t mesure Requte SELECT Contenu de la requte SELECT * FROM Livres 'INSERT INTO Livres VALUES ('''+Editisbn.Text+''', '''+Edittitre.Text+''', '''+Editsoustitre.Text+''', '''+Editnombr edepages.Text+''', '''+DBLookupComboBoxiddecatheghor ie.Field.AsString+''', '''+Memoreview.Text+''', '''+Editlieudu stockage.Text+''', '''+Editnombredexemplaires.Text+''')' Description Toutes les donnes de la table Livres sont charges Un nouvel enregistrement est ajout dans lequel les donnes sont charges des composants du formulaire (depuis les champs d'dition et les listes droulantes). L'enregistrement indiqu par l'utilisateur dans la grille DBGrid est supprim. Tous les champs de l'enregistrement indiqu par l'utilisateur sont marqus, d'aprs les valeurs saisies par l'utilisateur dans les champs textes et les listes droulantes du formulaire.

INSERT

DELETE

'DELETE FROM Livres WHERE isbn='''+isbn+'''' 'UPDATE Livres SET isbn='''+Editisbn.Text+''', tytul='''+Edi ttitre.Text+''', soustitre='''+Editsoustitre.Text+''', nombre_ de_pages='+Editnombredepages.Text+', id_de_cathegor ies='+DBLookupComboBoxiddecathegories.Field.AsStrin g+', review='''+Memoreview.Text+''', lieu='''+Editlieudusto ckage.Text+''', nombre_de_livres='+Editnombredexempl aires.Text+' WHERE isbn='''+isbn+''''

UPDATE

1/2006

35

DOSSIER

Application

Gestionnaire de contrleurs

Contrleur

Contrleur

Contrleur

Source de donnes

Source de donnes

Source de donnes

Figure 1. Architecture ODBC


Dbuts des technologies

Technologies d'objet

Technologies ddicacs

DAO ODBC OLE.DB

Technologies universelles

IBX IBO FIB FIB+


Technologies d'acces direct

Gemini EasySoft
Technologies bases sur ODBC

ODAC SDAC MyDAC


Technologie hybrides

BDE

JDBC

dbExpress Zeos

ADO

ADO.NET BDP.NET
Technologies assists de .NET

Technologies exigeant JVM

Figure 2. volution des technologies d'accs aux bases de donnes

APPLICATION

BDE

BASE DE DONNES
Figure 3. Relations entre les applications et le mcanisme BDE

de donnes, les enregistrements ne sont pas mis dans la mmoire tampon, ce qui n'est utile qu'avec la navigation deux sens et la modification de donnes. Une autre restriction consiste ne pas utiliser les mthodes Last() et Prior() de la classe TdataSet ; parmi les mthodes de navigation, il n'est possible que d'utiliser First() et Next(). Il est galement impossible de modifier les donnes (faute des mmoires tampon d'dition). Cependant, il est possible d'diter les enregistrements l'aide d'autres composants (TClientDataSet, TSQLClientDataSet). Les ensembles de donnes sens unique ne ralisent pas le filtrage ; en tant que mcanisme se rfrant plusieurs enregistrements, ce point ncessiterait alors une mise en cache plusieurs enregistrements. Les ensembles de donnes sens unique ne supportent pas les champs d'aperu. Il existe donc de nombreuses restrictions lies cette
36

technologie mais l'efficacit d'accs aux donnes est meilleure par rapport ODBC. Contrairement d'autres technologies, dbExpress ne consomme pas les ressources du serveur pour les requtes lies aux mta-donnes ou d'autres commandes supplmentaires lors de la ralisation des requtes de l'utilisateur. dbExpress ne ncessite pas non plus les ressources clientes aussi grandes que BDE parce que les ensembles de donnes sens unique n'ont pas besoin de mettre en cache les donnes. En dbExpress, les dfinitions des mta-donnes sont traites par les interfaces implmentes dans les bibliothques DLL. dbExpress ne gnre pas non plus les requtes supplmentaires, lies, par exemple, la navigation sur l'ensemble de donnes ou la lecture des champs, stockant les donnes du type BLOB. Le serveur ne reoit que les requtes gnres par l'application

de l'utilisateur. Cette dmarche permet non seulement d'obtenir une meilleure efficacit de l'application de l'utilisateur mais aussi elle rend plus simple le processus de sa ralisation. Une autre qualit importante de la technologie dbExpress est son utilit aussi bien pour Delphi que pour Kylix. Cette technologie emploie les composants CLX ; aprs la compilation par le compilateur de Kylix, il est possible de lancer les applications qui l'utilisent sous Linux. L'accs aux systmes de bases de donnes de plates-formes croises, tels que Oracle, MySQL et InterBase, devient alors possible. Lorsque vous utilisez BDE, ADO ou dbExpress, vous utilisez un moteur indpendant du serveur. Il vous est donc possible de commuter le serveur employ par votre application quoique ce ne soit pas simple. Si vous voulez toutefois que l'application emploie toujours un seul serveur de bases de donnes, vous devriez veiller ce que le moteur de la base de donnes supporte l'API concrte du serveur de bases de donnes utiliser. Il sera alors impossible de transmettre vos programmes sur d'autres serveurs de bases de donnes mais vous omettrez la couche intermdiaire ; cette dmarche permettra d'amliorer les fonctionnalits et surtout, d'acclrer le fonctionnement. En gnral, nous ne crons pas nous-mmes une API de ce type mais nous cherchons des composants pour l'API correspondant Delphi et l'architecture de sa bibliothque de classes. InterBase Express (IBX) est un exemple parfait de ces composants. Les applications cres l'aide de cette technologie fonctionneront mieux, plus rapidement et permettront d'utiliser plus efficacement les caractristiques du serveur spcifique, InterBase ou Firebird, parce que IBX vous permet de vous connecter uniquement ces serveurs de bases de donnes. IBX n'est pas donc une technologie qui devrait remplacer ou bien concurrencer avec d'autres technologies. Elle a t conue pour travailler avec une base de donnes concrte : InterBase. Lorsque vous utilisez InterBase Express (IBX), vous omettez la couche intermdiaire sous forme, par exemple, de BDE et vous communiquez directement avec les logiciels clients InterBase ou bien Firebird. Les composants IBX disponibles sur deux palettes Delphi ont t crs en Delphi spcialement pour les serveurs InterBase et Firebird. Ce point a de nombreuses qualits. Grce la suppression de la couche intermdiaire, comme BDE, existant entre l'application et le serveur InterBase, le temps systme, prvu aux requtes, a t rduit au minimum et la dure de communication avec le serveur devient incroyablement courte. IBX propose une approche diffrente des autres technologies : c'est une technologie spcialise ddie uniquement InterBase et Firebird. Elle est ainsi capable d'utiliser galement les fonctions InterBase (Firebird), rencontres rarement dans d'autres serveurs.
1/2006 www.linuxdevjournal.com

DOSSIER

De plus, IBX propose de nombreuses classes inconnues jusqu' prsent dans d'autres technologies. Voici les classes les plus importantes qui n'ont pas d'quivalents dans les technologies dcrites : cette classe est ncessaire lorsqu'il faut gnrer un code SQL qui servira crer des objets dans la base de donnes. Les objets de cette classe permettent d'accder au code qui cre les objets systme dans la base de donnes, TIBSQLVar cette classe sert permettre l'accs aux champs aprs la requte effectue par l'utilisateur, TIBInputRawFile cette classe permet de lire les fichiers au format dans lequel les fichiers externes de la base de donnes InterBase sont enregistrs, TIBConfigService cette classe permet de configurer les paramtres de la base de donnes, TIBBackupService cette classe permet de crer des copies de sauvegarde de la base de donnes, TIBRestoreService cette classe permet de restituer la base de donnes d'aprs les copies de sauvegarde, TIBValidationService cette classe permet de vrifier si la base de donnes est correcte ; elle sert galement rsoudre les problmes avec les transactions, TIBInstall, TIBUninstall ces classes permettent d'installer et de dsinstaller le serveur InterBase.
TIBExtract

identique dans ces trois technologies. Mis part ces quelques points, les diffrences entre elles ne sont pas normes. Les technologies FIB et IBO ne contiennent pas les classes qui n'ont pas d'quivalents dans la technologie IBX. Pour cette raison, les technologies FIB et IBO ne sont pas rvolutionnaires, ce n'est qu'un autre type de technologie qui sert travailler avec InterBase. Un autre groupe de technologies ddies un serveur concret de bases de donnes comprend les technologies provenant de ODBC. Gemini et EasySoft sont des exemples parfaits de ces technologies. Cette branche de l'volution de la technologie d'accs aux bases de donnes est de moins en moins importante. Aprs le succs de IBX, l'entreprise Core Lab Software Development a dcid de crer des technologies d'accs aux bases de donnes, ddies d'autres serveurs que InterBase. Les technologies ODAC, SDAC et MyDAC permettant d'accder Oracle, SQL Server et MySQL sont ainsi nes. Ces technologies sont rvolutionnaires car hybrides. Autrement dit, elles sont dotes de leurs propres mcanismes

d'accs aux bases de donnes mais elles sont galement capables d'utiliser les sources ODBC dfinies dans le systme d'exploitation. Dans les ODAC, SDAC et MyDAC, vous pouvez trouver plusieurs classes absentes dans les technologies analyses. Parmi les nouvelles classes apparues dans la technologie ODAC se trouvent notamment :
(SmartQuery) cette classe est une alternative de la classe TOraQuery, TOraSQL cette classe sert excuter les instructions PL/SQL, les procdures stockes etc., TOraNestedTable cette classe sert grer les tables embarques, TOraScript cette classe sert par exemple excuter les squences, TOraPackage cette classe sert excuter les paquets PL/SQL, TOraAlert cette classe permet de transfrer les informations entre les sessions, TOraSmart

.NET Framework
ADO.NET Data Data Provider DataSet

Windows Forms
Figure 4. Architecture ADO.NET

ASP.NET

Web Services

Puisque les composants et les classes IBX sont crits entirement en Delphi, ils se compilent donc dans les fichiers exe de l'application. Il n'est pas ncessaire de distribuer plusieurs fichiers DLL avec l'application comme c'est le cas de BDE. Puisque l'application ne se compose que d'un fichier excutable, il n'est pas ncessaire de crer des programmes d'installation subtiles. Il n'est pas ncessaire non plus de veiller ne pas modifier les configurations (comme c'est le cas de BDE), tout se trouve sous contrle de IBX. Aprs le succs de la base de donnes InterBase et de la technologie IBX, de nombreuses entreprises ont commenc rflchir crer leurs propres technologies (d'accs directe) qui permettraient accder au serveur InterBase. Une telle technologie devrait constituer une alternative IBX. Au dbut du 20me sicle, deux technologies FIB et IBO sont nes ; elles ne permettent d'accder qu' la base de donnes InterBase. Les technologies IBX, FIB et IBO se ressemblent beaucoup. Elles ne se diffrent que par les noms de composants, les proprits et les classes utiliser pour se connecter la base de donnes ; l'efficacit n'est pas non plus
38

Listing 2. Procdure qui sert raliser et mesurer la dure des requtes du type SELECT
procedure demandeSelect(demande:string; ADOQuery:TADOQuery; RichEdit:TRichEdit); var Freq, TimeStart, TimeEnd : Int64; czas : double; try

begin

ADOQuery.Close;

ADOQuery.SQL.Clear;

//fermeture du composant

ADOQuery.SQL.Add(zapytanie); begin

//nettoyage du contenu de SQL

if QueryPerformanceFrequency(Freq) then QueryPerformanceCounter(TimeStart); ADOQuery.Open; QueryPerformanceCounter(TimeEnd); czas:=(TimeEnd-TimeStart)/Freq;

//ajout d'une nouvelle requte

//excuter une requte SELECT

RichEdit.Lines.Add('L'excution de la requte SELECT a dur :' end; end; +FloatToStr(czas)+' secondes');

except end;

1/2006 www.linuxdevjournal.com

volution et efficacit des technologies d'accs

cette classe permet de charger rapidement les donnes dans la base de donnes, TOraErrorHandler cette classe sert traduire les messages d'erreurs, TBDESession cette classe permet d'intgrer les composants ODAC aux applications en BDE, TConnectDialog cette classe sert stocker le nom d'utilisateur, le mot de passe et le nom du serveur de bases de donnes, TVirtualTable cette classe sert stocker l'ensemble de donnes dans la mmoire.
TOraLoader

Avec la cration d'un nouveau langage de programmation Java, indpendant de la plateforme et de l'architecture matrielle, une ide est venue de raliser une nouvelle interface de bases de donnes. Cette interface rpondrait aux mmes exigences que le langage proprement parler. La consquence naturelle de cette dmarche consisterait renoncer aux mcanismes API existants, en particulier
Auteurs id_auteur prnom nom

ODBC et concevoir une nouvelle technologie, cre entirement en Java. Cela ne signifie pas toutefois que les programmeurs, utilisant ODBC jusqu' prsent, doivent compltement changer leur faon de travailler pour raliser des applications de bases de donnes. Au contraire, JDBC ressemble la technologie ODBC du point de vue des fonctionnalits. Les possibilits de l'interface ont t amliores et l'interface proprement parler a t adapte la spcificit du langage Java. Actuellement, JDBC est utilis directement comme une technologie unifie d'accs n'importe quelle base de donnes et aussi comme une base des applications/interfaces de rang plus lev, permettant d'accder aux bases de donnes de plus haut niveau. JDBC dtermine un certain niveau de conformit avec les standards SQL existants. Le principe dit toutefois que chaque pilote JDBC doit correspondre au moins la version ANSI SQL-92 du standard SQL. De plus, les concepteurs de l'interface ont cr d'autres principes, correspondant aux versions nouvelles du standard JDBC. D'aprs ces principes, les
Livres 1 isbn titre sous - titre nombre_de_pages id_de_cathgorie recension place nombre_de_livres

Auteurs_de_livre id_d'auter_de_livre id_d'auteur isbn

Cathgories 1 id_de_cathgorie nom

Figure 5. Schma des relations entre les tables de la base de donnes

Listing 3. Procdure qui sert raliser et mesurer la dure des requtes du type INSERT, UPDATE, DELETE
procedure demande_Insert_Delete_Update(demande:string; ADOQuery:TADOQuery; mode_de_ var demande:string; RichEdit:TRichEdit);

Freq, TimeStart, TimeEnd : Int64; czas : double; try

begin

ADOQuery.Close; ADOQuery.SQL.Clear;

//fermeture du composant //nettoyage du contenu de SQL

ADOQuery.SQL.Add(zapytanie); //ajout d'une nouvelle requte if QueryPerformanceFrequency(Freq) then begin

QueryPerformanceCounter(TimeStart); ADOQuery.ExecSQL;

QueryPerformanceCounter(TimeEnd); czas:=(TimeEnd-TimeStart)/Freq;

//excuter une requte

requtes SQL sont envoyes au SGBD appropri pour leur ralisation. Si le SGBD est incapable de grer une commande transmise par JDBC, l'application gnre une exception dfinie. De plus, JDBC propose des informations sur le SGBD et ses caractristiques (paramtres, fonctionnalits, etc.). Ces informations sont envoyes l'utilisateur sous forme des mtadonnes. Le pilote JDBC (JDBC driver) est un ensemble de classes compiles (sous forme d'un code octets de Java) qui implmentent toutes les interfaces contenues dans le paquet java.sql et reimplmentent les classes qui y restent. Dans la plupart des cas, ces classes sont crites entirement en Java. L'implmentation dpend directement du systme de gestion de base de donnes laquelle se connecte l'application utilisant le pilote. Chaque pilote JDBC sert donc communiquer avec une base de donnes concrte et n'est pas utilis avec les bases d'autres fabricants. La solution prsente, bien qu'elle ressemble d'autres technologies utilises avec C++ ou Delphi, devient plus importante avec Java. Puisque Java est un langage portatif dans la plupart des cas, les producteurs de pilotes doivent prparer un seul paquet pour chaque version du standard JDBC ( l'exception des passerelles JDBC-ODBC et Native-API partlyJava). Ainsi, contrairement par exemple aux interfaces susmentionnes pour C++, utilisezvous un binaire aussi bien sous Linux que sous Windows. Les pilotes JDBC prpars par chaque producteur sont dans la plupart des cas disponibles gratuitement et constituent en quelque sorte un complment du paquet JDBC. Il est possible de les tlcharger soit depuis les sites des fournisseurs SGBD soit depuis le rpertoire de Sun. Tous les pilotes ne sont pas cependant entirement gratuits. Une partie d'entre eux est distribue commercialement. Les nouvelles xigences, les nouveaux systmes de bases de donnes et les nouveaux langages de programmation permettent de crer de nouvelles technologies d'accs aux bases de donnes. Pour cette raison, il faut s'attendre qu'une nouvelle technologie rvolutionnaire soit prochainement cre. Les petites entreprises continueront bien videmment crer des technologies d'accs aux donnes moins connues et ddies en gnral un seul serveur de bases de donnes.

RichEdit.Lines.Add(' L'excution de la requte '+mode_de_demande+ end; end; la dur : '+FloatToStr(temps)+' secondes');

Efficacit des technologies d'accs


Pour les besoins des analyses de l'efficacit des technologies, nous avons cr une base de donnes dont la structure est prsente sur la Figure 5. La base de donnes se compose de quatre tables : Livres, Catgories, Auteurs, Auteurs_livres.
39

except end;

www.linuxdevjournal.com

1/2006

DOSSIER

La table Livres est une table principale dans la base de donnes ; elle stocke les informations sur le numro ISBN, le titre, le soustitre, le nombre des pages dans le livre, le numro de la catgorie laquelle le livre appartient, l'emplacement du livre et le nombre des exemplaires stocks dans l'endroit donn. Cette table sert effectuer les analyses de l'efficacit des technologies. Les attributs de cette table sont du type texte et numrique. Si vous voulez raliser une application qui mesure la dure d'excution des requtes, utilisez les composants qui se trouvent dans plusieurs onglets de Delphi. Certaines technologies analyses dans cet article ne sont pas disponibles en Delphi par dfaut mais il est possible de tlcharger leurs programmes d'installation (au moins, dans les versions temporaires) depuis les sites Web des producteurs. Le Tableau 1 prsente les composants qui servent se connecter la base de donnes, effectuer une requte SQL et visualiser les donnes tandis que l'encadr prsente la manire de combiner les composants (quelles proprits faut-il configurer afin de se connecter la base et d'effectuer une requte SQL ?). Afin d'analyser l'efficacit des technologies, on a conu une mthode charge de mesurer la dure d'excution des requtes SQL dans l'environnement Borland Delphi. Cette mthode sert mesurer l'efficacit des technologies suivantes : ADO, ODBC, BDE, dbExpress, IBX, IBO, FIB, ODAC, SDAC, MyDAC, EasySoft et Gemini. Remarquez toutefois que les analyses sont effectues sous MS Windows qui n'est pas un systme de temps rel. La dure d'excution d'une requte peut donc tre diffrente et dpend de nombreux facteurs : l'occupation du processeur, la vitesse de surfrquenage, la quantit de la mmoire vive, la charge du systme et d'autres (l'encadr prsente une plateforme logicielle et matrielle o les tests ont t effectus). Le nombre des processus lancs dans le systme influence galement la dure d'excution des requtes. Pour cette raison, lors des tests du programme charg de mesurer l'efficacit des technologies d'accs, nous avons dsactiv tous les processus inutiles. Les diffrences de dure d'excution des requtes identiques taient ainsi petites et s'levaient au maximum 0,01 seconde. La mthode prsente permet toutefois de constater l'efficacit des technologies parce que les dures d'excution des requtes sur les plates-formes logicielles et matrielles diffrentes sont proportionnelles. Ainsi, le nombre des millisecondes d'excution d'une requte n'est-il pas important dans la mthode prsente ; c'est la rponse la question quelle technologie a ralis la requte donne le plus rapidement qui nous intresse. La mthode de mesure de la dure, prsente dans le Listing 1 permet de constater quelles technologies d'accs testes sont efficaces. Grce au code prsent dans le Listing 1, il est possible de mesurer l'efficacit d'excution des requtes du type SELECT, INSERT, UPDATE, DELETE etc.
40

Cette mthode est la plus exacte des mthodes disponibles en Delphi et charges de mesurer la dure parce qu'elle repose sur les frquences du processeur. Dans un premier temps, on dfinit la frquence du processeur (ligne 6), ensuite, on lit la valeur de frquences du processeur avant (ligne 8) et aprs (ligne 10) l'excution d'une opration. L'tape suivante (ligne 11) consiste mesurer la dure d'excution de l'opration d'aprs un modle : la diffrence des frquences est divise en frquence du processeur. La dernire tape consiste afficher la dure d'excution de la requte dans le composant RichEdit. La mthode prsente a servi mesurer la dure d'excution de sept requtes SQL (du type INSERT, DELETE, UPDATE et SELECT) dans chaque base de donnes. Nous avons rejet deux valeurs extrmes ; les cinq autres rsultats ont servi mesurer la dure moyenne ncessaire raliser une requte d'un type donn. Le Tableau 2 prsente les exemples de requtes ralises dans les bases de donnes dont l'ef-

ficacit a t mesure. La premire colonne de la table contient la requte utilise dans la suite de l'article. Dans la suite de l'article, au lieu d'crire l'ensemble de la requte, par exemple, SELECT * FROM Livres, nous crirons seulement SELECT qui indique cette requte. Vous avez ainsi vu la mthode, charge de mesurer la dure d'excution des requtes. Il est donc temps de prsenter le code des procdures qui servent raliser les requtes. Les requtes SQL du type SELECT sont ralises par la procdure prsente dans le Listing 2. La procdure reoit les contenus suivants en paramtres : le contenu de la requte SQL, le composant de l'ensemble de donnes qui doit raliser la requte et le composant RichEdit, charg de prsenter la dure d'excution de la requte. La procdure prsente emploie bien videmment la technologie ADO pour raliser les requtes. Afin d'crire la procdure excutant une requte du type SELECT par exemple, dans la technologie BDE, utilisez le composant Query au lieu du composant

Tableau 3. Efficacit dans le cadre des technologies d'accs et du systme de gestion de bases de donnes Systme de bases de donnes Technologie ADO dbExpress Oracle ODAC BDE ODBC EasySoft IBX ADO dbExpress InterBase BDE FIB IBO Gemini ADO SQL Server 2000 SDAC dbExpress ODBC ADO DB2 dbExpress ODBC MySQL MyDAC ODBC ADO ODBC ADO ODBC Dure moyenne d'excution d'une requte en secondes (place occupe dans la classification) SELECT 0,0148 (20) 0,0051 (5) 0,0063 (11) 0,0096 (17) 0,0094 (16) 0,0249 (23) 0,0051 (5) 0,0342 (25) 0,0020 (2) 0,0076 (14) 0,0058 (8) 0,0125 (18) 0,0081 (15) 0,0163 (21) 0,0059 (10) 0,0022 (3) 0,0058 (8) 0,0273 (24) 0,0016 (1) 0,0072 (12) 0,0044 (4) 0,0072 (12) 0,0208 (22) 0,0054 (7) 0,0374 (26) 0,0136 (19) INSERT 0,0103 (20) 0,0093 (19) 0,0072 (16) 0,0069 (15) 0,0241 (25) 0,0317 (26) 0,0015 (2) 0,0029 (8) 0,0017 (4) 0,0023 (6) 0,0011 (1) 0,0035 (10) 0,0028 (7) 0,0092 (18) 0,0033 (9) 0,0052 (13) 0,0051 (12) 0,0087 (17) 0,0064 (14) 0,0105 (21) 0,0016 (3) 0,0019 (5) 0,0039 (11) 0,0141 (23) 0,0144 (24) 0,0115 (22) UPDATE 0,0096 (18) 0,0076 (15) 0,0072 (14) 0,0082 (16) 0,0249 (25) 0,0285 (26) 0,0012 (1) 0,0039 (9) 0,0019 (3) 0,0022 (5) 0,0013 (2) 0,0040 (10) 0,0024 (6) 0,0132 (22) 0,0029 (8) 0,0083 (17) 0,0048 (12) 0,0118 (21) 0,0098 (19) 0,0114 (20) 0,0019 (3) 0,0024 (6) 0,0060 (13) 0,0045 (11) 0,0167 (24) 0,0138 (23) DELETE 0,0102 (24) 0,0079 (21) 0,0072 (18) 0,0079 (21) 0,0130 (25) 0,0196 (26) 0,0008 (1) 0,0024 (10) 0,0015 (3) 0,0019 (6) 0,0008 (1) 0,0020 (7) 0,0020 (7) 0,0086 (23) 0,0023 (9) 0,0060 (17) 0,0050 (15) 0,0074 (19) 0,0051 (16) 0,0075 (20) 0,0018 (4) 0,0018 (4) 0,0047 (14) 0,0035 (11) 0,0041 (13) 0,0035 (11)

Access

Informix

1/2006 www.linuxdevjournal.com

volution et efficacit des technologies d'accs

ADOQuery. La procdure prsente ne permet pas toutefois de raliser les requtes SQL du type INSERT, UPDATE, DELETE. Afin d'excuter ces requtes, il faut crire une autre procdure, comme le prsente le Listing 3. typ_zapytania (type de la requte) est un paramtre supplmentaire qui est apparu avec cette procdure. Il prend trois valeurs (Delete,Update,Insert) et sert identifier le type de la requte dont la dure a t mesure. Si le programmeur qui ralise des applications de bases de donnes tient l'efficacit, il doit prendre en considration aussi bien l'efficacit des technologies que l'efficacit des bases de donnes. Le Tableau 3 prsente l'efficacit de chaque technologie qui travaille avec les bases de donnes.

Analyse de rsultats
Grce aux rsultats de le Tableau 3, nous pouvons rpondre la question suivante : quelle systme de bases de donnes et quelle technologie d'accs aux donnes choisir pour que l'application soit le plus efficace possible ? Nous avons mis en gras les cinq technologies les plus efficaces qui servent raliser des types de requtes SQL divers dans le Tableau 3. Le Tableau 3 dmontre que la meilleure solution pour les personnes qui tiennent l'efficacit des applications consiste opter pour le serveur InterBase et la technologie IBX, FIB, dbExpress ou le serP

veur MySQL et la technologie MyDAC. La Table confirme galement l'opinion d'aprs laquelle les technologies ddies un seul serveur (IBX, FIB et MyDAC ne supportent qu'un seul serveur de bases de donnes) sont les plus efficaces. Le fait que InterBase et MySQL sont les serveurs de bases de donnes les plus efficaces se confirme aussi. N'oubliez pas que InterBase est un serveur crit en Delphi. Les technologies FIB et IBX sont galement crites en Delphi (ainsi, toutes les couches d'accs aux donnes, par exemple ODBC, sont-elles omises). dbExpress a t conu par l'entreprise Borland (producteur de Delphi). D'o la conclusion : vous obtiendrez la meilleure efficacit en utilisant les produits et les technologies d'une seule entreprise (Borland). Les autres technologies testes ont t cres dans d'autres langages de programmation, utilisent les couches intermdiaires ou bien sont destines aux systmes de bases de donnes moins efficaces. Les technologies IBX et FIB sont donc avantageuses dans la rapidit d'excution des instructions SQL. Je pense qu'il sera difficile dans l'avenir de corriger davantage l'efficacit de ces deux technologies. Du point de vue de l'efficacit, ce sont les meilleures technologies qui travaillent avec le meilleur serveur : InterBase. La technologie dbExpress susmentionne permet d'accder plusieurs serveurs diffrents et c'est donc la meilleure solution du point de U B L I C I

vue de l'efficacit. La technologie dbExpress est recommande par Borland. Les dures obtenues par cette technologie lors d'excution des requtes SQL sont vraiment bonnes et les dures d'excution des requtes du type SELECT sont les meilleures parmi toutes les technologies testes. La technologie ADO choue au niveau de l'efficacit. Chez ADO, les nouveaux mcanismes crs par Microsoft permettent d'excuter facilement les instructions SQL du niveau de plusieurs langages de programmation, notamment du niveau de Delphi. Les dures d'excution des requtes SQL sont pires que celles ralises l'aide de la technologie ODBC.

Conclusion
En ralisant des logiciels de bases de donnes, les programmeurs se demandent souvent quelle technologie d'accs aux donnes choisir. Faut-il utiliser une technologie multi plates-formes ou une seule plate-forme, une technologie supportant plusieurs systmes de bases de donnes ou ddie un seul serveur ? Une rponse simple n'existe pas. Si vous tenez toutefois l'efficacit et la rapidit du fonctionnement et l'application est destine au systme d'exploitation MS Windows, optez pour les technologies dbExpress et IBX, FIB, ODAC, SDAC, MyDAC, ddies un serveur de bases de donne dfini. Elles sont rellement efficaces. T

www.linuxdevjournal.com

1/2006

41