SlideShare una empresa de Scribd logo
1 de 76
Desarrollo Aplicaciones con SQL Server 2005
Introducción a:  Email: bernardo.robelo@gmail.com Ing. Bernardo Robelo
Ing. BARJ - 2008 PROCEDIMIENTOS FUNCIONES DE USUARIO VISTAS INTEGRIDAD DE DATOS TRIGGERS CURSORES AGENDA TRANSACT - SQL INDICES
Ing. BARJ – 2008 Transact-SQL ¿Que es?
Transact-SQL Ing. BARJ – 2008 Lenguaje de Definición De Datos
Tipos de datos del sistema ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
[object Object],[object Object],Tipos de datos definidos por el usuario Ing. BARJ – IST – UPOLI - 2008
Tipos de datos definidos por el usuario ,[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
Implementación de la integridad de datos Ing. BARJ – IST – UPOLI - 2008
¿Que es la integridad de datos? Ing. BARJ – IST – UPOLI - 2008
Tipos de integridad de datos Ing. BARJ – IST – UPOLI - 2008 Integridad de dominio  ( columnas ) Integridad de entidad   (filas) Integridad referencial ( entre tablas )
Exigir integridad de los datos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
Integridad de datos Ing. BARJ – IST – UPOLI - 2008
Determinación del tipo de restricción que se va a utilizar Ing. BARJ – IST – UPOLI - 2008 Tipo de integridad Tipo de restricción Dominio DEFAULT CHECK REFERENTIAL Entidad PRIMARY KEY UNIQUE Referencial FOREIGN KEY CHECK
Tipos de restricciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿Qué es un Indice Ing. BARJ – IST – UPOLI - 2008
Tipos de Indice ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
¿Qué es una Vista? Ing. BARJ – IST – UPOLI - 2008
Introducción a las vistas Ing. BARJ – IST – UPOLI - 2008 EmployeeView Lastname  Firstname Davolio  Fuller  Leverling Nancy  Andrew  Janet Employees EmployeeID LastName  Firstname Title 1 2 3 Davolio Fuller Leverling Nancy Andrew Janet ~~~ ~~~ ~~~ Vista del usuario USE  Northwind GO CREATE VIEW dbo. Employee View AS  SELECT  LastName ,  Firstname FROM  Employees
Ventajas de las vistas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
Ejemplo:   Vista de tablas combinadas Ing. BARJ – IST – UPOLI - 2008 OrderID 10663 10827 10427 10451 10515 CustomerID BONAP  BONAP  PICCO  QUICK QUICK ~~~  ~~~  ~~~  ~~~  ~~~ RequiredDate 1997-09-24 1998-01-26 1997-02-24 1997-03-05 1997-05-07 ShippedDate 1997-10-03 1998-02-06 1997-03-03 1997-03-12 1997-05-23 Orders Customers ShipStatusView USE Northwind GO CREATE VIEW dbo.ShipStatusView AS SELECT OrderID, ShippedDate, ContactName FROM Customers c INNER JOIN Orders o   ON c.CustomerID = O.CustomerID WHERE RequiredDate < ShippedDate CustomerID BONAP PICCO QUICK CompanyName Bon app' Piccolo und mehr QUICK-Stop ContactName Laurence Lebihan Georg Pipps Horst Kloss OrderID 10264 10271 10280 1996-08-21 1996-08-29 1996-09-11 ShippedDate 1996-08-23 1996-08-30 1996-09-12 ContactName Laurence Lebihan Georg Pipps Horst Kloss
Uso de vistas para dividir datos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
Ing. BARJ – IST – UPOLI - 2008 Práctica:   Implementación de vistas
Práctica: Implementación de vistas Ing. BARJ – IST – UPOLI - 2008
¿Qué es un  procedimiento almacenado? Ing. BARJ – IST – UPOLI - 2008
Definición de procedimientos almacenados ,[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
Ventajas de los procedimientos almacenados  ,[object Object],[object Object],[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
Creación de procedimientos almacenados ,[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008 USE Northwind GO CREATE PROC dbo.OverdueOrders AS SELECT *  FROM dbo.Orders WHERE RequiredDate < GETDATE() AND ShippedDate IS Null GO
Ejecución de procedimientos almacenados ,[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008 EXEC OverdueOrders   INSERT INTO Customers EXEC EmployeeCustomer
Ejecución de procedimientos ,[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008 EXEC AddCustomer 'ALFKI2', 'Alfreds Futterkiste', 'Maria Anders', 'Sales Representative', 'Obere Str. 57', 'Berlin', NULL, '12209', 'Germany', '030-0074321'   EXEC AddCustomer  @CustomerID = 'ALFKI', @ContactName = 'Maria Anders', @CompanyName = 'Alfreds Futterkiste', @ContactTitle = 'Sales Representative', @Address = 'Obere Str. 57', @City = 'Berlin', @PostalCode = '12209', @Country = 'Germany', @Phone = '030-0074321'
Devolución de valores mediante parámetros de salida Ing. BARJ – IST – UPOLI - 2008 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Resultados del  procedimiento almacenado Ejecución del  procedimiento  almacenado Creación del  procedimiento  almacenado
Control de mensajes de error ,[object Object],Ing. BARJ – IST – UPOLI - 2008
Ing. BARJ – IST – UPOLI - 2008 Práctica Procedimientos Almacenados
PROCEDIMIENTOS CON PARÁMETROS Ing. BARJ – IST – UPOLI - 2008
PROCEDIMIENTOS ALMACENADOS CON PARÁMETROS  CON VALORES POR DEFECTO Ing. BARJ – IST – UPOLI - 2008
PROCEDIMIENTOS ALMACENADOS CON PARÁMETROS  CON VALORES POR DEFECTO Ing. BARJ – IST – UPOLI - 2008
PROCEDIMIENTOS ALMACENADOS CON PARÁMETROS  CON VALORES POR DEFECTO Ing. BARJ – IST – UPOLI - 2008
Ing. BARJ – IST – UPOLI - 2008
VARIABLES DE SALIDA  EN PROCEDIMIENTOS ALMACENADOS Ing. BARJ – IST – UPOLI - 2008
VARIABLES DE SALIDA  EN PROCEDIMIENTOS ALMACENADOS Ing. BARJ – IST – UPOLI - 2008
Ejemplos Ing. BARJ – IST – UPOLI - 2008
Ejemplos Ing. BARJ – IST – UPOLI - 2008
¿Qué es una función definida por el usuario? Ing. BARJ – IST – UPOLI - 2008
¿Qué es una función definida por el usuario? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
Uso de una función escalar definida por el usuario ,[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
Ing. BARJ – IST – UPOLI - 2008 Demostracion:   Creación de funciones definidas por el usuario
FUNCIONES DEFINIDAS POR EL USUARIO Ing. BARJ – IST – UPOLI - 2008 Declare Table
Funciones Escalares ,[object Object],Ing. BARJ – IST – UPOLI - 2008
Funciones de Tablas en Linea Ing. BARJ – IST – UPOLI - 2008
Funciones de Tablas Con Instrucciones Ing. BARJ – IST – UPOLI - 2008
Funciones con Definicion de Esquema Ing. BARJ – IST – UPOLI - 2008
Ing. BARJ – IST – UPOLI - 2008 Práctica:   Creación de funciones definidas por el usuario
Ejercicios Ing. BARJ – IST – UPOLI - 2008 Ver Solución
Ejercicios Ing. BARJ – IST – UPOLI - 2008 Solución
Ejercicios Ing. BARJ – IST – UPOLI - 2008
Ejercicios Ing. BARJ – IST – UPOLI - 2008
¿Que es un TRIGGER?   (DESENCADENADORES, DISPARADORES) Ing. BARJ – IST – UPOLI - 2008
¿Qué es un desencadenador? ,[object Object],[object Object],[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
Consideraciones acerca del uso de desencadenadores ,[object Object],[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
Funcionamiento de los desencadenadores anidados Ing. BARJ – IST – UPOLI - 2008 2 15  UnitsInStock + UnitsOnOrder  es < ReorderLevel para ProductID 2 OrDe_Update La realización de un pedido provoca la ejecución del desencadenador OrDe_Update Se ejecuta la instrucción UPDATE en la tabla  Products InStock_Update Products ProductID UnitsInStock … … 1 3 4 15 15 65 20 Se ejecuta el desencadenador   InStock_Update Envía un mensaje Order_Details OrderID 10522 10523 10524 ProductID 10 41 7 UnitPrice 31.00 9.65 30.00 Quantity 7 9 24 Discount 0.2 0.15 0.0 10525 19.00 2 0.2 5 2 15
Desencadenadores recursivos ,[object Object],[object Object],[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
Exigir reglas de empresa Ing. BARJ – IST – UPOLI - 2008 L os productos con pedidos pendientes no se pueden elimina r IF (Select Count (*)    FROM [Order Details] INNER JOIN deleted    ON [Order Details].ProductID = deleted.ProductID   ) > 0 ROLLBACK TRANSACTION La instrucción   DELETE se   ejecuta   en la tabla Product El código del   desencadenador comprueba la tabla Order Details ' No puede procesarse la transacción ' ' Este producto tiene historial de pedidos ' Se deshace la transacción Products ProductID UnitsInStock … … 1 2 3 4 15 10 65 20 Order Details OrderID 10522 10523 10524 10525 ProductID 10 2 41 7 UnitPrice 31.00 19.00 9.65 30.00 Quantity 7 9 24 Discount 0.2 0.15 0.0 9 Products ProductID UnitsInStock … … 1 3 4 15 10 65 20 2 0
Consideraciones acerca del rendimiento ,[object Object],[object Object],[object Object],[object Object],[object Object],Ing. BARJ – IST – UPOLI - 2008
Ing. BARJ – IST – UPOLI - 2008 Demostracion:   TRIGGERS (DESENCADENADORES, DISPARADORES)
TRIGGERS Ing. BARJ – IST – UPOLI - 2008
TRIGGERS Ing. BARJ – IST – UPOLI - 2008
TRIGGERS Ing. BARJ – IST – UPOLI - 2008
Ing. BARJ – IST – UPOLI - 2008
TRIGGERS Ing. BARJ – IST – UPOLI - 2008
TRIGGERS Ing. BARJ – IST – UPOLI - 2008
Ing. BARJ – IST – UPOLI - 2008
Ing. BARJ – IST – UPOLI - 2008 CONCLUSIONES GENERALES
Ing. BARJ – IST – UPOLI - 2008 MUCHAS GRACIAS! [email_address] Ing. Bernardo Robelo http://bernardorobelo.blogspot.com
Ing. BARJ – IST – UPOLI - 2008
Ing. BARJ – IST – UPOLI - 2008
Ing. BARJ – IST – UPOLI - 2008

Más contenido relacionado

La actualidad más candente

Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenados
hirmaroxana13
 
Base de datos laboratorio
Base de datos laboratorioBase de datos laboratorio
Base de datos laboratorio
freddy Fred
 
SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1
SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1
SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1
Guillermo Taylor
 

La actualidad más candente (20)

Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenados
 
Categorias de Procedimientos Almacenados
Categorias de Procedimientos AlmacenadosCategorias de Procedimientos Almacenados
Categorias de Procedimientos Almacenados
 
Lenguaje Transact SQL
Lenguaje Transact SQL Lenguaje Transact SQL
Lenguaje Transact SQL
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
 
Programación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la infoProgramación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la info
 
Ms SQL Server
Ms SQL ServerMs SQL Server
Ms SQL Server
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
Sql procedimientos-almacenados
Sql procedimientos-almacenadosSql procedimientos-almacenados
Sql procedimientos-almacenados
 
Sql Procedural
Sql ProceduralSql Procedural
Sql Procedural
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datos
 
Transacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQLTransacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQL
 
Base de datos laboratorio
Base de datos laboratorioBase de datos laboratorio
Base de datos laboratorio
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
 
Procesamientos Almacenados
Procesamientos AlmacenadosProcesamientos Almacenados
Procesamientos Almacenados
 
Taller de Base de Datos - Unidad 4 seguridad
Taller de Base de Datos - Unidad 4 seguridadTaller de Base de Datos - Unidad 4 seguridad
Taller de Base de Datos - Unidad 4 seguridad
 
Lo que siempre has querido saber para exprimir sql server
Lo que siempre has querido saber para exprimir sql serverLo que siempre has querido saber para exprimir sql server
Lo que siempre has querido saber para exprimir sql server
 
Administrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBAAdministrando SQL Server, mejores practicas para un DBA
Administrando SQL Server, mejores practicas para un DBA
 
Data warehouse
Data warehouseData warehouse
Data warehouse
 
SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1
SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1
SQL Server 2012 para No DBAs - Aspectos esenciales de SQL Server, parte 1
 
Administración y programación en sql server
Administración y programación en sql serverAdministración y programación en sql server
Administración y programación en sql server
 

Similar a Programacion con SQL Server 2005

Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidor
Richard Castro
 
Bd T1 Eq7 Caracteristicas Sql Server 2008 Todos
Bd T1 Eq7 Caracteristicas Sql Server 2008 TodosBd T1 Eq7 Caracteristicas Sql Server 2008 Todos
Bd T1 Eq7 Caracteristicas Sql Server 2008 Todos
Armando
 
Presentac Une Iso 23081
Presentac Une Iso 23081Presentac Une Iso 23081
Presentac Une Iso 23081
FESABID
 
Auditoria en oracle
Auditoria en oracleAuditoria en oracle
Auditoria en oracle
victdiazm
 
avanttic - webinar: Oracle Seguridad-Gobierno de la Seguridad (25-06-2015)
avanttic - webinar: Oracle Seguridad-Gobierno de la Seguridad (25-06-2015)avanttic - webinar: Oracle Seguridad-Gobierno de la Seguridad (25-06-2015)
avanttic - webinar: Oracle Seguridad-Gobierno de la Seguridad (25-06-2015)
avanttic Consultoría Tecnológica
 
032 k2 b-audit_la_forma_mas_sencilla_de_auditar_su_aplicacion
032 k2 b-audit_la_forma_mas_sencilla_de_auditar_su_aplicacion032 k2 b-audit_la_forma_mas_sencilla_de_auditar_su_aplicacion
032 k2 b-audit_la_forma_mas_sencilla_de_auditar_su_aplicacion
GeneXus
 
Investigacion Uno
Investigacion UnoInvestigacion Uno
Investigacion Uno
Roberto
 

Similar a Programacion con SQL Server 2005 (20)

Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidor
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
Bd T1 Eq7 Caracteristicas Sql Server 2008 Todos
Bd T1 Eq7 Caracteristicas Sql Server 2008 TodosBd T1 Eq7 Caracteristicas Sql Server 2008 Todos
Bd T1 Eq7 Caracteristicas Sql Server 2008 Todos
 
ABI-Box
ABI-BoxABI-Box
ABI-Box
 
Características de Capataz 2007
Características de Capataz 2007Características de Capataz 2007
Características de Capataz 2007
 
Auditoría de bases de datos
Auditoría de bases de datosAuditoría de bases de datos
Auditoría de bases de datos
 
Funcionalidades de QUALITY MASTER
Funcionalidades de QUALITY MASTERFuncionalidades de QUALITY MASTER
Funcionalidades de QUALITY MASTER
 
Presentac Une Iso 23081
Presentac Une Iso 23081Presentac Une Iso 23081
Presentac Une Iso 23081
 
ETL Aplicado a Empresas.ppt
ETL Aplicado a Empresas.pptETL Aplicado a Empresas.ppt
ETL Aplicado a Empresas.ppt
 
ORACLE FUNDAMENTALS I
ORACLE FUNDAMENTALS IORACLE FUNDAMENTALS I
ORACLE FUNDAMENTALS I
 
Auditoria en oracle
Auditoria en oracleAuditoria en oracle
Auditoria en oracle
 
iCAN Interactive ES
iCAN Interactive ESiCAN Interactive ES
iCAN Interactive ES
 
RUP
RUPRUP
RUP
 
avanttic - webinar: Oracle Seguridad-Gobierno de la Seguridad (25-06-2015)
avanttic - webinar: Oracle Seguridad-Gobierno de la Seguridad (25-06-2015)avanttic - webinar: Oracle Seguridad-Gobierno de la Seguridad (25-06-2015)
avanttic - webinar: Oracle Seguridad-Gobierno de la Seguridad (25-06-2015)
 
032 k2 b-audit_la_forma_mas_sencilla_de_auditar_su_aplicacion
032 k2 b-audit_la_forma_mas_sencilla_de_auditar_su_aplicacion032 k2 b-audit_la_forma_mas_sencilla_de_auditar_su_aplicacion
032 k2 b-audit_la_forma_mas_sencilla_de_auditar_su_aplicacion
 
ETL: Logging y auditoría en SSIS
ETL: Logging y auditoría en SSISETL: Logging y auditoría en SSIS
ETL: Logging y auditoría en SSIS
 
Investigacion Uno
Investigacion UnoInvestigacion Uno
Investigacion Uno
 
Auditoria_de_base_de_datos_sistemas de informacion.pptx
Auditoria_de_base_de_datos_sistemas de informacion.pptxAuditoria_de_base_de_datos_sistemas de informacion.pptx
Auditoria_de_base_de_datos_sistemas de informacion.pptx
 
TODO SOBRE SQL
TODO SOBRE SQLTODO SOBRE SQL
TODO SOBRE SQL
 
Sql
SqlSql
Sql
 

Más de brobelo

Microsoft Excel 2007 - Guia de Ejercicios
Microsoft Excel 2007 - Guia de EjerciciosMicrosoft Excel 2007 - Guia de Ejercicios
Microsoft Excel 2007 - Guia de Ejercicios
brobelo
 
Excel 2007
Excel 2007Excel 2007
Excel 2007
brobelo
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
brobelo
 
Microsoft office access 2007
Microsoft office access 2007Microsoft office access 2007
Microsoft office access 2007
brobelo
 
XML en .NET
XML en .NETXML en .NET
XML en .NET
brobelo
 
Estructuras de Lenguaje .NET
Estructuras de Lenguaje .NETEstructuras de Lenguaje .NET
Estructuras de Lenguaje .NET
brobelo
 
Tecnologia Microsoft
Tecnologia  MicrosoftTecnologia  Microsoft
Tecnologia Microsoft
brobelo
 
Modelos De Data Mining
Modelos De Data MiningModelos De Data Mining
Modelos De Data Mining
brobelo
 
Data Mining
Data MiningData Mining
Data Mining
brobelo
 
Manual Analysis Services
Manual Analysis ServicesManual Analysis Services
Manual Analysis Services
brobelo
 
Analysis Services
Analysis ServicesAnalysis Services
Analysis Services
brobelo
 
Bussines Intelligence
Bussines IntelligenceBussines Intelligence
Bussines Intelligence
brobelo
 
Reporting Services
Reporting ServicesReporting Services
Reporting Services
brobelo
 
Replicacion de Datos en SQL Server
Replicacion de Datos en SQL ServerReplicacion de Datos en SQL Server
Replicacion de Datos en SQL Server
brobelo
 

Más de brobelo (20)

Microsoft Excel 2007 - Guia de Ejercicios
Microsoft Excel 2007 - Guia de EjerciciosMicrosoft Excel 2007 - Guia de Ejercicios
Microsoft Excel 2007 - Guia de Ejercicios
 
Excel 2007
Excel 2007Excel 2007
Excel 2007
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Microsoft office access 2007
Microsoft office access 2007Microsoft office access 2007
Microsoft office access 2007
 
XML en .NET
XML en .NETXML en .NET
XML en .NET
 
Sql server 2008
Sql server 2008Sql server 2008
Sql server 2008
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Estructuras de Lenguaje .NET
Estructuras de Lenguaje .NETEstructuras de Lenguaje .NET
Estructuras de Lenguaje .NET
 
Tecnologia Microsoft
Tecnologia  MicrosoftTecnologia  Microsoft
Tecnologia Microsoft
 
Modelos De Data Mining
Modelos De Data MiningModelos De Data Mining
Modelos De Data Mining
 
Data Mining
Data MiningData Mining
Data Mining
 
Manual Analysis Services
Manual Analysis ServicesManual Analysis Services
Manual Analysis Services
 
Analysis Services
Analysis ServicesAnalysis Services
Analysis Services
 
Bussines Intelligence
Bussines IntelligenceBussines Intelligence
Bussines Intelligence
 
Reporting Services
Reporting ServicesReporting Services
Reporting Services
 
SQL SERVER Service Broker
SQL SERVER Service BrokerSQL SERVER Service Broker
SQL SERVER Service Broker
 
Replicacion de Datos en SQL Server
Replicacion de Datos en SQL ServerReplicacion de Datos en SQL Server
Replicacion de Datos en SQL Server
 
SQL Server - Como se Almacenan los Datos
SQL Server - Como se Almacenan los DatosSQL Server - Como se Almacenan los Datos
SQL Server - Como se Almacenan los Datos
 
Variables en SSIS
Variables en SSISVariables en SSIS
Variables en SSIS
 
SQL Server Integration Services
SQL Server Integration ServicesSQL Server Integration Services
SQL Server Integration Services
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (11)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

Programacion con SQL Server 2005

  • 1. Desarrollo Aplicaciones con SQL Server 2005
  • 2. Introducción a: Email: bernardo.robelo@gmail.com Ing. Bernardo Robelo
  • 3. Ing. BARJ - 2008 PROCEDIMIENTOS FUNCIONES DE USUARIO VISTAS INTEGRIDAD DE DATOS TRIGGERS CURSORES AGENDA TRANSACT - SQL INDICES
  • 4. Ing. BARJ – 2008 Transact-SQL ¿Que es?
  • 5. Transact-SQL Ing. BARJ – 2008 Lenguaje de Definición De Datos
  • 6.
  • 7.
  • 8.
  • 9. Implementación de la integridad de datos Ing. BARJ – IST – UPOLI - 2008
  • 10. ¿Que es la integridad de datos? Ing. BARJ – IST – UPOLI - 2008
  • 11. Tipos de integridad de datos Ing. BARJ – IST – UPOLI - 2008 Integridad de dominio ( columnas ) Integridad de entidad (filas) Integridad referencial ( entre tablas )
  • 12.
  • 13. Integridad de datos Ing. BARJ – IST – UPOLI - 2008
  • 14. Determinación del tipo de restricción que se va a utilizar Ing. BARJ – IST – UPOLI - 2008 Tipo de integridad Tipo de restricción Dominio DEFAULT CHECK REFERENTIAL Entidad PRIMARY KEY UNIQUE Referencial FOREIGN KEY CHECK
  • 15.
  • 16. ¿Qué es un Indice Ing. BARJ – IST – UPOLI - 2008
  • 17.
  • 18. ¿Qué es una Vista? Ing. BARJ – IST – UPOLI - 2008
  • 19. Introducción a las vistas Ing. BARJ – IST – UPOLI - 2008 EmployeeView Lastname Firstname Davolio Fuller Leverling Nancy Andrew Janet Employees EmployeeID LastName Firstname Title 1 2 3 Davolio Fuller Leverling Nancy Andrew Janet ~~~ ~~~ ~~~ Vista del usuario USE Northwind GO CREATE VIEW dbo. Employee View AS SELECT LastName , Firstname FROM Employees
  • 20.
  • 21. Ejemplo: Vista de tablas combinadas Ing. BARJ – IST – UPOLI - 2008 OrderID 10663 10827 10427 10451 10515 CustomerID BONAP BONAP PICCO QUICK QUICK ~~~ ~~~ ~~~ ~~~ ~~~ RequiredDate 1997-09-24 1998-01-26 1997-02-24 1997-03-05 1997-05-07 ShippedDate 1997-10-03 1998-02-06 1997-03-03 1997-03-12 1997-05-23 Orders Customers ShipStatusView USE Northwind GO CREATE VIEW dbo.ShipStatusView AS SELECT OrderID, ShippedDate, ContactName FROM Customers c INNER JOIN Orders o ON c.CustomerID = O.CustomerID WHERE RequiredDate < ShippedDate CustomerID BONAP PICCO QUICK CompanyName Bon app' Piccolo und mehr QUICK-Stop ContactName Laurence Lebihan Georg Pipps Horst Kloss OrderID 10264 10271 10280 1996-08-21 1996-08-29 1996-09-11 ShippedDate 1996-08-23 1996-08-30 1996-09-12 ContactName Laurence Lebihan Georg Pipps Horst Kloss
  • 22.
  • 23. Ing. BARJ – IST – UPOLI - 2008 Práctica: Implementación de vistas
  • 24. Práctica: Implementación de vistas Ing. BARJ – IST – UPOLI - 2008
  • 25. ¿Qué es un procedimiento almacenado? Ing. BARJ – IST – UPOLI - 2008
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. Ing. BARJ – IST – UPOLI - 2008 Práctica Procedimientos Almacenados
  • 34. PROCEDIMIENTOS CON PARÁMETROS Ing. BARJ – IST – UPOLI - 2008
  • 35. PROCEDIMIENTOS ALMACENADOS CON PARÁMETROS CON VALORES POR DEFECTO Ing. BARJ – IST – UPOLI - 2008
  • 36. PROCEDIMIENTOS ALMACENADOS CON PARÁMETROS CON VALORES POR DEFECTO Ing. BARJ – IST – UPOLI - 2008
  • 37. PROCEDIMIENTOS ALMACENADOS CON PARÁMETROS CON VALORES POR DEFECTO Ing. BARJ – IST – UPOLI - 2008
  • 38. Ing. BARJ – IST – UPOLI - 2008
  • 39. VARIABLES DE SALIDA EN PROCEDIMIENTOS ALMACENADOS Ing. BARJ – IST – UPOLI - 2008
  • 40. VARIABLES DE SALIDA EN PROCEDIMIENTOS ALMACENADOS Ing. BARJ – IST – UPOLI - 2008
  • 41. Ejemplos Ing. BARJ – IST – UPOLI - 2008
  • 42. Ejemplos Ing. BARJ – IST – UPOLI - 2008
  • 43. ¿Qué es una función definida por el usuario? Ing. BARJ – IST – UPOLI - 2008
  • 44.
  • 45.
  • 46. Ing. BARJ – IST – UPOLI - 2008 Demostracion: Creación de funciones definidas por el usuario
  • 47. FUNCIONES DEFINIDAS POR EL USUARIO Ing. BARJ – IST – UPOLI - 2008 Declare Table
  • 48.
  • 49. Funciones de Tablas en Linea Ing. BARJ – IST – UPOLI - 2008
  • 50. Funciones de Tablas Con Instrucciones Ing. BARJ – IST – UPOLI - 2008
  • 51. Funciones con Definicion de Esquema Ing. BARJ – IST – UPOLI - 2008
  • 52. Ing. BARJ – IST – UPOLI - 2008 Práctica: Creación de funciones definidas por el usuario
  • 53. Ejercicios Ing. BARJ – IST – UPOLI - 2008 Ver Solución
  • 54. Ejercicios Ing. BARJ – IST – UPOLI - 2008 Solución
  • 55. Ejercicios Ing. BARJ – IST – UPOLI - 2008
  • 56. Ejercicios Ing. BARJ – IST – UPOLI - 2008
  • 57. ¿Que es un TRIGGER? (DESENCADENADORES, DISPARADORES) Ing. BARJ – IST – UPOLI - 2008
  • 58.
  • 59.
  • 60. Funcionamiento de los desencadenadores anidados Ing. BARJ – IST – UPOLI - 2008 2 15 UnitsInStock + UnitsOnOrder es < ReorderLevel para ProductID 2 OrDe_Update La realización de un pedido provoca la ejecución del desencadenador OrDe_Update Se ejecuta la instrucción UPDATE en la tabla Products InStock_Update Products ProductID UnitsInStock … … 1 3 4 15 15 65 20 Se ejecuta el desencadenador InStock_Update Envía un mensaje Order_Details OrderID 10522 10523 10524 ProductID 10 41 7 UnitPrice 31.00 9.65 30.00 Quantity 7 9 24 Discount 0.2 0.15 0.0 10525 19.00 2 0.2 5 2 15
  • 61.
  • 62. Exigir reglas de empresa Ing. BARJ – IST – UPOLI - 2008 L os productos con pedidos pendientes no se pueden elimina r IF (Select Count (*) FROM [Order Details] INNER JOIN deleted ON [Order Details].ProductID = deleted.ProductID ) > 0 ROLLBACK TRANSACTION La instrucción DELETE se ejecuta en la tabla Product El código del desencadenador comprueba la tabla Order Details ' No puede procesarse la transacción ' ' Este producto tiene historial de pedidos ' Se deshace la transacción Products ProductID UnitsInStock … … 1 2 3 4 15 10 65 20 Order Details OrderID 10522 10523 10524 10525 ProductID 10 2 41 7 UnitPrice 31.00 19.00 9.65 30.00 Quantity 7 9 24 Discount 0.2 0.15 0.0 9 Products ProductID UnitsInStock … … 1 3 4 15 10 65 20 2 0
  • 63.
  • 64. Ing. BARJ – IST – UPOLI - 2008 Demostracion: TRIGGERS (DESENCADENADORES, DISPARADORES)
  • 65. TRIGGERS Ing. BARJ – IST – UPOLI - 2008
  • 66. TRIGGERS Ing. BARJ – IST – UPOLI - 2008
  • 67. TRIGGERS Ing. BARJ – IST – UPOLI - 2008
  • 68. Ing. BARJ – IST – UPOLI - 2008
  • 69. TRIGGERS Ing. BARJ – IST – UPOLI - 2008
  • 70. TRIGGERS Ing. BARJ – IST – UPOLI - 2008
  • 71. Ing. BARJ – IST – UPOLI - 2008
  • 72. Ing. BARJ – IST – UPOLI - 2008 CONCLUSIONES GENERALES
  • 73. Ing. BARJ – IST – UPOLI - 2008 MUCHAS GRACIAS! [email_address] Ing. Bernardo Robelo http://bernardorobelo.blogspot.com
  • 74. Ing. BARJ – IST – UPOLI - 2008
  • 75. Ing. BARJ – IST – UPOLI - 2008
  • 76. Ing. BARJ – IST – UPOLI - 2008

Notas del editor

  1. DDL – Data Definition Languaje
  2. De dominio controlado por el tipo de datos y los valores que puede aceptar
  3. Ver Diferencia cuando le quitamos el PRINT @TOTAL
  4. Lo de la TABLA CONTROL es para los TRIGGERS tambien, para crear una vitacora
  5. IMPORTANTE: El esquema de propietario de la tablas deben estar definidas en la funcion. SINO da error.
  6. Asociación a una tabla Los desencadenadores se definen para una tabla específica, denominada tabla del desencadenador. Invocación automática Cuando se intenta insertar, actualizar o eliminar datos de una tabla en la que se ha definido un desencadenador para esa acción específica, el desencadenador se ejecuta automáticamente. No es posible evitar su ejecución. Imposibilidad de llamada directa A diferencia de los procedimientos almacenados del sistema normales, no es posible invocar directamente los desencadenadores, que tampoco pasan ni aceptan parámetros.