En esta etapa se debe construir
un esquema de la información que se usa en la empresa, independientemente de
cualquier consideración física. A este esquema se le denomina esquema
conceptual. Al construir el esquema, los diseñadores descubren la semántica
(significado) de los datos de la empresa: encuentran entidades, atributos y
relaciones. El objetivo es comprender:
-
La perspectiva que cada
usuario tiene de los datos.
-
La naturaleza de los
datos, independientemente de su representación física
- El uso de los datos a través de las áreas
de aplicación.
El esquema conceptual se puede
utilizar para que el diseñador transmita a la empresa lo que ha entendido sobre
la información que ésta maneja. Para ello, ambas partes deben estar
familiarizadas con la notación utilizada en el esquema. La más popular es la
notación del modelo entidad-relación, que se describirá en el capítulo dedicado
al diseño conceptual.
El esquema conceptual se
construye utilizando la información que se encuentra en la especificación de los
requisitos de usuario. El diseño conceptual es completamente independiente de
los aspectos de implementación, como puede ser el SGBD que se vaya a usar, los
programas de aplicación, los lenguajes de programación, el hardware disponible o
cualquier otra consideración física. Durante todo el proceso de desarrollo del
esquema conceptual éste se prueba y se valida con los requisitos de los
usuarios. El esquema conceptual es una fuente de información para el diseño
lógico de la base de datos.
Metodología de diseño conceptual
|
El primer paso en el diseño de
una base de datos es la producción del esquema conceptual. Normalmente, se
construyen varios esquemas conceptuales, cada uno para representar las distintas
visiones que los usuarios tienen de la información. Cada una de estas visiones
suelen corresponder a las diferentes áreas funcionales de la empresa como, por
ejemplo, producción, ventas, recursos humanos, etc
Estas visiones de la
información, denominadas vistas,
se pueden identificar de varias formas. Una opción consiste en examinar los
diagramas de flujo de datos, que se pueden haber producido previamente, para
identificar cada una de las áreas funcionales. La otra opción consiste en
entrevistar a los usuarios, examinar los procedimientos, los informes y los
formularios, y también observar el funcionamiento de la empresa.
A los esquemas conceptuales
correspondientes a cada vista de usuario se les denomina esquemas
conceptuales locales. Cada uno de estos esquemas se compone de entidades,
relaciones, atributos, dominios de atributos e identificadores. El esquema
conceptual también tendrá una documentación, que se irá produciendo durante su
desarrollo. Las tareas a realizar en el diseño conceptual son las siguientes:
-
Identificar las entidades
-
Identificar las relaciones
-
Identificar los atributos y asociarlos a entidades y relaciones
-
Determinar los dominios de los atributos
-
Determinar los identificadores
-
Determinar las jerarquías de generalización (si las hay)
-
Dibujar el diagrama entidad-relación.
-
Revisar el esquema conceptual local con el usuario
1.
Identificar las entidades |
En primer lugar hay que definir
los principales objetos que interesan al usuario. Estos objetos serán las
entidades. Una forma de identificar las entidades es examinar las
especificaciones de requisitos de usuario. En estas especificaciones se buscan
los nombres o los sintagmas nominales que se mencionan (por ejemplo: número de
empleado, nombre de empleado, número de inmueble, dirección del inmueble,
alquiler, número de habitaciones).
También se buscan objetos importantes como
personas, lugares o conceptos de interés, excluyendo aquellos nombres que sólo
son propiedades de otros objetos. Por ejemplo, se pueden agrupar el número de
empleado y el nombre de empleado en una entidad denominada empleado,
y agrupar número de inmueble, dirección del inmueble, alquiler y número de
habitaciones en otra entidad denominada inmueble
Otra forma de identificar las
entidades es buscar aquellos objetos que existen por sí mismos. Por ejemplo, empleado es
una entidad porque los empleados existen, sepamos o no sus nombres, direcciones
y teléfonos. Siempre que sea posible, el usuario debe colaborar en la
identificación de las entidades.
A veces, es difícil identificar
las entidades por la forma en que aparecen en las especificaciones de
requisitos. Los usuarios, a veces, hablan utilizando ejemplos o analogías. En
lugar de hablar de empleados en general, hablan de personas concretas, o bien,
hablan de los puestos que ocupan esas personas
Para liarlo aún más, los
usuarios usan, muchas veces, sinónimos y homónimos. Dos palabras son sinónimos
cuando tienen el mismo significado. Los homónimos ocurren cuando la misma
palabra puede tener distintos significados dependiendo del contexto.
No siempre es obvio saber si un
objeto es una entidad, una relación o un atributo. Por ejemplo ¿cómo se podría
clasificar matrimonio? Pues de
cualquiera de las tres formas. El análisis es subjetivo, por lo que distintos
diseñadores pueden hacer distintas interpretaciones, aunque todas igualmente
válidas.
Todo depende de la opinión y la experiencia de cada uno. Los
diseñadores de bases de datos deben tener una visión selectiva y clasificar las
cosas que observan dentro del contexto de la empresa u organización. A partir de
unas especificaciones de usuario es posible que no se pueda deducir un conjunto
único de entidades, pero después de varias iteraciones del proceso de análisis,
se llegará a obtener un conjunto de entidades que sean adecuadas para el sistema
que se ha de construir.
Conforme se van identificando
las entidades, se les dan nombres que tengan un significado y que sean obvias
para el usuario. Los nombres de las entidades y sus descripciones se anotan en
el diccionario de datos. Cuando sea posible, se debe anotar también el número
aproximado de ocurrencias de cada entidad. Si una entidad se conoce por varios
nombres, éstos se deben anotar en el diccionario de datos como alias o
sinónimos.
Identificar las
relaciones |
Una vez definidas las entidades,
se deben definir las relaciones existentes entre ellas. Del mismo modo que para
identificar las entidades se buscaban nombres en las especificaciones de
requisitos, para identificar las relaciones se suelen buscar las expresiones
verbales (por ejemplo: oficina tiene empleados, empleado gestiona inmueble,
cliente visita inmueble). Si las especificaciones de requisitos reflejan estas
relaciones es porque son importantes para la empresa y, por lo tanto, se deben
reflejar en el esquema conceptual.
Pero sólo interesan las relaciones
que son necesarias. En el ejemplo anterior, se han identificado las relaciones
empleado gestiona inmueble y cliente visita inmueble. Se podría
pensar en incluir una relación entre empleado y cliente: empleado atiende a
cliente, pero observando las especificaciones de requisitos no parece que
haya interés en modelar tal relación.
La mayoría de las relaciones son
binarias (entre dos entidades), pero no hay que olvidar que también puede haber
relaciones en las que participen más de dos entidades, así como relaciones
recursivas.
Es muy importante repasar las
especificaciones para comprobar que todas las relaciones, explícitas o
implícitas, se han encontrado. Si se tienen pocas entidades, se puede comprobar
por parejas si hay alguna relación entre ellas. De todos modos, las relaciones
que no se identifican ahora se suelen encontrar cuando se valida el esquema con
las transacciones que debe soportar.
Una vez identificadas todas las
relaciones, hay que determinar la cardinalidad mínima y máxima con la que
participa cada entidad en cada una de ellas. De este modo, el esquema representa
de un modo más explícito la semántica de las relaciones. La cardinalidad es un
tipo de restricción que se utiliza para comprobar y mantener la calidad de los
datos. Estas restricciones son aserciones sobre las entidades que se pueden
aplicar cuando se actualiza la base de datos para determinar si las
actualizaciones violan o no las reglas establecidas sobre la semántica de los
datos.
Conforme se van
identificando las relaciones, se les van asignando nombres que tengan
significado para el usuario. En el diccionario de datos se anotan los nombres de
las relaciones, su descripción y las cardinalidades con las que participan las
entidades en ellas.
3.
Identificar los atributos y asociarlos a entidades y relaciones
|
Al igual que con las entidades,
se buscan nombres en las especificaciones de requisitos. Son atributos los
nombres que identifican propiedades, cualidades, identificadores o
características de entidades o relaciones.
Lo más sencillo es preguntarse,
para cada entidad y cada relación, ¿qué información se quiere saber de ...? La
respuesta a esta pregunta se debe encontrar en las especificaciones de
requisitos. Pero, en ocasiones, será necesario preguntar a los usuarios para que
aclaren los requisitos. Desgraciadamente, los usuarios pueden dar respuestas a
esta pregunta que también contengan otros conceptos, por lo que hay que
considerar sus respuestas con mucho cuidado.
Al identificar los atributos,
hay que tener en cuenta si son simples o compuestos. Por ejemplo, el atributo dirección puede
ser simple, teniendo la dirección completa como un solo valor: `San Rafael 45,
Punta Alta'; o puede ser un atributo compuesto, formado por la calle(`San
Rafael'), el número (`45')
y la población (`Punta
Alta'). El escoger entre atributo simple o compuesto depende de los requisitos
del usuario. Si el usuario no necesita acceder a cada uno de los componentes de
la dirección por separado, se puede representar como un atributo simple. Pero si
el usuario quiere acceder a los componentes de forma individual, entonces se
debe representar como un atributo compuesto.
También se deben identificar
los atributos derivados o calculados, que son aquellos cuyo valor se puede
calcular a partir de los valores de otros atributos. Por ejemplo, el número de
empleados de cada oficina, la edad de los empleados o el número de inmuebles que
gestiona cada empleado. Algunos diseñadores no representan los atributos
derivados en los esquemas conceptuales. Si se hace, se debe indicar claramente
que el atributo es derivado y a partir de qué atributos se obtiene su valor.
Donde hay que considerar los atributos derivados es en el diseño físico
Cuando se están identificando
los atributos, se puede descubrir alguna entidad que no se ha identificado
previamente, por lo que hay que volver al principio introduciendo esta entidad y
viendo si se relaciona con otras entidades
Es muy útil elaborar una lista
de atributos e ir eliminándolos de la lista conforme se vayan asociando a una
entidad o relación. De este modo, uno se puede asegurar de que cada atributo se
asocia a una sola entidad o relación, y que cuando la lista se ha acabado, se
han asociado todos los atributos.
Hay que tener mucho cuidado
cuando parece que un mismo atributo se debe asociar a varias entidades. Esto
puede ser por una de las siguientes causas:
-
Se han identificado varias
entidades, como director, supervisor y administrativo, cuando, de hecho,
pueden representarse como una sola entidad denominada empleado.
En este caso, se puede escoger entre introducir una jerarquía de
generalización, o dejar las entidades que representan cada uno de los
puestos de empleado
-
Se ha identificado una
relación entre entidades. En este caso, se debe asociar el atributo a una
sola de las entidades y hay que asegurarse de que la relación ya se había
identificado previamente. Si no es así, se debe actualizar la documentación
para recoger la nueva relación.
Conforme se van identificando
los atributos, se les asignan nombres que tengan significado para el usuario. De
cada atributo se debe anotar la siguiente información:
-
Nombre y descripción del atributo.
-
Alias o sinónimos por los que se conoce al
atributo.
-
Tipo de dato y longitud
-
Valores por defecto del atributo (si se
especifican).
-
Si el atributo siempre va a tener un valor (si
admite o no nulos)
-
Si el atributo es compuesto y, en su caso, qué
atributos simples lo forman.
-
Si el atributo es derivado y, en su caso, cómo
se calcula su valor
-
Si el atributo es multievaluado.
4. Determinar los dominios de
los atributos |
El dominio de un atributo es el conjunto de
valores que puede tomar el atributo. Por ejemplo el dominio de los números de
oficina son las tiras de hasta tres caracteres en donde el primero es una letra
y el siguiente o los dos siguientes son dígitos en el rango de 1 a 99; el
dominio de los números de teléfono y los números de fax son las tiras de 9
dígitos.
Un esquema conceptual está completo si incluye los
dominios de cada atributo: los valores permitidos para cada atributo, su tamaño
y su formato. También se puede incluir información adicional sobre los dominios
como, por ejemplo, las operaciones que se pueden realizar sobre cada atributo,
qué atributos pueden compararse entre sí o qué atributos pueden combinarse con
otros. Aunque sería muy interesante que el sistema final respetara todas estas
indicaciones sobre los dominios, esto es todavía una línea abierta de
investigación
Toda la información sobre los dominios se debe
anotar también en el diccionario de datos.
5. Determinar los
identificadores |
Cada entidad tiene al menos un identificador. En
este paso, se trata de encontrar todos los identificadores de cada una de las
entidades. Los identificadores pueden ser simples o compuestos. De cada entidad
se escogerá uno de los identificadores como clave primaria en la fase del diseño
lógico.
Cuando se determinan los identificadores es fácil
darse cuenta de si una entidad es fuerte o débil. Si una entidad tiene al menos
un identificador, es fuerte (otras
denominaciones son padre, propietaria o dominante). Si una entidad no
tiene atributos que le sirvan de identificador, es débil (otras
denominaciones son hijo, dependiente o subordinada).
Todos los identificadores de las entidades se
deben anotar en el diccionario de datos.
6. Determinar las jerarquías de
generalización |
En este paso hay que observar las entidades que se
han identificado hasta el momento. Hay que ver si es necesario reflejar las
diferencias entre distintas ocurrencias de una entidad, con lo que surgirán
nuevas subentidades de esta entidad genérica; o bien, si hay entidades que
tienen características en común y que realmente son subentidades de una nueva
entidad genérica.
En cada jerarquía hay que determinar si es total o
parcial y exclusiva o superpuesta.
7. Dibujar el diagrama
entidad-relación |
Una vez identificados todos los conceptos, se
puede dibujar el diagrama entidad-relación correspondiente a una de las
vistas de los usuarios. Se obtiene así un esquema conceptual local
8. Revisar el esquema
conceptual local con el usuario |
Antes de dar por finalizada la fase del diseño
conceptual, se debe revisar el esquema conceptual local con el usuario. Este
esquema está formado por el diagrama entidad-relación y toda la documentación
que describe el esquema. Si se encuentra alguna anomalía, hay que corregirla
haciendo los cambios oportunos, por lo que posiblemente haya que repetir alguno
de los pasos anteriores. Este proceso debe repetirse hasta que se esté seguro de
que el esquema conceptual es una fiel representación de la parte de la empresa
que se está tratando de modelar.
|