Escolar Documentos
Profissional Documentos
Cultura Documentos
5
Visual Studio 2008
Para el Almacenamiento de Datos se emplea un metodo especifico de construir una unidad de informacion . Los medios de almacenamiento de datos pueden venir en diferentes formatos, entre ellos podemos mencionar:
Caracteristicas
Los Datos no tienen un orden Logico
Ejemplo
Memorandus simples.
Estructurado, No Jerarquico
Jerarquicos
Los datos estan separadosen unidades, pero las unidades se encuentran estrictamente ordenados.
Los datos estan organizados en una estructura tipo arbol, donde los nodos pueden contener otros nodos Los datos estan organizados en tablas, con columnas que contienen un tipo especifico de datos y las filas que contienen un simple registro. Las tablas pueden relacionarse con otras tablas que contengan datos comunes. Los datos estan organizados como objetos
Archivos separados por comas o caracteres tab, hojas electronicas de Excel, etc. Documentos XML SQL Server, Oracle, Microsoft Access.
Objectivity/DB
ADO .NET, puede soportar el acceso a cualquiera de los tipos de repositorios que se especificaron en la tabla anterior. ADO .NET, puede trabajar en dos entornos de trabajo:
Entorno Conectado Entorno Desconectado
Entorno Conectado
Durante mucho tiempo las aplicaciones que requerian el empleo de datos lo hacian a traves de un entorno conectado de datos, lo cual significa que un usuario y/o aplicacion esta conectado al origen de datos constantemente. Un escenario conectado ofrece como beneficio:
Un entorno seguro de facil mantenimiento. Se puede controlar facilmente la concurrencia.
Entorno Conectado
Pero a su vez este modo de trabajo nos puede presentar algunas desventajas:
Requiere de una conexion de Red Permanente. Afecta la escabilidad de la aplicacin.
Entorno Desconectado
Un entorno desconectado permite al usuario no estar conectado constantemente al servidor a la base de datos. Los usuarios moviles que emplean que emplean computadoras portatiles o algun dispositivo PDA son los principales usuarios de entornos desconectados.
Entorno Desconectado
Un entorno desconectado provee las siguientes ventajas:
El usuario puede trabajar todo el tiempo que lo considere necesario, y puede conectarse al origen de datos en el momento que requiera procesar su informacin. Otros usuarios pueden emplear la conexion. Un entorno desconectado provee escabilidad y performance a las aplicaciones.
Entorno Desconectado
Un entorno desconectado provee las siguientes desventajas:
Los datos no estan actualizados siempre Los conflictos al actualizar datos pueden ocurrir y deben solucionarse.
Los modelos de aplicaciones de acceso a datos estn relacionados a la evolucin de las aplicaciones y computadores desde la alta distribucin. Debido a que el numero de usuarios y la cantidad de datos se incrementa, el modelo de acceso de datos puede determinarse desde un simple usuario sobre una aplicacin sencilla hasta mltiples usuarios consultando informacin sobre Internet.
Modelo de Capas
Una capa es un nivel logico sobre el cual residen los componentes de una aplicacin. Las capas pueden residir sobre una o mas computadoras o capas fisicas. El numero de capas esta referido al numero de niveles no al numero de computadores sobre el cual se puede distribuir los servicios.
Modelo de Capas
Las capas comunmente empleadas en el desarrollo son:
Cliente: Tambien conocida como capa de presentacin o servicios de usuario. Esta capa contiene la interfase con el usuario. Negocios: contiene la logica que intereactua con el origen de datos, contiene la parte de la aplicacin que interactua con los datos. Datos: contiene la informacin que la capa de negocios emplea en las aplicaciones. Interoperatibilidad: contiene la logica que permite la interaccion entre aplicaciones que corren sobre diferentes sistemas operativos o que emplean diferentes tipos de datos, por ejemplo XML Web Service.
3 Capas
Cada servicio se encuentra en una capa diferente. Ventajas: Una buena separacin de funciones. La capa de cliente se convierte en un Cliente Ligero debido a que contiene solo la logica cliente o presentacion. Desventajas: Mas complejo de administrar, la seguridad no es tan flexible como en las aplicaciones de n capas.
N Capas
Una base de datos de nivel empresarial a la cual tienen acceso multiples clientes a traves de una aplicacin servidor. Nuevas capas pueden agregarse segun se requiera. Ventajas: Permite que diferentes aplicaciones sobre distintos sistemas operativos puedan interactuar con el usuario y los datos. Desventajas: Usos de Seguridad.
Diseo: Evolucin
Monoltica Cliente/ Servidor
Presentacin
3 Capas
Distribuida
Reglas
Reglas
Reglas
Reglas
Introduccin a ADO.NET
ADO.NET es la evolucin natural del modelo ADO; se basa en el desarrollo de aplicaciones en n capas, con XML como pilar central. ADO .NET es un nuevo conjunto de clases que proporciona servicios de acceso a datos a los programadores .NET. Es una parte integral de la clase Framework, que contiene toda la biblioteca de clases que Microsoft ofrece con .NET, incluidas las clases fundamentales para los tipos de sistemas anteriores, como los de E/S, redes, datos y XML.
ADO.net
VB C++ C# J# Common Language Specification ASP.NET Web Forms Web Services Mobile Internet Toolkit ADO.NET y XML Base Class Library Common Language Runtime Operating System Visual Studio .NET Windows Forms
Escalabilidad
Objetivos distribuidos, escenarios web desconectados
Modelos
Arquitectura distribuida reemplaza cliente/servidor Integracin de datos de mltiples y diferentes fuentes
DataSet
Capa Negocio
Web Forms
IE
Capa Datos
Data Adapter Data Adapter
Business to Business
XmlDataDocument
DataAdapter
DataReader
XmlReader
XmlText- XmlNodeReader Reader
Command Connection
Proveedor Gestionado
Facilidad de Mantenimiento
Separacion de la Logica de datos y la interfaz del usuario
Namespace de Datos
Namespace
System.Data
Descripcion
Incluye las clases que hacen posible realizar el trabajo en modo desconectado en la arquitectura de ADO .NET System.Data.Common Provee las clases e interfaces heredadas que permiten la implementacin de los .NET Data Providers. System.Data.SqlClient Proveedor para SQL Server. System.Data.OleDb System.Data.SqlTypes Proveedor para OLE-DB para NET. Las clases y estructuras nativas de SQL Server Clases, interfases de XML.
System.Xml
System Data
Contiene las bases de ADO.NET Namespace centrado en Datos Provee los mecanismos para trabajar con y sobre los datos
Clases y mtodos para manipular los datos Habilidad para crear vistas de los datos Formas para representar lgicamente los datos Permite la utilizacin de XML para ver, compartir y almacenar datos
Namespaces de Datos
Para poder emplear el SQLClient en el editor de codigo de su aplicacin debe colocar la siguiente instruccin:
Ejemplo
El siguiente ejemplo permite poblar una Dataset desde una Base de Datos de SQL Server y luego enlaza la informacin contenida en uno de los DataTable del DataSet al origende datos del control dataGrid.
Ejemplo
Ejemplo
Modelo de Objetos
DataSet Proveedores Administrados
Original DataStore
Table2
DataSet
Hace cambios a los datos
Table1
Table2 Table2
Table2
DataSet
Hace cambios a los datos
Table1
Table2 Table2
Original DataStore
Operaciones Desconectadas
Table2
DataSet
Hace cambios a los datos
Table1
Table2 Table2
System.Data
Contiene las bases de ADO.NET Namespace centrado en Datos Provee los mecanismos para trabajar con y sobre los datos
Clases y mtodos para manipular los datos Habilidad para crear vistas de los datos Formas para representar lgicamente los datos Permite la utilizacin de XML para ver, compartir y almacenar datos
System.Data
System.Data DataSet DataTable DataRow DataColumn
DataRelation
DataSetView
System.Data y DataSet
DataSet
Tables
DataTable
DataRow(s)
Relations
DataRelation DataRelation
DataColumn
DataView
Constraint(s)
DataTable
DataTable
System.Data - DataSet
Un repositorio en memoria de datos desde un origen Forma comn de representar y manipular datos
Contendor universal No slo para base de datos
Representacin lgica o fsica de los datos; depende de: Diseado para estar desconectado del origen
Conectar, ejecutar la consulta, desconectar La consulta / Conjunto de resultados Donde existen DataTables y Relations
Se utiliza XML para leer y almacenar, tanto los datos como el Esquema
System.Data - DataSet
Se usan colecciones para agregar Tablas y relaciones Propiedades importantes:
Tables:
Devuelve la coleccin de objetos DataTable Relations: Devuelve la coleccin de DataRelations Relacionadas con XML
System.Data - DataSet
Contenedor Universal de datos
DataSet: No slo para bases de datos
System.Data - DataTable
Puede ser vinculado a una tabla fsica de una base Y relacionarla con otras a travs de DataRelations Bloqueo concurrente optimista Propiedades importantes:
Columns: Devuelve la coleccin de DataColumns como
ColumnsCollection Rows: Devuelve objetos DataRow como una RowsCollection ParentRelations: Devuelve una RelationsCollection Constraints: Devuelve la ConstraintsCollection de la tabla DataSet: Devuelve el conjunto de datos de la DataTable PrimaryKey: Obtiene los DataColumns que conforman la clave primaria de la tabla
System.DataDataSet y DataTable
Crear una DataTable y agregarla al DataSet
DataSet ds = new DataSet(); // Crear el objeto Clientes. DataTable dt= new DataTable( Clientes ); // Crear y agregar columnas // 1. Explcitamente DataColumn dc = new DataColumn( ID, Int16 ); dt.Columns.Add( dc ); // 2. Implcitamente. dt.Columns.Add( Nombre, String ); dt.Columns.Add( Apellido, String ); // Agregar el objeto DataTabla al DataSet ds.Tables.Add( dt );
System.Data - DataRelation
Utilizada para crear relaciones lgicas
Entre dos (2) objetos DataTable Requiere un objeto DataColumn de cada DataTable El tipo de datos (DataType) de ambas DataColumns
debe ser el mismo No es posible relacionar un Int32 con un String Se le asigna un nombre
DataSet
System.Data - DataRelation
Como crear un DataRelation:
Obtener los objetos DataColumn a relacionar Crear y nombrar un DataRelation usando las
// Obtener las columnas a utilizar... DataColumn colPadre, colHija; colPadre= DataSet.Tables["Clientes"].Columns["ID"]; colHija = DataSet.Tables[Pedidos].Columns["IDCliente"]; // Crear el DataRelation llamado CliPedidos... DataRelation dr; dr = New DataRelation(CliPedidos", colPadre, colHija); // Agregar la relacin al DataSet... ds.Relations.Add( dr );
DataView
Relations
DataRelation DataRelation
Constraint(s)
DataTable
DataTable
Ejemplo
Trabajando con Wizard propios del Visual Studio Ejemplo con la base de datos Northwind del Sql Server 2000 Generar una consulta con filtro, utilizando las tablas Orders y Order Details
Dataset
DataSet
DataTable DataColumn
DataTable
DataRow
Constraints
DataAdapter
Gestiona Intercambio De Datos Entre DataSet y Data Source
Llena (DataSet o DataTable) Actualiza (DataSet o DataTable)
Provee Relaciones Entre Tablas Y Columnas Usuario Puede Saltarse Los Comandos Insert/Update/Delete
Disponible Componente Autogen
DataAdapter
DataAdapter Database
SelectCommand
InsertCommand UpdateCommand DeleteCommand TableMappings DataSet
demo
DataSet
Proveedores administrados
System.Data
.Sqlclient SqlCommand SqlConnection SqlDataReader SqlDataSetCommand .OleDb OleDbCommand OleDbConnection OleDbDataReader OleDbDataSetCommand
XxxConnection
sp_SELECT sp_UPDATE sp_INSERT sp_DELETE
XxxConnection
XxxTransaction
ADO .NET
ADO
Command
XxxCommand
DataSet
Recordset
XxxDataReader
XxxDataAdapter
Client
Usando XML en un entorno desconectado con ADO .NET XML Web Services
1 4 5
Request data
2
DataSet DataSet
Data Source
3
6
C# Example
Mtodos
ExecuteScalar, ExecuteNonQuery, ExecuteReader, ExecuteXmlReader
Toolbox
Usar SqlConnection u OleDbConnection Usar SqlCommand u OleDbCommand
Propiedades
ParameterName, DbType, Size, Direction
Ejemplos
Unidades en stock para un producto en particular Cuantos productos hay? COUNT, MAX, MIN, AVERAGE
Ejemplo
cmProducts.Parameters("@ProdID").Value = 42 cnNorthwind.Open() Dim qty As Integer = _ CType(cmProducts.ExecuteScalar(), Integer) cnNorthwind.Close()
Retornando filas
DataReader
Read-only, forward-only
El mtodo ExecuteReader
Devolviendo un DataReader Por. Ej. SqlDataReader, OleDbDataReader
Mtodo Close Propiedad Item Mtodos GetXxx , por ej., GetString, GetInt32
Multiples Resultados
Demo DataReader
Sentencias DDL
CREATE, ALTER, DROP, GRANT, DENY, REVOKE
Ejemplo
CREATE PROCEDURE dbo.SummarizeProducts AS CREATE TABLE ProductSummary ( ProductName nvarchar(40), CategoryName nvarchar(15) )
Sentencias DML
INSERT, UPDATE, DELETE
Ejemplo
CREATE PROCEDURE dbo.InsertRegion ( @RegID int, @RegName nchar(50) ) AS INSERT INTO Region VALUES (@RegID, @RegName)
Transacciones
Temas:
Que es una Transaccin? Como se manejan las Transacciones ? Como trabaja una Transaccin
Ejemplo
/* Use a transaction to ensure consistency */ BEGIN TRANSACTION INSERT INTO Account (AccountID, Amount, DebitCredit) VALUES (1234, 100, 'debit') INSERT INTO Account (AccountID, Amount, DebitCredit) VALUES (5678, 100, 'credit') IF (@@ERROR > 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION
XML
Mtodo de lectura con formato XML: GetXml: Obtiene los datos del DataSet (incluyendo el esquema) GetXmlSchema: obtiene el esquema XSD del DataSet Para escribir: WriteXml, WriteXmlSchema
System.Data - DataView
Crea mltiples vistas de los objetos DataTable Vinculable a controles Propiedades importantes:
Item: Obtiene una fila de una tabla determinada Table: Obtiene o asigna el objeto DataTable Sort: obtiene o asigna la/s columna/s y el
ordenamiento RowFilter: Obtiene o asigna la expresin para filtrar la vista RowStateFilter: Indica o asigna el estado del filtro
None, Unchanged, New, Deleted, ModifiedCurrent, y otros
System.Data - DataView
Creando objetos DataView
DataView vista1 = new DataView( miTabla ); DataView vista2 = new DataView( miTabla ); // La vista ordenada por Apellido vista1.Sort = Apellido ASC;
// Filtrar para ver slo los modificados vista2.RowStateFilter= DataViewRowState.ModifiedOriginal; // Vincular a un control de usuario... DataGrid myGrid = new DataGrid(); myGrid.SetDataBinding( view1, Clientes);
//...