Sei sulla pagina 1di 8

ndice

1 Introduccin

Bases de Datos (IG18)


Tema 3: El modelo relacional. Reglas de integridad en el modelo relacional

2 Claves 3 Reglas de Integridad del MRD

Restauracin de la Integridad referencial


4 Las Doce Reglas de Codd

http://www.unoweb-s.uji.es/IG18/

5 SQL 6 Anexo 1. Base de Datos de Proveedores 7 Anexo 2. Base de Datos de Facturas 8 Anexo 3. Base de Datos de Ciclistas

Curso 2006-2007

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

1 / 29

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

2 / 29

Objetivos

Bibliografa

Objetivos

Bibliografa
M. Celma, J.C. Casamayor, L. Mota, Bases de datos relacionales. Ed.
Prentice Hall. [QA76.9.D26 C453 2003]

Conocer los distintos tipos de claves que existen en el modelo

R. Elmasri, S. B. Navathe. Fundamentos de sistemas de bases de datos. 3a


edicin, Addison-Wesley Ed. [QA76.9.D3 E4618 2002]

relacional
Conocer qu son las reglas de integridad en el modelo relacional

C. J. Date. An Introduction to database systems Addison-Wesley Ed. 2004.


[QA76.9.D3 D38 2004]

y saber utilizarlas para denir tablas del MRD.


Conocer y saber denir y utilizar las reglas que permiten restaurar

T. Connolly, C. Begg, A. Strachan. Database systems a practical approach to


design, implementation, and management. Addison-Wesley Ed. 2001 [QA76.9.D26 C66 2001]

la integridad referencial.

M. Marqus, Apuntes de Ficheros y Bases de Datos, Servicio de


Publicaciones de la UJI. http://nuvol.uji.es/~mmarques/f47/apun/

Wikipedia http://es.wikipedia.org/ y http://en.wikipedia.org/

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

3 / 29

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

4 / 29

Introduccin

Introduccin

Introduccin
Las bases de datos se descomponen en un conjunto de valores que reejan la realidad. No todos los posibles conjuntos de valores tienen sentido.
0 1 2 ... 99 nombre de la relacion clave primaria dominio DOM_DTO

Introduccin
Por tanto resulta necesario ampliar la denicin de las bases de datos para que incluya ciertas Reglas de Integridad (restriccin que debe cumplirse sobre una BD en todos sus estados). La mayora de las reglas de integridad son especcas de la base de datos, depende de la semntica del problema (reglas de negocio)

FACTURAS
codfac 3211 fecha
23/12/2002 12/11/2002 21/12/2002 30/12/2002 12/12/2002

codcli 23 25 23 20 2
grado

codven 14 9 14 1 145

iva 16 16 7 7

dto 0 15 0 10

atributos

Afectan a un solo atributo: 0 <= cant <= 1000 Afectan a varios atributos: dto <= iva

cardinalidad

3212 3213 3214 3215

tuplas

Pero existen unas reglas o metareglas generales asociadas al modelo relacional, que se reeren a las claves primarias y a las claves ajenas Adems existen las restricciones de dominios: El nombre de la provincia slo puede ser: Castelln, Valencia o Alicante DOM_PROV: {Castelln, Valencia, Alicante}

Puede haber dos facturas con el mismo cdigo? Puede haber una factura sin fecha de emisin? Puede contener el cdigo de cliente el valor SQ1? Puede contener el cdigo de vendedor un valor que no aparece en la tabla vendedores? (Universitat Jaume I) Reglas de integridad Curso 2006-2007 5 / 29 (Universitat Jaume I) Reglas de integridad Curso 2006-2007 6 / 29

Claves

Claves

Claves
Superclave: atributo o cto. de atributos que identican de modo nico las tuplas de una relacin. Clave candidata: superclave en la que ninguno de sus subconjuntos es una superclave de la relacin. Debe satisfacer:
1 Unicidad 2 Irreducibilidad (minimalidad)

