Diseño conceptual de bases de datos
Índice
- Introducción
- Objetivos
- 1.Introducción al diseño conceptual
- 1.1.El diseño conceptual
- 1.1.1.Metodologías de diseño
- 1.1.2.Estrategias de diseño
- 1.2.El modelo ER
- 1.3.El lenguaje UML
- 1.1.El diseño conceptual
- 2.Elementos básicos de modelización
- 2.1.Tipos de entidades
- 2.2.Atributos
- 2.3.Claves
- 2.4.Tipos de relaciones
- 2.5.Tipos de entidades asociativas
- 2.6.Tipos de entidades débiles
- 2.7.Opciones de diseño
- 2.8.Criterios de asignación de nombres
- 2.9.Ejemplo completo
- 3.Elementos avanzados de modelización
- Resumen
- Glosario
- Bibliografía
Introducción
Objetivos
-
Conocer los fundamentos del diseño conceptual de bases de datos.
-
Entender los elementos básicos de modelización como mecanismo de representación conceptual de datos.
-
Estudiar los diagramas de clases UML como herramienta para representar modelos de datos.
-
Ser capaces de leer y entender diagramas de modelos conceptuales de bases de datos.
-
Aprender a modelizar, mediante diagramas UML, las necesidades de un sistema de información a partir de una descripción de los requisitos iniciales.
1.Introducción al diseño conceptual
1.1.El diseño conceptual
-
Expresividad: el modelo debe ser suficientemente expresivo para permitir representar los diferentes conceptos del mundo real y las asociaciones entre estos conceptos.
-
Simplicidad: el modelo debe ser simple. Ha de permitir a los usuarios de la base de datos entender los conceptos que se expresan.
-
Representación diagramática: el modelo debe utilizar una notación diagramática fácil de entender y útil para visualizar el esquema conceptual.
-
Formalidad: la representación del modelo debe ser precisa, formal y no puede presentar ambigüedades.
-
El uso del modelo conceptual permite a los diseñadores de bases de datos concentrarse en expresar las propiedades, las asociaciones y las restricciones de los datos sin preocuparse de los detalles de implementación y con independencia de las particularidades de los diferentes sistemas gestores de bases de datos (SGBD (1) ).
-
El esquema conceptual se convierte en un elemento de descripción estable del contenido de la base de datos.
-
Un modelo de alto nivel independiente de las tecnologías específicas de cada SGBD permite más expresividad y un carácter más general.
-
El modelo se puede utilizar como vehículo de comunicación entre los usuarios, los diseñadores y los analistas de la base de datos.
1.1.1.Metodologías de diseño
1.1.2.Estrategias de diseño
1.2.El modelo ER
1.3.El lenguaje UML
-
Diagramas estructurales: describen las relaciones estructurales o estáticas entre los diferentes componentes del sistema.
-
Diagramas de comportamiento: describen las relaciones de comportamiento o dinámicas entre los diferentes componentes del sistema.
2.Elementos básicos de modelización
2.1.Tipos de entidades
-
El concepto que hemos definido como entidad también puede ser referenciado por los términos objeto, instancia u ocurrencia.
-
El concepto que hemos definido como tipo de entidad también puede ser referenciado por los términos clase, entidad tipo o tipo.
2.2.Atributos
ID |
name |
surname |
birthDate |
phoneNumber |
|
---|---|---|---|---|---|
33941857B |
John |
Smith |
12/10/1987 |
936542798 |
johnsmith@ejemplo.com |
77854623Q |
Mary |
Jane |
17/02/1972 |
696275345 |
maryjane@ejemplo.com |
96725466Z |
Fred |
Sanchez |
07/09/2001 |
649785467 |
fredsanchez@ejemplo.com |
2.2.1.Representación de los atributos
visibilidad nombre [etiquetas] [: tipo] [multiplicidad] [= valor inicial]
-
Visibilidad: visibilidad del atributo (public, protected, package o private). Normalmente este concepto no se aplica al diseño conceptual de bases de datos.
-
Nombre: denominación del atributo.
-
Etiquetas: etiquetas opcionales para indicar ciertos conceptos relacionados con el atributo.
-
Tipo: tipo o dominio de los datos.
-
Multiplicidad: número de ocurrencias del atributo.
-
Valor inicial: valor por defecto.
2.2.2.Dominio de los atributos
2.2.3.Atributos compuestos y atributos atómicos
2.2.4.Atributos monovalor y atributos multivalor
-
Un número para indicar el número exacto de valores que debe tener el atributo.
-
El intervalo min..max para indicar el número mínimo y máximo de valores que puede tener el atributo.
-
El símbolo * para indicar que el atributo puede tener indefinidos valores (cero o más).
2.2.5.Atributos derivados
2.2.6.El valor NULL
2.3.Claves
2.4.Tipos de relaciones
-
El concepto que acabamos de definir como tipo de relación también puede ser referenciado por los términos interrelación, relación o asociación.
-
El concepto que acabamos de definir como relación también puede ser referenciado por los términos instancia u ocurrencia de la relación, interrelación o asociación.
-
Los tipos de relación casi siempre tienen una etiqueta de tipo de relación que indica el significado de la asociación entre los dos tipos de entidades. Esta etiqueta indica la acción entre los dos tipos de entidades, y suele ser un verbo. Para especificar mejor su significado, de manera opcional se puede indicar la dirección del tipo de relación. Esto facilita la lectura de la acción o de la relación que existe entre los dos tipos de entidad. En la figura 8 podemos leer que “una persona tiene un coche”. Aunque no es muy habitual, cuando esta relación es lo bastante evidente se puede considerar que no es necesario indicarlo explícitamente y se puede obviar la etiqueta o la dirección.
-
También se puede dar la situación en que sea necesario definir mejor el papel que tiene cada una de las entidades en la relación. En estos casos se puede definir una etiqueta en cada extremo del tipo de relación, que indica el papel que juega cada una de las entidades en la relación y que ayuda a explicar el significado de la relación. Estas etiquetas se denominan etiquetas de rol o nombres de rol. En términos generales no suelen ser necesarias y no siempre se utilizan, pero en algunos casos pueden ser útiles para definir el papel de las entidades en la relación. La figura 8 muestra los nombres de roles para los dos tipos de entidades que aparecen. Utilizando las etiquetas de rol, podemos leer que “una persona posee (owns) un coche” y, de manera inversa, que “un coche es propiedad (belongs to) de una persona”. Es necesario que todo tipo de relación tenga definidos los roles de los participantes o el nombre del tipo de relación.
-
Tipos de relaciones binarias: asociaciones en las que intervienen dos tipos de entidades.
-
Tipos de relaciones ternarias: asociaciones en las que intervienen tres tipos de entidades.
-
Tipos de relaciones n-arias: asociaciones en las que intervienen n tipos de entidades. A pesar de que los tipos de relaciones binarias y ternarias son un caso concreto de los tipos de relaciones n-arias, estos tipos se usan para denotar relaciones con un grado superior a tres.
2.4.1.Tipos de relaciones binarias
-
Un número para indicar el número exacto de entidades que pueden intervenir en la relación.
-
El intervalo min..max para indicar el número mínimo y máximo de entidades que pueden intervenir en la relación.
-
Lo etiqueta N o * para indicar que un número indefinido (cero o más) de entidades pueden participar en la relación.
-
Tipo de entidad con cardinalidad 1: un tipo de entidad conectada con cardinalidad 1 a una asociación expresa la obligatoriedad indicando una cardinalidad exactamente igual a 1..1, mientras que si es opcional en la asociación, se indica con la cardinalidad 0..1.
-
Tipo de entidad con cardinalidad N: un tipo de entidad conectada con cardinalidad N a una asociación expresa la obligatoriedad indicando una cardinalidad 1..*, mientras que si es opcional en la asociación, se indica con la cardinalidad 0..*.
-
La cardinalidad 1 es una manera abreviada de referirse a la cardinalidad 1..1.
-
La cardinalidad * es una manera abreviada de referirse a la cardinalidad 0..*.
2.4.2.Tipo de relaciones ternarias
-
Conectividad M:N:P o *..*..*.
-
Conectividad M:N:1 o *..*..1.
-
Conectividad M:1:1 o *..1..1.
-
Conectividad 1:1:1 o 1..1..1.
2.4.3.Tipos de relaciones n-arias
2.4.4.Tipos de relaciones reflexivas o recursivas
2.5.Tipos de entidades asociativas
2.6.Tipos de entidades débiles
2.7.Opciones de diseño
-
El proceso de diseño conceptual de una base de datos se puede enfocar como un proceso iterativo de refinamiento, donde se crea un primer diseño inicial y se va refinando de manera iterativa hasta conseguir el nivel de diseño deseado.
-
Es frecuente modelizar un concepto como un atributo en un primer momento, y en refinamientos posteriores convertirlo en un tipo de relación. Modelizar el atributo como una relación a un tipo de entidad nuevo o existente permite categorizar los valores de este concepto y, además, permite que se puedan añadir nuevos atributos relacionados con el tipo de entidad nuevo o existente, ahora o en el futuro.
-
También es habitual que un atributo existente en varios tipos de entidades sea convertido en un nuevo tipo de entidad. A continuación hay que establecer relaciones desde los tipos de entidades que contenían este atributo hacia el nuevo tipo de entidad.
-
También puede existir el refinamiento inverso. En este caso, se puede eliminar un tipo de entidad y representar el concepto como un atributo si solo afecta a un tipo de entidad (o a muy pocos).
2.8.Criterios de asignación de nombres
-
Etiquetar los tipos de relaciones utilizando nombres simples en singular, siempre que sea posible. Si es necesario, se pueden utilizar hasta dos o tres nombres. Hay que emplear la grafía Pascal para escribir el nombre de los tipos de entidades.
-
Etiquetar los atributos utilizando nombres simples en singular y evitando que aparezca el nombre del tipo de entidad. Si es necesario, se pueden utilizar hasta dos o tres nombres o la combinación de un nombre y uno o dos adjetivos. Hay que emplear la grafía Camel para escribir el nombre de los atributos.
-
En el caso de atributos booleanos se suele utilizar el nombre o nombres deseados precedidos de es (de la forma verbal es, o is en la versión inglesa) para dar el énfasis de valor booleano que responde que sí o que no ante una pregunta. Por ejemplo: esNegrita o isBold.
-
Etiquetar los tipos de relaciones utilizando verbos en tercera persona del singular. En caso de requerir etiquetas compuestas, se suele utilizar un verbo seguido de una preposición y otro verbo. Las etiquetas de los tipos de relaciones siguen la grafía Pascal.
2.9.Ejemplo completo
-
En el tipo de entidad ‘departamento’ (Department), el atributo ‘número de profesores’ (numberOfProfessors) es un atributo derivado, puesto que se calcula a partir del número de profesores que están vinculados a cada departamento.
-
Los tipos de entidad ‘departamento’ y ‘profesor’ (Professor) tienen dos tipos de relaciones, para indicar por un lado en qué departamento trabaja cada profesor, y por otro lado, para determinar qué profesor es el director de cada departamento. La conectividad de la primera asociación indica que un profesor debe pertenecer a un departamento y que los departamentos deben tener como mínimo un profesor. La segunda relación es un tipo de entidad asociativa y contiene el atributo ‘fecha de inicio’ (startDate) para indicar la fecha en la que el profesor empieza la tarea como jefe de departamento. Un profesor puede impartir cero, una o más de una asignatura, como indica la conectividad del tipo de relación con el tipo de entidad ‘asignatura’ (Subject).
-
El concepto prerrequisito de una asignatura se ha modelizado como un tipo de relación recursiva que asocia diferentes entidades de asignaturas. Tal como se desprende de la conectividad, una asignatura puede tener ninguno o múltiples prerrequisitos y ser a la vez prerrequisito de ninguna o de múltiples asignaturas.
-
El semestre se ha modelizado como un tipo de entidad (Semester).
-
El tipo de relación ternaria entre los tipos de entidad ‘asignatura’, ‘semestre’ y ‘estudiante’ (Student) determina la nota obtenida por cada estudiante como calificación de cada asignatura en la que está matriculado cada semestre. Tal como se expresaba en los requisitos, un estudiante puede estar matriculado de múltiples asignaturas en un semestre, y se puede matricular de la misma asignatura en varios semestres.
-
Según el modelo, un profesor imparte un conjunto de asignaturas, pero no se mantiene relación con cada uno de los semestres. Es decir, el tipo de relación ‘imparte’ (Teaches) indica el profesor que imparte una asignatura, pero no permite saber qué profesor la había impartido en semestres anteriores.
-
En los tipos de entidad ‘profesor’ y ‘estudiante’ se almacena la edad mediante un atributo numérico que contiene el valor para cada profesor o estudiante en un momento determinado. Esto implica que cada año debería de actualizarse la base de datos y sumar 1 a los valores de este atributo. Lógicamente, este modelo no es el adecuado y habría que almacenar la fecha de nacimiento de los profesores y los estudiantes y crear un atributo derivado que indique la edad (age) de los profesores o los estudiantes de manera automática.
3.Elementos avanzados de modelización
3.1.Generalización/especialización
-
Crear una taxonomía de tipos de entidades, definiendo un conjunto de entidades tipo específicas (subclases) a partir del tipo de entidad genérica (superclase).
-
Establecer atributos específicos adicionales a cada tipo de entidad específico (subclase).
-
Establecer tipos de relaciones adicionales entre los tipos de entidades específicos (subclases) y otros tipos de entidad.
3.1.1.Restricciones en la generalización/especialización
-
Disjunta (3) : una entidad solo puede pertenecer a una única subclase.
-
Solapada (4) : una entidad puede pertenecer a más de una subclase al mismo tiempo.
-
Total (5) : toda entidad de la superclase debe pertenecer a alguna de las subclases.
-
Parcial (6) : puede haber entidades de la superclase que no pertenezcan a ninguna de las subclases.
-
Disjunta y total
-
Disjunta y parcial
-
Solapada y total
-
Solapada y parcial
3.1.2.Herencia simple y múltiple
3.1.3.Clasificación múltiple
3.2.Agregación y composición
-
Cada componente puede estar presente en un único compuesto (la multiplicidad del tipo de entidad compuesta debe ser como máximo 1).
-
Si se elimina el elemento compuesto, hay que eliminar todos los componentes vinculados a este elemento (los componentes presentan dependencia de existencia hacia el elemento compuesto).
3.3.Restricciones de integridad
3.3.1.Restricciones en los tipos de entidad
3.3.2.Restricciones en los atributos
-
Restricciones de dominio: son las restricciones asociadas al conjunto de posibles valores legales que puede tomar un atributo. En este sentido, se puede especificar el tipo de datos que utilizará el atributo (cadena de texto, entero, real, booleano, etc.) y las restricciones adicionales específicas para cada tipo de datos (por ejemplo, la longitud en el caso de cadenas de texto o un intervalo válido en el caso de valores enteros).
-
Atributos derivados: son atributos que calculan el valor a partir de otros atributos y que, por lo tanto, implícitamente son atributos de sólo lectura desde el punto de vista del usuario o de la aplicación. No obstante, su valor puede cambiar si cambia el valor de los atributos de los que dependen.
-
‘Cambiable’ (changeable o unrestricted): es el valor por defecto. Indica que se permite cualquier cambio sobre el atributo.
-
‘Congelado’ (frozen o readOnly): indica que una vez que se ha asignado valor al atributo no se podrá modificar ni eliminar.
-
‘Solo-añadir’ (addOnly): indica que una vez que se ha asignado valor al atributo no se podrá modificar ni eliminar. Pero, en caso de ser un atributo multivalor, sí que se podrán asignar nuevos valores para este atributo.
-
‘Solo-eliminar’ (removeOnly): indica que la única operación permitida es eliminar el valor del atributo.
3.3.3.Restricciones en los tipos de relaciones
-
‘Cambiable’ (changeable o unrestricted): es el valor por defecto. Indica que se permite cualquier cambio sobre la asociación.
-
‘Congelado’ (frozen o readOnly): indica que una vez que la relación ha sido creada no se podrá modificar ni eliminar. Tampoco se podrán crear nuevas relaciones.
-
‘Solo-añadir’ (addOnly): indica que una vez que la relación ha sido creada no se podrá modificar ni eliminar. Pero sí que se podrán crear nuevas relaciones.
-
‘Solo-eliminar’ (removeOnly): indica que la única operación permitida es eliminar el valor de la relación.
3.3.4.Otras restricciones
3.4.Modelización de datos históricos
-
Añadiendo un atributo de tipo ‘fecha y hora’. Cada instancia indica el valor de tiempo en este atributo.
-
Añadiendo una relación con el tipo de entidad ‘fecha’ (Date), que contiene un atributo de tipo ‘fecha y hora’.
-
Si se quiere aplicar este criterio sobre un concepto que está modelizado como un tipo de entidad, se pueden añadir dos atributos de tipo fecha y hora en la entidad para indicar el inicio y el final del intervalo.
-
Si se quiere aplicar este criterio sobre un concepto que está modelizado como una relación, hay que añadir en la relación un tipo de entidad ‘fecha’ (Date) que determinará los tiempos inicial y final del intervalo.
ID |
name |
numberPlate |
starts |
ends |
---|---|---|---|---|
33941857B |
John |
8754-GFD |
2001-05-12 09:25 |
2001-05-12 17:36 |
33941857B |
John |
1258-CGC |
2001-05-17 11:13 |
-- |
15488574Q |
Mary |
8754-GFD |
2001-05-10 15:11 |
2001-05-10 19:47 |
15488574Q |
Mary |
1258-CGC |
2001-05-13 07:02 |
2001-05-14 14:41 |
15488574Q |
Mary |
1126-BMR |
2001-05-16 20:14 |
-- |
25486257F |
Fred |
1126-BMR |
2001-05-11 09:13 |
2001-05-11 18:56 |
3.5.Ejemplo completo
Resumen
Glosario
- atributo m
- Propiedad que interesa representar de un tipo de entidad.
- clase f
- Nombre que reciben los tipos de entidades en el modelo UML.
- conectividad f
- Expresión del tipo de correspondencia entre las entidades de una relación.
- diseño conceptual m
- Etapa del diseño de una base de datos que obtiene una estructura de la información de la futura base de datos independiente de la tecnología que se quiere emplear.
- diseño lógico m
- Etapa del diseño de una base de datos que parte del resultado del diseño conceptual y lo transforma de manera que se adapte al modelo de sistema gestor de bases de datos con el cual se desea implementar la base de datos.
- generalización/especialización f
- Construcción que permite reflejar que existe un tipo de entidad general, llamada superclase, que se puede especializar en diferentes tipos de entidades más específicas, llamadas subclases.
- grado de una relación m
- Número de entidades que asocia la relación.
- entidad f
- Objeto del mundo real que podemos distinguir del resto de objetos y del cual nos interesan algunas propiedades.
- lenguaje unificado de modelización m
- Lenguaje gráfico para modelizar, visualizar, especificar, construir y documentar sistemas
de software o de bases de datos.
sigla UML
en unified modeling language - modelo entidad-interrelación m
- Modelo de datos de alto nivel ampliamente utilizado para el diseño conceptual de las aplicaciones de bases de datos. El objetivo principal del modelo ER es permitir a los diseñadores reflejar en un modelo conceptual los requisitos del mundo real.
- sistema gestor de bases de datos m
- Tipo de software específico dedicado a servir de interfaz entre la base de datos,
el usuario y las aplicaciones que la utilizan.
sigla SGBD
en database management system (DBMS) - tipo de relación m
- Asociación entre entidades.
- tipo de entidad asociativa m
- Tipo de entidad resultante de considerar una relación entre entidades como una nueva entidad.
- tipo de entidad débil m
- Tipo de entidad cuyos atributos no la identifican completamente, sino que solo la identifican de manera parcial.
- tipo de relación recursiva m
- Asociación a la cual alguna entidad está asociada más de una vez.