Ing. Eric Huiza Pereyra .Net Senior Developer Quadrem www.quadrem.com
Introducción. Creación de Bases de datos. Creación de Tablas. Creación de Esquemas. Creación de Vistas. Creación de Procedimientos Almacenados. Creación de Triggers. Creación de Funciones. Integración con el CLR.
Motor de bases de datos. Servicios de Análisis. Servicios de integración. Replicación. Servicios de Reporte. Servicios de Notificación. Búsqueda Full-Text. Service Broker.
Procesamiento OLTP y OLAP
OLAP y Minería de datos.
Uso de fuentes de datos heterogéneas.
Sincronización y distribución de datos remotos.
Generación de reportes utilizando tecnologías de servidor.
Envió de notificaciones entre publicadores y subscriptores.
Búsqueda altamente sofisticada basada en texto.
Soporte nativo para mensajera asíncrona
Base de datos. Conjunto de entidades (tablas) que contienen datos estructurados.
CREATE   DATABASE  MySalesDB ON   (  NAME  = Sales_dat, FILENAME  = 'C:\Data\MySalesDB.mdf', SIZE  = 10, MAXSIZE  = 50, FILEGROWTH  = 5 ) LOG   ON (  NAME  = Sales_log, FILENAME  = 'C:\Data\MySalesDB.ldf', SIZE  = 5MB, MAXSIZE  = 25MB, FILEGROWTH  = 5MB ) GO
Colección de datos acerca de una entidad especifica. Conformada por columnas (campos) y filas (registros o tuplas). Una tabla puede contener restricciones que permiten validar y establecer valores por defecto. Los índices permiten mejorar el rendimiento.
CREATE   TABLE  Customer ( CustomerID  UNIQUEIDENTIFIER   NOT   NULL ,  CustomerName  NVARCHAR (200)  NOT   NULL ,  Email  NVARCHAR (200)  NULL ,  Phone  NVARCHAR (200)  NULL ,  Fax  NVARCHAR (200)  NULL ,  City  NVARCHAR (200)  NOT   NULL ,  Country  NVARCHAR (500)  NOT   NULL ,  Address  NVARCHAR (4000)  NOT   NULL ,  CONSTRAINT  PK_Customer  PRIMARY   KEY   CLUSTERED  (CustomerID),  CONSTRAINT  CK_CustomerEmail  CHECK  (Email  LIKE  '%@%.%') ) GO
Los esquemas permiten un manejo mucho mas dinámico en comparación con los usuarios en SQL Server 2000. Permiten la creación de estructuras jerarquitas y agrupar tablas bajo un mismo nombre. Permite un manejo granular del manejo de permisos sobre objetos.
CREATE   SCHEMA  General  AUTHORIZATION  dbo GO ALTER   SCHEMA  General  TRANSFER  Customer ALTER   SCHEMA  General  TRANSFER  Product GO
Las vistas son generalmente usadas para enfocar, simplificar y personalizar la percepción de la base de datos hacia los usuarios . Las vistas pueden ser utilizadas como filtros permitiendo de esta manera al usuario seleccionar datos relevantes a su departamento u competencia . Las vistas pueden ser consideradas como una especie de tabla virtual.
CREATE   VIEW  vKilogramProducts AS SELECT  I.InvoiceID, P.ProductName, P.UnitPrice, D.Quantity, (P.UnitPrice * D.Quantity)  AS  SubTotal FROM  Sales.InvoiceDetail  AS  D  INNER   JOIN  Sales.Invoice  AS  I  ON  I.invoiceID = D.invoiceID  INNER   JOIN  General.Product  AS  P  ON  P.ProductID = D.ProductID  WHERE  P.UnitOfMeasure = 'Kilogram'  GROUP   BY  I.InvoiceID, P.ProductName, P.UnitPrice, D.Quantity GO
Conjunto de sentencias SQL precompiladas. Reutilización del plan de ejecución. Soportan las estructuras básicas de programación como estructuras de decisión e iteración.
CREATE   PROCEDURE  dbo.usp_GetInvoiceDetails @InvoiceID  UNIQUEIDENTIFIER AS SELECT   InvoiceID, ProductID, Quantity FROM  Sales.InvoiceDetail  WHERE  invoiceID = @InvoiceID GO exec  dbo.usp_GetInvoiceDetails '49A1F445-FC43-4F9D-8668-1081AD64169D'
Permiten ejecutar procedimiento como respuesta a una sentencia DML o DCL. Siempre inician una transacción. Permiten mantener la integridad referencial entre tablas.
CREATE   TRIGGER  General.trCustomerLogger  ON  General.Customer  FOR   INSERT   AS INSERT   INTO  Logger  VALUES (NEWID(), 'Customer', GETDATE()) GO
Permiten un desarrollo modular y mejorar las capacidades de las consultas a la base de datos. Podemos crear funciones escalares (devuelven valores concretos) o de conjunto de resultados (devuelven tablas de datos). CREATE   FUNCTION  dbo.ufn_GetSubTotal ( @UnitPrice  DECIMAL (28, 2),  @Quantity  DECIMAL (28, 2) )  RETURNS   DECIMAL (28, 2) BEGIN RETURN  @UnitPrice * @Quantity END
Permite utilizar las librerías de clases del .Net Framework durante la creación de objetos de bases de datos. Permite utilizar las ventajas de los lenguajes de programación sobre Transact-SQL. Permiten un desarrollo superior a los procedimientos almacenados extendidos.
public   partial   class  StoredProcedures { [Microsoft.SqlServer.Server.SqlProcedure] public   static   void  usp_NetGetInvoiceDetails(Guid invoiceID) { using  (SqlConnection conn =  new  SqlConnection("context connection=true")) { conn.Open(); SqlContext.Pipe.Send("Hello World!!"); SqlCommand cmd = new SqlCommand(string.Format("SELECT * FROM Sales.InvoiceDetail WHERE invoiceID = '{0}'", invoiceID), conn); SqlDataReader reader = cmd.ExecuteReader(); SqlContext.Pipe.Send(reader); } } } CREATE   ASSEMBLY  SalesAssembly  FROM  'C:\Sales.dll‘ CREATE   PROCEDURE  usp_NetGetInvoiceDetails @invoiceID  UNIQUEIDENTIFIER AS   EXTERNAL   NAME  SalesAssembly.StoredProcedures.usp_NetGetInvoiceDetails

IntroduccióN A Sql Server 2005

  • 1.
    Ing. Eric HuizaPereyra .Net Senior Developer Quadrem www.quadrem.com
  • 2.
    Introducción. Creación deBases de datos. Creación de Tablas. Creación de Esquemas. Creación de Vistas. Creación de Procedimientos Almacenados. Creación de Triggers. Creación de Funciones. Integración con el CLR.
  • 3.
    Motor de basesde datos. Servicios de Análisis. Servicios de integración. Replicación. Servicios de Reporte. Servicios de Notificación. Búsqueda Full-Text. Service Broker.
  • 4.
  • 5.
    OLAP y Mineríade datos.
  • 6.
    Uso de fuentesde datos heterogéneas.
  • 7.
  • 8.
    Generación de reportesutilizando tecnologías de servidor.
  • 9.
    Envió de notificacionesentre publicadores y subscriptores.
  • 10.
  • 11.
    Soporte nativo paramensajera asíncrona
  • 12.
    Base de datos.Conjunto de entidades (tablas) que contienen datos estructurados.
  • 13.
    CREATE DATABASE MySalesDB ON ( NAME = Sales_dat, FILENAME = 'C:\Data\MySalesDB.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Sales_log, FILENAME = 'C:\Data\MySalesDB.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) GO
  • 14.
    Colección de datosacerca de una entidad especifica. Conformada por columnas (campos) y filas (registros o tuplas). Una tabla puede contener restricciones que permiten validar y establecer valores por defecto. Los índices permiten mejorar el rendimiento.
  • 15.
    CREATE TABLE Customer ( CustomerID UNIQUEIDENTIFIER NOT NULL , CustomerName NVARCHAR (200) NOT NULL , Email NVARCHAR (200) NULL , Phone NVARCHAR (200) NULL , Fax NVARCHAR (200) NULL , City NVARCHAR (200) NOT NULL , Country NVARCHAR (500) NOT NULL , Address NVARCHAR (4000) NOT NULL , CONSTRAINT PK_Customer PRIMARY KEY CLUSTERED (CustomerID), CONSTRAINT CK_CustomerEmail CHECK (Email LIKE '%@%.%') ) GO
  • 16.
    Los esquemas permitenun manejo mucho mas dinámico en comparación con los usuarios en SQL Server 2000. Permiten la creación de estructuras jerarquitas y agrupar tablas bajo un mismo nombre. Permite un manejo granular del manejo de permisos sobre objetos.
  • 17.
    CREATE SCHEMA General AUTHORIZATION dbo GO ALTER SCHEMA General TRANSFER Customer ALTER SCHEMA General TRANSFER Product GO
  • 18.
    Las vistas songeneralmente usadas para enfocar, simplificar y personalizar la percepción de la base de datos hacia los usuarios . Las vistas pueden ser utilizadas como filtros permitiendo de esta manera al usuario seleccionar datos relevantes a su departamento u competencia . Las vistas pueden ser consideradas como una especie de tabla virtual.
  • 19.
    CREATE VIEW vKilogramProducts AS SELECT I.InvoiceID, P.ProductName, P.UnitPrice, D.Quantity, (P.UnitPrice * D.Quantity) AS SubTotal FROM Sales.InvoiceDetail AS D INNER JOIN Sales.Invoice AS I ON I.invoiceID = D.invoiceID INNER JOIN General.Product AS P ON P.ProductID = D.ProductID WHERE P.UnitOfMeasure = 'Kilogram' GROUP BY I.InvoiceID, P.ProductName, P.UnitPrice, D.Quantity GO
  • 20.
    Conjunto de sentenciasSQL precompiladas. Reutilización del plan de ejecución. Soportan las estructuras básicas de programación como estructuras de decisión e iteración.
  • 21.
    CREATE PROCEDURE dbo.usp_GetInvoiceDetails @InvoiceID UNIQUEIDENTIFIER AS SELECT InvoiceID, ProductID, Quantity FROM Sales.InvoiceDetail WHERE invoiceID = @InvoiceID GO exec dbo.usp_GetInvoiceDetails '49A1F445-FC43-4F9D-8668-1081AD64169D'
  • 22.
    Permiten ejecutar procedimientocomo respuesta a una sentencia DML o DCL. Siempre inician una transacción. Permiten mantener la integridad referencial entre tablas.
  • 23.
    CREATE TRIGGER General.trCustomerLogger ON General.Customer FOR INSERT AS INSERT INTO Logger VALUES (NEWID(), 'Customer', GETDATE()) GO
  • 24.
    Permiten un desarrollomodular y mejorar las capacidades de las consultas a la base de datos. Podemos crear funciones escalares (devuelven valores concretos) o de conjunto de resultados (devuelven tablas de datos). CREATE FUNCTION dbo.ufn_GetSubTotal ( @UnitPrice DECIMAL (28, 2), @Quantity DECIMAL (28, 2) ) RETURNS DECIMAL (28, 2) BEGIN RETURN @UnitPrice * @Quantity END
  • 25.
    Permite utilizar laslibrerías de clases del .Net Framework durante la creación de objetos de bases de datos. Permite utilizar las ventajas de los lenguajes de programación sobre Transact-SQL. Permiten un desarrollo superior a los procedimientos almacenados extendidos.
  • 26.
    public partial class StoredProcedures { [Microsoft.SqlServer.Server.SqlProcedure] public static void usp_NetGetInvoiceDetails(Guid invoiceID) { using (SqlConnection conn = new SqlConnection("context connection=true")) { conn.Open(); SqlContext.Pipe.Send("Hello World!!"); SqlCommand cmd = new SqlCommand(string.Format("SELECT * FROM Sales.InvoiceDetail WHERE invoiceID = '{0}'", invoiceID), conn); SqlDataReader reader = cmd.ExecuteReader(); SqlContext.Pipe.Send(reader); } } } CREATE ASSEMBLY SalesAssembly FROM 'C:\Sales.dll‘ CREATE PROCEDURE usp_NetGetInvoiceDetails @invoiceID UNIQUEIDENTIFIER AS EXTERNAL NAME SalesAssembly.StoredProcedures.usp_NetGetInvoiceDetails