CONTENIDO

  • ¿Que es Acceso a Datos?:
  • Tecnologías de acceso a datos
  • ADO.NET
  • ADO
  • OLE DB
  • Elegir ADO.NET o ADO
  • Elegir OLE DB
  • Qué es ODBC?
  • Data Access Object
    • Ventajas
    • Desventajas

¿Que es Acceso a Datos?: Las bases de datos se pueden definir como una colección de datos interrelacionados entre si, almacenados en conjunto sin redundancias perjudiciales e innecesarias. Su finalidad es servir a una aplicación o más, de la mejor manera posible, los datos se almacenan de modo que resulten independientes de los programas que los usan; se emplean métodos bien determinados para incluir datos nuevos y para modificar o extraer los datos almacenados. [1].

Tecnologías de acceso a datos[2]

La mayoría de las aplicaciones necesitan algún mecanismo de acceso a datos. Si está creando una aplicación nueva, dispone de tres opciones excelentes para obtener acceso a los datos: ADO.NET, ADO y OLE DB. Si necesita modificar el mecanismo de acceso a datos de una aplicación existente, debería seguir utilizando la tecnología actual de acceso a datos de la aplicación por cuestiones de mantenimiento. No obstante, si prevé que la aplicación va a tener un ciclo de vida largo, debería considerar la posibilidad de rediseñar la tecnología de acceso a datos de la aplicación y utilizar ADO.NET en aplicaciones administradas o ADO en aplicaciones nativas. A largo plazo, el uso de las tecnologías más modernas de acceso a datos reduce el tiempo de desarrollo, simplifica el código y proporciona un rendimiento excelente.

ADO.NET [2]

ADO.NET constituye la interfaz fundamental de las aplicaciones para proporcionar servicios de acceso a datos en la plataforma Microsoft .NET. Puede utilizarse ADO.NET para obtener acceso a orígenes de datos por medio de los nuevos proveedores de datos de .NET Framework. Entre estos proveedores de datos cabe destacar:

  • Proveedor de datos de .NET Framework para SQL Server.
  • Proveedor de datos de .NET Framework para OLE DB.
  • Proveedor de datos de .NET Framework para ODBC.
  • Proveedor de datos de .NET Framework para Oracle.

Estos proveedores de datos son compatibles con numerosas necesidades de desarrollo, como los objetos empresariales de nivel medio con conexiones directas con datos procedentes de bases de datos relacionales y de otros orígenes.

La interfaz ADO.NET está específicamente diseñada para aplicaciones Web basadas en mensajes, no obstante, proporciona también funcionalidad aplicable a otras arquitecturas de aplicaciones. ADO.NET admite el acceso a datos de correspondencia imprecisa y así permite maximizar el uso compartido de datos mediante la reducción del número de conexiones activas con la base de datos; de este modo, disminuye la probabilidad de que varios usuarios compitan entre sí por los recursos limitados del servidor de base de datos.

ADO.NET proporciona distintos tipos de acceso a datos. Si la aplicación Web o el servicio Web de XML necesita tener acceso a datos de múltiples orígenes, o interoperar con otras aplicaciones (tanto locales como remotas), o puede beneficiarse de la persistencia y transferencia de resultados almacenados en memoria caché, el conjunto de datos es una opción excelente. Como alternativa, ADO.NET proporciona comandos de datos y lectores de datos para comunicarse directamente con el origen de datos. Las operaciones directas con la base de datos mediante comandos de datos y lectores de datos incluyen la ejecución de consultas y de procedimientos almacenados, la creación de objetos de base de datos y la actualización y eliminación directa utilizando comandos DDL.

Asimismo, ADO.NET maximiza el uso compartido de datos ya que admite formato de transmisión y persistencia basado en XML para el objeto fundamental de las aplicaciones ADO.NET distribuidas: el conjunto de datos. Un conjunto de datos es una estructura de datos relacionales de la que se puede leer, en la que se puede escribir o que se puede serializar utilizando XML. Los conjuntos de datos de ADO.NET facilitan la creación de aplicaciones que requieran un intercambio de datos de correspondencia imprecisa entre niveles de aplicaciones y varios sitios Web.

Como los conjuntos de datos son remotos al igual que XML, los dos componentes pueden compartir datos y utilizar esquemas XML para definir la estructura relacional del conjunto de datos. Y, debido a que el formato de serialización del conjunto de datos es XML, los objetos DataSet pueden traspasar fácilmente los servidores de seguridad sin restricciones. Además de cargar datos de XML, los conjuntos de datos se pueden rellenar con y mantener los cambios de datos de SQL Server así como de orígenes de datos expuestos a través de OLE DB.

