modelo relacional

9
Modelo Relacional Víctor Verdú 1 EL MODELO DE DATOS RELACIONAL El modelo relacional Estructura de datos relacional Dominios Relaciones Claves Esquema de una base de datos relacional Reglas de integridad Resumen En este capítulo se presenta el modelo relacional, que es el modelo lógico en el que se basan la mayoría de los SGBD comerciales en uso hoy en día. Trataremos los fundamentos del modelo de datos relacional y su aplicación para el diseño lógico de datos y de bases de datos relacionales. El modelo relacional El modelo de datos relacional fue desarrollado por E.F. Codd para IBM, a finales de los años setenta. Propone un modelo basado en la teoría matemática de las relaciones, con el objetivo de mantener la independencia de la estructura lógica respecto al modelo de almacenamiento y otras características de tipo físico. El modelo de Codd persigue, al igual que la mayoría de los modelos de datos, los siguientes objetivos: Independencia física de los datos. El modo de almacenamiento de los datos no debe influir en su manipulación lógica. Independencia lógica de los datos. Los cambios que se realicen en los bojetos de la base de datos no deben repercutir en los programas y usuarios que acceden a la misma. Flexibilidad. Para presentar a los usuarios los datos de la forma más adecuada a la aplicación que utilicen. Uniformidad en la presentación de las estructuras lógicas de los datos, que son tablas, lo que facilita la concepción y manipulación de la base de datos por parte de los usuarios. Sencillez. Pues las características anteriores, así como unos lenguajes de usuario sencillos, hacen que este modelo sea fácil de comprender y utilizar por el usuario. Para conseguir estos objetivos, Codd introduce el concepto de relación (tabla) como estructura básica del modelo. Todos los datos de una base de datos se representan en forma de relaciones cuyo contenido varía en el tiempo. El modelo relacional se basa en dos ramas de las matemáticas: la teoría de conjuntos y la lógica de predicados. Esto hace que el modelo sea seguro y robusto. El modelo relacional propone una representación de la información que: Origine esquemas que representen fielmente la información, los objetos y las relaciones existentes entre ellos forman el dominio del problema.

Upload: victor-v

Post on 21-Feb-2016

213 views

Category:

Documents


1 download

DESCRIPTION

Modelo Relacional de datos

TRANSCRIPT

Page 1: Modelo Relacional

Modelo Relacional

Víctor Verdú 1

EL MODELO DE DATOS RELACIONAL

El modelo relacional

Estructura de datos relacional

Dominios

Relaciones

Claves

Esquema de una base de datos relacional

Reglas de integridad

Resumen

En este capítulo se presenta el modelo relacional, que es el modelo lógico en el que se basan la mayoría de los

SGBD comerciales en uso hoy en día. Trataremos los fundamentos del modelo de datos relacional y su aplicación

para el diseño lógico de datos y de bases de datos relacionales.

El modelo relacional

El modelo de datos relacional fue desarrollado por E.F. Codd para IBM, a finales de los años setenta. Propone

un modelo basado en la teoría matemática de las relaciones, con el objetivo de mantener la independencia de la

estructura lógica respecto al modelo de almacenamiento y otras características de tipo físico. El modelo de Codd

persigue, al igual que la mayoría de los modelos de datos, los siguientes objetivos:

Independencia física de los datos. El modo de almacenamiento de los datos no debe influir en su

manipulación lógica.

Independencia lógica de los datos. Los cambios que se realicen en los bojetos de la base de datos no deben

repercutir en los programas y usuarios que acceden a la misma.

Flexibilidad. Para presentar a los usuarios los datos de la forma más adecuada a la aplicación que utilicen.

Uniformidad en la presentación de las estructuras lógicas de los datos, que son tablas, lo que facilita la

concepción y manipulación de la base de datos por parte de los usuarios.

Sencillez. Pues las características anteriores, así como unos lenguajes de usuario sencillos, hacen que este

modelo sea fácil de comprender y utilizar por el usuario.

Para conseguir estos objetivos, Codd introduce el concepto de relación (tabla) como estructura básica del

modelo. Todos los datos de una base de datos se representan en forma de relaciones cuyo contenido varía en el

tiempo. El modelo relacional se basa en dos ramas de las matemáticas: la teoría de conjuntos y la lógica de

predicados. Esto hace que el modelo sea seguro y robusto.

El modelo relacional propone una representación de la información que:

Origine esquemas que representen fielmente la información, los objetos y las relaciones existentes entre

ellos forman el dominio del problema.

Page 2: Modelo Relacional

Modelo Relacional

Víctor Verdú 2

Sea fácilmente entendida por los usuarios

Sea posible ampliar el esquema de la base de datos sin modificar la estructura lógica existente y los

programas de aplicación.

Permita la máxima fiabilidad en la formulación de los interrogantes sobre la información manetnida en la

base de datos.

Estructura de datos relacional

Como ya se ha dicho antes, la relación es el elemento básico del modelo relacional y se representa como una

tabla, en la que se puede distinguir el nombre de la tabla, el conjunto de columnas que representan las propiedades

de la tabla y que se les llama atributos, y el conjunto de filas llamadas tuplas, que contienen los valores que toma

cada uno de los atributos para cada elemento de la relación.

Una relación tiene una serie de elementos característicos que la distinguen de una tabla convencional:

No admiten filas duplicadas.

Las filas y columnas no están ordenadas.

La tabla es plana. En el cruce de una fila y una columna sólo puede haber un valor, no se admiten atributos

multivaluados.

En el ejemplo que se muestra a continuación se representa una relación llamada OFICINA en forma de tabla:

OFICINA

onum calle área población teléfono fax atributos

tuplas

O5 C/ Dalí, 81 Centro Castellón 964201240 964201340

O1 C/ Goya, s/n Centro Castellón 964215760 964215670

O3 C/ San Miguel, 1 Villarreal 964520250 964520255

O4 Avda. Trafalgar, 2 Sur Castellón 964284440 964284420

O2 C/ Mayor, 26 Villarreal 964525810 964252811

Vemos a continuación los elementos que constituyen el modelo relacional.

Dominios

Se define dominio como el conjunto finito de valores homogéneos (todos del mismo tipo) y atómicos (son

indivisibles) que puede tomar cada atributo. Todos los dominios tienen un nombre y un tipo de datos asociado. Cada

atributo de una base de datos relacional se define sobre un dominio, pudiendo haber varios atributos definidos sobre

el mismo dominio.

La siguiente tabla muestra los dominios de los atributos de la relación OFICINA. Nótese que en esta relación hay

dos atributos que están definidos sobre el mismo dominio, teléfono y fax.

Page 3: Modelo Relacional

Modelo Relacional

Víctor Verdú 3

Atributo Nombre del Dominio Definición Descripción

onum NUM_OFICINA Conjunto de 3 caracteres Posibles valores de número de oficina

calle NOM_CALLE Conjunto de 25 caracteres Nombres de calles de España

área NOM_AREA Conjunto de 20 caracteres Nombres de áreas de las poblaciones de España

población NOM_POBLACION Conjunto de 15 caracteres Nombres de las poblaciones de España

teléfono NUM_TEL_FAX Conjunto de 9 caracteres Números de teléfono de España

fax NUM_TEL_FAX Conjunto de 9 caracteres Números de teléfono de España

Relaciones

Conceptos básicos

Una relación se representa mediante una tabla con columnas y filas. Un SGBD sólo necesita que el usuario

pueda percibir la base de datos como un conjunto de tablas. En el modelo relacional, las relaciones se utilizan para

almacenar información sobre los objetos que se representan en la base de datos. Gráficamente, se trata de una tabla

bidimensional en la que las filas corresponden a registros individuales y las columnas a los campos o atributos de

esos registros.

La relación está formada por:

Atributo (columna). Se trata de cada una de las columnas de la tabla. Las columnas tienen un nombre y

pueden guardar un conjunto de valores. Una columna se identifica siempre por su nombre, nunca por

suposición. El orden de las columnas en una tabla es irrelevante.

Tupla (fila). Representa una fila de la tabla. En el ejemplo anterior, la tabla OFICINA tenía 5 tuplas.

De las tablas se derivan los siguientes conceptos:

Cardinalidad. Es el número de filas de la tabla. En la relación OFICINA, la cardinalidad es 5.

Grado. Es el número de columnas de la tabla. En la relación OFICINA, el grado es 6.

Valor. Viene representado por la intersección entre una fila y una columna. Por ejemplo, son valores de la

tabla OFICINA: Castellón, Centro, Sur, 964201240, O5, C/ Mayor,26

Valor NULL. Representa la ausencia de información.

Definiciones formales

