Modelos de Almacenamiento de Datos C#

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 10

VISUAL BASIC NET MODELOS DE ALMACENAMIENTO DE DATOS

En general existen dos modelos de almacenamiento de datos en los sistemas de


informacin.
a) El modelo tradicional de archivos que se construye con los siguientes elementos:
1.- Variables Registros que como ya se indico son variables que permiten almacenar
conjuntos de datos de diverso tipo.
Tambin se pueden definir como representaciones simblicas y programticas de
entidades lgicas de informacin ejemplos de variables registros son alumnos,
empleados, clientes, proveedores, productos, autos, etc.
Estas variables registros tambin ocupan programas o rutinas de programas para
procesarlas por ejemplo un procedimiento, modulo o subrutina se encargara de capturar
los datos que contendr la variable registro otro procedimiento para corregir los datos
que ya contiene, otro procedimiento para desplegarlos en pantalla ya cuando a sido
capturada y as sucesivamente.
2.-Archivos, que en principio pueden entenderse como una especie de almacenes o
bodegas para almacenamiento de datos en forma permanente en disco es decir, un
archivo de empleados en disco contiene todos los datos de todos los empleados de una
empresa.
Igualmente los archivos ocupan su propios programas o subrutinas o procedimientos
especializados por ejemplo, procedimientos para crear los archivos, para almacenar o
dar de altas los registros en el archivo, procedimientos para buscar un registro
determinado, procedimiento para dar de baja un registro, etc.
3.- Una aplicacin que es un programa que se encarga de coordinar todos los programas
descritos y presentar a usuarios de manera clara, fcil, accesible y entendible.
Salta a la vista que construir un sistema de informacin por ejemplo para una tienda de
video o para un refaccionaria etc, involucra un gran cantidad de trabajo de
programacin puesto que hay que programar muchas variables registros, muchos
archivos en disco y construir una o muchas aplicaciones.
Este modelo se usa todava en la actualidad pero es obvio que mejores maneras, mas
rpidas, seguras y eficientes existen en la actualidad para resolver estos problemas, y
esto nos lleva al segundo modelo de datos.
b) Modelo de Bases de Datos Relacionales: Este modelo intenta simplificar la
construccin de sistemas de informacin como los antes descritos, este modelo solo
incluye en forma simple los siguientes elementos:
b.1) Tablas, es una combinacin de las variables registro y de los archivos del modelo
anterior.

Es decir cuando un programador moderno define o declara una tabla en un programa


realmente esta haciendo dos cosas por el precio de una es decir, crea una variable
registro en memoria que almacenara los datos y al mismo tiempo ya esta creando un
archivo en disco que se llamara igual que la tabla y que automticamente se convertir
en un espejo de la tabla en memoria.
b.2) Aplicacin, que tiene la misma funcin que en el modelo anterior.

Introduccin a .NET con Visual Basic 2005 - System.Data

System.Data
Las clases del nombre de espacio System.Data son bastantes extensas y variadas. Quizs las
clases ms importantes son la clase DataView, la clase DataSet y la clase DataTable.

La clase DataSet
El DataSet es una representacin de datos residente en memoria que proporciona una modelo de
programacin relacional coherente independientemente del origen de datos que contiene. El
DataSet contiene en s, un conjunto de datos que han sido volcados desde el proveedor de datos.
Debemos tener en cuenta que cuando trabajamos con DataSets, el origen de datos no es lo ms
importante, ya que ste, puede ser cualquier tipo de origen de datos. No tiene porqu ser una
base de datos.
Un DataSet contiene colecciones de DataTables y DataRelations. El DataTable contiene una
tabla o tablas, mientras que la DataRelation contiene las relaciones entre las DataTables. Sin
embargo, no es necesario especificar todo esto hasta el ltimo detalle como veremos ms
adelante.

