You are on page 1of 97

MODELO DE DATOS CONCEPTUAL AVANZADO

OBJETIVOS DE LA SECCION
Al finalizar esta seccin, el alumno ser capaz de:

1. validar que un atributo sea puesto correctamente en base a la dependencia con el UID de la enditidad. 2. resolver relaciones muchos a muchos con entidades interseccin. 3. identificar y construir un modelo de datos avanzado incluyendo relaciones recursivas, subtipos y relaciones exclusivas.

NORMALIZAR EL MODELO DE DATOS

Normalizar es un conjunto de base de datos relacional, pero sus principios se aplican al modelo Conceptual de datos.

Validar cada atributo usando las reglas de normalizacin.

Regla de Forma Normal Primera forma Normal (1 FN)

Descripcin Todos los atributos deben tener un solo valor para cada instancia.

Segunda forma Normal(2 FN)

Un atributo debe ser dependiente del identificador nico completo.

Tercera forma Normal (3 FN)

Ningn atributo mo- UID puede ser dependiente de otro atributo no - UID

Un modelo de datos entidad- relacin normalizado se traslada automticamente dentro de un diseo de base de datos.

Notas

La tercera forma normal es un objetivo generalmente aceptado para eliminar redundancias en un diseo de base de datos. Formas normales arriba de la tercera forma normal no son comnmente utilizadas.

Regla de la Primera Forma Normal

Todos los atributos deben tener un solo valor para cada instancia.

VALIDACION Validar que cada atributo tenga un valor nico para cada ocurrencia de la identidad. Ningn atributo deber tener valores repetidos.

Ejemplo: LA Entidad CLIENTE cumple con la 1FN? Si, no cumple Cmo se podra convertir a 1FN?

CLIENTE # identificador. Fecha de Contacto

El atributo Fecha de Contacto tiene mltiples valores, por lo tanto la entidad CLIENTE no es considerada como 1FN.

Crear una entidad adicional CONTACTO con una relacin de M:1 hacia CLIENTE.

CONTACTO # Fecha de Contacto Localizacin. Resultado

CLIENTE # identificador. Fecha de Contacto

Si Un Atributo tiene mltiples valores, se crea una entidad adicional y lo relaciona con la Regla de la Segunda Forma relacin entidad original mediante una Normal M:1 Un atributo debe ser dependiente del identificador nico completo.

VALIDACION Validar que cada atributo dependa completmnete de UID. Cada instancia especfica del UID debe determinar una sola instancia de cada atributo. Validar que un atributo no dependa de una sola parte del UID de la entidad.

Ejemplo:

CURSO # Cdigo Nombre. Duracin. Cuota. Cada instancia del cdigo curso determina un valor especifico para el nombre, duracin y cuota. Los atributos estn ubicados correctamente. EJEMPLO: CUENTA # Numero Balance. Fecha de Apertura. Localizacin de Banco BANCO # Numero. Nombre.

Cada instancia de un BANCO y numero de cuenta determinan valores especficos del balance y de la fecha de apertura para cuenta. El atributo de localizacin del banco esta mal ubicado. Este depende del BANCO, pero no del nmero de cuenta. Este no debera ser un atributo de CUENTA.

Si un atributo no es depende del UID completo, esta fuera del lugar y debera ser movido

PRACTICA 4-1 Normalizar un modelo E-R. 1. Para el siguiente Modelo E-R, evaluar cada entidad contra las reglas de normalizacin, identificar si el atributo esta colocado en el lugar correcto; si no lo esta, identificar que regla de normalizacin se esta violando.

CUENTA # Codigo de Grado Numero de Maestro Descricion de Grado Nombre del Curso

Para

CURSO # Numero de Curso. Nombre de Curso Numero de Maestro Cdigo de departamento Nombre de departamento Nombre de maestro Apellido de maestro

Formado Con

Para Asignado A BANCO # Numero. Nombre.

2. Opcionalmente, redibujar el diagrama E- R en la tercera forma Normal

RESOLUCION DE RELACIONES M:M

Algunos atributos pueden asociarse con Relaciones M:M. Resolver relaciones M:M agregando una entidad interseccin con esos atributos.

EJEMPLO:

Considerar la relacin M:M entre PRODUCTO y VENDEDOR. Cul es el precio actual del PRODUCTO especfico para un VENDEDOR especfico?

PRODUCTO # ID Nombre Descripcin

SURTIDO POR

VENDEDOR # Codigo Nombre

SURTIDOR DE

El precio actual parece ser un atributo de la relacin entre PRODUCTO y VENDEDOR.

Los atributos nicamente describen entidades. Si los atributos describen relaciones, las relaciones debern ser resueltas.

Reemplazar o resolver una relacin M:M con una entidad Interseccin nueva y con dos relaciones M:1. Ejemplo. La relacin M:M entre PRODUCTO y VENDEDOR puede ser resuelta agregando una entidad interseccion llamada CATALOGO. El precio actual es realmente un atributo de la entidad CATALOGO.

CATALAGO # Precio actual Cantidad del paquete Unidad de medida

Para

VENDEDOR # Codigo Nombre

DETERMIN ADO CON

Para
ASIGNADA

PRODUCTO # ID Nombre Descripcin

Una ves que esta definida la entidad CATALOGO, se analiza la posibilidad de requerimientos para atributos adicionales como:cantidad del paquete y unidad de medida. El UID del CATALOGO es compuesto de estas dos relaciones.

Notas: Una entidad interseccion es frecuentemente identificada por las dos relaciones que le dieron origen, observar las dos barras UID del ejemplo. Las relaciones desde una entidad interseccin son siempre obligatorias. Las entidades interseccion son muy comunes para representar situaciones de negocios en l mundo real. Las entidades interseccin normalmente generan requerimientos para atributos adicionales como el uso de entidades y fechas. Estas tienden a ser entidades voltiles y de volumen alto.

Posicionar las entidades interseccin de forma que permitan que Los cuervos siempre vuelen hacia el este o hacia el sur

Forma Relacin M:M

Forma Correcta de las entidades Interseccin.

ENTIDAD INTERSECCION

ENTIDADES DE REFERENCIA

Notas: Una entidad de referencia es una entidad que no ha tenido relaciones obligatorias a esta. Cuando las relaciones M:M son resueltas, la forma del diagrama puede ser confusa.

El UID de una entidad interseccin esta frecuentemente compuesta de las relaciones entre las entidades que dieron origen. EJEMPLO: Resolver la siguiente relacin M:M para acomodar los siguientes requerimientos: Cada estudiante tiene una fecha de registro en el curso, fecha de terminacin del curso y el grado del estudiante. ESTUDIANTE # Id Apellido Nombre Numero telefonico

CURSO # Codigo. Nombre Cuota Duracion.

Solucin: Agregar la entidad interseccion INSCRIPCIONES y las dos relaciones M:1.

INSCRIPCION Fecha de registro Fecha de terminacin Grado

PARA

PARA
TOMADO POR REGITRADO EN

ESTUDIANTE # Id Apellido Nombre Numero telefonico

CURSO # Codigo. Nombre Cuota Duracion.

INSCRIPCION tiene como atributos la fecha de registro, fecha de terminacin y el grado. El UID de INSCRIPCION es credo a partir de las relaciones entre ESTUDIANTE y CURSO.

Notas: Este modelo nicamente guarda la ltima fecha en que un estudiante se inscribi en un curso especifico. Si se necesita guardar mltiples fichas de registro, incluir el atributo de fecha de registro como parte del UID.

Las relaciones de una entidad interseccion hacia las dos entidades que le dieron origen puede no ser muy adecuada para definir de forma nica cada ocurrencia de la entidad interseccion. EJEMPLO: Resolver la siguiente relacin M:M para acomodar estos requerimientos adicionales: Guardar la fecha en la que cada empleado es asignado a un proyecto, y la duracin de la asignacin. EMPLEADO # Id Nombre

ASIGNADO A

PROYECTO # Nemero Titulo.

ASIGNACION DE

Agregar una entidad interseccin llamada TAREA ASIGNADA con los atributos fecha de asignacin y duracin.

TAREA ASIGNADA Fecha asignada Duracin


PARA PARA
SUJETO A

ASIGNADO

EMPLEADO # Id Nombre

PROYECTO # Numero. Titulo

TAREA ASIGNADA se identifica parcialmente por las relaciones a EMPLEADO y a PROYECTO sin embargo, estas dos relaciones no son suficientes para identificar de manera nica a una TAREA ASIGNADA. Un empleado puede tener mltiples asignaciones a proyectos, con diferentes fechas de asignacin. Por tanto, el UID de TAREA ASIGNADA deber incluir el EMPLEADO relacionndose con el PROYECTO relacionado, y el atributo de FECHA ASIGNADA.

Una ves que se identifica una entidad interseccion, hay que buscar atributos adicionales para describir la entidad interseccion. Ejemplo: Qu informacin se necesita conocer sobre la relacin entre PRODUCTO y VENDEDOR? Nosotros necesitamos guardar el precio actual de un PRODUCTO especifico para un VENDEDOR especifico. Resolver la siguiente relacin M: M para acomodar los requerimientos adicionales.

PRODUCTO # ID Nombre Descripcin

SURTIDO POR

VENDEDOR # Codigo Nombre

SURTIDOR DE

Agregar la entidad interseccin PRODUCTO VENDEDOR con un atributo de precio actual. Qu otra informacin se necesita conocer sobre el PRODUCTO VENDEDOR? Nosotros tambin necesitamos conocer la cantidad empacada y la unidad de medida de cada PRODUCTO VENDEDOR

PRODUCTO VENDEDOR

Para

VENDEDOR # Codigo Nombre

# Precio actual Cantidad del paquete Unidad de medida

DETERMIN ADO CON

Para
ASIGNADA

PRODUCTO # ID Nombre Descripcin

