Taller de Bases de Datos

25
TALLER DE BASES DE DATOS UNIDAD IV: TECNOLOGIAS DE CONECTIVIDAD DE BASE DE DATOS 4.1 ODBC INTRODUCCION 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.

description

conectividad de bases de datos

Transcript of Taller de Bases de Datos

Page 1: Taller de Bases de Datos

TALLER DE BASES DE DATOSUNIDAD IV: TECNOLOGIAS DE CONECTIVIDAD

DE BASE DE DATOS

4.1 ODBC

INTRODUCCION

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.

SIGNIFICADO

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

Page 2: Taller de Bases de Datos

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. 

REQUERIMIENTOS

Para utilizar ODBC, se requieren los tres componentes siguientes: 

Ejemplos de cliente - un ODBC front-end (también llamado ODBC cliente habilitado) - ODBC: Microsoft Access, una aplicación creada con Access, una aplicación creada con Microsoft Visual Basic, una aplicación creada con C + Win SDK + ODBC SDK o las aplicaciones basadas en ODBC de otros proveedores (como Lotus). 

CONTROLADOR ODBC - un controlador ODBC para el servidor ODBC. El catálogo de controladores ODBC contiene una lista extensa de los controladores ODBC. Por ejemplo, Microsoft ODBC Driver Pack es una colección de los siete controladores ODBC listo para su uso o se incluye con los clientes ODBC. Un controlador de ODBC de SQL Server se incluye con Access y Informix está trabajando en un controlador ODBC para Informix.

Page 3: Taller de Bases de Datos

 

EJEMPLOS:

Front-end al tener acceso a datos de Access desde un fondo Oracle utilizando el controlador ODBC para Oracle, que se suministra con Access 1.1. Acceso de Visual Basic front-end a los datos de un back-end dBASE usando el controlador de ODBC, que forma parte del paquete de controladores de base de datos de MS ODBC dBASE. Escrito con C + ODBC SDK de SDK + ganar acceso a datos desde un sistema Autónomo de aplicación de C / 400 mediante el AS / 400 de Rochester Software de controlador de ODBC

4.2 ADO.NET 

INTRODUCCION

Page 4: Taller de Bases de Datos

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.

ADO .NET es la nueva versión del modelo de objetos ADO (ActiveX Data Objects), es decir,

la estrategia que ofrece Microsoft para el acceso a datos. ADO .NET ha sido ampliado para

cubrir todas las necesidades que ADO no ofrecía, ADO .NET está diseñado para trabajar

con conjuntos de datos desconectados, lo que permite reducir el tráfico de red. ADO .NET

utiliza XML como formato universal de transmisión de los datos.

ADO .NET posee una serie de objetos que son los mismos que aparecen en la versión anterior

de ADO, como pueden ser el objeto Connection o Command, e introduce nuevos objetos tales

como el objeto DataReader, DataSet o DataView.

ADO .NET se puede definir como:

Un conjunto de interfaces, clases, estructuras y enumeraciones

Que permiten el acceso a los datos desde la plataforma .NET de Microsoft

Que permite un modo de acceso desconectado a los datos que pueden provenir de

múltiples fuente de datos de diferente arquitectura de almacenamiento.

Page 5: Taller de Bases de Datos

SIGNIFICADOADO.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 .NET Framework. 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.

Componentes de ADO.NET

Existen dos componentes de ADO.NET que se pueden utilizar para obtener acceso a datos y

manipularlos:

Proveedores de datos de .NET Framework

El DataSet

En el diagrama siguiente se ilustra la relación entre un proveedor de datos de .NET Framework y un DataSet

Proveedores de datos de .NET Framework

Los proveedores de datos de .NET Framework son componentes diseñados explícitamente

para la manipulación de datos y el acceso rápido a datos de sólo lectura y sólo avance. El

objeto Connection proporciona conectividad a un origen de datos. El objeto Command permite

tener acceso a comandos de base de datos para devolver datos, modificar datos, ejecutar

procedimientos almacenados y enviar o recuperar información sobre parámetros. El

objetoDataReader proporciona una secuencia de datos de alto rendimiento desde el origen de

datos. Por último, el objeto DataAdapter proporciona el puente entre el objeto DataSet y el

