Sei sulla pagina 1di 35

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
Resultado

Petición
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 Gestión de datos


MSSQLServer Proceso de sentencias
Integridad de datos

Servicio Trabajos

SQLServerAgent Alertas
Operadores

SQL Server Microsoft Distributed Gestión de transacciones


Transaction Coordinator distribuidas

Microsoft Search Catálogos Full-Text


Indices Full-Text
Estructura de una base de datos
Archivos

Database

Fichero
Fichero de
de datos
datos Fichero
Fichero de
de log
log
.mdf
.mdf oo .ndf
.ndf .ldf

Tablas, índices

Datos
Estructura de una base de datos
Transacciones

11 La
La aplicación
aplicación envía una
modificación 33 La modificación es guardada
en
en el
el log

Cache y búfer Archivo log

22
Archivo de datos
Se cargan las páginas en
memoria
memoria yy se
se modifican
modifican
44
Un
Un checkpoint
checkpoint
escribe
escribe las
las páginas
páginas
de memoria a disco
disco
Estructura de una base de datos
Tipos y tablas

• Tablas
• Formadas por columnas con tipo
• Las columnas pueden ser funciones SQL

OrderID ClienteID Fecha Precio PrecioConTasas Foto

• Multitud
int de tipos
nchar por datetime
defecto money Precio*0,16 image
• int, decimal, money, datetime, nvarchar, ntext, image…
• Permite añadir los propios
Estructura de una base de datos
Integridad de datos

• De columna
• Valor por defecto, valores admitidos
• De entidad
• 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

Martin
Akhtar Martin
Ganio Smith
… …

Akhtar
Akhtar ...... Ganio
Ganio ...... Martin
Martin ...... Smith
Smith ......
Barr
Barr ...... Hall
Hall ...... Martin
Martin ...... Smith
Smith ......
Con
Con ...... Jone
Jone ...... Ota
Ota ...... Smith
Smith ......
Funk
Funk ...... Jones
Jones ...... Phua
Phua ...... White
White ......
Funk
Funk ...... Jones
Jones ...... Rudd
Rudd ...... White
White ......
…… ...... …… ...... …
… ...... …
… ......
Programación de SQL Server
Ejecución de sentencias SQL

• Lenguaje Transact-SQL

• Tres cometidos
• Manipulación de datos
• SELECT, INSERT, UPDATE, DELETE
• Definición de datos
• 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
• =, <, <>, AND, NOT…
• Funciones
• AVG, SUM, DB_NAME…
• Control de flujo
• 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 Capa de negocios


Web forms intranet
IE Dataset DataAdapter
Dataset Xml
DataAdapter
Capa de
datos

Negocio a Negocio
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.
InsertCommand Almacena la información necesaria para
agregar una fila al origen.

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 Se comunica a la DB utilizando
del Recordset mediante una el objeto DataAdapter
conexión
Bloqueos activos No existen los bloqueos,
aunque pueden haber otros
conflictos…
© 2004 Erich R. Bühler

Potrebbero piacerti anche