Sunteți pe pagina 1din 18

Universidad Nacional de Ingeniería

Facultad de Ciencias

Bases de Datos

Restricciones

Víctor Melchor Espinoza


Restricciones de Integridad

Las restricciones de integridad establecen


restricciones acerca de los datos permitidos
en la base de datos, en adición a la
estructura simple y las restricciones de tipo
fijadas por la definición del esquema básico.

Un elemento activo es una expresión o


proposición que escribimos una vez, que
guardamos en la BD y que esperamos
realice su ejecución en el momento
apropiado.
2
Restricciones de Integridad

¿Por qué debemos usar restricciones de integridad?

(1) Para capturar los errores en el ingreso de datos.

(2) Para seguir un criterio de regularidad al escribir


actualizaciones en la base de datos.

(3) Para hacer cumplir la coherencia entre los datos de la


base de datos.

(4) Para indicarle al sistema acerca de los datos - puede


optar por almacenar los datos o procesar las consultas
según sea. 3
Restricciones de Integridad

Tipos de restricciones de integridad

(1) No nula.

(2) Claves.

(3) Integridad referencial.

(4) Basado en atributos.

(5) Basado en Tuplas.

(6) Afirmaciones generales.

4
Restricciones de Integridad

Declaración y Ejecución de Restricciones


Hay dos instantes en los que se pueden declarar las
restricciones:

1. Declaración con el esquema original.

2. Declarado después.

Las restricciones evalúan la base de datos actual.

Después de la declaración, si una sentencia SQL causa


que se viole una restricción entonces (en la mayoría de
los casos), el comando se aborta y se genera un error en
tiempo de ejecución.
5
Base de Datos de Aplicación

Consideraremos la BD Universidad que admite las


siguientes relaciones:

Estudiante ( ID, nombre, domicilio, Prom_Acum , Ing_Fam )

Postulante ( ID , ubicacion , fecha, importante, decision)

Sede ( ubicacion, nroinscripcion , rango )

Resi_Univ( nombres, apellidos, nrohabitacion, telefono,


nombre_compañero, apellidos_compañero)
6
Restricciones no Nulas

Restringe atributos para que no permitan valores NULL

Ejemplo

Defina la tabla Estudiante con restricciones no nulas.

Estudiante ( ID, nombre, domicilio, Prom_Acum , Ing_Fam )

7
Restricciones de Llaves
Hay dos tipos de claves en SQL:
(1) CLAVE PRIMARIA:

• A lo sumo existe una por relación.

• No admiten valores nulos.

• Se indexan automáticamente.

(2) UNIQUE

• Puede haber varias por relación.

• Se indexan automáticamente. 8
Restricciones de Llaves
Ejemplo:

Crear una clave primaria para la relación Estudiante

ID es la clave para la relación Estudiante

=> no hay dos tuplas estudiante que puedan tener el


mismo valor para su atributo ID.

9
Restricciones de Llaves

Existen dos maneras de definir claves en SQL:

(a) La clave a continuación del atributo.

(b) Separada en la definición de tabla.

Ejemplo:

Crear una llave Unica para la tabla Estudiante.

1
Integridad Referencial

Es un tipo muy importante y común de restricción.

Ejemplo:

Si existe un ID en la relación Postulantes también


existirá en Estudiantes.

Ejemplo:

Si existe una dirección en Postulantes, también existirá


en Sedes.

1
Integridad Referencial
Terminología
:
- Postulante.ID "referencia" a Estudiante.ID

- "Integridad referencial" significa que el valor


referenciado siempre existe.

- Equivalentemente se dice que no existen “ tuplas


colgantes" en joins de la relación que referencia a la
relación referenciada.

1
Integridad Referencial en SQL
Terminología
:
- El atributo referenciado debe ser PRIMARY KEY
(por ejemplo, Estudiante.ID, Sede.ubicacion)

- El atributo que referencia debe ser FOREIGN KEY


(por ejemplo, Postulante.ID, Postulante.ubicacion)

Hay dos formas para definir integridad referencial en SQL:

(1) Referenciando a continuación del atributo.

(2) Separada en la relación que referencia.

1
Integridad Referencial en SQL
Ejemplo 1:
1) Crear una referencia ID para la relación Postulante a
nivel de atributo.
Postulante ( ID , ubicacion , fecha, importante, decision)

Ejemplo 2:

2) Crear una referencia ubicacion para la relación


Postulante a continuación de la definición de tabla.

1
Integridad Referencial en SQL
Se puede omitir el nombre del atributo referenciado si es
el mismo que el atributo que hace referencia:
Id integer REFERENCES Estudiante, ...
Se puede incluir varios atributos en la integridad
referencial.
Se puede tener integridad referencial en una única
relación.
Ejemplo:
Definir llaves primarias y foráneas para la relación
Resi_Univ.

Resi_Univ( nombres, apellidos, nrohabitacion, telefono,


1
nombre_compañero, apellidos_compañero)
Restricciones basadas en atributos
Podemos comprobar una restricción sobre el valor de un
atributo.
- Las especificaciones de Tipo/dominio son un tipo de
restricción basado en atributo.
- Las restricciones No nulas son una especie de
restricción basada en atributos.

Sintaxis SQL:

Agregar "CHECK (<condición>)" al atributo.

<condición> es como una cláusula del WHERE de SQL,


puede referirse al mismo atributo. 1
Restricciones basadas en atributos
Ejemplo 1:
Crear una restricción en la relación Estudiante que valide
el promedio acumulado.

Ejemplo 2:

Crear una restricción en la relación Postulante de modo


que el atributo decision solo admita: S, N e I.

También se puede crear dominios con restricciones


basadas en atributos. 1
Restricciones basadas en tuplas
Podemos comprobar una condición concerniente a uno o
todos los componentes de las tuplas de una relación,
agregándole a la declaración de la relación la palabra
CHECK y la condición a verificar.

Es similar a las Restricciones basadas en atributos,


excepto que el CHECK se aplica a toda la tupla.

Ejemplo:

Crear la tabla Sede de modo que el numero de


inscripción sea mayor que 10 000 o el rango sea >5.

Sede ( ubicación, nroinscripción , rango ) 1

S-ar putea să vă placă și