Buscar atributos que identifiquen o ayuden a identificar una entidad interseccin. Ejemplo. Cmo identificar cada PRODUCTO VENDEDOR? Se puede usar la combinacin del cdigo VENDEDOR y la clave del PRODUCTO? No, nosotros tenemos un catalogo de todos los PRODUCTOS VENDEDOR, que se pueden adquirir con cada VENDEDOR, y cada uno de ellos tiene un numero nico en el catalogo.
PRODUCTO VENDEDOR

Para

VENDEDOR # Codigo Nombre


DETERMINA DO CON

# Numero de catalogo Pecio actual Cantidad de paquete Unidad de medida

Para
ASIGNADA

PRODUCTO # ID Nombre Descripcin

De acuerdo a las reglas de los negocios, cada PRODUCTO VENDEDOR tiene un numero nico, el catalogo. Por ello el atributo de NUMERO DE CATALAGO debera ser el UID del PRODUCTO VENDEDOR.

Resolver las relaciones M:M al final de la fase de anlisis. Esta resolucin forzada puede resultar en una Entidad Interseccin sin atributos. Ejemplo: En la situacin de la tienda de videos, se defini la siguiente relacin M:M.

PELICULA # ID Titulo Categora

PROTAGONIZ ADA POR

ACTOR # Cdigo Apellido real Nombre real Fecha de nacimiento.

PROTAGONIST A EN

Al final de la etapa de anlisis, el usuario no ha definido algn atributo asociado con la relacin M:M . Resolver la relacin M:M con una entidad interseccion sin ningn atributo. ELENCO DE ESTRELLAS

PARA

PARA
PROTAGONIZADA POR PROTAGONISTA EN

PELICULA # Id Ttulo Categoria

ACTOR # Cdigo Apellido real Nombre real Fecha de nacimiento.

Notas: Una entidad interseccion si atributos es justamente una lista de referencia cruzada en el doble sentido entre las ocurrencias de las Entidades. Una entidad interseccion sin atributos es la excepcin a la regla de una entidad debe tener atributos para ser una entidad. El UID para una entidad interseccin vaca, es siempre compuesto de la relacin de las dos entidades que lo originaron.

PRACTICA 4-2 Resolver las relaciones M:M. 1. En el modelo E-R de la prctica 3-10 referente al Grupo de Usuarios Oracle, una relacin M:M fue inicialmente modelada entre la entidad MIEMBRO y la entidad AREA DE APLICAION. Resolver esta relacin M:M basada en el siguiente texto. Requerimientos adicionales. Tambin nos gustara llevar una breve descripcin del inters de cada miembro en cada rea especifica de aplicacin. Por ejemplo, un miembro puede tener un sistema de aplicaron contable muy grande, elaborado por el mismo. Otro miembro puede estar interesado en otra rea de aplicaron sin describir el mismo inters que el miembro anterior.

MIENBRO # Identificador Nombre Apellido. Titulo Cuota recibida Direccion. Numero telefonico Tipo de menbresia

INTERESADO EN

AREA DE APLICAION

DE INTERES PARA

# Codigo Nombre

PRACTICA 4-3 Resolver una relacin M:M. 1. Resolver la siguiente relacin M:M entre CLIENTE y PRODUCTO. Agregar los atributos fecha de orden, cantidad ordenada y precio.

CLIENTE # ID Nombre Apellido.

EL COMPRADOR DE

PRODUCTO # Numero Nombre Existencia.

ORDENADO POR

MODELO JERARQUICO DE DATOS

Representacin jerrquica de datos como un conjunto de relaciones muchos a uno. Ejemplo: Modelar la estructura de organizacin jerrquica de una compaa como un conjunto de relaciones M:1.

COMPANIA

EQUIPO

DIVICION

DENTRO DE

COMPUESTO DE

DEPARTAMENTO

DEPARTAMENTO

DENTRO DE COMPUESTO POR EQUIPO

DIVISION

DENTRO DE COMPUESTO POR

COMPANIA

Nota: La forma del diagrama E-R de Oracle usando la convencin de los cuervos siempre vuelan hacia el este o hacia el sur causa que las jerarquas sean dibujadas de abajo hacia arriba.

Los UISs PATRA un conjunto de entidades jerrquicas pueden ser propagados a travs de relaciones mltiples. Ejemplo: Cules son los UIDs de las entidades PISO, DEPARTAMENTO y CUARTO?

CUARTO # Id
LOCALIZADO DENTRO DE

COMPUESTO DE

DEPARTAMENTO # Numero # Inquilino

LOZALIZADO EN

COMPUESTO POR

PISO # Numero

CONTENIDO DENTRO COMPUESTO POR

EDIFICIO # Id. Nombre Direccin

El UID del CUARTO es la clave de cuarto y esta localizado dentro de un DEPARTAMENTO. El UID del DEPARTAMENTO es el nmero de habitacin y esta localizada en un PISO. El UID del PISO es el nmero de piso y esta contenido dentro del EDIFICIO.

Considerar la creacin de atributos artificiales como ayuda par identifica las entidades en relaciones jerrquicas. EJEMPLO: En una estructura tpica de organizacin. Qu puede identificar de manera nica instancias de las entidades de DIVICION, DEPARTAMENTO, y EQUIPO?.

EQUIPO

DENTRO DE

COMPUESTO DE

DEPARTAMENTO

DENTRO DE COMPUESTO POR

DIVISION

DENTRO DE COMPUESTO POR

COMPANIA

Cada EQUIPO puede ser identificado basndose en su DEPARTAMENTO, DIVICION, COMPANIA. O cada entidad tiene un cdigo artificial de identificacin nico independiente. NOTAS: Los cdigos artificiales de identificacin deben ser nicos e independientes. Si las estructuras jerrquicas cambian ocasionalmente, se recomienda usar identificadores artificiales independientes.

RELACION DEL MODELO RECURSIVO


Una relacin recursiva es la relacin entre una entidad con ella misma. EJEMPLO: Leer la relacin recursiva en el siguiente diagrama E-R.

EMPLEADO # Numero de clave Nombre apellido empleo fecha de pago salario comision

GERENTE DE

Cada EMPLEADO puede estar bajo las rdenes de uno o solo un EMPLEADO. Cada EMPLEADO puede ser gerente de uno o ms EMPLEADOS. NOTAS: El ciclo puede aparecer en cualquier lado de cada entidad pero utilizando la convencin de Los cuervos siempre vuelan hacia el sur o hacia el este. Debemos colocar el ciclo en el ngulo inferior derecho.

Modelar la lista de materiales como una relacin recursiva de muchos a muchos Ejemplo: Para la organizacin de manufactura de automviles, considerar todas las partes elementales subensambles, ensamble y productos con estancia de entidad llamada COMPONENTE esta forma el complejo modelo E-R anterior puede remodelado como una simple recursiva.

COMPONENTE # IDENTIFICADOR Nombre

Cada COMPONENTE puede ser una parte de uno o ms COMPONENTES. Cada COMPONENTE puede estar compuesto por uno o ms COMPONENTES.

MODELAR SUBTIPOS Usar subtipos para modelar exclusivamente tipos de entidad que tienen atributos o elaciones comunes. Ejemplo: Un negocio tiene definidos dos tipos de empleado: Asalariados y por Honorarios. Para todos los empleados se guarda su nmero, nombre, apellido y departamento asignado. Para los empleados asalariados guardar su salario. Para los empleados por Honorarios guardar el costo por hora, costo por tiempo extra y sindicato. Crear un sper tipo EMPLEADO con dos subtipos. Cada EMPLEADO puede ser EMPLEADO o ASALARIADO o EMPLEADO por HONORARIOS.

EMPLEADO # Numero de clave Nombre Apellidos


EMPLEADO ASALARIADO
EMPLEADO POR HONORARIOS

Salario

Costo por hora. Costo por horas extras.

ASIGNADO A COMPUIESTO DE EMPLEADO ASALARIADO

COMPUIESTO DE

EMPLEADO ASALARIADO

NOTA Se debe tener cuidado con las instancias que pueden estar en ambos subtipos, la construccin del subtipo- supertipo es incorrecta en esas instancias.

Los subtipos pueden tener adems subtipos. Normalmente dos o tres niveles de profundidad son adecuados. Ejemplo:

AERONAVE AVION
PLANEADOR
AVION DE PROPULSION

JET

HELICOPTERO

HOVERCRAFT

OTRA AERONAVE

El AVION es un subtipo de AERONAVE y es un supertipo de AVION MOTORIZADO PLANEADOR. El JET hereda los atributos y relaciones de AVION MOTORIZADO, AVION Y de AERONAVE.

RELACIONES QUE MODELAN ROLES Hay que ser precavidos con las entidades que representan roles. EJEMPLO: Es el modelo entidad relacin para las compaa de entrenamiento, nosotros definimos una entidad INSTRUCTOR y una entidad ESTUDIANTE. Este modelo trabaja bien si un INSTRUCTOR nunca es un ESTUDIANTE, y un ESTUDIANTE nunca es un INSTRUCTOR. Pero Qu pasara si el INSTRUCTOR tambin fuera ESTUDIANTE.?

INSCRIPCION Fecha de inicio Fecha de terminacion. Grado.

PARA
REGISTRADO EN

PARA
TOMADO POR

ESTUDIANTE # Id Apellido. Nombre Numero telefnico.

CURSO # Cdigo Nombre Duracin Cuota.

ENSEADO POR

INSTRUCTOR

MAESTRO DE

# Id Nombre Apellido Numero telefnico

Las entidades que representan roles pueden compartir instancias que se traslapan.

