El modelo relacional y el álgebra relacional - Dataprix
El modelo relacional y el álgebra relacional - Dataprix
El modelo relacional y el álgebra relacional - Dataprix
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
© FUOC • P06/M2109/02148 14 <strong>El</strong> <strong>mod<strong>el</strong>o</strong> <strong>r<strong>el</strong>acional</strong> y <strong>el</strong> álgebra <strong>r<strong>el</strong>acional</strong><br />
2.4. Clave candidata, clave primaria y clave alternativa<br />
de las r<strong>el</strong>aciones<br />
Toda la información que contiene una base de datos debe poderse identificar<br />
de alguna forma. En <strong>el</strong> caso particular de las bases de datos que siguen <strong>el</strong> <strong>mod<strong>el</strong>o</strong><br />
<strong>r<strong>el</strong>acional</strong>, para identificar los datos que la base de datos contiene, se pueden<br />
utilizar las claves candidatas de las r<strong>el</strong>aciones. A continuación definimos<br />
qué se entiende por clave candidata, clave primaria y clave alternativa de una r<strong>el</strong>ación.<br />
Para hacerlo, será necesario definir <strong>el</strong> concepto de superclave.<br />
Por ejemplo, ...<br />
... si se almacena información<br />
sobre los empleados de una<br />
empresa, es preciso tener la<br />
posibilidad de distinguir qué<br />
datos corresponden a cada<br />
uno de los diferentes<br />
empleados.<br />
Una superclave de una r<strong>el</strong>ación de esquema R(A 1 , A 2 , ..., A n ) es un<br />
subconjunto de los atributos d<strong>el</strong> esquema tal que no puede haber dos<br />
tuplas en la extensión de la r<strong>el</strong>ación que tengan la misma combinación<br />
de valores para los atributos d<strong>el</strong> subconjunto.<br />
Una superclave, por lo tanto, nos permite identificar todas las tuplas que contiene<br />
la r<strong>el</strong>ación.<br />
Observad que...<br />
... toda r<strong>el</strong>ación tiene, por lo<br />
menos, una superclave, que<br />
es la formada por todos los<br />
atributos de su esquema.<br />
Esto se debe a la propiedad<br />
que cumple toda r<strong>el</strong>ación<br />
de no tener tuplas repetidas.<br />
En <strong>el</strong> ejemplo de EMPLEA-<br />
DOS(DNI, NSS, nombre,<br />
ap<strong>el</strong>lido, t<strong>el</strong>éfono) esta superclave<br />
sería: {DNI, NSS, nombre,<br />
ap<strong>el</strong>lido, t<strong>el</strong>éfono}.<br />
Algunas superclaves de la r<strong>el</strong>ación EMPLEADOS<br />
En la r<strong>el</strong>ación de esquema EMPLEADOS(DNI, NSS, nombre, ap<strong>el</strong>lido, t<strong>el</strong>éfono), algunas de las<br />
superclaves de la r<strong>el</strong>ación serían los siguientes subconjuntos de atributos: {DNI, NSS, nombre,<br />
ap<strong>el</strong>lido, t<strong>el</strong>éfono}, {DNI, ap<strong>el</strong>lido}, {DNI} y {NSS}.<br />
Una clave candidata de una r<strong>el</strong>ación es una superclave C de la r<strong>el</strong>ación<br />
que cumple que ningún subconjunto propio de C es superclave.<br />
Es decir, C cumple que la <strong>el</strong>iminación de cualquiera de sus atributos da un<br />
conjunto de atributos que no es superclave de la r<strong>el</strong>ación. Intuitivamente, una<br />
clave candidata permite identificar cualquier tupla de una r<strong>el</strong>ación, de manera<br />
que no sobre ningún atributo para hacer la identificación.<br />
Notad que, ...<br />
... puesto que toda r<strong>el</strong>ación<br />
tiene por lo menos una superclave,<br />
podemos garantizar<br />
que toda r<strong>el</strong>ación tiene como<br />
mínimo una clave candidata.<br />
Claves candidatas de EMPLEADOS<br />
En la r<strong>el</strong>ación de esquema EMPLEADOS(DNI, NSS, nombre, ap<strong>el</strong>lido, t<strong>el</strong>éfono), sólo hay dos claves<br />
candidatas: {DNI} y {NSS}.<br />
Habitualmente, una de las claves candidatas de una r<strong>el</strong>ación se designa<br />
clave primaria de la r<strong>el</strong>ación. La clave primaria es la clave candidata cuyos<br />
valores se utilizarán para identificar las tuplas de la r<strong>el</strong>ación.<br />
<strong>El</strong> diseñador de la base de datos es quien <strong>el</strong>ige la clave primaria de entre las<br />
claves candidatas.<br />
R<strong>el</strong>ación con una clave<br />
candidata<br />
Si una r<strong>el</strong>ación sólo tiene una<br />
clave candidata, entonces<br />
esta clave candidata debe ser<br />
también su clave primaria.<br />
Ya que todas las r<strong>el</strong>aciones<br />
tienen como mínimo una clave<br />
candidata, podemos garantizar<br />
que, para toda r<strong>el</strong>ación,<br />
será posible designar una<br />
clave primaria.