Una de las características principales de los conjuntos de datos es que permiten el acceso y la manipulación de los datos incluidos en un conjunto de datos local de dos formas diferentes:

  • Como tablas de una base de datos relacional Un conjunto de datos puede contener una tabla o una colección de tablas. Un aspecto importante del conjunto de datos es que realiza un seguimiento de las relaciones entre las tablas que contiene, como si se tratase de un almacén de datos relacionales en memoria.
  • Como estructuras XML (Lenguaje de marcado extensible) También es posible el acceso a un conjunto de datos en forma de datos XML. Existen métodos para leer y escribir datos como XML y para leer y escribir la estructura del conjunto de datos como un esquema XML. Adicionalmente, se puede asociar un XmlDataDocument a un conjunto de datos para ver, consultar y modificar los datos como XML de manera simultánea.

Para obtener información detallada sobre cuándo utilizar la tecnología de acceso a datos de ADO.NET, vea las recomendaciones del Gráfico de decisión y los siguientes temas individuales: Introducción a las aplicaciones distribuidas y la integración de datos, Recomendaciones de la estrategia de acceso a datos Web, Introducción a ADO.NET, Acceso a datos con ADO.NET, Conjuntos de datos de ADO.NET, Realizar operaciones directamente en la base de datos y Crear y utilizar conjuntos de datos.

ADO [2]

Para aplicaciones escritas en código nativo, ADO proporciona una interfaz de aplicación basada en COM para los proveedores de datos OLE DB. De manera similar a ADO.NET, ADO permite abordar una gran variedad de necesidades de desarrollo, incluida la creación de clientes de bases de datos de aplicaciones para usuarios y objetos comerciales de nivel medio mediante el uso de conexiones directas con datos de bases de datos relacionales y otros tipos de almacenes. Al igual que ADO.NET, ADO puede construir conjuntos de registros de cliente, utilizar conjuntos de registros de correspondencia imprecisa y controlar conjuntos de filas de estructuración de datos de OLE DB.

ADO también admite algunos comportamientos no expuestos a través de ADO.NET, como cursores de servidor con desplazamiento. Sin embargo, como los cursores de servidor utilizan recursos de base de datos, su utilización podría afectar negativamente al rendimiento y escalabilidad de la aplicación. Para transmitir conjuntos de registros ADO a través de servidores de seguridad, es necesario configurar el servidor de seguridad para habilitar la petición de cálculo de referencias de COM, teniendo en cuenta las opciones de seguridad asociadas. El cálculo de referencias de COM también limita los tipos de datos a los definidos por el estándar de COM. También se puede almacenar un conjunto de registros ADO en formato XML y transmitir en su lugar el texto XML.

Para obtener más información sobre tipos de datos COM, vea Tipos de datos COM. Para obtener más información sobre ADO, vea Qué se puede hacer con ADO y Programar aplicaciones de SQL Server en ADO.

OLE DB [2]

OLE DB es tanto la interfaz de programación de sistema idónea para el acceso a datos, como la tecnología subyacente de ADO, además de los orígenes de datos de ADO.NET. OLE DB es un estándar abierto para el acceso a todo tipo de datos, tanto relacionales como no relacionales, entre los que se incluyen: ISAM/VSAM de gran sistema (mainframe) y bases de datos jerárquicas, almacenes de sistemas de archivos y de correo electrónico, datos geográficos, gráficos y de texto, así como objetos comerciales personalizados.

OLE DB proporciona un acceso a los datos coherente y de gran rendimiento, y permite abordar una gran variedad de necesidades de desarrollo, incluida la creación de clientes de bases de datos de aplicaciones para el usuario y objetos comerciales del nivel medio mediante el uso de conexiones directas con datos de bases de datos relacionales y otros tipos de almacenes.

Para obtener más información sobre OLE DB, vea el sitio Web de Microsoft OLE DB (http://www.microsoft.com/data/oledb).

Elegir ADO.NET o ADO [2]

Tanto ADO.NET como ADO son fáciles de programar, independientes del lenguaje, se implementan de manera sencilla, utilizan un tráfico de red mínimo y requieren pocas capas entre la aplicación cliente y el origen de datos. Ambos métodos proporcionan un acceso a los datos de alto rendimiento.

La elección de cualquiera de estas tecnologías de acceso a datos afecta al diseño, la extensibilidad, la interoperabilidad y la facilidad de mantenimiento de una aplicación, así como a otros muchos factores. Entre ellos, cabe destacar:

  • Código administrado Si la aplicación fue escrita en código administrado y generada en Common Language Runtime, se recomienda utilizar ADO.NET. Si se está escribiendo en C++ con código no administrado (y, especialmente, si se están desarrollando tareas de mantenimiento de una aplicación ADO ya existente), ADO es también una buena opción.
  • Estructura de datos El conjunto de datos ADO.NET puede contener una o más tablas, y proporciona tanto una vista relacional basada en tablas como una vista basada en XML. El conjunto de datos utiliza tipos estándar de Common Language Runtime, simplificando la programación.
  • El conjunto de datos ADO es una única tabla, accesible únicamente como un conjunto de registros, y no contiene relaciones. Un conjunto de registros ADO puede ser el resultado de una consulta JOIN de varias tablas, pero sigue siendo una sola tabla de resultados. Si desea tener múltiples tablas con ADO, debe disponer de varios objetos Recordset. El conjunto de datos ADO.NET proporciona una mayor funcionalidad gracias a su estructura relacional integrada.
  • Uso compartido de datos ADO.NET proporciona la base para el intercambio de datos entre componentes y a través de niveles: los conjuntos de datos pueden transmitirse por Internet y a través de servidores de seguridad como XML. El mismo conjunto de datos puede verse en forma de tablas relacionales en la propia aplicación y en forma de una estructura de datos XML en otras aplicaciones. El conjunto de datos proporciona una transformación práctica en dos direcciones: de tablas de conjuntos de datos a un documento XML, y de un documento XML a tablas de conjuntos de datos.
  • Si para transmitir un conjunto de registros ADO se utiliza el cálculo de referencias de COM, la aplicación de destino deberá programarse de forma que utilice la estructura de datos de conjuntos de registros. Esto último requiere una programación más complicada que la simple lectura de datos XML. Es posible también almacenar el conjunto de registros ADO en formato XML y compartir más fácilmente los datos con otras aplicaciones y servicios.
  • Escalabilidad ADO.NET es la solución más escalable. ADO.NET está diseñado desde sus cimientos para ser la mejor arquitectura de acceso a datos para construir aplicaciones Web escalables con un bajo costo. Si no necesita escalabilidad y no está escribiendo en código administrado, puede seguir utilizando ADO.
  • Ubicación de cursores Una aplicación puede establecer conjuntos de resultados en uno de estos dos lugares: dentro del proceso de la aplicación (cursor en el cliente) o dentro del proceso de almacén de datos (cursor en el servidor). Los cursores de cliente constituyen por lo general una buena opción para cualquier tipo de interacción improvisada del usuario con los datos. ADO.NET y ADO admiten cursores en el cliente mediante el objeto DataSet y el cursor de cliente Recordset, respectivamente.
  • ADO.NET admite cursores de servidor secuenciales y de sólo lectura mediante los lectores de datos (como los objetos SqlDataReader o OleDbDataReader), y ADO, mediante un objeto Recordset de sólo avance y sólo lectura. Los cursores secuenciales y de sólo lectura constituyen la manera más rápida de leer datos fuera de la base de datos.
  • ADO admite cursores de servidor con posibilidad de desplazamiento y actualización mediante un objeto Recordset con desplazamiento y actualizable. Hay que tener cuidado a la hora de utilizar cursores de servidor. El desplazamiento no secuencial y la actualización de resultados a través de un cursor de servidor pueden dar lugar a bloqueos y provocar un conflicto de recursos, lo que limitaría en gran medida la escalabilidad de la aplicación. Una aplicación, en lugar de utilizar un cursor de servidor con posibilidad de desplazamiento y actualización, puede beneficiarse generalmente del uso de procedimientos almacenados para procesar mediante procedimientos los resultados en el servidor.
  • Conexión de acceso a datos Tanto ADO.NET como ADO admiten conexiones explícitas a la base de datos. En ADO.NET, el programador puede utilizar un lector de datos, mantener bloqueos basados en la posición actual y requerir una conexión permanente a la base de datos hasta que se lee el dato. Por otro lado, se pueden situar los datos en un conjunto de datos. Cuando utiliza un conjunto de datos, el programador puede optar por mantener la conexión y la transacción abiertas mientras se están modificando los datos en el conjunto de datos, o por abrir la conexión y utilizar las transacciones sólo cuando sea necesario para llenar el conjunto de datos y actualizar los cambios en la base de datos. Al cerrar la conexión se liberan los recursos y bloqueos a otros usuarios mientras se están transmitiendo, viendo y modificando los datos del conjunto de datos. En ADO, los objetos Recordset pueden utilizar una conexión abierta y realizar bloqueos mientras el usuario lee los datos de la base de datos, o el cursor Recordset de cliente puede trabajar con datos sin mantener una conexión a la base de datos.
  • Desplazamiento de datos Tanto ADO.NET como ADO pueden desplazar datos de forma secuencial y no secuencial. El conjunto de datos ADO.NET permite también un desplazamiento sencillo desde una fila de una tabla de datos hasta las filas relacionadas de otra tabla. El conjunto de registros ADO y los lectores de datos ADO.NET admiten cursores de servidor muy rápidos, con desplazamiento sólo hacia adelante y de sólo lectura. Sólo el conjunto de registros ADO admite cursores de servidor con posibilidad de desplazamiento y actualización, aunque dichos cursores consumen recursos del servidor y, en la mayoría de los casos, se pueden implementar mejor dentro de la lógica de un procedimiento almacenado o como un cursor de cliente de correspondencia imprecisa.
  • Facilidad de uso El conjunto de datos ADO.NET proporciona datos autodescriptivos, eliminando así la necesidad de controlar construcciones de datos subyacentes, como tablas, columnas, restricciones y filas. Con el conjunto de datos dispone de acceso a datos de tipo seguro utilizando objetos. Esto facilita la lectura, escritura y modificación de programas. Como los niveles de una aplicación pueden intercambiar datos mediante conjuntos de datos con formato XML, es fácil implementar una comunicación nueva y extendida a lo largo del ciclo de vida de la aplicación. Con ADO.NET, no importa el leguaje que se utilice para el acceso a datos: todos ellos son similares desde el punto de vista sintáctico y utilizan los mismos servicios de Common Language Runtime. Tanto ADO.NET como ADO admiten el acceso a datos de correspondencia imprecisa, pero existe una diferencia. Con ADO.NET puede controlar cómo se transmiten los cambios en el conjunto de datos a la base de datos, mediante la modificación de las instrucciones utilizadas por el objeto DataAdapter, o mediante la inserción de código personalizado que responda a los eventos de actualización de fila. Esta característica permite optimizar el rendimiento, modificar las comprobaciones de validación y agregar procesamientos adicionales, todo ello sin modificar la aplicación. Para obtener más información, vea Problemas en la arquitectura de aplicaciones .NET.

Elegir OLE DB [2]

Es importante evaluar la opción de escribir OLE DB directamente frente a métodos más sencillos de acceso a datos, como ADO.NET o ADO. Entre los factores que influyen en la decisión de utilizar el acceso a datos en el nivel COM de OLE DB se incluyen los siguientes:

  • Rendimiento ADO.NET y ADO son muy rápidos, pero insertan una capa de abstracción adicional entre la aplicación y el proveedor de datos cuando trabaja con orígenes de datos OLE DB. Si Microsoft SQL Server es la base de datos del servidor y se está escribiendo en código administrado, se obtendrá un mayor rendimiento con el proveedor de datos de .NET Framework para SQL Server, pues evita la sobrecarga impuesta por ADO y OLE DB y establece comunicación directa con el servidor a través del controlador de red. Si el rendimiento es un problema y la base de datos no es SQL Server, es preferible crear código en Visual C++ con OLE DB. Pueden darse otras alternativas utilizando proveedores de datos de distintos fabricantes.
  • Funcionalidad OLE DB define interfaces nativas diseñadas para ser lo suficientemente extensas y extensibles como para exponer todo el comportamiento, la semántica y la funcionalidad subyacentes de la base de datos. ADO expone un subconjunto de la funcionalidad común definida por las interfaces OLE DB, y ADO.NET proporciona objetos comunes para trabajar con datos que ocultan las diferencias de comportamiento, funcionalidad y tipo de sistema de distintos orígenes. Si necesita tener acceso al comportamiento, funcionalidad y tipos de datos nativos de una base de datos en concreto, OLE DB le proporciona la interfaz nativa más extensa para el origen de datos.
  • Mantenimiento El uso de la tecnología de acceso a datos OLE DB afecta al costo de mantenimiento a largo plazo de la aplicación. Utilizar OLE DB es más caro que utilizar ADO.NET o ADO porque las tareas de mantenimiento y de mejora de un código complejo son más complicadas.
  • Conocimientos del programador La creación de código nativo en el entorno COM requiere profundos conocimientos de programación. Escribir en la interfaz OLE DB es una tarea muy difícil y compleja. Si el equipo de programadores posee experiencia en OLE DB y COM, debería elegir OLE DB para obtener el mayor provecho de esta experiencia.
  • Lenguaje Si elige la tecnología de acceso a datos OLE DB, deberá programar en Visual C++. Para simplificar un poco el proceso de programación, utilice las plantillas de proveedor y consumidor de la biblioteca de plantillas OLE DB. Para obtener más información, vea Plantillas OLE DB.

Si la aplicación requiere el máximo rendimiento y la potencia de manipulación inherente a OLE DB, posee los conocimientos necesarios para escribir en una interfaz de programación del sistema, y está dispuesto a pagar un costo de mantenimiento a largo plazo más elevado, OLE DB es una opción excelente.

Para obtener más información sobre el uso de OLE DB para tener acceso a los datos, vea Programación de OLE DB

Los desarrolladores de aplicaciones Windows disponen de varias tecnologías para acceder a diferentes fuentes de datos. Tales tecnologías presentan diferentes funcionalidades, eficiencia, arquitectura y se adaptan de mejor o peor manera según el tipo de aplicación que se esté desarrollando. En este artículo se describe al conjunto de tecnologías Microsoft disponibles, se detallan sus principales características, se las compara entre sí y se brindan sugerencias de aplicación para cada una de ellas.[3].

Qué es ODBC?[4]

Es un estándar de acceso a bases de datos que utilizan los sistemas Microsoft. Las siglas significan Open DataBase Connectivity. A través de ODBC, en un sistema Windows se puede conectar con cualquier base de datos. Bueno habría que decir que permite conectar con cualquier base de datos de la que exista un driver ODBC. Los creadores de las distintas bases de datos son los responsables de crear un driver ODBC para que su base de datos se pueda conectar desde un sistema Microsoft.

Data Access Object[5]

En software de computadores, un Data Access Object (DAO, Objeto de Acceso a Datos) es un componente de software que suministra una interfaz común entre la aplicación y uno o más dispositivos de almacenamiento de datos, tales como una Base de datos o un archivo. El término se aplica frecuentemente al Patrón de diseño Object.

Los Objetos de Acceso a Datos son un Patrón de Diseño Core J2EE y considerados una buena práctica. La ventaja de usar objetos de acceso a datos es que cualquier objeto de negocio (aquel que contiene detalles específicos de operación o aplicación) no requiere conocimiento directo del destino final de la información que manipula.

Los Objetos de Acceso a Datos pueden usarse en Java para aislar a una aplicación de la tecnología de persistencia Java subyacente(API de Persistencia Java), la cual podría ser JDBC, JDO, EJB CMP(Persistencia controlada por el Conteneder), TopLink, Hibernate, iBATIS, o cualquier otra tecnología de persistencia. Usando Objetos de Acceso de Datos significa que la tecnología subyacente puede ser actualizada o cambiada sin cambiar otras partes de la aplicación.

  • Desventajas [5]

La flexibilidad tiene un precio. Cuando se añaden DAOs a una aplicación, la complejidad adicional de usar otra capa de persistencia incrementa la cantidad de código ejecutado durante tiempo de ejecución. La configuración de las capas de persistencia requiere en la mayoría de los casos mucho trabajo.

Las aplicaciones críticas con el rendimiento no deberían usar DAOs.

Webgrafia
[1] http://senaaccesodatos.blogspot.com/2008/04/tecnologia-de-acceso-datos.html

[2] http://msdn.microsoft.com/es-es/library/aa290751(VS.71).aspx

[3] http://gustavolarriera.tripod.com/doc/tech/cipmsabd.htm

[4] http://www.desarrolloweb.com/faq/que-es-odbc.html

[5] http://es.wikipedia.org/wiki/Data_Access_Object

Anuncios

Una respuesta to “Tecnologias de Acceso a Datos”

  1. […] Tecnologias de Acceso a Datos […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: