- Resumen y descripción
- Borland Database Engine (BDE)
- ActiveX Data Object (ADO)
- dbExpress
- Interbase Express (IBX)
Resumen:
La monografía trata acerca de los mecanismos que existen en Delphi 6 para el acceso a bases de datos. A grandes rasgos se analizan sus características y se dan a conocer sus ventajas y deficiencias con el fin de saber cual emplear en cada caso.
Categoría: mecanismo, acceso, bases de datos, componentes, Borland, Data, Engine, BDE, Activex, Object, ADO, dbExpress, Interbase, IBX.
—————–
Aunque Delphi 6 es una versión de Delphi que va quedándose atrás pues después de esta han surgido varias más hasta llegar a la actual que es Delphi 2006, no deja de ser útil para aquellas personas que no cuenten con los recursos de hardware necesarios para instalar versiones superiores y más aún si esta cubre las necesidades del programador dadas por las características del problema.
Una de esas necesidades del programador y que es de las más frecuentes es el acceso a bases de datos desde una aplicación.
Aunque otras versiones de Delphi, incluso inferiores a Delphi 6, proveen de un conjunto de componentes para el acceso a una base de datos nos centraremos en conocer los mecanismos que ofrece Delphi 6 para ello.
En Delphi 6 existen varias clases de componentes para acceder a bases de datos por tanto en ocasiones puede resultar difícil la elección de una de ellas para nuestro problema en particular. Los componentes para acceder a bases de datos son agrupados en paletas de acuerdo al mecanismo de acceso a datos que ellos emplean. Estos mecanismos son:
- Borland Database Engine (BDE).
- ActiveX Data Object (ADO).
- dbExpress.
- InterBase Express (IBX).
A pesar de que todos estos mecanismos tienen un mismo propósito: el comunicarse con una base de datos y representar la información que esta contiene, ellos se diferencian unos de otros por aspectos como: desempeño, uso de recursos, robustez, portabilidad de un sistema operativo a otro, facilidad en su desarrollo, así como la disponibilidad de controladores (drivers) asociados a ellos para acceder a diferentes tipos de bases de datos.
La decisión de cual mecanismo elegir está determinado, para el desarrollador, por la importancia dada a cada uno de los aspectos anteriores. Además está determinado por el tipo de base de datos que se va a emplear ya sea Paradox, Access, MS SQL Server, Interbase, entre otras.
A continuación veamos algunas características de cada uno de estos mecanismos de acceso a datos.
Borland Database Engine (BDE):
Este mecanismo surgió en Delphi desde la misma versión 1 como un motor para acceder a bases de datos Paradox.
De todos los mecanismos de acceso a datos BDE es el que brinda un mayor número de funciones para manipular la información contenida en una base de datos, provee también de una interfaz para acceder a una amplia variedad de servidores de bases de datos a través de los controladores correspondientes.
Sin embargo una de las desventajas que tiene este mecanismo es que al construir una aplicación basada en BDE, en esta se incluye automáticamente el motor de acceso a datos.
Este hecho además de incrementar el tamaño de la aplicación resultante, hace aumentar la complejidad de su desarrollo. El costo, por tanto, de futuros desarrollos y mantenimientos a la aplicación continuaría siendo alto.
En muchas fuentes de información se dice que este mecanismo debido a su arquitectura es ideal para trabajar con bases de datos Paradox y dBase -tipos de bases de datos estas basadas en fichero tal como lo es Microsoft Access– por lo que algunos desarrolladores no lo emplean en otros tipos de bases de datos, evitando que se limiten funcionalidades de estas en la aplicación ya que BDE no las soporta. Tal es el caso de los problemas de compatibilidad que se presentan entre los campos de determinados servidores SQL y los tipos de datos de Delphi.
BDE presenta también problemas específicos con algunos gestores, como es por ejemplo en MS SQL Server, en el manejo simultáneo de varias consultas. También en el caso de Interbase existen dificultades ya que BDE no puede acceder a los tipos de arreglos Interbase.
BDE tiene también otro inconveniente en su uso: es un mecanismo de acceso a datos que desde hace años la misma Borland lo está considerando como en desuso, lo que se conoce en inglés como "deprecated".
Esto significa que aunque BDE haya aparecido en las versiones siguientes de Delphi, este no ha sido mejorado ni se le han incorporado nuevas funcionalidades por lo que tiende a desaparecer. En su lugar Borland recomienda que se emigre para el mecanismo dbExpress, en el caso de bases de datos remotas y en el caso de base de datos locales como Paradox y dBase, se aconseja transformarlas a la edición Desktop de InterBase 6 y luego emplear como mecanismo de acceso a datos InterBase Express o dbExpress.
La tecnología ADO Express apareció en Delphi desde la versión 5.
Los componentes ADO Express proveen de acceso a bases de datos por medio de un marco de trabajo simplificado que contiene varios objetos ADO dedicados a efectuar operaciones con la base de datos. Cada uno de estos objetos son encapsulados dentro de los distintos componentes que ofrece Delphi para este mecanismo.
Para lograr el acceso a los datos se necesita que tanto en el servidor donde se encuentre la base de datos como en la estación cliente esté instalado el Microsoft ActiveX Data Objects 2.1 o una versión superior. Se requiere además la existencia de un proveedor OLE DB, de los cuales existe un gran número para diferentes bases de datos, o en su lugar un controlador ODBC. OLE DB es una interfaz de bajo nivel diseñado para acceder a cualquier tipo de datos.
Las aplicaciones basadas en ADO usan el ADO 2.1 para interactuar con el proveedor OLE DB el cual se conecta con la base de datos y accede a los datos.
ADO es un estándar de Microsoft por lo que tanto él como OLE DB son distribuidos por esta compañía y desde hace algunas versiones de Windows forman parte del sistema operativo. Este hecho da mucha eficiencia a este mecanismo pues de esta manera el motor de acceso a datos está integrado en el propio sistema por lo que, a diferencia de BDE, la aplicación no tiene que incluirlo en ella haciéndola más ligera y más fácil de construir.
ADO es un mecanismo bastante ligero y altamente poderoso, pues entre otras razones, permite acceder tanto a bases de datos relacionales como no relacionales. A diferencia de BDE provee de gran funcionalidad y rapidez en la actualización del resultado de una consulta a través del método Requery.
Sin embargo aunque ADO es empleado para acceder a múltiples bases de datos se dice que este mecanismo tiene un número de características que parecen estar más orientadas hacia Access que a otros gestores, hecho muy similar al que sucede entre BDE y Paradox.
Una de las características más interesantes que posee ADO es el uso de cursores o punteros en la estación cliente.
Una vez que se ha obtenido del servidor una copia completa de un dataset (una tabla, una consulta o un procedimiento almacenado), en el cliente se pueden efectuar, sobre esta copia caché, operaciones como ordenado, filtrado y edición de datos. Con esto se tiene la posibilidad de crear una copia provisional de los datos en un fichero local y trabajar con esta sin una conexión con el servidor.
Este mecanismo de acceso a datos se incorporó en Delphi a partir de la versión 6. Fue diseñado, entre otras razones, con el propósito de facilitar la configuración de los controladores y reemplazar la tecnología de conexión a base de datos remotas existente hasta ese momento, como la usada por BDE, brindando ligereza y facilidad de desarrollo.
Por medio de un conjunto de controladores permite, de todos los mecanismos, el acceso más rápido a la información de la base de datos.
Para cada base de datos, dbExpress utiliza un controlador que adapta el formato de esta a un conjunto de interfaces dbExpress. De esta manera al construir una aplicación que use este mecanismo se necesita incluir en ella una librería de enlace dinámico (DLL) que es la que constituye el controlador para la base de datos específica.
Una característica muy importante de dbExpress es que posibilita su uso y desarrollo en más de un plataforma pues en Linux, con la versión de Delphi para este sistema operativo conocida como Kylix, puede emplearse este mecanismo también.
La gran rapidez que tiene dbExpress en el acceso a los datos se debe a que este mecanismo emplea datasets unidireccionales los cuales son diseñados para este propósito con un empleo de recursos mínimo. Los datasets unidireccionales al no almacenar información en memoria están limitados en su funcionalidad con respecto a otros tipos de datasets.
De esta manera se ven afectadas, en mayor o menor medida, operaciones como la navegación entre los registros, ediciones para actualizaciones, filtrado de registros, búsqueda de registros por campos e incluso su representación en componentes visuales.
Dadas estas limitaciones en dbExpress, a diferencia de BDE y ADO, no se ofrecen un amplio número de funciones para la manipulación de los datos. También hay otros tipos de limitaciones como por ejemplo la dependencia que tiene una aplicación de una DLL, lo que puede resultar en ocasiones un obstáculo. Algunos sistemas gestores de bases de datos no son bien soportados por dbExpress, ese es el caso de los problemas existentes entre los controladores de este para MySQL. Por otra parte ciertas características especiales de un gestor como son los diferentes tipos de datos no son brindadas por dbExpress, así sucede por ejemplo en el caso de Oracle.
A través de sus componentes este mecanismo permite hacer una conexión directa con una base de datos Interbase sin que para ello intervenga ningún motor o capa intermedia como sucede con BDE y ADO, lo que aumenta la velocidad en el acceso a los datos.
Además de los componentes que aparecen por defecto en la paleta Interbase al instalar Delphi, pueden emplearse también unos componentes asociados a estos dedicados a la administración de bases de datos Interbase.
Con ellos se pueden efectuar tareas administrativas como la configuración de los parámetros de la base de datos, creación de copias de seguridad (backup), establecimiento de los permisos de acceso, entre muchas otras. Estos, al igual que los primeros, requieren de la instalación de Interbase 6 para su uso.
El hecho de que los componentes Interbase son exclusivos para bases de datos de este tipo resulta por una parte una limitante pero también una ventaja pues todas las características y beneficios que brinda Interbase son soportadas por sus componentes. Más que referirnos al mecanismo, todo el comentario se centrará entonces en la base de datos Interbase.
Interbase es un sistema de administración de base de datos relacionales creado por Borland y compatible con varias plataformas. Puede ser usado tanto en estaciones de trabajo (edición Escritorio) como en estaciones servidor (edición Servidor) y sus respectivas instalaciones están incorporadas en el programa de instalación de Delphi 6. Todo esto convierte a Interbase en una opción importante a tener en cuenta a la hora de elegir un gestor.
A diferencia de otros gestores que requieren de ciertos recursos (hardware y software) y de un alto costo para su mantenimiento Interbase fue diseñado para operar en ambientes con pocas prestaciones y casi sin necesitar mantenimiento por parte de un administrador, sin sacrificar su rendimiento el cual es alto. Tiene también la capacidad de soportar transacciones simultáneas de varias aplicaciones y no ocasiona gran sobrecarga a estas por operaciones con la base de datos manteniendo la debida transparencia para los usuarios.
Tal es el desarrollo de este gestor que algunos expertos lo consideran en varios puntos superior a SQL Server. Se dice que esa ventaja está determinada por los requerimientos de hardware, el soporte multiplataforma, la flexibilidad de los disparadores (triggers), la velocidad de recuperación ante alguna falla, entre otros aspectos.
También se ha determinado su superioridad con respecto a MySQL y está radica en los disparadores, los procedimientos almacenados, la recuperación ante una falla, tipos de datos para cálculos financieros precisos, etcétera.
A modo de conclusión puede señalarse que la elección de un mecanismo de acceso a datos debe hacerse conociendo las características de cada uno de ellos y seleccionar entonces el más adecuado a nuestro problema, aunque también como se ha visto la elección depende de la base de datos que se emplee y esta a su vez de la situación real.
Cantú, Marco. Data access dilemma. Extraído de http://www.marcocantu.com/development/papers/dataado.htm
Gajic, Zarko. Using ADO in a Delphi Application. Extraído de http://about.com/compute/adodelphi.htm
Kaster, John. The future of the Borland Database Engine (BDE) and SQL Links. Extraído de http://community.borland.com/futureBDE.htm
Martínez, Mario. Componentes ADO en Delphi. Referencia rápida. Extraído de http://www.egroups.com/group/delphidf.htm
Todd, Bill. Borland Interbase and Microsoft SQL Server: A Technical Comparison. Extraído de http://www.borland.com/
Todd, Bill. Borland Interbase and MySQL: A Technical Comparison. Extraído de http://www.borland.com/
Why not just use DataSnap / DBExpress / BDE ?. Extraído de http://kylecordes.com
Datos de los autores:
Lic. Santiago Cuadrado Rodríguez
.
Fecha de realización: Enero del 2006.
Dr. CT Emilio González Rodríguez
.
Categoría: Bases de datos.