Entradas populares

viernes, 7 de junio de 2013

Taller de BD

UNIDAD 4.- TECNOLOGÍAS DE CONECTIVIDAD DE BASES DE DATOS


Las tecnologías que se emplean para la conectividad entre los datos y la aplicación, se ha convertido en un factor muy importante a la hora de desarrollar un proyecto web que cuente con funcionalidad de acceso a datos. A continuación se describen las tres principales tecnologías que se usan más para conectar bases de datos.

4.1 ODBC



Introducción



Open Database Connectivity (ODBC) es la interfaz estratégica de Microsoft para obtener acceso a datos en un entorno heterogéneo de relacionales y no - relacionales sistemas de administración de la base de datos. Basado en la especificación de interfaz de nivel de llamada del grupo de acceso de SQL, ODBC proporciona una forma abierta, independiente del proveedor de acceso a datos almacenados en una gran variedad de propietario equipo personal, minicomputadoras y las bases de datos de mainframe. 

ODBC alivia la necesidad de aprender múltiples interfaces de programación de aplicaciones para los programadores corporativos y fabricantes independientes de software. ODBC proporciona ahora una interfaz de acceso de datos universal.Con ODBC, los desarrolladores de aplicaciones pueden permitir que una aplicación al mismo tiempo tener acceso, ver y modificar los datos procedentes de múltiples bases de datos diferentes. 

ODBC es un componente básico de la arquitectura de servicios abiertos de Microsoft Windows. Apple ha respaldado ODBC como una clave de habilitación de la tecnología de anuncio de soporte en System 7 en el futuro. Con soporte de la industria cada vez más, ODBC está rápidamente emergiendo como un sector importante estándar para el acceso a datos para las aplicaciones de Windows y Macintosh.

DEFINICIÓN
Open DataBase Connectivity (ODBC) es un estándar de acceso a las bases de datos desarrollado por SQL Access Group en 1992. El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin importar qué sistema de gestión de bases de datos (DBMS) almacene los datos. ODBC logra esto al insertar una capa intermedia (CLI) denominada nivel de Interfaz de Cliente SQL, entre la aplicación y el DBMS. El propósito de esta capa es traducir las consultas de datos de la aplicación en comandos que el DBMS entienda. Para que esto funcione tanto la aplicación como el DBMS deben ser compatibles con ODBC, esto es que la aplicación debe ser capaz de producir comandos ODBC y el DBMS debe ser capaz de responder a ellos. Desde la versión 2.0 el estándar soporta SAG y SQL.
El software funciona de dos modos, con un software manejador en el cliente, o una filosofía cliente-servidor. En el primer modo, el driver interpreta las conexiones y llamadas SQL y las traduce desde el API ODBC hacia el DBMS. En el segundo modo para conectarse a la base de datos se crea una DSN dentro del ODBC que define los parámetros, ruta y características de la conexión según los datos que solicite el creador o fabricante.
Para conectar con ODBC una base de datos se ha de crear un DSN, que es un nombre que asociamos a una conexión por ODBC para referirnos a ella desde las aplicaciones o programas que deban conectarse con la base de datos.

Cualquier base de datos que se pretenda utilizar desde aplicaciones Windows debe tener su propio driver ODBC. Por ejemplo, MySQL dispone de un Driver ODBC que se puede descargar desde su página web. Las bases de datos Access (Microsoft Jet) y SQL Server de Microsoft también tienen su driver ODBC y este ya se encuentra instalado en el Windows de fábrica.
Una versión de 64 bits del sistema operativo Microsoft Windows incluye las siguientes versiones de la herramienta Administrador de orígenes de datos de Microsoft Open Database Connectivity (ODBC) (Odbcad32.exe):
·         La versión de 32 bits del archivo Odbcad32.exe se encuentra en la carpeta %systemdrive%\Windows\SysWoW64.
·         La versión de 64 bits del archivo Odbcad32.exe se encuentra en la carpeta %systemdrive%\Windows\System32.
El archivo Odbcad32.exe muestra los siguientes tipos de nombres de origen de datos (DSN):
·         DSN de sistema
·         DSN de usuario

Síntoma 1