Un supertipo es una entidad que tiene subtipos. Un supertipo puede ser separado en dos o ms subtipos mutuamente excluyentes. Ejemplo: Un EMPLEADO debe ser EMPLEADO ASLARIADO o EMPLADO POR HONORARIOS, pero no ambos. El supertipo puede tener atributos y relaciones compartidas por sus subtipos. Ejemplo: A todo EMPLEADO se le clasifica con nombre, apellido y nmero. Todos los EMPLEADOS deben estar y solo un DEPARTAMENTO. Cada subtipo puede tener sus propias relacione y atributos. Ejemplo: El subtipo EMPLEADO ASALARIADO tiene una atributo de salario. El subtipo EMPLEADO POR HONORARIOS tiene como atributos costo por horas y costo por tiempo extra y una relacin con la entidad SINDICATO. Notas: Una subtipo que no tenga atributos o relaciones propias puede ser un sinnimo para la entidad prototipo y no un subtipo.

MODELO DE RELACIONES EXCLUSIVOS Modelar dos o ms relaciones mutuamente excluyentes de la misma entidad usando un arco. EJEMPLO: Una CUENTA BANCARIA debe pertenecer a una CONPAIA o ser PERSONAL. Usar un arco para modelar esta relacin.

PERSONAL

B
CUENTA BANCARIA

A
CONPAIA

C
Reglas de lectura para la relacin exclusiva.

Cada entidad A tiene un relacin 1 con la entidad B una relacin 2 con una entidad C 3 . EJEMPLO:

Cada CUENTA BANCARIA debe pertenecer a una y solo una PERSONA o pertenecer a una o solo una COMPAA. Estndares para modelos de arco.

Las relaciones en arco frecuentemente tienen los mismo nombres de relacin. Las relaciones d arco deben ser todas obligatorias o todas opcionales. Un arco pertenece a una sola entidad, y solamente debe incluir relaciones originadas de entidad. Una entidad puede tener mltiples arcos, pero una relacin especfica solamente puede participar en un solo arco.

Todas la estancias de una entidad sper tipo deben pertenecer a una y solo u a de la entidades de subtipo. Los subtipos deben formar un grupo completo in traslaparse. Ejemplo: En general los trabajos deben ser manuales o de oficina pero puede haber excepciones.

TRABAJO
TRABAJO MANUAL TRABAJO DE OFICINA

OTRO TRABAJO

Reglas de lectura de supertipos. Subtipo, el cual es un tipo del supertipo. Ejemplo: Trabajos de OFICINA, los cuales son un tipo de TRABAJO. Siempre se usan subtipos OTROS cuando no se esta seguro completamente de los conjuntos.

Escoger Entre Dos Convenciones Para Dibujo De Arcos. Convencin uno. Un arco con puntos opcionales. Un punto dentro de este arco de be usarse para indicar que una relacin pertenece al arco.

CONPAIA

Convencin dos. Arco sin puntos Toda relacin cruzada por un arco le pertenece. Un rompimiento en el arco indica una relacin que no esta incluida en el.

Practica 4-5. Desarrollar un modelo E-R. 1. desarrollar un modelo E-R que satisfaga los siguientes requerimientos. LA compaa de camine RIGHT- WAY renta pequeos camiones de mudanza y trailer para uso local y en un solo sentido. Tenemos 347 oficinas de renta a travs de la regin oeste de los barios tipos de camiones y trailer. Necesitamos implementar un sistema para registrar nuestros contratos de renta y las asignaciones a nuestra vehculos. Cada una de las oficinas renta vehculos que tienen en su inventario, unidades listas para que los cliente s tomen posesin de ella inmediatamente. No hacemos reservaciones, ni especulamos con la fecha en que el cliente regresara el vehculo rentado. La oficina central supervisa la distribucin de los vehculos, y dirige las trasferencias de los vehculos de una oficina a otra. Cada oficina de renta tiene un nombre como LitletonRight-Way. Cada oficina tambin tiene un nmero nico de tres dgitos. Nosotros tambin registramos la direccin de la oficina. Cada vehculo tiene un identificado nico, registro del estado y una placa con su numero de registro. Tenemos 5 tipos de vehculos diferentes: Camiones de 36 pies , camiones de 34 pies, camiones de 10 pies, trailer cubiertos de 8 pies, y trailer descubiertos de 6 pies. Si tenemos un cdigo para el tipo de vehculo. Para todos nuestros vehculos necesitamos registrar la fecha en la que tuvo su ltimo mantenimiento la fecha de vencimiento de su registro. Para nuestros camiones necesitamos conocer la lectura actual del Odmetro (aparato para medir la distancia en la marcha), la capacidad del tanque de gasolina y si tiene o no un radio. Para mudanzas larga los clientes prefieren que el vehculo tenga radio a notamos el viaje actual justo antes de rentar un camin y otra ves cuando nos es regresado. La mayora de nuestros contratos de renta son para clientes individuales pero un contrato de renta puede ser para un particular o para una compaa. Rentamos un porcentaje pequeo de nuestros camiones a compaas. Asignamos un nmero de identificador para cada compaa y registramos el nombre de la ksma y su direccin. No , no necesitamos preocuparnos por informacin adicional sobre la empresa. Nuestro grupo corporativo de ventas maneja toda la informacin de manera separada. Para cada cliente particular registramos su nombre, telfono de su casa, su direccin y su licencia de conducir del estado: Nmero y Fecha de vencimiento. Nos gustara llevar el registro de nuestros clientes. Si un cliente daa nuestro vehculo, lo abandona o no cubre por completo el monto de la cuenta, lo marcamos como un cliente de alto riesgo y no lo volvemos a rentar nada. Solamente le permitimos a una sola persona hacer un contrato de renta por renta llevamos contratos separados de renta para cada vehculo. Si puede ser que un cliente nos rente dos o ms vehculos a la vez. Cada contrato de renta es identificado por el nmero de la oficina que gnero el mismos un nmero de contrato de renta. Tambin es indispensable que conozcamos la fecha de renta, la duracin anticuopada de la renta, la oficina de renta en donde dejara la unidad, el monto del depsito dejado, la cuota de renta diaria, y la cuota por milla. Por supuesto que por los trailer no hay cargo por millaje. No no necesitamos automatizar el lado financiero de nuestro negocio, solo necesitamos controlar nuestros contratos de renta y las funciones de asignacin a nuestro proyecto.

Crear una entidad adicional para mantener los valores de ,os valores en el tiempo Ejemplo: Una firma de consultara necesita mantener informacin acerca de sus contratos. Cada contrato tiene una clave nica, y se necesita tener la descripcin del contrato, el estatus del contrato (por ejemplo abierto, cerrado o suspendido). Inicialmente fue modelada la siguiente entidad CONTRATO. CONTRATO # Id. Descripcin. Valor de estado. Fecha de vigencia.

La entidad CONTRATO soporta un solo valor de estatus. La firma consultora quiere llevar registro de las fechas de apertura, cierre o suspensin de cada contrato. Para modelar los valores del estatus en el tiempo, agregar la entidad ESTATUS.

ESTADO DE

ESTATUS # Id. Fecha de Vigencia


TIENE

CONTRATO # Id. Descripcion

El UID de la entidad ESTATUS es la fecha de vigencia y el UID del CONTRATO.

Notas: Usar una sola entidad para guardar los valores en le tiempo de mltiples atributos asociado con una entidad (como CONTRATO).

MODELOS DE DATOS DE TIEMPO Agregar entidades adicionales y relaciones al modelo E-R para acomodar datos histricos. Preguntas al usuario: Se quiere una auditoria.?. Los valores de los atributos pueden cambiar en el tiempo?. Pueden cambiar las relaciones en el tiempo?. Necesita consultar los valores antiguos?. Necesita mantener versiones anteriores?

Nota:

validar cualquier requerimiento para almacenar datos histricos para el usuario. Almacenar datos histrico innecesarios puede ser costoso.

Una entidad interseccin se usa frecuentemente para mantener informacin acerca de las relaciones que cambian con el tiempo. Ejemplo:

Una sociedad de profesionistas quiere saber en que compaas, sus miembros han sido empleado y la finalizacin de cada empleo (Por templo de una fecha a otra fecha). Hay una relacin M:M entre cada socio y entren cada compaa.

SOCIO # ID Nombre Apellido.

TRABAJA PARA

COMPAIA # Codigo Nombre


TRABAJADOR DE

Agregar una entidad interseccion, REGISTRO HISTORICO DEL Empleado, para guardar empleos que cada empleado ha tenido en el tiempo y las fechas de esos empleos.
REGISTRO HISTORICO DEL EMPLEADO

De la Fecha A la Fecha

PARA

PARA
TRABAJADOR DE TRABAJA PARA

SOCIO # Id Apellido Nombre

COMPAA # Codigo. Nombre

Al incluir el atributo de la fecha en el UID del REGISTRO HISTORICO DEL EMPLEADO modelo guardara muchas fechas de empleo para una sola compaa y para un solo empleado.

Agregar una nueva entidad para acomodar la relacin que puede variar en el tiempo. EJEMPLO

El dueo de unos departamentos quiere saber quines son los inquilinos de cada uno de sus departamentos. (Solo tienen contratos de renta para una sola persona, no con mltiples personas). El siguiente modelo E R solo mantendr el inquilino actual de departamento.

DEPARTAMENTO

RENTADO POR

PERSONA # Id Nombre Apellido

# Codigo Direccion

Agregar la cantidad REGISTRO HISTORICO DE CUENTA para capturar los valores de las relaciones de renta en el tiempo.

Registro histrico de renta # De la fecha o la fecha

Para

persona # Id Nombre Apellido

Arrendatario de

Para
Rentado por

Departamento # Cdigo Direccin

MODELAR RELACIONES COMPLEJAS Cuidado con las relaciones M:M. Ejemplo Desarrollar un modelo E-R para la historia de empleados. Para cada persona, guardar su puesto en la compaa en la que trabajo, las fechas de sus puestos obtenidos. Una persona puede tener un puesto especfico en la misma compaa mltiples veces durante su carrera. Inicialmente el siguiente modelo E-R fue definido
PERSONA # ID APELLIDO NOMBRE
OCUPANTE DE