origen de datos. El DataAdapter utiliza objetos Command para ejecutar comandos SQL en el

origen de datos tanto para cargar el DataSet con datos como para reconciliar en el origen de

datos los cambios aplicados a los datos incluidos en el DataSet.

DataSet

El DataSet de ADO.NET está expresamente diseñado para el acceso a datos

independientemente del origen de datos. Como resultado, se puede utilizar con múltiples y

distintos orígenes de datos, con datos XML o para administrar datos locales de la aplicación.

El DataSet contiene una colección de uno o más objetos DataTable formados por filas y

columnas de datos, así como información sobre claves principales, claves externas,

restricciones y relaciones relativa a los datos incluidos en los objetos DataTable.

ARQUITECTURA ADO.NET

                         

Page 6: Taller de Bases de Datos

REQUERIMIENTOSAl 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 ServerADO.NET utiliza el Data Provider de Microsoft para SQL Server (el cual se instala con el framework).

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

Page 7: Taller de Bases de Datos

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

INTRODUCCIÓNJava proporciona una plataforma completa, flexible y segura para el desarrollo de aplicaciones, incluyendo la conectividad con una base de datos. Esta conectividad o acceso a base de datos relacionales con Java es posible gracias a la API JDBC (Java DataBase Connectivity).Este API es parte de la plataforma Java desde la versión 1.0 de JDK. Con el paso del tiempo se ha ido mejorando y aumentando su funcionalidad.JDBC es ODBC extendido para toda la plataforma Java. Mientras que ODBC es una interfaz escrita en lenguaje C, que tiene que ser instalado manualmente en cada maquina, JDBC, al estar escrito en Java, posee todas las propiedades y ventajas del mismo. ODBC es un estandar para las plataformas MS Windows. JDBC es capaz de trabajar con MS Windows y otras plataformas.El API JDBC puede definirse como un conjunto de clases, métodos e interfaces escritos en lenguaje Java, que permiten el acceso a sistemas de bases de datos relacionales utilizando instrucciones SQL.¿ que necesitamos ?- El API JDBC con dos paquetes principale,  java.sql y javax.sql- Un controlador de acceso a una base de datosEl controlador servirá para conectar la aplicación con la API JDBC, proporcionando comunicación con la base de datos.En definitiva, lo que el estándar JDBC hace posible es:

Establecer una conexión.

Lanzar sentencias SQL.

Capturar conjuntos resultado (resulset) de las consultas.

Capturar información de la base de datos.

Manipular los datos.

Puesto que JDBC está implementado en Java, posee la ventaja de serindependiente de la plataforma e independiente de la base de datos. En esencia, podrá ejecutarse en cualquier sistema que posea una Máquina Virtual de Java.

Page 8: Taller de Bases de Datos

SIGNIFICADOJDBC es un API (Application programming interface) que describe o define una librería estándar para acceso a fuentes de datos, principalmente orientado a Bases de Datos relacionales que usan SQL (Structured Query Language). JDBC no sólo provee un interfaz para acceso a motores de bases de datos, sino que también define una arquitectura estándar, para que los fabricantes puedan crear los drivers que permitan a las aplicaciones java el acceso a los datos.

Filosofía y Objetivos de JDBC

Cuando SUN se puso a trabajar en este tema, decidió seguir una serie de normas a seguir para la definición del interfaz, y que han condicionado en gran manera el resultado final. Algunas de estas características son: API A NIVEL SQL. JDBC es un API de bajo nivel, es decir, que está orientado a permitir ejecutar comandos SQL directamente, y procesar los resultados obtenidos. Esto supone que será tarea del programador crear APIs de más alto nivel apoyándose directamente sobre JDBC.

COMPATIBLE CON SQL. Cada motor de Base de Datos implementa una amplia variedad de comandos SQL, y muchos de ellos no tienen porque ser compatibles con el resto de motores de Base de Datos. JDBC, para solventar este problema de incompatibilidad, ha tomado la siguiente posición

JDBC permite que cualquier comando SQL pueda ser pasado al driver directamente, con lo que una aplicación Java puede hacer uso de toda la funcionalidad que provea el motor de Base de Datos, con el riesgo de que esto pueda producir errores o no en función del motor de Base de Datos.