Claves
Clave ajena: atributo o cto. de atributos cuyos valores deben coincidir con los de la clave primaria de otra relacin. Las Claves ajenas, son el mecanismo que proporciona el MRD para expresar vnculos (interrelacin, asociacin) entre entidades (relaciones, tablas) a modo de referencia. Diagramas referenciales: codcli ----------> CLIENTES

Clave primaria: clave candidata que se escoge para identicar las tuplas de modo nico. Las claves primarias constituyen el mecanismo de direccionamiento de tuplas de un sistema relacional. Clave alternativa: Toda clave candidata que no se elige como primaria.

FACTURAS

La clave ajena codcli de la tabla FACTURAS hace referencia a la clave primaria de la tabla CLIENTES: cliente al que corresponde la factura

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

7 / 29

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

8 / 29

Claves

Claves

Claves Ajenas: codcli codven codpue ... ...

Claves
CLIENTES VENDEDORES PUEBLOS PUEBLOS codpue

Claves
Clave ajena y clave primaria a la que referencia deben pertenecer al mismo
dominio.

FACTURAS FACTURAS

Camino referencial de Rn a R1 : Rn > . . . > R2 > R1


FACTURAS codfac fecha
00001 00002 00003 00020 00012 00014 00301 21/11/2002 12/11/2002 21/11/2002 21/11/2002 21/11/2002 21/11/2002 21/11/2002

Facturas ----> Clientes ----> Pueblos ----> Provincias


codcli codven
00001 00321 00001 00012 00322 00321 119 002 002 160 119 122 001

dto
2 0 2 0 2 5 2

iva
7 16 7 16 7 0 7

Auto-referencia : R1 > R1
Vendedores ----> Vendedores

Ciclo referencial sobre Rn : Rn > . . . > R2 > R1 > Rn


CLIENTES
codcli 00001 00012 00321 00322 nombre direccioncodpostal codpue Juan Rosa Ferran Mayor, 15 Roser, 23 Serpis, 1 12001 12002 12100 12100 12341 12341 12412 12412

Habitantes ----> Pueblos ----> Provincias ----> Habitantes

Las claves ajenas de las relaciones base pueden contener nulos.


El requisito de que los valores de clave ajena coincidan con los valores de una determinada clave primaria es el pegamento que mantiene unidas las distintas relaciones de la base de datos.

NULL

Antonio Mayor, 23

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

9 / 29

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

10 / 29

Reglas de Integridad del MRD

Reglas de Integridad del MRD

Reglas de Integridad del MRD

Reglas de Integridad del MRD


Regla de Integridad Referencial: Si en una relacin hay alguna clave ajena, sus valores deben coincidir con valores de la clave primaria a la que hace referencia, o bien, deben ser todos nulos. La Base de Datos no debe contener Valores de Clave Ajena sin concordancia. Es decir, para cualquier valor no nulo de la clave ajena existe un valor asociado en la clave primaria de la relacin objetivo. El modelo relacional incluye, implcitamente, restricciones de dominios: al denir cada atributo sobre un dominio, se impone una restriccin sobre el conjunto de valores permitidos para cada atributo.

Regla de Integridad de Entidades: Ninguno de los atributos que componen la clave primaria puede ser nulo. En una base de datos relacional nunca se almacena informacin de algo que no se puede identicar!! Observaciones: La regla se aplica a las relaciones base (parte directa de la base de datos). La regla se aplica slo a la clave primaria (no a las claves alternativas).

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

11 / 29

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

12 / 29

Reglas de Integridad del MRD

Restauracin de la Integridad referencial

Reglas de Integridad del MRD

Restauracin de la Integridad referencial

Restauracin de la Integridad referencial


