You are on page 1of 13

FUOC 71Z799014MO El modelo relacional y el lgebra relacional

4. Reglas de integridad
Una base de datos contiene unos datos ue! en cada momento! deben re"le#ar la realidad o!
ms concretamente! la situaci$n de una %orci$n del mundo real&
En el caso de las bases de datos relacionales! esto signi"ica ue la e'tensi$n de las
relaciones (es decir! las tu%las ue contienen las relaciones) deben tener *alores ue re"le#en
la realidad correctamente&
+uele ser bastante "recuente ue determinadas con"iguraciones de *alores %ara las tu%las de
las relaciones no tengan sentido! %orue no re%resentan ninguna situaci$n %osible del mundo
real&
Un sueldo negativo
En la relaci$n de esuema EM,-E./O+(/01! nombre! a%ellido! sueldo)! una tu%la ue tiene un *alor
de 21&000 %ara el sueldo %robablemente no tiene sentido! %orue los sueldos no %ueden ser negati*os&
/enominamos integridad la %ro%iedad de los datos de corres%onder a
re%resentaciones %lausibles del mundo real&
Como es e*idente! %ara ue los datos sean 3ntegros! es %reciso ue cum%lan *arias
condiciones&
El 4ec4o de ue los sueldos no %uedan ser negati*os es una condici$n ue se deber3a cum%lir en la
relaci$n EM,-E./O+&
En general! las condiciones ue garanti5an la integridad de los datos %ueden ser de dos
ti%os6
1) -as restricciones de integridad de usuario son condiciones es%ec3"icas de una base de
datos concreta7 es decir! son las ue se deben cum%lir en una base de datos %articular con
unos usuarios concretos! %ero ue no son necesariamente rele*antes en otra base de datos&
Restriccin de integridad de usuario en EMPLEADOS
8ste ser3a el caso de la condici$n anterior! seg9n la cual los sueldos no %od3an ser negati*os& Obser*ad
ue esta condici$n era necesaria en la base de datos concreta de este e#em%lo %orue a%arec3a el
atributo sueldo! al ue se uer3a dar un signi"icado7 sin embargo! %odr3a no ser necesaria en otra base
de datos di"erente donde! %or e#em%lo! no 4ubiese sueldos&
:) -as reglas de integridad de modelo! en cambio! son condiciones ms generales! %ro%ias
de un modelo de datos! y se deben cum%lir en toda base de datos ue siga dic4o modelo&
Ejemplo de regla de integridad del modelo de datos relacional
En el caso del modelo de datos relacional! 4abr una regla de integridad %ara garanti5ar ue los *alores
1
FUOC 71Z799014MO El modelo relacional y el lgebra relacional
de una cla*e %rimaria de una relaci$n no se re%itan en tu%las di"erentes de la relaci$n& ;oda base de
datos relacional debe cum%lir esta regla ue! %or lo tanto! es una regla de integridad del modelo&
-os +<=/ deben %ro%orcionar la "orma de de"inir las restricciones de integridad de usuario
de una base de datos7 una *e5 de"inidas! deben *elar %or su cum%limiento&
-as reglas de integridad del modelo! en cambio! no se deben de"inir %ara cada base de datos
concreta! %orue se consideran %reestablecidas %ara todas las base de datos de un modelo&
Un +<=/ de un modelo determinado debe *elar %or el cum%limiento de las reglas de
integridad %reestablecidas %or su modelo&
. continuaci$n estudiaremos con detalle las reglas de integridad del modelo relacional!
reglas ue todo +<=/ relacional debe obligar a cum%lir&
4.. Regla de integridad de unicidad de la clave primaria
-a regla de integridad de unicidad est relacionada con la de"inici$n de cla*e %rimaria&
Concretamente! establece ue toda cla*e %rimaria ue se eli#a %ara una relaci$n no debe
tener *alores re%etidos&
Ejemplo
;enemos la siguiente relaci$n6
En esta relaci$n! dado ue la cla*e %rimaria est "ormada %or edi"icio y n9mero! no 4ay ning9n
des%ac4o ue re%ita tanto edi"icio como n9mero de otro des%ac4o& +in embargo! s3 se re%iten *alores
de edi"icio (%or e#em%lo! Marina)7 y tambi>n se re%iten *alores de n9mero (1:0)& . %esar de ello! el
edi"icio y el n9mero no se re%iten nunca al mismo tiem%o&
. continuaci$n e'%licamos esta regla de "orma ms %recisa&
-a regla de integridad de unicidad de la clave primaria establece ue si el con#unto
de atributos C, es la cla*e %rimaria de una relaci$n ?! entonces la e'tensi$n de ? no
%uede tener en ning9n momento dos tu%las con la misma combinaci$n de *alores %ara
los atributos de C,&
2
FUOC 71Z799014MO El modelo relacional y el lgebra relacional
Un +<=/ relacional deber garanti5ar el cum%limiento de esta regla de integridad en todas
las inserciones! as3 como en todas las modi"icaciones ue a"ecten a atributos ue %ertenecen
a la cla*e %rimaria de la relaci$n&
Ejemplo
;enemos la siguiente relaci$n6
En esta relaci$n no se deber3a %oder insertar la tu%la @/iagonal! 1:0! A0B! ni modi"icar la tu%la @Marina!
1::! 1CB! de modo ue %asara a ser @Marina! 1:0! 1CB&
4.!. Regla de integridad de entidad de la clave primaria
-a regla de integridad de entidad de la cla*e %rimaria dis%one ue los atributos de la cla*e
%rimaria de una relaci$n no %ueden tener *alores nulos&
Ejemplo
;enemos la siguiente relaci$n6
En esta relaci$n! %uesto ue la cla*e %rimaria est "ormada %or edi"icio y n9mero! no 4ay ning9n
des%ac4o ue tenga un *alor nulo %ara edi"icio! ni tam%oco %ara n9mero&
Esta regla es necesaria %ara ue los *alores de las cla*es %rimarias %uedan identi"icar las
tu%las indi*iduales de las relaciones& +i las cla*es %rimarias tu*iesen *alores nulos! es
%osible ue algunas tu%las no se %udieran distinguir&
3
FUOC 71Z799014MO El modelo relacional y el lgebra relacional
Ejemplo de clave primaria incorrecta con valores nulos
En el e#em%lo anterior! si un des%ac4o tu*iese un *alor nulo %ara edi"icio %orue en un momento dado el
nombre de este edi"icio no se conoce! %or e#em%lo @0U-O! 1:0! A0B! la cla*e %rimaria no nos %ermitir3a
distinguirlo del des%ac4o @Marina! 1:0! 10B ni del des%ac4o @/iagonal! 1:0!10B& 0o %odr3amos estar
seguros de ue el *alor desconocido de edi"icio no es ni Marina ni /iagonal&
. continuaci$n de"inimos esta regla de "orma ms %recisa&
-a regla de integridad de entidad de la cla*e %rimaria establece ue si el con#unto de
atributos C, es la cla*e %rimaria de una relaci$n ?! la e'tensi$n de ? no %uede tener
ninguna tu%la con alg9n *alor nulo %ara alguno de los atributos de C,&
Un +<=/ relacional tendr ue garanti5ar el cum%limiento de esta regla de integridad en
todas las inserciones y! tambi>n! en todas las modi"icaciones ue a"ecten a atributos ue
%ertenecen a la cla*e %rimaria de la relaci$n&
Ejemplo
En la relaci$n /E+,.CDO+ anterior! no se deber3a insertar la tu%la @/iagonal! 0U-O! 1CB& ;am%oco
deber3a ser %osible modi"icar la tu%la @Marina! 1:0! 10B de modo ue %asara a ser @0U-O! 1:0! 10B&
4.". Regla de integridad re#erencial
-a regla de integridad re"erencial est relacionada con el conce%to de clave fornea&
Concretamente! determina ue todos los *alores ue toma una cla*e "ornea deben ser
*alores nulos o *alores ue e'isten en la cla*e %rimaria ue re"erencia&
Ejemplo
+i tenemos las siguientes relaciones6
?elaci$n DESPACHOS6
?elaci$n EMPLEADOS6
4
FUOC 71Z799014MO El modelo relacional y el lgebra relacional
donde edi"iciodes% y n9merodes% de la relaci$n EM,-E./O+ "orman una cla*e "ornea ue re"erencia
la relaci$n /E+,.CDO+& /ebe ocurrir ue los *alores no nulos de edi"iciodes% y n9merodes% de la
relaci$n EM,-E./O+ est>n en la relaci$n /E+,.CDO+ como *alores de edi"icio y n9mero& ,or
e#em%lo! el em%leado @40&444&:CC! Euan <arc3a! Marina! 1:0B tiene el *alor Marina %ara edi"iciodes%! y
el *alor 1:0 %ara n9merodes%! de modo ue en la relaci$n /E+,.CDO+ 4ay un des%ac4o con *alor
Marina %ara edi"icio y con *alor 1:0 %ara n9mero&
-a necesidad de la regla de integridad relacional %ro*iene del 4ec4o de ue las cla*es
"orneas tienen %or ob#eti*o establecer una cone'i$n con la cla*e %rimaria ue re"erencian&
+i un *alor de una cla*e "ornea no estu*iese %resente en la cla*e %rimaria corres%ondiente!
re%resentar3a una re"erencia o una cone'i$n incorrecta&
Re#erencia incorrecta
+u%ongamos ue en el e#em%lo anterior 4ubiese un em%leado con los *alores @CF&FFF&7G9! ,edro!
-$%e5! Halencia! A:CB& Ia ue no 4ay un des%ac4o con los *alores Halencia y A:C %ara edi"icio y
n9mero! la tu%la de este em%leado 4ace una re"erencia incorrecta7 es decir! indica un des%ac4o %ara el
em%leado ue! de 4ec4o! no e'iste&
. continuaci$n e'%licamos la regla de modo ms %reciso&
-a regla de integridad re#erencial establece ue si el con#unto de atributos CF es
una cla*e "ornea de una relaci$n ? ue re"erencia una relaci$n + (no necesariamente
di"erente de ?)! ue tiene %or cla*e %rimaria C,! entonces! %ara toda tu%la t de la
e'tensi$n de ?! los *alores %ara el con#unto de atributos CF de t son *alores nulos! o
bien *alores ue coinciden con los *alores %ara C, de alguna tu%la s de +&
En el caso de ue una tu%la t de la e'tensi$n de ? tenga *alores %ara CF ue
coincidan con los *alores %ara C, de una tu%la s de +! decimos ue t es una tu%la ue
re"erencia s y ue s es una tu%la ue tiene una cla*e %rimaria re"erenciada %or t&
Un +<=/ relacional tendr ue 4acer cum%lir esta regla de integridad& /eber e"ectuar
com%robaciones cuando se %rodu5can las siguientes o%eraciones6
a) 1nserciones en una relaci$n ue tenga una cla*e "ornea&
5
FUOC 71Z799014MO El modelo relacional y el lgebra relacional
b) Modi"icaciones ue a"ecten a atributos ue %ertenecen a la cla*e "ornea de una relaci$n&
c) =orrados en relaciones re"erenciadas %or otras relaciones&
d) Modi"icaciones ue a"ecten a atributos ue %ertenecen a la cla*e %rimaria de una relaci$n
re"erenciada %or otra relaci$n&
Ejemplo
?etomamos el e#em%lo anterior! donde edi"iciodes% y n9merodes% de la relaci$n EM,-E./O+ "orman
una cla*e "ornea ue re"erencia la relaci$n /E+,.CDO+6
?elaci$n DESPACHOS6
?elaci$n EMPLEADOS6
-as siguientes o%eraciones %ro*ocar3an el incum%limiento de la regla de integridad re"erencial6
1nserci$n de @1:&7F4&411! Eorge! ,uig! /iagonal! ::0B en EM,-E./O+&
Modi"icaci$n de @40&444&:CC! Euan! <arc3a! Marina! 1:0B de EM,-E./O+ %or @40&444&:CC! Euan!
<arc3a! Marina! 400B&
=orrado de @Marina! 1:0! 10B de /E+,.CDO+&
Modi"icaci$n de @/iagonal! 1:0! 10B de /E+,.CDO+ %or @,ar3s! 1:0! 10B&
Un +<=/ relacional debe %rocurar ue se cum%lan las reglas de integridad del modelo& Una
"orma 4abitual de mantener estas reglas consiste en rec4a5ar toda o%eraci$n de
actuali5aci$n ue de#e la base de datos en un estado en el ue alguna regla no se cum%la&
En algunos casos! sin embargo! el +<=/ tiene la %osibilidad de ace%tar la o%eraci$n y
6
FUOC 71Z799014MO El modelo relacional y el lgebra relacional
e"ectuar acciones adicionales com%ensatorias! de modo ue el estado ue se obtenga
satis"aga las reglas de integridad! a %esar de 4aber e#ecutado la o%eraci$n&
Esta 9ltima %ol3tica se %uede a%licar en las siguientes o%eraciones de actuali5aci$n ue
*iolar3an la regla de integridad6
a) =orrado de una tu%la ue tiene una cla*e %rimaria re"erenciada&
b) Modi"icaci$n de los *alores de los atributos de la cla*e %rimaria de una tu%la ue tiene una
cla*e %rimaria re"erenciada&
En los casos anteriores! algunas de las %ol3ticas ue se %odrn a%licar sern las siguientes6
restriccin$ actuali%acin en cascada y anulacin& . continuaci$n e'%licamos el
signi"icado de las tres %osibilidades mencionadas&
4.".. Restriccin
-a %ol3tica de restricci$n consiste en no ace%tar la o%eraci$n de actuali5aci$n&
Ms concretamente! la restriccin en caso de &orrado! consiste en no %ermitir borrar
una tu%la si tiene una cla*e %rimaria re"erenciada %or alguna cla*e "ornea&
/e "orma similar! la restriccin en caso de modi#icacin consiste en no %ermitir
modi"icar ning9n atributo de la cla*e %rimaria de una tu%la si tiene una cla*e %rimaria
re"erenciada %or alguna cla*e "ornea&
Ejemplo de aplicacin de la restriccin
+u%ongamos ue tenemos las siguientes relaciones6
?elaci$n CLIENTES6
?elaci$n PEDIDOS_PENDIENTES
7
FUOC 71Z799014MO El modelo relacional y el lgebra relacional
J KnumclienteL re"erencia C-1E0;E+&
a) +i a%licamos la restricci$n en caso de borrado y! %or e#em%lo! ueremos borrar al cliente n9mero 10!
no %odremos 4acerlo %orue tiene %edidos %endientes ue lo re"erencian&
b) +i a%licamos la restricci$n en caso de modi"icaci$n y ueremos modi"icar el n9mero del cliente 1C! no
ser %osible 4acerlo %orue tambi>n tiene %edidos %endientes ue lo re"erencian&
4.".!. Actuali%acin en cascada
-a %ol3tica de actuali5aci$n en cascada consiste en %ermitir la o%eraci$n de actuali5aci$n de
la tu%la! y en e"ectuar o%eraciones com%ensatorias ue %ro%aguen en cascada la
actuali5aci$n a las tu%las ue la re"erenciaban7 se act9a de este modo %ara mantener la
integridad re"erencial&
Ms concretamente! la actuali5aci$n en cascada en caso de borrado consiste en
%ermitir el borrado de una tu%la t ue tiene una cla*e %rimaria re"erenciada! y borrar
tambi>n todas las tu%las ue re"erencian t&
/e "orma similar! la actuali5aci$n en cascada en caso de modi"icaci$n consiste en
%ermitir la modi"icaci$n de atributos de la cla*e %rimaria de una tu%la t ue tiene una
cla*e %rimaria re"erenciada! y modi"icar del mismo modo todas las tu%las ue
re"erencian t&
Ejemplo de aplicacin de la actuali%acin en cascada
+u%ongamos ue tenemos las siguientes relaciones6
?elaci$n E/1F1C1O+6
?elaci$n /E+,.CDO+6
8
FUOC 71Z799014MO El modelo relacional y el lgebra relacional
J Kedi"icioL re"erencia E/1F1C1O+&
a) +i a%licamos la actuali5aci$n en cascada en caso de borrado y! %or e#em%lo! ueremos borrar el
edi"icio /iagonal! se borrar tambi>n el des%ac4o /iagonal 1:0 ue 4ay en el edi"icio! y nos uedar6
?elaci$n E/1F1C1O+6
?elaci$n /E+,.CDO+6
J Kedi"icioL re"erencia E/1F1C1O+&
b) +i a%licamos la actuali5aci$n en cascada en caso de modi"icaci$n! y ueremos modi"icar el nombre
del edi"icio Marina %or Mar! tambi>n se cambiar Marina %or Mar en los des%ac4os Marina 1:0! Marina
1:: y Marina :A0! y nos uedar6
?elaci$n E/1F1C1O+6
?elaci$n /E+,.CDO+6
J Kedi"icioL re"erencia E/1F1C1O+&
4.".". Anulacin
Esta %ol3tica consiste en %ermitir la o%eraci$n de actuali5aci$n de la tu%la y en e"ectuar
o%eraciones com%ensatorias ue %ongan *alores nulos a los atributos de la cla*e "ornea de
9
FUOC 71Z799014MO El modelo relacional y el lgebra relacional
las tu%las ue la re"erencian7 esta acci$n se lle*a a cabo %ara mantener la integridad
re"erencial&
,uesto ue generalmente los +<=/ relacionales %ermiten establecer ue un determinado
atributo de una relaci$n no admite *alores nulos! s$lo se %uede a%licar la %ol3tica de
anulaci$n si los atributos de la cla*e "ornea s3 los admiten&
Ms concretamente! la anulaci$n en caso de borrado consiste en %ermitir el borrado
de una tu%la t ue tiene una cla*e re"erenciada y! adems! modi"icar todas las tu%las
ue re"erencian t! de modo ue los atributos de la cla*e "ornea corres%ondiente
tomen *alores nulos&
/e "orma similar! la anulaci$n en caso de modi"icaci$n consiste en %ermitir la
modi"icaci$n de atributos de la cla*e %rimaria de una tu%la t ue tiene una cla*e
re"erenciada y! adems! modi"icar todas las tu%las ue re"erencian t! de modo ue los
atributos de la cla*e "ornea corres%ondiente tomen *alores nulos&
Ejemplo de aplicacin de la anulacin
El me#or modo de entender en u> consiste la anulaci$n es mediante un e#em%lo& ;enemos las
siguientes relaciones6
?elaci$n HE0/E/O?E+6
?elaci$n C-1E0;E+6
J K*endedorasigL re"erencia HE0/E/O?E+&
a) +i a%licamos la anulaci$n en caso de borrado y! %or e#em%lo! ueremos borrar al *endedor n9mero 1!
se modi"icarn todos los clientes ue lo ten3an asignado! y %asarn a tener un *alor nulo en
*endedorasig& 0os uedar6
10
FUOC 71Z799014MO El modelo relacional y el lgebra relacional
?elaci$n HE0/E/O?E+6
?elaci$n C-1E0;E+6
J K*endedorasigL re"erencia HE0/E/O?E+&
b) +i a%licamos la anulaci$n en caso de modi"icaci$n! y a4ora ueremos cambiar el n9mero del
*endedor : %or C! se modi"icarn todos los clientes ue lo ten3an asignado y %asarn a tener un *alor
nulo en *endedorasig& 0os uedar6
?elaci$n HE0/E/O?E+6
?elaci$n C-1E0;E+6
J K*endedorasigL re"erencia HE0/E/O?E+&
4.".4. Seleccin de la pol'tica de mantenimiento
Demos *isto ue en caso de borrado o modi"icaci$n de una cla*e %rimaria re"erenciada %or
11
FUOC 71Z799014MO El modelo relacional y el lgebra relacional
alguna cla*e "ornea 4ay *arias %ol3ticas de mantenimiento de la regla de integridad
re"erencial&
El diseMador %uede elegir %ara cada cla*e "ornea u> %ol3tica se a%licar en caso de
borrado de la cla*e %rimaria re"erenciada! y cul en caso de modi"icaci$n de >sta& El
diseMador deber tener en cuenta el signi"icado de cada cla*e "ornea concreta %ara %oder
elegir adecuadamente&
4.4. Regla de integridad de dominio
-a regla de integridad de dominio est relacionada! como su nombre indica! con la noci$n de
dominio& Esta regla establece dos condiciones&
-a %rimera condici$n consiste en ue un *alor no nulo de un atributo .i debe
%ertenecer al dominio del atributo .i7 es decir! debe %ertenecer a dominio(.i)&
Esta condici$n im%lica ue todos los *alores no nulos ue contiene la base de datos %ara un
determinado atributo deben ser del dominio declarado %ara dic4o atributo&
Ejemplo
+i en la relaci$n EM,-E./O+(/01! nombre! a%ellido! edadem%) 4emos declarado ue dominio(/01) es
el dominio %rede"inido de los enteros! entonces no %odremos insertar! %or e#em%lo! ning9n em%leado
ue tenga %or /01 el *alor N-uisO! ue no es un entero&
?ecordemos ue los dominios %ueden ser de dos ti%os6 %rede"inidos o de"inidos %or el
usuario& Obser*ad ue los dominios de"inidos %or el usuario resultan muy 9tiles! %orue nos
%ermiten determinar de "orma ms es%ec3"ica cules sern los *alores admitidos %or los
atributos&
Ejemplo
+u%ongamos a4ora ue en la relaci$n EM,-E./O+(/01! nombre! a%ellido! edadem%) 4emos
declarado ue dominio(edadem%) es el dominio de"inido %or el usuario edad& +u%ongamos tambi>n ue
el dominio edad se 4a de"inido como el con#unto de los enteros ue estn entre 1F y FC& En este caso!
%or e#em%lo! no ser %osible insertar un em%leado con un *alor de 90 %ara edadem%&
-a segunda condici$n de la regla de integridad de dominio es ms com%le#a! es%ecialmente
en el caso de dominios de"inidos %or el usuario7 los +<=/ actuales no la so%ortan %ara estos
9ltimos dominios& ,or estos moti*os s$lo la %resentaremos su%er"icialmente&
Esta segunda condicin sir*e %ara establecer ue los o%eradores ue %ueden a%licarse
sobre los *alores de%enden de los dominios de estos *alores7 es decir! un o%erador
determinado s$lo se %uede a%licar sobre *alores ue tengan dominios ue le sean
adecuados&
12
FUOC 71Z799014MO El modelo relacional y el lgebra relacional
Ejemplo
.nali5aremos esta segunda condici$n de la regla de integridad de dominio con un e#em%lo concreto& +i
en la relaci$n EM,-E./O+(/01! nombre! a%ellido! edadem%) se 4a declarado ue dominio(/01) es el
dominio %rede"inido de los enteros! entonces no se %ermitir consultar todos auellos em%leados cuyo
/01 sea igual a PElenaQ (/01 R PElenaQ)& El moti*o es ue no tiene sentido ue el o%erador de
com%araci$n R se a%liue entre un /01 ue tiene %or dominio los enteros! y el *alor PElenaQ! ue es una
serie de caracteres&
/e este modo! el 4ec4o de ue los o%eradores ue se %ueden a%licar sobre los *alores
de%endan del dominio de estos *alores %ermite detectar errores ue se %odr3an cometer
cuando se consulta o se actuali5a la base de datos& -os domi nios de"inidos %or el usuario
son muy 9tiles! %orue nos %ermitirn determinar de "orma ms es%ec3"ica cules sern los
o%eradores ue se %odrn a%licar sobre los *alores&
Ejemplo
Heamos otro e#em%lo con dominios de"inidos %or el usuario& +u%ongamos ue en la conocida relaci$n
EM,-E./O+(/01! nombre! a%ellido! edadem%) se 4a declarado ue dominio(/01) es el dominio
de"inido %or el usuario n9meros/01 y ue dominio(edadem%) es el dominio de"inido %or el usuario edad&
+u%ongamos ue n9meros/01 corres%onde a los enteros %ositi*os y ue edad corres%onde a los
enteros ue estn entre 1F y FC& En este caso! ser incorrecto! %or e#em%lo! consultar los em%leados
ue tienen el *alor de /01 igual al *alor de edadem%&
El moti*o es ue! aunue tanto los *alores de /01 como los de edadem% sean enteros! sus dominios
son di"erentes7 %or ello! seg9n el signi"icado ue el usuario les da! no tiene sentido com%ararlos&
+in embargo! los actuales +<=/ relacionales no dan a%oyo a la segunda condici$n de la
regla de integridad de dominio %ara dominios de"inidos %or el usuario& +i se uisiera 4acer!
ser3a necesario ue el diseMador tu*iese alguna "orma de es%eci"icar! %ara cada o%erador
ue se desease utili5ar! %ara u> combinaciones de dominios de"inidos %or el usuario tiene
sentido ue se a%liue& El lengua#e estndar +S- no incluye actualmente esta %osibilidad&
13

You might also like