Con el objetivo de conseguir que un driver sea compatible con SQL (SQL compliant), se obliga a que al menos, el driver cumpla el Estándar ANSI SQL 92.

JDBC debe ser utilizable sobre cualquier otro API de acceso a Bases de Datos, o más en particular ODBC (Open Database Connectivity)

JDBC debe proveer un interfaz homogéneo al resto de APIs de Java.

JDBC debe ser un API simple, y desde ahí, ir creciendo.

JDBC debe ser fuertemente tipado, y siempre que sea posible de manera estática, es decir, en tiempo de compilación, para evitar errores en tiempo de ejecución.

JDBC debe mantener los casos comunes de acceso a Base de Datos lo más sencillo posible:

Page 9: Taller de Bases de Datos

Mantener la sencillez en los casos más comunes (SELECT, INSERT, DELETE y UPDATE)

Hacer realizables los casos menos comunes: Invocación de procedimientos almacenados...

Crear múltiples métodos para múltiple funcionalidad. JDBC ha preferido incluir gran cantidad de métodos, en lugar de hacer métodos complejos con gran cantidad de parámetros.

REQUERIMIENTOS

Para tener acceso a los datos desde una base de datos de SQL Server mediante el controlador JDBC de Microsoft SQL Server, debe tener los siguientes componentes instalados en el equipo: Controlador de JDBC de Microsoft SQL Server

Java Runtime Environment

3. Procedimiento de Conexión y acceso a datos con JDBC.

Consideraciones previas.

El proceso de acceso a una Base de Datos a través de JDBC, exige dar una serie de pasos previos antes de crear la conexión al motor de Base de Datos. El primer paso es determinar el entorno en el que el proyecto va a ser instalado, y más en concreto, que parámetros del entorno afectan directamente a JDBC:

Debemos considerar las características específicas de una base de datos, como por ejemplo, como mapear los tipos de datos SQL a Java.

Es probable encontrarnos varios drivers distintos para la misma fuente de datos. Debemos saber detectar cual es el driver más adecuado para nuestra aplicación, por ejemplo, si elegimos un driver ODBC/JDBC, tendremos más flexibilidad para elegir distintas fuentes de datos, pero si por ejemplo trabajamos con una Base de Datos Oracle, un driver JDBC diseñado específicamente para esta base de datos será mucho más eficiente.

Page 10: Taller de Bases de Datos

En función de donde se encuentre el driver físicamente, debemos considerar aspectos de rendimiento y seguridad. Por ejemplo, si cargamos el driver desde un servidor remoto tendremos que considerar aspectos sobre seguridad de Java.

Procedimiento de conexión.

1. Cargar el driver. Cualquier driver JDBC, independientemente del tipo debe implementar el interfaz java.sql.Driver. La carga del driver se puede realizar de dos maneras distintas:

Definiendo los drivers en la variable sql.driver (variable que mantiene todos las clases de los drivers separados por comas) Cuando la clase DriverManager se inicializa, busca esta propiedad en el sistema.

El programador puede forzar la carga de un driver específico, usando el método Class.forName(driver).

2. Registro del driver. Independientemente de la forma de carga del driver que llevemos a cabo, será responsabilidad de cada driver registrarse a sí mismo, usando el método DriverManager.registerDriver. Esto permite a la clase DriverManager, usar cada driver para crear conexiones con el controlador de Base de Datos. Por motivos de seguridad, la capa que gestiona JDBC, controlará en todo momento que driver es el que se está usando, y cuando se realicen conexiones, sólo se podrán usar drivers que estén en el sistema local de ficheros o que usen el mismo ClassLoader que el código que está intentando crear la conexión.

3. Crear una conexión. El objetivo es conseguir un objeto del tipo java.sql.Connection a través del método DriverManager.getConnection(String url). La capa de gestión, cuando este método es invocado, tratará de encontrar un driver adecuado para conectar a la base de datos especificada en la URL, intentándolo por el orden especificado en la variable sql.driver. Cada driver debería examinar si ellos proveen el “subprotocolo” que especifica la URL. (Ver anexo)

