Está en la página 1de 8

TEMA 6. ARQUITECTURA DE ADO.

NET

6.1. INTRODUCCIÓN A ADO.NET

Una vez hecha una pequeña aproximación a las bases de datos y su manejo
vamos a centrarnos en el estudio de ADO.NET, que, como se anticipaba al
comienzo del curso, es  el  modelo  de  acceso  a  datos  incluido  en  la
arquitectura .Net. Este modelo proporciona una tecnología de acceso a datos
potente y fácil de utilizar.

ADO.NET nos permitirá  trabajar  sobre  un  conjunto  de  datos  sin
necesidad  de  mantener  abierta  una  conexión  con  el  origen  de  los
mismos, esto es, podremos obtener un conjunto de datos, trabajar sobre él
sin conexión, y conectar después para la actualización de los mismos en el
origen desde el conjunto de datos. Actualmente se tiende a enfoque de trabajo,
pues favorece un mejor rendimiento en los accesos a los orígenes de datos y
una mayor escalabilidad en las aplicaciones.

El formato que se transfieren los datos con ADO.NET será XML. Dicho formato
permite un envío independientemente de sistemas operativos, plataformas o
lenguajes.

Programación .NET (II). Arquitectura de ADO.NET 5.1
Los dos componentes principales de la arquitectura ADO.NET son los
proveedores de datos de .Net Framework y DataSet (conjuntos de datos).
Estos componentes permitirán separar el acceso a los datos de la manipulación
de los mismos.

Los  proveedores  de  datos  nos  permitirán  la  manipulación  y  acceso


rápido a datos de sólo lectura y sólo avance. Cuentan con objetos para
conectar con un origen de datos, para consultar datos o para la actualización
de los mismos. El proveedor de datos a utilizar dependerá del tipo origen de
datos al que pensemos acceder.

Por otro lado, DataSet está pensado para el acceso a los datos de forma


independiente al origen de datos. Por ello, se podrá utilizar con múltiples
tipos de orígenes de datos, con datos XML o incluso con datos locales de nuestra
aplicación.

A continuación profundizaremos un poco más en los objetos que componen


ADO.NET.

5.2 Programación .NET (II). Arquitectura de ADO.NET
6.2. ESPACIOS DE NOMBRES Y CLASES PRINCIPALES

Espacios de nombres para el acceso a datos

En la arquitectura .NET, todas las clases de acceso a datos están contenidas


en el espacio de nombres System.Data.

Este espacio, a su vez, contiene otros espacios de nombres con las clases
específicas para cada proveedor de datos disponible. Por ejemplo, para el
proveedor de datos SQL Server utilizaremos las clases del espacio de nombres
System.Data.SqlClient. A continuación puedes ver los espacios de nombres
correspondientes a los distintos proveedores. Los examinaremos
detalladamente más adelante.

Clases de proveedores de datos

{} System.Data

 {} System.Data.ODBC  ODBC

 {} System.Data.OleDb  OLE DB

 {} System.Data.OracleClient  Oracle

 {} System.Data.SqlClient  SQL Server

Programación .NET (II). Arquitectura de ADO.NET 5.3
DataSet

Podemos decir que la clase DataSet es la base de la arquitectura ADO.NET en


su enfoque de trabajo sin conexión. Representa un conjunto de datos que se
almacena en la memoria y que ofrece un modelo relacional completo e
independiente del origen de datos del que se obtuvo.

Es un conjunto de datos completo en el sentido de que puede contener tablas


de datos, con ordenación y restricciones aplicables a los mismos, y relaciones
entre tablas.

Podemos trabajar con un DataSet de diferentes maneras:

 Podemos crear en él desde cero, mediante programación, tablas,


restricciones, relaciones entre tablas y llenar las tablas con nuestros datos.

 Podemos acceder a tablas de un origen de datos y volcarlas en el DataSet.

 Podemos crear un DataSet a partir de un documento XML.

