Está en la página 1de 103

Microsoft SQL Server 2008

Administracin y programacin de BD. SQL Server Por Yamil Lambert

Conceptos de BASE de DATOS

Es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemticamente. Un Conjunto de Tablas Relacionadas entre si. Una biblioteca puede considerarse una base de datos compuesta en su mayora por documentos y textos impresos en papel e indexados para su consulta.

Tipos de Base de Datos

Variabilidad de los Datos


Estticas Dinmicas Bibliogrficas Texto Completo Directorio Informacin Biolgica.

Contenido

Modelos de Base de Datos

Jerrquicas.- almacenan su informacin en una estructura jerrquica. Los datos se organizan en forma similar a un rbol (visto al revs). Red.- modificacin del concepto de nodo: se permite que un mismo nodo tenga varios padres Relacional.- modelo ms utilizado en la actualidad para modelar problemas reales y administrar datos dinmicamente. Su idea fundamental es el uso de "relaciones" entre las tablas. Multidimensionales, Orientadas a Objetos.

Las tablas

Tipo de modelado de datos. Su estructura general se asemeja a la vista general de un programa de Hoja de clculo, Filas y Columnas. Las tablas se componen de dos estructuras:

Campo: Corresponde al nombre de la columna. Debe ser nico y adems de tener un tipo de dato asociado. Registro: Corresponde a cada fila que compone la tabla.

Clave Primaria y Clave Fornea

PK.- Campo o a una combinacin de campos que identifica de forma nica a cada fila de una tabla. Ejemplos de claves primarias son CEDULA, ISBN , etc. FK.- Es una limitacin 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).

Modelo Entidad Relacin (MER)

Es una herramienta para el modelado de datos de un sistema de informacin. Expresan entidades relevantes para un sistema de informacin, sus interrelaciones y propiedades. Tablas=Entidades (Fila(s)).

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.

Integridad de Datos

Integridad de la entidad Integridad Referencial Integridad de Dominio


Fsico Lgico

Integridad definida por el Usuario

Lenguaje SQL

Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales Instruccin de Definicin y de Manipilacin de Datos SQL86.- Primera publicacin hecha por ANSI. Confirmada por ISO en 1987. SQL92.- Nuevo estndar ampliado y revisado del SQL. T-SQL, PL-SQL.- Versiones de mejoradas de los Motores de Base de Datos.

Taller #1

Mostrar el Video Internet Bsquedas Considerar el Problema de Google desde la Perspectiva de su Base de Datos e Indexacin. Plantear por Grupos una Pregunta o Comentario

Sistemas de gestin de base de datos:


DataBase Management System. Tipo de software muy especfico, 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, informacin relevante para una organizacin. Un RDBMS es un Sistema Administrador de Bases de Datos Relacionales.

Qu implica esta gestin de datos?

Implica la definicin de las estructuras para el almacenamiento de informacin. Proveer mecanismos para la gestin de la informacin. Mantener la seguridad de la informacin almacenada.

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 Programacin, control de sistema operativos, hardware, comunicacin, redes, etc.

Funciones del DBA


Disear 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: Informacin que obtienen los usuarios y la velocidad. Obtener y estudiar las estadsticas 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.

Microsoft SQL-Server

Sistema de gestin de bases de datos relacionales basado en el lenguaje TransactSQL. Constituye la alternativa de Microsoft como Motor. Soporte de transacciones y procedimientos almacenados. Escalabilidad, estabilidad y seguridad. Integracin de datos con aplicaciones, incluidas plataformas como .NET e Internet Entorno grfico de administracin, que permite el uso de comandos DDL y DML. Permite trabajar en modo cliente-servidor. Administrar informacin de otros servidores de datos.

Microsoft SQL-Server 2008

SQL Server 2008 es una plataforma global de base de datos que ofrece administracin de datos empresariales con herramientas integradas de inteligencia empresarial (BI). El motor de la base de datos SQL Server 2008 ofrece almacenamiento ms 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.

Plataforma de SQL Server 2008

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.

Versiones de SQL-Server 2008 (9.0)