3. Tipos de conectores (drivers) JDBC Tipo 1. JDBC-ODBC bridge más driver ODBC: “BRIDGE”  Ventajas: Buena forma de aprender JDBC. También puede ser buena idea usarlo, en sistemas donde cada máquina cliente tenga ya instalado los drivers ODBC. También es posible que sea la única forma de acceder a ciertos motores de Bases de Datos. Inconvenientes: No es buena idea usar esta solución para aplicaciones que exijan un gran rendimiento, ya que la transformación JDBC-ODBC es costosa. Tampoco es buena solución para aplicaciones con alto nivel de escalabilidad.

Tipo 2. Driver Java parciales: “NATIVE”  Ventajas:   Mejor rendimiento que el anterior. Quizá puede ser buena solución para entornos controlados como intranets. Ejemplo OCI oracle.  Inconvenientes:Principalmente la escalabilidad, ya que estos drivers exigen que en la máquina cliente librerías del cliente de la Base de Datos.

Tipo 3. Driver JDBC a través de Middleware: “NETWORK”  Ventajas: Buena solución cuando necesitamos acceder a Bases de Datos distintas y se quiere usar un único driver JDBC para acceder a las mismas. Al residir la traducción en el servidor del middleware, los clientes no necesitan librerías específicas, tan solo el driver.  Inconvenientes: La desventaja principal reside en la configuración del servidor donde se encuentra el middleware. Necesitará librerías específicas para cada motor de base de datos distinto, etc.

Tipo 4: Driver java puro (acceso directo a Base de Datos): “THIN”.   Ventajas: 100 % portable. Buen rendimiento. El cliente

Page 11: Taller de Bases de Datos

sólo necesita el driver.   Inconvenientes: Al ser independiente de la plataforma, no aprovecha las características específicas del S.O

5. Arquitecturas JDBC Aplicaciones standalone

Applets comunicando con un servidor Web

Aplicaciones y applets comunicando con una base de datos a través de un puente JDBC/ODBC.

Aplicaciones accediendo a recursos remotos usando mecanismos como Java RMI

El procedimiento de conexión con el controlador de la base de datos, independientemente de la arquitectura es siempre muy similar.

En el primero de los casos (a través de la propiedad sql.driver), JDBC usará el primer driver que permita conectarse correctamente a la Base de Datos.

Los conectores o drivers JDBC, se pueden dividir en cuatro tipos principalmente:Permite el acceso a Base de Datos JDBC mediante un driver ODBC. Cada máquina

cliente que use el puente, debe tener librerías clientes de ODBC(dll propias del S.O)

Traducen las llamadas al API de JDBC Java en llamadas propias del motor de Base de Datos (Oracle, Informix...). Al igual que el tipo anterior, exige en las máquinas clientes código binario propio del cliente de la Base de datos específica y del sistema operativo

Traduce las llamadas al API JDBC en llamadas propias del protocolo específico del broker. Éste se encargará de traducirlas de nuevo en sentencias propias del motor de Base de Datos de cada caso.

Convierte o traduce las llamadas al API JDBC en llamadas al protocolo de red usado por el motor de bases de datos, lo que en realidad es una invocación directa al motor de bases de datos.

 S.O donde vaya a correr.

La arquitectura básica de JDBC (ya la hemos visto) es simple. Una clase llamada DriverManager provee un mecanismo para controlar un conjunto de drivers JDBC. Esta clase intenta cargar los drivers especificados en la propiedad del sistema jdbc.drivers. También podemos cargar un driver explicitamente usando Class.forName(). Durante la carga, el driver intentará registrarse a si mismo usando el método clase DriverManager.registerDriver(). Cuando se invoque al método DriverManager.getConnection(), ésta buscará el primer driver de los registrados que pueda manejar una conexión como la descrita en la URL y retornará un objeto que implemente el interfaz java.sql.Connection.

Sin embargo, en función de la localización de la base de datos, el driver, la aplicación y el protocolo de comunicación usado, nos podemos encontrar distintos escenarios que accedan a Base de Datos a través de JDBC:

Todos ellos se pueden agrupar en dos tipos distintos de arquitecturas:

La aplicación que accede a la base de datos reside en el mismo lugar que el driver de la base de datos. El driver accederá al servidor donde corra el motor de base de datos.

En este caso, será el driver el encargado de manejar la comunicación a través de la red.

Page 12: Taller de Bases de Datos

En el ejemplo, una aplicación java corriendo en una máquina cliente que usa el driver también local. Toda la comunicación a través de la red con la base de datos será manejada por el driver de forma transparente a la aplicación Java.

REFERENCIAS:

https://sites.google.com/site/conceptoprogramacion/Home/jdbc1

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=introjdbc

 https://sites.google.com/site/conceptoprogramacion/Home/jdbc1

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=introjdbc

Page 13: Taller de Bases de Datos

UNIDAD IV TECNOLOGÍAS DE CONECTIVIDAD DE BASES DE DATOS.

4.1 ODBC.

4.2 ADO.NET.

4.3 JDBC.

INTRODUCCIÓN

Los desarrolladores de aplicaciones de bases de datos para Microsoft Windows disponen de un

conjunto variado de tecnologías que permiten a una aplicación acceder a los datos

almacenados. Los datos pueden estar en diversos formatos, incluyendo a datos SQL, en forma

local y/o remota. Estas tecnologías han ido evolucionando con el tiempo, algunas sustituyendo

a otras, aunque actualmente coexisten una media docena. Cada una de tales tecnologías tiene

su propia idiosincrasia y posibilidades, según sea el tipo de aplicación que se desee desarrollar

y el tipo de datos a los que se desee acceder. En las siguientes secciones se describirá cada

una de las tecnologías de acceso a bases de datos disponibles  en el entorno de Microsoft

Windows, y se detallarán sus principales características, ventajas y desventajas de uso. Luego

se realizará una comparación entre ellas. Finalmente se sugieren algunas recomendaciones

para los desarrolladores que deban elegir una o varias tecnologías de acceso a bases de

datos. 

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.

Los controladores ODBC suministrados con Microsoft Access le permiten conectarse a bases

de datos SQL e importar, exportar o adjuntar los datos almacenados en dichas bases de datos.

Con Microsoft Access versión 2.0 se suministra el controlador SQL Server, que admite

Microsoft SQL Server y Sybase SQL Server.

ObjetivoLos nuevos métodos de conexión ODBC (empleando directamente el driver ó utilizando un data source de archivo) amplían el alcance (usuarios y computadores) de la conexión ODBC que se venía utilizando hasta ahora.Utilizando data sources, la instalación de una nueva aplicación que accede a los datos mediante ODBC implica la definición del data source correspondiente en cada cliente.  Estos nuevos mecanismos simplifican la etapa de instalación ya que el data source puede reutilizarse.Instalación y administración de controladores ODBC

Page 14: Taller de Bases de Datos

En los siguientes temas se describe la forma de instalar los controladores ODBC y la manera

de configurarlos para su uso con Microsoft Access. Una vez instalados estos controladores,

deberá configurar un origen de datos ODBC para cada base de datos SQL con la que desee

importar, exportar o adjuntar datos.

Instalación de controladores ODBC y configuración de orígenes de datos explica la forma de

instalar los controladores ODBC y de configurar los orígenes de datos (desde el disco de

instalación de ODBC y desde un servidor de red).

Controladores ODBC y controladores incorporados describe los controladores que Microsoft

Access utiliza para importar, exportar y adjuntar datos entre diversos formatos de base de

datos, hojas de cálculo y archivos de texto.

Configuraciones de red y controladores ODBC describe los protocolos de red y las

configuraciones de red que puede utilizar cuando conecte una base de datos de Microsoft

Access a una base de datos SQL mediante un controlador ODBC.

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.

Una aplicación de Conectividad abierta de bases de datos (ODBC) utiliza un origen de datos ODBC para conectarse a una instancia de Microsoft Microsoft SQL Server. Un origen de datos ODBC es una definición almacenada que registra:

         El controlador ODBC que se va a utilizar para las conexiones que especifican el origen de datos.

         La información que utiliza el controlador ODBC para conectarse a un origen de datos.         Opciones específicas del controlador que se van a utilizar para la conexión. Por

ejemplo, un SQL Server origen de datos ODBC puede registrar las opciones de ISO que va a utilizar o si los controladores deben registrar estadísticas de rendimiento.Cada origen de datos ODBC de un cliente tiene un nombre del origen de datos (DSN) exclusivo. Un origen de datos ODBC para el controlador ODBC de SQL Server incluye toda la información utilizada para conectarse a una instancia de SQL Server, más las opciones fundamentales.

