Download Presentación de PowerPoint
Document related concepts
Transcript
Introducción a ADO.NET y SQL Server 2000 Erich Bühler MVP ¿Qué es SQL Server? Tareas Gestiona datos para transacciones y análisis Transacciones: OLTP Análisis: OLAP Atiende a peticiones de clientes Cliente SQL Server Resultado Petición OLTP OLAP Herramientas SQL Server Consola administrativa Consola administrativa de SQL Server Centraliza toda la administración Tareas comunes: Configuración de SQL Server Seguridad Creación y diseño de base de datos Actividades de mantenimiento Backup, exportación, monitorización, log… ¿Qué es SQL Server? Servicios de SQL Server Servicio MSSQLServer Servicio SQLServerAgent SQL Server Microsoft Distributed Transaction Coordinator Microsoft Search Gestión de datos Proceso de sentencias Integridad de datos Trabajos Alertas Operadores Gestión de transacciones distribuidas Catálogos Full-Text Indices Full-Text Estructura de una base de datos Archivos Database Fichero de datos .mdf o .ndf Tablas, índices Datos Fichero de log .ldf Estructura de una base de datos Transacciones 1 La aplicación envía una modificación Cache y búfer 2 Se cargan las páginas en memoria y se modifican 3 La modificación es guardada en el log Archivo log Archivo de datos 4 Un checkpoint escribe las páginas de memoria a disco Estructura de una base de datos Tipos y tablas Tablas Formadas por columnas con tipo Las columnas pueden ser funciones SQL OrderID int ClienteID Fecha Precio PrecioConTasas Foto nchar datetime money Precio*0,16 image Multitud de tipos por defecto int, decimal, money, datetime, nvarchar, ntext, image… Permite añadir los propios Estructura de una base de datos Integridad de datos De columna De entidad Valor por defecto, valores admitidos Clave primaria Unique Referencial Clave foránea Comprobación de fórmula Estructura de una base de datos Índices Aceleran las consultas Formados por una o varias columnas Automatizados con Index Tuning Wizard Akhtar Ganio … Akhtar Barr Con Funk Funk … ... ... ... ... ... ... Akhtar … Martin Ganio Hall Jone Jones Jones … ... ... ... ... ... ... Martin Smith … Martin Martin Ota Phua Rudd … ... ... ... ... ... ... Smith Smith Smith White White … ... ... ... ... ... ... Programación de SQL Server Ejecución de sentencias SQL Lenguaje Transact-SQL Tres cometidos Manipulación de datos Definición de datos SELECT, INSERT, UPDATE, DELETE CREATE, ALTER, DROP Control de datos GRANT, DENY, REVOKE Selección de datos Programación de SQL Server Ejecución de sentencias SQL (II) Operadores Funciones AVG, SUM, DB_NAME… Control de flujo =, <, <>, AND, NOT… IF, ELSE; WHILE… Unión de tablas JOIN, UNION… Programación de SQL Server Procedimientos almacenados Sentencias T-SQL almacenadas en servidor Aceptan parámetros de entrada / salida Ventajas Lógica ejecutada en servidor Evita movimiento de datos Precompiladas SELECT * FROM Orders WHERE RequiredDate < GETDATE() AND ShippedDate IS Null Programación de SQL Server Desencadenadores (Triggers) Procedimiento almacenado enlazado a la modificación de una tabla Tres tipos INSERT, UPDATE, DELETE Tres posibles acciones FOR, AFTER, INSTEAD OF IF (SELECT COUNT(*) FROM Deleted) > 1 BEGIN RAISERROR(‘No puede borras más de un registro a la vez’) END Acceso a datos con ADO.NET Modelo tradicional Base de datos Introducción a ADO.NET Es una parte integral del framework Último paradigma propuesto por Microsoft Resuelve los siguientes problemas Utiliza XML para el transporte de información Se pueden enviar resultados a través de Internet Es posible integrar orígenes XML con facilidad, ej. Servicio Web. Introducción a ADO.NET El espacio de nombres raíz para ADO.NET es System.Data Soporte para varias tecnologías (incluso XML) System Data SQLClient OracleClient OleDB Odbc Base de datos Básicas del modelo desconectado Trabajo con infor. en memoria (caché) Básicamente se producen 3 etapas: Se obtiene la información y se desconecta del origen Se modifica la información Se conecta nuevamente y concilia con la base de datos Ahorro de conexiones y mejoras para aplicaciones distribuidas, pero tener en cuenta la concurrencia!! (sqlranger.com) Básicas del modelo desconectado El Adaptador es el encargado de efectuar la conexión Funciona como un ‘enchufe’ entre los datos y la base de datos Contiene la información de conexión y consulta Hace transparente la obtención de datos de cualquier origen (se encarga a bajo nivel de la re-conexión) Hay uno genérico (OleDbDataAdapter) y uno específico para SQL Server (SqlDataAdapter) Manipulación de datos Espacio System.Data Contiene los objetos desconectados La manipulación se efectúa mediante el objeto DataSet Caché de datos Relacional Carga del DataSet Dim StrConexion As String, StrComandoAutores As String Dim StrComandoEmpleado As String, StrComandoTiendas As String Dim AdEmpleado As OleDbDataAdapter, AdTiendas As OleDbDataAdapter Dim AdAutores As OleDbDataAdapter, DS As New DataSet StrConexion = "Provider=SQLOLEDB.1;User ID=sa;Persist Security Info=False; InitialCatalog=pubs; Data Source=MiServidor" StrComandoAutores = "Select * FROM Authors" StrComandoEmpleado = "Select * FROM Employee" StrComandoTiendas = "Select * FROM Stores" AdAutores = New OleDb.OleDbDataAdapter(StrComandoAutores, StrConexion) AdEmpleado = New OleDbDataAdapter(StrComandoEmpleados, StrConexion) AdTiendas = New OleDbDataAdapter(StrComandoTiendas, StrConexion) … AdAutores.Fill(DS, "Authors") AdEmpleado.Fill(DS, "Employee") AdTiendas.Fill(DS, "Stores") Manipulación de datos Capa de presentación Windows forms Aplicación.Exe Dataset Internet intranet Web forms IE Dataset Negocio a Negocio Xml Capa de negocios Dataset DataAdapter DataAdapter Capa de datos ADO.NET en el modelo desconectado Estructura de la información El DataSet contiene 3 colecciones DataTable DataColumn DataRow En algunos casos se puede utilizar también a DataRelation y Constraint Estructura de la información Modificación de datos Conciliación Se deben tener los 4 comandos en el adaptador Propiedad Descripción SelectCommand Almacena la información necesaria para obtener las filas de una tabla a cargar en el DataSet. UpdateCommand Almacena la información necesaria para llevar acabo una modificación sobre una fila del origen. Almacena la información necesaria para agregar una fila al origen. InsertCommand DeleteCommand Almacena la información necesaria para eliminar una fila de la base de datos. Modificación de datos Modificación de datos Para sincronizar con el origen, se debe invocar al método Update del Adaptador AdaptadorTiendas.Update(DS, "Stores") Por último cambiar el estado de las filas DS.Tables("Stores").AcceptChanges() Private Sub Conciliar_Click(... 'Envía los cambios de la tabla Stores. AdaptadorTiendas.Update(DS, "Stores") 'Indica que las filas de esta tabla ya han sido enviadas. DS.Tables("Stores").AcceptChanges() End Sub DataSet Es posible Indicar relaciones y restricciones entre tablas Crear DS ‘virtuales’ Exhibir la información jerárquicamente DataSet Controlar restricciones, proponer valores por defecto, crear columnas calculadas Leer/Escribir a XML el esquema de la tabla y/o información WriteXML ReadXML Consumir información XML Crystal Reports y su relación con ADO.NET Crystal puede consumir información trabajando bajo el modelo conectado o desconectado Se conoce en Crystal como el modelo Push Resumiendo… ADO ADO.NET Utiliza Recordset Utiliza DataSet Requiere consultas JOIN Se utilizan métodos de ADO.NET que utilizan DataRelation Se comunica a la DB a través del Recordset mediante una conexión Se comunica a la DB utilizando el objeto DataAdapter Bloqueos activos No existen los bloqueos, aunque pueden haber otros conflictos… © 2004 Erich R. Bühler