CUENTA#: 200760530006
Kenneth Elvir
200760530006
Ing. Castillo
I
NDICE
Portada.1
ndice2
Introduccin.3
SQL constraints..4
Vistas SQL...9
ndices SQL...13
Kenneth Elvir
200760530006
Ing. Castillo
INTRODUCCION
Kenneth Elvir
200760530006
Ing. Castillo
CONSTRAINTS O RESTRICCIONES
PRIMARY KEY
Es la ms comn de todas debido a que cada una de nuestras tablas debe ser
completamente relacional y para lograr esto siempre debe existir una llave primaria
dentro de cada tabla que identifique cada fila como nica.
Kenneth Elvir
200760530006
Ing. Castillo
UNIQUE
Este tipo de restriccin es muy parecida a PRIMARY KEY, las diferencias son las
siguientes:
Tambin genera un ndice automticamente pero es de tipo de NON CLUSTERED.
La tabla puede tener ms de una restriccin de tipo UNIQUE.
Si puede aceptar NULL, pero solo una fila puede contenerlo ya que como su nombre lo
indica, es de tipo UNIQUE o nico.
Kenneth Elvir
200760530006
Ing. Castillo
FOREIGN KEY
Se forma de una columna o la combinacin de varias columnas de una tabla que sirve
como enlace hacia otra tabla donde en esta ltima, dicho enlace son la o las columnas
que forman la PRIMARY KEY. En la primera tabla donde creamos la llave fornea es
posible que existan valores duplicados de la/las columnas que conforman la llave
primaria de la segunda tabla, adems las columnas involucradas en la llave fornea
deben tener el mismo tipo de datos que la llave primaria de la segunda tabla. Una llave
fornea no crea un ndice automticamente, por lo que se recomienda generar uno
para incrementar el rendimiento de la consulta.
Kenneth Elvir
200760530006
Ing. Castillo
7
Solo puede hacer referencia a columnas de restricciones PRIMARY KEY o UNIQUE.
No se puede utilizar en tablas temporales.
Para consultar las restricciones FOREIGN KEY, se puede utilizar:
CHECK
Con este tipo de restriccin, se especifica que los valores ingresados en la columna
deben cumplir la regla o formula especificada. Por ejemplo:
Kenneth Elvir
200760530006
Ing. Castillo
8
Algunos requerimientos son:
Una columna puede tener cualquier nmero de restricciones CHECK.
La condicin de bsqueda debe evaluarse como una expresin booleana y no puede
hacer referencia a otra tabla.
No se pueden definir restricciones CHECK en columnas de tipo text, ntext o image.
Ventajas:
Las expresiones utilizadas son similares a las que se usan en la clausula WHERE.
Pueden llegar a ser una mejor alternativa que los TRIGGERS o disparadores.
Tener siempre en mente:
Al momento de crear nuestra expresin, tomar en cuenta si la columna acepta valores
NULL, por ejemplo si definimos nuestra restriccin que acepte solo valores positivos
( nombreColumna1>=0), NULL es un valor desconocido por lo tanto se insertar en la
columna.
No es posible obtener el valor previo despus de realizar un UPDATE, si esto es
necesario se recomienda usar un TRIGGER.
Para consultar las restricciones CHECK se puede utilizar:
DEFAULT
Se puede decir que no es una restriccin, ya que solo se ingresa un valor en caso de
que ninguno otro sea especificado. Si una columna permite NULL y el valor a insertar
no se especifica, se puede sustituir con un valor predeterminado.
Kenneth Elvir
200760530006
Ing. Castillo
VISTAS SQL
Una vista es una alternativa para mostrar datos de varias tablas. Una vista es
como una tabla virtual que almacena una consulta. Los datos accesibles a
travs de la vista no estn almacenados en la base de datos como un objeto.
Entonces, una vista almacena una consulta como un objeto para utilizarse
posteriormente. Las tablas consultadas en una vista se llaman tablas base. En
general, se puede dar un nombre a cualquier consulta y almacenarla como una
vista.
Una vista suele llamarse tambin tabla virtual porque los resultados que retorna
y la manera de referenciarlas es la misma que para una tabla.
Kenneth Elvir
200760530006
Ing. Castillo
10
Kenneth Elvir
200760530006
Ing. Castillo
11
on codigo=seccion
Kenneth Elvir
200760530006
Ing. Castillo
12
select datepart(year,fechaingreso),count(*)
from empleados
group by datepart(year,fechaingreso)
La diferencia es que se colocan entre parntesis los encabezados de las
columnas que aparecern en la vista. Si no los colocamos y empleamos la
sintaxis vista anteriormente, se emplean los nombres de los campos o alias
(que en este caso habra que agregar) colocados en el "select" que define la
vista. Los nombres que se colocan entre parntesis deben ser tantos como los
campos o expresiones que se definen en la vista.
Las vistas se crean en la base de datos activa.
Al crear una vista, SQL Server verifica que existan las tablas a las que se
hacen referencia en ella.
Se aconseja probar la sentencia "select" con la cual definiremos la vista antes
de crearla para asegurarnos que el resultado que retorna es el imaginado.
Existen algunas restricciones para el uso de "create view", a saber:
- no puede incluir las clusulas "compute" ni "compute by" ni la palabra clave
"into";
- no se pueden crear vistas temporales ni crear vistas sobre tablas temporales.
- no se pueden asociar reglas ni valores por defecto a las vistas.
- no puede combinarse con otras instrucciones en un mismo lote.
Se pueden construir vistas sobre otras vistas.
Kenneth Elvir
200760530006
Ing. Castillo
13
INDICES SQL
Un ndice es una estructura de disco asociada con una tabla o una vista que
acelera la recuperacin de filas de la tabla o de la vista. Un ndice contiene
claves generadas a partir de una o varias columnas de la tabla o la vista.
Dichas claves estn almacenadas en una estructura (rbol b) que permite que
SQL Server busque de forma rpida y eficiente la fila o filas asociadas a los
valores de cada clave.
Una tabla o una vista puede contener los siguientes tipos de ndices:
Agrupado
Los ndices agrupados ordenan y almacenan las filas de los datos de la tabla o
vista de acuerdo con los valores de la clave del ndice. Son columnas incluidas
en la definicin del ndice. Slo puede haber un ndice clster por cada tabla,
porque las filas de datos slo pueden estar ordenadas de una forma.
La nica ocasin en la que las filas de datos de una tabla estn ordenadas es
cuando la tabla contiene un ndice clster. Cuando una tabla tiene un ndice
clster, la tabla se denomina tabla agrupada. Si una tabla no tiene un ndice
clster, sus filas de datos estn almacenadas en una estructura sin ordenar
denominada montn.
No agrupado
Los ndices no agrupados tienen una estructura separada de las filas de datos.
Un ndice no agrupado contiene los valores de clave de ndice no agrupado y
cada entrada de valor de clave tiene un puntero a la fila de datos que contiene
el valor clave.
El puntero de una fila de ndice no agrupado hacia una fila de datos se
denomina localizador de fila. La estructura del localizador de filas depende de
si las pginas de datos estn almacenadas en un montn o en una tabla
agrupada. Si estn en un montn, el localizador de filas es un puntero hacia la
fila. Si estn en una tabla agrupada, el localizador de fila es la clave de ndice
agrupada.
Puede agregar columnas sin clave al nivel hoja de un ndice no agrupado con
el fin de eludir los lmites existentes para las claves de ndice, 900 bytes y
columnas de 16 claves, as como para ejecutar consultas indizadas y
totalmente cubiertas. Para obtener ms informacin, vea ndice con columnas
incluidas.
Para obtener ms informacin acerca de la arquitectura de ndices, vea
Arquitectura de estructuras de tablas y datos de ndices.
Kenneth Elvir
200760530006
Ing. Castillo
14
Tanto los ndices agrupados como los no agrupados pueden ser nicos. Esto
significa que dos filas no pueden tener el mismo valor para la clave de ndice.
De lo contrario, el ndice no es nico y varias filas pueden compartir el mismo
valor de clave. Para obtener ms informacin, vea Directrices para disear
ndices nicos.
Los ndices se mantienen automticamente para una tabla o vista cuando se
modifican los datos de la tabla.
ndices y restricciones
Los ndices se crean automticamente cuando las restricciones PRIMARY KEY
y UNIQUE se definen en las columnas de tabla. Por ejemplo, cuando cree una
tabla e identifique una determinada columna como la clave primaria, Motor de
base de datos crea automticamente una restriccin PRIMARY KEY y un ndice
en esa columna. Para obtener ms informacin, vea Crear ndices (motor de
base de datos).
Cmo utiliza los ndices el optimizador de consultas
Los ndices bien diseados pueden reducir las operaciones de E/S de disco y
consumen menos recursos del sistema, con lo que mejoran el rendimiento de la
consulta. Los ndices pueden ser tiles para diversas consultas que contienen
instrucciones SELECT, UPDATE, DELETE o MERGE. Fjese en la consulta
SELECT Title, HireDate FROM HumanResources.Employee WHERE
EmployeeID = 250 en la base de datos AdventureWorks2008R2. Cuando se
ejecuta la consulta, el optimizador de consultas evala cada mtodo disponible
para recuperar datos y selecciona el mtodo ms eficiente. El mtodo puede
ser un recorrido de la tabla o puede ser recorrer uno o ms ndices si existen.
Al realizar un recorrido de la tabla, el optimizador de consultas leer todas las
filas de la tabla y extraer las filas que cumplen con los criterios de la consulta.
Un recorrido de la tabla genera muchas operaciones de E/S de disco y puede
consumir recursos. No obstante, puede ser el mtodo ms eficaz si, por
ejemplo, el conjunto de resultados de la consulta es un porcentaje elevado de
filas de la tabla.
Cuando el optimizador de consultas utiliza un ndice, busca en las columnas de
clave de ndice, busca la ubicacin de almacenamiento de las filas que necesita
la consulta y extrae las filas coincidentes de esa ubicacin. Generalmente, la
bsqueda del ndice es mucho ms rpida que la bsqueda de la tabla porque,
a diferencia de la tabla, un ndice frecuentemente contiene muy pocas
columnas por fila y las filas estn ordenadas.
El optimizador de consultas normalmente selecciona el mtodo ms eficaz
cuando ejecuta consultas. No obstante, si no hay ndices disponibles, el
optimizador de consultas debe utilizar un recorrido de la tabla. Su tarea
consiste en disear y crear los ndices ms apropiados para su entorno de
Kenneth Elvir
200760530006
Ing. Castillo
15
Kenneth Elvir
200760530006
Ing. Castillo
16
Kenneth Elvir
200760530006
Ing. Castillo
17
[;]
La base de datos puede ser una base de datos normal o una instantnea de
base de datos.
Para poder ejecutar la sentencia el usuario debe tener permiso de CONTROL y
se debe de ejecutar en un contexto diferente del de la base de datos a eliminar,
por ejemplo:
use b1
DROP DATABASE b1
Por ejemplo:
DROP DATABASE b1,b2
Elimina las bases de datos b1 y b2.
Kenneth Elvir
200760530006
Ing. Castillo
18
Formalizacin CERO
Kenneth Elvir
200760530006
Ing. Castillo
19
Ahora diremos que nuestra tabla est en el primer nivel de F/N. Hemos
solucionado el problema de la limitacin del campo url. Pero sin embargo
vemos
otros problemas....Cada vez que introducimos un nuevo registro en la tabla
Kenneth Elvir
200760530006
Ing. Castillo
20
Kenneth Elvir
200760530006
Ing. Castillo
21
Kenneth Elvir
200760530006
Ing. Castillo
22
Ahora mira las tablas en el ejemplo del Segundo Nivel de F/N. Nuestras tablas
permiten a un slo usuario tener asociadas varias urls. Esta es una relacin
unocon-varios, el tipo de relacin ms comn, y hasta que se nos present el
dilema del Tercer Nivel de F/N. la nica clase de relacin que necesitamos.
La relacin varios-con-varios, sin embargo, es ligeramente ms compleja.
Observa en nuestro ejemplo del Tercer Nivel de F/N que tenemos a un usuario
relacionado con varias urls. Como dijmos, vamos a cambiar la estructura para
permitir que varios usuarios esten relacionados con varias urls y as tendremos
Kenneth Elvir
200760530006
Ing. Castillo
23
Kenneth Elvir
200760530006
Ing. Castillo