Funciones ODBCodbc_autocommit — Activa el comportamiento automático de envíoodbc_binmode — Manejo de información de columna binariaodbc_close_all — Cerrar todas las conexiones ODBCodbc_close — Cerrar una conexión ODBCodbc_columnprivileges — Lista las columnas y los privilegios asociados para la tabla dadaodbc_columns — Lista los nombres de columnas de la tabla especificadaodbc_commit — Envía una transacción ODBCodbc_connect — Conectar a una fuente de datos

Page 15: Taller de Bases de Datos

odbc_cursor — Obtener el nombre del cursorodbc_data_source — Devuelve información sobre una conexión actualodbc_do — Alias de odbc_execodbc_error — Obtener el último código de errorodbc_errormsg — Obtener el último mensaje de errorodbc_exec — Preparar y ejecutar una sentencia SQLodbc_execute — Ejecutar una declaración preparadaodbc_fetch_array — Traer una fila de resultados como una matriz asociativaodbc_fetch_into — Traer una fila de resultados en una matrizodbc_fetch_object — Traer una fila de resultados como un objetoodbc_fetch_row — Traer una filaodbc_field_len — Obtener la longitud (precisión) de un campoodbc_field_name — Obtener el nombre de una columnaodbc_field_num — Devolver el número de columnaodbc_field_precision — Alias de odbc_field_lenodbc_field_scale — Obtener la escala de un campoodbc_field_type — Tipo de datos de un campoodbc_foreignkeys — Recupera información de una lista de claves extranjerasodbc_free_result — Liberar los recursos asociados con un resultadoodbc_gettypeinfo — Recupera información sobre los tipos de datos soportados por la fuente de datosodbc_longreadlen — Manejo de columnas LONGodbc_next_result — Verifica si están disponibles múltiples resultadosodbc_num_fields — Número de columnas de un resultadoodbc_num_rows — Número de filas de un resultadoodbc_pconnect — Abrir una conexión persistente a una base de datosodbc_prepare — Prepara una declaración para su ejecuciónodbc_primarykeys — Obtiene las claves primarias de una tablaodbc_procedurecolumns — Recuperar información sobre los parámetros a procedimientosodbc_procedures — Obtener la lista de procedimientos almacenados en una fuente de datos específicaodbc_result_all — Imprimir el resultado como una tabla HTMLodbc_result — Obtener información de resultadoodbc_rollback — Reanuda una transacciónodbc_setoption — Ajustar la configuración de ODBCodbc_specialcolumns — Recupera columnas especialesodbc_statistics — Recuperar las estadísticas de un tablaodbc_tableprivileges — Lista las tablas y los privilegios asociados con cada tablaodbc_tables — Obtener la lista de los nombres de las tablas almacenados en una fuente de datos específica.

Page 16: Taller de Bases de Datos

