Skip to main content

Conceptos fundamentales del modelo relacional

El modelo relacional se basa en el concepto matemático de relación, que se representa gráficamente mediante una tabla. Codd utilizó terminología matemática para definir el modelo relacional, en concreto la de la teoría de conjuntos y de la lógica de predicados.

El concepto de relación

La relación es el elemento básico del modelo relacional y está compuesta por dos partes:

  • Cabecera. Formada por un conjunto fijo de atributos. Es la parte fija de la relación. Está constituida por:
    • El nombre del conjunto: la tabla.
    • El nombre de los atributos: las columnas de la tabla.
    • Los dominios de los que toman valores los atributos.
  • Cuerpo. El cuerpo está formado por un conjunto de filas.

El número de columnas que tiene una relación recibe el nombre de grado de la relación, y el número de filas recibe el nombre de cardinalidad de la relación.

Como ejemplo, la siguiente tabla representa la relación PERSONA.

NOMBRE

APELLIDOS

EDAD

TELÉFONO

Alfonso

Gutiérrez Pérez

38

698 569 854

Lucía

López García

37

666 999 888

Jorge

Juan Bonilla

38

632 458 785

Ana

García García

29

654 987 321

Diego

Rodríguez Gracia

36

632 985 632

Marta

Pérez Martínez

34

678 521 456

Alberto

Vega Domínguez

31

698 584 521

Manuela

Fernández Hernández

35

636 696 898

Silvia

Gracia Barrós

36

654 654 654

La cabecera de esta relación es: PERSONA (NOMBRE, APELLIDOS, EDAD, TELEFONO)

El cuerpo es el conjunto de 9 filas con los datos concretos de personas, el grado de la relación es 4 y la cardinalidad 9.

Las tablas del modelo relacional cumplen las siguientes propiedades:

  • No existen filas repetidas: el cuerpo de la relación es un conjunto matemático y en matemáticas, por definición, los conjuntos no incluyen elementos repetidos. Esto se traduce en que dos registros de una misma relación deben diferir, al menos, en el valor de un campo.
  • Las filas no están ordenadas: esta propiedad muestra la diferencia entre una relación y una tabla, porque las filas de una tabla tienen un orden obvio de arriba hacia abajo, mientras que las filas de una relación no tienen orden.
  • Los atributos no están ordenados: esto proviene del hecho de que la cabecera de una relación se define también como conjunto. Las columnas de una tabla tienen un orden evidente de izquierda a derecha, pero los atributos de una relación no tienen orden.
  • Todos los valores de los atributos son atómicos: esto quiere decir que un atributo sólo puede tomar un valor en cada fila.

Clave primaria y claves ajenas

Sea va a recordar lo que era una clave primaria y se va a añadir un concepto nuevo, el de clave ajena.

En el modelo relacional tenemos los siguientes tipos de claves:

  • Clave candidata: es un conjunto mínimo y no vacío de atributos que identifica unívocamente cada registro de una relación.
  • Clave primaria: es la clave candidata que elige el usuario para identificar los registros de una relación. Una clave primaria es compuesta cuando está formada por más de un atributo.
  • Clave alternativa: es cualquiera de las claves candidatas que no han sido elegidas como clave primaria.
  • Clave ajena: Es un conjunto no vacío de atributos de una relación cuyos valores han de coincidir con los valores de la clave primaria de otra relación. Las dos relaciones no tienen que ser necesariamente distintas, podrían ser la misma relación (es el caso de las relaciones reflexivas).

Veamos unUn ejemplo a continuación:

Oficina

NUM_OFICINA

CALLE

AREA

POBLACION

TELEFONO

FAX

001

Rúa Seco, 19

Sur

Olite

948 222222

948 658745

002

Larraga, 21

Norte

Olite

948 121212

948 123465

003

Tudela, 15

Sur

Pamplona

948 323232

948 236589

004

Italia, 12

Centro

Zaragoza

976 658745

976 548721

005

de la Parra, 16

Centro

Teruel

978 225588

978 159732

El atributo NUM_OFICINA es una clave candidata ya que identifica de manera única cada registro de la tabla, y en este caso además es la clave primaria porque no existe en la tabla ninguna otra clave candidata.


Empleado

NUM_EMPLEADO

DNI

OFICINA

TELEF_FIJO

TELEF_MOVIL

FAX

12340

25369874

005

978 225588

655 191919

978 159732

12350

72658412

002

948 121212

655 212019

948 123465

12360

72658965

003

948 323232

655 242563

948 236589

12370

25814796

001

976 456985

655 256985

948 658745

12380

25369854

004

976 658745

655 658965

976 548721

En esta tabla hay dos claves candidatas, el atributo NUM_EMPLEADO y el atributo DNI, ya que ambos identifican de manera única a cada registro de la tabla. Si se considera el atributo DNI como clave primaria, el atributo NUM_EMPLEADO pasa a ser una clave alternativa de la tabla.

Si la relación OFICINA tuviera la siguiente estructura:

Oficina

NUM_OFICINA

CALLE

AREA

POBLACION

TELEFONO

DIRECTOR

001

Rúa Seco, 19

Sur

Olite

948 222222

25369874

002

Larraga, 21

Norte

Olite

948 121212

72658412

003

Tudela, 15

Sur

Pamplona

948 323232

72658965

004

Italia, 12

Centro

Zaragoza

976 658745

72658412

005

de la Parra, 16

Centro

Teruel

978 225588

72658965

Se puede ver que el atributo DIRECTOR hace referencia al atributo DNI de la tabla EMPLEADO, que además es la clave primaria de dicha tabla, por lo que DIRECTOR es la clave ajena de la tabla OFICINA y referencia la tabla EMPLEADO.

Las claves primarias y ajenas cumplen una serie de propiedades:

  • Una clave ajena y la clave primaria de la tabla referenciada asociada han de estar definidas sobre los mismos dominios.
  • Una tabla puede poseer más de una clave ajena. Tendrá una clave ajena por cada tabla referenciada de la cual dependa.
  • Una tabla puede no tener ninguna clave ajena.
  • Una clave ajena puede relacionar una tabla consigo misma (relaciones reflexivas).