Sei sulla pagina 1di 3

Laboratorio Restricciones de Integridad

Usuario alumno1 contrasea alumno1


1. Ejemplo prctico sobre una base de datos comn.

El diseo de las tablas de esta pequea base de datos vendra dado por:
CREATE TABLE Departamento
(codigo CHAR(5) NOT NULL,
nombre VARCHAR(100) NOT NULL,
director VARCHAR(50),
telefono CHAR(11),
CONSTRAINT CP_dpto PRIMARY KEY(codigo));
Para la tabla departamento tiene definidas las restricciones de integridad de:
tratamiento de no nulos para las columnas:
cdigo
nombre
tratamiento de clave primaria denominada CP_dpto para la columna cdigo

CREATE TABLE Profesor(


codigo CHAR(5) NOT NULL,
nombre VARCHAR(100) NOT NULL,
direccion VARCHAR(50),
telefono CHAR(11),
categoria CHAR(3) NOT NULL,
CONSTRAINT RI_cat CHECK (categoria='TEU'
categoria='CEU'),
dpto CHAR(5),

OR

categoria='CU'

OR

CONSTRAINT CP_prof PRIMARY KEY (codigo),


CONSTRAINT
Caj_prof_dpto
FOREIGN
KEY
Departamento(codigo));

(dpto)

REFERENCES

Como puede verse, la tabla profesor tiene definidas las restricciones de integridad de:
tratamiento de no nulos para las columnas:
cdigo
nombre
categora
restricciones de integridad estticas con la clusula check llamada RI_cat para la
columna categora, que delimita el rango de valores que puede contener la columna
a tres cadenas de caracteres, TEU, CU y CEU.
tratamiento de clave primaria denominada CP_prof para la columna cdigo
tratamiento de clave ajena denominada Caj_prof_dpto de la columna dpto haciendo
referencia a la tabla departamento.
CREATE TABLE Asignatura
(codigo CHAR(5) NOT NULL,
nombre VARCHAR(100) NOT NULL,
cre_teo NUMBER(3,1) NOT NULL,
CONSTRAINT RI_teo CHECK (cre_teo>0),
cre_pra NUMBER(3,1) NOT NULL,
CONSTRAINT RI_teo1 CHECK (cre_pra>0),
dpto CHAR(5),
CONSTRAINT CP_asg PRIMARY KEY (codigo),
CONSTRAINT
Caj_asg_dpto1
FOREIGN
KEY
Departamento(codigo));

(dpto)

REFERENCES

La tabla asignatura tiene definidas las restricciones de integridad de:


tratamiento de no nulos para las columnas:
cdigo
nombre
cre_teo
cre_pra
restricciones de integridad estticas con la clusula check para las columnas:
cre_teo (denominada RI_teo)
cre_pra (denominada RI_pra)
tratamiento de clave primaria denominada CP_asg para la columna cdigo
tratamiento de clave ajena denominada Caj_asg_dpto de la columna dpto haciendo
referencia a la tabla departamento.
CREATE TABLE Docencia
(cod_prof CHAR(5) NOT NULL,
cod_asg CHAR(5) NOT NULL,
creditos NUMBER(3,1) NOT NULL,
CONSTRAINT RI_cre CHECK (creditos>0),
CONSTRAINT CP_doc PRIMARY KEY (cod_prof, cod_asg),
CONSTRAINT Caj_doc_prof FOREIGN KEY (cod_prof) REFERENCES Profesor,

CONSTRAINT Caj_doc_asg FOREIGN KEY (cod_asg) REFERENCES Asignatura);


Finalmente, la tabla docencia tiene definidas las restricciones de integridad de:
tratamiento de no nulos para las columnas:
cod_prof
cod_asg
crditos
restricciones de integridad estticas con la clusula check denominada RI_cre para
la columna crditos.
tratamiento de clave primaria denominada CP_doc para la combinacin de columnas
cod_prof y cod_asg.
tratamiento de clave ajena denominada CAj_doc_prof de la columna cod_prof
haciendo referencia a la tabla profesor.
Tratamiento de clave ajena denominada CAj_doc_asg de la columna cod_asg
haciendo referencia a la tabla asignatura.

Potrebbero piacerti anche