SQL Server 2008 Enterprise Edition.- Diseado 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.- Diseado para comercio electronico, datawarehouse y soluciones de lineas de negocio de tamao pequeo-mediano. SQL Server 2008 WorkGroup Edition.- Diseado para pequeas organizaciones que necesitan una base de datos que no tenga limite de usuarios, tambin se puede usar para pequeos 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.

Licencias del SQL-Server


Microsoft SQL Server 2008 est disponible en base a tres modelos de licencias: Licencia de servidor ms 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 ms 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.

Instalacin 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) 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)

Requisitos de Software.

http://msdn.microsoft.com/es-es/library/ms143506(SQL.90).aspx

Taller #2 Crear el MER

Se Requiere controlar la entrada y salida de los docentes en sus materias asignadas. Se debe Informar al docente segn su planificacin la Materia, Paralelo, Lugar, Hora Entrada y Salida. Informar el Periodo Actual que se esta controlando.

Taller de Instalacin de SQL-Server

10

11

12

Taller de Instalacin de SQL-Server - Finalizacin

13

14

Conectarse al Servidor SQL-SERVER

Tipo de Servidor Nombre del Servidor (IP) Autenticacin

SQL Server Management Studio

Explorador de Objetos

Bases de Datos Seguridad Objetos de Servidor Replica Administracin Servicios de Notificacin

Ficha Resumen

OLTP .- Procesamiento de Transacciones En Lnea

Ejemplo: Las operaciones en el cajero automtico 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 nmina 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 clculos para el pago de la nomina.

Bases de SQLServer

Bases de Datos del Sistema y de Usuario


De Sistema: Master.- Registra toda la informacin 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 lgica en el esquema. mssqlsystemresource.mdf

De Usuario: Northwind, AdventureWorks, Cualquier Base creada por el DBA.

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 informacin de registro que se utiliza para recuperar la base de datos. (.LDF)

Creacin de una Base de Datos


Nombre Lgico. Tamao Fsico Inicial. Crecimiento de Archivos. Archivos de la Base (Ruta de acceso). Opciones - Nivel de Compatibilidad

CREATE DATABASE
CREATE DATABASE NOMBREBASE [ON { [PRIMARY] [, FILEGROUP NombreGrupo] (NAME = ArchivoLogico, FILENAME = ArchivoFisico [, SIZE=Tamao] [, MAXSIZE={TamaoMax | UNLIMITED}] [, FILEGROWTH=IncrementoCrecimiento] )} [,..n] ] [LOG ON { ( NAME=ArchivoLogico FILENAME=ArchivoFisico [, SIZE=Tamao] [, MAXSIZE={TamaoMax | UNLIMITED}] [, FILEGROWTH=IncrementoCrecimiento] )} [,..n] ] [COLLATE NombreIntercalacin]

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:) Tamao mximo de 15MB al principal y 5MB al de transacciones. Crecimiento 20% para el Principal y de 1MB para el de transacciones

Adicionando y Modificando Archivos


ALTER DATABASE NombreBase ADD FILE (NAME = ArchivoLogico, FILENAME = ArchivoFisico [, SIZE=Tamao] [, MAXSIZE={TamaoMax | UNLIMITED}] [, FILEGROWTH=IncrementoCrecimiento] ) Agregar un archivo de datos a la Base ejemplo llamado EjemploData01 de 20MB, mximo 25MB y crecimiento 1MB

Grupos de Archivos
Es una estructura Lgica, que permite agrupar y gestionar los archivos de datos como una unidad lgica. SINTAXIS:

ALTER DATABASE NombreBase ADD FILEGROUP NombredeGrupo


Crear un Grupo llamado Datos y aadir un nuevo archivo de datos llamado Ejemplo02 a la base Ejemplo, (10MB, Mximo 15MB y crecimiento 1MB)

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 histricos. 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.

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. Versin Corta equema.objeto.

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

Creacin de Esquemas
Todas

las bases contienen un esquema predeterminado llamado dbo. Dbo. Es asignado para todos los usuario que no tienen ningn esquema definido explcitamente.
Use NombreBaseDatos CREATE SCHEMA NombreEsquema Crear un esquema llamado Persona, y agregar la tabla direccin al mismo.

Instantnea de Base de Datos


Es una vista esttica de solo lectura de una BD en un punto especifico en el tiempo que no cambia despus de la creacin de la misma. La base de datos a partir de la cual se crea la instantnea se llama BD origen. til para pruebas, desarrollo o de informes, como puntos de restauracin rpido en caso de dao. PERO No son sustitutos a las copias de seguridad, porque no contiene todos los registros de la base. Soportado solo en Enterprise Edition.

Creacin de una Instantnea Taller


Utilice

la base AdventureWorks

CREATE DATABASE AdventureWorks_Snapshot1 ON (NAME=AdventureWorksData, FILENAME=AW.ss ) AS SNAPSHOT OF AdventureWorks Go


Probar con una consulta a la base original y a la instantnea; luego actualice a la original y compruebe los datos consultndolos.

Copias de Seguridad y Restauracin

El componente de copias de seguridad y restauracin de SQL Server ofrece una proteccin muy importante para los datos crticos 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 daada o la prdida permanente de un servidor. Desastres naturales.

mbito Copias de seguridad de datos


El

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 slo 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)

Automatizacin 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 slo aparece para los miembros de la funcin fija de servidor sysadmin, este debe estar en ejecucin.
Crear un Plan de Mantenimiento para realizar peridicamente una copia de seguridad de la base datos AdventureWorks

Seguridad Inicios de Sesin

Un inicio de sesin define el contexto de seguridad en cada proceso que ejecuta. Los usuarios de Windows necesitan un inicio de sesin de SQL Server para conectarse. 2 tipos (Modo Mixto)

Autentificacin de Windows Autenticacin de Sql Server

Funciones del Servidor Asignacin de Usuarios Funcin Sobre la base de datos

Usuario de la Base de Datos


Esquemas Utilizado Miembros de Funcin Elementos que podemos Proteger

Tablas, Vistas y Procedimientos Almacenados

Permisos: Conceder, Denegar, WITH GRANT. Hacer una Prueba con ODBC. Explicar la Cadena de Conexin de una Aplicacin.

Seguridad de una Base de Datos

La informacin es uno de los activos ms importantes de las entidades. Hace unos aos era ms fcil, con arquitecturas centralizadas y terminales no inteligentes Hoy en da los entornos son realmente complejos, con diversidad de plataformas y proliferacin de redes. La disponibilidad: se cumple si las personas autorizadas pueden acceder a tiempo a la informacin. En administracin de seguridad pueden existir coordinadores en las diferentes reas funcionales. Los hacker, que intenta acceder a los sistemas ms para demostrar de que es capaz de superar las barreras de proteccin.

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

Objetos de la Base

Diagramas Tablas (Sistema y Usuario) Vistas (Sistema y Usuario) Sinnimos Programacin


Procedimientos Funciones Desencadenadores Tipos Reglas Valores Predeterminados


Usuario / Funciones y Esquema

Seguridad

Tipos de Datos

Limitar el almacenamiento en una columna; rangos de valores. Correcta seleccin del tipo dato sea carcter, enteros, binarios, fechas etc. Objetos que tienen tipos de datos

Columnas en Tablas y Vistas Parmetros en Procedimientos Almacenados Variables La clase o tipo de datos Longitud o su tamao Precisin (Solo numricos) smallint, 5 dgitos, precisin de 5. Escala (Solo numricos) Nmeros de dgitos de la parte decimal. Int =Escala 0; Money=Escala max 4.

Los Cuatro atributos de un Objeto


Tipos de Datos - 7 Categoras

Numero Exacto

Fecha y Tiempo

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


Float Real

DateTime Char() Tamao Fijo Varchar() Tamao Variable Text (2GB) Binary(n) Image Timestamp XML

Carcter

Numero Aproximado

Binario

Monetario

Money Smallmoney

Propsito General

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 [ ( precisin [ , 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

Creacin de TABLAS

Coleccin 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 ] ) ] [ ; ]

Taller Creacin de Tablas

Usando TSQL Crear

Persona (Codigo,Nombre,Apellido,Genero) Empleado (Codigo,Nombre,Apellido,Direccion,Genero, Sueldo,FechaNacimiento,Foto,Estado) Estudiante (temporal)

Verificar la creacin del Objeto sys.object y sp_help Usando Management Studio Crear La tabla Producto
(Cdigo,Descripcin,Precio,Cantidad, Fecha,Estado).

Tipos de Columnas

Columnas Calculadas.- Columna Virtual que no se almacena fsicamente en la tabla Columnas de Identidad (Identity) .- Valores secuenciales generados por el sistema que identifican cada fila. Columnas Uniqueidentifier .- se utiliza con la funcin newid(), Numero identificador unico como cadena bynaria (GUID) Globally Unique Identifier.

Hacer un ejemplo de cada una usando TSQL.

Modificacin de Tablas
Modificar la estructura de una tabla con: ALTER TABLE. Podemos: Aadir o eliminar Campos Cambiar el tipo de dato a los campos Cambiar el Nombre a los campos Modificar Longitud o tamao (Numrico 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.

Integridad de Datos
Dos cosas importantes en el diseo de las tablas: Identificacin de valores validos para una columna. Determinar como forzar la integridad de los datos en la columna. Categoras:

Entidad (Filas) Dominio (Fsico y Lgico) (Columnas) Referencial (Entre Tablas)

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 adems 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 Hurfanas) Eliminar Filas (Existen Filas Relacionadas)

Restricciones o Constraints

Mtodos estndar ANSI para exigir la integridad de los datos. Usados en Integridad de Datos (dominio, entidad y referencial).
Tipo Constraint DEFAULT CHECK FOREIGN KEY Descripcin Valor Predeterminado, cuando un insert no proporciona ningn valor.Datos aceptados en una columna (No reglas). Valores aceptables para la actualizacin; columna de otra tabla. Identifica cada fila de manera nica. Impide la duplicacin de claves alternativas no principales Columna (s) que coinciden con la PK de la misma tabla o otra conocida como FK. Datos aceptados en una columna basndose en otras de la misma tabla.

Dominio

Entidad

PRIMERY KEY UNIQUE

Referencial

FOREIGN KEY CHECK

Constraint DEFAULT CHECK Y PRIMARY KEY


Valores Predeterminados Validaciones Clave Principal

CREATE TABLE Nombre ( {<Columnas> | <RestriccionTabla>} [,..n]) <definicionColumna> ::={NombreColumna Tipo} [ {DEFAULT Expresin} ] [ <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 <Expresin> PRIMARY KEY [CLUSTERED | NONCLUSTERED] {(Columna [,n])} FOR NombreColumna

Hacer Taller para cada una.

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 Cotizacin.

Especificar CLUSTER o NONCLUSTER

ALTER TABLE NombreTabla [ADD CONSTRAINT NombreRestriccin] - DROP CONSTRINT NombreRestriccin] UNIQUE CLUSTER - NONCLUSTERED (columna[,..n])

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

Constraint FOREIGN KEY

Es una clave o combinacin de columnas que se utiliza para establecer y exigir un vinculo entre los datos de 2 tablas. Esta restriccin define una referencia a una columna con una restriccin 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.

Actualizacin y eliminaciones Cascada