JDBC (Java Data Base Connectivity): se trata del estándar para la conectividad entre el lenguaje Java y un amplio rango de sistemas gestores de bases de datos. Los JDBC pueden desenvolverse tanto en un nivel cliente, esto es, trabajando del lado de la aplicación, o en el servidor directamente relacionado con la base de datos. Cuando se encuentre a nivel cliente, trabajará con la tecnología ODBC para acceso a los datos. Hay diversos tipos de controladores JDBC:

         El puente JDBC-OBDC: fue uno de los primeros controladores disponibles, implementa un enlace para utilizar un controlador ODBC desde Java. Con el tiempo han surgido controladores JDBC específicos para cada base de datos que mejoran el rendimiento del puente JDBC-ODBC.

         Controladores Java parcialmente nativos: usan tanto código Java como binario específico de cada plataforma.

         Controladores JDBC-Net de Java puro: son controladores escritos completamente en Java que entienden un protocolo de red estándar (HTTP, etc.) y permiten comunicarse con un servidor de acceso a bases de datos, que es el que finalmente provee el acceso al SGBD específico (posiblemente con ODBC).

         Controladores de protocolo nativo en Java puro: escritos en Java puro, utilizan el protocolo específico de la marca del SGBD.Java Database Connectivity, más conocida por sus siglas JDBC , es una API 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.El API JDBC se presenta como una colección de interfaces Java y métodos de gestión de manejadores de conexión hacia cada modelo específico de base de datos. Un manejador de conexiones hacia un modelo de base de datos en particular es un conjunto de clases que implementan las interfaces Java y que utilizan los métodos de registro para declarar los tipos de localizadores a base de datos (URL) que pueden manejar. Para utilizar una base de datos particular, el usuario ejecuta su programa junto con la biblioteca de conexión apropiada al modelo de su base de datos, y accede a ella estableciendo una conexión; para ello provee el localizador a la base de datos y los parámetros de conexión específicos. A partir de allí puede realizar cualquier tipo de tarea con la base de datos a la que tenga permiso: consulta, actualización, creación, modificación y borrado de tablas, ejecución de procedimientos almacenados en la base de datos, etc.Requisitos del sistema operativoEl controlador JDBC se ha diseñado para funcionar en cualquier sistema operativo que admita el uso de una máquina virtual Java (JVM). No obstante, sólo se han probado oficialmente los sistemas operativos Sun Solaris, SUSE Linux y Windows XP o sistemas operativos posteriores.Requisitos de SQL Server

Page 17: Taller de Bases de Datos

El controlador JDBC se ha diseñado especialmente para usar las características incluidas en SQL Server 2005, aunque es compatible con versiones anteriores a SQL Server 2000, incluyendo la versión de 64 bits.Para tener acceso a los datos desde una base de datos de SQL Server mediante el controlador JDBC de Microsoft SQL Server, debe tener los siguientes componentes instalados en el equipo:Controlador de JDBC de Microsoft SQL ServerJava Runtime Environment.

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 .NET Framework. 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.ADO.NET consiste en dos partes primarias:Data providerEstas clases proporcionan el acceso a una fuente de datos, como Microsoft SQL Server y Oracle. Cada fuente de datos tiene su propio conjunto de objetos del proveedor, pero cada uno tiene un conjunto común de clases de utilidad:Connection: Proporciona una conexión usada para comunicarse con la fuente de datos. También actúa como Abstract Factory para los objetos command.Command: Usado para realizar alguna acción en la fuente de datos, como lectura, actualización, o borrado de datos relacionales.Parameter: Describe un simple parámetro para un command. Un ejemplo común es un parámetro para ser usado en un procedimiento almacenado.

Page 18: Taller de Bases de Datos

DataAdapter: "Puente" utilizado para transferir data entre una fuente de datos y un objeto DataSet (ver abajo).DataReader: Es una clase usada para procesar eficientemente una lista grande de resultados, un registro a la vez.DataSetsLos objetos DataSets, es un grupo de clases que describen una simple base de datos relacional en memoria, fueron la estrella del show en el lanzamiento inicial (1.0) del Microsoft .NET Framework. Las clases forman una jerarquía de contención:Un objeto DataSet representa un esquema (o una base de datos entera o un subconjunto de una). Puede contener las tablas y las relaciones entre esas tablas.Un objeto DataTable representa una sola tabla en la base de datos. Tiene un nombre, filas, y columnas.Un objeto DataView "se sienta sobre" un DataTable y ordena los datos (como una cláusula "order by" de SQL) y, si se activa un filtro, filtra los registros (como una cláusula "where" del SQL). Para facilitar estas operaciones se usa un índice en memoria. Todas las DataTables tienen un filtro por defecto, mientras que pueden ser definidos cualquier número de DataViews adicionales, reduciendo la interacción con la base de datos subyacente y mejorando así el desempeño.Un DataColumn representa una columna de la tabla, incluyendo su nombre y tipo.Un objeto DataRow representa una sola fila en la tabla, y permite leer y actualizar los valores en esa fila, así como la recuperación de cualquier fila que esté relacionada con ella a través de una relación de clave primaria - clave extranjera.Un DataRowView representa una sola fila de un DataView, la diferencia entre un DataRow y el DataRowView es importante cuando se está interactuando sobre un resultset.Un DataRelation es una relación entre las tablas, tales como una relación de clave primaria - clave ajena. Esto es útil para permitir la funcionalidad del DataRow de recuperar filas relacionadas.Un Constraint describe una propiedad de la base de datos que se debe cumplir, como que los valores en una columna de clave primaria deben ser únicos. A medida que los datos son modificados cualquier violación que se presente causará excepciones.Un DataSet es llenado desde una base de datos por un DataAdapter cuyas propiedades Connection y Command que han sido iniciados. Sin embargo, un DataSet puede guardar su contenido a XML (opcionalmente con un esquema XSD), o llenarse a sí mismo desde un XML, haciendo esto excepcionalmente útil para los servicios web, computación distribuida, y aplicaciones ocasionalmente conectadas desconectados.ADO.NET y Visual Studio .NET

