You are on page 1of 7

El modelo relacional

Introduccin al modelo relacional. Elementos.


El modelo relaciona fue inventado por E.F. Codd como un modelo general de datos. Es un modelo simple y potente que sirve para representar problemas. El formalismo y la base matemtica utilizada para definirlo se denomina teora de bases de datos relacionales. El elemento principal del modelo relacional es la relacin. Una base de datos relacional est formada por un conjunto de relaciones. Los componentes del modelos son: La relacin. Los dominios. Claves. Vistas.

Al conjunto de relaciones que forman una solucin para un caso concreto lo llamaremos esquema. El esquema de una base de datos por tanto ser la definicin del conjunto de sus relaciones.

Caractersticas de una relacin.


Una relacin es una estructura de datos que se utiliza para almacenar toda la informacin de una base de datos relacional. Representa una entidad o una asociacin de entidades. La relacin se representa mediante una tabla. Una relacin est formada por un conjuto de atributos y un conjunto de tuplas. Atributo (columna). Se representa como una columna en la tabla. Domino. Es un conjunto de valores, un tipo de datos, por ejemplo nmeros naturales, Si o NO, etc. Cada atributo tendr un dominio. Tupla (fila). Se representa como una fila en la tabla.

Restricciones en el modelo relacional


Restricciones inherentes.
En una relacin no puede haber dos tuplas iguales (la clave primaria es obligatoria, ver su definicin a continuacin). El orden de las tuplas y de los atributos no es relevante. Cada atributo slo puede tomar un valor. Ningn atributo que forme parte de la clave primaria de una relacin puede tomar un valor nulo.

Restricciones semnticas.
Restriccin de clave primaria (PRIMARY KEY). Declarar un atributo o conjunto de atributos como clave primaria de una relacin representa que servir para identificar unvocamente cada tupla de la relacin (esos atributos nunca podrn tomar un valor repetido en una relacin). Restriccin de unicidad (UNIQUE). Permite definir claves alternativas, con las mismas propiedades que una clave primaria. Restriccin de domino. Establece el tipo de datos que puede contener un atributo. Restriccin de obligatoriedad (NOT NULL). Permite declarar si uno o varios atributos de una relacin deben tomar siempre un valor, es decir, no pueden tomar valores nulos. El valor nulo representa la falta de informacin en el modelo relacional. Restricciones de verificacin (CHECK). Permite comporbar si el valor de un atributo cumple cierta condicin (p.e. "valor < 10"). Diaparadore o triggers. Son pequeos trozos de cdigo que se ejecutan al modificar, insertar o borrar datos de una relacin. Restriccin de clave ajena (FOREIGN KEY). Llamada tambin integridad referencial, es un conjunto de atributos de una relacin que es clave primaria en otra o la misma relacin. Permite enlazar relaciones (tablas) entre s. La integridad referencial nos indica que que los valores de la clave ajena en la relacin hijo deben corresponderse con los valores de la clave primaria en la relacin padre o bien ser nulos. Adems de la integridad referencial, el modelo relacional permite definir opciones de borrado y modificacin en las claves ajenas. Estas opciones indican las acciones que hay que llevar a cabo cuando se produce un borrado o modificacin de una tupla en la relacin padre referenciada por una relacin hija. o o o o Ninguna accin (RESTRICT). No se permite realizar la modificacin si con ella se rompe la integridad referencial. Actualizar en cascada (CASCADE). Se propaga la modificacin para mantener la integridad referencial. Poner a nulo (SET NULL). Los valores de la clave ajena se ponen a nulo para mantener la integridad referencial. Predeterminar (SET DEFAULT).

Representacin del modelo relacional en texto


El nombre de la relacin se pone en maysculas, y entre parntesis todos sus atributos en minsculas. RELACION(Atributo1, Atributo2, Atributo3, ...) Modificadores del estilo de los atributos: Atributo clave primaria: Subrayado Atributo clave alternativa: Negrita Atributo no obligatorio: Asterisco* Atributo que es clave ajena: cursiva

Para indicar la clave ajena, puede tomarse dos alternativas, ponerlo directamente como texto debajo de la tabla correspondiente:

ESPECIE(Especie, NombreCientifico, MesFloracin*) PLANTA(IDPlanta, FechaPuesta, Foto*, Especie) Clave ajena: {Especie} referencia a ESPECIE

O dibujar una flecha que apunte a la tabla a la que se referencia:

Cuando se realizan cambios en los valores que afectan a claves ajenas de borrado (ON DELETE, denotado con una d) y modificacin (ON MODIFY, denotado con una m) existen cuatro opciones de comportamiento:

Ninguna accin (RESTRICT). Se denota con una r. Actualizar en cascada (CASCADE). Se denota con una c. Poner a nulo (SET NULL). Se denota con una n. Predeterminar (SET DEFAULT). Se denota con una d.Estas letras se anotan junto a la flecha que indica la clave ajena como en el siguiente ejemplo:

Representacin grfica de esquemas relacionales


Para representar grficamente modelos relacionales utilizaremos el software SQL Developer Data Modeler de Oracle.

Existen muchas otras herramientas para realizar los modelos, desde las ms simples, como DIA o tan complejos como ERwin, pasando por MySQL Workbench, el modelador de MySQL. La documentacin de SQL Developer Data Modeler puedes encontrarla tambin en su pgina principal. Actividad 1. Intenta crear el esquema relacional para los siguientes casos: 1. Alumnos y asignaturas. Se desea disear una base de datos para un centro de enseanza que contenga informacin sobre los alumnos, las asignaturas y las calificaciones que se obtienen en cada una de las mismas. 2. Universidad. Se desea disear una base de datos para una Universidad que contenga informacin sobre los alumnos, las asignaturas y las carreras que se pueden estudiar. Tener en cuenta las siguientes restricciones: o o o Un alumno puede estar matriculado en muchas asignaturas. Una asignatura slo puede pertenecer a una sola carrera. Una carrera puede tener muchas asignaturas.