PUESTO # TITULO DE TRABAJO O DESCRIPCION DE TRABAJO

OCUPADO POR EMPLEADA POR PATRON DE PATRON DE DEPARTAMENTO # Codigo Direccion

INCLUIDO EN

Las fechas del puesto parecen ser un atributo de una relacin. Resolver cada relacin M-M
OCUPANTE DE

PERSONA # ID APELLIDO NOMBRE

PUESTO HISTORIA DEL PUESTO OCUPADO POR # TITULO DE TRABAJO O DESCRIPCION DE TRABAJO

SUJETO A TRABAJADO EN HISTORIA DE LA COMPAIA HISTORIA DE LA ORGANIZACION TRABAJADO POR COMPAIA # Codigo Direccion
TRABAJADO POR

Que entidad interseccin forman los atributos de fecha de puesto?, todas ellas?, ninguna de ellas?. PRACTICA 4-6 Modelar datos a travs del tiempo. Modificar el modelo E-R de la tienda del videos para que satisfaga con los siguientes requerimientos. tu sabes, necesitamos registrar todo el histrico de nuestras rentas. Cada vez que un cliente renta un video, nos gustara guardar la fecha de renta y el da en que regresar el video. Todos nuestros videos se deben de regresar el siguiente da, as que no llevamos una cuota por da de renta. Al guardar esta historia de las rentas nos permitir analizar el comportamiento de las mismas. Seremos capaces de determinar cuantos videos renta cada cliente y cuantas veces un cliente ha regresado un video tarde. Nosotros tambin debemos conocer cuantas veces un video en particular ha sido usada, y as saber cuando retirar dicho video. As podremos analizar las preferencias de cine de nuestros clientes.

ELENCO DE ESTRELLAS

Para

Para
PROTAGONIZADA POR PROTAGONISTA EN

ACTOR
CINTA # NUMERO FORMATO

LA COPIA

PELICULA # identificador
TITULO CATEGORIA

CODIGO NOMBRE ARTISTICO NOMBRE REAL APELLIDO REAL FECHA DE NACIMIENTO

RENTADA POR EL ARRENDATARIO DE CLIENTE


# NUMERO DE SOCIO APELLIDO NOMBRE NUMERO TELEFONO DIRECCION

PRACTICA 4-7 Hacer un modelo de relacin compleja. El modelo de E-R del grupo de usuarios de Oracle de la prctica 3-10 una relacin M:M Fue inicialmente modelada entre la entidad MIEMBRO y la entidad PLATAFORMA DE COMPUTADORA. Revisar que esa relacin satisfaga los siguientes requerimientos. Requerimientos No solo necesitamos conocer que plataforma de computadora utiliza cada usuario. Adems necesitamos conocer que productos (RDBMS, Pro*C, SQL*Forms, SQL*TextRetriveal, CASE, Financials, Etc.)maneja cada miembro y sobre que plataformas de computadora corren. No necesitamos conocer la versin especifica de cada producto, solo el nombre general del mismo.

MIEMBRO

INTERESADO EN

PLATAFORMA DE COMPUTADORA # Id
DESCRIPCION

# ID NOMBRE APELLIDO TITULO PAGARES RECIBIDOS DIRECCION NUMERO TELEFONO TIPO DE MEMBRESIA
DE INTERES PARA

PRACTICA 4-8 Practica opcional Desarrollar un complejo E-R 1. Desarrollar un modelo E-R para la siguiente situacin. Mi nombre es Phil Sales y trabajo en los cruceros Shipmore. Hemos decidido que nuestro sistema manual de reservaciones de pasajeros dentro de nuestros barcos no funcionara ms cuando tengamos nuevos barcos. Tendremos dos barcos mas, no botes, los botes entran dentro de los barcos, y probablemente nos expandiremos a 5 o 6 para 1995. cada uno tiene un nombre como gooosea,goodwind, y el nuevo es goodsky , cada uno tiene la capacidad especifica de pasajeros y tiene un registro. El registro es el pas en donde se registro el barco. Necesitamos preocuparnos sobre el tonelaje o la mecnica, o cualquier otra cosa sobre el barco. Cada ao sacamos un folleto informacin sobre cada crucero que ofrecemos. Cada crucero tiene un nombre y una duracin en das. Tenemos cruceros de tres, siete, once, catorce das. Cada crucero tambin tiene un barco asignado especficamente a el alguna gente solo le gusta viajar en barcos mas nuevos. Vamos a necesitar saber la antigedad de cada barco. Cada crucero se detiene en diferentes puertos. Un crucero de tres das solo tendr una parada siempre en el segundo del crucero, un crucero de siete das se detendr en tres puertos, y as sucesivamente. Los puertos van variando dependiendo de donde haya salido el crucero. Los puertos son Los ngeles, Miami, Anchorage. Los cruceros por los ngeles bajan a los puertos de Mxico, como son cabo san Lucas y Mazatln, los cruceros de Miami van a las Bahamas y las islas vrgenes, y el crucero de Anchorage hace paradas a lo largo de toda Alaska. Dependiendo de la duracin de cada crucero, cada barco har llamadas a puertos en das diferentes mientras este afuera. Los pasajeros que viajan con nosotros escogern un crucero determinado, que tendr determinada duracin y un X numero de puertos, y dependiendo del crucero que elija nos dir que cabinas esta disponible. Una vez que haya escogido una si esta disponible, la podemos cotizar. Esto depende del nmero de personas en cada cabina y la clase de la cabina. Siempre que boleteamos una cabina bajo el sistema manual, borramos la cabina del pizarrn de corcho donde llevamos la disponibilidad a menos de que no este lleno y el pasajero quiera compartirla con alguien mas si la cabina tiene capacidad para cuatro personas, y los pasajero viajan solos entonces les va a costar mas. Cada pasajero es boleteado y entonces recibimos su deposito despus le pagamos su comisin a la gerencia de viajes que haya hecho la reservacin.

CONCEPTO DE BASE DE DATOS RELACIONAL

OBJETIVO DE LA SECCION
Al final de la seccin el alumno ser capaz de : 1. Entender que es una base de datos relacional. 2. Definir que son las llaves primarias. 3. Entender el concepto de integridad de datos.

INTRODUCCIN A LA BASE DE DATOS RELACIONAL


Una base de datos relacional es una base de datos que es percibida por el usuario como una coleccin de relaciones o de tablas de dos dimensiones. EJEMPLO la tabla relacional contiene datos de empleados. NO_EMP 100 310 210 405 378 APELLIDO SANCHEZ ARIAS BRIONES GOMEZ MONTOYA NOMBRE DAVID ADRIANA JAIME JOSE LUCIA NO_DEPTO 10 15 10 12 25

NOTAS las tablas de base de datos relacional son sencillas pero disciplinadas. Una base de datos relacional debe tener integridad de datos, sus datos deben de ser precisos y consistentes.

Las base de datos relacionales son manipuladas como un conjunto en un tiempo en vez de un registro en un tiempo. EJEMPLO Para seleccionar todos los empleados que trabajan en el departamento 10, utilice la siguiente introduccin SQL. SQL> SELET no_emp, apellido, nombre, no_depto 2 FROM empleado 3 WHERE no_depto = 10; NO_EMP ------------100 200 APELLIDO -------------SANCHEZ BRIONES NOMBRE -------------DAVID JAIME NO_DEPTO ---------------10 10

el lenguaje estructurado de consulta(SQL) es utilizada parea manipular las bases de datos relacinales. NOTAS El instituto nacional americano de estndares (ANSI) ha establecido a SQL como lenguaje estndar para operar sobre las bases de daros relacinales. Una base de datos relacional puede soportar un conjunto completo de operaciones relacinales. Las operaciones relacionales manipulan conjuntos de valores de datos, tablas pueden ser utilizadas en la creacin de otras tablas. Las operaciones relacionales pueden ser anidadas.

LLAVES PRIMARIAS Una llave primaria (PK) es una columna o grupo de columnas que identifican de manera nica a cada rengln de una tabla. Cada tabla tabla debe tener una llave primaria y una llave primaria debe ser nica. EJEMPLO La llave primaria para la tabla EMPLEADO consiste en la columna NO_EMP. Cada rengln en la tabla es identificado de manera nica por su valor en NO_EMP. Llave primaria NO_EMP APELLIDO NOMBRE NO_DEPTO

100 210 210 405 375

SANCHEZ ARIAS BRIONES GOMEZ JONHSON

DAVID ADRIANA JAIME JOSE LUCIA

10 15 10 12 06

TABLA EMPLEADOS

NOTAS No se aceptan duplicados en llave primaria. la llave primaria debe ser nica. El valor de las llaves primaria generalmente no se pueden cambiar. El UID de una entidad ira de acuerdo con llave primaria en su tabla correspondiente

Una llave primaria que consta de varias columnas se llama llave primaria compuesta. EJEMPLO La llave primaria compuesta para la tabla CUENTA consta de la combinacin de las columnas NO_BANCO Y NO_CUENTA. cada renglon en la tabla esta identificado de manera nica por los valores de NO_BANCO Y NO_CUENTA. Llave Primaria

NO_BANCO 104 104 105 103 105 TABLA CUENTA

NO_CUENTA 77560 77956 89570 65890 76964

BALANCE 12.000.60 100.10 65.776.00 15.001.85 5.00

FECHA_APERTURA 21.Oct.89 16.Ene.85 10.Mar.71 28.Set.91

NOTA Las columnas de una llave primaria compuesta deben de ser nicas en combinacin de columnas pueden tener duplicados en forma individual, pero en combinacin no se permiten duplicados.

Ninguna parte de la llave primaria debe ser nula. EJEMPLO NO_EMP es la llave primaria de la tabla EMPLEADO. por lo tanto NO_EMP debe ser definida como NO NULA. Clave primaria NO_EMP APELLIDO NOMBRE NO_DEPTO