Una relación R definida sobre un conjunto de dominios D1, D2, … Dn consta de:

- Cabecera: conjunto de pares atributo:dominio, {(A1:D1), (A2:D2), … (An:Dn)}, donde cada atributo

corresponde a un único dominio y todos los atributos son distintos. El grado de la relación R es n.

- Cuerpo: conjunto de variable de tuplas. Cada tupla es un conjunto de pares atributo:valor, {(A1:vi1),

(A2:vi2), … (An:vim)}, con i=1,2,…m, donde me representa la cardinalidad de la relación R. En cada par

(Ai:vij) se tiene que el valor pertenece al dominio, vij Dj.

Page 4: Modelo Relacional

Modelo Relacional

Víctor Verdú 4

Vemos esto de forma más clara con un ejemplo. La cabecera de la tabla OFICINA sería:

{ (onum: NUM_OFICINA), (calle: NOM_CALLE), (área: NOM_AREA), (población: NOM_POBLACIÓN),

(teléfono: NUM_TEL_FAX), (fax: NUM_TEL_FAX) }

Una tupla es:

{(onum: O5), (calle: C/ Dalí, 81), (área: Centro), (población: Castellón), (teléfono: 964201240), (fax: 964201340)}

Propiedades de las relaciones

Las relaciones tienen las siguientes características:

Cada relación tiene un nombre y éste es distinto del nombre de todas las demás.

Los valores de los atributos son atómicos: en cada tupla, cada atributo toma un solo valor. Se dice que las

relaciones están normalizadas.

No hay dos atributos que se llamen igual.

El orden de los atributos no importa: los atributos no están ordenados.

Cada tupla es distinta de las demás: no hay tuplas duplicadas.

El orden de las tuplas no importa: las tuplas no están ordenadas.

Claves

Ya que en una relación no hay tuplas repetidas, éstas se pueden distinguir unas de otras, es decir, se pueden

identificar de modo único. La forma de identificarlas es mediante los valores de sus atributos. Toda fila debe estar

asociada con una clave que permita identificarla. A veces, la fila se puede identificar por un único atributo, pero otras

veces es necesario recurrir a más de un atributo.

Al conjunto de atributos que nos permiten identificar de modo único las tuplas de una relación se denomina

superclave. Las superclaves en las que ninguno de sus subconjuntos es superclave de la relación se les llama claves

candidatas. Una clave candidata debe cumplir dos requisitos:

Unicidad (identificación unívoca). En cada fila de la tabla, el valor de la clave ha de identificarla de forma

unívoca. No puede haber dos tuplas en la relación con un mismo valor para la clave candidata.

Minimalidad (no redundancia). No se puede descartar ningún atributo de la clave para identificar la fila.

Siempre hay una clave candidata, pues por definición, no puede haber dos tuplas iguales. Habrá un atributo o

conjunto de atributos que identifiquen la tupla. Cuando la clave candidata está formada por más de un atributo, se

dice que es una clave compuesta.

Una relación puede tener varias claves candidatas. Por ejemplo, en la relación OFICINA, el atributo población no

es una clave candidata ya que puede haber varias oficinas en una misma población. Sin embargo, ya que la empresa

asigna un código único a cada oficina, el atributo onum sí es una clave candidata de la relación OFICINA. También

son claves candidatas de esta relación los atributos teléfono y fax.

Page 5: Modelo Relacional

Modelo Relacional

Víctor Verdú 5

De entre todas las claves candidatas de una relación, se distinguen:

Clave primaria o principal (primary key): aquella calve candidata que el usuario escoge para identificar

las tuplas de la relación. No puede contener valores nulos. Si sólo existe una clave candidata, ésta se elegirá

como clave primaria.

Clave alternativa: aquellas claves candidatas que no han sido escogidas como primaria.

Se denomina clave ajena (foreign key) de una relación R1 al atributo o conjunto de atributos cuyos valores han

de coincidir con los valores de la clave primaria de otra relación R2. Ambas claves estarán definidas sobre el mismo

dominio y son muy importantes en el estudio de la integridad de datos del modelo relacional.

Las claves ajenas representan relaciones entre datos. El atributo onum de la relación PLANTILLA que

veremos a un ejemplo a continuación, relaciona a cada empleado con la oficina a la que pertenece. Este atributo es

una clave ajena cuyos valores hacen referencia al atributo onum, clave primaria de OFICINA. Se dice que un valor

