Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MÉXICO
Licenciatura En Informática
Bases de
Datos
Autor: L.I. María de Lourdes Isabel
Ponce Vásquez
Objetivos Específicos
Describir el ciclo de vida del desarrollo de aplicaciones con BD
Explicar las diferencias entre el modelo externo, interno y lógico
Comprender y crear modelos lógicos para el diseño de BD mediante el modelo
entidad/relación
Comprender los conceptos básicos del modelado de datos.
Aumentar la semántica del MER mediante el MEER
Describir el modelo de clases de UML para el diseño de BD
2.1. Introducción al Diseño
El proceso de análisis de la organización y su ambiente, para desarrollar un modelo de BD que
refleje adecuadamente las funciones de la organización en el mundo real, e implementar el modelo
para crear una BD requiere de una metodología adecuada. El análisis de sistemas tradicional
proporciona una aproximación, pero una aproximación por etapas del diseño de BD ofrece una mejor
solución.
Etapa Actividades
Investigación Entrevistar usuarios, estudiar reportes, transacciones, software y documentación
Preliminar para identificar problemas en el sistema actual, y los objetivos del nuevo sistema.
Estudio de Estudiar las alternativas, estimar costos, estudiar el calendario y beneficios, y
Factibilidad hacer recomendaciones.
Diseño Trabajar con los usuarios para desarrollar el diseño del sistema general. Elegir el
Preliminar mejor diseño. Desarrollar el diagrama de flujo del sistema. Identificar las
necesidades de hardware, software y personal. Revisar los estimados.
Diseño Hacer el diseño técnico. Planear los módulos del sistema, algoritmos, archivos,
Detallado base de datos, formularios de E/S. Revisar estimados.
Implementació Programar módulos, convertir archivos, probar sistema, escribir documentación,
n del desarrollar procedimientos de operación, capacitar al personal, hacer corrida en
Sistema paralelo, poner en funcionamiento el nuevo sistema.
Operación del Evaluar el sistema. Monitorear y modificar el sistema de acuerdo a las
Sistema necesidades.
Un buen diseño del modelo conceptual de la BD protege los recursos de datos permitiendo que
evolucionen y sirvan para las necesidades de información, actuales y futuras. Si el sistema es
verdaderamente independiente de su implementación física, entonces puede moverse a un nuevo
hardware para sacar ventaja del desarrollo tecnológico. Aún cuando el DBMS elegido para la
implementación se remplace, el modelo lógico puede cambiar, pero el modelo conceptual de la
empresa sobrevive. La aproximación mediante etapas de diseño de la BD es un método top-down
(de arriba abajo) que inicia con las declaraciones generales de las necesidades, y progresa a mayor
y mayor detalle considerando los problemas. Los diversos problemas se consideran en diferentes
fases del proyecto. Cada etapa usa una herramienta de diseño que es apropiada para el nivel de
problema. Las etapas de esta aproximación son:
Varias etapas pueden repetirse para dar oportunidad de hacer modificaciones en el proceso de
diseño. Por ejemplo, después de desarrollar el modelo conceptual, el diseñador lo comunica a los
grupos de usuarios para asegurarse de que sus requerimientos son presentados apropiadamente. Si
no es así, el modelo conceptual debe ajustarse. Si el modelo conceptual no se mapea bien con un
modelo de datos particular, se debe considerar algún otro. Para un DBMS particular, pueden existir
varios posibles mapeos lógicos que pueden ser evaluados. Si el modelo físico no se acepta, debe
considerarse un mapeo diferente o un DBMS diferente. Si el resultado de la evaluación de
desempeño no es satisfactorio, debe realizarse más afinación y evaluación. El modelo físico puede
cambiar si la afinación no produce el desempeño requerido. Si las repetidas afinaciones y
optimizaciones no son suficientes, puede ser necesario cambiar el modo en que el modelo lógico es
mapeado al DBMS o considerar un DBMS diferente. Aún después de que el sistema es
implementado, pueden requerirse cambios para responder a las necesidades cambiantes del
ambiente de los usuarios.
En esta arquitectura, el modo en que los usuarios piensan acerca de los datos es llamado nivel
externo. El nivel interno es el modo en que los datos están actualmente almacenados usando
estructuras de datos estándar y organizaciones de archivos. Sin embargo, existen muchas y
diferentes vistas de usuarios y muchas estructuras físicas, de modo que debe haber algún método
para mapear las vistas externas a las estructuras físicas. Un mapeo directo no es deseable, ya que
los cambios hechos a las estructuras o dispositivos de almacenamiento podrían requerir hacer
cambios en la estructura externa correspondiente. Sin embargo, existe un nivel intermedio que
proporciona ambos mapeos e independencia entre los niveles externo e interno. Éste es el nivel
lógico.
Para desarrollar una vista de usuario, primero interviene el usuario y examina los reportes y
transacciones que crea o recibe. Después de diseñar las entidades de la BD es planeado, el DBA
determina qué datos estarán disponibles para el usuario y qué representación verá el usuario, y
escribe un esquema externo para ese usuario. Si es posible, este esquema externo incluye toda la
información que puede ser vista. Generalmente, los nuevos datos requeridos ya están disponibles en
la BD, y el esquema externo del usuario es rescrito para permitir el acceso a ellos.
Cuando el DBA originalmente lo diseña, intenta determinar las necesidades de información presentes
y futuras e intenta desarrollar un modelo actualizado de la organización. Por tanto, aunque se
requieran nuevos datos, el modelo lógico puede contener los objetos necesarios. Si éste no es el
caso, el DBA expande el modelo lógico para incluir los nuevos objetos.
Un buen modelo lógico será capaz de acomodar estos cambios y aún soportar las vistas externas
anteriores. Sólo los usuarios que necesitan acceso a los nuevos datos deben ser afectados por los
cambios. El esquema lógico es una descripción completa de la información contenida en la BD. Se
escribe en el DDL, compilado por el DBMS y almacenado en forma de objeto en el diccionario de
datos y en formato original como documentación. El DBMS usa el esquema lógico para crear la
interfaz lógica de registros, la cual es un límite por debajo del cual todo es invisible al nivel lógico.
Ni detalles internos o físicos de cómo están almacenados los registros o secuencias cruzan este
límite. El modelo lógico es actualmente la colección de registros lógicos. El modelo de datos lógico
es el corazón de la BD. Soporta todas las vistas externas y es soportado por el modelo interno. Sin
embargo, el modelo interno es meramente la implementación física del modelo lógico. El modelo
lógico es por sí mismo derivado del modelo conceptual.
El desarrollo del modelo conceptual es la parte más desafiante, interesante y de mayor recompensa
en el diseño de BD. El diseñador de la BD debe ser capaz de identificar, clasificar y estructurar
objetos en el diseño. El proceso de abstracción, que implica identificar propiedades comunes de un
conjunto de objetos en vez de enfocarse en detalles, es usado para categorizar los datos. Por
ejemplo, los tipos de datos abstractos se consideran aparte de la implementación; el comportamiento
de colas y pilas puede describirse sin considerar cómo se representan. El diseñador puede ver
diferentes niveles de abstracción, de modo que un objeto abstracto en un nivel se convierte en
componente de un alto nivel de abstracción. Durante el proceso del diseño conceptual puede haber
muchos errores e inicios en falso. Como muchos otros procesos de solución de problemas, el diseño
conceptual de la BD es un arte, guiado por el conocimiento. Pueden haber muchas posibles
soluciones, pero algunas serán mejores que otras. El proceso por sí mismo es una situación de
aprendizaje. El diseñador gradualmente empieza a entender el trabajo de la organización y el
significado de los datos y expresa ese entendimiento en el modelo elegido. Si el diseñador produce
un buen modelo conceptual, es relativamente fácil convertirlo en un modelo lógico y completar el
interno y el diseño físico.
Si el modelo conceptual es bueno, las vistas externas son fáciles de definir también. Por otro lado, un
modelo conceptual malo puede ser difícil de implementar adecuadamente, particularmente si las
interrelaciones no son bien definidas. Continuará causando problemas durante la vida de la BD,
porque necesitará ser parchado cada vez que se necesite diferente información. La habilidad de
ajustarse a cambios es uno de los indicadores de un buen diseño conceptual. Por tanto, es
importante dedicar todo el tiempo y energía necesarios a producir el mejor diseño conceptual.
El DD no sólo almacena los esquemas externos, lógicos e internos completos, también almacena el
mapeo entre ellos. El mapeo externo/lógico indica al DBMS qué objetos en nivel lógico
corresponden con qué objetos en una vista externa particular. Debe haber diferencias entre los
nombres de los registros, nombres de atributos, elementos de orden de datos, tipos de datos, etc. Si
cambian en el modelo lógico o externo, el mapeo debe cambiar. El mapeo lógico/interno
proporciona la correspondencia entre objetos lógicos e internos, indicando cómo los objetos lógicos
se representan físicamente. Si la estructura de almacenamiento cambia, el mapeo también.
Línea Liga:
Atributo a Entidad Id_cuent
a
Alumno
Entidad a Interrelación
Alumno
Estud
Atributo a Interrelación
Id_cuent
a
Estud
El Modelo Entidad/Relación (MER) es un ejemplo de modelo semántico. El MER fue desarrollado por
P.P. Chen en 1976 para permitir al diseñador expresar las propiedades conceptuales de la BD en un
esquema y es ampliamente usado para el diseño conceptual. El esquema es independiente del
DBMS particular, por lo que no está limitado al DDL del DBMS y puede permanecer correcto aún si
se cambia el DBMS. Sin embargo a diferencia de los esquemas descritos en el DDL, los diagramas
E/R generalmente no están disponibles para usarse por el DBMS para crear la estructura lógica o
establecer las relaciones externa/lógica o lógica/interna.
Este modelo sólo realiza el diseño, no realiza la implementación, por lo tanto una vez hecho el diseño
se puede llevar al modelo relacional, de red o jerárquico.
Una de las características más útiles y atractivas del MER es que proporciona un método gráfico
para especificar la estructura conceptual de la BD. Los diagrama E/R contienen símbolos para
entidades, atributos e interrelaciones. La tabla anterior muestra algunos de los símbolos con su
nombre y significado.
2.4.1. Entidades
Como se mencionó, las entidades describen los objetos del mundo real, una instancia de una
entidad representa un objeto particular, por ejemplo el cliente número 21. Un tipo de entidad
representa una categoría de entidades con propiedades comunes. El tipo de entidad forma la
intensión de la entidad, la parte permanente de la definición. Todas las instancias de una entidad en
un momento dado forman la extensión de la entidad.
Una entidad es cualquier objeto importante identificado en el ambiente de trabajo de los usuarios,
del cual, se desea almacenar información. Todas las entidades son sustantivos, pero no todos los
sustantivos son entidades.
Los nombres de las entidades deben ser únicos. En un modelo de datos, no debe haber
dos entidades con el mismo nombre. Esto permite especificar precisamente qué entidades
son de interés sin ambigüedad.
Cada entidad debe tener una llave primaria. Cada entidad debe tener una llave primaria y
sólo una llave primaria ya sea simple o compuesta.
2.4.2. Atributos
Los atributos de una entidad representan la definición de propiedades, características o cualidades
de un tipo de entidad o de una interrelación. Por ejemplo para un cliente podría ser su RFC, nombre,
apellido, domicilio fiscal, etc. Normalmente, una entidad tendrá un valor para cada uno de estos
atributos. Para decidir si un objeto debe representarse como entidad o atributo, el diseñador debe
considerar si el objeto describe a otro objeto y si tiene valores para sus instancias. En ese caso, es
mejor representar el objeto como un atributo, si es difícil identificar valores, el objeto podría ser una
entidad.
Todos los atributos son sustantivos o adjetivos calificativos, pero no todos los sustantivos o adjetivos
calificativos son atributos.
Los nombres de los atributos deben ser únicos en la entidad. Cada atributo en una
entidad debe tener un nombre único. Sin embargo, los atributos en diferentes entidades
pueden compartir el mismo nombre.
Los datos de los atributos deben ser atómicos. Si un atributo puede descomponerse en
partes, debe ser redefinido como dos o más atributos. La excepción a esta regla se aplica a
valores de fecha y hora que generalmente son tratados como un tipo de dato.
2.1.1.9. Dominios
El conjunto de valores permitidos para cada atributo se llama dominio del atributo. Diferentes
atributos pueden tener el mismo dominio. Por ejemplo valores positivos para una edad o para un
número de cuenta. El nombre del atributo y su dominio son parte de la intensión del modelo, mientras
que los valores de los atributos son parte de la extensión.
2.4.3. Llaves
2.4.4. Interrelaciones
Las entidades se unen a otras mediante asociaciones o interrelaciones, las cuales son conexiones
o interacciones entre las instancias de las entidades. Mediante la abstracción, podemos identificar las
propiedades comunes de ciertas interrelaciones y definir un tipo de interrelación y su
correspondiente conjunto de interrelaciones como la colección de interrelaciones de ese tipo. Las
interrelaciones que satisfacen los requerimientos para los miembros en el conjunto de interrelaciones
en cualquier momento son las instancias o miembros del conjunto de interrelaciones. Como con las
entidades y atributos, los tipos de interrelaciones son parte de la intensión y las instancias son parte
de la extensión del modelo. El significado de las interrelaciones se captura con un verbo adecuado.
Si no se le da un nombre, nos referimos a la interrelación usando los nombres de las entidades
relacionadas, con un guión entre ellas (Estudiante-Materia). Todas las interrelaciones son verbos,
pero no todos los verbos son interrelaciones.
Las entidades involucradas en una interrelación no necesitan ser distintas, estas interrelaciones se
llaman recursivas.
Una interrelación puede involucrar más de dos entidades, pudiendo tener interrelaciones ternarias,
que involucran tres entidades. En este caso las interrelaciones se pueden definir como un conjunto
ordenados de tripletas, en las cuales cada uno de los elementos corresponde a cada una de las
diferentes entidades.
Aunque la mayoría de las interrelaciones en un modelo de datos son binarias o a lo mucho ternarias,
se pueden definir interrelaciones ligando cualquier número de entidades. Por lo que en general, se
pueden definir como un conjunto de interrelaciones n-arias de la forma:
Donde E son entidades, e son instancias de las entidades y cada n-tupla ordenada representa una
instancia de la interrelación. Esto se puede reconocer como la notación usada para el Producto
Cartesiano en matemáticas, y de hecho, una interrelación es un subconjunto del producto Cartesiano
de las entidades involucradas, o sea que, si R es una interrelación y E 1, E2, …, En son entidades,
entonces
R ⊂ E1 x E2 x … x En
En un diagrama E/R, las líneas conectan los rectángulos de las entidades a los diamantes de las
interrelaciones para mostrar sus asociaciones. Existen diversos métodos para mostrar la cardinalidad
de la interrelación:
1 M
Universidad Impar Carrera
te
1 Direct 1
Director or-
Departamento
M Se N
Alumno ins- Materia
Método 2, mostrar la cardinalidad con flecha simple o doble en la línea que une la entidad a
la interrelación, dependiendo del número máximo de entidades asociadas.
Direct
Director or-
Departamento
Se
Alumno ins- Materia
Método 3, mostrar la cardinalidad con o sin flecha en la línea que une la entidad a la
interrelación, dependiendo del número máximo de entidades asociadas.
Direct
Director or-
Departamento
Se
Alumno ins- Materia
Método 4, mostrar la cardinalidad con o sin punto en la línea que une la entidad a la
interrelación, dependiendo del número máximo de entidades asociadas.
Direct
Director or-
Departamento
Se
Alumno ins- Materia
Método 5, mostrar la cardinalidad con o sin patas de gallo en la línea que une la entidad a la
interrelación, dependiendo del número máximo de entidades asociadas.
Direct
Director or-
Departamento
Se
Alumno ins- Materia
Aunque estos no son los únicos métodos para representar las interrelaciones entre entidades, son de
los métodos más empleados, sobre todo por herramientas CASE y de diseño de BD, existen también
algunos métodos que no incluyen los diamantes, sólo las líneas que conectan a las entidades.
Es posible que no todos los miembros de una entidad participen en la interrelación. Si cada miembro
de una entidad debe participar en la interrelación, es una participación total de la entidad en la
interrelación, esto se puede indicar en el diagrama E/R con una doble línea de la entidad a la
interrelación o agregando un 1 sobre la línea. Cuando algún miembro de la entidad puede no
2.1.1.23. Roles
En una interrelación, cada entidad tiene una función llamada rol en la interrelación. Generalmente es
claro en el contexto qué rol juega una entidad dentro de la interrelación, sin embargo, en las
interrelaciones recursivas es necesario indicar los roles que cada miembro juega en la interrelación;
en las interrelaciones donde la misma entidad se asocia con otra de dos formas diferentes, también
es necesaria la indicación de cada rol. Cuando las entidades se conectan a múltiples interrelaciones,
los roles pueden escribirse en la liga apropiada.
2.1.1.26. Generalización
Con el proceso de especialización, se desarrolla una jerarquía de tipos separando una entidad
existente en subtipos. La jerarquía de tipos también puede crearse reconociendo que dos o más
entidades tienen propiedades comunes e identificando un supertipo común para ellas, este proceso
se llama generalización. Estos dos procesos son inversos uno del otro, pero ambos resultan en el
mismo tipo de diagrama de jerarquía. Usando generalización se desarrollan estos diagramas de
abajo hacia arriba y con la especialización se desarrolla de arriba abajo.
0,1 1,M
2.5.2. Agregación
Una interrelación es una asociación entre conjuntos de entidades. Algunas veces se tiene que
modelar una interrelación entre una colección de entidades e interrelaciones. Suponiendo que existe
una entidad llamada Proyecto y que cada Proyecto se asigna a uno o más departamentos. La
interrelación Asignación de Proyectos captura esta información. Un departamento que tenga un
Para definir interrelaciones como la de Monitores, se introduce un nuevo tipo de interrelación llamado
agregación. Una Agregación permite indicar que una interrelación identificada como un rectángulo
con línea punteada, participa en otra interrelación. Esto se ilustra en la siguiente figura, dentro del
rectángulo punteado se indica la interrelación Asignado A y las entidades participantes. Esto permite
tratar la interrelación Asignado A como una entidad para propósitos de identificar la interrelación de
Monitoreo.
De modo intuitivo, la agregación se usa cuando se necesita expresar una interrelación entre
interrelaciones. Esta interrelación no se puede representar como interrelación ternaria porque
existen dos interrelaciones distintas Monitorea y Asigna A, y cada una tiene atributos. Por ejemplo la
interrelación Monitorea tiene el atributo hasta que almacena la fecha final en que un empleado
monitorea la asignación de un proyecto. Comparando este atributo con el atributo desde de la
interrelación Asigna A, que es la fecha cuando se asigna un proyecto. El uso de agregación contra la
interrelación ternaria puede guiarse por ciertas restricciones de integridad.
Empleado
Monitorear hasta
desde
idProyecto idDepto
2.6.1. Situaciones
Una situación es un conjunto bien definido de circunstancias que pueden describirse usando un
lenguaje natural suficientemente completo. Un lenguaje natural suficientemente completo incluye al
menos las siguientes estructuras gramaticales:
Las situaciones que pueden ser descritas sin el uso de modificadores generalmente son muy triviales
para ser de interés.
Ejemplo:
Una compañía imaginaria emplea actualmente a Dorantes, Fernández, García, Nieto y Sebastián;
cada uno es identificado por un Número de Empleado único. Dorantes trabaja en Ventas, mientras
que Fernández y Sebastián trabajan en Nómina. Los otros no han sido asignados a un
departamento. Se han establecido otros tres departamentos: Investigación, Mercadotecnia y
Sistemas, pero estos no tienen empleados actualmente. Todos los departamentos se identifican con
dos caracteres de Código de Departamento. Dorantes es el que recibe el menor sueldo con un
salario de $120,000 al año, Nieto recibe dos veces esa cantidad y Sebastián también recibe
$240,000; García, el director, recibe $120,000 más que el anterior.
2.6.2. Pasos
Paso 1 – Modelar Entidades. Las entidades son sustantivos de una situación. Como se
indicará pueden ser mayores o menores en tamaño e importancia y pueden ser subtipos o
dependientes de otras entidades.
Paso 2 - Modelar Interrelaciones. Las interrelaciones son los verbos de una situación.
Pueden ser de tres tipos: uno a uno, uno a muchos y muchos a muchos. Casos especiales de
interrelaciones peden ser las recursivas, agregaciones o pueden variar en el tiempo.
Paso 3 – Modelar Atributos. Los atributos son modificadores de situaciones. Los atributos
pueden ser reales o derivados, y pueden aplicar a sus entidades (como adjetivos) o a
interrelaciones (como adverbios).
2.6.3. Paso 1- Modelar Entidades
Una entidad es una persona, animal, planta, lugar, cosa, sustancia o idea que puede ser identificada
por un tipo e instancia. El primer paso para obtener un MER es el modelado de entidades que
consiste en cuatro pasos:
Descubrir una entidad. Antes de modelar una entidad hay que encontrarla.
Definir el alcance de la entidad. Habiendo encontrado una entidad, se debe establecer qué
nivel de detalle es de interés.
Determinar la llave primaria de la entidad. Después, se debe localizar un identificador
apropiado para cada instancia de la entidad.
Documentar la entidad en forma de rectángulo. Lo siguiente es modelar la entidad en el
diagrama como un rectángulo.
Unidad 2. Diseño de Bases de Datos Página 20
Las entidades pueden ser de dos tipos:
Las instancias de entidades mayores generalmente, pero no siempre, son identificadas por un
número asignado por sistema, ya que las llaves asignadas por usuarios pueden ser difíciles de
manejar e imposibles de memorizar.
Las entidades menores generalmente se identifican con códigos generados por el usuario por
conveniencia. Tales códigos son fáciles de recordar y significativas cuando se despliegan.
A excepción de la clave, no existen diferencias reales entre las entidades mayores y menores,
ambas se modelan igual.
Preguntar. La mejor forma y más simple de encontrar una entidad es preguntar por ella. Por
ejemplo: ¿Cuales son los nombres de las personas, lugares o cosas de las que se desea
mantener información?”.
Concentrarse en sustantivos. El usuario generalmente responde a la pregunta anterior con
varios nombres de entidades. Esto es normal, pero es mejor concentrarse en el primero que
indique el usuario. Es importante recordar que las entidades pueden ser animadas o
inanimadas, tangibles o intangibles. Algunas veces, las entidades son obvias, objetos físicos
y otras son sólo conceptos o ideas.
Tener cuidado con los atributos. Todas las entidades son sustantivos, pero no todos los
sustantivos son entidades. Muchos sustantivos son atributos, características, cualidades o
propiedades de las entidades. Las entidades existen por si mismas, los atributos tiene
significado sólo en el contexto de las entidades que las describen. Las entidades se
caracterizan por sus atributos, los atributos no tienen características por sí mismos.
Verificar el interés del usuario. Es probable que los usuarios mencionen entidades que no
pertenecen realmente al alcance del modelo. Puede ser que se interesen por una cosa en
particular, pero no lo suficiente para mantener su información almacenada; o puede ser que
están suficientemente interesados, pero económicamente, por cuestiones de tiempo u otras
Preguntar. La mejor forma y más simple de encontrar una llave primaria de una entidad es
preguntar por ella. Por ejemplo: “¿Cómo se puede distinguir una <nombreEntidad> de otra?”,
o “Cómo se identifica de forma única una <nombreEntidad>?”.
Verificar valores nulos. Una vez que se encuentra una llave primaria potencial, se debe
verificar que nunca puede ser nula. Cada instancia de una entidad debe tener un valor de
llave primaria todo el tiempo.
Verificar valores duplicados. Verificar que no pueda tener valores duplicados, siempre
deben ser únicos.
Verificar valores modificables. Las llaves primarias no deben ser modificadas por ninguna
razón.
Verificar si se pueden asignar por sistema. Si no se puede localizar una llave, se puede
sugerir una llave asignada por sistema con un nombre apropiado como <Numero de -nombre
de Entidad-> ó <código de -nombre de Entidad->.
Descubrir una interrelación. Antes de modelar una interrelación hay que encontrarla.
Definir el alcance de la interrelación. Habiendo encontrado una interrelación, se debe
establecer qué nivel de detalle es de interés.
Determinar el tipo de interrelación. Se requiere conocer con qué tipo de interrelación se
está trabajando.
Documentar la interrelación en forma de rombo. Y finalmente se puede dibujar la
interrelación en el modelo.
Preguntar. La mejor forma y más simple de encontrar una interrelación es preguntar por ella.
Tomar a la vez, dos de las entidades que se han definido previamente y preguntar,
remplazando <nombre de Entidad A> y <nombre de Entidad B> con el nombre apropiado de
las entidades: ¿Existe una interrelación entre <nombre de Entidad A> y <nombre de Entidad
B>?”. La respuesta puede ser Si o No. Si es Si, continuar, si es No, tomar otro par de
entidades y seguir el proceso.
Considerar solo una interrelación. No considerar más de una interrelación a la vez, o sólo
habrá confusión. Si una interrelación existe, continuar con ella hasta modelarla.
Proceder en cierto orden. Puede ayudar si las entidades se organizan alfabéticamente y se
pregunta en un orden de A contra B, C y D, luego B contra C y D y finalmente entre C y D.
Verificar el interés del usuario. Pueden existir interrelaciones que no se usan o no son de
interés del usuario del sistema. Tales interrelaciones peden ser obvias, razonables y simples
de representar pero no deben incluirse en el modelo.
Concentrarse en interrelaciones directas. Un problema es determinar si una interrelación
es directa o indirecta (implicada en otra interrelación). Sólo las interrelaciones directas deben
modelarse y las indirectas pueden derivarse de las otras.
Establecer el nivel apropiado de detalle. Las interrelaciones pueden cambiar con el tiempo,
por lo que es importante descubrir si los usuarios están interesados sólo en el estado actual
de una interrelación o en el pasado, presente y posibles estados futuros de la interrelación.
Las interrelaciones en el tiempo se verán más adelante.
Hacer dos preguntas. Se deben hacer dos preguntas y responderlas antes de que se pueda
conocer el tipo de una interrelación con concierto grado de certeza: “¿Puede una <nombre de
Entidad A> interrelacionarse con más de una <nombre de Entidad B>?” y “¿Puede una
<nombre de Entidad B> interrelacionarse con más de una <nombre de Entidad B>?”. Los
términos <nombre de Entidad A> y <nombre de Entidad B> son, por supuesto, remplazados
con nombres de entidades apropiados. Las palabras “interrelacionarse con” pueden
sustituirse con un verbo apropiado a la frase, por ejemplo ¿Puede un empleado trabajar en
más de un departamento? Nótese que la conjugación del verbo no es siempre una cuestión
trivial.
Obtener dos respuestas. Cada una de las preguntas anteriores, pueden tener respuestas
ciertas o falsas, el tipo de interrelación se determina como:
o Dos respuestas NO indican una interrelación Uno-A-Uno.
o Una respuesta Si y otra No indican una interrelación Uno-A-Muchos.
o Dos respuestas Si indican una interrelación Muchos-A-Muchos.
Preguntar. La mejor forma y más simple de encontrar un atributo es preguntar por uno.
Simplemente hay que tomar cada entidad e interrelación que ha sido definida previamente, y
preguntar lo siguiente, sustituyendo <nombre de Entidad> con el nombre de la entidad o
interrelación. “¿Qué otras características de <nombre de Entidad> son de interés?”. La
respuesta será el nombre de un atributo potencial. Si no se pueden encontrar más atributos,
proceder con la siguiente entidad o interrelación
Considerar sólo un atributo. No considerar más de un atributo a la vez, o sólo habrá
confusión. Si un atributo existe, continuar con el hasta modelarlo.
Proceder en cierto orden. Se debe evitar brincar por todo el modelo. Organizar las
entidades alfabéticamente y preguntar por cada una en orden. Puede no seguirse esta
secuencia de modo estricto, pero un esfuerzo ayudará a no perder alguno de los atributos de
la situación.
Verificar el interés del usuario. Probablemente existen atributos que no se usan o no son
de interés para el usuario del sistema. Tales atributos pueden ser obvios, razonables y
simples de representar, pero no deben incluirse en el modelo.
Concentrarse en atributos reales. Cada vez que encontramos un atributo, se debe estar
seguro que los valores deseados no existen ya en el modelo (probablemente en diferente
forma). Recordar que los atributos derivados sólo se incluyen en un modelo como una
solución para mejorar el desempeño. Esto también significa que cada vez que se agrega un
atributo, se debe verificar para estar seguros que el agregarlo no causa que otro atributo que
antes era real, se convierta en derivado.
Establecer el nivel apropiado de detalle. Los atributos normalmente cambian con el tiempo,
por lo que es importante descubrir si los usuarios están interesados sólo en el estado actual
del atributo o en el pasado, presente y posibles valores futuros de un atributo. Los atributos
en el tiempo se verán más adelante.
Las preposiciones son palabras como a, ante, bajo, etc. que junto con los artículos y/o
adjetivos y un sujeto forman frases preposicionales. Estas frases generalmente indican
localización, duración o posesión, por ejemplo, sobre la mesa, para el día, en la caja, del
cliente.
El modelo está completo cuando el usuario no puede pensar en algo más que quisiera en el modelo,
y no hay información que sea derivada del modelo que no se pueda obtener.
Un subtipo de una entidad es una colección de ocurrencias de un tipo de entidad que participa en
interrelaciones o posee atributos que son comunes al tipo de entidad como un todo. La entidad como
un todo es llamada supertipo en este contexto.
Por ejemplo, en un modelo de empleados, todos los empleados tienen nombre, pero sólo los
empleados asalariados tienen departamento y salario. El pago por hora sólo aplica al personal no
asalariado. Si se modela sólo la entidad empleado con todos los atributos, existirán muchos valores
nulos en el código de departamento y el pago por hora, además no habrá una distinción clara entre
los tipos de empleados. La clasificación de Empleados asalariados y Empleados por Hora como
subtipos de Empleado sin embargo, resulta en un modelo diferente. En este caso, todos los
Otra situación, describe Clientes y Empleados, donde un empleado puede ser cliente y empleado a
la vez, si sólo se modelan las dos entidades separadas, se tendrán duplicados los datos de la
persona que es cliente y empleado en ambas entidades, con dos llaves primarias diferentes también.
Cuando un objeto puede ser de dos tipos al mismo tiempo, se pueden considerar las dos entidades
como subtipos de una tercera, en este caso Empleado o Cliente serían subtipos de una gran entidad
Persona. De este modo, los datos comunes se pueden almacenar en la entidad supertipo Persona,
evitando redundancia y mejorando la consistencia. La entidad Persona también podría modelar
personas que no son ni empleados, ni clientes, podrían ser posibles clientes o proveedores. Ya que
un individuo puede ser tanto cliente como empleado, estos subtipos son traslapados.
Un ejemplo puede ser el modelo de la entidad Edificio que está compuesto por Pisos, cada piso será
una entidad débil de Edificio; por su parte, cada Piso está compuesto por Cuartos, donde cada
Cuarto será una entidad débil de Piso. La llave primaria de Edificio se pasa como parte de la llave
primaria de Piso, la cual será el edificio y piso, y por último la llave primaria de Cuarto será la llave
primaria de Edificio, más el número de Piso, más el número de Cuarto.
Las entidades débiles son un tipo especial de entidad que generalmente no tienen llaves primarias
simples. La entidad fuerte se modela primero y después las dependientes.
Las interrelaciones recursivas son un tipo de interrelación especial y pueden ser de uno a uno, uno a
muchos o muchos a muchos. Este tipo de interrelación no ocurre muy frecuentemente, pero esto no
quiere decir que no sea importante, de hecho, este tipo de interrelación es una herramienta
excepcionalmente poderosa y generalmente se propone como una alternativa flexible a las entidades
débiles (dependientes).
Modelar datos en tiempo presente es significativamente más fácil que modelar datos a través del
tiempo, de modo que, mientras los modelos de datos pueden representar no sólo estados actuales,
sino pasados y futuros, tales modelos deben desarrollarse con gran cuidado.
Una forma de representar el tiempo es como una interrelación compleja entre años, meses, días,
horas, minutos y segundo, sin embargo, esta forma no es muy práctica.
En vez de eso, se considera que cada modelo incluye, por omisión, una entidad virtual llamada
Tiempo. La entidad Tiempo contiene un solo renglón para cada punto del tiempo que puede ser de
interés para el usuario de un modelo.
Nótese que la palabra virtual sugiere que la entidad Tiempo no se implementa físicamente, pero
existe como un objeto conceptual en cualquier modelo. La mayoría de las interrelaciones de las
bases de datos proporcionan facilidades especiales para definir, editar y manipular datos de tiempo,
y es por tanto innecesario definir una entidad adicional.
Sin embargo, es importante notar que todas las entidades e interrelaciones se interrelacionan a esta
entidad virtual Tiempo, y que estas interrelaciones son siempre de la variedad muchos a muchos.
El grado de precisión del punto del Tiempo puede variar; en ocasiones puede ser suficiente
especificar el año, mes y día, en otras se requerirá indicar las horas, minutos y segundos.
Las situaciones históricas requerirán pues incluir un atributo de tipo Tiempo en su llave primaria. Por
ejemplo, los empleados se asignan a un departamento a la vez, pero si se desea mantener un
registro de las asignaciones a departamentos anteriores y también se desea insertar futuras
transferencias en el modelo, se agregará una entidad que tenga como llave primaria la clave del
El modelo de clases de UML muestra un conjunto de clases, interfaces y colaboraciones, así como
sus interrelaciones. Estos diagramas son los diagramas más comunes en el modelado de sistemas
OO. Los diagramas de clases cubren la vista de diseño estática de un sistema. Los diagramas de
clases que incluyen clases activas cubren la vista de procesos estática de un sistema.
Conforme más y más clases se agregan a un modelo, una representación textual de las clases no es
suficiente. Los diagramas de clases se crean para proporcionar un vista de algunas o todas las
clases en el modelo.
Una clase captura una y sólo una abstracción, debe tener sólo un tema principal. Si una clase tiene
más de un tema, se debe dividir en tantas clases relacionadas como temas sean identificados en
ellas.
Las clases se nombran usando el vocabulario del dominio, el nombre debe ser un sustantivo en
singular que caracterice mejor la abstracción. Se pueden usar acrónimos si el acrónimo tiene el
mismo significado para todos los involucrados, pero si un acrónimo tiene diferentes significados para
algunos, entonces se debe usar el nombre completo. Si la clase se nombra con un acrónimo, el
nombre completo debe indicarse en la documentación de la clase. Si existen problemas para
nombrar o documentar una clase, puede ser porque no es una buena abstracción. La siguiente lista
tipifica las cosas que pueden ocurrir cuando se nombran o documentan las clases:
Se puede identificar el nombre y una clara definición de ella, es una buena clase candidata.
Se puede identificar un nombre, pero la definición es la misma que otra clase, combinar las
clases.
Se puede identificar un nombre, pero se necesita un libro para documentar el propósito,
dividir la clase.
No se puede identificar un nombre o una definición, se requiere más análisis para determinar
la abstracción correcta.
En UML las clases se representan como rectángulos con tres secciones. La sección superior
contiene el nombre de la clase, la sección siguiente contiene la estructura de la clase (atributos) y la
tercera sección contiene el comportamiento de la clase (operaciones).
2.7.1. Estereotipos
Mediante “mecanismos de extensibilidad” se pueden crear estereotipos que permiten crear una
nueva clase de elementos en el modelo. Algunos estereotipos de clases son entidad, frontera,
control, utilidad y excepción. El estereotipo de una clase se muestra bajo del nombre de la clase
encerrado entre paréntesis angulares (<< >>). Se puede asociar un icono gráfico o un color
específico a un estereotipo.
No existe una receta para encontrar clases, pero el Proceso Unificado de Desarrollo recomienda
localizar clases para un sistema buscan clases de frontera, control y entidad. Estos tres estereotipos
conforman el punto de vista del “Modelo Vista-Controlador” y permite al analista dividir el sistema
separando la vista del dominio de control necesario para el sistema.
El primer paso es examinar las responsabilidades documentadas en el flujo de eventos para los
casos de uso identificados (qué debe hacer el sistema). Las clases entidad generalmente son clases
que se requieren por el sistema para cumplir alguna responsabilidad. Los sustantivos y frases
sustantivos usados para describir la responsabilidad pueden ser un buen principio. La lista inicial de
sustantivos debe filtrarse ya que puede contener sustantivos que están fuera del dominio del
problema, sustantivos que sólo son expresiones del lenguaje, sustantivos que son redundantes y
sustantivos que son descripciones de estructuras de clases.
Las clases entidad generalmente se localizan en la Fase de Elaboración del Proceso Unificado de
Desarrollo. Estas son llamadas clases de “dominio” ya que generalmente son entidades abstractas
del mundo real.
Cada par escenario/actor físico se examina para descubrir las clases frontera. Las clases frontera
seleccionadas en la Fase de Elaboración del desarrollo son generalmente de alto nivel. Por ejemplo,
se puede modelar una ventana pero no cada uno de las cajas de diálogo y botones. En este punto,
se documentan los requerimientos de la interfaz de usuario, no su implementación.
Los requerimientos de la interfaz tienden a ser muy vagos, los términos “user-friendly” y flexible son
muy empleados, pero significan diferente cosas para diferentes personas. Aquí es donde los
prototipos y las técnicas de storyboard pueden ser útiles. El desarrollador puede obtener el “look and
feel” que se desea del sistema y captar lo que significa amigable. Lo cual es entonces capturado
como la estructura y comportamiento de las clases frontera. Durante el diseño, estas clases se
refinan para tomar en consideración y elegir cómo se implementan los mecanismos de la interfaz de
usuario.
Las clases frontera se agregan, para facilitar la comunicación con otros sistemas. Durante el diseño,
estas clases se refinan para tomar en cuenta los protocolos de comunicación.
El uso de clases de control es muy subjetivo. Muchos autores sienten que tener clases de control
genera comportamiento separado de los datos. Esto puede suceder si la clase de control no se
selecciona cuidadosamente. Si una clase de control realiza más de una secuencia, entonces está
haciendo demasiado. La clase de control sabe cuándo se realiza una acción, mientras que las
otras clases saben cómo realizar la acción. Una clase de control errónea podría saber cuándo y
cómo realizar las acciones.
Agregar una clase de control por pareja de actor/caso de uso es sólo un principio, con forme el
análisis y diseño continúan, las clases de control pueden ser eliminadas, divididas o combinadas.
2.7.5. Métodos
Una clase encierra un conjunto de responsabilidades que definen el comportamiento de los objetos
de esa clase. Las responsabilidades se llevan a cabo por las operaciones definidas para la clase y
son llamadas métodos. Una operación debe realizar sólo una cosa y debe hacerla bien. Todas las
instancias de una clase serán capaces de ejecutar la operación identificadas de la clase.
Las operaciones deben ser nombradas en términos de la clase que ejecuta la operación, no de la
clase que solicita la funcionalidad a ser ejecutada. Adicionalmente, los nombres de las operaciones
no deben reflejar la implementación de la operación, ya que la implementación puede cambiar con el
tiempo.
2.7.6. Atributos
La estructura de un objeto se describe por los atributos de la clase. Cada atributo es la definición de
un dato perteneciente a un objeto de la clase. Los objetos definidos a partir de la clase tienen un
valor para cada atributo de la clase. Los valores de los atributos no tienen que ser únicos para todos
los objetos.
Muchos de los atributos de una clase se encuentran en la declaración del problema, el conjunto de
requerimientos del sistema y la documentación del flujo de eventos. También pueden ser
descubiertos cuando se genera la definición de una clase. Finalmente, el experto del dominio
también es una fuente de atributos para la clase.
Los nombres de las clases inician con mayúsculas y los de los atributos y objetos se escriben de
manera estándar en minúsculas, capitalizando cada palabra de nombres compuestos por múltiples
palabras, esto mantiene una consistencia que facilita la lectura y mantenimiento de los modelos y
código.
Si los objetos en una clase no necesitan atributos u operaciones puede indicar que la clase está mal
definida y debe ser separada o unida a otra clase.
Una interrelación también puede tener una estructura y comportamiento. Esto es cierto cuando la
información trabaja con una liga entre dos objetos y no con un objeto por si mismo.
Un diccionario de datos orientado al usuario es un herramienta que puede desarrollarse con o sin
paquetes CASE. Los paquetes de administración de proyectos (Project Manager) son otro tipo de
herramienta que puede ser aplicada efectivamente al desarrollo de BD.
Tarea.
a. Leer al menos 2 fuentes adicionales sobre los temas vistos en esta unidad y hacer un resumen
de la unidad (máximo 1 cuartilla). No olvidar conclusiones y bibliografía.
b. Explicar cuáles son las diferencias entre el nivel externo, interno y lógico, entre una llave primaria,
secundaria, alterna y candidata, entre atributos compuestos y multivaluados, entre cardinalidad
máxima y mínima, entre la generalización y especialización, entre especialización parcial y total,
entre los subtipos y las entidades débiles, entre las clases frontera, control y entidad, entre
métodos y atributos de una clase, y entre upper, lower y case integrado.
Usando la descripción siguiente, descubrir entidades. Para cada entidad, definir su alcance y
determinar la llave primaria, después documentarla.
Bueno, mi madre y yo y otros trescientos empleados trabajamos en esta pequeña tienda de comida
saludable sin usar computadoras, pero reconocemos que a veces sería mejor hacerlo de otra forma.
Por supuesto que se puede asignar un Número de Empleado si quiere…
¿Sabe que tenemos tiendas en tres diferentes estados? Y estamos pensando ampliarnos a otros dos
estados, Veracruz y Tamaulipas…
Ejercicio 2.
Parece que contrataremos más empleados. Casi 200 en la región N, la región norte, y cerca de 100
en la sur, región S. La región este E, es la más grande. Está bien si quiere numerar a los empleados.
Lo bueno es que el número de clientes también ha crecido. Catorce nuevos clientes tan sólo en la
región oeste. ¿También quiere numerar a los clientes? Bueno, ¿porqué no?
Sé que el director ha realizado un esquema de clasificación para saber qué clase de clientes
tenemos, y el tipo de experiencia tienen los empleados. Creo que les llama Códigos de Clase. Creo
que B es para Bancos, G para Oficinas de Gobierno, H para Hospitales, etc.
Ejercicio 3
Como sabe, yo soy quien tiene que organizar todas estas comidas, cada… bueno, todo el tiempo y
vaya que es mucho trabajo…Si, usted puede numerarlas pero la mejor parte es mantener
información de los platillos como S para bistec y Q para quiché y F para Pescado…algunas veces,
como cuando estoy muy cansado ya no sé como le hago pero como yo soy la persona responsable
debo llevar un registro de todas las invitaciones. Cada una debe ser numerada y debo mantener
información de qué invitados nos honran con su presencia y cuáles no. Supongo que también quiere
darles números a los invitados. Entonces qué, es esto interesante ¿o no?
Ejercicio 4
Desarrollar un modelo de datos para la siguiente situación. Primero modelar las entidades, una a la
vez, luego proceder a descubrir interrelaciones, definir su alcance, determinar su tipo y finalmente
documentarlas.
El usuario es administrador de un cementerio muy grande. Cada cliente tiene asignado por el
sistema un número de cliente único y a hasta que fallece una fosa. Las fosas son asignadas por
sistema con números únicos empezando con 1. De las 927 fosas en la institución, sólo el 20 % están
ocupadas. 312 clientes están actualmente en archivo.
El usuario debe mantener información de los pedidos numerados de forma única por el sistema, que
son recibidos por varios vendedores, cada uno identificado con un número asignado por el usuario.
Un vendedor puede recibir varios pedidos, por supuesto, pero cada pedido está asociado sólo con un
vendedor.
Ejercicio 6
El usuario es responsable del registro de los estudiantes en pequeño colegio privado. Cada
estudiante es identificado con un número de estudiante asignado por sistema, cada curso tiene un
código de curso asignado por usuario. En cualquier momento, los estudiantes pueden estar
registrados a cero, uno o más cursos; y cada curso puede tener cero, uno o más alumnos inscritos.
Ejercicio 7
El siguiente ejercicio es una continuación de un ejercicio previo. Las entidades ya han sido
descubiertas, descubrir, definir el alcance, determinar en tipo de y modelar todas las interrelaciones
apropiadas para este sistema.
Bueno, mi madre y yo y otros trescientos empleados trabajamos en esta pequeña tienda de comida
saludable sin usar computadoras… Cada empleado, por supuesto sólo trabaja en una tienda, pero
una tienda puede tener varios empleados. Realmente no nos interesa saber dónde viven los
empleados.
Cada tipo de producto puede venderse en cualquier tienda, y la mayoría de las tiendas manejan la
mayoría de los productos. Existen algunas excepciones, creo…
No se olvide que estamos actualmente en tres estados. ¿Qué? Claro que no, todos saben que no se
puede tener una tienda en más de un estado…
Ejercicio 8
El usuario dice…
Casi 200 en la región norte, ¿recuerda? Y casi 100 en la sur. Si así es, cada empleado trabaja en
una sola región…
Ahora acerca de los clientes: cerca de catorce nuevos sólo en la región oeste…¿Que? No, si tienen
sucursales en más de una región los tratamos como clientes separados, diferentes números y todo…
Al jefe parecen gustarle sus nuevos códigos de clase. Ha terminado de clasificar a los clientes y la
próxima semana empezará con los empleados.
Ejercicio 9
El usuario dice…
Como le decía, una comida tiene muchos invitados y la mayoría de los invitados vienen a todas las
comidas con algunas excepciones, cada invitación es para un invitado pero un invitado puede recibir
varias invitaciones porque son para una sola comida y también sólo servimos un platillo en cada
Ejercicio 10
Y el usuario dice…
Debo poder obtener los nombres de los empleados, ya sabe, y el nombre y precio de los productos
también. Ah! Por supuesto. El precio de cada artículo es el mismo en cada tienda. También debo
poder saber qué cantidad de productos hay actualmente en cada tienda. Bien!
Sería bueno tener cada nombre de los estados en algún lugar, y para mi hijo Benjamín que se acaba
de graduar de la escuela y le gusta coleccionar números de tipo estadístico, mejor incluimos el
número de empleados por cada tienda, la cantidad de tiendas por estado, el número de estados que
tienen tiendas y el número total de empleados.
Ejercicio 11
El usuario dice…
El director probablemente quiera una llave única para cada uno de esos códigos de clase, y el
nombre del cliente y su número telefónico también. Los nombres de las regiones, como
probablemente sospecha, son todas diferentes. Necesitamos obtener la cantidad de empleados y
clientes para cada región todo el tiempo.
El director también quiere el nombre de cada empleado y mencionó que le gustaría poder ingresar
algún comentario de las habilidades de cada empleado. No, nada formal, sólo un comentario,
“bueno”, “muy bueno” o “no tan bueno”, cosas así.
Ejercicio 12
Bueno, pues ya habíamos llegado a algo, pero, le tengo malas noticias…, he sido removido de mi
puesto quesque por no tener habilidad para expresarme claramente o algo así. Me parece totalmente
injusto, ¿no cree?, y bueno creo que no hemos terminado de definir el modelo o no sé si ya está,
bueno, usted me entiende, ¿no?
Ejercicio 13
El siguiente ejercicio es más interesante si se practica con varias personas y una lee el problema
asumiendo el papel de usuario, los otros no leen y asumen el papel de analistas. El objetivo es
generar un DER completo.
El usuario dice:
Bueno, me dijeron que usted me puede ayudar y eso espero porque este complejo de departamentos
se está saliendo de mis manos. 1400 unidades, ya sabe, son muchas unidades. ¿Qué dice? Por
supuesto que ya están numeradas de 1 a 1400, ¿qué mas?
Yo necesito saber quién paga la renta de cada uno. No, no me importa quién vive ahí, sólo quién es
el responsable de la renta. Si, les llamamos inquilinos, pero son realmente los que pagan la cuenta.
Sólo un inquilino por cada unidad. Necesito sus nombres, y poder obtener su número de credencial
de elector cuando quiera. ¿Un inquilino puede pagar más de una unidad? No veo porqué no.
Y necesito muchos datos de cada unidad. Número de recámaras, por ejemplo. Si tienen chimenea y
lava platos. Y qué lugares de estacionamiento tienen asignados. ¿Números? Seguro ya tienen
números, pero no corresponden con el número de la unidad, y no podemos hacer nada al respecto.
La unidad 103, por ejemplo, tiene los lugares de estacionamiento 1201 y 1202 asignados. ¿Está
usted loco? No puede asignar un lugar de estacionamiento a más de una unidad, habría peleas para
estacionarse todas las noches…
Ahora, algunas de estas unidades son llamadas de lujo, tipo L. Otras son tipo R para regulares y
existen un montón de unidades económicas también. Así es tipo E. ¿Cómo lo sabía? La cantidad de
renta depende del tipo de unidad, y no de las características.
Si, características, características adicionales. Las tenemos todas codificadas, pero siempre
pensamos en nuevas. ¿Como qué? Como VA para Vista a la Alberca y CT para cerca de las
canchas de tenis. Si quiero mantener información sobre esto. Quiero poder listar todas las
características y quiero poder encontrar en qué unidades se tienen qué características y cuáles no…
Ejercicio 14
El usuario dice:
Estamos en graves problemas aquí, He perdido el control sobre a quién pertenece esta TV y no sé a
quién pertenece aquel horno de microondas. De algún modo debemos poder mantener un mejor
control de qué cliente trajo qué aparato. Debemos obtener el nombre del cliente y su número
telefónico si se puede…
Y necesitamos un mejor sistema para mantener control de los técnicos. Sus nombre, por supuesto y
sobre qué aparato está trabajando y qué tiempo tarda en cada uno, las horas que se cobran, ya
sabe. Si, un técnico puede trabajar en más de un aparato y un aparato puede ser trabajado por más
de un técnico. No, no me importa saber quién lo tiene en este momento, pero me gustaría saber si
está o no reparado. ¿Un qué? ¿Una qué menor? No, no, sólo el código, SI significa que ya está
reparado y NO significa que no…
¿Cómo distinguimos un aparato de otro? El sistema los numerará y nosotros pondremos el número
correcto en el aparato, por supuesto. ¿Tipos de aparatos? Si, hemos tenido estos códigos por años.
TV significa Televisor, por supuesto, RA es para radio y MO es para horno de microondas. ¿Qué es
eso? No, cada aparato tiene sólo un tipo. También necesitamos una descripción para cada aparato.
Estos códigos no son suficientemente específicos…
¿Las estaciones de trabajo? Bueno, como puede ver, son grandes, y hemos pintado números al final
de cada una. Cuatro o cinco técnicos en una estación y tenemos veinte estaciones. Cada técnico se
asigna siempre a una sola…
Ejercicio 15
El usuario dice:
También tengo códigos para clasificar cada uno de estos dispositivos. PC es el código para
computadora personal, IM para impresora de matriz de punto, IL para impresora láser y MO para
modems. Cuatro tipos en total…
Ahora observemos las características de estos dispositivos: todos ellos tienen nombre. ¿Qué dice?
No, no tengo códigos para los nombres, y no los necesito. Si, ya sé que hay algunos nombres
duplicados, pero yo lo quiero así y, recordará que yo soy el que paga…
El ancho de banda debe registrarse para los modems y si soporta o no comandos Hayes, si o no
será suficiente en este caso. Para las impresoras de matriz de punto necesito saber el máximo de
caracteres por segundo (CPS) y el ancho en pulgadas. La resolución en puntos por pulgada es lo
que quiero mantener para cada impresora láser (DPI) y el número máximo de páginas por minuto
(PPM) también se requiere…
Para las PCs, necesito conocer el tipo, cantidad de memoria en megabytes, el tamaño de su disco
duro en gigabytes, el tamaño del monitor y la resolución en pixeles….
Ejercicio 16
El usuario dice:
Lo que hacemos aquí es probar la durabilidad y fuerza de los metales. Cada muestra es numerada
por el sistema, empezamos con la muestra 1 hace ya mucho tiempo, y tiene un nombre que puede o
no ser único. Las muestras son todas del mismo tamaño: tres pies de longitud, una pulgada de
diámetro…
Ahora, ¿dónde estaba?, Ah sí, una vez que se registra lo básico, la muestra se monta verticalmente
en un dispositivo y medimos la fuerza necesaria para doblarla en una cantidad específica hacia un
lado. Esta es la prueba de deflexión y la fuerza se registra en libras.
Se continúa aplicando presión hasta que la muestra se rompe. La fuerza nuevamente se registra en
libras, y la deflexión al momento de quebrarse se registra en pulgadas. No, esta no es la prueba de
deflexión, es la prueba de punto de quiebre…
Finalmente tomamos una pieza de la muestra rota – una pieza de tamaño estándar, por supuesto – y
la calentamos en el horno hasta que se funde. El resultado de esta prueba se registra en grados
centígrados. Puede registrarse algún comentario en este punto, describiendo cualquier separación
que ocurra durante el proceso, o si ardió en flama antes de fundirse, o cualquier cosa que el técnico
pueda decir…
¿Qué? Por supuesto que tenemos que tener un control de los técnicos, pero eso es fácil. Cada uno
tiene un número asignado por sistema y un nombre. Siempre se escribe el número de técnico en
cada prueba, ya sabe, con el número de muestra y el código de tipo de prueba. ¿Perdón? No, sólo
un técnico por prueba, pero las pruebas para una muestra dada pueden ser realizadas por diferentes
técnicos.
Ejercicio 15
El usuario dice:
Lo que hacemos aquí, es dividir el mundo en cuatro cuadrantes, cada uno consiste de una o más
áreas. Los cuadrantes tienen nombre y son numerados del 1 al 4, y las áreas tienen números únicos
en cada cuadrante. Las áreas en cada cuadrante son contiguas, por supuesto, y el cuadrante
coincide exactamente con los límites externos de las áreas. De todos modos, se mantiene un control
de los kilómetros cuadrados en cada área.
Ahora, las áreas se subdividen en dos o más zonas cada una. Las zonas tienen nombres y números
de zonas que son únicos en cada área…
Cada uno de nuestros agentes tiene un nombre y está asignado a una zona en particular. Los
agentes pueden moverse de una zona a otra, pero sólo nos interesa en su zona actual. Algunas
veces más de agente se asigna a la misma zona.
Ejercicio 15
Este es otro ejercicio involucrando dependencias. Desarrollar el modelo de datos completo para la
situación descrita a continuación.
Me parece muy complicado mantener el control de todas estas partes, ¿sabe? Quiero decir, cuando
alguien viene a la ventanilla y necesita un 47-22-C, necesito saber exactamente dónde encontrarlo…
Hace casi un año que le encargué al departamento de ingeniería que revisara que sus números de
arte coincidieran con la forma en que se mantienen en el almacén. ¡Qué batalla! Pero de cualquier
forma, gracias a eso ahora puedo decir exactamente dónde se encuentra la pieza 47-22-C porque el
47 significa pasillo 47, el 22 significa anaquel 22 y la C significa compartimiento C. ¡Buena idea! ¿No
cree?
El problema es que ahora tenemos que saber dónde se va a almacenar una parte antes de darle un
código, lo que significa que tenemos que saber cómo es y cuántas vamos a almacenar. Desearía no
tener que saber estas tonterías. Así que es muy complicado obtener el código de parte… algunas
veces almacenamos más piezas de las que originalmente se tenían planeadas y entonces la pieza
tiene dos números diferentes, y todo se vuelve un desastre…
Ahora los pasillos, anaqueles y compartimientos son fijos. Los hemos numerado y codificado hace
varios años y nunca cambian. Y Nunca ponemos más de un tipo de parte en un compartimiento, pero
como le decía, podemos tener la misma clase de parte en dos diferentes compartimientos…
¡Si! Olvidaba decirle. Este sistema no funciona si el que solicita la pieza sólo sabe el nombre de la
parte pero no su número.