3. Universidad 2. Se desea disear una base de datos para una Universidad que contenga informacin sobre los alumnos, las asignaturas y los profesores. Tener en cuenta las siguientes restricciones: o o o o o o o Una asignatura puede estar impartida por muchos profesores (no a la vez) ya que pueden existir diversos grupos. Un profesor puede dar clases de muchas asignaturas. Un alumno puede estar matriculado en muchas asignaturas. Se necesita tener constancia de las asignaturas en las que est matriculado un alumno as como de las notas obtenidas y los profesores que le han calificado. Tambin es necesario tener constancia de las asignaturas que imparten todos los profesores (independientemente de si tienenen algn alumno matriculado en su grupo). No existen asignaturas con el mismo nombre. Un alumno no puede estar matriculado en la misma asignatura con dos profesores distintos.

Actividad 2. Identificar elementos bsicos del modelo de datos relacional : Relacin. Tupla. Atributo. Dominio. Clave primaria. Clave Ajena. Opciones de borrado/modificacin. o Restringir. o Borrado/Modificacin en cascada.

Actividad 3. Ejercicios para comprender el modelo relacional. 1. Dada la siguiente tabla: ALUMNOS DE IDIOMAS Nombre Edad Idioma Luis 18 Ingls Ana 23 Ingls Francs Jaime 19 Alemn Mara 42 Italiano

Nivel Bien Bien Regular Mal Bien

1. Por qu no representa una relacin? 2. Transformarla en otra que contenga la misma informacin pero que represente una relacin.

2. Dado el siguiente esquema relacional, de una base de datos de una compaia de seguros: CLIENTE(dni, nombre_cliente, direccion_cliente, tarifa) AUTOMOVIL(matricula, marca, modelo, pagado, dni, num_clase) CATEGORA(num_clase, tasa) TALLER(cif, nombre_taller, direccion_taller) ACCIDENTE(num_accidente, dni, matricula, cif, fecha, coste) Sabiendo que se han llamado igual, en todas las tablas, los atributos que representan el mismo objeto o propiedad, se pide: a) Indicar las integridades referenciales existentes y dibujarlas. b) Para cada una, decidir y justificar los modos de borrado y modificacin ms convenientes.

3. Las siguientes relaciones representan una BD con informacin de empleados y programadores:

EMPLEADO(num_emp, nombre, ..., trabajo, ...) PROGRAMADOR(num_emp, ..., lenguaje, ...) Sabiendo que cada programador es un empleado, pero lo contrario no tiene porqu cumplirse: a) Indicar las claves primarias y ajenas de cada relacin, sealando en su caso, si las claves ajenas deben admitir valores nulos, e indicando los modos de borrado y modificacin.

4. Dado el esquema relacional de BD siguiente: DEPARTAMENTOS(cdigo, nombre) AREAS(cdigo, nombre, cdigo-dep) PROFESORES(cdigo, nombre, categora, cdigo-are) LOCALES(cdigo, nombre, capacidad, situacin) ASIGNATURAS(siglas, nombre, crditos, anualidad, curso, caracter, horasteora, ... ... horas-prcticas, alumnos) GRUPOS(siglas-asi, clase, cdigo, nombre, alumnos) DOCENCIA(cdigo-pro, cdigo-loc, siglas-asi, clase-gru, cdigo-gru, da, hora) que contiene informacin sobre un centro de enseanza con informacin sobre departamentos (dep), reas de conocimiento (are), profesores (pro), locales (loc) donde se imparte clase o se realiza algn otro proceso, asignaturas (asi), grupos de clase de las asignaturas (gru), y horas de docencia. El atributo clase en GRUPOS contendr los valores 'teora' o 'prcticas'. Se pide: a) Elegir las claves candidatas y claves primarias de cada tabla. b) Identificar las claves ajenas. c) Expresar en lenguaje natural lo que significa cada una de las claves ajenas.

5. Dado el siguiente esquema relacional para gestionar los prstamos de una biblioteca: LIBRO(signatura, autor, ttulo, editor, clase( clase referencia a CLASE USUARIO(carnet, nombre direccin) CLASE (clave, tiempo_de_prestamo) PRESTAMO (signatura, carnet, fecha_inicio, fecha_fin) signatura referencia a LIBRO carnet referencia a USUARIO Expresar en lenguaje natural las reglas semnticas que se han expresado.

6. La base de datos de una empresa contiene las siguientes tablas: PERSONA (dni, nombre, direccion, telefono) EMPLEADO (dni, fecha-alta, fecha-consolidacin, salario, departamento, jefe) DEPARTAMENTO (#dep, nombre, presupuesto) Indicar cmo modelaras las siguientes restricciones semnticas: a) No puede haber dos personas con igual DNI. b) Todo empleado es una persona. c) No puede haber dos empleados con igual #dep o igual nombre. d) Toda persona tiene direccin. e) La fecha de alta de un empleado tiene que ser anterior a la fecha de consolidacin.

f) El salario de cada empleado no puede ser superior al 10% del presupuesto de su departamento. g) Un empleado solo puede pertenecer a un departamento a la vez. h) Una persona puede tener varios telfonos o ninguno.

You might also like