Introduccin a ADO NET y SQL Server 2000

  • Slides: 35
Download presentation
Introducción a ADO. NET y SQL Server 2000 Erich Bühler MVP

Introducción a ADO. NET y SQL Server 2000 Erich Bühler MVP

¿Qué es SQL Server? Tareas l Gestiona datos para transacciones y análisis Ø Ø

¿Qué es SQL Server? Tareas l Gestiona datos para transacciones y análisis Ø Ø l Transacciones: OLTP Análisis: OLAP Atiende a peticiones de clientes Cliente SQL Server Resultado Petición OLTP OLAP

Herramientas SQL Server Consola administrativa l Consola administrativa de SQL Server Ø l Centraliza

Herramientas SQL Server Consola administrativa l Consola administrativa de SQL Server Ø l 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 n n n Servicio

¿Qué es SQL Server? Servicios de SQL Server Servicio MSSQLServer n n n Servicio SQLServer. Agent n n n 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 n n n Catálogos Full-Text Indices Full-Text

Estructura de una base de datos Archivos Database Fichero de datos. mdf o. ndf

Estructura de una base de datos Archivos Database Fichero de datos. mdf o. ndf Tablas, índices Dato s Fichero de log. ldf

Estructura de una base de datos Transacciones 1 La aplicación envía una modificación Cache

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 de datos 4 Un checkpoint escribe las páginas de memoria a disco

Estructura de una base de datos Tipos y tablas l Tablas Ø Ø Formadas

Estructura de una base de datos Tipos y tablas l Tablas Ø Ø Formadas por columnas con tipo Las columnas pueden ser funciones SQL Order. ID int l Cliente. ID Fecha Precio. Con. Tasas 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 l De columna Ø l

Estructura de una base de datos Integridad de datos l De columna Ø l De entidad Ø Ø l Valor por defecto, valores admitidos Clave primaria Unique Referencial Ø Ø Clave foránea Comprobación de fórmula

Estructura de una base de datos Índices l Aceleran las consultas Ø Ø Formados

Estructura de una base de datos Índices l Aceleran las consultas Ø Ø Formados por una o varias columnas Automatizados con Index Tuning Wizard Akhtar Ganio … Akhtar Barr Con Funk … . . . . Akhtar … Martin Ganio Hall Jones … . . . . Martin Smith … Martin Ota Phua Rudd … . . . . Smith White … . . . .

Programación de SQL Server Ejecución de sentencias SQL l Lenguaje Transact-SQL l Tres cometidos

Programación de SQL Server Ejecución de sentencias SQL l Lenguaje Transact-SQL l 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

Selección de datos

Programación de SQL Server Ejecución de sentencias SQL (II) l Operadores Ø l Funciones

Programación de SQL Server Ejecución de sentencias SQL (II) l Operadores Ø l Funciones Ø l AVG, SUM, DB_NAME… Control de flujo Ø l =, <, <>, AND, NOT… IF, ELSE; WHILE… Unión de tablas Ø JOIN, UNION…

Programación de SQL Server Procedimientos almacenados l l l Sentencias T-SQL almacenadas en servidor

Programación de SQL Server Procedimientos almacenados l l l 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 Required. Date < GETDATE() AND Shipped. Date IS Null

Programación de SQL Server Desencadenadores (Triggers) l l Procedimiento almacenado enlazado a la modificación

Programación de SQL Server Desencadenadores (Triggers) l l Procedimiento almacenado enlazado a la modificación de una tabla Tres tipos Ø l 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

Acceso a datos con ADO. NET

Modelo tradicional Base de datos

Modelo tradicional Base de datos

Introducción a ADO. NET l Es una parte integral del framework Ø l Último

Introducción a ADO. NET l Es una parte integral del framework Ø l Ú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 l El espacio de nombres raíz para ADO. NET es

Introducción a ADO. NET l El espacio de nombres raíz para ADO. NET es System. Data Ø Soporte para varias tecnologías (incluso XML) System Data SQLClient Oracle. Client Ole. DB Odbc

Base de datos

Base de datos

Básicas del modelo desconectado l l Trabajo con infor. en memoria (caché) Básicamente se

Básicas del modelo desconectado l l Trabajo con infor. en memoria (caché) Básicamente se producen 3 etapas: Ø Ø Ø l 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 l El Adaptador es el encargado de efectuar la conexión

Básicas del modelo desconectado l El Adaptador es el encargado de efectuar la conexión Ø Ø l l 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 (Ole. Db. Data. Adapter) y uno específico para SQL Server (Sql. Data. Adapter)