Muestra la versión de 32 bits de la herramienta Administrador de ODBC DSN de sistema de 32 bits, usuario DSN de 32-bit y 64-bit DSN. Muestra la versión de 64 bits de la herramienta Administrador de ODBC DSN de sistema de 64 bits, usuario DSN de 32-bit y 64-bit DSN.

Síntoma 2

La función SQLDataSources devuelve todas las versiones de usuario DSN, independientemente de la arquitectura de la aplicación. La función SQLDataSources que se llama en una aplicación de 32 bits devuelve exclusivamente DSN del sistema para los controladores de 32 bits, pero devuelve DSN de usuario de los controladores de 32 bits y controladores de 64 bits.De forma similar, la función SQLDataSources que se llama en una aplicación de 64 bits devuelve exclusivamente DSN del sistema para los controladores de 64 bits, pero devuelve DSN de usuario de los controladores de 32 bits y controladores de 64 bits. Por lo tanto, si la aplicación realiza una conexión utilizando un DSN que se devuelve desde la función SQLDataSourcesde usuario, puede recibir el mensaje de error siguiente:
No se encontró el nombre de origen de datos y se especificó ningún controlador predeterminado
Por ejemplo, considere el siguiente escenario. Crear un DSN de usuario para el controlador de 32 bits "Microsoft Access Driver (*.mdb)". Este controlador no tiene una versión de 64 bits correspondiente. La función SQLDataSources que se llama en una aplicación de 64 bits, devuelve este DSN de usuario de 32 bits. Sin embargo, si realiza una conexión a través de este DSN de usuario de 32 bits, recibirá el mensaje de error que se ha mencionado anteriormente en esta sección.


4.2 ADO.NET


Introducción

El ADO.NET es un conjunto de componentes del software que pueden ser usados por los programadores para acceder a datos y a servicios de datos. Es una parte de la biblioteca de clases base que están incluidas en el Microsoft .NETFramework. Es comúnmente usado por los programadores para acceder y para modificar los datos almacenados en un Sistema Gestor de Bases de Datos Relacionales, aunque también puede ser usado para acceder a datos en fuentes no relacionales. ADO.NET es a veces considerado como una evolución de la tecnología ActiveX Data Objects (ADO), pero fue cambiado tan extensivamente que puede ser concebido como un producto enteramente nuevo.

DEFINICION:
ADO.NET es un conjunto de clases que exponen servicios de acceso a datos para el programador de .NET. ADO.NET ofrece abundancia de componentes para la creación de aplicaciones de uso compartido de datos distribuidas. Constituye una parte integral de .NET Framework y proporciona acceso a datos relacionales, XML y de aplicaciones. ADO.NET satisface diversas necesidades de desarrollo, como la creación de clientes de base de datos de aplicaciones para usuario y objetos empresariales de nivel medio que utilizan aplicaciones, herramientas, lenguajes o exploradores de Internet.
Novedades en ADO.NET
Las siguientes características son nuevas en ADO.NET versión 2.0.
Proveedores administrados
Enumeración de servidores
Procesamiento asincrónico
  • Permite realizar operaciones asincrónicas de base de datos mediante una API modelada después del modelo asincrónico que utiliza .NET Framework. Para obtener más información, vea Realización de operaciones asincrónicas.
Varios conjuntos de resultados activos (MARS)
Operaciones de copia masiva
Nuevos tipos de datos máximos de SQL Server
  • Ofrece compatibilidad con los tipos de datos varchar(max)nvarchar(max)varbinary(max) en SQL Server 2005. Para obtener más información, veaTrabajo con tipos de valores grandes
Tipos definidos por el usuario de SQL Server
Notificaciones de SQL Server
  • Permite que las aplicaciones .NET Framework envíen un comando a SQL Server y soliciten que se genere una notificación si la ejecución del mismo comando fuera a producir conjuntos de resultados diferentes de los inicialmente recuperados. Para obtener más información, vea Uso de notificaciones de consulta.
Transacciones con aislamiento de instantáneas de SQL Server
  • Ofrece compatibilidad con el aislamiento de instantáneas, un mecanismo de SQL Server 2005 diseñado para reducir el bloqueo en aplicaciones OLTP. Para obtener más información, vea Uso de aislamiento de instantáneas.
