sfhkjkjhjgjhgfghf

Páginas: 12 (2775 palabras) Publicado: 23 de mayo de 2013
PRÁCTICA: RESTRICCIONES
OBJETIVOS:
Aprender a implementar reglas de negocio en esquemas SQL mediante la inclusión de restricciones de integridad.

MATERIAL:
SQL Server 2008

CONTENIDO:
Introducción
Definición de Restricciones al Crear una Tabla
Restricción NOT NULL
Restricción UNIQUE
Restricción PRIMERY KEY
Restricción CHECK
Añadiendo Restricciones en Tablas Existentes
EliminandoRestricciones en Tablas Existentes
Desactivando restricciones
Activando restricciones
Restricciones en Cascada

Después de completar esta práctica, el alumno debería ser capaz de:
- Describir restricciones,
- Crear y mantener restricciones.

Esquema de Trabajo
Los ejemplos mostrados en esta práctica están basados en el siguiente esquema relacional:
Empleados (id, apellidos, nombre,salario, dep, fecha_alta, supervisor_id, email)
Departamentos (num, nombre, director_id, edificio)

Empleados.supervisor_id -> Empleados
Empleados.dep -> Departamentos
Departamentos.director_id -> Empleados

1. Introducción
Las reglas de negocio se implementan en SQL mediante restricciones (constraints), disparadores (triggers) o código de aplicación.
El SQL Server se basa en las restriccionespara prevenir la entrada de datos no válidos en las tablas.
En suma, al trabajar con SQL, las restricciones se pueden emplear para:
- Forzar el cumplimiento de reglas por los datos de una tabla cuando se inserta una fila se elimina o se modifica. La restricción debe ser satisfecha para que la operación DML se concluya con éxito.
- Prevenir el borrado de una tabla cuando existen dependenciasdesde otras tablas.
- Proveer reglas para otras herramientas.
Tipos de restricciones
En SQL son los siguientes:
NOT NULL Una columna no puede contener un valor nulo
UNIQUE Una columna o combinación de columnas cuyos valores deben ser únicos para todas las filas de la tabla
PRIMARY KEY Identifica unívocamente cada fila de la tabla
FOREIGN KEY Establece y obliga a que se cumpla una restricciónde integridad entre una columna y otra columna de la tabla referenciada
CHECK Especifica una condición que debe ser cierta
Guías para el uso
- Es conveniente asignarles un nombre autodefinido que permita referirlas de forma fácil con posterioridad. Si el usuario no les asigna nombre el sistema las denomina
“SYS_C”, donde es un número entero diferente para cada restricción.
- Pueden serdefinidas a la vez que se crea la tabla (dentro del CREATE TABLE) o posteriormente (ALTER TABLE).
- Se pueden definir a nivel de columna o a nivel de tabla.

Comprobar restricciones existentes
Con la sentencia DESCRIBE solo se muestran las restricciones NOT NULL. Para ver las demás es necesario consultar la vista USER_CONSTRAINTS del diccionario de datos.
Ejemplos:
Obtener la lista derestricciones definidas en el diccionario de datos:
SELECT * FROM USER_CONSTRAINTS;
NOTA: En el listado C=”CHECK”, P=”PRIMARY KEY”, R=”FOREIGN KEY”. NOT
NULL se representa como un caso especial de CHECK.
Igual, pero solo para la tabla Empleados:
SELECT * FROM USER_CONSTRAINTS WHERE table_name=’Empleados’;
Comprobar las columnas asociadas
Las columnas asociadas con cada restricción se pueden consultaren la vista
USER_CONS_COLUMNS del diccionario de datos. Ejemplo:
SELECT * FROM USER_CONS_COLUMNS WHERE table_name=’Empleados’;
Otras vistas del diccionario de datos útiles para este tema son ALL_CONSTRAINTS y ALL_CONS_COLUMNS.

2. Definición de Restricciones al Crear una Tabla
Sintaxis:
CREATE TABLE [.]
( [DEFAULT ] [],
AS [] [, …] );
donde:
Nombre del propietario. Sólo es necesarioindicarlo si no es el mismo
que el del esquema.
Nombre de la tabla
Especifica un valor por defecto que sería usado si una operación INSERT no especifica valor
Nombre de la columna
Tipo de dato de la columna y su longitud
Restricción de integridad que se define como parte de la definición de una columna particular
Restricción de integridad que se define fuera de las definición de...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS