103
Microsoft ® SQL Server 2008 Administración y programación de BD. SQL Server Por Yamil Lambert

Administración y programación en sql server

Embed Size (px)

DESCRIPTION

Dispositivas sobre la administracion de SQL Server

Citation preview

Page 1: Administración y programación en sql server

Microsoft® SQL Server 2008

Administración y programación de BD. SQL Server

Por Yamil Lambert

Page 2: Administración y programación en sql server

Conceptos de BASE de DATOS

Es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente.

Un Conjunto de Tablas Relacionadas entre si. Una biblioteca puede considerarse una base de

datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta.

Page 3: Administración y programación en sql server

Tipos de Base de Datos

Variabilidad de los Datos Estáticas Dinámicas

Contenido Bibliográficas Texto Completo Directorio Información Biológica.

Page 4: Administración y programación en sql server

Modelos de Base de Datos

Jerárquicas.- almacenan su información en una estructura jerárquica. Los datos se organizan en forma similar a un árbol (visto al revés).

Red.- modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres

Relacional.- modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Su idea fundamental es el uso de "relaciones" entre las tablas.

Multidimensionales, Orientadas a Objetos.

Page 5: Administración y programación en sql server

Las tablas

Tipo de modelado de datos. Su estructura general se asemeja a la

vista general de un programa de Hoja de cálculo, Filas y Columnas.

Las tablas se componen de dos estructuras: Campo: Corresponde al nombre de la

columna. Debe ser único y además de tener un tipo de dato asociado.

Registro: Corresponde a cada fila que compone la tabla.

Page 6: Administración y programación en sql server

Clave Primaria y Clave Foránea

PK.- Campo o a una combinación de campos que identifica de forma única a cada fila de una tabla.

Ejemplos de claves primarias son CEDULA, ISBN , etc.

FK.- Es una limitación referencial entre dos tablas.

La FK identifica una columna o grupo de columnas en una tabla (referendo) que se refiere a una columna o grupo de columnas en otra tabla (referenciada).

Page 7: Administración y programación en sql server

Modelo Entidad Relación (MER)

Es una herramienta para el modelado de datos de un sistema de información.

Expresan entidades relevantes para un sistema de información, sus interrelaciones y propiedades.

Tablas=Entidades (Fila(s)).

Page 8: Administración y programación en sql server

MER- Correspondencia de cardinalidades

Uno a uno: Una entidad de A se relaciona únicamente con una entidad en B y viceversa.

Uno a varios: Una entidad en A se relaciona con cero o muchas entidades en B. Pero una entidad en B se relaciona con una única entidad en A.

Varios a uno: Una entidad en A se relaciona exclusivamente con una entidad en B. Pero una entidad en B se puede relacionar con 0 o muchas entidades en A.

Varios a varios: Una entidad en A se puede relacionar con 0 o muchas entidades en B y viceversa.

Page 9: Administración y programación en sql server

Integridad de Datos

Integridad de la entidad Integridad Referencial Integridad de Dominio

Físico Lógico

Integridad definida por el Usuario

Page 10: Administración y programación en sql server

Lenguaje SQL

Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales

Instrucción de Definición y de Manipilación de Datos SQL86.- Primera publicación hecha por ANSI.

Confirmada por ISO en 1987. SQL92.- Nuevo estándar ampliado y revisado del SQL. T-SQL, PL-SQL.- Versiones de mejoradas de los

Motores de Base de Datos.

Page 11: Administración y programación en sql server

Taller #1

Mostrar el Video Internet – Búsquedas Considerar el Problema de Google desde

la Perspectiva de su Base de Datos e Indexación.

Plantear por Grupos una Pregunta o Comentario

Page 12: Administración y programación en sql server

Sistemas de gestión de base de datos:

DataBase Management System. Tipo de software muy específico, dedicado

a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan.

Manejar clara, sencilla y ordenada un conjunto de datos, información relevante para una organización.

Un RDBMS es un Sistema Administrador de Bases de Datos Relacionales.

Page 13: Administración y programación en sql server

¿ Qué implica esta gestión de datos?

Implica la definición de las estructuras para el almacenamiento de información.

Proveer mecanismos para la gestión de la información.

Mantener la seguridad de la información almacenada.

Page 14: Administración y programación en sql server

Rol del Administrador B.D.

Controlar la base de datos empresarial, Aconsejar y asesorar a los

desarrolladores, usuarios y Directiva de la empresa.

Una empresa cuenta con una o varias personas encargadas de controlar el sistema de base de datos (DBA)

La Programación, control de sistema operativos, hardware, comunicación, redes, etc.

Page 15: Administración y programación en sql server

Funciones del DBA Diseñar y controlar la estructura de la base de

datos. Supervisar la actividad sobre los datos. Controlar la eficacia de la base de datos. Preocuparse de la seguridad de los datos. Supervisar el estado del sistema. Problemas: Información que obtienen los

usuarios y la velocidad. Obtener y estudiar las estadísticas del

funcionamiento y el rendimiento. Supervisar la actividad que realizan los usuarios

sobre los datos. Preocuparse de las nuevas actualizaciones. Estudiar el momento apropiado de actualizar el

sistema o migraciones.

Page 16: Administración y programación en sql server

Microsoft SQL-Server Sistema de gestión de bases de datos

relacionales basado en el lenguaje Transact-SQL.

Constituye la alternativa de Microsoft como Motor.

Soporte de transacciones y procedimientos almacenados.

Escalabilidad, estabilidad y seguridad. Integración de datos con aplicaciones, incluidas

plataformas como .NET e Internet Entorno gráfico de administración, que permite

el uso de comandos DDL y DML. Permite trabajar en modo cliente-servidor. Administrar información de otros servidores de

datos.

Page 17: Administración y programación en sql server

SQL Server 2008 es una plataforma global de base de datos que ofrece administración de datos empresariales con herramientas integradas de inteligencia empresarial (BI).

El motor de la base de datos SQL Server 2008 ofrece almacenamiento más seguro y confiable tanto para datos relacionales como estructurados, lo que le permite crear y administrar aplicaciones de datos altamente disponibles y con mayor rendimiento para utilizar en su negocio.

Microsoft SQL-Server 2008

Page 18: Administración y programación en sql server

SQL Server 2008 es una parte importante de Windows Server System y se integra con la plataforma Microsoft Windows, incluidos Microsoft Office System y Visual Studio.

Plataforma de SQL Server 2008

Page 19: Administración y programación en sql server

Versiones de SQL-Server 2008 (9.0)

SQL Server 2008 Enterprise Edition.- Diseñado para soportar entornos de grandes transacciones empresariales (OTLP), gran complejidad de analisis de datos, datawarehouse, y Web Sites muy activas.

SQL Server 2008 Standard Edition.- Diseñado para comercio electronico, datawarehouse y soluciones de lineas de negocio de tamaño pequeño-mediano.

SQL Server 2008 WorkGroup Edition.- Diseñado para pequeñas organizaciones que necesitan una base de datos que no tenga limite de usuarios, también se puede usar para pequeños web servers.

SQL Server 2008 Developer Edition.- Incluye las mismas funcionalidades de Enterprise Edition, pero esta licenciado para servidores de desarrollo y test, no para servidores productivos.

SQL Server 2008 Express Edition.- gratuito, facil de usar y administrar base de datos, puede ser usado como cliente de base de datos en vez de servidor de base de datos.

Page 20: Administración y programación en sql server

Licencias del SQL-Server Microsoft SQL Server 2008 está disponible en

base a tres modelos de licencias: Licencia de servidor más una licencia de

acceso de cliente (CAL) por dispositivo. Requiere una licencia para el equipo que ejecuta el producto servidor de Microsoft, y una CAL para cada dispositivo cliente.

Licencia de servidor más una licencia de acceso de cliente (CAL) por usuario. Requiere una licencia para el equipo que ejecuta el producto servidor de Microsoft, y una CAL para cada usuario.

Licencia por procesador. Requiere una única licencia por cada CPU en el entorno de sistema operativo que ejecuta SQL Server. Esta licencia incluye un acceso ilimitado de dispositivos cliente.

Page 21: Administración y programación en sql server

Instalación del SQL-Server

Requisitos de Hardware Pentium III o superior, 600Mhz; Recomendado 1Ghz

o mas. Memoria 512MB; recomendado 1Gb o mas Disco con espacio de 2.1 GB (Todas las

aplicaciones) Requisitos de Software.

Windows 2000 Profesional con SP4 (No Enterprise) Windows Server 2000 SP4 , 2003 SP1, 2008

(Todas) Windows XP con SP2 (No Enterprise) Windows Vista (No Enterprise)http://msdn.microsoft.com/es-es/library/ms143506(SQL.90).aspx

Page 22: Administración y programación en sql server

Taller #2 – Crear el MER

Se Requiere controlar la entrada y salida de los docentes en sus materias asignadas.

Se debe Informar al docente según su planificación la Materia, Paralelo, Lugar, Hora Entrada y Salida.

Informar el Periodo Actual que se esta controlando.

Page 23: Administración y programación en sql server

Taller de Instalación de SQL-Server

1 2

3 4

Page 24: Administración y programación en sql server

5 6

7 8

Page 25: Administración y programación en sql server

9 10

11 12

Page 26: Administración y programación en sql server

13 14

Taller de Instalación de SQL-Server - Finalización

Page 27: Administración y programación en sql server

Conectarse al Servidor SQL-SERVER

Tipo de Servidor Nombre del Servidor (IP) Autenticación

Page 28: Administración y programación en sql server

SQL Server Management Studio

Explorador de Objetos Bases de Datos Seguridad Objetos de Servidor Replica Administración Servicios de Notificación

Ficha Resumen

Page 29: Administración y programación en sql server

OLTP .- Procesamiento de Transacciones En Línea Ejemplo: Las operaciones en el cajero

automático de un banco son operaciones del tipo OLTP, para cada solicitud: consulta de saldo, retiro de efectivo, etc. el sistema responde inmediatamente.

El procesamiento de los pagos de la nómina de una empresa no es OLTP, por que el resultado de este proceso no se obtiene de forma inmediata para cada empleado si no por el contrario, la respuesta a este procesamiento es el conjunto completo de todos los cálculos para el pago de la nomina.

Page 30: Administración y programación en sql server

Bases de SQLServer

Page 31: Administración y programación en sql server

Bases de Datos del Sistema y de UsuarioDe Sistema: Master.- Registra toda la información del

sistema para una instancia de SQL Server. Model.- Se utiliza como plantilla para todas las

bases de datos creadas. Msdb.- La utiliza el Agente SQL Server para

programar alertas y trabajos. Tempdb.- Contiene objetos temporales o

conjuntos de resultados intermedios. Resource.- Solo Lectura, Aparece de forma lógica en el esquema.

mssqlsystemresource.mdf

De Usuario: Northwind, AdventureWorks, Cualquier Base

creada por el DBA.

Page 32: Administración y programación en sql server

Archivos de la Base de Datos

Principal.- El archivo de datos principal (.MDF)

Secundario.- Los archivos de datos secundarios son opcionales (.NDF)

Registro de Transacciones.- contienen la información de registro que se utiliza para recuperar la base de datos. (.LDF)

Page 33: Administración y programación en sql server

Creación de una Base de Datos

Nombre Lógico. Tamaño Físico Inicial. Crecimiento de Archivos. Archivos de la Base (Ruta de acceso). Opciones - Nivel de Compatibilidad

Page 34: Administración y programación en sql server

CREATE DATABASECREATE DATABASE NOMBREBASE[ON { [PRIMARY][, FILEGROUP NombreGrupo](NAME = ArchivoLogico, FILENAME = ‘ArchivoFisico’ [, SIZE=Tamaño] [, MAXSIZE={TamañoMax | UNLIMITED}] [, FILEGROWTH=IncrementoCrecimiento] )} [,..n] ][LOG ON{ ( NAME=ArchivoLogico FILENAME=ArchivoFisico [, SIZE=Tamaño] [, MAXSIZE={TamañoMax | UNLIMITED}] [, FILEGROWTH=IncrementoCrecimiento])} [,..n] ][COLLATE NombreIntercalación]

Page 35: Administración y programación en sql server

Ejemplo – CREATE DATABASE

Crear una base denominada “Ejemplo” con un archivo de datos principal de 10MB y un archivo de registro de 3MB, ubique estos archivos en una carpeta “EjemploDB” (crear en la unidad C:)

Tamaño máximo de 15MB al principal y 5MB al de transacciones.

Crecimiento 20% para el Principal y de 1MB para el de transacciones

Page 36: Administración y programación en sql server

Adicionando y Modificando ArchivosALTER DATABASE NombreBaseADD FILE(NAME = ArchivoLogico, FILENAME = ‘ArchivoFisico’ [, SIZE=Tamaño] [, MAXSIZE={TamañoMax | UNLIMITED}] [, FILEGROWTH=IncrementoCrecimiento])

Agregar un archivo de datos a la Base ejemplo llamado “EjemploData01” de 20MB, máximo 25MB y crecimiento 1MB

Page 37: Administración y programación en sql server

Grupos de Archivos

Es una estructura Lógica, que permite agrupar y gestionar los archivos de datos como una unidad lógica.

SINTAXIS:

ALTER DATABASE NombreBase

ADD FILEGROUP NombredeGrupo

Crear un Grupo llamado “Datos” y añadir un nuevo archivo de datos llamado “Ejemplo02” a la base “Ejemplo”, (10MB, Máximo 15MB y crecimiento 1MB)

Page 38: Administración y programación en sql server

Taller para los estudiantes Su servidor posee cuatro discos duros C,D,E y

F, en el cual el disco C esta almacenado únicamente el S.O. y el Software SQLServer,

Crear una base llamada “Proyecto”, que; en el disco D esta el archivo principal, en el E los archivos secundarios en la cual se van a crear 2 grupos “ProyectoDatos” para los archivos secundario y “ProyectoHistoria” para datos históricos.

Se manejaran 3 archivos secundario, 2 de datos y una de Historia en la unidad E.

En el F el archivo de transacciones. Se deben almacenar en una carpeta llamada

ProyectosData en los respectivos disco.

Page 39: Administración y programación en sql server

Esquemas de la B.D.

Es un espacio de nombres para objetos de la base de datos (tablas, vistas, Procedimientos almacenados).

Define un limite dentro del cual todos los nombres son únicos.

Su Formato: Servidor.basedatos.esquema.objeto. Versión Corta equema.objeto.

Analizar los esquemas de la base AdventureWorks – Person, Sales,dbo

Page 40: Administración y programación en sql server

Creación de Esquemas

Todas las bases contienen un esquema predeterminado llamado dbo.Dbo. Es asignado para todos los usuario que no tienen ningún esquema definido explícitamente.

Use NombreBaseDatosCREATE SCHEMA NombreEsquema

Crear un esquema llamado Persona, y agregar la tabla dirección al mismo.

Page 41: Administración y programación en sql server

Instantánea de Base de Datos

Es una vista estática de solo lectura de una BD en un punto especifico en el tiempo que no cambia después de la creación de la misma.

La base de datos a partir de la cual se crea la instantánea se llama BD origen.

Útil para pruebas, desarrollo o de informes, como puntos de restauración rápido en caso de daño. PERO No son sustitutos a las copias de seguridad, porque no contiene todos los registros de la base.

Soportado solo en Enterprise Edition.

Page 42: Administración y programación en sql server

Creación de una InstantáneaTallerUtilice la base AdventureWorks

CREATE DATABASE AdventureWorks_Snapshot1 ON

(NAME=“AdventureWorksData”,

FILENAME=“AW.ss

) AS SNAPSHOT OF AdventureWorks

GoProbar con una consulta a la base original y a la instantánea; luego actualice a la original y compruebe los datos consultándolos.

Page 43: Administración y programación en sql server

Copias de Seguridad y Restauración El componente de copias de seguridad y

restauración de SQL Server ofrece una protección muy importante para los datos críticos almacenados en las bases de datos.

Casos Comunes: Errores de medios.

Errores de usuario, por ejemplo, quitar una tabla por error.

Errores de hardware, por ejemplo, una unidad de disco dañada o la pérdida permanente de un servidor.

Desastres naturales.

Page 44: Administración y programación en sql server

Ámbito Copias de seguridad de datosEl ámbito de una copia de seguridad de datos puede ser la base de datos completa, parcial o un conjunto de archivos o grupos de archivos. Una copia de seguridad completa incluye todos los datos de una base de datos determinada o un conjunto de grupos de archivos o archivos.Una copia de seguridad diferencial se basa en la última copia de seguridad completa de los datos. Una copia de seguridad diferencial incluye sólo los datos que han cambiado desde la última base diferencial.

Realizar una copia de seguridad y luego restaurarla en el mismo servidor. (Borre la base original)

Page 45: Administración y programación en sql server

Automatización backup Planes de Mantenimiento

Crean un flujo de trabajo de las tareas necesarias para asegurarse de que la base de datos está optimizada, se realizan copias de seguridad con regularidad y no tiene incoherencias. Crear sus propias secuencias de comandos Transact-SQL personalizadas. Agente SQL Server del Explorador de objetos sólo aparece para los miembros de la función fija de servidor sysadmin, este debe estar en ejecución.Crear un Plan de Mantenimiento para realizar periódicamente una copia de seguridad de la base datos AdventureWorks

Page 46: Administración y programación en sql server

Seguridad – Inicios de Sesión

Un inicio de sesión define el contexto de seguridad en cada proceso que ejecuta.

Los usuarios de Windows necesitan un inicio de sesión de SQL Server para conectarse.

2 tipos (Modo Mixto) Autentificación de Windows Autenticación de Sql Server

Funciones del Servidor Asignación de Usuarios Función Sobre la base de datos

Page 47: Administración y programación en sql server

Usuario de la Base de Datos

Esquemas Utilizado Miembros de Función Elementos que podemos Proteger

Tablas, Vistas y Procedimientos Almacenados Permisos: Conceder, Denegar, WITH

GRANT. Hacer una Prueba con ODBC. Explicar la Cadena de Conexión de una

Aplicación.

Page 48: Administración y programación en sql server

Seguridad de una Base de Datos La información es uno de los activos más importantes de

las entidades. Hace unos años era más fácil, con arquitecturas

centralizadas y terminales no inteligentes Hoy en día los entornos son realmente complejos, con

diversidad de plataformas y proliferación de redes. La disponibilidad: se cumple si las personas autorizadas

pueden acceder a tiempo a la información. En administración de seguridad pueden existir

coordinadores en las diferentes áreas funcionales. Los hacker, que intenta acceder a los sistemas más

para demostrar de que es capaz de superar las barreras de protección.

http://geeks.ms/blogs/ozonicco/pages/principios-utilizados-en-la-seguridad-de-base-de-datos-y-de-redes.aspx

Page 49: Administración y programación en sql server

Objetos de la Base Diagramas Tablas (Sistema y Usuario) Vistas (Sistema y Usuario) Sinónimos Programación

Procedimientos Funciones Desencadenadores Tipos Reglas Valores Predeterminados

Seguridad Usuario / Funciones y Esquema

Page 50: Administración y programación en sql server

Tipos de Datos Limitar el almacenamiento en una columna;

rangos de valores. Correcta selección del tipo dato sea carácter,

enteros, binarios, fechas etc. Objetos que tienen tipos de datos

Columnas en Tablas y Vistas Parámetros en Procedimientos Almacenados Variables

Los Cuatro atributos de un Objeto La clase o tipo de datos Longitud o su tamaño Precisión (Solo numéricos) smallint, 5 dígitos,

precisión de 5. Escala (Solo numéricos) Números de dígitos de la

parte decimal. Int =Escala 0; Money=Escala max 4.

Page 51: Administración y programación en sql server

Tipos de Datos - 7 Categorías Numero Exacto

Bigint Int Smallint Decimal(p,s) Numeric(p,s) Bit

Numero Aproximado Float Real

Monetario Money Smallmoney

Fecha y Tiempo DateTime

Carácter Char() Tamaño Fijo Varchar() Tamaño Variable Text (2GB)

Binario Binary(n) Image

Propósito General Timestamp XML

Page 52: Administración y programación en sql server

Tipos de Datos Definidos por Usuario

Crear nuestros propios tipos de datos Tipo de datos personalizado. Para una base de datos concreta. Nombre Único.

CREATE TYPE [ schema_name. ] type_name { FROM base_type [ ( precisión [ , scale ] ) ] [ NULL | NOT NULL ] | EXTERNAL NAME assembly_name [ .class_name ] | AS TABLE ( { <column_definition> | <computed_column_definition> } [ <table_constraint> ] [ ,...n ] ) } [ ; ]

Crear el tipo “CodigoPostal” como varchar(5) y un Texto de 100; usando TSQL y Management Studio

Page 53: Administración y programación en sql server

Creación de TABLAS

Colección de Columnas / Campos Cada Fila representa una registro.

CREATE TABLE     [ database_name . [ schema_name ] . | schema_name . ] table_name

       ( { <column_definition> | <computed_column_definition>                 | <column_set_definition> }      [ <table_constraint> ] [ ,...n ] )

[ ON { partition_scheme_name ( partition_column_name ) | filegroup | "default" } ]