NO ACTION.-Se produce un error y se deshace la instruccin (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.

Diagramas de Base Datos


Son representaciones visuales de la BD Representan las relaciones entre tablas en funcin de sus claves. Permiten Modelar y crear un Modelo Entidad Relacin o MER. En SQL-Server se puede modificar los objetos, crear tablas y sus relaciones FK. Se pueden tener varios Diagramas mas pequeos de un MER grande.

Taller Crear un Diagrama de la Tablas de la base.

MER Reservas de Libros

Sentencias Transact-SQL
Programacin de Base de Datos

SQL & T-SQL

SQL.- es un lenguaje de consulta para los sistemas de Bases de Datos relacionales, pero no es un lenguaje Programacin. SQL, no variables, estructuras de control, de flujo, bucles etc. T-SQL admite el nivel bsico de implementacin de SQL-92, estndar ANSI. TSQL.- podemos programar las unidades de programa de la BD.

Procedimientos Almacenados Funciones Triggers Scripts, Etc.

T-SQL - Comentarios

TSQL.- no es CASE-SENSITIVE, es decir no diferencia maysculas de minsculas. Un comentario es una aclaracin que el programador incluye en el cdigo, son soportados 2 estilos:

-- Comentario de una sola lnea. /* */ Comentario de varias lneas.

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 envo del lote actual de instrucciones TSQL. En ocasiones en conveniente separar las sentencias en varios lotes. Si desea ejecutar cierto cdigo TSQL, mrquelo y ejecute con la tecla F5.

Hacer un pequeo taller.

Identificadores

Tenemos 2 tipos: Identificadores Estndar

De 1 a 128 caracteres Mximo. 1er carcter debe ser alfabtico. Despus del 1er carcter pueden incluir letras, nmeros o smbolos. Si empieza con @ indica una variable o parmetro local. Si empieza con # indica una tabla o procedimiento temporal Si empieza ## indica un objeto global temporal
Si un identificar no cumple alguna de las reglas de formato siempre debe estar delimitado con [ ]

Identificadores Delimitados

Tipos de datos en TSQL

El tipo de dato define el formato de almacenamiento, espacio en discomemoria 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 parmetros.

Realizar un taller.

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 carcter @. Para declarar variables debemos utilizar la palabra clave DECLARE, seguido del identificador y tipo de dato. La asignacin de variables con:

Instruccin SET Sentencia SELECT DECLARE {@variableLocal tipoDatos} [,n] SET @variableLocal = expresin
Hacer taller.

Operadores TSQL

Aritmticos:

+,-,*,/,**,% =, <>, !=, <,>,<=,>=, !>,!< AND, NOT, OR ALL, ANY, BETWEEN, LIKE, NOT , SOME

Comparacin:

Lgicos:

Otros:

Estructura Condicional IF
IF (<expresin booleana>) BEGIN { sentencias SQL o bloques de sentencias} END ELSE IF BEGIN { sentencias SQL o bloques de sentencias} END ELSE BEGIN { sentencias SQL o bloques de sentencias} END -- Realizar Taller.

Permite evaluar una expresin booleana y ejecutar operaciones en el bloque formado por BEGIN END. Sintaxis:

Estructura condicional CASE

Permite evaluar una expresin y devolver un valor u otro. Sintaxis:

CASE <expresin> WHEN <valorExpresin> THEN <valordevuelto> WHEN <valorExpresin> THEN <valordevuelto> ELSE <elseValorDevuelto> -- Valor por defecto END
Realizar Taller.

Estructura de control WHILE


El bucle While se repita mientras expresin se evale como verdadero. Es el nico tipo de bucle que dispone TSQL. Sintaxis: WHILE Expresin_Booleana { sentencias SQL o bloque Sentencias} [BREAK] { sentencias SQL o bloque Sentencias} [CONTINUE] { sentencias SQL o bloque Sentencias} Realizar Taller.

Estructura GOTO

La sentencia GOTO nos permite desviar el flujo de ejecucin 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 gestin de errores.

Hacer ejemplo.

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 TRY BEGIN CATCH { sentencias SQL o bloque Sentencias} END CATCH
Hacer ejemplo.

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().- Lnea que se ha producido el error. ERROR_MESSAGE().- Mensaje del error. Ver ejemplo

Generar un error con RAISERROR


Provocar voluntariamente un error. Cuando los datos incumplen una regla de negocio. RAISERROR.- recibe 3 parmetros:

Mensaje.- Texto Severidad.- 0 al 25; solo podemos usar 0 al 18, para el resto debe ser miembro de la funcin o rol sysadmin. Estado.- Valores entre 1 y 127.

Ver ejemplo.

Consultar Datos Sentencia SELECT

Consultar datos almacenados en una tabla.

SELECT <nombre_campo / lista_seleccin> INTO <nombre_nueva_tabla> FROM <nombre_tabla> [WHERE <condicin> [AND OR <condicin>]] [GROUP BY <nombre_campos>] [HAVING <condicin>[AND OR <condicin>]] [ORDER BY <nombre_campo> [ASC DESC]] [COMPUTE / COMPUTE BY ]
Hacer Taller

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 expresin) de las filas del conjunto de datos.

TOP (Expresin) [ PERCENT ]