de clave ajena representa una referencia a la tupla que contiene el mismo valor en su clave primaria (tupla

referenciada).

Esquema de una base de datos relacional

Una base de datos relacional es un conjunto de relaciones normalizadas. Para representar el esquema de una

base de datos relacional se debe dar el nombre de sus relaciones, los atributos de éstas, los dominios sobre los que se

definen estos atributos, las claves primarias y las claves ajenas.

Vamos a ampliar el ejemplo de la empresa inmobiliaria que hemos estado viendo hasta el momento. La

información de las oficinas de la empresa inmobiliaria se representa mediante la relación OFICINA, que ya hemos

visto, y que tiene columnas para los atributos onum (número de oficina), calle, área, población, teléfono y fax. La

información sobre la plantilla de empleados de la empresa se representa mediante la relación PLANTILLA, que tiene

los atributos enum (número de empleado), nombre, apellido, dirección, teléfono, puesto, fecha_nac, salario, DNI,

onum (número de la oficina a la que pertenece el empleado). En la base de datos de la inmobiliaria incluiremos 4

relaciones más: INMUEBLE, INQUILINO, PROPIETARIO y VISITA. La relación INMUEBLE tiene los atributos inum

(número de inmueble), calle, área, población, tipo, alquiler, pnum (número de propietario) y enum (número del

empleado encargado del inmueble). La información sobre los propietarios de los inmuebles se guarda en la relación

PROPIETARIO, con los atributos pnum (número de propietario), nombre, apellido, dirección, teléfono. La relación

CLIENTE contiene información sobre los clientes de la inmobiliaria: qnum (número de cliente), nombre, apellido,

dirección, teléfono. En la base de datos de la inmobiliaria hay una relación denominada VISITA que contiene

información sobre las visitas que los clientes han realizado a los inmuebles. Esta relación contiene el número del

cliente qnum, el número del inmueble inum, la fecha de la visita fecha y un comentario opcional. Para un

determinado número de cliente qnum, se pueden encontrar varias visitas a varios inmuebles. Del mismo modo, dado

un número de inmueble inum, puede que haya varios clientes que lo hayan visitado. Por lo tanto, el atributo qnum no

es una clave candidata para la relación VISITA, como tampoco lo es el atributo inum. Sin embargo, la combinación de

los dos atributos sí identifica a una sola tupla, por lo que los dos juntos son una clave candidata de VISITA.

Page 6: Modelo Relacional

Modelo Relacional

Víctor Verdú 6

onum

pnum

enum

qnum

inum

El esquema de la base de datos para este ejemplo de empresa inmobiliaria sería:

OFICINA (onum, calle, área, población, teléfono, fax)

PLANTILLA (enum, nombre, apellido, teléfono, puesto, fecha_nac, salario, DNI, onum)

INMUEBLE (inum, calle, área, población, tipo, alquiler, pnum, enum, onum)

CLIENTE (qnum, nombre, apellido, dirección, teléfono)

PROPIETARIO (pnum, nombre, apellido, dirección, teléfono)

VISITA (qnum, inum, fecha, comentario)

En el esquema, los nombres de las relaciones aparecen seguidos de los nombres de los atributos encerrados entre

paréntesis. Las claves primarias son los atributos subrayados. Las claves ajenas se representan mediante los

siguientes diagramas referenciales.

PLANTILLA OFICINA : oficina a la que pertenece el empleado

INMUEBLE PROPIETARIO : propietario del inmueble

INMUEBLE PLANTILLA : empleado encargado del inmueble

VISITA CLIENTE : cliente que ha visitado el inmueble

VISITA INMUEBLE : inmueble que ha sido visitado

A continuación se muestra un estado (instancia) de la base de datos cuyo esquema se acaba de definir.

OFICINA

onum calle área población teléfono fax

O5 C/ Dalí, 81 Centro Castellón 964201240 964201340

O1 C/ Goya, s/n Centro Castellón 964215760 964215670

O3 C/ San Miguel, 1 Villarreal 964520250 964520255

O4 Avda. Trafalgar, 2 Sur Castellón 964284440 964284420

O2 C/ Mayor, 26 Villarreal 964525810 964252811

PLANTILLA

enum nombre apellido teléfono puesto fecha_nac salario DNI onum

EL21 Amelia Pastor 964284560 Director 12/10/62 3000 39432212E O5

EG37 Pedro Cubedo 964535690 Supervisor 24/03/57 1800 38766623X O3

