- 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.