100 210 210 405 375

SANCHEZ ARIAS BRIONES GOMEZ JONHSON

DAVID ADRIANA JAIME JOSE LUCIA

10 15 10 12 06

Tabla Empleados EJEMPLO como es que la tabla CUENTA viola las reglas de las llaves primarias?

Llave Primaria NO_BANCO 104 104 103 105 Tabla Cuenta

NO_CUENTA 77560 77956 89570 76964

BALANCE 12.000.60 100.10 65.776.00 15.001.85 5.00

FECHA_APERTURA 21.Oct.89 16.Ene.85 10.Mar.71 28.Set.91

Dos de los reglones contienen valores NULOS en partes de la PK compuesta. NO_BANCO y NO_CUENTA deben de ser definidos como NO NULOS.

Una tabla puede tener ms de una columna o combinacin de columnas que pueden servir como la llave primaria de la tabla. Cada una de estas es llamada llave candidata o alterna. EJEMPLO Cuales don las llaves candidatas de la tabla EMPLEDO?

NO_EMP

APELLIDO

NOMBRE

NO_DEPTO

NOMINA

100 210 210 405 375

SANCHEZ ARIAS BRIONES GOMEZ JONHSON

DAVID ADRIANA JAIME JOSE LUCIA

10 15 10 12 06

9710 8730 1157 3394 4477

TABLA EMPLEADO NO_EMP y NOMINA son las llaves candidatas

Seleccionar una llave candidata para ser la llave primaria para la tabla. Otros candidatos se convierten en llaves alternas o llaves nicas. EJEMPLO Llave Primaria NO_EMP APELLIDO NOMBRE NO_DEPTO Llave Alterna NOMINA

100 210 210 405 375

SANCHEZ ARIAS BRIONES GOMEZ JONHSON

DAVID ADRIANA JAIME JOSE LUCIA

10 15 10 12 06

9710 8730 1157 3394 4477

NOTAS Todas las llaves alternas deben de ser nicas y NO NULAS. Los UID secundarios concuerdan con las alternas. Los nombres de personas normalmente no son llaves alternas por que no se pueden garantizar que sean nicas. Por ejemplo, en la tabla EMPLEADO la combinacin NOMBRE/APELLIDO probablemente no podra ser llave alterna.

LLAVES FORANEAS Una llave fornea (FK) es una columna o combinacin de columnas en la tabla, que se refiera a una llave primaria en la misma o en otra tabla. EJEMPLO NO_DEPTO es FK en la tabla EMPLEADO y se refiere a los valores en la columna NO_DEPTO de la tabla DEPARTAMENTO.

Llave Primaria NO_EMP APELLIDO NOMBRE

Llave Fornea NO_DEPTO NOMINA

100 210 210 405 375

SANCHEZ ARIAS BRIONES GOMEZ JONHSON

DAVID ADRIANA JAIME JOSE LUCIA

10 15 10 12 25

9710 8730 1157 3394 4477

Llave primaria NO_DEPTO 10 15 12 25

NOMBRE_DEPTO FINANZAS OPERACIONES MANUFACTURA VENTAS

NOTAS Las llaves forneas son utilizadas para hacer JOIN entre tablas. Las llaves forneas se basa en los valores de los datos y son puramente lgicas. La llave fornea puede ser repetida u nula.

Una llave fornea debe coincidir con una valor de una llave primaria existente. EJEMPLO La FK NO_DEPTO en la tabla EMPLEADO se refiere a los valores de la PK de NO_DEPTO en la tabla DEPARTAMENTO.

Llave Primaria Llave Foranea NO_EMP APELLIDO NO_DEPTO 100 SANCHEZ FINANZAS 310 ARIAS OPERACIONES 210 BRIONES MANUFACTURA 405 GOMEZ VENTAS TABLA EMPLEADO

Llave primaria NO_DEPTO NOMBRE_DEPTO 10 FINANZAS 15 OPERACIONES 12 MANUFACTURA 25 VENTAS TABLA DEPARTAMENTO

Si una llave fornea es parte de una primaria, la FK no puede ser NULA. EJEMPLO En la tabla CUENTA, la FK NO_BANCO debe ser NO NULA porque es parte de la PK.

Llave Primaria NO_BANCO 104 150 103 105 TABLA BANCO

NOMBRE_BANCO CARNET COMERMEX BANCOMER BANAMEX

Llave Fornea Llave Primaria NO_BANCO NO_CUENTA 103 75760 104 77956 150 89570 103 33347 105 76954 TABLA CUENTA

BALANCE 12.000.60 100.10 65.776.00 15.001.85 5.00

INTEGRIDAD DE DATOS
La integridad de datos se refiere a la exactitud y consistencia de los datos. Constraints de integridad de datos Los constraints de integridad de datos define el estado relacional correcto de la base de datos. Los constraints de integridad de datos aseguran que los usuarios realizan nicamente operaciones en la cuales dejaran a la base de datos en un estado correcto y consistente. TIPO DE CONSTRAINT Integridad de entidades Integridad referencial Integridad de columnas EXPLICACION Ninguna parte de la llave primaria puede ser nula. Una llave fornea debe coincidir con una valor de una llave primaria. Una columna solo debe contener valores consistentes con el formato de datos definidos para la columna. Los datos almacenados en la base de datos deben cumplir con las reglas del negocio

Integridad definida por el usuario

Todos los contraints de integridad de datos deben ser forzados por el DBMS o el software de aplicacin. NOTAS un dato es inconsistente si existen mltiples copias d un registro y no todas las copias han sido actualizadas. Una base de datos inconsistentes puede proveer informacin incorrecta o contradictoria a los usuarios.

Las reglas del negocio tambin pueden determinar el estado correcto de una base de datos. Estas reglas de negocios son llamados constraints de integridad de datos definidas por el usuario. EJEMPLO Un negocio tiene las siguientes lista de contraints de integridad de datos definida por el usuario. A un empleado de confianza no se le paga por las primeras 5 horas de trabajo de tiempo extra. Ningn empleado del departamento de finanzas puede llevar el titulo de programador. La comisin de los vendedores no puede exceder de los 50% de su usuario. NOTAS los constraints de los datos definidos por el usuario pueden ser administrados por polticos ser requeridos por las leyes gubernamentales. Frecuentemente esas reglas son completamente arbitrarias al menos que parecen ser arbitrarias. Los constraints de integridad de datos definidos por el usuario pueden incluir mltiples columnas y tablas.

DISEO INICIAL DE LA BASE DE DATOS

OBJETIVOS DE LA SECCION
Al final de esta seccin el alumno ser capaz de: 1. Explicar como el diseo de una base de datos esta dentro del proceso de desarrollo de la base de datos. 2. Trasladar un modelo entidad-relacin a un diseo de base de datos relacional.

3. Documentar el diseo de la base de datos usando un mapa de instancias.

DISEO DE BASE DE DATOS El diseo de la base de datos es ejecutado durante la etapa de diseo del ciclo de desarrollo del sistema y es ejecutado conjuntamente con el de aplicaciones.

Requerimientos de informacin

ESTRATEGIAS ANALISIS

MODELO CONCEPTUAL DE DATOS

- MODELO DE DATOS ENTIDAD-RELACION - DEFINICIONES DE ENTIDADES

DISEO

DISEO DE BASE DE DATOS - DEFINICIONES DE TABLAS, INDICES, VISTAS, CLUSTERS Y DE ESPACIO.

CONSTRUCCIN DE LA BASE DE DATOS CONSTRUCCION

BASE DE DATOS OPERACIONAL

El diseo de base de datos se lleva a cabo por medio de dos actividades. Actividades de diseo de base de datos. 1. pasar el modelo E-R a tablas relacionales para producir el diseo inicial. 2. refinar el diseo inicial para producir un diseo completo de la base de datos. Liberacin del diseo de la base de datos La etapa de diseote la base de datos produce especificaciones de diseo para una base de datos relacional incluyendo definiciones para tablas relacionales, ndices, vistas, y espacio de almacenamiento.

INTRODUCCIN AL DISEO INICIAL A LA BASE DE DATOS Documentar cada tabla relacional en un mapa de instancias. Mapa de instancias. Nombre de la tabla: EMPLEADO
Columna Tipo llave Nulos nico Ejemplo EMPNO PK NN.U 7369 7902 7521 7698 7839 NN MARTHA MIGUEL FIDEL PEDRO JORGE NN SANCHEZ CANTO SANCHEZ INFANTE NEGRETE ARCHIVISTA ANALISTA VENDEDOR GERENTE PRESIDENTE NN 17.DIC.80 03.DIC.81 22.FEB.81 01.MAY.81 12.NOV.81 800 1000 1250 2850 5000 6000 10000 5000 7902 7566 7698 7839 NOMBRE APELLIDO PUESTO FECHA_PAGO SAL COMM MGR FK1 NODEPT FK2 NN 20 50 30 30 10

NOTAS los tipos validos de llaves son PK para una columna llave primaria, y FK para una columna llave fornea. Usar sufijos para distinguir entre mltiples columnas FK en una tabla, por ejemplo, FK1 y FK2. etiquetar mltiples columnas con el mismo sufijo. Usar NN para una columna que debe ser definida como NO NULA. Usar U para la columna que debe ser nica. Si mltiples columnas deben ser nicas en combinacin, etiquetadas con un sufijo, por ejemplo UI. Etiquetar una columna sencilla PK como NN,U. Etiquetar mltiples columnas PK (compuestas) como NN,UI o como NN,UI,U.

Ya es familiar el modelo E-R de la compaa de entretenimiento, y sera usado para ilustrar las actividades del diseo inicial de la base de datos. Modelo E-R de la compaa de entretenimiento.

MATRICULA

Para

CURSO # Cdigo Nombre Cuota Duracin