En el siguiente esquema puedes ver cómo un DataSet estará formado por


colecciones de objetos de la clase DataTable (contenidos en la clase
DataTableCollection), que son tablas, y DataRelation (contenidos en la clase
DataRelationCollection), que definirán posibles relaciones entre las tablas.

5.4 Programación .NET (II). Arquitectura de ADO.NET
DataTable

La clase DataTable representa una tabla de datos en memoria.

De igual forma que las tablas de datos que definíamos al comenzar con bases
de datos, un objeto DataTable tendrá filas y columnas. Además podrá tener
aquellas restricciones necesarias para asegurar la integridad de los datos que
contenga.

Las filas de un objeto DataTable están contenidas en la colección


DataRowCollection y son objetos de la clase DataRow.

Las columnas de DataTable están contenidas en la colección


DataColumnCollection y son objetos de la clase DataColumn.

En la programación, estas colecciones serán accesibles desde las propiedades


Columns y Rows de DataTable, respectivamente. A través de estas
propiedades podremos recorrer, añadir, modificar o eliminar filas y columnas
de la tabla.

La colección ConstraintCollection contendrá las restricciones que se establezcan


para los datos de la tabla. Será accesible durante la programación a través de
la propiedad Constraints.

Programación .NET (II). Arquitectura de ADO.NET 5.5
DataRelation

La clase DataRelation representa una relación entre dos tablas a través de


una o varias de sus columnas permitiendo así vincular sus datos.

Por ejemplo, si tenemos una tabla PEDIDOS y otra CLIENTES y ésta última tiene
como clave una columna “idcliente”, podemos tener otra columna
“idclientepedido” en PEDIDOS relacionada con la clave en CLIENTES. De esta
forma podremos encontrar los datos del cliente que haya hecho determinado
pedido.

PEDIDOS

idpedido producto cantidad idclientepedido fecha

1 MESA 50 2 11 10/08/09

CLIENTES

idcliente nombre apellidos dirección teléfono

11 José García Heras Alcarria 8 910000000

Las relaciones entre tablas son un elemento básico en los modelos de datos
relacionales.

En un DataSet las relaciones son de la clase DataRelation, están contenidas en


la colección DataRelationCollection, y son accesibles desde la propiedad
Relations de DataSet.

5.6 Programación .NET (II). Arquitectura de ADO.NET
Proveedores de datos

Un proveedor de datos sirve como puente entre una aplicación y un
origen de datos, tanto para recuperar como para actualizar información. El
diseño de los proveedores los hace “ligeros”, por lo que este puente será
mínimo y permitirá un buen rendimiento en las aplicaciones sin perder
funcionalidad.

Podremos trabajar directamente con los datos a través del proveedor o bien
colocarlos en un DataSet para manipularlos independientemente.

Antes mencionábamos que los proveedores de datos poseen componentes


específicos para cada tipo de origen de datos y otros que son comunes a todos
ellos. Veamos a continuación éstos últimos.

Principales clases que componen un proveedor de datos

En el siguiente esquema puedes ver las clases que componen un proveedor de


datos. A continuación pasaremos a definirlas.

Programación .NET (II). Arquitectura de ADO.NET 5.7
 Connection.

El objeto Connection sirve para establecer una conexión a un origen de datos


determinado.

 Command.

El objeto Command ejecuta una orden o comando en un origen de datos. Se


podrán suministrar parámetros a los comandos mediante el objeto Parameter.

 DataReader.

El objeto DataReader o lector de datos sirve para leer una secuencia de datos
en modo sólo lectura y sólo avance.

 DataAdapter.

El objeto adaptador de datos llena un DataSet con datos procedentes de un


origen de datos y proporciona los medios para realizar las actualizaciones
necesarias en el origen de datos.

En el próximo tema profundizaremos en el estudio de los proveedores de datos


más habituales.

5.8 Programación .NET (II). Arquitectura de ADO.NET

También podría gustarte