La clase DataView
Este objeto nos permite crear mltiples vistas de nuestros datos, adems de permitirnos
presentar los datos.
Es la clase que nos permite representar los datos de la clase DataTable, permitindonos editar,
ordenar y filtrar, buscar y navegar por un conjunto de datos determinado.

La clase DataTable
Este objeto nos permite representar una determinada tabla en memoria, de modo que podamos
interactuar con ella.
A la hora de trabajar con este objeto, debemos tener en cuenta el nombre con el cul definamos
una determinada tabla, ya que los objetos declarados en en el DataTable es sensitivo a
maysculas y minsculas.

Un pequeo ejemplo prctico


El siguiente ejemplo prctico, nos ensea a utilizar un DataSet y nos muestra como podemos
acceder a los objetos que dependen de un DataSet para recuperar por ejemplo, los campos y
propiedades de una determinada tabla o tablas.
Los proveedores de acceso a datos

Los proveedores de acceso a datos


Los proveedores de acceso a datos es la capa inferior de la parte correspondiente al acceso de
datos y es la responsable de establecer la comunicacin con las fuentes de datos.

En este conjunto de nombres de espacio, encontraremos casi siempre las clases Connection,
Command, DataAdapter y DataReader como las clases ms generales, las cuales nos
permiten establecer la conexin con la fuente de datos.

Proveedores de acceso a datos de .NET Framework


Dentro del entorno .NET Framework, encontramos un nutrido conjunto de proveedores de
acceso a datos.
Estos son los siguientes:

ODBC .NET Data Provider


OLE DB .NET Data Provider

Oracle Client .NET Data Provider

SQL Server .NET Data Provider

Estos proveedores de acceso a datos incluidos en Microsoft .NET Framework, los podemos
encontrar en los nombres de espacio:

System.Data.Odbc
System.Data.OleDb

System.Data.OracleClient

System.Data.SqlClient

El proveedor ODBC .NET permite conectar nuestras aplicaciones a fuentes de datos a travs de
ODBC.
El proveedor OLE DB .NET permite conectar nuestras aplicaciones a fuentes de datos a travs
de OLE DB.
El proveedor Oracle Client .NET es un proveedor de acceso a datos especialmente diseado
para bases de datos Oracle.
Por ltimo, el proveedor SQL Server .NET es un proveedor de acceso a datos nativo, que nos
permite conectar nuestras aplicaciones a fuentes de datos Microsoft SQL Server 7 o posterior.
Se trata de un proveedor especfico para bases de datos Microsoft SQL Server 7.0, Microsoft
SQL Server 2000 y Microsoft SQL Server 2005.
Nota
Consejo: Siempre que pueda, utilice para acceder a fuentes de datos, un proveedor de acceso a
datos nativo. Esto le permitir aumentar considerablemente el rendimiento a la hora de
establecer la conexin con una determinada fuente de datos
Los proveedores de acceso a datos que distribuye Microsoft en ADO.NET y algunos
desarrollados por otras empresas o terceros, contienen los mismos objetos, aunque los nombres
de stos, sus propiedades y mtodos, pueden ser diferentes. Ms adelante veremos algn
ejemplo, y observar en la prctica cules son estas diferencias ms destacables.

Otros proveedores de acceso a datos


Si bien el proveedor de acceso a datos es el mecanismo a travs del cul podemos establecer una
comunicacin nativa con una determinada fuente de datos, y dado que Microsoft proporciona
los proveedores de acceso a datos ms corrientes, es cierto que no los proporciona todos, si bien,
con OLE DB y ODBC, podemos acceder a la inmensa totalidad de ellos.
Sin embargo, hay muchos motores de bases de datos de igual importancia como Oracle, MySql,
AS/400, etc. En estos casos, si queremos utilizar un proveedor de acceso a datos nativo,
deberemos acudir al fabricante o a empresas o iniciativas particulares para que nos proporcionen
el conjunto de clases necesarias que nos permitan abordar esta accin .