EG14 Luis Collado 964522230 Administ. 09/05/70 1200 24391223L O3

EA9 Rita Renau 964257550 Supervisor 19/05/60 1800 39233190F O1

EG5 Julio Prats 964524590 Director 19/12/50 2400 25644309X O3

EL41 Carlos Baeza 964247250 Supervisor 29/02/67 1800 39552133T O5

Page 7: Modelo Relacional

Modelo Relacional

Víctor Verdú 7

INMUEBLE

inum calle área población tipo alquiler pnum enum

IA14 Enmedio,128 Centro Castellón Casa 600 P46 EA9

IL94 Rio Ebro,24 Sur Castellón Piso 350 P87 EL21

IG36 Alicante,1 Villareal Casa 325 P93 EL41

IG21 Velázquez,10 Vinaroz Duplex 550 P87 EL41

IG16 Altea,19 Norte Castellón Piso 400 P93 EG37

PROPIETARIO

pnum nombre apellido dirección teléfono

P46 Amparo Martínez C/ Asensi 24, Castellón 964230680

P87 Manuel Obiol Av. Libertad 15, Vinaroz 964450760

P40 Alberto Estrada Av. Real 52, Castellón 964200740

P93 Yolanda Robles C/ Purísima 4, Segorbe 964710430

CLIENTE VISITA

qnum nombre apellido dirección teléfono qnum inum fecha comentario

Q76 Juan Martínez Barceló 47,

Castellón 964282540 Q56 IA14 24/11/99 muy

pequeño

Q56 Ana Grangel San Rafael 45,

Almazora 964551110 Q76 IG21 20/10/99 muy lejos

Q74 Elena Abaso Navarra 76,

Castellón 964205560 Q56 IG21 26/11/99

Q62 Alicia Mori Alloza 45,

Castellón 964229580 Q62 IA14 14/11/99 no tiene

salón

Q56 IG36 28/10/99

Reglas de integridad

Una vez definida la estructura de datos del modelo relacional, pasamos a estudiar las reglas de integridad que

los datos almacenados en dicha estructura deben cumplir para garantizar que son correctos.

Al definir cada atributo sobre un dominio se impone una restricción sobre el conjunto de valores permitidos para

cada atributo. A este tipo de restricciones se les denomina restricciones de dominios. Hay además dos reglas de

integridad muy importantes que son restricciones que se deben cumplir en todas las bases de datos relacionales y en

todos sus estados o instancias (las reglas se deben cumplir todo el tiempo). Estas reglas son la regla de integridad de

entidades y la regla de integridad referencial. Antes de definirlas, es preciso conocer el concepto de nulo.

Nulos

Cuando en una tupla un atributo es desconocido, se dice que es nulo. Un nulo no representa el valor cero ni la

cadena vacía, éstos son valores que tienen significado. El nulo implica ausencia de información, bien porque al

insertar la tupla se desconocía el valor del atributo, o bien porque para dicha tupla el atributo no tiene sentido.

Page 8: Modelo Relacional

Modelo Relacional

Víctor Verdú 8

Ya que los nulos no son valores, deben tratarse de modo diferente, lo que causa problemas de implementación.

De hecho, no todos los SGBD relacionales soportan los nulos.

Regla de integridad de entidades

La primera regla de integridad se aplica a las claves primarias de las relaciones base: ninguno de los atributos

que componen la clave primaria puede ser nulo.

Por definición, una clave primaria es un identificador irreducible que se utiliza para identificar de modo único

las tuplas. Que es irreducible significa que ningún subconjunto de la clave primaria sirve para identificar las tuplas de

modo único. Si se permite que parte de la clave primaria sea nula, se está diciendo que no todos sus atributos son

necesarios para distinguir las tuplas, con lo que se contradice la irreducibilidad. Nótese que esta regla sólo se aplica a

las relaciones base y a las claves primarias, no a las claves alternativas.

Regla de integridad referencial

La segunda regla de integridad se aplica a las claves ajenas: si en una relación hay alguna clave ajena, sus

valores deben coincidir con valores de la clave primaria a la que hace referencia, o bien, deben ser completamente

nulos.

La regla de integridad referencial se enmarca en términos de estados de la base de datos: indica lo que es un

estado ilegal, pero no dice cómo puede evitarse. La cuestión es ¿qué hacer si estando en un estado legal, llega una