La regla de integridad referencial se enmarca en trminos de estados de la base de datos: nos dice lo qu es un estado ilegal pero no nos dice cmo podemos evitarlo!! Qu hacer si estando en un estado legal, llega una operacin que conduce a un estado ilegal? Existen dos opciones:
Rechazar la operacin. Aceptar la operacin y realizar operaciones adicionales
FACTURAS codfac fecha
00001 00002 00003 00020 00012 00014 00301 21/11/2002 12/11/2002 21/11/2002 21/11/2002 21/11/2002 21/11/2002 21/11/2002

Restauracin de la Integridad referencial


Qu ocurre si se realiza un borrado (o modificacin) de un dato que viola la integridad referencial?
codcli codven
00001 00321 00001 00012 00322 00321 119 002 002 160 119 122 001

dto
2 0 2 0 2 5 2

iva
7 16 7 16 7 0 7

CLIENTES
codcli 00001 00012 00321 00322 nombre direccioncodpostal codpue Juan Rosa Ferran Mayor, 15 Roser, 23 Serpis, 1 12001 12002 12100 12100 12341 12341 12412 12412

compensatorias que conduzcan a un estado legal. Es tarea del diseador de la base de datos indicar qu operaciones se deben rechazar y cuales requieren operaciones adicionales, u operaciones de compensacin.
(Universitat Jaume I) Reglas de integridad Curso 2006-2007 13 / 29

NULL

Antonio Mayor, 23

FACTURAS
(Universitat Jaume I)

codcli

CLIENTES
Reglas de integridad Curso 2006-2007 14 / 29

Reglas de Integridad del MRD

Restauracin de la Integridad referencial

Reglas de Integridad del MRD

Restauracin de la Integridad referencial

Restauracin de la Integridad referencial


Regla de los nulos: Tiene sentido que la clave ajena acepte nulos? Regla de borrado: Qu hacer si se intenta borrar la tupla a la que hace referencia una clave ajena?
Restringir Propagar Anular
LINEAS_FAC FACTURAS VENDEDORES VENDEDORES

Restauracin de la Integridad referencial


ejemplo: Dadas la siguientes reglas de borrado y modicacin Se puede borrar la provincia de Castelln?

codart codven codjefe codpue

ARTICULOS VENDEDORES VENDEDORES PUEBLOS

no s s no

restringir anular restringir restringir

Propagar Propagar Propagar Propagar

Regla de modicacin: Qu hacer si se intenta modicar el valor de la clave primaria de la tupla a la que hace referencia una clave ajena?
Restringir Propagar Anular

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

15 / 29

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

16 / 29

Las Doce Reglas de Codd

Las Doce Reglas de Codd

Las Doce Reglas de Codd


Regla 0, Rebla bsica: Para que un sistema se denomine sistema de gestin
de bases de datos relacionales, este sistema debe usar (exclusivamente) sus capacidades relacionales para gestionar la base de datos. Regla 1, de la informacin: Toda la informacin en una base de datos relacional se representa explcitamente en el nivel lgico exactamente de una manera: con valores en tablas. Regla 2, del acceso garantizado: Para todos y cada uno de los datos (valores atmicos) de una BDR se garantiza que son accesibles a nivel lgico utilizando una combinacin de nombre de tabla, valor de clave primaria y nombre de columna. Regla 3: Tratamiento sistemtico de valores nulos: Los valores nulos (que son distintos de la cadena vaca, blancos, 0, ...) se soportan en los SGBD totalmente relacionales para representar informacin desconocida o no aplicable de manera sistemtica, independientemente del tipo de datos. Regla 4: Catlogo dinmico en lnea basado en el modelo relacional: La descripcin de la base de datos se representa a nivel lgico de la misma manera que los datos normales, de modo que los usuarios autorizados pueden aplicar el mismo lenguaje relacional a su consulta, igual que lo aplican a los datos normales.
(Universitat Jaume I) Reglas de integridad Curso 2006-2007 17 / 29

Las Doce Reglas de Codd


Regla 5: Regla del sublenguaje de datos completo: Un sistema relacional
debe soportar varios lenguajes y varios modos de uso de terminal (ej: rellenar formularios, etc.). Sin embargo, debe existir al menos un lenguaje cuyas sentencias sean expresables, mediante una sintaxis bien denida, como cadenas de caracteres y que sea completo, soportando:

Denicin de datos Denicin de vistas Manipulacin de datos Reglas de integridad Reglas de transaccin (Begin, commit, rollback).

Regla 6: Regla de actualizacin de vistas: Todas las vistas que son


tericamente actualizables se pueden actualizar por el sistema.

Regla 7: Insercin, actualizacin y borrado de alto nivel: La capacidad de


manejar una relacin base o derivada como un solo operando se aplica no slo a la recuperacin de los datos (consultas), si no tambin a la insercin, actualizacin y borrado de datos.
(Universitat Jaume I) Reglas de integridad Curso 2006-2007 18 / 29

Las Doce Reglas de Codd

SQL

Las Doce Reglas de Codd


Regla 8: Independencia fsica de datos: Los programas de aplicacin y
actividades del terminal permanecen inalterados a nivel lgico cuandoquiera que se realicen cambios en las representaciones de almacenamiento o mtodos de acceso.

SQL

Regla 9: Independencia lgica de datos: Los programas de aplicacin y


actividades del terminal permanecen inalterados a nivel lgico cuandoquiera que se realicen cambios a las tablas base que preserven la informacin.

Al crear una tabla con la orden CREATE TABLE se pueden denir las reglas de integridad y las reglas para las claves ajenas.
CREATE TABLE nombre ( nombreCol1 tipo [Modificadores de columna], nombreCol2 tipo [Modificadores de columna], ... nombreColn tipo [Modificadores de columna], modificadores globales de tabla);

Regla 10: Independencia de integridad: Las reglas de integridad especcas


para una determinada base de datos relacional deben poder ser denidos en el sublenguaje de datos relacional, y almacenables en el catlogo, no en los programas de aplicacin.

Regla 11: Independencia de distribucin: Las mismas rdenes y programas


se ejecutan igual en una BD centralizada que en una distribuida.

Regla 12: Regla de la no subversin: Si un sistema relacional tiene un


lenguaje de bajo nivel (un registro de cada vez), ese bajo nivel no puede ser usado para saltarse (subvertir) las reglas de integridad.
(Universitat Jaume I) Reglas de integridad Curso 2006-2007 19 / 29 (Universitat Jaume I) Reglas de integridad Curso 2006-2007 20 / 29

SQL

SQL

SQL
Clave Primaria (PRIMARY KEY):
Permite declarar un atributo o un conjunto de atributos como clave

SQL
Integridad Referencial (FOREING KEY):

primaria de una relacin.


sus valores no se podrn repetir ni se admitirn los nulos (o valores ausentes). Ni el SQL92 ni los SGBDs relacionales obligan a la declaracin de una clave primaria para cada tabla (el modelo terico s la impone), aunque permiten la denicin de la misma.

Segn el estndar SQL92, se pueden denir las siguientes opciones de Borrado y Modicacin en Claves Ajenas:
RESTRICT / NO ACTION: rechazar la operacin de borrado o

modicacin.
CASCADE: propagar el borrado o modicacin de las tuplas de la

tabla que referencia.


SET NULL: poner valor nulo en la Clave ajena de la tabla que

Unicidad (UNIQUE): Los valores de un conjunto de atributos (uno

referencia.
SET DEFAULT: poner un valor por defecto en la CA de la tabla que

o ms) no pueden repetirse en una relacin. Esta restriccin permite la denicin de claves alternativas.
Obligatoriedad (NOT NULL): El conjunto de atributos no admite

referencia.

valores nulos.

NOTA: Ambos modos (de borrado y de modicacin) son independientes, es decir, cada uno tomar una de las cuatro opciones por separado.
(Universitat Jaume I) Reglas de integridad Curso 2006-2007 22 / 29

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

21 / 29

SQL

SQL

SQL
Reglas de integridad: el usuario formula una condicin mediante