El objeto Connection
Este objeto es el encargado de establecer una conexin fsica con una base de datos
determinada. Para establecer la conexin con una determinada fuente de datos, no slo debemos
establecer la cadena de conexin correctamente, sino que adems deberemos usar los
parmetros de conexin y el proveedor de acceso a datos adecuado. Con este objeto, podremos
adems abrir y cerrar una conexin.

El objeto Command
Este objeto es el que representa una determinada sentencia SQL o un Stored Procedure.
Aunque no es obligatorio su uso, en caso de necesitarlo, lo utilizaremos conjuntamente
con el objeto DataAdapter que es el encargado de ejecutar la instruccin indicada.

El objeto DataAdapter
Este objeto es quizs el objeto ms complejo y a la vez complicado de todos los que forman
parte de un proveedor de acceso a datos en .NET. Cuando deseamos establecer una
comunicacin entre una fuente de datos y un DataSet, utilizamos como intermediario a un
objeto DataAdapter. A su vez, un DataAdapter contiene 4 objetos que debemos conocer:

SelectCommand es el objeto encargado de realizar los trabajos de seleccin de datos con


una fuente de datos dada. En s, es el que se encarga de devolver y rellenar los datos de
una fuente de datos a un DataSet.
DeleteCommand es el objeto encargado de realizar las acciones de borrado de datos.

InsertCommand es el objeto encargado de realizar las acciones de insercin de datos.

UpdateCommand es el objeto encargado de realizar las acciones de actualizacin de


datos.

Los objetos DeleteCommand, InsertCommand y UpdateCommand son los objetos que se


utilizan para manipular y transmitir datos de una fuente de datos determinada, al contrario del
objeto SelectCommand que tan slo interacta con la fuente de datos para recuperar una porcin
o todos los datos indicados en el objeto Command anteriormente comentado.

El objeto DataReader
Este objeto es el utilizado en una sola direccin de datos.

Se trata de un objeto de acceso a datos muy rpido.


Este objeto puede usar a su vez el objeto Command o el mtodo ExecuteReader.

El paradigma de la conexin

El paradigma de la conexin
Cuando abordamos un proyecto de acceso a fuentes de datos, siempre nos encontramos
con una duda existencial. Debemos crear una conexin con la base de datos al
principio de nuestra aplicacin y cerrarla cuando la aplicacin se cierre?, o debemos
crear una conexin con la base de datos slo cuando vayamos a trabajar con la fuente de
datos?. Y si estamos trabajando continuamente con una fuente de datos?, cmo
penalizaran todas estas acciones?.
Es difcil de asumir que accin tomar en cada caso, y es que dependiendo de lo que
vayamos a realizar, a veces es ms efectiva una accin que otra, y en otras ocasiones, no
est del todo claro, ya que no existe en s una regla clara que especifique qu accin
tomar en un momento dado.
Lo que s est claro es que el modelo de datos de ADO.NET que hemos visto, quedara
resumido en cuanto a la conectividad de la manera en la que se representa en la figura 1.

Visin general de ADO.NET respecto a la conectividad con bases de datos


Figura 1
El objeto DataSet nos ofrece la posibilidad de almacenar datos, tablas y bases de datos
de una determinada fuente de datos. De esta manera, podemos trabajar con las
aplicaciones estando desconectados de la fuente de datos.

Sin embargo, a veces necesitamos trabajar con la fuente de datos estando conectados a
ella. El objeto DataReader nos ofrece precisamente la posibilidad de trabajar con
fuentes de datos conectadas.
Por otro lado, el objeto DataReader tiene algunas particularidades que conviene conocer
y que veremos a continuacin.
Conociendo el objeto DataReader

Conociendo el objeto DataReader


El objeto DataReader nos permite como hemos indicado anteriormente, establecer una
conexin con una fuente de datos y trabajar con esta fuente de datos sin desconectarnos
de ella, sin embargo, hay diferentes cualidades y particularidades que conviene conocer.

DataReader es de solo lectura


Lo que hemos dicho anteriormente, requiere sin embargo, que esta conexin se
establezca en un modo de slo lectura, al contrario de lo que se puede hacer con el
objeto DataSet, con el que podemos interactuar con la fuente de datos en modo lectura y
modo escritura.

DataReader se maneja en una sola direccin


El objeto DataReader slo permite que nos desplacemos por los datos en una sola
direccin, sin vuelta atrs. Por el contrario, el objeto DataSet nos permite movernos por
los registros para adelante y para atrs.
Adems, slo podemos utilizar el objeto DataReader con conexiones establecidas en
una sentencia SQL por ejemplo, pero no podemos variar esta. Para hacerlo, debemos
entonces modificar la conexin con el comando establecido.

DataReader es rpido
Debido a su naturaleza y caractersticas, este objeto es bastante rpido a la hora de
trabajar con datos.
Como es lgico, consume adems menos memoria y recursos que un objeto DataSet por
ejemplo.
Sin embargo, dependiendo de las necesidades con las que nos encontremos, puede que
este mtodo de acceso y trabajo no sea el ms idneo.

Analizando el flujo de trabajo de DataReader


Cuando trabajamos con fuentes de datos conectadas, trabajaremos con el objeto
DataReader.
Para trabajar con este objeto, utilizaremos los objetos siguientes del proveedor de
acceso a datos:

Connection
Command

DataReader

Un resumen grfico de esto es lo que podemos ver en la figura 1.

Luego de haber creado nuestras tablas es necesario que creemos un formulario para
tener acceso a los datos de la tabla, debemos tener una caja de texto para cada tabla, la
tabla que vamos a utilizar es la tabla Alumnos, ms o menos as:

El cdigo es el siguiente:
Ahora bien has doble sobre el fondo del formulario lo cual te llevar al espacio del nombre del
formulario, escribe el siguiente cdigo que servir para el enlace a la base de datos y a la tabla
que hemos creado previamente.
using
using
using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
System.Data.SqlClient;

namespace WindowsFormsApplication1
{
public partial class prueba : Form
{
private string strconexion;
private SqlConnection bases;
private SqlDataAdapter ada;
private DataSet tabla = new DataSet();
private DataRow r;
private int i=0;
private SqlCommand cmd;
public void IniciarConexion(string DataBase)
{
SqlDataReader ada = null;
SqlConnection bases = null;
SqlCommand cmd = null;
}

public prueba()
{
InitializeComponent();
}
private void prueba_Load(object sender, EventArgs e)
{
bases = new SqlConnection("Data Source=ALMANZAPC\SQLEXPRESS;Initial Catalog=prueba;Integrated Security=True");
bases.Open();
ada= new SqlDataAdapter ("SELECT * FROM
prueba",bases);
bases.Close();
ada.Fill(tabla, "prueba");
r = tabla.Tables("prueba").Rows(i);
textBox1.Text = r("id");
textBox2.Text = r("nombre");
textBox3.Text = r("edad");
textBox4.Text = r("direccion");

}
Private Sub bprimero_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles bprimero.Click
{
i = 0
r = tabla.Tables("alumnos").Rows(i);
txtid.Text = r("carnet");
txtnombre.Text = r("nombre");
txtapellido.Text = r("apellido");
txtedad.Text = r("edad");
txtdir.Text = r("direccion");
}
Private Sub bultimo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles bultimo.Click
{
i = tabla.Tables("alumnos").Rows.Count 1;
r =tabla.Tables("alumnos").Rows(i);
txtid.Text = Me.r("carnet");
txtnombre.Text = r("nombre");
txtapellido.Text =r("apellido");
txtedad.Text = r("edad");
txtdir.Text = r("direccion");
}
Private Sub bagregar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles bagregar.Click
{
txtid.Text = "";
txtnombre.Text="";
txtapellido.Text ="";
txtedad.Text ="";
txtdir.Text ="";
}

También podría gustarte