petición para realizar una operación que conduce a un estado ilegal? Existen dos opciones: rechazar la operación, o

bien aceptar la operación y realizar operaciones adicionales compensatorias que conduzcan a un estado legal. Por lo

tanto, para cada clave ajena de la base de datos habrá que contestar a tres preguntas:

Regla de los nulos: ¿Tiene sentido que la clave ajena acepte nulos?

Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por la clave ajena?

o Restringir: no se permite borrar la tupla referenciada.

o Propagar: se borra la tupla referenciada y se propaga el borrado a las tuplas que la referencian

mediante la clave ajena.

o Anular: se borra la tupla referenciada y las tuplas que la referenciaban ponen a nulo la clave ajena

(sólo si acepta nulos).

Regla de modificación: ¿Qué ocurre si se intenta modificar el valor de la clave primaria de la tupla

referenciada por la clave ajena?

o Restringir: no se permite modificar el valor de la clave primaria de la tupla referenciada.

o Propagar: se modifica el valor de la clave primaria de la tupla referenciada y se propaga la

modificación a las tuplas que la referencian mediante la clave ajena.

o Anular: se modifica la tupla referenciada y las tuplas que la referenciaban ponen a nulo la clave

ajena (sólo si acepta nulos).

Page 9: Modelo Relacional

Modelo Relacional

Víctor Verdú 9

Por ejemplo, en las relaciones OFICINA e INMUEBLE se recoge el atributo área. Para la población de

Castellón, el valor del atributo área puede ser Centro, Sur, Norte… Pero para la población de Villareal, no

distinguimos áreas, de ahí la ausencia de valor (o valor nulo) para ese atributo en las tuplas de estas relaciones donde

población toma el valor Villareal.

En la relación INMUEBLE, el atributo pnum hace referencia al propietario del inmueble. Se trata, por tanto, de

una clave ajena que hace referencia a la clave primaria pnum de la relación PROPIETARIO. Ahora bien, nosotros

deseamos eliminar un propietario de nuestra base de datos, por ejemplo el número de propietario P46. Tendríamos

que borrar la tupla con ese valor para la clave primaria pnum en PROPIETARIO, pero no debería ser la única

operación a realizar en la base de datos. Para cumplir la regla de integridad referencial, no debe haber ninguna tupla

en INMUEBLE donde pnum (clave ajena) tome el valor P46, pues ese valor deja de estar entre los valores de pnum

(clave primaria) en PROPIETARIO. Opciones que tenemos:

- Restringir: no permitir borrar el propietario con número P46 de la relación PROPIETARIO, pues existen

inmuebles en la relación INMUEBLE pertenecientes a ese propietario.

- Propagar: borrar el propietario P46 en la relación PROPIETARIO, y todos los inmuebles que pertenezcan a

ese propietario en la relación INMUEBLE.

- Anular: borrar el propietario P46 en la relación PROPIETARIO, y poner el valor nulo a la clave ajena pnum

para los inmuebles de ese propietario en la relación INMUEBLE

Resumen

La relación es la estructura de datos del modelo relacional. Las relaciones se representan gráficamente como

tablas, donde las filas corresponden a las tuplas y las columnas corresponden a los atributos. Los atributos se definen

sobre dominios.

Las relaciones de una base de datos tienen una serie de propiedades: en la intersección de cada fila con cada

columna hay un solo valor (valor atómico), los nombres de los atributos de una relación son todos distintos entre sí,

los atributos no están ordenados, las tuplas no están ordenadas y no hay tuplas repetidas. El grado de una relación es

el número de atributos y la cardinalidad es el número de tuplas.

Una superclave es un conjunto de atributos que identifica las tuplas de una relación de modo único. Una clave

candidata es una superclave minimal o irreducible. La clave primaria es la clave candidata que se escoge para

identificar las tuplas de una relación. Toda relación tiene siempre clave primaria. Una clave ajena es un atributo o un

conjunto de atributos que hacen referencia a la clave primaria de otra relación. Cuando un atributo no tiene valor para

una determinada tupla, bien porque se desconoce o bien porque no tiene sentido para dicha tupla, se dice que es nulo.

La regla de integridad de entidades es una restricción que dice que ninguno de los atributos que forman la clave

primaria puede ser nulo. La regla de integridad referencial dice que los valores de las claves ajenas deben coincidir

con alguno de los valores de la clave primaria a la que hacen referencia, o bien ser completamente nulos.