Manipulación de datos l Espacio System. Data Ø l Contiene los objetos desconectados La

Manipulación de datos l Espacio System. Data Ø l Contiene los objetos desconectados La manipulación se efectúa mediante el objeto Data. Set Ø Ø Caché de datos Relacional

Carga del Data. Set Dim Str. Conexion As String, Str. Comando. Autores As String

Carga del Data. Set Dim Str. Conexion As String, Str. Comando. Autores As String Dim Str. Comando. Empleado As String, Str. Comando. Tiendas As String Dim Ad. Empleado As Ole. Db. Data. Adapter, Ad. Tiendas As Ole. Db. Data. Adapter Dim Ad. Autores As Ole. Db. Data. Adapter, DS As New Data. Set Str. Conexion = "Provider=SQLOLEDB. 1; User ID=sa; Persist Security Info=False; Initial. Catalog=pubs; Data Source=Mi. Servidor" Str. Comando. Autores = "Select * FROM Authors" Str. Comando. Empleado = "Select * FROM Employee" Str. Comando. Tiendas = "Select * FROM Stores" Ad. Autores = New Ole. Db. Data. Adapter(Str. Comando. Autores, Str. Conexion) Ad. Empleado = New Ole. Db. Data. Adapter(Str. Comando. Empleados, Str. Conexion) Ad. Tiendas = New Ole. Db. Data. Adapter(Str. Comando. Tiendas, Str. Conexion) … Ad. Autores. Fill(DS, "Authors") Ad. Empleado. Fill(DS, "Employee") Ad. Tiendas. Fill(DS, "Stores")

Manipulación de datos Capa de presentación Windows forms Aplicación. Exe Dataset Internet intranet Web

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 Data. Adapter Capa de datos

ADO. NET en el modelo desconectado

ADO. NET en el modelo desconectado

Estructura de la información l El Data. Set contiene 3 colecciones Ø Ø Ø

Estructura de la información l El Data. Set contiene 3 colecciones Ø Ø Ø l Data. Table Data. Column Data. Row En algunos casos se puede utilizar también a Data. Relation y Constraint

Estructura de la información

Estructura de la información

Modificación de datos l Conciliación Ø Se deben tener los 4 comandos en el

Modificación de datos l Conciliación Ø Se deben tener los 4 comandos en el adaptador Propiedad Descripción Select. Command Almacena la información necesaria para obtener las filas de una tabla a cargar en el Data. Set. Update. Command 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. Insert. Command Delete. Command Almacena la información necesaria para eliminar una fila de la base de datos.

Modificación de datos

Modificación de datos

Modificación de datos l Para sincronizar con el origen, se debe invocar al método

Modificación de datos l Para sincronizar con el origen, se debe invocar al método Update del Adaptador. Tiendas. Update(DS, "Stores") l Por último cambiar el estado de las filas DS. Tables("Stores"). Accept. Changes() Private Sub Conciliar_Click(. . . 'Envía los cambios de la tabla Stores. Adaptador. Tiendas. Update(DS, "Stores") 'Indica que las filas de esta tabla ya han sido enviadas. DS. Tables("Stores"). Accept. Changes() End Sub

Data. Set l Es posible Ø Ø Ø Indicar relaciones y restricciones entre tablas

Data. Set l Es posible Ø Ø Ø Indicar relaciones y restricciones entre tablas Crear DS ‘virtuales’ Exhibir la información jerárquicamente

Data. Set Ø Ø Controlar restricciones, proponer valores por defecto, crear columnas calculadas Leer/Escribir

Data. Set Ø Ø Controlar restricciones, proponer valores por defecto, crear columnas calculadas Leer/Escribir a XML el esquema de la tabla y/o información § § Ø Write. XML Read. XML Consumir información XML

Crystal Reports y su relación con ADO. NET l Crystal puede consumir información trabajando

Crystal Reports y su relación con ADO. NET l Crystal puede consumir información trabajando bajo el modelo conectado o desconectado Ø Se conoce en Crystal como el modelo Push

Resumiendo… ADO. NET Utiliza Recordset Utiliza Data. Set Requiere consultas JOIN Se utilizan métodos

Resumiendo… ADO. NET Utiliza Recordset Utiliza Data. Set Requiere consultas JOIN Se utilizan métodos de ADO. NET que utilizan Data. Relation Se comunica a la DB a través del Recordset mediante una conexión Se comunica a la DB utilizando el objeto Data. Adapter Bloqueos activos No existen los bloqueos, aunque pueden haber otros conflictos…

© 2004 Erich R. Bühler

© 2004 Erich R. Bühler