Reflejo de bases de datos en SQL Server 2005
  • Ofrece compatibilidad con el reflejo de bases de datos en SQL Server 2005 con una nueva sintaxis de cadena de conexión para especificar un servidor asociado de conmutación por error. Para obtener más información, vea Uso del reflejo de base de datos.
Estadísticas de proveedor
  • Ofrece compatibilidad con la recuperación de estadísticas de tiempo de ejecución en SQL Server 2005. Actualmente hay disponibles 21 contadores diferentes desde el proveedor de .NET para SQL Server. Para obtener más información, vea Uso de estadísticas de proveedor.
Cambio de contraseña en SQL Server 2005
  • Permite que las aplicaciones .NET Framework cambien la contraseña de una cuenta de usuario sin necesidad de que intervenga el administrador. Para obtener más información, vea ChangePassword.
Procesamiento por lotes
Seguimiento

Información general acerca de ADO.NET
ADO.NET proporciona acceso coherente a orígenes de datos como Microsoft SQL Server y XML, así como a orígenes de datos expuestos mediante OLE DB y ODBC. Las aplicaciones para usuarios que comparten datos pueden utilizar ADO.NET para conectar a estos orígenes de datos y recuperar, manipular y actualizar los datos contenidos.

ADO.NET separa el acceso a datos de la manipulación de datos y crea componentes discretos que se pueden utilizar por separado o conjuntamente. ADO.NET incluye proveedores de datos de .NET Framework para conectarse a una base de datos, ejecutar comandos y recuperar resultados. Los resultados se procesan directamente o se colocan en un objeto DataSet de ADO.NET con el fin de exponerlos al usuario para un propósito específico, combinados con datos de varios orígenes, o de utilizarlos de forma remota entre niveles.

 El objeto DataSet de ADO.NET también puede utilizarse independientemente de un proveedor de datos de .NET Framework para administrar datos que son locales de la aplicación o que proceden de un origen XML.
Las clases de ADO.NET se encuentran en el archivo System.Data.dll y están integradas con las clases de XML que se encuentran en el archivo System.Xml.dll. Cuando se compila un código que utiliza el espacio de nombres System.Data, es necesario hacer referencia a los archivos System.Data.dll y System.Xml.dll. Para obtener un ejemplo de una aplicación de ADO.NET que se conecta a una base de datos, recupera datos de ésta.
ADO.NET proporciona funcionalidad a los programadores que escriben código administrado similar a la funcionalidad que los objetos ADO (ActiveX Data Objects) proporcionan a los programadores de modelo de objetos componentes (COM) nativo. Para obtener más información sobre las diferencias entre ADO y ADO.NET,
Utilizar DataSets en ADO.NET
El DataSet de ADO.NET es una representación de datos residente en memoria que proporciona un modelo de programación relacional coherente independientemente del origen de datos que contiene. Un DataSet representa un conjunto completo de datos, incluyendo las tablas que contienen, ordenan y restringen los datos, así como las relaciones entre las tablas.
Hay varias maneras de trabajar con un DataSet, que se pueden aplicar de forma independiente o conjuntamente. Puede:
  • Crear mediante programación una DataTableDataRelation y una Constraint en un DataSet y rellenar las tablas con datos.
  • Llenar el DataSet con tablas de datos de un origen de datos relacional existente mediante DataAdapter.
  • Cargar y hacer persistente el contenido de DataSet mediante XML. Para obtener más información, vea Utilizar XML en un DataSet.
También se puede transportar un DataSet con establecimiento inflexible de tipos mediante un servicio Web XML. El diseño del DataSet lo convierte en idóneo para el transporte de datos mediante servicios Web XML. Para obtener información general sobre servicios Web XML, vea Información general acerca de servicios Web XML. Para ver un ejemplo de cómo utilizar un DataSet de un servicio Web XML, vea Consumir DataSet a partir de un servicio Web XML.

Conectar con datos y recuperarlos en ADO.NET

