Informática
Bases de datos

Tu Instituto Online
   


 
Nivel Básico Base: Relaciones entre tablas
Duración aproximada: 2 sesiones.
   
Objetivos Objetivos
  • Conocer el concepto de relación
  • Conocer el concepto de clave ajena
  • Crear y utilizar relaciones entre tablas
   
Fuentes de información Fuentes de información
   
Contenidos
Contenidos
   
 

1.- Introducción

Base, tal y como se comentó al principio, es un gestor de base de datos relacional, entre otras cosas, porque permite establecer vínculos o relaciones entre las tablas que lo componen. El objetivo de estas relaciones será principalmente evitar la duplicidad de información y en consecuencia, optimizar el rendimiento de la base de datos. En esta unidad estudiaremos este concepto y otros relacionados con dicha relación.

2.- Relaciones entre tablas

Tras crear tablas diferentes en la base de datos, necesitamos una forma de indicarle a Base cómo debe volver a combinar esa información.

El primer paso de este proceso es definir relaciones entre las tablas. Una vez realizada esta operación, podemos crear consultas, formularios e informes para mostrar información de varias tablas a la vez.

Una relación hace coincidir los datos de los campos clave (normalmente un campo con el mismo nombre en ambas tablas). En la mayoría de los casos, estos campos coincidentes son la clave principal de una tabla, que proporciona un identificador único para cada registro, y una clave externa de la otra tabla.

Para explicarlo vamos a mostrar un ejemplo con dos tablas como son Alumnos y Cursos. Inicialmente estarán definidas de la siguiente manera:

En la tabla Alumnos tenemos toda la información que necesitamos sobre nuestros alumnos como:

  • Su número de expediente.
  • Su nombre y apellidos.
  • Su fecha de nacimiento.
  • El grupo al que pertenece el alumno.
  • La ubicación del grupo, es decir, el aula donde están los alumnos de ese grupo (Primera planta, edificio anexo, etcétera).
  • Cualquier tipo de comentario de interés: grupo de compensatoria, apoyo, etcétera.

Para la tabla Grupos nos podíamos conformar con la denominación del grupo (1A, 1B, 3A...) pero le hemos añadido algunos datos que nos pueden resultar de interés:

  • Número total de alumnos que tiene el grupo.
  • El lugar donde se encuentra ubicado: Aula de música, Aula 205 Edificio principal, etcétera.
  • Cualquier otro dato de interés: Compensatoria, grupo de apoyo, etcétera.

Si nos fijamos en los datos podremos darnos cuenta que, al comprobar los datos incluidos en las tablas de Alumnos y Grupos, existe información que se repite en ambas:

Esta situación no es demasiado favorable cuando trabajamos con bases de datos donde habitualmente la cantidad de información que se maneja es importante. La solución pasa por relacionar  las tablas con información coincidente de modo que no exista duplicidad de información. Todo esto, traducido a un lenguaje más natural sería: "Para qué escribir dos veces lo mismo, si puedo hacerlo una sola y trabajar del mismo modo".

Volviendo a nuestro ejemplo, si relacionamos las tablas Alumnos y Grupos mediante el nombre del grupo sería suficiente con indicar en la tabla Alumnos este valor para obtener el número de alumnos del grupo, su ubicación y las posibles observaciones:

  
Ejercicios
Ejercicio
   
 

Base de datos: Discoteca

  • Abre la base de datos "Discoteca" de la unidad anterior.
  • Crea una nueva tabla en modo diseño.
  • Introduce los campos que se indican a continuación:

Campo

Tipo

Longitud

Descripción

Soporte

Texto [VARCHAR]

20

Tipo de soporte en el que se encuentra almacenado (MP3, DVD, CD, etc.)

  • El diseño de la tabla quedará como se muestra:

  • Una vez creado el campo, márcalo como clave primaria. Para ello selecciona la fila y haz clic con el botón derecho del ratón seleccionando la opción Llave primaria.

  • Guarda la tabla con el nombre Soporte.

  • Una vez guardada haz doble clic con el ratón para abrir la tabla en vista de datos.
  • Inserta las siguientes filas:

  • Guarda los datos.
Ejercicios
Ejercicio
   
 

