2. ¿Qué es SQL Server?
Tareas
Gestiona datos para transacciones y análisis
Transacciones: OLTP
Análisis: OLAP
Atiende a peticiones de clientes
SQL Server
Cliente
Resultado
OLAP
OLTP
Petición
3. 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…
4. ¿Qué es SQL Server?
Servicios de SQL Server
Microsoft Distributed
Transaction Coordinator
Servicio
MSSQLServer
Servicio
SQLServerAgent
Microsoft Search
Gestión de datos
Proceso de sentencias
Integridad de datos
Trabajos
Alertas
Operadores
Catálogos Full-Text
Indices Full-Text
Gestión de transacciones
distribuidas
SQL Server
5. Estructura de una base de
datos
Archivos
Tablas, índices
Datos
Database
Fichero de datos
.mdf o .ndf
Fichero de log
.ldf
6. Estructura de una base de
datos
Transacciones
La aplicación envía una
modificación
1
Archivo log
La modificación es guardada
en el log
3
Se cargan las páginas en
memoria y se modifican
2
Cache y búfer
Archivo de datos
Un checkpoint
escribe las páginas
de memoria a disco
4
7. Estructura de una base de
datos
Tipos y tablas
Tablas
Formadas por columnas con tipo
Las columnas pueden ser funciones SQL
Multitud de tipos por defecto
int, decimal, money, datetime, nvarchar, ntext,
image…
Permite añadir los propios
OrderID ClienteID Fecha Precio PrecioConTasas Foto
int nchar image
datetime money Precio*0,16
8. 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
9. Estructura de una base de
datos
Índices
Aceleran las consultas
Formados por una o varias columnas
Automatizados con Index Tuning Wizard
Akhtar ...
Barr ...
Con ...
Funk ...
Funk ...
… ...
Ganio ...
Hall ...
Jone ...
Jones ...
Jones ...
… ...
Smith ...
Smith ...
Smith ...
White ...
White ...
… ...
Martin ...
Martin ...
Ota ...
Phua ...
Rudd ...
… ...
Akhtar
…
Martin
Akhtar
Ganio
…
Martin
Smith
…
10. 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
12. 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…
13. 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
14. 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
17. 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.
18. 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
20. 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)
21. 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)
22. 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
23. 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")
24. Manipulación de datos
Capa de negocios
Capa de
datos
Capa de presentación
Web forms
Negocio a Negocio
Dataset
Dataset
Internet
intranet
DataAdapter
DataAdapter
Xml
Aplicación.Exe
IE
Dataset
Windows forms
26. 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
28. 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.
30. 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
31. DataSet
Es posible
Indicar relaciones y restricciones entre tablas
Crear DS ‘virtuales’
Exhibir la información jerárquicamente
32. 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
33. 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
34. 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…