06.09.2014 Views

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

© FUOC • 71Z799014MO 27 El mo<strong>de</strong>lo relacional y el álgebra relacional<br />

De forma similar, la restricción en caso <strong>de</strong> modificación consiste en<br />

no permitir modificar ningún atributo <strong>de</strong> la clave primaria <strong>de</strong> una tupla<br />

si tiene una clave primaria referenciada por alguna clave foránea.<br />

Ejemplo <strong>de</strong> aplicación <strong>de</strong> la restricción<br />

Supongamos que tenemos las siguientes relaciones:<br />

• Relación CLIENTES:<br />

CLIENTES<br />

numcliente ...<br />

10 –<br />

15 –<br />

18 –<br />

• Relación PEDIDOS_PENDIENTES<br />

PEDIDOS_PENDIENTES<br />

numped ... numcliente*<br />

1.234 – 10<br />

1.235 – 10<br />

1.236 – 15<br />

* {numcliente} referencia CLIENTES.<br />

a) Si aplicamos la restricción en caso <strong>de</strong> borrado y, por ejemplo, queremos borrar al cliente<br />

número 10, no podremos hacerlo porque tiene pedidos pendientes que lo referencian.<br />

b) Si aplicamos la restricción en caso <strong>de</strong> modificación y queremos modificar el número <strong>de</strong>l<br />

cliente 15, no será posible hacerlo porque también tiene pedidos pendientes que lo referencian.<br />

4.3.2. Actualización en cascada<br />

La política <strong>de</strong> actualización en cascada consiste en permitir la operación <strong>de</strong> actualización<br />

<strong>de</strong> la tupla, y en efectuar operaciones compensatorias que propaguen<br />

en cascada la actualización a las tuplas que la referenciaban; se actúa <strong>de</strong><br />

este modo para mantener la integridad referencial.<br />

Más concretamente, la actualización en cascada en caso <strong>de</strong> borrado<br />

consiste en permitir el borrado <strong>de</strong> una tupla t que tiene una clave primaria<br />

referenciada, y borrar también todas las tuplas que referencian t.<br />

De forma similar, la actualización en cascada en caso <strong>de</strong> modificación<br />

consiste en permitir la modificación <strong>de</strong> atributos <strong>de</strong> la clave primaria<br />

<strong>de</strong> una tupla t que tiene una clave primaria referenciada, y modificar<br />

<strong>de</strong>l mismo modo todas las tuplas que referencian t.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!