Base de datos: Biblioteca

  • Descarga la base de datos Biblioteca.odb.
  • Crea una nueva tabla llamada Prestamos.
  • Crea las siguientes columnas en la tabla:

  • Una vez creadas las columnas, marca la columna "IdPrestamo" como clave primaria. Para ello selecciona la fila y haz clic con el botón derecho del ratón seleccionando la opción Llave primaria.

  • Guarda la tabla con el nombre Prestamos.

  • Una vez guardada, haz doble clic con el ratón para abrir la tabla en vista de datos.
  • Inserta las siguientes filas:

  • Guarda los cambios.
  • Guarda la base de datos con el nombre "BibliotecaRelaciones".
   
Contenidos
Contenidos
   
 

3.- Tipos de relaciones

No siempre las condiciones para establecer vínculos entre dos tablas son iguales, la manera en que se relacionan las tablas entre sí da lugar a comportamientos diferentes. En la estructutura de cualquier base de datos encontramos principalmente tres tipos de relaciones que se describen del siguiente modo:

  • Uno a muchos.
  • Muchos a muchos.
  • Uno a uno.

3.1.- Relación uno a muchos (1:n)

Este tipo se da cuando una fila de la primera tabla puede estar relacionada con muchas filas de la segunda tabla, pero una fila de la segunda sólo está relacionada con una de la primera.

Es decir, si consideramos que un álbum sólo puede estar grabado en un soporte, éste sería el tipo de relación que existe entre la tabla SOPORTE y la tabla MUSICA ya que, por ejemplo, el soporte MP3 tendrá varios álbumes relacionados que son de dicho soporte, pero dado un álbum sólo está relacionado con un tipo de soporte.

Otro ejemplo lo encontramos entre las tablas ALUMNOS Y GRUPOS, ya que cualquier alumno puede pertenecer a un solo grupo y cada grupo puede tener varios alumnos:

3.2.- Relación uno a uno (1:1)

Este tipo de relación aparece con menos frecuencia y sucede cuando una fila de la primera tabla sólo puede estar relacionada con una fila de la segunda y una fila de la segunda tabla sólo puede estar relacionada con una de la primera.

Un ejemplo de este tipo de relaciones podría ser entre una tabla con países y otra con jefes de gobierno, dado que, normalmente, un país sólo tiene un jefe de gobierno y un jefe de gobierno lo es sólo de un país.

Otro ejemplo sería el de un tutor con un grupo, ya que cada grupo solo puede tener un tutor y cada tutor solo puede tener un grupo:

 

3.3.- Relación muchos a muchos (n:n)

Esta clase de relación ocurre cuando una fila de la primera tabla puede estar relacionada con muchas filas de la segunda tabla y una fila de la segunda tabla puede estarlo con muchas filas de la primera.

Veamos la base de datos Videoclub. Un ejemplo de este tipo lo tenemos en la relación entre la tabla PELICULA y la tabla INTERPRETE porque, dada una película en particular, puede tener muchos intérpretes, y, viceversa, dado un intérprete, este puede haber intervenido en muchas películas. Otro ejemplo sería el de un instituto donde las tablas PROFESORES y GRUPOS están relacionadas ya que cada profesor puede impartir clase a varios grupos y cada grupo puede tener varios profesores:

Este tipo de relación sólo es posible si se define una tercera tabla (denominada tabla de unión) cuya clave principal consta de al menos dos campos: las claves externas de las Tablas A y B.

4.- Establecer una relación uno a muchos (1:n)

Según hemos explicado en el apartado anterior, existe claramente una relación del tipo uno a muchos (1:n) entre las tablas MUSICA y SOPORTE.

Si consideramos que un álbum sólo puede estar grabado en un soporte, éste sería el tipo de relación que existe entre la tabla SOPORTE y la tabla MUSICA ya que, por ejemplo, el soporte MP3 tendrá varios álbumes relacionados que son de dicho soporte, pero dado un álbum sólo está relacionado con un tipo de soporte.

Como requisito indispensable para establecer una relación entre dos tablas es necesario que ambas tablas tengan un campo en común. Además ambos deberán tener el mismo tipo (INTEGER, TEXTO, SMALL INTEGER, etcétera) y el mismo tamaño, y uno de ellos deberá ser clave primaria en una de las dos tablas.

Ejemplos de ellos los tenemos en:

Como podemos observar, existen varias relaciones:

  • Entre el campo Actividad de la tabla Calendario y el campo IdActividad de la tabla Actividades
  • Entre el campo EquipoA de la tabla Calendario y el campo IdEquipo de la tabla Equipos
  • Entre el campo Grupo de la tabla Alumnos y el campo IdCurso de la tabla Cursos
  • Entre el campo Departamento de la tabla Profesores y el campo IdDepartamento de la tabla Departamentos
   
Ejercicios
Ejercicio
 

Base de datos: Discoteca

Vamos a crear una relación entre las tablas Soporte y Musica.

  • Abre la base de datos "Discoteca".
  • Cierra todas las tablas abiertas. No es posible establecer relaciones entre tablas abiertas, ya que estamos introduciendo datos.
  • Ve al menú Herramientas → Relaciones. Haz clic en el icono Agregar tablas.
  • Selecciona las tablas Musica y Soporte con el botón Añadir.

  • Pulsa el botón Cerrar.

En nuestro caso, en la tabla Musica tenemos un campo “Soporte” que hace referencia al tipo de soporte en que está grabado el álbum. Por tanto, la columna debe ser del mismo tipo de datos que la columna que sea clave primaria en la otra tabla y los valores que podrá contener será cualquiera de los valores que tome la clave primaria en dicha tabla.

   
Ojo

Los campos relacionados no tienen que tener los mismos nombres, pero deben tener el mismo tipo de datos y el mismo tamaño. Es decir, deben contener el mismo tipo de información.

   
 

En la tabla Musica el campo “Soporte” debe ser del mismo tipo de datos que el campo de la tabla Soporte. Además el campo relacionado de la tabla “muchos” se denomina “Clave ajena o externa”.

Ahora falta indicarle a Base explícitamente que las dos tablas están relacionadas y que vamos a utilizar para mantener dicha relación la columna “Soporte” de la tabla Musica. Para ello:

  • Arrastra del campo “Soporte” de Musica al campo “Soporte” de Soporte. Base ha creado una relación uno a muchos entre las 2 tablas.

  • Guarda los cambios en la base de datos.

Las relaciones entre tablas es un concepto un tanto abstracto. Sin embargo, si representamos gráficamente nuestro diseño, el significado queda mucho más claro.

Donde tenemos que:

  • Cada rectángulo se corresponde con una tabla.
  • Las flechas indican que las dos tablas están relacionadas.
  • Los números indican la cardinalidad. Es decir:
    • (N) Dado un soporte (por ej. CD), puede haber muchos álbumes grabados en ese tipo de formato.
    • (1) Dado un álbum, sólo está grabado en un tipo de soporte.
  • Sube la base de datos "Discoteca" a la plataforma.

Base de datos: BibliotecaRelaciones

  • Abre la base de datos "BibliotecaRelaciones".
  • Sigue los pasos vistos en el ejercicio anterior para crear una relación entre las tablas Libros y Prestamos.
  • Guarda los cambios.
  • Sube la base de datos "BibliotecaRelaciones" a la plataforma.
   
Ejercicios
Ejercicio
 

Relaciones entre tablas

  • Crea un documento de texto llamado "relaciones_tablas".
  • Indica el tipo de relación (1:1, 1:n, n:n) que se produciría entre las siguientes tablas y el porqué has elegido ese tipo:
    • Personas y trabajos.
    • Departamentos y empleados.
    • Profesores y asignaturas.
    • Institutos y directores.
    • Platos e ingredientes.
  • Sube el fichero "relaciones_tablas" a la plataforma.
   
Creditos Créditos
Licencia de Creative Commons

Este documento es de dominio público bajo licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
TuInstitutoOnline.com M.Donoso, G.García, P.Gargallo, A.Martínez. v. 2.0.2.1.0

No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.

Los reconocimientos se realizan en el apartado Fuentes de información.

Los iconos empleados están protegidos por la licencia LGPL y se han obtenido de:
https://commons.wikimedia.org/wiki/Crystal_Clear
https://www.openclipart.org


Licencia de Creative Commons

Todas las capturas de pantalla tienen copyright y pertenecen a TuInsitutoOnline.com.

TuInstitutoOnline.com permite su uso siempre y cuando se muestren desde el dominio www.tuinstituoonline.com y NO PERMITE enlazar a ellas desde otros lugares.

Además, la estructura diseñada para mostrar el contenido de las unidades es propiedad de TuInstitutoOnline.com.

TuInstitutoOnline.com M.Donoso, G.García, P.Gargallo, A.Martínez. Versión 2021.