La principal función de cualquier aplicación de base de datos es conectarse a un origen de datos y recuperar los datos contenidos . Los proveedores de datos de .NET Framework para ADO.NET sirven como puente entre una aplicación y un origen de datos, permitiéndole ejecutar comandos y recuperar datos mediante un DataReader o un DataAdapter.



Al trabajar con ADO.NET no se utiliza la dll de acceso ODBC de GX (gxdata.dll), sino que toda la lógica se encuentra en la gxclasses.dll.
En el caso de los DBMSs, cada uno utiliza un Data Provider para acceder a la base de datos, cada DBMS tiene su propio Data Provider para acceso ADO.NET.

Por el momento los DBMSs que soportan el acceso ADO.NET son:
SQL Server
Oracle
DB2 Universal Database
DB2 UDB for iSeries

Los requerimientos necesarios en cada caso son:

SQL Server
ADO.NET utiliza el Data Provider de Microsoft para SQL Server (el cual se instala con el framework).

Oracle
Se debe tener el Cliente de Oracle versión 8.1.7 o superior, de esta forma se instala el Data Provider correspondiente.
El valor “Server Name” de las Dbms option hace referencia al Service Name definido en la instancia del Oracle.
La implementación utiliza el Data provider de Microsoft para Oracle (System.Data.OracleClient)

DB2 UDB for iSeries
Se necesita la V5R3 del iSeries Access, que es una versión beta y está solo en inglés.
Además cuando se crea un modelo se debe copiar la dll IBM.Data.DB2.iSeries.dll al directorio gxnet/bin si la aplicación es web o gxnetwin/bin win.
La versión V5R3 del iSeries Access se puede obtener de la URL: http://www-1.ibm.com/servers/eserver/iseries/access/windows/beta.html.

Nota:
-         El Data provider para DB2 UDB for iSeries no soporta BLOBs por ahora.
-         Una limitación del driver client acces V5 R3 no permite el llamado objetos remotos en el Iseries (RPC). Esto implica store procedures (programas RPG o Cobol) u objetos externos en el Iseries (programas CL)

DB2 Universal Database
Se necesita tener instalada la versión 8.1.3 o superior.
La dll es IBM.Data.DB2.dll, también se debe copiar a los directorios gxnet/bin si la aplicación es web o gxnetwin/bin win.

4.3 JDBC
(Conectividad de Java con bases de datos)


Introducción


Es un derivado inspirado en el mismo, una interfaz de programación de aplicaciones que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede utilizando el dialecto SQL del modelo de base de datos que se utilice.
JDBC o Java Data Base Connectivity, creado por la empresa Sun, es la API estándar de acceso a bases de datos con Java. Sun optó por crear una nueva API en lugar de utilizar ODBC, porque esta última presentaba algunos problemas desde ciertas aplicaciones Java. ODBC es una interfaz escrita en lenguaje C, que al no ser un lenguaje portable, hacía que las aplicaciones Java también perdiesen la portabilidad. Además, ODBC ha de instalarse manualmente en cada máquina, mientras que los controladores (drivers) JDBC que están escritos en Java son automáticamente instalables y portables. El nivel de abstracción al que trabaja JDBC es más alto que el de ODBC y, de esta forma, se pueden crear librerías de más alto nivel.

¿Qué es JDBC?
• JDBC es una interfaz que permite a un programa java ejecutar instrucciones SQL dentro de bases de datos relacionales.

– Las bases de datos deben seguir el estándar ANSI SQL-92




 Cuatro tipos de drivers JDBC (Cont…)

I. Puente JDBC-ODBC
– traduce Java al API de ODBC


II. Native API
- traduce Java al API de la base de datos
III. Middleware
- Invoca un servidor intermedio generalmente ubicado en el mismo host de la base de datos. Utiliza un protocolo estándar independiente de la base de datos.
IV. Net Protocol

Genera el protocolo de comunicaciones de la base de datos




REQUERIMIENTOS
Para trabajar con JDBC es necesario tener controladores que permitan acceder a las distintas bases de datos. Sin embargo, ODBC sigue siendo hoy en día la API más popular para acceso a Bases de Datos, por lo que: Sun se ha visto obligada a diseñar un puente que permite utilizar la API de JDBC en combinación con controladores ODBC.
Fuentes bibliográficas: