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 21 El mo<strong>de</strong>lo relacional y el álgebra relacional<br />

4. Reglas <strong>de</strong> integridad<br />

Una base <strong>de</strong> <strong>datos</strong> contiene unos <strong>datos</strong> que, en cada momento, <strong>de</strong>ben reflejar<br />

la realidad o, más concretamente, la situación <strong>de</strong> una porción <strong>de</strong>l mundo real.<br />

En el caso <strong>de</strong> las bases <strong>de</strong> <strong>datos</strong> relacionales, esto significa que la extensión <strong>de</strong><br />

las relaciones (es <strong>de</strong>cir, las tuplas que contienen las relaciones) <strong>de</strong>ben tener valores<br />

que reflejen la realidad correctamente.<br />

Suele ser bastante frecuente que <strong>de</strong>terminadas configuraciones <strong>de</strong> valores para<br />

las tuplas <strong>de</strong> las relaciones no tengan sentido, porque no representan ninguna<br />

situación posible <strong>de</strong>l mundo real.<br />

Un sueldo negativo<br />

En la relación <strong>de</strong> esquema EMPLEADOS(DNI, nombre, apellido, sueldo), una tupla que tiene<br />

un valor <strong>de</strong> –1.000 para el sueldo probablemente no tiene sentido, porque los sueldos no pue<strong>de</strong>n<br />

ser negativos.<br />

Denominamos integridad la propiedad <strong>de</strong> los <strong>datos</strong> <strong>de</strong> correspon<strong>de</strong>r a<br />

representaciones plausibles <strong>de</strong>l mundo real.<br />

Como es evi<strong>de</strong>nte, para que los <strong>datos</strong> sean íntegros, es preciso que cumplan<br />

varias condiciones.<br />

El hecho <strong>de</strong> que los sueldos no puedan ser negativos es una condición que se <strong>de</strong>bería cumplir<br />

en la relación EMPLEADOS.<br />

En general, las condiciones que garantizan la integridad <strong>de</strong> los <strong>datos</strong> pue<strong>de</strong>n<br />

ser <strong>de</strong> dos tipos:<br />

1) Las restricciones <strong>de</strong> integridad <strong>de</strong> usuario son condiciones específicas <strong>de</strong><br />

una base <strong>de</strong> <strong>datos</strong> concreta; es <strong>de</strong>cir, son las que se <strong>de</strong>ben cumplir en una base<br />

<strong>de</strong> <strong>datos</strong> particular con unos usuarios concretos, pero que no son necesariamente<br />

relevantes en otra base <strong>de</strong> <strong>datos</strong>.<br />

Restricción <strong>de</strong> integridad <strong>de</strong> usuario en EMPLEADOS<br />

Éste sería el caso <strong>de</strong> la condición anterior, según la cual los sueldos no podían ser negativos.<br />

Observad que esta condición era necesaria en la base <strong>de</strong> <strong>datos</strong> concreta <strong>de</strong> este ejemplo porque<br />

aparecía el atributo sueldo, al que se quería dar un significado; sin embargo, podría no ser<br />

necesaria en otra base <strong>de</strong> <strong>datos</strong> diferente don<strong>de</strong>, por ejemplo, no hubiese sueldos.<br />

2) Las reglas <strong>de</strong> integridad <strong>de</strong> mo<strong>de</strong>lo, en cambio, son condiciones más generales,<br />

propias <strong>de</strong> un mo<strong>de</strong>lo <strong>de</strong> <strong>datos</strong>, y se <strong>de</strong>ben cumplir en toda base <strong>de</strong><br />

<strong>datos</strong> que siga dicho mo<strong>de</strong>lo.<br />

Ejemplo <strong>de</strong> regla <strong>de</strong> integridad <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> <strong>datos</strong> relacional<br />

En el caso <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> <strong>datos</strong> relacional, habrá una regla <strong>de</strong> integridad para garantizar<br />

que los valores <strong>de</strong> una clave primaria <strong>de</strong> una relación no se repitan en tuplas diferentes

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

Saved successfully!

Ooh no, something went wrong!