Professional Documents
Culture Documents
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.
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).
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
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:
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
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.
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.