# fecha de inicio fecha de terminacin grado

Tomado por

Para
Registrado en

Enseado por

INSTRUCTOR ESTUDIANTE # Id Nombre Apellido Numero telefono # ID Nombre Apellido Numero telefono

Seguir una serie de pasos para dibujar un modelo E-R para una serie de tablas y producir un diseo inicial de base de datos. Pasos en el diseo inicial en la base e datos 1. Mapear las entidades para las tablas. 2. Mapear atributos para columnas y documentar datos simples. 3. Mapear identificadores nicos a llaves primarias. 4. Mapear relaciones a llaves forneas. 5. Elegir opciones de arco. 6. Elegir opciones de subtipo.

PASO 1 MAPEAR LAS ENTIDADES Mapear la tabla para cada entidad. Crear unmapa de instancias para la nueva tabla. Registrar nicamente el nombre de la tabla. Ejemplo Crear un mapa de instancias para la entidad INTRUCTOR el nombre de la tablas ser Instructor.

NOMBRE DE LA TABLA INSTRUCTOR


COLUMNA TIPO DE LLAVE NULOS UNICO EJEMPLO

NOTAS El nombre de la tabla debe ser fcil de identificar con el nombre de la entidad. El nombre en plural de una entidad se usa algunas veces por que la tabla debe contener un grupo de renglones. Una entidad simple no es un subtipo o supertipo. En el paso 6 el diseador debe decidir como se hace una construccin supertipo o un subtipo.

PASO 2 MAPEAR ATRIBUTOS A COLUMNAS Mapear cada atributo de la entidad a una columna en su tabla correspondiente. Establecer los atributos obligatorios para columnas NO NULAS (NN). Ejemplo Asignar los atributos de la entidad INSTRUCTOR a columnas en la tabla INSTRUCTOR. Marcar como atributos obligatorios (NO NULOS) las columnas inst_id, nombre y apellido.

Nombre de la tabla INSTRUCTOR


COLUMNA TIPO DE LLAVE NULOS UNICO EJEMPLO INST_ID NOMBRE APELLIDO NOTELEF

NN

NN

NN

Para cada atributo seleccionar un nombre corto pero significativo. NOTAS El nombre de las columnas debe ser fcil de identificar en un modelo E-R. Prevenir al usuario de no usar las palabras reservadas de SQL para nombres de columnas. Por ejemplo NUMBER. Usar abreviaciones consistentes que no causen confusin al usuario y al programador. Por ejemplo, podra ser abreviado NMERO como NO o NUM y DEPTNO o DEPTNUM? los nombres de columnas cortos o pequeos reducirn el tiempo requerido para el comando de SQL parsing .

Documentar renglones de ejemplo de datos en cada mapa de instancias. Ejemplo Documentar datos del ejemplo para las columnas de la tabla INSTRUCTOR

Columna Tipo de llave Nulos / nicos Ejemplo

INST_ID

NOMBRE

APELLIDO

NOTELEF

NN 10 18 73 95 301

NN NANCY MARIA PETE KATHY ERIC

NN HALL GONZALEZ CASSIDY ANDRONICA CAMPLIN 798-2251 756-1891 301-2291 483-9221 535-3166

Fuentes para datos del ejemplo notas de entrevistas a usuarios. Mapa de instancias. Sistemas actuales de computadoras. Otros documentos de analisis. Conversaciones adicionales con el usuario.

PASO 3 MAPEAR UIDS A LLAVES PRIMARIAS Asignar cualquier atributo (s) que sea parte del UID de la entidad a columnas PK etiquetar las columnas PK. EJEMPLO El atributo ID es el UID de la entidad INSTRUCTOR, entonces hacer que la columna correspondiente INST_ID sea el PK de la tabla INSTRUCTOR.

Nombre de tabla instructor


Columna Tipo de llave Nulos / nicos Ejemplo NN 10 18 73 95 301 NN NANCY MARIA PETE KATHY ERIC NN HALL GONZALEZ CASSIDY ANDRONICA CAMPLIN 798-2251 756-1891 301-2291 483-9221 535-3166 INST_ID NOMBRE APELLIDO NOTELEF

Un tipo de llave PK indica una columna de llave primaria. NOTAS Todas las columnas etiquetadas con PK deben etiquetarse tambin con NN y U. Asignar un UID que incluya mltiples atributos a una PK compuesta. Etiquetar estas columnas NN y UI.

Si una entidad incluye una relacin, agregar columnas de llaves forneas para la tabla y sealarlas como parte de la llave primaria. Ejemplo El UID de la entidad MATRICULA esta compuesta de una relacin para CURSO y de una relacin para ESTUDIANTE agregar 2 columnas FK a la tabla Matricula, para el PK de la tabla CURSO y para el PK de la tabla ESTUDIANTE.

MATRICULA # Fecha de inicio Fecha terminacin grado

Para

Curso # cdigo Nombre Cuota duracin

Tomado por

Para

Registrado por

Nombre de la tabla MATRICULA Columna TIPO DE LLAVE NULOS / UNICOS EJEMPLOS FECHA_REG FECHA_TER GRADO CODIGO CURSO PK.FK1 NN.UI 29.JUL.91 ---------28.JUN.91 28.JUN91 21.MAY.91 --------------A B A 344 401 717 717 401 ESTUDIO PK.FK2 NN.UI 47593 15402 94572 94572 51304

NN 20.JUL.91 05.SEP.95 14.JUN.91 08.MAY.91 05.MAY.91

NOTAS Escoger un nombre nico para cada columna FK y etiquetar la (S) columna (S) PK Si existe mltiples columnas FK en una tabla, usar sufijos para distinguirlos, por FK1 y FK2. etiquetar mltiples columnas llave con el mismo sufijo. Las PK compuesta deben de ser nicas en combinacin y deben de ser etiquetas. Agregar ejemplos de datos para las columnas FK.

Si una relacin de 1:1 es opcional en ambas direcciones mover la FK en la tabla cualquiera de la dos tablas de la relacin Ejemplo Para la relacin opcional 1:1 entre MUELLE y BARCO la columna FK puede colocarse en la tabla MUELLE o BARCO. La columna M_NUM es agregada a la tabla barco y etiqueta como nica para forzar la relacin 1:1.
MUELLE
OCUPADO POR

BARCO # numero de registro ciudad de registro

# numero longitud Desembarcado en Nombre de la tabla MUELLE COLUMNA TIPO DE LLAVE NULOS / UNICOS EJEMPLO # id nombre apellido M_NUMtelefono PK NN,U 344 075 554 341 570

LON

NN 100 1000 500 80 600

Nombre de la tabla BARCO COLUMNA NUM_REG TIPO DE PK LLAVE NULO / UNICO EJEMPLO NN,UI 134X89 004455678 1114088 Y1.0998-1 A02345 CIU_REG PK NOMBRE TIPO M_NUM FK

NN,UI PANAMA NORWAY UNITED STATES UNITED STATES PANANA

NN SUN KING PRINCESS EXXON POSSIDON RUN RUNNER AVION CRUISE TANKER

U2 554 570 075 344 341

YACHR YACHR

LLAVE PRIMARIA COMPUESTA

NOTA La FK para la relacin 1:1 debe ser siempre nica. Pero permite nulos.

Para una relacin recursiva 1:M, agregar una columna FK a la tabla. Esta columna FK debe referenciar valores de la columna PK.

EJEMPLO Para esta relacin recursiva 1:M, agregar una columna FK a la tabla de EMPLEADO para cada empleado que sea gerente. Nombrar la columna como MGR_ID para reflejar la relacin.

GERENTE DE
EMPLEADO # * id * nombre * apellido
BAJO LAS ORDENES DE

Nombre de la tabla: EMPLEADO: Columna Tipo de llave EMP_ID PK NOMBRE APELLIDO MGR_ID FK

Nulos/ nicos

NN.U

NN

NN

7450 5579 Ejemplos 6714 9451 3040

MARY LESLIE JANET BILL JUAN

SMITH STERNE GETRY ABLE GOMEZ 7450 5579 7450 9451

NOTAS La columna FK hace referencia a un rengln e la misma tabla. El nombre de la columna FK debe reflejar la relacin. Una FK recursiva nunca debe ser NO NULA.

Para una relacin recursiva 1:1, agregar una FK nica a la tabla. Esta columna FK debe referenciar un valor de la columna PK. EJEMPLO Para esta relacin recursiva 1:1, agregar una columna nica a la tabla PERSONA.

ESPOSO DE
PERSONA # * id * nombre * apellido
CASADO

Columna Tipo de llave

PERS_ID PK

NOMBRE

APELLIDO

ID_ESP FK U2

Nulos/ nicos

NN.U

NN

NN

7450 5579 Ejemplos 6714 9451 3040

MARY SUSAN JANET BILL JERRY

SMITH JONES GENTRY JONES JOHNSON

-----9451 3040 5579 6714

NOTAS La combinacin de columnas PK y FK siempre debe ser nica para asegurar la relacin 1:1. Poniendo el PK y el FK como nicos (U) se garantiza que la combinacin ser nica.

Una FK recursiva nunca debe ser NO NULA.

PRACTICA 6 1 Crear un diseo inicial de la base de datos. 1. Seguir los primeros cuatros pasos del Diseo Inicial de la Base de datos para mapear el siguiente modelo E-R a un conjunto de tablas diseadas inicialmente. Documentar los diseos de las tablas en los mapas de instancias. Crear los datos de ejemplo como se requieran.

EMPLEADO # numero clave nombre apellido empleo fecha de pago salrio comisin DEPARTAMENTO

Asignado a Responsabilidad de

# nmero nombre localizacin

Bajo las ordenes de Gerente de

REPASO MAPEAR MODELOS E-R SIMPLES PARA TABLAS Dibujar un modelo Entidad Relacin simple para un diseo inicial de la base de datos usando los siguientes cuatro pasos:

PASOS

1. Mapear las entidades para las tablas.

2. Mapear atributos para columnas y documentar datos simples.

3. Mapear identificadores nicos a llaves primarias.

4. Mapear relaciones a llaves forneas.

Documentar cada tabla de diseo en una tabla de Instancias.

PRACTICA 6 2 Crear un diseo inicial de la base de datos 1. Seguir los primeros cuatro pasos del Diseo inicial de la base de datos para mapear el siguiente modelo E-R a un conjunto de tablas diseadas inicialmente. Documentar el diseo de tablas en los mapas de instancias. Crear los datos de ejemplos como se requieran.

LINEA # nmero cantidad precio

PRODUCTO

para
#

requerido por medio de

nmero nombre unidad de medida

ContenidoORDEN en
#

nmero fecha de pedido

Contenedora de

Nombre de la tabla Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la tabla Columna Tipo de llave Nulos/ nico

Ejemplo

2. Utilizar el diseo de subtipo de tablas separadas y desarrollar un diseo de tabla para este Modelo Entidad-Relacin. Documentar el diseo en los mapas de instancias.

LINEA DE ORDEN
#

Nmero de item Descripcin


Por #

LINEA DE ORDEN DE PRODUCTO


Cantidad Precio actual

PRODUCTO
cdigo precio estndar

Mostrado en
ORDEN
#

LINEA DE ORDEN DE SERVICIO


Cuota

nmero

Parte de

Nombre de la Tabla: PRODUCTO

Nombre de la Tabla: ORDEN

Columna

CODPROD

PRECIOPROD

Columna

NUMORDEN

TIPO DE LLAVE Nulos/ nicos N.N.U N.N PK

TIPO DE LLAVE Nulos/ nicos N.N.U PK

Nombre de la Tabla: LNEA_ORDEN_PRODUCTO

Columna Tipos de llave Nulos/ nicos

Nombre de la Tabla: LNEA_ORDEN_SERVICIO

Columna Tipos de llave Nulos/ nicos

PRACTICA 6-3

Crear un diseo inicial de la base de datos 1. Seguir los primeros cuatro pasos del Diseo inicial de la base de datos para mapear el siguiente modelo E-R a un conjunto de tablas diseadas inicialmente. Documentar el diseo de tablas en los mapas de instancias. Crear los datos de ejemplos como se requieran.

DEPARTAMENTO
#

Alquilado por El arrendatario de

INQUILINO # id nombre

nmero

Ubicado en Contenedor de
PISO
#

nmero

Ubicado en Contenedor de
EDIFICIO # id nombre direccin

Nombre de la Tabla Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la tabla Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la tabla Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la Tabla Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la tabla Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la tabla Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la Tabla Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la tabla Columna Tipo de llave Nulos/ nico

Ejemplo

PRACTICA 6-4

Prctica Opcional Crear un diseo inicial de la base de datos.

1. Seguir los primeros cuatro pasos del Diseo inicial de la base de datos para mapear el siguiente modelo E-R a un conjunto de tablas diseadas inicialmente. Documentar el diseo de tablas en los mapas de instancias. Usar las notas de la entrevista de la siguiente pgina para seleccionar datos de ejemplos como se requieran.

LOCALIDAD DE VENTA
#

EMPLEADO

Representado por responsable

cdigo nombre

id nombre apellido cuota posicin

compuesta de

Dentro de Nombre de la Tabla Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la tabla Columna Tipo de llave Nulos/ nico

Ejemplo

2. Use las siguientes notas de entrevista para seleccionar datos de ejemplo para llenar los mapas de instancias. Nuestra compaa vende productos a travs de los Estados Unidos. As que dividimos a los Estados Unidos en cuatro regiones de ventas : la Regin Norte, la Regin Este, la Regin Sur y la Regin Oeste. Cada regin tiene un cdigo nico. Cada regin de venta se divide en distritos de ventas. Por ejemplo, la regin del Oeste es dividida en los distritos de Rocky Mountain, Noreste, Costa del Pacfico, y distritos del Pacfico. Cada distrito tiene un cdigo nico.

Cada distrito se conforma de territorios de ventas. El distrito de Rocky Mountain lo constituyen tres territorios: Wayoimi- Montana, Colorado y UTA-New Mxico. El distrito del noreste est formado por dos territorios: California y Nevada. El distrito del Pacfico incluye los territorios de Hawai y de Alaska. Cada territorio tiene un cdigo nico de territorio.

A su vez, cada territorio de ventas se descompone en rea de ventas. Por ejemplo Colorado est conformado de dos reas de ventas: rea formal y la vertiente Oeste. Cada rea de venta tiene un cdigo nico de ventas.

Cada vendedor es responsable de una o ms reas de ventas y tiene una cuota de venta especfica. Tambin tenemos gerentes de ventas que son responsables de uno o ms distritos de ventas, y los directores de ventas quienes son responsables de una o ms regiones de ventas. Cada gerente de ventas es responsable de los territorios dentro de sus distritos. Nosotros no traslapamos las responsabilidades de nuestros empleados. Un rea de venta es siempre la

responsabilidad de un solo vendedor directores tampoco se sobreponen.

y las responsabilidades de nuestros gerentes y

Algunas veces nuestros gerentes, vendedores y directores estn de viaje o tienen asignaciones especiales; por lo tanto, no tienen responsabilidades de ventas. Identificamos a todo nuestro personal de ventas por su identificador de empleado.

MAPA DE TABLAS DE MODELOS COMPLEJOS E- R Realizar los siguientes pasos adicionales para convertir un modelo complejo EntidadRelacin en un diseo inicial de base de datos.

Pasos

5. Escoger Opciones de Arco.

6. Escoger Opciones de Subtipo

PASO 5 ESCOGER OPCIONES DE ARCO

Los Arcos representan un tipo de llave fornea de alternativa mltiple. Escoger entre dos alternativas de diseo para mapear arcos a llaves forneas.

Alternativas de Diseo

Diseo de Arco Explcito

Diseo de Arco Genrico

EJEMPLO

Este modelo E-R mapear cuatro tablas. La entidad OFICINA tiene un arco que atraviesa los finales de tres relaciones. Las correspondientes columnas de FK deben ser agregadas a la tabla OFICINA . Usar un diseo de Arco Explicito o un diseo de Arco Genrico para agregar estas alternativas mltiples de llaves forneas

OFICINA Id del edificio Nmero de oficina

Rentado por arredantario de

INDIVIDUAL # id SOCIEDAD # cdigo COMPAIA # nmero

# #

rentado por arredentario de

rentado por arrendatario de

NOTAS Tambin se utiliza el diseo de Arco Explicito o el diseo de Arco Genrico para implementar mltiples llaves forneas cuando un arco atraviesa un conjunto de relaciones 1:1 Los Arcos solamente pueden atravesar el final de las relaciones que son o todas obligatorias o todas opcionales.

El Diseo de Arco Explcito crea una columna de llave fornea para cada relacin que incluye el arco. EJEMPLO El siguiente Modelo E-R contiene cuatro entidades simples, y sern mapeadas para cuatro tablas por separado. El arco atraviesa el final de las tres relaciones. Por lo tanto, las FKs deben de ser agregadas a la tabla OFICINA. Se utiliza un diseo de Arco Explcito para crear una columna FK para cada relacin.
OFICINA Id del edificio Nmero de oficina

Rentado por Arrendatario de

INDIVIDUAL # id SOCIEDAD # cdigo COMPAIA # nmero

# #

Rentado por Arrendatario de

Rentado por Arrendatario de

Nombre de la tabla: OFICINA Columna tipo de llave Nulos/ nica 1024 512 Ejemplo 977 3041 2371 101 210 144 510 430 54532 10844 54101 30045 A4431 ID_EDIFICIO NUM_OFICINA PK NN.U1 PK NN.U1 ID_IND PK1 COD_SOCIAL PK2 NUM_CIA PK3

NOTAS El diseo de Arco Explcito soportar llaves forneas mltiples con diferentes formatos. Por ejemplo, NUM_OFICINA, ID_IND Y COD_SOCIAL, pueden tener diferente formato de columna. El software de aplicacin debe forzar a una relacin de exclusividad entre las llaves forneas.

El diseo se Arco Genrico crea una columna de llave fornea nica y una columna para marcar la relacin del arco. Como las relaciones son exclusivas, solamente un valor de FK existir para cada rengln en la tabla. EJEMPLO Otra vez, crear cuatro tablas por separado para este Modelo E-R(Uno para cada entidad). Como el arco atraviesa el final de las tres relaciones, las FKs se deben de agregar a la tabla OFICINA. Utilizar un Diseo de Arco Genrico y crear una columna de llave fornea simple y agregar un tipo de columna para indicar cual de las tres tablas est referenciada por la columna FK en cada rengln. Por ejemplo, I para INDIVIDUAL, S para SOCIEDAD, y C para COMPAA.
OFICINA Id del edificio Nmero de oficina

Rentado por Arrendatario de

INDIVIDUAL # id SOCIEDAD # cdigo COMPAIA # nmero

# #

Rentado por Arrendatario de

Rentado por Arrendatario de Nombre de la Tabla: OFICINA Columna tipo de llave Nulos/ nica ID-EDIFICIO PK NN.U1 1024 512 Ejemplo 977 3041 2371 NUM_OFICINA PK NN.U1 101 210 144 510 430

REN_DE FK NN 30045 A4431 54532 10844 54101

TIPO_RENTA

NN I S I C C

NOTAS S las relaciones debajo del arco son obligatorios, hacer ambas columnas NO NULAS(NOT NULL). Las llaves forneas deben de compartir el mismo formato para todas las tablas referenciadas. La relacin de exclusividad se forza automticamente.

PRCTICA 6-5 Dibujar una estructura de arco a las tablas. 1.Utilizar un Diseo de Arco Explcito y desarrollar un diseo de tabla para este Modelo Entidad-Relacin. Documentar el diseo en los mapas de instancias.

ESTUDIANTE

DE
#

MUNICIPIO # cdigo nombre

Id apellido Nombre

La casa de
#

De La casa de

ESTADO id nombre del estado

De La casa de

PAIS id nombre

Nombre de la Tabla: ESTUDIANTE

Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la Tabla: MUNICIPIO

Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la tabla: ESTADO

Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la tabla: PAS

Columna Tipo de llave Nulos/ nico

Ejemplo

2. Utilizar un Diseo de Arco Genrico y desarrollar un diseo de tabla para este Modelo Entidad-Relacin. Documentar el diseo en los mapas de instancias.

ESTUDIANTE
#

DE
#

MUNICIPIO cdigo nombre ESTADO id nombre del estado PAIS

Id apellido Nombre

La casa de
#

De La casa de

De La casa de

id nombre

Nombre de la Tabla: ESTUDIANTE Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la Tabla: MUNICIPIO Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la Tabla: ESTADO Columna Tipo de llave Nulos/ nico

Ejemplo

Nombre de la Tabla: PAS Columna Tipo de llave Nulos/ nico

Ejemplo

PASO 6 ESCOGER OPCIONES DE SUBTIPOS Escoger cualquiera de las tres opciones para el mapeo de subtipos con tablas. Opciones de Mapeo de Subtipos a Tablas. Diseo de una sola Tabla Diseo de Tablas Separadas Implementacin del Arco(Ver Apndice E.p. E.3)

EJEMPLO En el siguiente supertipo/subtipo, las entidades EMPLEADO, EMPLEADO ASALARIADO, EMPLEADO POR HONORARIOS pueden ser mapeadas en una, dos o tres tablas dependiendo de la opcin seleccionada.

EMPLEADO

nmero de clave nombre apellido EMPLEADO POR HONORARIOS

salario

EMPLEADO ASALARIADO

costo por hora costos por horas extras Miembro de

Asignado a
DEPARTAMENTO cdigo

compuesto de

SINDICATO # nmero

compuesto de

Repaso de Conceptos de Subtipos/ Supertipos Los subtipos heredan todos los atributos del supertipo y sus relaciones.

Los subtipos pueden tener atributos y relaciones propias.

Los subtipos deben de ser mutuamente excluyentes.

Opcin 1. Diseo de Subtipo en una sola Tabla.

Crear una sola tabla para el supertipo y mapear los subtipos dentro de esta tabla. La tabla sencilla contendr instancias de todos los subtipos.

A B C

TABLA A

Se usa el diseo de una sola tabla cuando el subtipo tiene pocas relaciones y atributos propios.

Pasos de Diseo

1. Crear una sola tabla para el supertipo

2. Crear una columna para cada uno de los atributos del supertipo

3. Crear una columna TIPO para identificar a que subtipo pertenece cada rengln

4. Crear una columna para cada uno de los atributos del subtipo.

5. Crear columnas FK para cada una de las relaciones del supertipo.

6. Crear columnas FK para cada una de las relaciones del subtipo.

EJEMPLO

Mapear el supertipo EMPLEADO y sus subtipos dentro se una sola tabla EMPLEADO

EMPLEADO

nmero de clave nombre apellido EMPLEADO POR HONORARIOS

salario

EMPLEADO ASALARIADO

costo por hora costos por horas extras Miembro de

Asignado a compuesto de
DEPARTAMENTO cdigo

compuesto de
SINDICATO # nmero

Nombre de la Tabla: EMPLEADO Columna NUM NOMBR APELLID TIPO_ _ E O EMPLE CVE A Tipo de PK llave Nulos/ NN.U NN NN NN nico 4579 JAIME JUREZ E 6631 KAREN DIDONAT E O 1190 MIGUEL ALVAREZ E 370 MARIA PENA E Ejemplo 800 PEDRO MEDINA E 7147 JOSE LUNA NE 6794 JULIA OSUNA NE 941 JAVIER BARBA NE 985 JOSE GOMEZ NE 969 CLAUDI LOPEZ NE A SAL COSTO_H HR_EXT NO_SIN COD_DEP R R D TO PK1 PK2 NN 29000 25000 42700 44050 38450 8.50 6.75 12.00 9.50 10.50 12.75 11.50 18.00 16.15 15.75 201 150 201 201 180 40 35 40 30 35 35 30 45 30 15

Las columnas de la tabla EMPLEADO son derivadas de los atributos y las relaciones del supertipo y todos sus subtipos.

Tipo de Entidad Supertipo

Columnas para Atributos NUM_CVE, NOMBRE, APELLIDO

Columnas FK para Relaciones COD_DEPTO

Subtipo

SAL, COSTO_HR, HR_EXT

NO_SIND

NOTAS

El diseo de subtipo de una sola tabla requiere una nueva columna tipo para identificar el subtipo al que pertenece cada rengln. La columna TIPO_EMPLEA fue agregada a la tabla EMPLEADO para este propsito.

Usar un Diseo de Subtipo en una sola Tabla cuando hay pocas relaciones atributos propios.

Ventajas

El acceso al supertipo es directo

El subtipo puede ser accesado y modificado usando vistas.

Desventajas

Los requerimientos del subtipo NO NULO no se pueden forzar a nivel de base de datos.

La lgica de las aplicaciones tendrn que manejar diferentes conjuntos de atributos dependiendo del TIPO.

Opcin 2. Diseo de subtipo en tablas Separadas

Mapear el subtipo en tablas separadas(Una para cada subtipo). Cada tabla contendr solamente instancias de un subtipo.

A B C

TABLA B

TABLA B

Pasos del Diseo

1. Crear una tabla para cada subtipo.

2. En cada tabla subtipo, crear columnas para los atributos del subtipo.

3. En cada tabla subtipo, crear columnas para los atributos del supertipo.

4. En cada tabla subtipo, crear columnas FK para las relaciones del subtipo.

5. En cada tabla subtipo, crear columnas FK para las relaciones del supertipo.

EJEMPLO

Hacer el supertipo EMPLEADO en dos tablas(Una para cada subtipo). Primero crear una tabla separada para el subtipo EMPLEADO ASALARIADO

EMPLEADO

nmero de clave nombre apellido EMPLEADO POR HONORARIOS

salario

EMPLEADO ASALARIADO

costo por hora costos por horas extras Miembro de

Asignado a compuesto de
DEPARTAMENTO cdigo

compuesto de
SINDICATO # nmero

Nombre de la Tabla: EMPLEADO ASALARIADO Columna NUM_ CVE Tipo de llave Nulos/ nico 4579 6631 Ejemplo 1190 370 800 JAIME KAREN MIGUEL MARIA PEDRO JUREZ DIDONATO ALVAREZ PENA MEDINA 29000 25000 42700 44050 38450 40 35 40 30 35 NN.U NN NN NN PK FK NOMBRE APELLIDO SAL COD_DEPTO

EJEMPLO Crear una tabla separada para el subtipo EMPLEADO POR HONORARIOS

EMPLEADO

nmero de clave nombre apellido EMPLEADO POR HONORARIOS

EMPLEADO ASALARIADO
salario

costo por hora costos por horas extras Miembro de

Asignado a compuesto de
DEPARTAMENTO cdigo
#

compuesto de
SINDICATO nmero

Nombre de la Tabla: EMPLEADO POR HONORARIOS. Column a Tipo de llave Nulos/ nico 4579 JAIME JURE Z 6631 KARE N 1190 Ejemplo 370 800 MIGUE L MARIA PEDRO DIDON ATO ALVA REZ PENA MEDIN A 7147 6794 JOSE JULIA LUNA OSUN A 941 JAVIE R 1020 JOSE BARB A GOME Z 3500 CLAU DIA LOPEZ 10.50 15.75 180 45 9.50 16.15 201 30 12.00 18.00 201 45 8.50 6.75 12.75 11.50 201 150 35 30 13.4 11.2 11.5 15.8 178 415 30 35 8.25 2.4 185 40 10.00 3.56 315 35 11.7 14.3 362 40 NN.U NN NN NN NUM_C VE PK NOMB RE APELL IDO COSTO_ HR HR_EX TR NO_SIN D PK1 COD_DEP TO PK2

Se usa un Diseo de Subtipo de Tablas Separadas cuando hay muchas relaciones y atributos de subtipos especficos.

Ventajas

La opcionalidad de los atributos del subtipo se forza a nivel de la base de datos.

La lgica de las aplicaciones no requiere de chequeo para los subtipos.

Desventajas

La consulta al supertipo requiere de un operador de UNIN.

Las vistas que enlazan dos tablas(mediante un join) son solamente de consulta.

El cdigo del programa de aplicacin debe de ser especfico para cada tabla individual.

El mantenimiento de los UIDs de los subtipos es difcil de implementar.

PRACTICA 6-6

Mapear subtipos a las tablas.

1. Utilizar el diseo de subtipo de una sola tabla y desarrollar un diseo de tabla para este modelo Entidad- Relacin. Documentar el diseo en los mapas de instancias.

LINEA DE ORDEN
#

Nmero de item Descripcin


Por #

LINEA DE ORDEN DE PRODUCTO


Cantidad Precio actual

PRODUCTO
cdigo precio estndar

Mostrado en
ORDEN
#

LINEA DE ORDEN DE SERVICIO


Cuota

nmero

Parte de Compuesto de

Nombre de la Tabla: PRODUCTO

Nombre de la Tabla: ORDEN

Columna

CODPROD

PRECIOPROD

Columna

NUMORDEN

TIPO DE LLAVE Nulos/ nicos N.N.U N.N PK

TIPO DE LLAVE Nulos/ nicos N.N.U PK

Nombre de la Tabla: LNEA_ORDEN

Columna Tipo de llave Nulos/ nico

You might also like