Documente Academic
Documente Profesional
Documente Cultură
CONCEPTUAL
AVANZADO
OBJETIVOS DE LA SECCION
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 intersección.
3. identificar y construir un modelo de datos avanzado incluyendo relaciones recursivas,
subtipos y relaciones exclusivas.
NORMALIZAR EL MODELO DE DATOS
Notas
VALIDACION
Validar que cada atributo tenga un valor único para cada ocurrencia de la identidad.
Ningún atributo deberá tener valores repetidos.
Ejemplo:
¿LA Entidad CLIENTE cumple con la 1FN? Si, no cumple ¿Cómo se podría convertir a
1FN?
CLIENTE
# identificador.
Fecha de Contacto
El atributo Fecha de Contacto tiene múltiples valores, por lo tanto la entidad CLIENTE no es
considerada como 1FN.
Crear una entidad adicional CONTACTO con una relación de M:1 hacia CLIENTE.
CONTACTO CLIENTE
# Fecha de Contacto # identificador.
Localización. Fecha de Contacto
Resultado
Si Un Atributo tiene múltiples valores, se crea una entidad adicional y lo relaciona con la
Regla de
entidad la Segunda
original Forma
mediante una Normal
relación M:1
Un atributo debe ser dependiente del identificador único completo.
VALIDACION
Validar que cada atributo dependa completmnete de UID. Cada instancia específica
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
# Código
Nombre.
Duración.
Cuota.
Cada instancia del código curso determina un valor especifico para el nombre, duración y
cuota. Los atributos están ubicados correctamente.
EJEMPLO:
CUENTA BANCO
# Numero # Numero.
Balance. Nombre.
Fecha de Apertura.
Localización de Banco
Si un atributo no es depende del UID completo, esta fuera del lugar y debería ser movido
PRACTICA 4-1
Normalizar un modelo E-R.
1. Para el siguiente Modelo E-R, evaluar cada entidad contra las reglas de
normalización, identificar si el atributo esta colocado en el lugar correcto; si no lo
esta, identificar que regla de normalización se esta violando.
Asignado A
BANCO
# Numero.
Nombre.
EJEMPLO:
Considerar la relación M:M entre PRODUCTO y VENDEDOR. ¿Cuál es el precio actual del
PRODUCTO específico para un VENDEDOR específico?
Para
ASIGNADA
PRODUCTO
# ID
Nombre
Descripción
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 intersección son siempre obligatorias.
Las entidades interseccion son muy comunes para representar situaciones de negocios
en l mundo real.
Las entidades intersección normalmente generan requerimientos para atributos
adicionales como el uso de entidades y fechas. Estas tienden a ser entidades volátiles
y de volumen alto.
Posicionar las entidades intersección de forma que permitan que “Los cuervos siempre
vuelen hacia el este o hacia el sur”
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 intersección esta frecuentemente compuesta de las relaciones
entre las entidades que dieron origen.
EJEMPLO:
ESTUDIANTE
# Id CURSO
Apellido # Codigo.
Nombre Nombre
Numero telefonico Cuota
Duracion.
Solución:
Agregar la entidad interseccion INSCRIPCIONES y las dos relaciones M:1.
INSCRIPCION
Fecha de registro
Fecha de terminación
Grado
PARA PARA
TOMADO POR
REGITRADO EN
ESTUDIANTE CURSO
# Id # Codigo.
Apellido Nombre
Nombre Cuota
Numero telefonico Duracion.
Notas:
Este modelo únicamente guarda la última fecha en que un estudiante se inscribió en
un curso especifico. Si se necesita guardar múltiples 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 relación M:M para acomodar estos requerimientos adicionales:
“Guardar la fecha en la que cada empleado es asignado a un proyecto, y la duración de la
asignación.”
Agregar una entidad intersección llamada TAREA ASIGNADA con los atributos fecha de
asignación y duración.
TAREA ASIGNADA
Fecha asignada
Duración
PARA PARA
SUJETO A
ASIGNADO
EMPLEADO PROYECTO
# Id # Numero.
Nombre Titulo
Ejemplo:
Para
ASIGNADA
PRODUCTO
# ID
Nombre
Descripción
Buscar atributos que identifiquen o ayuden a identificar una entidad intersección.
Ejemplo.
¿Cómo identificar cada PRODUCTO VENDEDOR? ¿Se puede usar la combinación del
código 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”.
Para
ASIGNADA
PRODUCTO
# ID
Nombre
Descripción
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 debería ser el UID del
PRODUCTO VENDEDOR.
Resolver las relaciones M:M al final de la fase de análisis. Esta resolución forzada
puede resultar en una Entidad Intersección sin atributos.
Ejemplo:
ELENCO
DE ESTRELLAS
PARA PARA
PELICULA ACTOR
# Id # Código
Ttulo Apellido real
Categoria 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 excepción a la regla de una entidad debe
tener atributos para ser una entidad.
Requerimientos adicionales.
“También nos gustaría llevar una breve descripción del interés de cada miembro en cada área
especifica de aplicación. 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 interés que el miembro anterior.”
INTERESADO EN
MIEMBRO AREA DE
# Identificador APLICAION
# Codigo
Nombre DE INTERES Nombre
Apellido. PARA
Titulo
Cuota recibida
Direccion.
Numero telefonico
Tipo de menbresia
PRACTICA 4-3
CLIENTE EL PRODUCTO
COMPRADOR
# ID DE # Numero
Nombre Nombre
Apellido. Existencia.
ORDENADO
POR
MODELO JERARQUICO DE DATOS
Ejemplo:
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 convención de los cuervos siempre
vuelan hacia el este o hacia el sur causa que las jerarquías sean dibujadas de abajo
hacia arriba.
Los UIS’s PATRA un conjunto de entidades jerárquicas pueden ser propagados a
través de relaciones múltiples.
Ejemplo:
CUARTO
# Id
LOCALIZADO
DENTRO DE
COMPUESTO DE
DEPARTAMENTO
# Numero
# Inquilino
PISO
# Numero
CONTENIDO DENTRO
COMPUESTO POR
EDIFICIO
# Id.
Nombre
Dirección
EJEMPLO:
En una estructura típica de organización. ¿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
NOTAS:
Los códigos artificiales de identificación deben ser únicos e independientes.
Si las estructuras jerárquicas cambian ocasionalmente, se recomienda usar
identificadores artificiales independientes.
EJEMPLO:
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 más EMPLEADOS.
NOTAS:
COMPONENTE
# IDENTIFICADOR
Nombre
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 número, 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 súper tipo EMPLEADO con dos subtipos. Cada EMPLEADO puede ser
EMPLEADO o ASALARIADO o EMPLEADO por HONORARIOS.
EMPLEADO
# Numero de clave
Nombre
Apellidos
EMPLEADO EMPLEADO
ASALARIADO POR HONORARIOS
ASIGNADO A COMPUIESTO DE
COMPUIESTO DE
EMPLEADO EMPLEADO
ASALARIADO ASALARIADO
NOTA
Se debe tener cuidado con las instancias que pueden estar en ambos subtipos, la
construcción del subtipo- supertipo es incorrecta en esas instancias.
Los subtipos pueden tener además subtipos. Normalmente dos o tres niveles de
profundidad son adecuados.
Ejemplo:
AERONAVE
AVION
AVION DE
PLANEADOR PROPULSION
JET
HELICOPTERO
HOVERCRAFT
OTRA AERONAVE
EJEMPLO:
Es el modelo entidad relación para las compañía 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é pasaría si el INSTRUCTOR también fuera ESTUDIANTE.?
INSCRIPCION
Fecha de inicio
Fecha de terminacion.
Grado.
PARA PARA
ENSEÑADO INSTRUCTOR
ESTUDIANTE CURSO POR # Id
# Id # Código Nombre
Apellido. Nombre Apellido
Nombre Duración Numero telefónico
Numero telefónico. Cuota. MAESTRO DE
Las entidades que representan roles pueden compartir instancias que se traslapan.
Ejemplo:
A todo EMPLEADO se le clasifica con nombre, apellido y número. Todos los EMPLEADOS
deben estar y solo un DEPARTAMENTO.
Ejemplo:
Notas:
Una subtipo que no tenga atributos o relaciones propias puede ser un sinónimo para la
entidad prototipo y no un subtipo.
EJEMPLO:
Una CUENTA BANCARIA debe pertenecer a una CONPAÑIA o ser PERSONAL. Usar
un arco para modelar esta relación.
PERSONAL
B
CUENTA BANCARIA
A
CONPAÑIA
“Cada entidad A tiene un relación 1 con la entidad B una relación 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 COMPAÑÍA.
Todas la estancias de una entidad súper 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
Ejemplo:
Un punto dentro de este arco de be usarse para indicar que una relación pertenece al arco.
CONPAÑIA
Toda relación cruzada por un arco le pertenece. Un rompimiento en el arco indica una
relación 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 compañía de camine RIGHT- WAY renta pequeños camiones de mudanza y trailer
para uso local y en un solo sentido. Tenemos 347 oficinas de renta a través de la región
oeste de los barios tipos de camiones y trailer. Necesitamos implementar un sistema
para registrar nuestros contratos de renta y las asignaciones a nuestra vehículos. Cada
una de las oficinas renta vehículos que tienen en su inventario, unidades listas para que
los cliente s tomen posesión de ella inmediatamente. No hacemos reservaciones, ni
especulamos con la fecha en que el cliente regresara el vehículo rentado. La oficina
central supervisa la distribución de los vehículos, y dirige las trasferencias de los
vehículos de una oficina a otra.
Cada oficina de renta tiene un nombre como “LitletonRight-Way”. Cada oficina
también tiene un número único de tres dígitos. Nosotros también registramos la
dirección de la oficina.
Cada vehículo tiene un identificado único, registro del estado y una placa con su
numero de registro. Tenemos 5 tipos de vehículos 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 código para el tipo de vehículo. Para todos
nuestros vehículos 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 Odómetro (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 vehículo tenga radio a notamos el viaje actual justo
antes de rentar un camión y otra ves cuando nos es regresado.
La mayoría de nuestros contratos de renta son para clientes individuales pero un
contrato de renta puede ser para un particular o para una compañía. Rentamos un
porcentaje pequeño de nuestros camiones a compañías. Asignamos un número de
identificador para cada compañía y registramos el nombre de la ksma y su dirección.
No , no necesitamos preocuparnos por información adicional sobre la empresa. Nuestro
grupo corporativo de ventas maneja toda la información de manera separada.
Para cada cliente particular registramos su nombre, teléfono de su casa, su dirección y
su licencia de conducir del estado: Número y Fecha de vencimiento. Nos gustaría llevar
el registro de nuestros clientes. Si un cliente daña nuestro vehículo, 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 vehículo. Si puede ser que un cliente
nos rente dos o más vehículos a la vez. Cada contrato de renta es identificado por el
número de la oficina que género el mismos un número de contrato de renta. También es
indispensable que conozcamos la fecha de renta, la duración anticuopada de la renta, la
oficina de renta en donde dejara la unidad, el monto del depósito 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 asignación a
nuestro proyecto.”
Crear una entidad adicional para mantener los valores de ,os valores en el tiempo
Ejemplo:
Una firma de consultaría necesita mantener información acerca de sus contratos. Cada
contrato tiene una clave única, y se necesita tener la descripción del contrato, el estatus
del contrato (por ejemplo abierto, cerrado o suspendido). Inicialmente fue modelada la
siguiente entidad CONTRATO.
CONTRATO
# Id.
Descripción.
Valor de estado.
Fecha de vigencia.
ESTADO DE
ESTATUS CONTRATO
# Id. # Id.
Fecha de Vigencia TIENE Descripcion
Notas:
Usar una sola entidad para guardar los valores en le tiempo de múltiples
atributos asociado con una entidad (como CONTRATO).
Nota:
Una sociedad de profesionistas quiere saber en que compañías, sus miembros han sido
empleado y la finalización de cada empleo (Por templo de una fecha a otra fecha). Hay una
relación M:M entre cada socio y entren cada compañía.
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.
PARA PARA
TRABAJADOR DE
TRABAJA PARA
SOCIO COMPAÑÍA
# Id # Codigo.
Apellido Nombre
Nombre
Agregar una nueva entidad para acomodar la relación que puede variar en el tiempo.
EJEMPLO
El dueño 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 múltiples personas). El siguiente modelo E – R solo mantendrá
el inquilino actual de departamento.
Agregar la cantidad REGISTRO HISTORICO DE CUENTA para capturar los valores de las
relaciones de renta en el tiempo.
Para
Rentado por
Departamento
# Código
Dirección
Ejemplo
Desarrollar un modelo E-R para la historia de empleados. Para cada persona, guardar su
puesto en la compañía en la que trabajo, las fechas de sus puestos obtenidos. Una persona
puede tener un puesto específico en la misma compañía múltiples veces durante su carrera.
Inicialmente el siguiente modelo E-R fue definido
EMPLEADA
POR INCLUIDO EN
PATRON DE
PATRON DE
DEPARTAMENTO
# Codigo
Direccion
Las fechas del puesto parecen ser un atributo de una relación. Resolver cada relación
M-M
OCUPANTE DE
PERSONA PUESTO
# ID # TITULO DE
APELLIDO HISTORIA TRABAJO O
NOMBRE DEL PUESTO DESCRIPCION DE
OCUPADO POR TRABAJO
SUJETO A
TRABAJADO EN
HISTORIA HISTORIA DE LA
DE LA ORGANIZACION
COMPAÑIA TRABAJADO
POR
TRABAJADO POR
COMPAÑIA
# Codigo
Direccion
¿Que entidad intersección forman los atributos de fecha de puesto?, ¿todas ellas?,
¿ninguna de ellas?.
PRACTICA 4-6
Modelar datos a través 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 histórico de nuestras rentas. Cada vez que un cliente
renta un video, nos gustaría guardar la fecha de renta y el día en que regresará el video.
Todos nuestros videos se deben de regresar el siguiente día, así que no llevamos una cuota
por día 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 también 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 PROTAGONISTA
POR EN
ACTOR
LA COPIA CODIGO
CINTA PELICULA
NOMBRE ARTISTICO
# NUMERO # identificador NOMBRE REAL
FORMATO TITULO APELLIDO REAL
CATEGORIA FECHA DE NACIMIENTO
RENTADA
POR
EL
ARRENDATARIO
DE
CLIENTE
# NUMERO DE
SOCIO
APELLIDO
NOMBRE
NUMERO TELEFONO
DIRECCION
PRACTICA 4-7
Hacer un modelo de relación compleja.
El modelo de E-R del grupo de usuarios de Oracle de la práctica 3-10 una relación M:M
Fue inicialmente modelada entre la entidad MIEMBRO y la entidad PLATAFORMA DE
COMPUTADORA. Revisar que esa relación satisfaga los siguientes requerimientos.
Requerimientos
“No solo necesitamos conocer que plataforma de computadora utiliza cada usuario. Además
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 versión especifica de cada producto, solo el nombre
general del mismo”.
INTERESADO EN
PLATAFORMA DE
MIEMBRO
# ID COMPUTADORA
NOMBRE # Id
DESCRIPCION
DE INTERES PARA
APELLIDO
TITULO
PAGARES
RECIBIDOS
DIRECCION
NUMERO
TELEFONO
TIPO DE
MEMBRESIA
PRACTICA 4-8
Practica opcional
Desarrollar un complejo E-R
Cada año sacamos un folleto información sobre cada crucero que ofrecemos. Cada
crucero tiene un nombre y una duración en días. Tenemos cruceros de tres, siete, once,
catorce días. Cada crucero también tiene un barco asignado específicamente a el alguna
gente solo le gusta viajar en barcos mas nuevos. Vamos a necesitar saber la antigüedad de
cada barco. Cada crucero se detiene en diferentes puertos. Un crucero de tres días solo
tendrá una parada siempre en el segundo del crucero, un crucero de siete días 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 México, como son cabo san Lucas y Mazatlán, los
cruceros de Miami van a las Bahamas y las islas vírgenes, y el crucero de Anchorage hace
paradas a lo largo de toda Alaska. Dependiendo de la duración de cada crucero, cada
barco hará llamadas a puertos en días diferentes mientras este afuera.
Los pasajeros que viajan con nosotros escogerán un crucero determinado, que tendrá
determinada duración 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 número de personas en cada cabina y la “clase” de la
cabina. Siempre que boleteamos una cabina bajo el sistema manual, borramos la cabina
del pizarrón 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 después le pagamos su comisión a la gerencia
de viajes que haya hecho la reservación.”
CONCEPTO
DE BASE
DE DATOS
RELACIONAL
OBJETIVO DE LA SECCION
Una base de datos relacional es una base de datos que es percibida por el usuario como
una colección de relaciones o de tablas de dos dimensiones.
EJEMPLO
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 introducción SQL.
NOTAS
Una llave primaria (PK) es una columna o grupo de columnas que identifican de manera
única a cada renglón 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 renglón
en la tabla es identificado de manera única por su valor en NO_EMP.
Llave primaria
TABLA EMPLEADOS
NOTAS
EJEMPLO
Llave Primaria
TABLA CUENTA
NOTA
Las columnas de una llave primaria compuesta deben de ser únicas en combinación de
columnas pueden tener duplicados en forma individual, pero en combinación 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
Tabla Empleados
EJEMPLO
¿ como es que la tabla CUENTA viola las reglas de las llaves primarias?
Llave Primaria
NO_BANCO NO_CUENTA BALANCE FECHA_APERTURA
Tabla Cuenta
EJEMPLO
TABLA EMPLEADO
Seleccionar una llave candidata para ser la llave primaria para la tabla. Otros candidatos se
convierten en llaves alternas o llaves únicas.
EJEMPLO
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 combinación
NOMBRE/APELLIDO probablemente no podría ser llave alterna.
LLAVES FORANEAS
Una llave foránea (FK) es una columna o combinación de columnas en la tabla, que se
refiera a una llave primaria en la misma o en otra tabla.
EJEMPLO
Llave primaria
NO_DEPTO NOMBRE_DEPTO
10 FINANZAS
15 OPERACIONES
12 MANUFACTURA
25 VENTAS
NOTAS
Las llaves foráneas son utilizadas para hacer “JOIN” entre tablas.
Las llaves foráneas se basa en los valores de los datos y son puramente lógicas.
La llave foránea puede ser repetida u nula.
Una llave foránea debe coincidir con una valor de una llave primaria existente.
EJEMPLO
Llave primaria
NO_DEPTO NOMBRE_DEPTO
10 FINANZAS
15 OPERACIONES
12 MANUFACTURA
25 VENTAS
TABLA DEPARTAMENTO
Si una llave foránea es parte de una primaria, la FK no puede ser NULA.
EJEMPLO
Llave Primaria
NO_BANCO NOMBRE_BANCO
104 CARNET
150 COMERMEX
103 BANCOMER
105 BANAMEX
TABLA BANCO
Todos los contraints de integridad de datos deben ser forzados por el DBMS o el software de
aplicación.
NOTAS
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.
Ningún empleado del departamento de finanzas puede llevar el titulo de
“programador”.
La comisión 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
políticos 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
múltiples columnas y tablas.
DISEÑO
INICIAL DE LA
BASE DE DATOS
OBJETIVOS DE LA SECCION
Al final de esta sección el alumno será capaz de:
1. Explicar como el diseño de una base de datos esta dentro del proceso de desarrollo de
la base de datos.
Requerimientos de información
DISEÑO DE
DISEÑO BASE DE
DATOS
- DEFINICIONES DE TABLAS,
CONSTRUCCIÓN INDICES, VISTAS, CLUSTERS Y DE
DE LA BASE ESPACIO.
DE DATOS
CONSTRUCCION
La etapa de diseñote la base de datos produce especificaciones de diseño para una base de
datos relacional incluyendo definiciones para tablas relacionales, índices, vistas, y espacio de
almacenamiento.
INTRODUCCIÓN AL DISEÑO INICIAL A LA BASE DE DATOS
Mapa de instancias.
Columna EMPNO NOMBRE APELLIDO PUESTO FECHA_PAGO SAL COMM MGR NODEPT
NOTAS
los tipos validos de llaves son PK para una columna llave primaria, y FK para una
columna llave foránea.
Usar sufijos para distinguir entre múltiples columnas FK en una tabla, por ejemplo,
FK1 y FK2. etiquetar múltiples 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 múltiples columnas deben ser únicas en combinación, etiquetadas con un sufijo,
por ejemplo UI.
Etiquetar una columna sencilla PK como NN,U.
Etiquetar múltiples columnas PK (compuestas) como NN,UI o como NN,UI,U.
Ya es familiar el modelo E-R de la compañía de entretenimiento, y sera usado para
ilustrar las actividades del diseño inicial de la base de datos.
Enseñado
Para por
Registrado en
INSTRUCTOR
# ID
ESTUDIANTE Nombre
# Id Apellido
Nombre Numero telefono
Apellido
Numero telefono
Seguir una serie de pasos para dibujar un modelo E-R para una serie de tablas y
producir un diseño inicial de base de datos.
Mapear la tabla para cada entidad. Crear unmapa de instancias para la nueva tabla. Registrar
únicamente el nombre de la tabla.
Ejemplo
NOTAS
Mapear cada atributo de la entidad a una columna en su tabla correspondiente. Establecer los
atributos obligatorios para columnas NO NULAS (NN).
Ejemplo
NOTAS
Ejemplo
Asignar cualquier atributo (s) que sea parte del UID de la entidad a columnas PK etiquetar
las columnas PK.
EJEMPLO
Nulos / NN NN NN
Únicos
NOTAS
Ejemplo
El UID de la entidad MATRICULA esta compuesta de una relación para CURSO y de una
relación 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 Para
Curso
# Fecha de inicio # código
Fecha terminación Nombre
grado Cuota
Tomado
por duración
Para
Registrado por
Escoger un nombre único para cada columna FK y etiquetar la (S) columna (S) PK
Si existe múltiples columnas FK en una tabla, usar sufijos para distinguirlos, por FK1
y FK2. etiquetar múltiples columnas llave con el mismo sufijo.
Las PK compuesta deben de ser únicas en combinación y deben de ser etiquetas.
Agregar ejemplos de datos para las columnas FK.
Ejemplo
Para la relación 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 relación 1:1.
OCUPADO POR
MUELLE BARCO
# numero # numero de registro
longitud ciudad de registro
Desembarcado
en
# id
Nombre de la tabla MUELLE
NOTA
La FK para la relación 1:1 debe ser siempre única. Pero permite nulos.
Para una relación recursiva 1:M, agregar una columna FK a la tabla. Esta columna FK debe
referenciar valores de la columna PK.
EJEMPLO
Para esta relación 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
relación.
GERENTE DE
EMPLEADO
# * id BAJO LAS
ORDENES DE
* nombre
* apellido
Nulos/ NN.U NN NN
Únicos
7450 MARY SMITH
5579 LESLIE STERNE 7450
6714 JANET GETRY 5579
Ejemplos 9451 BILL ABLE 7450
3040 JUAN GOMEZ 9451
NOTAS
La columna FK hace referencia a un renglón e la misma tabla.
El nombre de la columna FK debe reflejar la relación.
Una FK recursiva nunca debe ser NO NULA.
Para una relación recursiva 1:1, agregar una FK única a la tabla. Esta columna FK
debe referenciar un valor de la columna PK.
EJEMPLO
Para esta relación recursiva 1:1, agregar una columna única a la tabla PERSONA.
ESPOSO DE
PERSONA
# * id CASADO
* nombre
* apellido
Nulos/ NN.U NN NN U2
Únicos
7450 MARY SMITH ------
5579 SUSAN JONES 9451
Ejemplos 6714 JANET GENTRY 3040
9451 BILL JONES 5579
3040 JERRY JOHNSON 6714
NOTAS
PRACTICA 6 – 1
1. Seguir los primeros cuatros pasos del Diseño Inicial de la Base de datos para mapear el
siguiente modelo E-R a un conjunto de tablas diseñadas inicialmente. Documentar los
diseños de las tablas en los mapas de instancias. Crear los datos de ejemplo como se
requieran.
EMPLEADO
Gerente de
Dibujar un modelo Entidad – Relación simple para un diseño inicial de la base de datos
usando los siguientes cuatro pasos:
PASOS
1. Mapear las entidades para las tablas.
PRACTICA 6 – 2
1. Seguir los primeros cuatro pasos del Diseño inicial de la base de datos para mapear el
siguiente modelo E-R a un conjunto de tablas diseñadas inicialmente. Documentar el
diseño de tablas en los mapas de instancias. Crear los datos de ejemplos como se
requieran.
LINEA PRODUCTO
ContenidoORDEN
en
# número
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
LINEA DE ORDEN
# Número de item
Descripción
Columna NUM-
Nombre de la Tabla: ORDEN
LÍNEA_ORDEN_PRODUCTO TIPO DE
LLAVE PK
Col Nulos/
Columna
Tipos de
llave
Nulos/
Únicos
PRACTICA 6-3
DEPARTAMENTO INQUILINO
Crear un diseño inicial de la base de datos
# número # id
nombre
1. Seguir los primeros cuatro pasos del Diseño inicial de la base de datos para mapear el
siguiente modelo E-R a un conjunto de tablas diseñadas inicialmente. Documentar el
diseño de tablas en los mapas de instancias. Crear los datos de ejemplos como se
requieran.
PISO
# número
Alquilado por
EDIFICIO El arrendatario de
# id
nombre
dirección
Ubicado en
Contenedor de
Ubicado en
Contenedor de
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
Práctica Opcional
Crear un diseño inicial de la base de datos.
1. Seguir los primeros cuatro pasos del Diseño inicial de la base de datos para mapear el
siguiente modelo E-R a un conjunto de tablas diseñadas inicialmente. Documentar el
diseño de tablas en los mapas de instancias. Usar las notas de la entrevista de la siguiente
página para seleccionar datos de ejemplos como se requieran.
LOCALIDAD DE EMPLEADO
VENTA
Representado por # id
nombre
# código apellido
nombre responsable
cuota
posición
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 compañía vende productos a través de los Estados Unidos. Así que dividimos a
los Estados Unidos en cuatro regiones de ventas : la Región Norte, la Región Este, la
Región Sur y la Región Oeste. Cada región tiene un código único. Cada región de venta se
divide en distritos de ventas. Por ejemplo, la región del Oeste es dividida en los distritos de
Rocky Mountain, Noreste, Costa del Pacífico, y distritos del Pacífico. Cada distrito tiene
un código único.
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 código único de ventas.
Cada vendedor es responsable de una o más áreas de ventas y tiene una cuota de venta
específica.
También tenemos gerentes de ventas que son responsables de uno o más distritos de ventas,
y los directores de ventas quienes son responsables de una o más 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 y las responsabilidades de nuestros gerentes y
directores tampoco se sobreponen.
Algunas veces nuestros gerentes, vendedores y directores están 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. ”
Realizar los siguientes pasos adicionales para convertir un modelo complejo Entidad-
Relación en un diseño inicial de base de datos.
Pasos
Los Arcos representan un tipo de llave foránea de alternativa múltiple. Escoger entre dos
alternativas de diseño para “mapear” arcos a llaves foráneas.
Alternativas de Diseño
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 diseño de Arco Explicito o un diseño de Arco Genérico para agregar estas
alternativas múltiples de llaves foráneas
NOTAS
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 Diseño de Arco Genérico y crear una columna de llave foránea simple
y agregar un tipo de columna para indicar cual de las tres tablas está referenciada por la
columna FK en cada renglón. Por ejemplo, I para INDIVIDUAL, S para SOCIEDAD, y C
para COMPAÑÍA.
PRÁCTICA 6-5
1.Utilizar un Diseño de Arco Explícito y desarrollar un diseño de tabla para este Modelo
Entidad-Relación. Documentar el diseño en los mapas de instancias.
ESTUDIANTE MUNICIPIO
# código
DE nombre
# Id La casa de
apellido ESTADO
Nombre id
#
De nombre del estado
La casa de
PAIS
id
#
De nombre
La casa de
Ejemplo
Columna
Tipo de llave
Nulos/ Único
Ejemplo
Columna
Tipo de llave
Nulos/ Único
Ejemplo
Nombre de la tabla: PAÍS
Columna
Tipo de llave
Nulos/ Único
Ejemplo
2. Utilizar un Diseño de Arco Genérico y desarrollar un diseño de tabla para este Modelo
Entidad-Relación. Documentar el diseño en los mapas de instancias.
ESTUDIANTE MUNICIPIO
# código
DE nombre
# Id La casa de
apellido ESTADO
Nombre id
#
De nombre del estado
La casa de
PAIS
id
#
De nombre
La casa de
Columna
Tipo de llave
Nulos/ Único
Ejemplo
Columna
Tipo de llave
Nulos/ Único
Ejemplo
Columna
Tipo de llave
Nulos/ Único
Ejemplo
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.
Diseño de una sola Tabla
Diseño de Tablas Separadas
Implementación del Arco(Ver Apéndice 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 opción seleccionada.
número de clave
EMPLEADO #
nombre
apellido
Miembro de
Asignado a
compuesto de compuesto de
DEPARTAMENTO SINDICATO
código número
#
TABLA
A A
Se usa el diseño de una sola tabla cuando el subtipo tiene pocas relaciones y atributos
propios.
Pasos de Diseño
2. Crear una columna para cada uno de los atributos del supertipo
3. Crear una columna TIPO para identificar a que subtipo pertenece cada renglón
4. Crear una columna para cada uno de los atributos del subtipo.
Mapear el supertipo EMPLEADO y sus subtipos dentro se una sola tabla EMPLEADO
número de clave
EMPLEADO #
nombre
apellido
Miembro de
Asignado a
compuesto de compuesto de
DEPARTAMENTO SINDICATO
código número
#
Columna NUM NOMBR APELLID TIPO_ SAL COSTO_H HR_EXT NO_SIN COD_DEP
_ E O EMPLE R R D TO
CVE A
Tipo de PK PK1 PK2
llave
Nulos/ NN.U NN NN NN NN
Único
4579 JAIME JUÁREZ E 29000 40
6631 KAREN DIDONAT E 25000 35
O
1190 MIGUEL ALVAREZ E 42700 40
370 MARIA PENA E 44050 30
Ejemplo 800 PEDRO MEDINA E 38450 35
7147 JOSE LUNA NE 8.50 12.75 201 35
6794 JULIA OSUNA NE 6.75 11.50 150 30
941 JAVIER BARBA NE 12.00 18.00 201 45
985 JOSE GOMEZ NE 9.50 16.15 201 30
969 CLAUDI LOPEZ NE 10.50 15.75 180 15
A
Las columnas de la tabla EMPLEADO son derivadas de los atributos y las relaciones del
supertipo y todos sus subtipos.
NOTAS
El diseño de subtipo de una sola tabla requiere una nueva columna tipo para
identificar el subtipo al que pertenece cada renglón. La columna TIPO_EMPLEA fue
agregada a la tabla EMPLEADO para este propósito.
Usar un Diseño de Subtipo en una sola Tabla cuando hay pocas relaciones atributos
propios.
Ventajas
Desventajas
Mapear el subtipo en tablas separadas(Una para cada subtipo). Cada tabla contendrá
solamente instancias de un subtipo.
A TABLA B
C TABLA B
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
número de clave
EMPLEADO #
nombre
apellido
Miembro de
Asignado a
compuesto de compuesto de
DEPARTAMENTO SINDICATO
código número
#
EJEMPLO
Crear una tabla separada para el subtipo EMPLEADO POR HONORARIOS
número de clave
EMPLEADO #
nombre
apellido
Miembro de
Asignado a
compuesto de compuesto de
DEPARTAMENTO SINDICATO
código número
#
Nombre de la Tabla: EMPLEADO POR HONORARIOS.
Ventajas
Desventajas
Las vistas que enlazan dos tablas(mediante un join) son solamente de consulta.
El código del programa de aplicación debe de ser específico para cada tabla
individual.
1. Utilizar el diseño de subtipo de una sola tabla y desarrollar un diseño de tabla para
este modelo Entidad- Relación. Documentar el diseño en los mapas de instancias.
LINEA DE ORDEN
# Número de item
Descripción
Compuesto de
Columna NUM-
ORDEN
TIPO DE
LLAVE PK
Nombre de la Tabla: LÍNEA_ORDEN Nulos/
Únicos N.N.U
Columna
Tipo de
llave
Nulos/
Único