Page 19: Taller de Bases de Datos

En el IDE Visual Studio .NET existe la funcionalidad para crear las subclases especializadas de las clases del DataSet para un esquema particular de base de datos, permitiendo el acceso conveniente a cada campo a través de propiedades fuertemente tipadas. Esto ayuda a capturar más errores de programación en tiempo de compilación y hace más útil la característica Intellisense del IDE.ADO.NET Entity Framework

Artículo principal: ADO.NET Entity Framework.El ADO.NET Entity Framework es un conjunto de APIs de acceso a datos para el Microsoft .NET Framework, apuntando a la versión de ADO.NET que se incluye con el .NET Framework 3.5. Fue lanzado como actualización separada junto con el Service Pack 1 para el .NET Framework, después del lanzamiento de tanto el .NET Framework 3.5 y el Visual Studio 2008. Una nueva versión del Entity Framework (v 4.0) será liberada junto al Visual Studio 2010 y el .NET Framework 4.0.Una entidad del Entity Framework es un objeto que tiene una clave representando la clave primaria de una entidad lógica de datastore. Un modelo conceptual Entity Data Model (modelo Entidad-Relación) es mapeado a un modelo de esquema de datastore. Usando el Entity Data Model, el Framework permite que los datos sean tratados como entidades independientemente de sus representaciones del datastore subyacente.El Entity SQL es un lenguaje similar al SQL para consultar el Entity Data Model (en vez del datastore subyacente). Similarmente, las extensiones del Linq, Linq-to-Entities, proporcionan consultas tipeadas en el Entity Data Model. Las consultas Entity SQL y Linq-to-Entities son convertidas internamente en un Canonical Query Tree que entonces es convertido en una consulta comprensible al datastore subyacente (ej. en SQL en el caso de una base de datos relacional). Las entidades pueden utilizar sus relaciones, y sus cambios enviados de regreso al datastore.

Requisitos para desarrollar aplicación con acceso a MySQL nativo usando Visual C# .Net y driver Connector/Net ADO.NETA continuación indicamos los requisitos necesarios para desarrollar una aplicación, usando el IDE de desarrollo Microsoft Visual C# .Net, que acceda de forma nativa (directa sin intermediarios) al motor de base de datos gratuito MySQL Server:•          Suite de desarrollo Microsoft Visual Studio .Net 2010: en el siguiente tutorial explicamos cómo instalar este entorno de desarrollo de aplicaciones .Net:Instalar Microsoft Visual Studio .Net 2010 y desarrollar aplicación con acceso a PostgreSQL.•          Driver Connector/Net de MySQL: necesitaremos las librerías proporcionadas por MySQL para acceso nativo desde .Net, disponibles en el sitio web oficial de MySQL, en la URL:http://dev.mysql.com/downloads/connector/net

Page 20: Taller de Bases de Datos

En nuestro caso descargaremos la versión 6.6.4 y la plataforma (Select Platform) "Microsoft Windows", descargaremos "Windows (x86, 32-bit), MSI Installer" (mysql-connector-net-6.6.4.msi):

Ejecutaremos el fichero mysql-connector-net-6.6.4.msi descargado:

Pulsaremos en "Ejecutar" en la ventana de Advertencia de seguridad de Abrir archivo:

Se iniciara el asistente de instalaciòn de MySQL connector net 6.6.4, pulsaremos next

Page 21: Taller de Bases de Datos

Tras la instalacion de MySQL connector  Net. 6.6.4, al asistente nos indicarà que la instalacion

ha finalizado  pulsaremos finish