1. UNIVERSIDAD NACIONAL JOSÉ FAUSTINO SANCHEZ CARRIÓN
FACULTAR DE INGENIERÍA
E.A.P. DE INGENIERÍA DE SISTEMAS
TEMA : SQL SERVER
CURSO : Teoría y Diseño de Base de Datos
DOCENTE : Claros Vázquez
EQUIPO:
•Ortiz Pimentel, Rosmel.
•Elías More , Ever.
•Reyes Sánchez, Mario.
•Muñoz Quispe, Javier.
2. 1. INTRODUCCIÓN
•Versiones
•Ediciones
•Plataforma SQL SERVER 2005
•Entorno de desarrollo del SQL SERVER 2005
2. CREAR UN BASE DE DATOS
•De manera grafica: Tablas y relaciones
•Migración Del ERwin de forma Native
•Migración Del ERwin en forma ODBC
3. CREACION DE UNA REPLICA
. REPLICACION TRANSACIONAL
4. EXPORTAR E IMPORTAR BASES DE DATOS
•Adjuntar una base de datos
•Exportar una BD de SQL SERVER a ACCES
•Importar una BD de ACCES a SQL SERVER 2005
5. . LOGIN
•Diferentes niveles de acceso a NIEVEL DE SQL SERVER
6. BACKUP Y RESTAURACION DE BASE DE DATOS
•Adjuntar base de datos
•BackUp manual
•BackUp automático con un plan de mantenimiento
7. PROCEDIMIENTOS ALMACENADOS
8. TRIGGERS
3. SISTEMA DE GESTION DE BASE DE DATOS
OBJETIVOS:
oAbstraer la información acerca de cómo se almacenan físicamente los datos.
oMantener la independencia entre la vista física y lógica de los datos.
oMantener la mínima redundancia, dado que los diseños de bases de datos
que soportan (el modelo relacional) no son propensos a representar
información repetida.
oAsegurar la consistencia de la información.
oProveer seguridad ante usos malintencionados, ataques, robos de
información, etc.
oAsegurar la integridad de los datos almacenados.
oProveer mecanismos de respaldo y recuperación
oRegular y controlar la concurrencia de usuarios.
oProveer buen tiempo de respuesta.
4. REGLAS
Debe utilizar sus capacidades relacionales con el pro pósito de gestionar la base
de datos.
Toda la información contenida en una base de datos relacional (BDR) se
representa explícitamente en el nivel lógico de una manera exacta: con valores
en tablas.
Regla del acceso garantizado.
Tratamiento sistemático de valores nulos.
Catálogo dinámico en línea basado en el modelo relacional.
Regla del sublenguaje de datos completo.
Regla de actualización de vistas.
Regla de inserción, actualización y borrado de alto nivel.
Regla de independencia física de datos.
Regla de independencia lógica de datos.
Regla de independencia de integridad.
Regla de independencia de distribución.
Regla de la no-subversión.
5. ¿QUE ES SQL SERVER?
Es un sistema de gestión de base de datos relacionales basado en
el lenguaje Transact-SQL, y específicamente en Sybase IQ, capaz
de poner a disposición de muchos usuarios grandes cantidades de
datos de manera simultánea, así como de tener unas ventajas que
más abajo se describen.
Microsoft SQL Server constituye la alternativa de Microsoft a otros
potentes sistemas gestores de bases de datos como son Oracle,
Sybase ASE, PostgreSQL, Interbase, Firebird o MySQL.
6. HISTORIA DEL SQL SERVER
Versión Año Nombre de la versión Code Name
1.0 (OS/2) 1989 SQL Server 1.0 -
4.21 (NT) 1993 SQL Server 4.21 -
6.0 1995 SQL Server 6.0 SQL95
6.5 1996 SQL Server 6.5 Hydra
7.0 1998 SQL Server 7.0 Sphinx
1999 SQL Server Herramientas OLAP Platón
8.0 2000 SQL Server 2000 Shiloh
8.0 2003 SQL Server 2000 para 64 bits Liberty
9.0 2005 SQL Server 2005 Yukon
10.0 2008 SQL Server 2008 katmai
7. SQL Server tuvo sus orígenes en acuerdos comerciales entre las
empresas Microsoft, IBM, Sybase y Ashton-Tate.
Con la finalidad de ubicarse rápidamente en una posición competitiva,
en 1986 Microsoft se asoció con Sybase Inc., que ya tenía un producto
corriendo en UNIX que se encontraba muy bien conceptuado en el
mercado.
En 1988, Microsoft se asoció con Ashton-Tate y anunció un nuevo
producto: Ashton-Tate/Microsoft SQL Server. La idea era escalar
Dbase con el fin de crear una versión cliente/servidor que permitiera
utilizar su lenguaje de consultas para crear aplicaciones que se
comunicaran con SQL Server.
8. En 1989, surgió la primera versión de SQL Server para OS/2 bajo
el nombre Ashton-Tate/Microsoft SQL Server 1.0.
En 1991, Microsoft ya estaba trabajando en Windows NT (que
originalmente sería lanzado como OS/2 3.0 por su asociación con
IBM), basado en la interfaz de programación de aplicaciones API
Win32 (Application Programming Interfase).
La siguiente versión de SQL Server, la 6.0, se liberó al mercado en
1995. Este pro- ducto ya trabajaba elementos clave, como la
duplicación y los cursores, que daban la posibilidad de trabajar
registros uno a uno.
9. La versión 6.5, liberada en abril de 1996, incluía más facilidades de
uso, la certificación ANSI-SQL, más posibilidades a las
transacciones distribuidas, y tuvo en cuenta la creciente
demanda de almacenes de datos.
Durante el trancurso del año 1995, Microsoft comenzó a desarrollar
un nuevo procesador de consultas al que se le sumó el de OLE
DB. El producto fue liberado en enero de 1999 como la versión 7.0.
10. SQL SERVER 7.0
INNOVACIONES
La primera base de datos en escalar desde la
computadora portátil hasta la empresa
utilizando la misma base de código y ofrecer
el 100% de compatibilidad de código.
Primera base de datos con OLAP integrado.
La primera base de datos en proveer
administración de multiservidor para cientos
de servidores.
11. OBJETIVOS DEL PROCESO
Arquitectura RDBMS
Datos distribuidos y replicación
Integración Internet y correo electrónico
Gestión y administración centralizada de
bases de datos
Mejoras en programabilidad y lenguaje
12. SQL SERVER 2000
INNOVACIONES
Proporciona el procesamiento transaccional
online a gran escala, el Business Intelligence
y las aplicaciones de comercio-e.
Mejora significativamente las capacidades
del componente de Servicios OLAP
introducido en la versión 7.0 de SQL Server.
Los Servicios de Análisis introducen el
datamining, que se puede emplear para
descubrir información en cubos OLAP y en
bases de datos relacionales.
13. NOVEDADES
Novedades de Microsoft SQL Server 2000 Novedades de los Servicios de Análisis
Mejoras de la base de datos relacional Mejoras de cubos
Integración XML de Datos Relacionales Mejoras de Dimensión
Mejoras de la Administración Gráfica Mejoras de Data Mining
Mejoras de Replicación Mejoras de Seguridad
Mejoras de los Servicios de Transformación de Mejoras de Conectividad del Cliente en el
Datos Servicio PivotTable®
Mejoras de los Servicios de Análisis Otras mejoras
Mejoras de los Servicios de Metas
Mejoras de English Query Novedades de los Servicios de Metas
Mejoras de Documentación Mejoras del Navegador de Metas
Mejoras de la codificación de XML
Mejoras de programación del motor de
repositorio
Mejoras del modelo de motor de repositorio
14. SQL SERVER 2005
INNOVACIONES
Soporte para varios procesadores, RAID y balanceo de carga de trabajo
Particionado de bases de datos para soportar bases de datos muy grandes
Operaciones de indexado paralelas
Mirroring (espejado) de bases de datos para proveer protección ante fallos
y redirección automática de clientes
Optimización automática de bases de datos, herramientas de
administración sencillas y herramientas de desarrollo avanzadas
Servicios de autenticación, auditoría y autorización avanzados
Encriptación avanzada de datos
Servicio de revisión de buenas prácticas de programación
Integración con Microsoft Baseline Security Analizer
Integración con Microsoft Update
Soporte de consultas recursivas, manejo de errores y nuevos tipos de
datos
Integración con .NET
15. SQL SERVER 2005
CARACTERISTICAS DE ADMINISTRACION DE BASE DE DATOS
Mirroring de Bases de Datos
Operaciones de Indexación Online
Nuevas herramientas integradas
Aislamiento de Imágenes (SI)
Particionado de Datos
Backups duplicados (“mirrored backup”)
Restauración online
Recuperación rápida
Conexión de Administrador dedicada
Mejoras en la Replicación
16. SQL SERVER 2005
CARACTERISTICAS DE DESARROLLO
Soporte para .NET Framework
Tecnologías XML
ADO.NET Versión 2.0
Mejoras en Transact-SQL
Gestor de Servicio SQL
Servicios de Notificación
Servicios Web
Soporte para Xquery
Mejoras en la Búsqueda de Texto Completo
Mejoras en Seguridad
17. SQL SERVER 2005
CARACTERISTICAS DE INTELIGENCIA DE NEGOCIOS
Servicios de Análisis
Servicios de Transformación de Datos (DTS)
Data Mining
Servicios de Reporting
Soporte de Servicios de Análisis en Cluster
Indicadores de Rendimiento Principales
Escalabilidad y Rendimiento
Cubo en un solo click
Mejoras en la Arquitectura
Integración con los informes de Office System
19. Microsoft SQL Server es una plataforma de base de datos y análisis de datos para
aplicaciones OLTP.
Para diseño, creación y administración de data werehouses, y para aplicaciones de comercio
electrónico.
SQL Server Management Studio
Plataforma SQL Server
20. Microsoft SQL Server Management Studio
Entorno de desarrollo
Servidores Barras de
registrados herramientas
Explorador de Página del
objetos resumen de objeto
Principales Ventanas
El SQL Server Management Studio es un entorno integrado para acceder, configurar, administrar y manejar todos los componentes de SQL Server 2005.
21. MODELADORES DE BASE DE DATOS
LICENCIADA:
•ERWIN Data Modeler 7.3
•Sybase Power Designer 15.1
•Rational Rose 2007
•XCase 6.0
•Bainsoft BDB Professional Edition 3.6
GRATUITA:
•DBDesigner 4.0.5.6
22. Archivos de una base de datos en SQL Server:
Archivo primario (.mdf)
Archivos secundarios (.ndf)
Archivos de registro de transacciones (.ldf)
25. La réplica es un conjunto de tecnologías destinadas a la
copia y distribución de datos y objetos de base de datos
desde una base de datos a otra, para luego sincronizar
ambas bases de datos y mantener su coherencia. La
réplica permite distribuir datos a diferentes ubicaciones y a
usuarios remotos o móviles mediante redes de área local y
de área extensa, conexiones de acceso telefónico,
conexiones inalámbricas e Internet.
DEMO_05
26. Introducción a la replicación
Publicador: Servidor que pone los datos a disposición de otros servidores su replicación.
Distribuidor: Servidor que aloja la base de datos de distribución (distribution) y almacena los datos históricos,
transacciones y metadatos a replicar.
Suscriptor: Servidor que recibe los datos replicados.
Publicación: Conjunto de artículos de una base de datos que se ponen a disposición de la replicación por parte de los
publicadores.
Artículo: Un artículo de una publicación puede ser una vista, procedimiento almacenado, etc. o una tabla de datos la
cual puede contar con todas las filas o algunas (filtrado horizontal) y simultáneamente contar de todas las columnas o
algunas (filtrado vertical).
Suscripción: Petición de copia de datos o de objetos de base de datos para replicar. Una suscripción define qué
publicación se recibirá, dónde y cuándo.
Pueden ser:
○ Suscripciones de inserción: El Publicador solicita la sincronización o distribución de datos de una suscripción.
○ Suscripciones de extracción: El Suscriptor solicita la sincronización o distribución de datos de una suscripción.
Agentes de replicación: Procesos encargados de la copia de datos entre el publicador y el suscriptor.
Existen los siguientes agentes:
○ Agente de Instantáneas
○ Agente de distribución
○ Agente del lector de registro
○ Agente del lector de cola
○ Agente de mezcla
TELEVISIÓN DIGITAL
27. Agentes de replicación
Agente de instantáneas: El agente de instantáneas es el encargado de crear la instantánea inicial de la
base de datos de publicación y de almacenarla en una carpeta compartida del distribuidor. El agente de
instantáneas pone una marca en el registro de transacciones para indicar la hora de la instantánea. El
agente lector de registros usa esta marca para determinar las transacciones que deben copiarse para
actualizar la instantánea en los suscriptores.
Agente lector de registros: El agente lector de registros supervisa el registro de transacciones para la
base de datos de publicación y copia transacciones nuevas en la base de datos de distribución.
Agente de distribución: El agente de distribución inicializa una copia de la base de datos de publicación
en cada suscriptor mediante la instantánea inicial. A partir de este momento, el agente de distribución
copiará periódicamente las transacciones almacenadas en la base de datos de distribución y las
aplicará a la copia de la base de datos de publicación de cada suscriptor para mantener la base de
datos actualizada.
Agente del lector de cola: Aplica los cambios de una cola y los aplica a múltiples suscriptores
Agente de mezcla: Combina los cambios de sitios múltiples en entornos heterogéneos
28. El Modelo de replicación en Microsoft Sql server 2005
Publicador Suscriptor
Mantiene las Recibe los
bases de datos cambios de
de origen los datos.
Distribuidor Alberga una
Facilita los
copia de los
datos Para su
Almacena los datos.
duplicación
metadatos , el
historial y, recibe y
almacena los
cambios.
Es posible reenviar
los cambios a los
suscriptores.
29. Nuevos tipos de replicación
Los datos pueden ser publicados desde una base de datos Oracle a una
Replicación Heterogénea base de datos SQL Server usando replicación transaccional o
instantánea.
Replicación Transaccional Los datos pueden ser replicados entre múltiples peer servers. Datos a
Peer-to-peer todos los servidores pueden ser actualizados y todos los servidores
reciben los cambios hechos a los otros servidores.
Para simplificar las replicaciones a través de un firewall o para mobile
Replicación HTTP users, ha sido introducida la replicación sobre HTTP o HTTPS. Esto
transmite datos en formato XML entre un suscriptor y el IIS, y usa
formato binario sobre TCP/IP entre IIS y el publicador.
31. Información general de la replicación
transaccional
Normalmente, la replicación transaccional se inicia
con una instantánea de los datos y los objetos de la
base de datos de publicaciones.
En cuanto se obtiene la instantánea inicial, los
posteriores cambios de datos y modificaciones del
esquema realizado en el publicador habitualmente
se entregan en el suscriptor cuando se producen
(casi en tiempo real).
Los cambios de datos se aplican al suscriptor en el
mismo orden y dentro de los mismos límites de la
transacción que cuando se produjeron en el
publicador. Por tanto, en una publicación, se
garantiza la coherencia transaccional.
32.
33.
34.
35.
36.
37. Tipos de autentificación en SQL Server
Tipos de autentificación en SQL Server:
1. Autentificación integrada de Windows.
2. Autentificación SQL Server
Autentificación: Es básicamente el proceso de determinar que alguien es realmente quien dice ser.
38. Proceso de autentificación en SQL Server
Servidor Windows
Servidor SQL
Cuenta de usuario Windows login name
SISTEMAS SISTEMAS Ventas
dbo
Producción
login name
123
administrador
Personal
39. Terminología de Seguridad
Principal:
Un principal es cualquier identidad autenticada que puede tener permisos de acceso a un objeto en un
sistema de base de datos.
Securable:
Los Securables son recursos a los cuales el sistema de autorización de SQL Server controla el acceso.
Permisos:
Los Permisos son las reglas que gobiernan el nivel de accesos que los principals tienen para los
asegurables.
Permisos
Principal Securable
40. Incluyen:
Logins
HTTP endpoints
Certificados
Notificación de evento
Bases de datos
Niveles
Incluyen:
Cuenta de usuario
Usuarios
local Windows Roles
Cuenta de usuario de Aplicación de roles
dominio Windows Ensambles
Grupo Windows
Tipos de mensajes
Contratos de Servicio
SQL Server login Servicios
SQL Server role Catálogos Full-text
Eventos DDL
Schemas
Usuario de base de
datos
Rol de base de datos Incluyen:
Grupo de base de Tablas
datos Vistas
Rol de la aplicación
Funciones
Procedimientos
Colas
Tipos
Reglas
Defaults
Sinónimos
Agregados
41. Asegurable Permiso Descripción
CONNECT_SQL Conecta al servidor.
Server CREATE LOGIN Crea un login.
ALTER ANY LOGIN Altera cualquier login en el rango del servidor.
CONTROL SERVER Control completo de administración del sistema.
ALTER Altera el login.
Login IMPERSONATE Impersonar el login.
CREATE TABLE Crea una tabla en la base de datos.
Base de Datos ALTER ANY USER Altera cualquier usuario en la base de datos.
CONTROL Control completo de la base de datos.
Usuario ALTER Altera el usuario especificado.
SELECT Selecciona rows para cualquier objeto en el schema.
Schema
ALTER Altera cualquier objeto en el schema.
TAKE OWNERSHIP Toma propiedad del schema.
SELECT Selecciona rows de la tabla.
Tabla ALTER Altera la tabla.
CONTROL Control total de la tabla.
42. ROLES FIJOS DE SERVIDOR
ROL DESCRIPCIÓN PERMISOS
dbcreator Creadores de base de datos Crear y modificar las base de datos
serveradmin Administradores del servidor Cambiar las opciones de configuración del servidor
sysadmin Administradores del sistema Ejecutar cualquier tarea en el servidor SQL
segurityadmin Administradores de seguridad Administrar logins
43. ROLES FIJOS DE BASE DE DATOS
ROL DESCRIPCIÓN PERMISOS
db_owner Dueños de la base de datos No tiene restricciones
db_backuperator Ejecutores de copias de seguridad Obtener copias de seguridad
db_ddladmin Ejecutores de declaraciones DDL Ejecutar cualquier declaración DDL
db_reader Lectores de datos Leer el contenido de la tabla o vista
db_writer Escritores de datos Puede modificar los datos de las tablas
db_denyreader Sin acceso de lectura No puede eer el contenido de la tabla o vista
db_denywriter Sin acceso a escritura No puede eer el contenido de la tabla o vista
44. TRANSACT - SQL
ELEMENTOS:
Lenguaje de Manipulación de Datos (DML)
SELECT
INSERT
UPDATE
DELETE
Lenguaje de Definición de Datos (DDL)
CREATE
ALTER
DROP
Lenguaje de Control de Datos (DCL) Usado para cambiar los permisos o roles asociados con un usuario de la BD.
GRANT
DENY
REVOKE
46. VISTAS:
Es un objeto de la base de datos que almacena una consulta predefinida.
Muestra la instrucción con la
que se creó la vista
Combinación de vistas
47. PROCEDIMIENTO ALMACENADO:
Son instrucciones pre compiladas.
Necesita ser invocado
Un Store Procedure también puede llamar a otro Store Procedure, así como aceptar entradas y devolver
múltiples valores al procedimiento llamado en forma de parámetros de salida.
Proporciona un mecanismo de seguridad.
Puede ser compartida con otras aplicaciones.
VEREMOS:
•PROCEDIMIENTO ALMACENADO SIN PARAMETROS
•PROCEDIMIENTO ALMACENADO CON PARAMETROS
•PROCEDIMIENTO ALMACENADO QUE RECIBE Y ENTREGA PARAMETROS
50. PROCEDIMIENTO ALMACENADO QUE RECIBE Y ENTREGA PARAMETROS:
Muestra el total por el documento “X”
EJEMPLO:
Calcular el ranking de los “N”
productos más vendidos.
N seria el parámetro que se le
entrega al procedimiento
51. FUNCIONES DEFINIDAS POR EL USUARIO:
Es una porción encapsulada de código que puede ser reutilizada por diferentes programas.
Puede tener cero, uno o más parámetros de entrada y puede retornar un valor escalar o una tabla.
F. Deterministicas
Ejm.
COS()
F. No Deterministicas
Ejm. VEREMOS:
GETDATE()
•FUNCIÓN CON VALORES ESCALARES
•FUNCIÓN DE TABLA EVALUADA MULTISENTENCIA
•FUNCIÓN TABLA EVALUADA EN LÍNEA
52. FUNCIÓN CON VALORES ESCALARES
Retorna un resultado con
un valor escalar.
Similar a las funciones
estandar del sistema.
53. FUNCIÓN DE TABLA EVALUADA MULTISENTENCIA
Retorna una tabla
construida a base de
una o mas sentencias.
Puede ser referenciado
en la clausula FROM se
una sentencia SELECT.
54. FUNCIÓN TABLA EVALUADA EN LÍNEA
Retorna una tabla que es resultado de la
ejecución de una sola sentencia SELECT.
55. TRIGGER:
Se ejecuta automaticamente sobre objetos de una base de datos cuando una aplicacion produce algún
cambio en los mismos
EXISTEN 2 TIPOS:
Lenguaje de Manipulación de Datos (DML): Se ejecutan con las intrucciones :
• INSERT
• UPDATE o
• DELETE.
Lenguaje de Definición de Datos (DDL): se ejecutan cuando se crean, alteran o borran objetos
de la base de datos.
56. TRIGGER DML
Se ejecuta automáticamente cuando se produce una modificación en el contenido de la tabla.
TIPOS DE TRIGGER DML
Trigger AFTER
Se ejecutan después que una acción INSERT, UPDATE o DELETE es ejecutada.
Solo se puede especificar para tablas.
•INSERT AFTER
•DELETE AFTER
•UPDATE_AFTER
Trigger INSTEAD OF
Se pueden definir sobre vistas que tienen una o más tablas subyacentes.
SINTAXIS:
CREATE TRIGGER <nombre del Trigger>
ON <nombre de la tabla>
AFTER <INSERT,DELETE,UPDATE>
AS
<sentencias SQL>
57. TRIGGER DML: EJEMPLO
INSERT AFTER:
Re-calcula y actualiza el monto de una factura cada vez
que se inserta un detalle para dicha factura.
CREATE TRIGGER tg_insert_DetalleFactura
ON detalle AFTER INSERT
AS
DECLARE @fact int
DECLARE @suma money
SET @fact =(SELECT id_factura FROM inserted)
SET @suma =(SELECT SUM(precio_unitario*cantidad) FROM detalle WHERE detalle.id_factura= @fact)
UPDATE factura
SET monto_factura=@suma WHERE id_factura= @fact
58. TRIGGER DML: EJEMPLO
INSERT AFTER:
Re-calcula y actualiza el monto de una factura cada vez
que se inserta un detalle para dicha factura.
PARA PROBARLO:
INSERT INTO factura VALUES (3, ‟22/01/2010‟, „Pepito Pérez‟ , NULL)
INSERT INTO detalle VALUES (3, 101, 14 ,100)
INSERT INTO detalle VALUES (3, 102, 18 ,100)
INSERT INTO detalle VALUES (3, 102, 20 ,100)
INSERT INTO detalle VALUES (3, 103, 25 ,100)
INSTEAD OF:
59. TRIGGER DDL
Se ejecuta en respuesta a la ejecución de una sentencia DDL.
SE USA CUANDO:
• Se desea registrar o impedir cambios en el esquema de la base de datos.
• El propósito principal es auditar acciones realizadas en una base de datos.
EJEMPLO:
CREATE TRIGGER tg_seguridad
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT 'DEBE DESHABILITAR EL DESENCADENANTE tg_seguridad PARA ELIMINAR O MODIFICAR UNA TABLA'
ROLLBACK
DROP TABLE detalle
60. UNIVERSIDAD NACIONAL JOSÉ FAUSTINO SANCHEZ CARRIÓN
FACULTAR DE INGENIERÍA
E.A.P. DE INGENIERÍA DE SISTEMAS
GRACIAS POR SU ATENCIÓN