SQL

un predicado denido sobre un conjunto de atributos, tuplas o dominios, que debe ser vericado en toda operacin de actualizacin para que el nuevo estado constituya una ocurrencia vlida del esquema. En SQL92 existen dos clases:
Vericacin (CHECK): Comprueba, en toda operacin de

Disparador (trigger): Restriccin en la que el usuario pueda

actualizacin, si el predicado es cierto o falso y, en el segundo caso, rechaza la operacin. La restriccin de vericacin se dene sobre un nico elemento (dentro de un CREATE TABLE) y puede o no tener nombre. Asercin (ASSERTION): Acta de forma idntica a la anterior, pero se diferencia de ella en que puede afectar a varios elementos (por ejemplo, a dos tablas distintas). Por tanto, su denicin no va unida a la de un determinado elemento del esquema y siempre ha de tener un nombre.
(Universitat Jaume I) Reglas de integridad Curso 2006-2007 23 / 29

especicar libremente la respuesta (accin) ante una determinada condicin. As como las anteriores reglas de integridad son declarativas, los disparadores son procedimentales, siendo preciso que el usuario escriba el procedimiento que ha de aplicarse en caso de que se cumpla la condicin.

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

24 / 29

SQL

SQL

SQL
CREATE TABLE facturas ( codfac NUMERIC(6) NOT NULL, fecha DATE NOT NULL, codcli NUMERIC(5), codven NUMERIC(5), iva NUMERIC(2), dto NUMERIC(2), CONSTRAINT cp_facturas PRIMARY KEY (codfac), CONSTRAINT ca_fac_cli FOREIGN KEY (codcli) REFERENCES clientes ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT ca_fac_ven FOREIGN KEY (codven) REFERENCES vendedores ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT ri_dto_fac CHECK ( dto BETWEEN 0 AND 50 ));

SQL

CREATE TABLE vendedores( codven NUMERIC(5) NOT NULL, nombre VARCHAR(50) NOT NULL, direccion VARCHAR(50) NOT NULL, codpostal VARCHAR(5), codpue VARCHAR(5) NOT NULL, codjefe NUMERIC(5), CONSTRAINT cp_vendedores PRIMARY KEY (codven), CONSTRAINT ca_ven_pue FOREIGN KEY (codpue) REFERENCES pueblos ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT ca_ven_ven FOREIGN KEY (codjefe) REFERENCES vendedores ON DELETE RESTRICT ON UPDATE CASCADE);

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

25 / 29

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

26 / 29

Anexo 1. Base de Datos de Proveedores

Anexo 2. Base de Datos de Facturas

Anexo 1. Base de Datos de Proveedores

Anexo 2. Base de Datos de Facturas


propagar
LINEAS_FAC codfac linea cant codart dto precio FACTURAS codfac fecha codcli codven iva dto

anular

anular

CLIENTES codcli nombre PROVINCIAS direccion codpostal restringir codpro nombre codpue PUEBLOS codpue nombre codpro

ARTICULOS codart descrip restringir precio stock stock_min

restringir

VENDEDORES codven nombre direccion codpostal codpue codjefe

propagar

restringir

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

27 / 29

(Universitat Jaume I)

Reglas de integridad

Curso 2006-2007

28 / 29

Anexo 3. Base de Datos de Ciclistas

Anexo 3. Base de Datos de Ciclistas


rest. PUERTO nompuerto altura categoria pendiente dorsal numetapa CICLISTA dorsal nombre aonacim nomequipo rest. EQUIPO nomequipo director patrocinador presupuesto

rest. LLEVA codigo numetapa dorsal rest. prop. PUESTO prop. dorsal numetapa posicion tiempo
Curso 2006-2007 29 / 29

prop.

rest.

ETAPA numetapa kms salida llegada dorsal

prop.

MAILLOT codigo tipo color premio

(Universitat Jaume I)

Reglas de integridad

Potrebbero piacerti anche