[ { TEXTIMAGE_ON { filegroup | "default" } ] [ FILESTREAM_ON { partition_scheme_name | filegroup | "default" } ] [ WITH ( <table_option> [ ,...n ] ) ] [ ; ]

Page 54: Administración y programación en sql server

Taller Creación de Tablas Usando TSQL Crear

Persona (Codigo,Nombre,Apellido,Genero) Empleado

(Codigo,Nombre,Apellido,Direccion,Genero,Sueldo,FechaNacimiento,Foto,Estado)

Estudiante (temporal) Verificar la creación del Objeto sys.object

y sp_help Usando Management Studio Crear La

tabla Producto (Código,Descripción,Precio,Cantidad,Fecha,Estado).

Page 55: Administración y programación en sql server

Tipos de Columnas

Columnas Calculadas.- Columna Virtual que no se almacena físicamente en la tabla

Columnas de Identidad (Identity) .- Valores secuenciales generados por el sistema que identifican cada fila.

Columnas Uniqueidentifier .- se utiliza con la función newid(), Numero identificador unico como cadena bynaria (GUID) Globally Unique Identifier.

Hacer un ejemplo de cada una usando TSQL.

Page 56: Administración y programación en sql server

Modificación de Tablas

Modificar la estructura de una tabla con:ALTER TABLE.

Podemos: Añadir o eliminar Campos Cambiar el tipo de dato a los campos Cambiar el Nombre a los campos Modificar Longitud o tamaño (Numérico o Texto) Agregar o modificar sus propiedades.

ALTER TABLE table_name { [ALTER COLUMN column_name]    | ADD    { <column_definition>   

columna tipoDeDato { [NULL - NOT NULL] | DROP COLUMN column_name } [ ,...n ]

Hacer un ejemplo de algunos escenarios citados.

Page 57: Administración y programación en sql server

Integridad de Datos

Dos cosas importantes en el diseño de las tablas:

Identificación de valores validos para una columna.

Determinar como forzar la integridad de los datos en la columna.

Categorías: Entidad (Filas) Dominio (Físico y Lógico) (Columnas) Referencial (Entre Tablas)

Page 58: Administración y programación en sql server

Integridad de Datos

Entidad.- Todas la filas de una tabla tengan un identificador único; conocido como clave principal o PK.

Dominio.- Conjunto de valores de datos que son validos para una columna determinada además de valores nulos o no.

Referencial.- Mantener las relaciones entre las claves principales y las claves externas. Agregar o Cambiar Filas (Ninguna fila) Cambiar Valores (Filas Huérfanas) Eliminar Filas (Existen Filas Relacionadas)

Page 59: Administración y programación en sql server

Restricciones o Constraints Métodos estándar ANSI para exigir la integridad de

los datos. Usados en Integridad de Datos (dominio, entidad y

referencial).Tipo Constraint Descripción

Dominio DEFAULT Valor Predeterminado, cuando un “insert” no proporciona ningún valor.-

CHECK Datos aceptados en una columna (No reglas).

FOREIGN KEY Valores aceptables para la actualización; columna de otra tabla.

Entidad PRIMERY KEY Identifica cada fila de manera única.

UNIQUE Impide la duplicación de claves alternativas no principales

Referencial FOREIGN KEY Columna (s) que coinciden con la PK de la misma tabla o otra conocida como FK.

CHECK Datos aceptados en una columna basándose en otras de la misma tabla.

Page 60: Administración y programación en sql server

Constraint DEFAULT – CHECK Y PRIMARY KEY Valores Predeterminados Validaciones Clave PrincipalCREATE TABLE Nombre (

{<Columnas> | <RestriccionTabla>} [,..n])<definicionColumna> ::={NombreColumna Tipo}[ {DEFAULT Expresión} ][ <restriccionColumna> [..n] ]<restriccionColumna>::=[ CONSTRAINT NombreRestriccion{ [ NULL | NOT NULL ]

| [ PRIMARY KEY | UNIQUE]| [ REFERENCES TablaRef [(ColumnaRef) ] ]}

ALTER TABLE NombreTabla[ADD CONSTRAINT NombreRestriccion] [DROP CONSTRINT Nombre Restriccion]DEFAULT <ValorPredeterminado> CHECK <Expresión>PRIMARY KEY [CLUSTERED | NONCLUSTERED] {(Columna [,…n])} FOR NombreColumna

Hacer Taller para cada una.

Page 61: Administración y programación en sql server

Constraint UNIQUE Dos Filas de una columna no pueden tener el

mismo valor. Ya se tiene Clave Principal PK. Otros Identificadores sean Únicos como:

Cedula. Matricula de Carro. Permiso de Conducir. Numero de Cotización.

Especificar CLUSTER o NONCLUSTERALTER TABLE NombreTabla

[ADD CONSTRAINT NombreRestricción] - DROP CONSTRINT NombreRestricción]UNIQUE CLUSTER - NONCLUSTERED (columna[,..n])

Crear una tabla con un UNIQUE en sus columnas, luego use ALTER TABLE.

Page 62: Administración y programación en sql server

Constraint FOREIGN KEY

Es una clave o combinación de columnas que se utiliza para establecer y exigir un vinculo entre los datos de 2 tablas.

Esta restricción define una referencia a una columna con una restricción PRIMARY KEY o UNIQUE de la misma tabla o de otra.

ALTER TABLE NombreTabla[ADD CONSTRAINT NombreRestriccion] - DROP CONSTRINT Nombre Restriccion]

FOREIGN KEY (columna[,..n])

REFERENCES TablaOrigen (columna[,..n])

Hacer Taller.

Page 63: Administración y programación en sql server

Actualización y eliminaciones Cascada NO ACTION.-Se produce un error y se

deshace la instrucción (Predeterminado) CASCADE.-Los valores de la clave

Externa se actualizan o Eliminan. SET NULL.- Los Valores de la clave

externa se establecen a NULL SET DEFAULT.- Los Valores de la clave

externa se establecen a sus valores predeterminados.

Hacer Prueba con un taller.

Page 64: Administración y programación en sql server

Diagramas de Base Datos

Son representaciones visuales de la BD Representan las relaciones entre tablas

en función de sus claves. Permiten Modelar y crear un Modelo

Entidad Relación o MER. En SQL-Server se puede modificar los

objetos, crear tablas y sus relaciones FK. Se pueden tener varios Diagramas mas

pequeños de un MER grande.Taller – Crear un Diagrama de la Tablas de la base.

Page 65: Administración y programación en sql server

MER – Reservas de Libros

Page 66: Administración y programación en sql server

Sentencias Transact-SQLProgramación de Base de Datos

Page 67: Administración y programación en sql server

SQL & T-SQL

SQL.- es un lenguaje de consulta para los sistemas de Bases de Datos relacionales, pero no es un lenguaje Programación.

SQL, no variables, estructuras de control, de flujo, bucles etc.

T-SQL admite el nivel básico de implementación de SQL-92, estándar ANSI.

TSQL.- podemos programar las unidades de programa de la BD. Procedimientos Almacenados Funciones Triggers Scripts, Etc.

Page 68: Administración y programación en sql server

T-SQL - Comentarios

TSQL.- no es CASE-SENSITIVE, es decir no diferencia mayúsculas de minúsculas.

Un comentario es una aclaración que el programador incluye en el código, son soportados 2 estilos: -- Comentario de una sola línea. /* */ Comentario de varias líneas.

Page 69: Administración y programación en sql server

Scripts y Lotes

Script.- es un conjunto de sentencias de TSQL en formato texto plano que se ejecuta en un servidor de SQL-Server.

GO .- comando para iniciar el envío del lote actual de instrucciones TSQL.

En ocasiones en conveniente separar las sentencias en varios lotes.

Si desea ejecutar cierto código TSQL, márquelo y ejecute con la tecla F5.

Hacer un pequeño taller.

Page 70: Administración y programación en sql server

Identificadores Tenemos 2 tipos: Identificadores Estándar

De 1 a 128 caracteres Máximo. 1er carácter debe ser alfabético. Después del 1er carácter pueden incluir letras,

números o símbolos. Si empieza con @ indica una variable o parámetro

local. Si empieza con # indica una tabla o procedimiento

temporal Si empieza ## indica un objeto global temporal

Identificadores Delimitados Si un identificar no cumple alguna de las reglas de

formato siempre debe estar delimitado con [ ]

Page 71: Administración y programación en sql server

Tipos de datos en TSQL

El tipo de dato define el formato de almacenamiento, espacio en disco-memoria que va ocupar un campo o variable, restricciones y rango de valores validos.

Los tipos de datos de los columnas en las tablas son los mismos para las variables o parámetros.

Realizar un taller.

Page 72: Administración y programación en sql server

Variables en TSQL Una variable es un valor identificado por un

nombre (identificador) sobre el que podemos realizar modificaciones.

Los identificadores de una variable debe empezar con el carácter @.

Para declarar variables debemos utilizar la palabra clave “DECLARE”, seguido del identificador y tipo de dato.

La asignación de variables con: Instrucción SET Sentencia SELECT

DECLARE {@variableLocal tipoDatos} [,…n]SET @variableLocal = expresiónHacer taller.

Page 73: Administración y programación en sql server

Operadores TSQL

Aritméticos: +,-,*,/,**,%

Comparación: =, <>, !=, <,>,<=,>=, !>,!<

Lógicos: AND, NOT, OR

Otros: ALL, ANY, BETWEEN, LIKE, NOT ,

SOME

Page 74: Administración y programación en sql server

Estructura Condicional IF Permite evaluar una expresión “booleana” y ejecutar

operaciones en el bloque formado por BEGIN END. Sintaxis:IF (<expresión booleana>) BEGIN

…{ sentencias SQL o bloques de sentencias}…

ENDELSE IF BEGIN

…{ sentencias SQL o bloques de sentencias}…

ENDELSEBEGIN

…{ sentencias SQL o bloques de sentencias}…

END -- Realizar Taller.

Page 75: Administración y programación en sql server

Estructura condicional CASE

Permite evaluar una expresión y devolver un valor u otro.

Sintaxis:

CASE <expresión>WHEN <valorExpresión> THEN <valordevuelto>WHEN <valorExpresión> THEN <valordevuelto>ELSE <elseValorDevuelto> -- Valor por defecto

ENDRealizar Taller.

Page 76: Administración y programación en sql server

Estructura de control WHILE

El bucle “While” se repita mientras expresión se evalúe como verdadero.

Es el único tipo de bucle que dispone TSQL.Sintaxis:WHILE Expresión_Booleana

{ sentencias SQL o bloque Sentencias}[BREAK]{ sentencias SQL o bloque Sentencias}[CONTINUE]{ sentencias SQL o bloque Sentencias}

Realizar Taller.

Page 77: Administración y programación en sql server

Estructura GOTO

La sentencia GOTO nos permite desviar el flujo de ejecución hacia una etiqueta definida “NomEtiqueta:”.

Se usaba bastante con la variable de sistema @@ERROR para el control de errores.

Actualmente se desaconseja su uso, y se recomienda TRY-CATCH para la gestión de errores.

Hacer ejemplo.

Page 78: Administración y programación en sql server

Control de Errores – try catch

Si se produce un error en el bloque TRY, el control se transfiere a un bloque CATCH.

BEGIN TRY{ sentencias SQL o bloque Sentencias}END TRYBEGIN CATCH{ sentencias SQL o bloque Sentencias}END CATCHHacer ejemplo.

Page 79: Administración y programación en sql server

Funciones especiales de Error

ERROR_NUMBER().- Numero del Error. ERROR_SEVERITY().- Severidad del error. ERROR_STATE().- estado del error ERROR_PROCEDURE().- Nombre del

procedimiento almacenado que ha provocado el error.

ERROR_LINE().- Línea que se ha producido el error.

ERROR_MESSAGE().- Mensaje del error.Ver ejemplo

Page 80: Administración y programación en sql server

Generar un error con RAISERROR

Provocar voluntariamente un error. Cuando los datos incumplen una

regla de negocio. RAISERROR.- recibe 3 parámetros:

Mensaje.- Texto Severidad.- 0 al 25; solo podemos usar

0 al 18, para el resto debe ser miembro de la función o rol sysadmin.

Estado.- Valores entre 1 y 127.Ver ejemplo.

Page 81: Administración y programación en sql server

Consultar Datos – Sentencia SELECT Consultar datos almacenados en una

tabla.SELECT <nombre_campo / lista_selección>INTO <nombre_nueva_tabla>FROM <nombre_tabla>[WHERE <condición> [AND OR <condición>]][GROUP BY <nombre_campos>][HAVING <condición>[AND OR <condición>]][ORDER BY <nombre_campo> [ASC DESC]][COMPUTE / COMPUTE BY ]

Hacer Taller

Page 82: Administración y programación en sql server

Distinct, Top y Percent

Distinct.- Elimina las filas duplicadas de los resultados.

SELECT DISTINC <CAMPO> FROM <TABLA>

Top.- Limitar el numero de Filas Devueltas.

Percent.- se devuelve el porcentaje (especificado por expresión) de las filas del conjunto de datos.

TOP (Expresión) [ PERCENT ]

Page 83: Administración y programación en sql server

Alias de Tablas

La legibilidad de una instrucción SELECT se puede mejorar si se proporciona un alias para la tabla.

Conocida como Variable de intervalo o nombre de correlación.

Útil en “Join”, para identificar campos ambiguos.

2 formas:

NombreTabla as TablaAlias

NombreTabla TablaAlias

Page 84: Administración y programación en sql server

Intervalos(BETWEEN Y NOT BETWEEN) Es una búsqueda que devuelve todos

los valores entre dos especificados. Podemos tener intervalos inclusivos o

exclusivos (Operadores <, > ). Podemos hacer uso del operador

NOT.

WHERE <CAMPO> BETWEEN <VALOR> AND <VALOR>

Page 85: Administración y programación en sql server

Listas (IN, NOT IN)

La palabra clave IN permite seleccionar las filas que coincidan con alguno de los valores de una lista.

Los elementos de una lista deben estar separados por una coma e incluidos entre paréntesis.

WHERE <campo> IN (Lista)

Page 86: Administración y programación en sql server

Coincidencias de PatrónLIKE y NOT LIKE Busca valores de cadenas de caracteres

que coincidan con un patrón determinado.

Caracteres Comodín:

% .- Cualquier cadena de cero o mas caracteres.

_ .- Cualquier carácter

[ ] .- Cualquier carácter individual del intervalo [a-z] o [abcde]

[ ^ ] .- Cualquier carácter individual fuera del intervalo. [^a-z] o [^abcde]

Page 87: Administración y programación en sql server

ValoresNULL (IS NULL e IS NOT NULL) NULL .- NO es cero ni espacio en blanco. Ausencia de Valor. Puede ser considerado como perdida en

la integridad de datos.

WHERE <CAMPO> IS NULL IS – IS NOT NULL

Page 88: Administración y programación en sql server

Cláusula GROUP BY & HAVING Agrupa un conjunto de filas seleccionado

en un conjunto de filas de resumen.. Devuelve una fila por cada grupo. Puede usar Funciones de agregación

como SUM(), AVG(),COUNT(), MAX(),MIN() por grupo.

HAVING.- especifica una condición de búsqueda para un grupo o agregado. Solo se puede usar con la cláusula GROUP

BY

GROUP BY <campos>

Page 89: Administración y programación en sql server

Subconsultas con Tablas derivadas Una tabla derivada se crea al utilizar una

subconsulta en al cláusula FROM. Una tabla derivada es funcionalmente

equivalente a la consulta entera.SELECT * FROM <SUBCONSULTA>

Ejemplo:SELECT tab.salesorderid, tab.cutomerid FROM

(SELECT salesorderid,customerid FROM salesorderheader) as TAB

Page 90: Administración y programación en sql server

Vistas Una vista es como una tabla virtual que almacena una

consulta (SELECT). Almacena una consulta como un objeto para utilizarse

posteriormente. Las tablas consultadas en una vista se llaman tablas

base. Las vistas permiten:

Ocultar información: permitiendo el acceso a algunos datos y manteniendo oculto el resto.

El usuario opera con los datos de una vista como si se tratara de una tabla.

CREATE VIEW <NombreVista>AS<sentencia SQL SELECT>

Page 91: Administración y programación en sql server

Subconsultas con Expresiones

Utilizar en expresiones de calculo. La subconsulta debe producir un valor escalar o

una lista de valores de una sola columna. Una lista de valores sustituye a una expresión

en una cláusula WHERE que contiene la palabra clave IN.

Ejemplo:SELECT Name, LisPrice,

(SELECT AVG(ListPrice) FROM Product) as Promedio , ListPrice - (SELECT AVG(ListPrice) FROM Product) as Diferencia

FROM Product WHERE ProducLine=’T’

Page 92: Administración y programación en sql server

Subconsulta Correlacionada

Usada en una expresión dinámica que cambia en cada fila de una consulta externa.

Esta dividen consultas complejas en dos o mas consultas simples relacionadas.

Ejemplo:SELECT SalesOrderID, CustomerIDFROM SalesOrderHeader as or1WHERE 3 < (SELECT OrderQty FROM

SalesOrderdetail as od WHERE or1.SalesOrderID=od.SalesOrderID and od.Product=770)

Page 93: Administración y programación en sql server

Operadores EXISTS y NOT EXISTS

Son consultas correlacionadas Con el propósito de restringir el conjunto

de resultados de una consulta externa a las filas que cumplen la subconsulta.

Estos devuelve TRUE o FALSE.Ejemplo:SELECT a.firsName, a.LasNameFROM Person as aWHERE EXISTS (SELECT * FROM

Employee as b WHERE a.BusinessEntityID=b.BusinessEntityID and a.LastName = ‘Jhonson’)

Page 94: Administración y programación en sql server

Combinación de Tablas

Recuperar datos de 2 o mas tablas según sus relaciones lógicas.

Especifica una clave externa (FK) y su clave asociada en la otra tabla (PK).

Se pueden usar operadores lógicos para comparación de la columnas (filtrar).

Sintaxis:FROM <1raTabla TIPOJOIN 2daTabla>[ON (CondiciónJOIN)]TIPOJOIN.- Interior, Exterior y CruzadaCondiciónJOIN.- Predicado a evaluar por cada par de

filas combinadas.

Page 95: Administración y programación en sql server

Tipos de Combinaciones

Internas: INNER JOIN o JOIN.- Combinan tablas

mediante la comparación de los valores que son comunes en ambas tablas (FK y PK).

Externas LEFT OUTER JOIN o LEFT JOIN RIGHT OUTER JOIN o RIGHT JOIN FULL OUTER JOIN o FULL JOINCruzadas CROSS JOINRealizar Taller.

Page 96: Administración y programación en sql server

Sentencia INSERT

Inserta Filas en una Tabla Mencionamos las columnas y los valores

de las misma:

INSERT [INTO] Tabla [(col_list)]DEFAULT VALUES VALUES (DEFAULT NULL expresión [,..n])

La opción DEFAULT VALUES inserta valores por defecto en todas las columnas.

Page 97: Administración y programación en sql server

Sentencia UPDATE

Modifica los valores existentes de una tabla.

Los registros se modifican de conformidad de la cláusula WHERE.

Si se omita la cláusula WHERE la modifica todas las filas de la tabla.

UPDATE tabla

SET Columna= expresión DEFAULT NULL [,..N]

[FROM] Tabla2 [,..n][WHERE Condición]

Page 98: Administración y programación en sql server

Sentencia DELETE &TRUNCATE TABLE Elimina los registros de una tabla. La sentencia opera sobre las filas y no en

las columnas.

DELETE FROM tabla[WHERE condición]

TRUNCATE TABLE Proporciona una mayor rapidez de

ejecución. No posee cláusula WHERE Borra todos los registros de una tabla.

Page 99: Administración y programación en sql server

XML en consultas

Lenguaje de marcado extensible XML. Requisitos de muchas aplicaciones

actuales. Transformar datos entre XML y

Relacional. Manejado en Consultas SELECT

Cláusula FOR XML, que se anexa a la instrucción SELECT.

Taller.

Page 100: Administración y programación en sql server

Índices Optimización en el tiempo de respuesta de

consultas. Un índice es un conjunto de paginas

asociado a una tabla o vista. Si una tabla no tiene índice utiliza en

método “table scan” para recuperar filas, menos eficiente.

Se modifican con ALTER INDEX y se elimina con DROP INDEX.

CREATE INDEX <NOMBRE>ON <Tabla>(campo [,..n])Taller

Page 101: Administración y programación en sql server

Funciones Definidas por el Usuario Programación Modular Ejecución mas rápida. Reducir el tráfico de RED.Tipos de Funciones: Escalares Valores de Tabla en Línea Valores de Tabla con múltiples SentenciasCREATE FUNCTION <NOMBRE>(Parámetros)

RETURNS <tipo de dato>ASBEGIN

RETURN <expresión>ENG -- taller

Page 102: Administración y programación en sql server

Desencadenadores - TRIGGER

Útiles para implementar Reglas empresariales e Integridad de Datos.

Las instrucciones INSERT, UPDATE y DELETE hacen que se llame a un desencadenador.

Capacidad de consultar otra tabla e incluir instrucciones complejas (lógica).

CREATE TRIGGER <Nombre>ON <Tabla o Vista>[ WITH ENCRYPTION ]{{ { FOR | ALTER | INSTEAD OF} { [ DELETE] [,] [ INSERT ) [ , ][ UPDATE] }[ WITH APPEND][ NOT FOR REPLICATION]AS[ { IF UPDATE (Columna)[ { AND | OR } UPDATE (Columna) ][ ..n]

Page 103: Administración y programación en sql server

Desencadenadores - Escenarios

Auditoria Seguimientos de cambios en los datos para

auditarlos posteriormente Considerar la Tabla de auditoria como

Nombre de usuario, Equipo de host, Nombre de la Aplicación, Fecha y hora de cambio.

Totales de ejecución Para la realización de información o

decisiones puntuales Tener dichos totales actualizados.Taller