25.10.2014 Views

El modelo relacional y el álgebra relacional - Dataprix

El modelo relacional y el álgebra relacional - Dataprix

El modelo relacional y el álgebra relacional - Dataprix

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 • 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.

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

Saved successfully!

Ooh no, something went wrong!