Post on 08-Aug-2015
BASE DE DATOS
Ing. Ana E. Congacha
Ingeniera en Sistemas
Riobamba - Ecuador2012-2013
DISEÑO DE BASES DE DATOS
• Modelo relacional • Normalización
EL MODELO RELACIONAL Y LA NORMALIZACIÓN
El modelo Relacional es importante:
Los elementos de construcción son extensos y generales y se pueden usar para expresar diseños de BD independientes de DBMS.
Es la base de casi todos los productos DBMS
Las relaciones no son iguales, unas son mejores que otras.
La normalización es un proceso para convertir una relación que tiene ciertos problemas en dos o mas relaciones que no los tienen.
La normalización se puede usar como un lineamiento para comprobar la
validez de las relaciones.
El MODELO RELACIONAL
Una relación es una tabla bidimensional.
Renglón/fila/registro/tuples/tupla: tienen datos que pertenecen a alguna cosa o a una parte de esta
Atributos/campo/columna : contienen datos referentes a un atributo
TERMINOLOGÍA RELACIONAL EQUIVALENTE:
MODELO RELACIONAL PROGRAMADORUSUARIO
Relación Archivo Tabla
Tuple Registro Renglón
Atributo CampoColumna
• Las celdas de la tabla deben ser de un valor único; no se permite repetir grupos ni tener series en calidad de valores.
• Todas las entradas en cualquier columna deben ser del mismo tipo.• Cada columna tienen un nombre único.• El orden de las columnas en la tabla no es importante.• Dos renglones en la tabla no pueden ser idénticos y el orden de los renglones
no es significativo.
Almeida 19 F 001
Damian 20 F 002
Guerra 18 M 003
Jacome 21 F 004
Munoz 23 M 005
Nuñez 24 M 006
Salgado 19 F 007
Nombre Edad Genero NumEmpleado
Relación EMPLEAD
O
EMPLEADO(Nombre, Edad, Genero, NumEmpleado)
Estructura de la relación
Para que una tabla sea una relación debe cumplir ciertas restricciones:
Para comprender la normalización necesitamos definir dos términos:
1. Dependencia Funcional2. Llave
1. Dependencias Funcionales
Es una relación entre uno o más atributos. Suponga que si asignamos el valor de un atributo podemos obtener (o buscar) el valor de otro.
Ejemplo: Si conocemos:
NumerodeCuentadelCliente BalancedelCliente
Si esto es verdad podemos decir que BalancedelCliente es funcionalmente dependiente de NumerodeCuentadelCliente
Atributo X Atributo Y
En términos generales, el atributo Y es funcionalmente dependiente del atributo X, si el valor de X determina al valor de Y.
Dicho de otra manera, si conocemos el valor de X podemos obtener el valor de Y
encontrar
Ejemplo:
Suponga que los estudiantes tienen un número único de identificación(IDE) y que cada uno tiene una sola especialidad. Considerando el valor de un EID, podemos encontrar la especialidad del estudiante, por lo que la especialidad es funcionalmente dependiente de EID.
EID Especialidad
NumSerie TamañodeMemoria
Podemos argumentar que el almacenamiento y la recuperación de las Dependencias funcionales es la única razón para tener una BD.
LAS DEPENDENCIAS FUNCIONALES SE ESCRIBEN USANDO LA SIGUIENTE NOTACIÓN:
EID : Especialidad
CodEmple: Función
EID determina funcionalmente a Especialidad
o
Especialidad es dependiente de EID
Determinantes
La relación de EID con Especialidad es de muchos a uno (N:1).
En general se puede decir que A determina a B, la relación de valores de A y B es N:1
Las dependencias funcionales pueden involucrar grupo de atributos: Considere la relación:
CALIFICACIONES (EID, Asignatura, Calificación).
La combinación de un EID y un NombredeClase determina una calificación, una dependencia funcional que se escribe:
(EID,Asignatura) Calificación
LLAVESEs un grupo de 1 o más atributos que identifica únicamente a un renglón.
ACTIVIDAD
EID ACTIVIDAD
CUOTA
100 ESQUI 200
101 NATACION 50
102 VOLEY 60
103 NATACION 50
Relación: ACTIVIDAD
Atributos: EID, Actividad, Cuota
Llave: EID
Fig. A
Suponga que a un estudiante le corresponde una sola actividad.
La llave se determina por completo mediante la semántica fundamental de las personas de la empresa que usan la base de datos.
A diferencia de los determinantes, las llaves son siempre únicas. Una llave determina funcionalmente a todo el renglón
Explique en la relación de la Fig. A , EID es tanto un determinante como una llave porqué?, pero Actividad es un determinante y no una llave porqué?.
NORMALIZACIÓN No todas las relaciones son igualmente deseables.
Una tabla que cumple la definición de una relación puede no tener una estructura eficaz o apropiada.
Para algunas relaciones el cambio de datos puede tener consecuencias indeseables - Anomalías de Modificación
Las Anomalías de Modificación se pueden eliminar redefiniendo la relación entre dos o más relaciones.
En la mayoría de los casos son preferibles las relaciones redefinidas o normalizadas
ANOMALIAS DE MODIFICACIÓN
Anomalía de Eliminación: Al suprimir los hechos acerca de una ENTIDAD (que Estudiante 100 es un esquiador)
inadvertidamente eliminamos los hechos de otra entidad (que esquiar cuesta
200), se pierden hechos acerca de dos entidades.
Anomalía de inserción: No podemos insertar un hecho de una entidad hasta que tengamos un hecho adicional acerca de otra entidad.
Actividad
Cuota
Esqui 200
Natación 50
Voley 50
EID Actividad100 Esqui
101 Natación
102 Voley
103 Natación
100 ESQUI 200
101 NATACION 50
102 VOLEY 50
103 NATACION 50
EID ACTIVIDAD CUOTA
ACTIVIDAD
ESTUD-ACT COSTO-ACT
Han quedado suprimidas las Anomalías de Modificación.
Esencia de la Normalización
Cada relación normalizada tiene solo un tema. Cualquier relación que tenga 2 o más temas debe dividirse en dos o más relaciones que tenga cada una un
tema.
Cuando encontramos una relación con anomalías de modificación las eliminamos separando la relación en dos o más, de tal forma que cada una contenga solo un tema.
A las técnicas para prevenir anomalías se denomina Formas Normales. Dependiendo de su estructura, una relación puede estar en la primera forma normal, en la segunda, o en alguna otra.
Las Formas normales son anidadas. Esto es una relación en la segunda forma normal esta también en primera forma normal.
Formas Normales
Exposición:
En grupo de 4 personas analizar los temas a continuación expuestos:Fecha: 21 de Noviembre del 2012En la exposición se considerará: Calidad presentación Informe (1 ) : Ideas concretas y presentadas en orden, en secuencia lógica. la
bibliografía usada, accesos a internet. Calidad de la Exposición (2,5) : presentación del expositor, facilidad de palabra, claridad en la
exposición, orden, ejercicios. Preguntas y respuestas (0.5%)
TEMA A INVESTIGAR INTEGRANTES
Forma Normal de Boyce – Codd
ADRIANO , ALBAREZ , CIFUENTES , CORONEL
Duchi, duchi, erazo, gaibor
2 GRUPOS
CUARTA FORMA NORMAL HARO, HERREA, ILLAPA, LLUMITAXI
MARTINEZ, NARANJO, NAVARRETE, OÑATE
2 GRUPOS
Quinta Forma Norma.ORTIZ, ORTIZ, RUILOVA Y SANAGUANO
SHILQUIGUA, TELLOS, TOCTAQUIZA, UVIDIA
2 GRUPOS
Primera Forma Normal
Cualquier tabla de datos que cumpla con la manera en que se define una relación se dice que esta en la primera forma normal.
ACTIVIDAD
EID ACTIVIDAD CUOTA
100 ESQUI 200
101 NATACION 50
102 VOLEY 50
103 NATACION 50
• Las relaciones en la primera forma normal pueden tener anomalías de modificación .
• Para eliminarlas, separamos la relación en dos o más relaciones.
• Cuando lo hacemos, las nuevas relaciones están en otra forma normal.
Cite ejemplos de relaciones que estén en la primera forma normal y no tengan anomalías
Otros Ejemplos:
http://es.wikipedia.org/wiki/Primera_forma_normal
Segunda Forma Normal
Una relación se encuentra en la segunda forma normal si todos los atributos que no son llaves son dependientes de todos los atributos de la llave. Si la relación tiene un solo atributo como llave, entonces automáticamente esta en la Segunda forma normal.
La segunda forma normal sólo se aplica a relaciones que tienen llaves compuestas.
ACTIVIDADES
EID ACTIVIDAD CUOTA
100 ESQUI 200
100 GOLF 65
150 NATACION 50
175 SQUASH 50
200 NATACION 50
200 GOLF 65
Llave: (EID, Actividad)Problema: Esta relación tiene una dependencia que involucra solo una parte de la llave.
Cuota es parcialmente dependiente de la llave(EID, Actividad)
COSTO-ACT
Actividad Cuota
Esqui 200
Natación 50
GOLF 65
Squash 50
ESTUD-ACT
EID Actividad
100 Esqui
100 Golf
150 Natación
175 Squach
200 Natación
200 Golf
ACTIVIDADES
EID ACTIVIDAD CUOTA
100 ESQUI 200
100 GOLF 65
150 NATACION 50
175 SQUASH 50
200 NATACION 50
200 GOLF 65
ACTIVIDAD
EID ACTIVIDAD CUOTA
100 ESQUI 200
101 NATACION 50
102 VOLEY 50
103 NATACION 50
COSTO-ACT
Actividad Cuota
Esqui 200
Natación 50
Voley 50
ESTUD-ACT
EID Actividad
100 Esqui
150 Natación
175 squach
200 Natación
Están en la segunda forma normal porque ambas
tienen llaves de un solo atributo
Otros Ejemplos
http://www.angelfire.com/my/jimena/bdat1/guia6.htm
Tercera Forma Normal
Una relación se encuentra en la tercera forma normal si esta en la segunda forma normal y no tiene dependencias transitivas.
VIVIENDA
EID EDIFICIO CUOTA
100 TORRES1 3200
101 TORRES2 3100
102 TORRES1 3200
103 TORRES3 3100
104 TORRES1 3200
VIVIENDA (EID, Edificio, Cuota)Llave: EIDDependencias Funcionales:
Edificio -> CuotaEID -> Edificio -> Cuota
Dependencia transitiva: EID determina Cuota a través del atributo Edificio
La llave de VIVIENDA es EID, el cual es un atributo individual entonces la relación esta en la segunda forma normal.(tanto Edificio como Cuota están determinados por EID)
VIVIENDA tiene anomalías debido a la dependencia transitiva
100 TORRES1
101 TORRES2
102 TORRES1
103 TORRES3
104 TORRES1
VIVIENDA-ESTUDEID EDIFICIO EDIFICIO - CUOTA
TORRES1 3200
TORRES2 3100
TORRES3 3100
EDIFICIO CUOTA
VIVIENDA
EID EDIFICIO CUOTA
100 TORRES1 3200
101 TORRES2 3100
102 TORRES1 3200
103 TORRES3 3100
104 TORRES1 3200
Otros ejemplos
http://es.wikipedia.org/wiki/Tercera_forma_normal
Taller: Grupo de 2 personas Que restricciones debe cumplir una tabla para que sea
considerada una relación? Defina los siguientes términos: relación, tuple, atributo, registro,
campo, tabla, renglón, columna. Defina dependencia funcional. Dé un ejemplo sobre dos atributos
que tengan dependencia funcional, y otro de dos atributos que no tengan dependencia funcional.
Si EID determina funcionalmente a Actividad, ¿significa que sólo puede existir un valor de EID en la relación? ¿Por que?
Defina determinante? Defina llave? Si EID es la llave de una relación. ¿es un determinante?¿Puede un
valor determinado de EID ocurrir más de una vez en la relación? ¿Qué es una anomalía de eliminación? De un ejemplo diferente al
que se menciona en las diapositivas anteriores. ¿Qué es una anomalía de inserción? De un ejemplo diferente al
que se menciona en las diapositivas anteriores.
Ejercicios en clase
Considere la siguiente definición de relación y los datos de muestra:
PROYECTO
ProyectoID NombredelEmpleado
SalariodelEmpleado
100A JONES 64
100A SMITH 51
100B SMITH 51
200A JONES 64
200B JONES 64
200C PARKS 28
200C SMITH 51
200D PARKS 28
Proyecto (ProyectoID, NombredelEmpleado, SalariodelEmpleado)
Donde:
ProyectoID: es el nombre del proyecto de trabajo.
NombredelEmpleado: es el nombre del empleado que trabaja en el proyecto.
SalariodelEmpleado: es el salario del empleado
ProyectoID → NombredelEmpleado
ProyectoID → SalariodelEmpleado
(ProyectoID, NombredelEmpleado) →
SalariodelEmpleado
NombredelEmpleado→ SalariodelEmpleado
SalariodelEmpleado → ProyectoID
Suponga que todas las dependencias y restricciones son evidentes en estos datos. Cuál de los siguientes enunciados es cierto?
Conteste las siguientes preguntas:
¿Cuál es la llave del proyecto? ¿Todos los atributos que no son llaves (si los
hay)dependen por completo de las llaves? En que forma normal está PROYECTO? Describa dos anomalías de modificación que tiene
PROYECTO. ProyectoID es un determinante? NombredelEmpleado es un determinante? SalariodelEmpleado es un determinante? Tiene esta relación una dependencia transitiva? Si
es así cual es ? Rediseñe esta relación para eliminar las
anomalías de modificación
PROYECTO-HORAS
NombredelEmpleado
ProyectoID TareasID Telefono HorasTotales
DON 100A B-1 12345 12
DON 100A P-1 12345 12
DON 200B B-1 12345 12
DON 200B P-1 12345 12
PEN 100A C-1 67890 26
PEN 200A C-1 67890 26
PEN 200D C-1 67890 26
Ejercicio:Considere la siguiente definición de relación y datos muestra:
HORAS-PROYECTO (NombredelEmpleado, ProyectoID, TareasID, Telefono, HorastOTALES)
Donde: NombredelEmpleado es el nombre de un empleado. ProyectoID es el nombre de un proyecto. TareasID es el nombre estándar de la tarea. Teléfono es el numero telefónico del empleado. Horastotales son las horas que ha trabajo el
empleado en este proyecto.
Suponga que todas las dependencias funcionales y restricciones son evidentes en estos datos. ¿Cuáles de los siguiente enunciados son verdaderos?
NombredelEmpleado →ProyectoID NombredelEmpleado →TareasID NombredelEmpleado →telefono NombredelEmpleado →HorasTotales (NombredelEmpleado,ProyectoID)
→HorasTotales (NombredelEmpleado, telefono) →TareasID ProyectoID →TareasID TareasID →ProyectoID
Rediseñe esta relación para eliminar las anomalías de modificación. Cuantas relaciones usó. Cuantos temas contiene cada una de sus nuevas relaciones
Aviso Importante
PRUEBA PARCIAL 2
FECHA: MIERCOLES 19 DE DICIEMBRE DEL 2012
TEMAS: TODO LO VISTO HAST EL MARTE S 18 DE DICIEMBRE DEL 2012
Dis
eño d
e
Base
s de D
ato
s UTILIZANDO
MODELOS DE ENTIDAD - RELACIÓN
En este tema vamos a ilustrar la transformación de los requerimientos de los usuarios expresados en modelos entidad – relación, en el diseño de Base de Datos.
Estos diseños son independientes de cualquier DBMS.
TRANSFORMACIÓN DE LOS MODELOS ENTIDAD-
RELACIÓN EN DISEÑOS DE BASES DE DATOS RELACIONALES
Representación de Entidades con el Modelo Relacional
La entidad CLIENTE contiene:
CódigoNombreDirecciónCiudadTelefono
CLIENTE (Código, Nombre, Dirección, Ciudad, Telefono)
Relación que representa la entidad CLIENTE
Llave
Representación de Entidades Débiles
Cuando se crea una relación para una entidad dependiente de un identificador debemos asegurarnos que tanto la llave del padre como la de la entidad aparezcan en la relación.
Para representar las entidades débiles es necesario agregar la llave de la entidad padre a la relación de la entidad débil, y este atributo agregado sería parte de la llave de la entidad débil.
FACTURA LINEA_ARTICULO1:N
LINEA_ARTICULO (CódigoLineaArticulo, CodigoFactura, NumerodeArticulo, Cantidad, Descripción, Precio)
Representación de Relaciones Uno a Uno
Cada entidad se representa con una relación y entonces la llave de una de las relaciones se coloca en la otra
EMPLEADO (CodigoEmpleado, CodigoAuto, NombreEmpleado, FonoEmpleado)
AUTO (CodigoAuto, numeroLicencia, Color, Marca, Modelo)
La integridad referencial contiene:
CodigoAuto en EMPLEADO debe existir en CodigoAuto en Auto
Con este diseño podemos navegar de EMPLEADO a AUTO
LLAVE EXTERNA
EMPLEADO AUTO1:1
ASIGNACION-AUTO
EMPLEADO (CodigoEmpleado, NombreEmpleado, FonoEmpleado)
AUTO (CodigoAuto, CodigoEmpleado, numeroLicencia, Color, Marca, Modelo)
LLAVE EXTERNA
Representación de Relaciones Uno a Muchos
Los términos padre e hijo algunas veces se aplican a las relaciones 1:N
ESTUDIANTE (CodigoEstudiante, CodigoProfesor, NombreEstudiante)
PROFESOR (CodigoProfesor, nombre, telefono, departamento)
La integridad referencial contiene:
CodigoProfesor en ESTUDIANTE debe existir en CodigoProfesor en PROFESOR
PROFESOR ESTUDIANTE1:N
padre hijo
Cada entidad se representa mediante una relación, y después la llave de la relación que representa a la entidad padre se coloca en la
relación que representa a la entidad hijo.
Representación de Relaciones Muchos a Muchos
CLASE (CodigoClase , NombreClase)
ESTUDIANTE (CodigoEstu, nombre, telefono, departamento)
La integridad referencial contiene:
CodigoEstu en ESTUDIANTE-CLASE debe existir en CodigoEstu en ESTUDIANTE
CodigoClase en ESTUDIANTE- CLASE debe existir en CodigoClase en CLASE
ESTUDIANTE CLASEM:N
Las relaciones M:N no pueden representarse directamente.Utilizamos Una Relacion de Intersección.
ESTUDIANTE-CLASE (CodigoEstu, CodigoClase)
Representación de Relaciones Subtipos
CLIENTE
CLIENTEPERSONA
CLIENTESOCIEDAD
CLIENTEEMPRESA
SUPERTIPO
SUBTIPOS
1
CLIENTE (CodigoCliente, NombreCliente, CantidadAdeudada)
CLIENTE-PERSONA (CodigoCliente, Dirección, NumeroSeguroSocial)CLIENTE-SOCIEDAD (CodigoCliente, NombredelSocioAdministrador, Direccion, NumIdentificacionFiscal)CLIENTE-EMPRESA (CodigoCliente, PersonaContacto, Telefono)
Ejercicio en clase
Realice la representación relacional utilizando el diagrama E-R siguiente:
EMPLEADO
INGENIERO
SERVICIO
CLIENTE
AUTOBUS
CERTIFICACIÓN
1:1
ASIGNACION-AUTOBUS
1N
NM
SERVICIO - PROVEEDOR
CLIENTE - SERVICIO
1:N
HABILIDAD - INGENIERO
EJERCICIO 1: Realice la representación relacional:
La base de datos del hospital necesita almacenar información sobre los pacientes, su admisión, los departamentos del hospital y sus tratamientos.
Para cada paciente se conoce: nombre, dirección, sexo y número de seguro social. Para cada departamento se conoce: nombre del departamento, su ubicación, el nombre del médico que lo dirige, el número de camas disponibles y el número de camas ocupadas. Cada paciente se admite y se da de alta en una fecha determinada; además se le administran varios tratamientos durante la hospitalización. Para cada tratamiento se almacena su nombre, duración y las posibles reacciones que pueda tener el paciente.
Quizá necesite hacer ciertas suposiciones sobre los requerimientos de la aplicación; haga suposiciones RAZONABLES conforme avance.
Ejercicio EN CLASE
Taller en clase
Grupos de 3 personas: http://basededatos.umh.es/ejerciciosPro
puestos.html
Aviso Importante
PRUEBA PARCIAL 2
FECHA: MARTES 18 DE DICIEMBRE DEL 2012
TEMAS: TODO LO VISTO HASTA EL LUNES 17 DE DICIEMBRE DEL 2012