Alias de Tablas
La legibilidad de una instruccin SELECT se puede mejorar si se proporciona un alias para la tabla. Conocida como Variable de intervalo o nombre de correlacin. til en Join, para identificar campos ambiguos. 2 formas: NombreTabla as TablaAlias NombreTabla TablaAlias

Intervalos (BETWEEN Y NOT BETWEEN)

Es una bsqueda 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>

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 parntesis.

WHERE <campo> IN (Lista)

Coincidencias de Patrn LIKE y NOT LIKE


Busca valores de cadenas de caracteres que coincidan con un patrn determinado. Caracteres Comodn: % .- Cualquier cadena de cero o mas caracteres. _ .- Cualquier carcter [ ] .- Cualquier carcter individual del intervalo [a-z] o [abcde] [ ^ ] .- Cualquier carcter individual fuera del intervalo. [^a-z] o [^abcde]

Valores
NULL (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

Clusula 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 agregacin como SUM(), AVG(),COUNT(), MAX(),MIN() por grupo. HAVING.- especifica una condicin de bsqueda para un grupo o agregado.

Solo se puede usar con la clusula GROUP BY

GROUP BY <campos>

Subconsultas con Tablas derivadas


Una tabla derivada se crea al utilizar una subconsulta en al clusula 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

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 informacin: 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>

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 expresin en una clusula 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

Subconsulta Correlacionada
Usada en una expresin dinmica que cambia en cada fila de una consulta externa. Esta dividen consultas complejas en dos o mas consultas simples relacionadas. Ejemplo: SELECT SalesOrderID, CustomerID FROM SalesOrderHeader as or1 WHERE 3 < (SELECT OrderQty FROM SalesOrderdetail as od WHERE or1.SalesOrderID=od.SalesOrderID and od.Product=770)

Operadores EXISTS y NOT EXISTS


Son consultas correlacionadas Con el propsito 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.LasName FROM Person as a WHERE EXISTS (SELECT * FROM Employee as b WHERE a.BusinessEntityID=b.BusinessEntityID and a.LastName = Jhonson)

Combinacin de Tablas

Recuperar datos de 2 o mas tablas segn sus relaciones lgicas. Especifica una clave externa (FK) y su clave asociada en la otra tabla (PK). Se pueden usar operadores lgicos para comparacin de la columnas (filtrar).

Sintaxis: FROM <1raTabla TIPOJOIN 2daTabla> [ON (CondicinJOIN)] TIPOJOIN.- Interior, Exterior y Cruzada CondicinJOIN.- Predicado a evaluar por cada par de filas combinadas.

Tipos de Combinaciones
Internas: INNER JOIN o JOIN.- Combinan tablas mediante la comparacin 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 JOIN Cruzadas CROSS JOIN Realizar Taller.

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 expresin [,..n]) La opcin DEFAULT VALUES inserta valores por defecto en todas las columnas.

Sentencia UPDATE
Modifica los valores existentes de una tabla. Los registros se modifican de conformidad de la clusula WHERE. Si se omita la clusula WHERE la modifica todas las filas de la tabla. UPDATE tabla SET Columna= expresin DEFAULT NULL [,..N] [FROM] Tabla2 [,..n] [WHERE Condicin]

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 condicin] TRUNCATE TABLE Proporciona una mayor rapidez de ejecucin. No posee clusula WHERE Borra todos los registros de una tabla.

XML en consultas
Lenguaje de marcado extensible XML. Requisitos de muchas aplicaciones actuales. Transformar datos entre XML y Relacional. Manejado en Consultas SELECT Clusula FOR XML, que se anexa a la instruccin SELECT. Taller.

ndices
Optimizacin 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 mtodo 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

Funciones Definidas por el Usuario


Programacin Modular Ejecucin mas rpida. Reducir el trfico de RED. Tipos de Funciones: Escalares Valores de Tabla en Lnea Valores de Tabla con mltiples Sentencias

CREATE FUNCTION <NOMBRE> (Parmetros) RETURNS <tipo de dato> AS BEGIN RETURN <expresin> ENG -- taller

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 (lgica).

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]

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 Aplicacin, Fecha y hora de cambio. Para la realizacin de informacin o decisiones puntuales Tener dichos totales actualizados.

Totales de ejecucin

Taller

También podría gustarte