You are on page 1of 10

Reglas de Integridad

Reglas de Integridad
Ejemplo

Reglas de Integridad
Integridad Referencial La Integridad referencial tambin vigila que se cumplan las siguientes reglas: No se podr introducir un valor en la tabla relacionada si antes no ha sido introducida en la tabla principal. No se puede eliminar un registro de una tabla principal si existen registros coincidentes en la tabla relacionada. No se puede cambiar un valor de la clave primaria en la tabla principal si el registro tiene registros relacionados.
3

Reglas de Integridad
Relacin EMPLEADOS: Donde edificiodesp y nmerodesp de la relacin EMPLEADOS forman una clave fornea que referencia la relacin DESPACHOS. Debe ocurrir que los valores no nulos de edificiodesp y nmerodesp de la relacin EMPLEADOS estn en la relacin DESPACHOS como valores de edificio y nmero. Relacin DESPACHOS: Por ejemplo, el empleado <40.444.255, Juan Garca, Marina, 120> tiene el valor Marina para edificiodesp, y el valor 120 para nmerodesp, de modo que en la relacin DESPACHOS hay un despacho con valor Marina para edificio y con valor 120 para nmero.
4

Reglas de Integridad
Usar la sintaxis FOREIGN KEY(campo_fk) REFERENCES nombre_tabla(nombre_campo)

Reglas de Integridad
InnoDB no crea de manera automtica ndices en las claves forneas o en las claves referenciadas, as que debemos crearlos de manera explcita. Los ndices son necesarios para que la verificacin de las claves forneas sea ms rpida.

Reglas de Integridad
CREATE TABLE cliente ( id_cliente INT NOT NULL, nombre VARCHAR(30), PRIMARY KEY (id_cliente) ) TYPE = INNODB; CREATE TABLE venta ( id_factura INT NOT NULL, id_cliente INT NOT NULL, cantidad INT, PRIMARY KEY(id_factura), INDEX (id_cliente), FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente) ) TYPE = INNODB;

Reglas de Integridad
Ejercicio 1: CREATE TABLE parent (id INT NOT NULL, PRIMARY KEY (id) ) ENGINE=INNODB;

CREATE TABLE child (id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ) ENGINE=INNODB;

Reglas de Integridad
Ejercicio 1: CASCADE: Borra o actualiza el registro en la tabla padre y automticamente borra o actualiza los registros coincidentes en la tabla hija

Reglas de Integridad
Ejercicio 2: CREATE TABLE product_order ( no INT NOT NULL AUTO_INCREMENT, product_category INT NOT NULL, product_id INT NOT NULL, customer_id INT NOT NULL, PRIMARY KEY(no), INDEX (product_category, product_id), FOREIGN KEY (product_category, product_id) REFERENCES product(category, id) ON UPDATE CASCADE ON DELETE RESTRICT, INDEX (customer_id), FOREIGN KEY (customer_id) REFERENCES customer(id) ) ENGINE=INNODB;
10

You might also like