Bases de Datos Uml
Bases de Datos Uml
Bases de Datos Uml
de bases de datos en UML
Dogram Code
https://dogramcode.com/bases-de-datos
Visita la Biblioteca Onlice Gratis! +300 libros PDF
https://dogramcode.com/biblioteca
https://dogramcode.com/bases-de-datos
Diseño
conceptual
de
bases
de
datos
en
UML
Jordi
Casas
Roma
Jordi
Conesa
i
Caralt
https://dogramcode.com/bases-de-datos
Diseño
de
la
colección:
Editorial
UOC
Primera
edición
en
lengua
castellana:
octubre
de
2013
Primera
edición
en
formato
digital:
febrero
de
2014
©
Jordi
Casas
Roma
y
Jordi
Conesa
i
Caralt,
del
texto.
©
Imagen
de
la
cubierta:
Istockphoto
©
Editorial
UOC,
de
esta
edición
Gran
Via
de
les
Corts
Catalanes,
872,
3a
Planta
-
08018
Barcelona
www.editorialuoc.com
Realización
editorial:
Sònia
Poch
Masfarré
ISBN:
978-84-9064-122-4
Ninguna
parte
de
esta
publicación,
incluyendo
el
diseño
general
y
el
de
la
cubierta,
puede
ser
copiada,
reproducida,
almacenada
o
transmitida
de
ningún
modo
ni
a
través
de
ningún
medio,
ya
sea
electrónico,
químico,
mecánico,
óptico,
de
grabación,
de
fotocopia
o
por
otros
métodos
sin
la
previa
autorización
por
escrito
de
los
titulares
del
copyright.
https://dogramcode.com/bases-de-datos
Autores
Jordi
Casas
Roma
Licenciado
en
Ingeniería
Informática
por
la
Universitat
Autònoma
de
Barcelona
en
2002,
Máster
en
Inteligencia
Artificial
Avanzada
por
la
Universidad
Nacional
de
Educación
a
Distancia
en
2011
y
actualmente
finalizando
sus
estudios
de
doctorado
sobre
privacidad
en
redes
en
la
Universitat
Autònoma
de
Barcelona.
Desde
2009
ejerce
como
profesor
en
los
Estudios
de
Informática,
Multimedia
y
Telecomunicación
de
la
Universitat
Oberta
de
Catalunya.
Sus
intereses
de
investigación
incluyen
la
privacidad,
la
minería
de
datos
y
la
teoría
de
grafos.
Desde
2010
pertenece
al
grupo
de
investigación
KISON
(K-ryptography
and
Information
Security
for
Open
Networks).
Jordi
Conesa
i
Caralt
Doctor
en
Informática
por
la
Universitat
Politècnica
de
Catalunya
desde
2008,
donde
realizó
una
tesis
doctoral
relacionada
con
modelado
conceptual.
Desde
el
2007
es
profesor
de
la
Universitat
Oberta
de
Catalunya.
Antes
de
eso
fue
profesor
asociado
del
área
de
bases
de
datos
de
la
Universitat
de
Girona.
Actualmente
ejerce
como
profesor
en
las
áreas
de
bases
de
datos
y
de
ingeniería
del
software.
Sus
intereses
de
investigación
se
enfocan
en
el
uso
del
modelado
conceptual,
las
ontologías
y
diferentes
técnicas
semánticas
para
crear
aplicaciones
que
se
comporten
de
manera
más
“inteligente”.
Profesionalmente,
antes
de
su
vida
laboral
en
la
universidad,
trabajó
como
programador,
analista
y
jefe
de
proyectos
de
aplicaciones
web.
https://dogramcode.com/bases-de-datos
https://dogramcode.com/bases-de-datos
A
mi
padre,
por
iniciarme
en
el
camino
que
me
ha
traído
hasta
aquí.
Jordi
Casas
Roma
Para
ti
Neus,
por
todos
los
momentos
que
este
y
otros
proyectos
nos
ha
robado.
Jordi
Conesa
i
Caralt
https://dogramcode.com/bases-de-datos
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
9
Índice
Índice
Prólogo......................................................................... 13
Introducción............................................................... 15
Capítulo II
Diseño
conceptual
de
bases
de
datos ................... 41
1.
Lenguajes
de
modelado
conceptual
.......................... 43
1.1.
El
modelo
ER
..................................................... 44
1.2.
El
lenguaje
UML
............................................... 45
2.
Metodologías
y
estrategias
de
diseño
conceptual
..... 49
2.1.
Metodologías
de
diseño
..................................... 50
2.2.
Estrategias
de
diseño
.......................................... 51
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
10
Diseño
conceptual
de
bases
de
datos
en
UML
Capítulo
III.
Elementos
básicos
de
modelado ... 53
1.
Tipos
de
entidad
....................................................... 54
2.
Atributos
................................................................... 57
2.1.
Representación
de
los
atributos......................... 59
2.2.
Dominio
de
los
atributos
................................... 61
2.3.
Atributos
compuestos
y
atómicos
..................... 62
2.4.
Atributos
monovalor
y
multivalor
.................... 63
2.5.
Atributos
derivados
............................................ 64
2.6.
Atributos
opcionales
.......................................... 65
2.7.
Atributos
de
clave
.............................................. 66
3.
Tipos
de
relación
...................................................... 69
3.1.
Tipos
de
relación vs. atributos
........................... 73
3.2.
Tipos
de
relación
binarias
.................................. 75
3.3.
Tipos
de
relación
ternarias
................................ 81
3.4.
Tipos
de
relación
n-arias.................................... 85
3.5.
Tipos
de
relación
reflexivas
o
recursivas
........... 86
3.6.
Tipos
de
entidad
asociativas
.............................. 88
4.
Tipos
de
entidad
débiles
........................................... 93
5.
Opciones
de
diseño
.................................................. 96
6.
Criterios
de
asignación
de
nombres
.......................... 98
7.
Ejemplo
completo
..................................................... 101
Capítulo
IV.
Elementos
avanzados
de
modelado 107
1.
Generalización/especialización
................................ 107
1.1.
¿Cómo
afecta
la
jerarquía
de
clases
a
las
instan-
cias?
...................................................................... 112
1.2.
Factores
a
tener
en
cuenta
en
la
creación
de
jerarquías
de
clases
................................................... 113
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
11
Índice
1.3.
Restricciones
en
la
generalización/especialización
117
1.4.
Herencia
simple
y
múltiple
............................... 122
1.5.
Clasificación
múltiple
........................................ 125
2.
Agregación
y
composición
....................................... 126
2.1.
Agregación
......................................................... 127
2.2.
Composición
...................................................... 128
3.
Restricciones
de
integridad
....................................... 129
3.1.
Restricciones
en
los
tipos
de
entidad
................ 130
3.2.
Restricciones
en
los
atributos
............................ 131
3.3.
Restricciones
en
los
tipos
de
relación................ 132
3.4.
Otras
restricciones.............................................. 137
4.
Modelado
de
datos
históricos
................................... 138
5.
Ejemplo
completo...................................................... 141
Bibliografía................................................................. 151
https://dogramcode.com/bases-de-datos
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
13
Prólogo
Prólogo
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
14
Diseño
conceptual
de
bases
de
datos
en
UML
aplicarse
fácilmente
a
otros
lenguajes
de
modelado,
como
por
ejemplo
el
modelo
Entidad-Relación.
En
la
primera
parte
del
libro
el
lector
verá,
de
forma
breve,
las
cinco
etapas
que
integran
el
proceso
de
diseño
de
una
base
de
datos,
especificando
de
forma
clara
los
objeti-
vos
de
cada
una
de
ellas.
La
segunda
parte
del
libro
explica
claramente
qué
es
un
esquema
conceptual,
el
rol
que
tiene
en
el
diseño
de
bases
de
datos,
y
los
lenguajes
de
modela-
do
conceptual
más
usados
actualmente.
Posteriormente,
el
lector
aprenderá
los
diferentes
elementos
de
modelado
que
se
utilizan
en
la
modelización
conceptual
y
cómo
usarlos
para
realizar
esquemas
conceptuales
de
calidad.
Estos
son
esquemas
de
alto
nivel
e
independientes
de
la
tecnología
de
implementación
que
representan
la
información
que
se
va
a
almacenar
en
la
base
de
datos.
El
libro
utiliza
más
de
medio
centenar
de
ejemplos
para
facilitar
la
comprensión
de
los
conceptos
explicados.
Versiones
comentadas
de
los
ejemplos
pueden
encontrarse
en
la
wiki
del
libro
(http://cv.uoc.edu/
webapps/xwiki/wiki/bookdcbduml/).
Como
conclusión,
creemos
que
este
libro
es
una
buena
herramienta
para
aprender
y
practicar
la
creación
de
esque-
mas
conceptuales
de
bases
de
datos.
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
15
Introducción
Introducción
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
16
Diseño
conceptual
de
bases
de
datos
en
UML
base
de
datos
la
manejará
y
qué
uso
se
realizará
del
sistema.
Finalmente,
la
última
etapa
será
la
creación
de
la
base
de
datos
y
su
optimización.
A
continuación,
la
segunda
parte
del
libro
se
centra
con
más
detalle
en
la
etapa
del
diseño
conceptual.
Este
texto
se
centrará
en
el
diseño
conceptual
de
bases
de
datos
emplean-
do
el
lenguaje
UML.
Este
proceso
permitirá
obtener
un
esquema
conceptual
independiente
de
la
tecnología
que
se
utilizará
en
las
etapas
posteriores.
Se
usará
un
ejemplo
de
envergadura
para
ejemplificar
todos
los
conceptos
que
se
vayan
explicando
en
el
libro.
Al
final
del
libro,
el
lector
sabrá
qué
es
el
diseño
concep-
tual
de
una
base
de
datos,
cuál
es
su
lugar
dentro
de
la
crea-
ción
de
la
base
de
datos
y
cómo
crear
un
esquema
conceptual
de
base
de
datos
de
un
problema
concreto.
Las
otras
fases
del
diseño
de
base
de
datos
(diseño
lógico,
físico,
implementa-
ción
y
optimización)
quedan
fuera
del
alcance
de
este
libro.
Somos
conscientes
de
que
la
mejor
manera
de
aprender
a
diseñar
bases
de
datos
es
practicando.
Por
ese
motivo,
hemos
creado
una
versión
comentada
de
algunos
de
los
ejemplos
del
libro
en
formato
vídeo.
Animamos
al
lector
a
consultar
dichos
vídeos
para
poder
clarificar
conceptos
o
aprender
paso
a
paso
cómo
diseñar
esquemas
conceptuales.
Los
vídeos
se
encuentran
en
la
wiki
del
libro:
http://cv.uoc.edu/webapps/xwiki/wiki/bookdcbduml/
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
17
Introducción
al
diseño
de
bases
de
datos
Capítulo
I
Introducción
al
diseño
de
bases
de
datos
1. Introducción
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
18
Diseño
conceptual
de
bases
de
datos
en
UML
utilizadas
en
el
diseño
de
bases
de
datos
de
cualquier
tipo
(orientadas
a
objetos,
relacionales
orientadas
a
objetos,
etc.).
2. Proceso de diseño de una base de datos
El
proceso
de
diseño
de
bases
de
datos
consiste
en
definir
la
estructura
lógica
y
física
de
una
o
más
bases
de
datos
para
responder
a
las
necesidades
de
los
usuarios
con
respecto
a
la
información
que
necesita
un
sistema
de
información.
Mediante
un
proceso
de
diseño
de
bases
de
datos,
se
defi-
ne
qué
información
es
necesaria
para
un
sistema
de
informa-
ción
y
cómo
se
relaciona
esta
información
entre
sí.
Aparte
de
definir
la
información
necesaria,
también
se
debe
tener
en
cuenta
cómo
almacenar
dicha
información
para
que
los
sistemas
de
información
puedan
funcionar
eficientemente.
Todas
estas
tareas
forman
parte
del
proceso
de
diseño
de
bases
de
datos.
Para
poder
tomar
estas
decisiones
de
la
mejor
manera,
hay
que
tener
en
cuenta
las
necesidades
de
informa-
ción
de
los
usuarios
en
relación
con
un
conjunto
concreto
de
aplicaciones.
Por
ejemplo,
supongamos
que
se
quiere
crear
una
base
de
datos
para
dar
soporte
al
proceso
de
extracción
de
dinero
desde
cajeros
automáticos
para
un
determinado
banco.
Las
primeras
etapas
del
diseño
de
base
de
datos
se
encargarán
de
garantizar
que
la
base
de
datos
contenga
la
información
rele-
vante:
sobre
las
tarjetas
de
crédito,
sus
cuentas
enlazadas
y
el
saldo
de
estas.
Las
últimas
etapas
del
diseño
de
base
de
datos
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
19
Introducción
al
diseño
de
bases
de
datos
permitirán
implementarlas
de
forma
que
puedan
responder
a
la
pregunta
de
si
una
cuenta
tiene
saldo
suficiente
en
menos
de
2
segundos,
con
independencia
de
que
haya
millones
de
cuentas
en
el
banco.
Por
lo
tanto,
el
diseño
de
una
base
de
datos
es
el
proceso
en
el
que
se
define
la
estructura
de
los
datos
que
debe
tener
la
base
de
datos
de
un
sistema
de
información
determinado
y
cómo
se
deben
almacenar
y
gestionar
estos
datos
para
permi-
tir
una
explotación
eficiente
de
los
mismos
por
los
sistemas
de
información.
1.
Dividir
para
vencer:
La
estrategia
de
«divide
y
vencerás»
propone
resol-
ver
un
problema
complejo
mediante
la
subdivisión
en
un
conjunto
de
problemas
más
sencillos
donde
la
resolución
de
los
diferentes
subpro-
blemas
implica
solucionar
el
problema
inicial.
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
20
Diseño
conceptual
de
bases
de
datos
en
UML
conceptual.
El
esquema
conceptual
es
una
especificación
grá-
fica
de
los
datos
necesarios
para
un
sistema
de
información
y
las
restricciones
asociadas
a
dichos
datos.
Hasta
esta
etapa
del
diseño
de
bases
de
datos
todavía
no
ha
sido
necesario
escoger
el
tipo
de
base
de
datos
(relacional,
orientada
a
objetos,
documental,
etc.)
ni
el
sistema
gestor
de
bases
de
datos
(SGBD)2 que
se
utilizará
o
el
lenguaje
concreto
con
el
que
se
implementará
la
base
de
datos.
Por
tanto,
el
trabajo
realizado
hasta
este
punto
será
aprovechable
sea
cual
sea
el
tipo
de
base
de
datos
que
se
quiera
crear.
En
el
momento
en
el
que
se
inicia
la
tercera
etapa
del
proceso
de
diseño,
el
diseño
lógico,
hay
que
determinar
el
tipo
de
base
de
datos3 que
se
utilizará.
Algunos
ejemplos
de
tipos
de
bases
de
datos
que
se
podrían
tener
en
cuenta
son
los
siguientes:
Relacional,
Orientada
a
Objetos,
Object-
Relational,
NoSQL,
Geográfica,
XML
y
Multidimensional.
Es
importante
destacar
que
en
este
paso
NO
se
está
escogiendo
un
producto
de
base
de
datos
concreto,
como
pueden
ser
Oracle,
Sql
Server,
MySQL,
PostgreSQL,
VoldDB
o
MariaDB,
sino
un
tipo
de
base
de
datos.
En
esta
etapa
el
esquema
con-
ceptual
se
convierte
en
un
esquema
lógico
adecuado
al
tipo
de
bases
de
datos
que
se
pretende
usar.
En
este
punto,
y
antes
de
iniciar
la
etapa
de
diseño
físico,
hay
que
elegir
un
SGBD
concreto
sobre
el
que
se
pretende
implementar
la
base
de
datos.
La
etapa
de
diseño
físico
adapta
el
esquema
lógico
a
las
necesidades
específicas
de
un
SGBD
concreto
y,
posteriormente,
ajusta
algunos
pará-
metros
para
el
correcto
funcionamiento
de
la
base
de
datos.
Por
base
de
datos
concreta o
SGDB
concreto entendemos
una
aplicación
concreta
de
bases
de
datos.
En
el
caso
de
bases
de
datos
relacionales,
ejemplos
de
SGBD
concretos
son
Oracle
Database,
Mysql,
SQL
Server
o
IBM
Informix,
entre
otros.
También
se
deberá
tener
en
cuenta
la
arquitectura
hard-
ware
que
dará
soporte
a
la
base
de
datos
y
el
uso
esperado
de
la
base
de
datos,
ya
que
no
es
lo
mismo
implementar
una
base
de
datos
en
un
ordenador
personal
que
en
un
cloud de
ordenadores
con
discos
RAID,
ni
crear
una
base
de
datos
de
escritorio
que
una
base
de
datos
multiusuario
con
acceso
7x24.
Finalmente,
la
última
etapa
es
la
implementación
y
opti-
mización
de
la
base
de
datos.
Esta
etapa
permite
cargar
los
datos
y
posteriormente
ajustar
algunos
parámetros
del
mode-
lo
físico
para
optimizar
el
rendimiento
de
la
base
de
datos.
Estas
etapas
de
diseño
no
hay
que
seguirlas
estrictamente-
de
manera
secuencial4,
y
en
muchos
casos
es
habitual
rehacer
el
diseño
de
la
etapa
anterior
a
partir
de
necesidades
detec-
tadas
en
fases
posteriores.
Estos
bucles
de
retroalimentación
son
habituales
y
permiten
afinar
los
diseños
de
las
distintas
etapas
de
una
manera
iterativa.
4.
De
hecho,
según
algunos
autores,
la
frontera
entre
el
diseño
físico
y
la
implementación
y
optimización
es
difusa
e
incluso
inexistente.
©
Editorial
UOC
23
Introducción
al
diseño
de
bases
de
datos
El
proceso
que
muestra
la
figura
1
se
basa
en
el
mode-
lo
de
diseño
orientado
a
datos.
Este
modelo
se
centra
en
el
diseño
de
los
contenedores
de
la
información
y
en
la
estructura
de
la
base
de
datos.
Paralelamente
a
este
mode-
lo
existe
el
modelo
de
diseño
orientado
a
procesos,
que
se
centra
en
las
aplicaciones
de
bases
de
datos
para
determi-
nar
los
datos
y
el
uso
que
de
estas
hacen
las
aplicaciones.
Tradicionalmente,
el
diseño
de
aplicaciones
se
ha
basado
en
este
segundo
modelo,
pero
cada
vez
resulta
más
claro
que
ambas
actividades
son
paralelas
y
que
están
estrechamente
interrelacionadas.
Las
herramientas
de
diseño
de
bases
de
datos
y
de
aplicaciones
se
combinan
cada
vez
con
mayor
frecuencia.
3. Fases del diseño de una base de datos
A
continuación
veremos
con
algo
más
de
detalle
las
fases
que
forman
el
proceso
de
diseño
de
una
base
de
datos.
3.1. Fase 1. Recogida y análisis de requisitos
La
primera
fase
en
el
diseño
de
una
base
de
datos
consiste
en
conocer
y
analizar
con
detalle
las
expectativas,
las
necesida-
des
y
los
objetivos
de
los
futuros
usuarios
de
la
base
de
datos.
Este
proceso
se
denomina
recogida
y
análisis
de
requisitos.
©
Editorial
UOC
24
Diseño
conceptual
de
bases
de
datos
en
UML
3.1.1. Recogida de requisitos
5.
Por
volumen
de
los
datos
entendemos
el
número
de
registros
que
ten-
drá
cada
concepto
almacenado
en
la
base
de
datos.
Un
ejemplo
podría
ser
«se
estima
que
la
base
de
datos
contendrá
un
millón
de
clientes,
dos
millones
de
cuentas
corrientes
y
un
millón
y
medio
de
tarjetas
de
crédito».
©
Editorial
UOC
26
Diseño
conceptual
de
bases
de
datos
en
UML
3.1.2. Estructuración y refinamiento de los requisitos
3.1.3. Formalización de los requisitos
6.
JAD
es
la
sigla
de
la
expresión
inglesa
joint
application
design.
7.
OOA
es
la
sigla
de
la
expresión
inglesa
object
oriented
analysis.
8.
DFD
es
la
sigla
de
la
expresión
inglesa
data
flow
diagrams.
9.
i*
es
un
lenguaje
de
modelado
de
requisitos.
Se
puede
encontrar
más
información
de
i*
en
http://www.cs.toronto.edu/km/istar/
10.
La
notación
Z
es
un
lenguaje
formal
utilizado
en
ingeniería
del
soft-
ware.
©
Editorial
UOC
27
Introducción
al
diseño
de
bases
de
datos
3.2. Fase 2. Diseño conceptual
En
esta
fase
se
parte
de
la
recogida
y
el
análisis
de
requisi-
tos
obtenidos
en
la
fase
anterior
y
tiene
como
objetivo
dise-
ñar
un
esquema
conceptual
de
la
base
de
datos
que
sea
con-
sistente
con
los
requisitos,
las
especificaciones
y
las
restriccio-
nes
impuestas
por
la
problemática
que
hay
que
resolver.
Eso
quiere
decir
que
represente
la
información
necesaria
para
la
base
de
datos,
junto
con
sus
restricciones
de
integridad.
©
Editorial
UOC
28
Diseño
conceptual
de
bases
de
datos
en
UML
Un
esquema
conceptual
es
una
representación
gráfica
que
describe
el
conocimiento
general
sobre
un
dominio
que
un
sistema
de
información
debe
saber
para
poder
llevar
a
cabo
sus
funciones.
Para
crear
un
esquema
conceptual,
los
dise-
ñadores
deben
conocer
muy
bien
el
dominio
del
sistema
de
información
(de
aquí
la
necesidad
de
disponer
de
una
buena
lista
de
requisitos
formalizados)
y
tener
una
gran
capacidad
de
abstracción.
Y
aun
cuando
estas
dos
condiciones
se
cum-
plen,
el
éxito
no
está
garantizado.
Los
esquemas
conceptuales
describen
conocimiento
y,
por
tanto,
son
modelos
de
alto
nivel
y
no
incluyen
detalles
de
implementación.
Un
esquema
conceptual,
además,
debe
servir
de
referencia
para
verificar
que
se
han
agrupado
todos
los
requisitos
y
que
no
hay
ningún
conflicto
entre
ellos.
De
hecho,
según
el
lenguaje
utilizado
para
modelar
el
esquema
conceptual,
podemos
encontrar
herramientas
que
permiten
analizar
su
validez
y
calidad,
como
por
ejemplo
la
herramien-
ta
USE11 que
permite
evaluar
si
un
esquema
UML
es
correcto
y
si
sus
restricciones
de
integridad
son
satisfactibles.
En
esta
fase
del
diseño
todavía
no
se
considera
el
tipo
de
base
de
datos
que
se
utilizará.
Y,
por
lo
tanto,
tampoco
se
considera
el
SGBD
ni
el
lenguaje
concreto
de
implementa-
ción
de
la
base
de
datos.
En
esta
etapa
nos
concentraremos
en
la
estructura
de
la
información,
sin
resolver
de
momento
cuestiones
relacionadas
con
la
tecnología.
Hay
varios
modelos
de
datos
de
alto
nivel
que
permiten
modelar
los
requisitos,
las
especificaciones
y
las
restricciones
que
se
han
obtenido
en
la
primera
fase
del
diseño
de
una
base
11.
Más
información
de
la
herramienta
USE
se
puede
encontrar
en
http://sourceforge.net/projects/useocl/
©
Editorial
UOC
29
Introducción
al
diseño
de
bases
de
datos
de
datos.
Estos
modelos
disponen
normalmente
de
lenguajes
gráficos
para
facilitar
la
representación
y
la
comprensión
de
sus
esquemas
conceptuales.
Quizás
hoy
en
día
los
modelos
de
datos
más
utilizados
en
el
diseño
de
bases
de
datos
son
ER
y
UML:
• Modelo
ER12:
Uno
de
los
más
conocidos
y
utilizados
es
el
modelo
entidad-interrelación,
sobre
todo
en
el
dise-
ño
conceptual
de
bases
de
datos,
principalmente
debi-
do
a
su
simplicidad
y
facilidad
de
uso.
Los
elementos
básicos
que
incluye
el
modelo
son
los
tipos
de
entidad,
los
atributos
y
los
tipos
de
relación
entre
entidades.
El
objetivo
principal
del
modelo
ER
es
permitir
a
los
dise-
ñadores
reflejar
en
un
modelo
conceptual
los
requisitos
del
mundo
real
que
sean
de
interés
para
la
problemáti-
ca
a
resolver.
El
modelo
ER
facilita
el
diseño
conceptual
de
una
base
de
datos
y,
como
ya
hemos
comentado,
es
aplicable
al
diseño
de
cualquier
tipo
de
bases
de
datos.
• El
lenguaje
unificado
de
modelado13 (UML)
es
un
lenguaje
gráfico
diseñado
para
especificar,
visualizar,
modificar,
construir
y
documentar
un
sistema
de
información.
El
lenguaje
UML
incorpora
una
gran
cantidad
de
diagramas
que
permiten
representar
el
sis-
tema
desde
diferentes
perspectivas.
En
relación
con
el
diseño
conceptual
de
bases
de
datos,
interesa
especial-
mente
el
diagrama
de
clases,
que
permite
representar
información
del
dominio
del
sistema
de
información
que
se
va
a
implementar.
Los
diagramas
de
clases
son
diagramas
estáticos
que
describen
la
estructura
de
un
sistema
a
partir
de
las
clases
o
tipos
de
entidad
del
sistema,
sus
atributos
y
las
asociaciones
o
tipos
de
rela-
ción
que
se
establecen
entre
ellos.
Estos
diagramas
han
mostrado
una
capacidad
excelente
para
el
modelado
de
datos.
Por
este
motivo,
son
cada
vez
más
importan-
tes
en
el
diseño
conceptual
de
bases
de
datos.
3.3. Fase 3. Diseño lógico
Previamente
a
la
fase
de
diseño
lógico,
se
debe
elegir
un
tipo
de
base
de
datos.
Es
decir,
no
hay
que
escoger
todavía
un
SGBD
concreto,
sino
simplemente
seleccionar
el
tipo
de
base
de
datos
que
se
quiere
implementar.
Es
importante
que
quede
claro
que
el
tipo
de
base
de
datos
determina
el
esquema
de
diseño
lógico.
Una
vez
elegido
el
tipo
de
SGBD
donde
se
quiere
implementar
la
base
de
datos,
ya
se
puede
iniciar
la
fase
del
diseño
lógico.
En
la
fase
de
diseño
lógico se
transforma
el
modelo
concep-
tual,
independiente
del
modelo
de
datos
que
se
utilizará
en
la
base
de
datos,
en
un
modelo
lógico
dependiente
del
modelo
de
datos
(o
tipo
de
SGBD)
en
el
que
se
implementará
la
base
de
datos.
3.4. Fase 4. Diseño físico
comerciales
o
libres
que
hay
en
el
mercado
y
seleccionar
un
SGBD
donde
se
pueda
implementar
la
base
de
datos
que
se
ha
ido
gestando
en
las
fases
anteriores
del
proceso
de
diseño.
La
elección
del
SGBD
estará
condicionada
por
el
tipo
de
SGBD
que
se
haya
elegido
en
la
etapa
de
diseño
lógico.
SGBD,
como
por
ejemplo
la
planificación
del
sistema
operativo
o
los
tiempos
de
acceso
a
los
medios
físicos
de
almacenamiento
de
los
datos,
aunque
el
modelo
físico
que
definamos
podrá
condicionar
fuertemente
este
último,
ya
que
permite
decidir
en
qué
discos
se
deben
alojar
determinados
datos,
de
qué
forma
(orien-
tados
a
columna
o
a
fila,
ordenados
o
no,
etc.)
y
el
tamaño
de
las
páginas
de
datos,
entre
otros.
• Uso
del
espacio.
Es
la
cantidad
de
espacio
de
disco
utilizado
por
los
ficheros
de
la
base
de
datos
y
las
estructuras
de
rutas
de
acceso
al
disco,
incluyendo
índices
y
otras
rutas
de
acceso.
• Carga
de
transacciones.
Es
la
cantidad
media
de
transacciones
que
se
pueden
procesar
en
un
minuto
de
tiempo.
Este
factor
puede
ser
crítico
para
sistemas
transaccionales,
como
por
ejemplo
líneas
aeronáuticas
o
entidades
bancarias.
• Disponibilidad
de
la
base
de
datos.
En
algunos
casos
es
importante
asegurar
que
la
base
de
datos
será
resistente
a
caídas
y
fallos
de
funcionamiento.
Por
ejemplo,
en
el
caso
de
una
entidad
bancaria
se
debe
garantizar
que
los
datos
serán
accesibles
7x24
y
que
si
en
algún
momento
la
base
de
datos
deja
de
funcionar,
el
tiempo
de
recupe-
ración
será
mínimo.
Cabe
tener
en
cuenta
que
muchos
negocios
hoy
en
día
deben
su
existencia
al
tratamiento
automatizado
de
los
datos
y
que
sin
ellos
no
pueden
funcionar.
Pensad,
por
ejemplo,
qué
afectaciones
habría
si
un
banco
no
pudiera
acceder
a
sus
datos
durante
2
días
seguidos:
operaciones
de
oficina
inoperables,
caje-
ros
automáticos
no
operativos,
desconocimiento
de
qué
cuentas
corrientes
hay
y
con
qué
saldos,
etc.
©
Editorial
UOC
35
Introducción
al
diseño
de
bases
de
datos
3.5. Fase 5. Implementación y optimización
La
etapa
de
implementación
y
optimización consiste
en
realizar
la
carga
de
los
datos
y
posteriormente
ajustar
algunos
parámetros
relacionados
con
el
modelo
físico
de
la
base
de
datos
para
optimizar
el
rendimiento.
3.5.1. Procesamiento y optimización de consultas
El
objetivo
de
la
optimización
de
consultas
es
crear
las
estructuras
físicas
necesarias
para
mejorar
el
tiempo
de
res-
puesta
de
una
base
de
datos.
Normalmente,
la
optimización
de
consultas
se
realiza
mediante
la
creación
de
índices,
que
son
estructuras
que
permiten
mantener
un
índice
ordenado
©
Editorial
UOC
37
Introducción
al
diseño
de
bases
de
datos
que
recalcular
el
índice.
Por
tanto,
en
este
caso
probablemen-
te
se
descartaría
dicho
índice.
Las
técnicas
de
optimización
de
consultas
toman
incluso
mayor
relevancia
en
SGBD
donde
las
consultas
utilizan
len-
guajes
declarativos.
Los
lenguajes
declarativos
permiten
defi-
nir
qué
información
se
quiere
obtener,
pero
sin
decir
cómo
debe
obtenerse.
Es
decir,
se
especifica
el
resultado
que
se
quiere
obtener
a
partir
de
una
consulta
realizada,
en
lugar
de
determinar
el
algoritmo
o
el
método
que
hay
que
usar
para
obtener
el
resultado.
Por
ejemplo,
el
lenguaje
SQL
empleado
por
las
bases
de
datos
relacionales
es
declarativo.
Cuando
los
SGBD
utilizan
lenguajes
declarativos,
deben
evaluar
sistemáticamente
las
posibles
estrategias
alternati-
vas
que
se
pueden
utilizar
para
acceder
a
los
datos,
y
elegir
la
que
se
considera
óptima.
El
procesamiento
de
consultas
recoge
todo
el
conjunto
de
actividades
realizadas
por
el
SGBD,
que
tienen
como
objetivo
la
extracción
de
infor-
mación
de
la
base
de
datos
para
lograr
la
estrategia
más
eficiente
y
proporcionar
un
mejor
rendimiento
del
sistema
de
información.
Los
SGBD
relacionales
disponen
de
técnicas
para
consul-
tar
los
planes
de
resolución
de
consultas
que
van
a
utilizar.
Estos
planes
proporcionan
información
muy
útil
para
el
dise-
ñador
de
la
base
de
datos,
ya
que
muestran
cuántos
accesos
a
disco
se
realizan,
cómo
se
combinan
los
datos,
y
si
se
utilizan
índices
u
otras
estructuras
de
soporte.
Con
esta
información,
el
diseñador
de
la
base
de
datos
puede
identificar
potenciales
mejoras
y
crear
estructuras
alternativas
de
datos
(índices,
vis-
tas
materializadas,
etc.)
para
optimizar
la
consulta.
Este
punto
es
uno
de
los
más
importantes
que
se
deben
tener
en
cuenta
cuando
se
diseña
un
SGBD
relacional,
pues-
©
Editorial
UOC
39
Introducción
al
diseño
de
bases
de
datos
to
que
la
opción
elegida
afecta
directamente
al
rendimiento
global
del
sistema.
3.5.2. Administración de la seguridad
Capítulo
II
Diseño
conceptual
de
bases
de
datos
Tal
y
como
se
ha
descrito
en
el
primer
capítulo,
el
diseño
conceptual
es
una
de
las
etapas
que
se
deben
realizar
en
el
diseño
de
una
base
de
datos
y
tiene
como
objetivo
la
creación
de
un
esquema
conceptual
que
represente
la
información
que
debe
almacenarse
en
la
base
de
datos.
Un esquema
conceptual es
una
representación
gráfica
que
describe
el
conocimiento
general
sobre
un
dominio
que
un
sistema
de
información
debe
saber
para
poder
llevar
a
cabo
sus
funciones.
El
esquema
conceptual
se
crea
a
partir
de
un
análisis
de
las
especificaciones
recogidas
en
la
fase
de
análisis
de
requisitos
e
incluye
descripciones
detalladas
de
las
entida-
des
que
están
involucradas
en
el
sistema
de
información,
las
relaciones
entre
estas
entidades
y
las
restricciones
de
integri-
dad
que
se
deben
aplicar
sobre
los
datos.
En
esta
etapa
el
foco
de
atención
se
centra
en
identifi-
car
la
información
relevante
y
plasmarla
en
un
esquema
conceptual,
dejando
por
resolver
las
cuestiones
ligadas
a
la
tecnología
para
las
etapas
posteriores
al
diseño
conceptual.
Por
tanto,
en
esta
etapa
se
obtiene
una
estructura
de
la
infor-
mación
genérica,
es
decir,
independiente
del
tipo
de
base
de
©
Editorial
UOC
42
Diseño
conceptual
de
bases
de
datos
en
UML
1. Lenguajes de modelado conceptual
Tal
y
como
se
ha
comentado,
hay
diferentes
lenguajes
que
permiten
representar
esquemas
conceptuales.
Algunas
caracte-
rísticas
importantes
que
deben
satisfacer
estos
lenguajes
son:
Satisfacer
estas
características
no
es
fácil
y
a
menudo
algu-
nas
de
ellas
entran
en
conflicto
con
las
demás.
Quizás
el
modelo
más
conocido
y
utilizado
hasta
la
fecha
es
el
modelo
entidad-interrelación,
también
conocido
como
modelo
ER.
No
obstante,
actualmente
el
uso
del
lenguaje
unificado
de
modelado
(UML)
ha
tomado
gran
fuerza
en
el
diseño
de
esquemas
conceptuales
de
bases
de
datos.
El
lector
se
habrá
dado
cuenta
de
que
estamos
utilizando
los
términos
modelo
y
lenguaje
de
forma
indistinta.
Es
cierto
que,
en
general,
los
términos
modelo
y
lenguaje
representan
cosas
distintas:
los
modelos
representan
abstracciones
de
la
realidad
©
Editorial
UOC
44
Diseño
conceptual
de
bases
de
datos
en
UML
1.1. El modelo ER
14.
El
científico
y
profesor
de
informática
en
la
Universidad
Estatal
de
Luisiana.
En
1976,
desarrolló
el
modelo
ER,
hecho
por
el
que
es
conocido.
©
Editorial
UOC
45
Diseño
conceptual
de
bases
de
datos
res
han
propuesto
variantes
y
ampliaciones
para
este
modelo.
Por
lo
tanto,
en
la
bibliografía
se
pueden
encontrar
variaciones
en
el
modelo
ER
que
pueden
diferir
simplemente
en
la
nota-
ción
diagramática
o
en
algunos
conceptos
en
los
que
se
basan
para
modelar
los
datos.
El
modelo
ER
permite
reflejar
aspectos
relacionados
con
la
estructura
de
los
datos
y
la
integridad
de
estos,
pero
no
pueden
reflejarse
aspectos
de
comportamiento,
es
decir,
qué
operaciones
se
ejecutan
sobre
los
datos.
Para
representar
el
modelo
ER
se
han
empleado
tradicio-
nalmente
los
diagramas
entidad-interrelación,
o
diagramas
ER.
Estos
definen
una
nomenclatura
específica
para
repre-
sentar
los
diferentes
conceptos
de
entidades
y
relaciones
que
requiere
el
modelo
y
representarlos
en
diagramas
ER.
A
pesar
del
amplio
uso
de
estos
diagramas,
últimamente
se
tiende
a
emplear
el
lenguaje
UML
para
representar
esquemas
con-
ceptuales
de
bases
de
datos.
No
obstante,
hay
que
tener
en
cuenta
que
los
conceptos
que
utilizan
dichos
lenguajes
para
crear
esquemas
conceptuales
de
bases
de
datos
son
parecidos:
ambos
representan
los
conceptos
relacionados
con
las
entida-
des,
los
atributos
y
las
relaciones,
pero
utilizando
estructuras
distintas.
1.2. El lenguaje UML
El
lenguaje
unificado
de
modelado15 (UML)
es
un
lengua-
je
de
propósito
general
diseñado
para
modelar
sistemas
de
software.
El
estándar
fue
creado
y
es
mantenido
por
el
Object
Management
Group16.
Se
añadió
por
primera
vez
a
la
lista
de
tecnologías
empleadas
por
el
OMG
en
1997
y
desde
entonces
se
ha
convertido
en
el
estándar
de
la
industria
para
modelar
sistemas
de
software.
UML es
un
lenguaje
gráfico
diseñado
para
especificar,
visua-
lizar,
modificar,
construir
y
documentar
un
sistema.
Permite
una
visualización
estándar
de
diferentes
artefactos,
entre
otros,
actividades,
actores,
lógicas
de
negocio
y
esquemas
de
bases
de
datos.
16.
El
Object
Management
Group
(OMG)
es
un
consorcio
dedicado
a
esta-
blecer
y
promover
varias
especificaciones
de
tecnologías
orientadas
a
objetos,
como
UML,
XMI
o
CORBA.
Es
una
organización
sin
ánimo
de
lucro
que
promueve
el
uso
de
la
tecnología
orientada
a
objetos
median-
te
guías
y
especificaciones
para
estas
guías.
©
Editorial
UOC
47
Diseño
conceptual
de
bases
de
datos
17.
El
dominio
del
discurso,
universo
del
discurso,
o
simplemente
domi-
nio,
es
la
información
relevante
en
un
determinado
contexto.
©
Editorial
UOC
48
Diseño
conceptual
de
bases
de
datos
en
UML
a)
Los
diagramas
de
casos
de
uso se
utilizan
para
modelar
las
interacciones
funcionales
entre
los
usuarios
y
el
sistema.
©
Editorial
UOC
49
Diseño
conceptual
de
bases
de
datos
2.
Metodologías
y
estrategias
de
diseño
conceptual
La
creación
de
un
esquema
conceptual
de
una
base
de
datos
permite
a
los
diseñadores
concentrarse
en
expresar
el
significado,
las
propiedades,
las
relaciones
y
las
restricciones
de
los
datos
sin
preocuparse
de
los
detalles
de
implemen-
tación
y
con
independencia
de
las
particularidades
de
los
diferentes
sistemas
gestores
de
bases
de
datos.
Además,
el
esquema
conceptual
generado
tiene
las
siguientes
ventajas:
• Se
convierte
en
un
elemento
de
descripción
estable
del
contenido
de
la
base
de
datos.
©
Editorial
UOC
50
Diseño
conceptual
de
bases
de
datos
en
UML
• Al
ser
independiente
de
las
tecnologías
específicas
de
cada
SGBD,
permite
más
expresividad
y
es
más
gene-
ralizable.
• Se
puede
utilizar
como
vehículo
de
comunicación
entre
los
usuarios,
los
diseñadores
y
los
analistas
de
la
base
de
datos.
2.1. Metodologías de diseño
A
partir
de
los
requisitos
recopilados,
trabajados
y
forma-
lizados
en
la
primera
fase
del
proceso
de
diseño
de
una
base
de
datos
se
pueden
establecer
dos
metodologías
básicas
para
abordar
el
diseño
conceptual
de
bases
de
datos:
1.
Metodología
centralizada:
antes
de
empezar
la
crea-
ción
del
esquema
conceptual
se
fusionan
todos
los
requisitos
de
los
distintos
grupos
de
usuarios
y
aplica-
ciones
recopilados
en
la
primera
fase.
A
partir
de
este
único
conjunto
de
requisitos
se
desarrolla
un
único
esquema
conceptual
para
toda
la
base
de
datos.
2.
Metodología
de
integración
de
vistas:
se
construye
un
esquema
para
cada
conjunto
de
requisitos
y
se
validan
los
esquemas
de
manera
independiente.
Estos
esque-
mas
se
conocen
también
como
vistas.
Posteriormente,
se
fusionan
las
diferentes
vistas
en
un
único
esquema
conceptual
global
para
toda
la
base
de
datos.
©
Editorial
UOC
51
Diseño
conceptual
de
bases
de
datos
2.2. Estrategias de diseño
Capítulo
III
Elementos
básicos
de
modelado
1. Tipos de entidad
Las
entidades
pueden
ser
objetos
con
existencia
física
(por
ejemplo,
este
libro
en
formato
físico
o
Leonard
Nimoy,
que
es
el
actor
que
representa
el
papel
de
Spock
en
Star
Trek)
u
objetos
con
existencia
conceptual
(por
ejemplo,
este
libro
en
formato
eBook
o
el
comandante
Spock).
Otros
ejemplos
de
entidades
tangibles
son
una
manzana,
un
coche
o
una
persona.
Otros
ejemplos,
que
no
son
tangi-
bles
pero
que
tienen
identidad
y
son
distinguibles
del
resto,
son
un
pedido
a
un
proveedor,
una
petición
de
préstamo
en
una
biblioteca
o
una
incidencia
municipal.
©
Editorial
UOC
55
Elementos
básicos
de
modelado
Entendemos
por
tipo
de
entidad la
abstracción
que
permi-
te
definir
un
conjunto
de
entidades
con
las
mismas
propie-
dades,
comportamiento
común,
semántica
común
e
idéntica
relación
con
los
demás
objetos.
Como,
por
ejemplo,
el
tipo
de
entidad
que
describe
el
conjunto
de
lectores
de
este
libro.
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
56
Diseño
conceptual
de
bases
de
datos
en
UML
concretas,
sino
las
distintas
marcas
de
vino
o
bien
los
tipos
de
vino
existentes.
El
motivo
es
obvio,
si
queremos
almacenar
que
los
rioja
utilizan
uva
de
tipo
tempranillo,
no
es
necesa-
rio
almacenar
las
distintas
botellas
físicas
de
tipo
rioja
que
existen.
Existe
una
relación
de
pertenencia
entre
el
tipo
de
entidad
y
las
entidades
que
describe.
Conceptualmente,
podríamos
ver
el
tipo
de
entidad
como
un
conjunto,
y
las
diferentes
entidades
como
los
miembros
de
ese
conjunto.
Esa
relación
de
pertenencia
se
denomina
instanciación
y
se
representa
normalmente
mediante
relaciones
de
instanciación
que
rela-
cionan
cada
instancia
con
el
tipo
de
entidad
a
la
que
perte-
nece.
No
entraremos
en
más
detalle
en
este
tipo
de
relación
ya
que
no
se
hace
un
uso
exhaustivo
de
ella
en
el
diseño
de
bases
de
datos,
tan
solo
se
utiliza
a
veces
para
ejemplificar
un
esquema
conceptual
mediante
diversas
instanciaciones
del
mismo.
El
tipo
de
entidad
coche se
define
como
el
concepto
de
vehículo que
describe
las
partes
comunes
de
diferentes
coches
con
independencia
de
la
marca,
el
color,
el
modelo
y
otras
características
concretas.
Un
coche
concreto,
por
ejemplo
mi
coche,
es
una
instancia
u
ocurrencia
del
tipo
de
entidad
coche.
Utilizaremos
la
nomenclatura
siguiente
para
diferenciar
estos
dos
conceptos:
En
la
bibliografía
se
pueden
encontrar
autores
que
utilizan
las
diferentes
terminologías
y,
por
lo
tanto,
hay
que
tenerlas
todas
presentes
para
identificar
de
manera
rápida
y
unívoca
a
qué
concepto
se
hace
referencia
cuando
se
utiliza
cualquiera
de
estos
términos.
En
la
representación
mediante
diagramas
UML,
los
tipos
de
entidad
se
denominan
clases y
las
entidades,
objetos.
2. Atributos
18.
Atributos
y
relaciones
binarias.
En
teoría,
un
atributo
no
es
más
que
un
tipo
de
relación
binaria
en
la
que
uno
de
los
participantes
es
un
tipo
de
dato
(se
discutirá
más
a
fondo
en
el
apartado
siguiente).
No
obstante,
para
simplificar
el
modelo
y
facilitar
su
creación
y
su
legibilidad,
se
tratan
de
manera
diferente
y
más
compacta.
©
Editorial
UOC
58
Diseño
conceptual
de
bases
de
datos
en
UML
La
tabla
1
muestra
un
posible
ejemplo
de
un
conjunto
de
entidades
de
persona.
Tabla 1. Ejemplo de representación de entidades del tipo de entidad
‘Persona’ (Person)
2.1. Representación de los atributos
Dónde:
19.
Los
corchetes
[
]
denotan
opcionalidad.
Por
tanto,
el
uso
de
los
elemen-
tos
entre
corchetes
no
es
obligatorio
en
la
definición
de
atributos.
©
Editorial
UOC
60
Diseño
conceptual
de
bases
de
datos
en
UML
20.
Un
atributo
derivado
es
un
atributo
cuyo
valor
se
calcula
automática-
mente.
Los
atributos
derivados
se
estudian
con
más
detalle
en
aparta-
dos
posteriores.
21.
Un
atributo
de
tipo
enumeración
tiene
restringidos
sus
posibles
valores
a
un
conjunto
cerrado
de
valores
predefinido.
Por
ejemplo,
se
pueden
definir
los
días
de
la
semana
como
un
atributo
de
tipo
enumeración,
donde
el
conjunto
de
posibles
valores
es
lunes,
martes,
miércoles,
jue-
ves,
viernes,
sábado
y
domingo.
©
Editorial
UOC
61
Elementos
básicos
de
modelado
2.2. Dominio de los atributos
Figura 4. Ejemplo de los tipos de entidad ‘Coche’ (Car) con el dominio de
los atributos
2.3. Atributos compuestos y atómicos
22.
OCL
es
un
lenguaje
declarativo
que
permite
definir
reglas
que
se
aplican
a
modelos
UML.
Entre
otras,
se
pueden
describir
restricciones
sobre
el
dominio
de
los
atributos.
En
este
módulo
no
utilizaremos
este
lenguaje,
puesto
que
supone
una
dificultad
añadida,
y
utilizaremos
las
notas
textuales
para
indicar
restricciones
en
el
dominio
y
consideracio-
nes
similares.
©
Editorial
UOC
63
Elementos
básicos
de
modelado
dirección
postal.
Un
ejemplo
de
atributo
simple
es
el
nombre
de
una
población.
Aunque
este
atributo
pueda
parecer
com-
puesto,
por
ejemplo
“Arenys
de
Mar”,
no
se
puede
dividir
sin
perder
el
significado
original.
2.4. Atributos monovalor y multivalor
Un
atributo
monovalor es
aquel
que
solo
puede
tener
un
valor
para
cada
entidad.
En
contraposición
a
este
concepto,
un
atributo
multivalor es
aquel
que
puede
tomar
más
de
un
valor
para
la
misma
entidad.
• Un
número
para
indicar
el
número
exacto
de
valores
que
debe
tener
el
atributo.
• El
intervalo
mín..máx
para
indicar
el
número
mínimo
y
máximo
de
valores
que
puede
tener
el
atributo.
Por
ejemplo,
para
indicar
que
el
atributo
‘teléfono’
(phone-
23.
La
cardinalidad
de
un
atributo
define
el
número
de
posibles
valores
que
puede
tener
el
atributo
para
cada
entidad.
©
Editorial
UOC
64
Diseño
conceptual
de
bases
de
datos
en
UML
Por
defecto,
los
atributos
son
de
tipo
monovalor
en
UML.
Por
tanto,
los
atributos
ID,
name,
surname,
birthdate y
email
de
la
clase
Person (ver
figura
5)
son
monovalor
porque
no
se
indica
lo
contrario.
El
atributo
‘teléfono’
es
multivalor
y
puede
tener
un
número
indefinido
de
valores.
Figura 5. Ejemplo del tipo de entidad ‘Persona’ (Person) con un atributo
multivalor
2.5. Atributos derivados
Un
atributo
derivado
es
aquel
cuyo
valor
se
puede
calcu-
lar
a
partir
de
los
valores
de
otros
atributos,
y
lleva
asociado
un
procedimiento
de
cálculo
que
indica
cómo
calcular
su
valor
a
partir
del
valor
de
otros
atributos.
Un
atributo
no
de-
rivado,
denominado
básico,
es
aquel
al
que
hay
que
asignar
un
valor
explícitamente.
©
Editorial
UOC
65
Elementos
básicos
de
modelado
Figura 6. Ejemplo de atributo derivado
2.6. Atributos opcionales
El valor
NULL
(o
nulo)
es
un
valor
especial
diseñado
para
indicar
que
el
valor
de
un
atributo
es
desconocido
o
no
tiene
sentido
en
una
entidad
concreta.
Un
atributo
que
acepte
el
valor
nulo
se
considera
un
atributo
opcional.
En
caso
de
que
se
especifique
que
el
atributo
no
acepta
el
valor
nulo,
quiere
decir
que
el
atributo
es
obligatorio
y,
por
tanto,
todas
las
entidades
deben
tener
un
valor
en
dicho
atributo.
La
figura
7
muestra
el
tipo
de
entidad
‘Dirección’
(Address),
que permite
definir
la
dirección
física
de
una
casa,
un
piso
o
un
local.
Hay
que
señalar
que
en
las
casas
unifamiliares
no
tiene
sentido
el
atributo
de
‘número
de
piso
y
puerta’.
Los
©
Editorial
UOC
66
Diseño
conceptual
de
bases
de
datos
en
UML
atributos
que
indican
el
‘número
de
piso’
(floor) y
‘puerta
de
escalera’
(doorNumber) especifican
una
multiplicidad
de
0
o
1,
es
decir,
son
opcionales
y
pueden
tener
un
valor
nulo.
2.7. Atributos de clave
Un
tipo
de
entidad
puede
tener
una
o
más
claves
candidatas.
Pero
es
necesario
que
tenga
al
menos
una
clave
candidata
que
permita
identificar
de
manera
unívoca
todas
las
entidades24.
En
UML
no
hay
ninguna
notación
para
indicar
las
cla-
ves
candidatas
ni
la
clave
primaria.
En
este
texto
tomamos
un
convenio
para
indicar
las
claves
candidatas
y
las
claves
primarias.
Las
claves
candidatas
se
marcarán
con
la
etiqueta
<Un>,
donde
n
(n
>
0)
agrupa
cada
uno
de
los
conjuntos
de
claves
candidatas.
Por
lo
tanto,
si
dos
o
más
atributos
tienen
la
misma
etiqueta,
por
ejemplo
<U1>,
entendemos
que
se
trata
de
una
clave
candidata
compuesta
por
todos
los
atri-
butos
con
esta
etiqueta.
La
clave
primaria
se
marca
con
la
etiqueta
<P>
para
distinguirla
del
resto
de
claves.
©
Editorial
UOC
68
Diseño
conceptual
de
bases
de
datos
en
UML
3. Tipos de relación
Un
tipo
de
relación
es
una
asociación
entre
dos
o
más
tipos
de
entidad,
llamados
tipos
de
entidad
participantes.
Los
tipos
de
relación
son
abstracciones
que
indican
que
las
instancias
de
los
tipos
de
entidad
participantes
pueden
relacionarse
entre
sí
teniendo
en
cuenta
la
semántica
y
las
restricciones
definidas
en
el
tipo
de
relación.
Película
Z”,
donde
X,
Y
y
Z
serían
los
tipos
de
entidad
Person
(X),
Fiction
Character (Y)
y
Film (Z).
Los
tipos
de
relación
indican
las
relaciones
en
las
que
pueden
participar
las
entidades
de
un
tipo
de
entidad,
y
en
qué
condiciones.
A
partir
de
ahora,
utilizaremos
la
nomenclatura
siguiente
para
diferenciar
estos
dos
conceptos:
En
la
figura
9
podemos
ver
un
ejemplo
de
cómo
definir
un
tipo
de
relación
en
UML.
Entre
los
tipos
de
entidad
‘Coche’
(Car) y
‘Persona’
(Person) podemos
establecer
un
tipo
de
rela-
ción
de
propiedad
que
indique
que
una
persona
posee
un
coche.
Para
representar
esta
información,
debemos
crear
en
el
diagrama
conceptual
un
nuevo
tipo
de
relación
denominado
Has,
para
indicar
que
una
persona
tiene
un
coche.
25.
En
la
representación
en
diagramas
UML,
los
tipos
de
relación
se
deno-
minan
asociaciones
y
las
relaciones,
instancias
de
las
asociaciones.
©
Editorial
UOC
71
Elementos
básicos
de
modelado
Figura 9. Ejemplo de tipo de relación Has entre los tipos de entidad
‘Persona’ (Person) y ‘Coche’ (Car)
• Los
tipos
de
relación
casi
siempre
tienen
una
etiqueta
de
tipo
de
relación
que
indica
el
significado
de
la
aso-
ciación
entre
los
dos
tipos
de
entidad.
Esta
etiqueta
indica
la
acción
entre
los
dos
tipos
de
entidad,
y
se
suele
expresar
mediante
un
verbo.
Para
especificar
mejor
su
significado,
de
manera
opcional
se
puede
indicar
la
dirección
en
que
debe
leerse
la
relación.
Así,
en
la
figura
9
podemos
leer
que
«una
persona
tiene
un
coche».
Aunque
no
es
muy
habitual,
cuando
esta
rela-
ció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
nece-
sario
definir
el
papel
que
tienen
las
entidades
en
el
tipo
de
relación.
En
estos
casos
se
puede
definir
una
etiqueta
en
cada
extremo
del
tipo
de
relación,
que
indica
el
papel
que
desempeña
cada
una
de
las
enti-
dades
en
la
relación
y
que
ayuda
a
explicar
el
signifi-
cado
de
esta.
Estas
etiquetas
se
denominan
etiquetas
©
Editorial
UOC
72
Diseño
conceptual
de
bases
de
datos
en
UML
de
rol
o
nombres
de
rol.
Para
definir
los
roles
se
suelen
utilizar
nombres.
En
la
figura
9
podemos
ver
los
nombres
de
roles
para
los
participantes
del
tipo
de
relación
“has”,
que
serían
“propietario”
(owner) y
“coche
de
propiedad”
(owned
car).
Utilizando
los
nom-
bres
de
rol
podemos
leer
los
participantes
del
tipo
de
relación
como
“la
persona
que
participa
en
la
relación
es
propietaria”
y “el
coche
que
participa
en
la
relación
es
propiedad
de
alguien”.
En
UML
es
necesario
que
todo
tipo
de
relación
tenga
defi-
nidos
los
roles
de
los
participantes
o
el
nombre
del
tipo
de
relación.
Se
define
el
grado
de
un
tipo
de
relación como
el
núme-
ro
de
tipos
de
entidad
que
participan
en
la
asociación.
Los tipos de relación se clasifican, según su grado, en:
En
este
punto
seguro
que
algunos
lectores
se
han
pre-
guntado:
¿qué
diferencia
hay
entre
un
tipo
de
relación
y
un
atributo?
¿no
son
parecidos?
La
respuesta
es
sí.
No
solo
son
parecidos,
sino
que
uno
es
un
caso
particular
del
otro.
Un
atributo
podría
verse
como
un
caso
particular
de
tipo
de
relación
binario.
De
hecho,
un
atributo
es
un
tipo
de
relación
binario
que
tiene
un
tipo
de
datos
(o
datatype)
como
participante.
Sorprendentemente,
hoy
en
día
aún
hay
muchas
definiciones
de
«tipo
de
datos»
y
no
parece
que
haya
un
consenso
claro
sobre
su
semántica.
En
este
libro,
y
para
simplificar
las
cosas,
definiremos
un
tipo
de
datos
como
un
tipo
de
entidad
cuyas
instancias
identifican
unívocamente
al
objeto
que
representan
en
el
mundo
real
a
partir
de
sus
valores.
Por
ejemplo,
los
enteros
son
un
tipo
de
datos
porque
dos
instancias
distintas
de
la
clase
entero
con
el
mismo
valor
son
el
mismo
número
entero:
3
igual
a
3.
Lo
mismo
pasa
con
un
String
o
con
una
fecha,
ya
que
la
cadena
“Hola”
y
“Hola”
son
la
misma
y
las
fechas
“3
de
julio
de
1974”
y
“3
de
julio
de
1974”
también
son
la
misma
fecha.
No
obstante,
el
tipo
de
entidad
Libro, por
ejemplo,
no
es
un
tipo
de
datos.
El
motivo
es
que
podríamos
tener
dos
instancias
de
libro
con
los
mis-
mos
datos
(ISBN,
idioma,
título,
autor…)
pero
aun
así
ser
dos
ejemplares
físicos
distintos.
Básicamente,
y
para
simplificar,
podemos
considerar
como
tipos
de
datos
a
los
tipos
básicos
disponibles
en
la
mayoría
de
los
lenguajes
de
programación:
enteros,
reales,
carácter,
String,
etc.
Aunque
un
atributo
se
pueda
representar
como
una
rela-
ción
binaria
entre
el
tipo
de
entidad
que
lo
contiene
y
el
tipo
de
datos
asociado,
normalmente
se
representa
mediante
atri-
©
Editorial
UOC
74
Diseño
conceptual
de
bases
de
datos
en
UML
butos
porque
así
se
mejora
su
compresión
y
permite
agrupar
mejor
la
información
relacionada.
En
algunos
casos
los
tipos
de
relación,
en
primera
instan-
cia,
pueden
modelarse
como
atributos.
Un
análisis
posterior
con
más
detalle
ayuda
a
ver
que
lo
que
se
había
modelado
como
un
atributo
en
un
primer
momento
es
realmente
un
tipo
de
relación
que
debe
relacionar
la
clase
actual
con
un
tipo
de
entidad
nuevo,
o
ya
existente.
Por
ejemplo,
supongamos
que
queremos
modelar
el
tipo
de
entidad
empleado
(Employee) para
almacenar
los
datos
de
los
empleados
de
una
empresa.
Entre
otros
atributos,
nos
interesa
indicar
a
qué
departamento
de
la
empresa
pertenece
cada
empleado.
Una
primera
aproximación
sugiere
un
dise-
ño
en
el
que
se
incluye
el
atributo
‘departamento’ en
el
tipo
de
entidad
‘Empleado’,
tal
como
muestra
la
figura
10.
Pero
refinando
este
modelo,
es
posible
que
nos
interese
tener
cate-
gorizados
los
diferentes
departamentos,
e
incluso
podríamos
querer
almacenar
cierta
información
relativa
al
departamen-
to.
En
este
nuevo
diseño
se
crea
un
nuevo
tipo
de
entidad
para
los
departamentos
y
se
establece
un
tipo
de
relación
entre
los
empleados
y
los
departamentos
(tipos
de
entidad
Department)
que
indica
a
qué
departamento
pertenece
cada
empleado.
La
figura
11
muestra
el
nuevo
diseño.
Figura 10. Ejemplo de diseño del departamento como un atributo del tipo
de
entidad ‘Empleado’
(Employee)
©
Editorial
UOC
75
Elementos
básicos
de
modelado
Figura 11. Ejemplo de diseño del departamento como un nuevo tipo de
‘Empleado’ (Employee)
3.2. Tipos de relación binarias
Se
define
un
tipo
de
relación
binaria como
la
asociación
entre
dos
tipos
de
entidad.
Siguiendo
con
el
ejemplo
de
la
figura
12,
la
figura
13
mues-
tra
la
misma
relación,
pero
a
escala
de
entidades.
Es
decir,
Figura 13. Ejemplo en el nivel de entidades de la relación ‘Matrícula’ (Enrollment)
3.2.1. Conectividad
Un
tipo
de
relación
binaria
puede
tener
tres
tipos
de
conectividad:
©
Editorial
UOC
77
Elementos
básicos
de
modelado
Figura 14. Ejemplos de conectividad en los tipos de relaciones binarias entre
Estas
restricciones,
denominadas
también
restricciones
de
cardinalidad,
se
determinan
en
función
del
problema
a
resol-
ver.
Por
tanto,
la
conectividad
de
las
relaciones
dependerá
en
gran
medida
de
la
información
que
se
quiera
representar,
es
decir,
de
los
requisitos
del
sistema
de
información
recogidos.
Cuando
se
habla
de
«conectividad
a
muchos»
se
puede
indicar
de
diferentes
maneras.
Según
el
matiz
del
problema,
usaremos:
• Un
número
para
indicar
el
número
exacto
de
entida-
des
que
pueden
intervenir
en
la
relación.
• El
intervalo
mín..máx para
indicar
el
número
mínimo
y
máximo
de
entidades
que
pueden
intervenir
en
la
relación.
• La
etiqueta
N o
*
para
indicar
que
un
número
indefi-
nido
(cero
o
más)
de
entidades
pueden
participar
en
la
relación.
Figura 15. Ejemplo del tipo de relación ‘Matrícula’ (Enrollment) donde se
la relación
3.2.2. Participación total o parcial en un tipo de relación
En
algunos
casos,
las
entidades
de
un
tipo
de
entidad
tienen
que
estar
relacionadas
con
entidades
de
otro
tipo
de
entidad
de
forma
obligatoria.
En
estos
casos,
se
dice
que
el
primer
tipo
de
entidad
es
un
tipo
de
entidad
obligatorio27 en
la
relación.
En
caso
contrario,
se
dice
que
es
un
tipo
de
enti-
dad
opcional28 en
la
relación.
En
los
diagramas
UML
se
utiliza
la
cardinalidad
del
tipo
de
relación
para
expresar
la
obligatoriedad
de
los
tipos
de
entidad
que
participan
en
la
asociación.
Por
tanto,
para
decir
que
el
participante
de
un
tipo
de
relación
es
obligatorio
debe-
mos
colocar
un
número
N en
su
cardinalidad
mínima,
donde
27.
Para
designar
este
concepto
también
se
puede
decir
que
el
tipo
de
enti-
dad
tiene
una
participación
total
en
la
asociación
o
que
presenta
una
dependencia
de
existencia
respecto
a
la
asociación.
28.
Para
designar
este
concepto
también
se
puede
decir
que
el
tipo
de
enti-
dad
tiene
una
participación
parcial
en
la
asociación.
©
Editorial
UOC
80
Diseño
conceptual
de
bases
de
datos
en
UML
N>0.
Por
ejemplo,
1..129,
2..3,
1..*,
etc.
Colocar
un
0
en
la
car-
dinalidad
mínima
de
un
tipo
de
entidad
participante
en
una
asociación
indicará
que
sus
entidades
no
tienen
la
obligación
de
participar
en
la
relación.
Ejemplos
de
cardinalidades
que
denotan
optatividad
son
0..1,
0..*30,
etc.
Debido
a
la
manera
en
que
se
representan
los
tipos
de
relación
en
UML,
los
tipos
de
entidad
obligatorios
se
definen
colocando
una
cardinalidad
mínima
diferente
a
cero
en
el
extremo
opuesto
de
la
asociación
al
de
la
clase
obligatoria.
La
figura
16
muestra
un
modelo
en
el
que
aparece
un
tipo
de
relación
binaria
que
expresa
la
relación
de
‘Dirige
un
departamento’
(Heads) entre
los
tipos
de
entidad
‘Profesor’
(Professor) y
‘Departamento’
(Department).
Podemos
ver
que
el
tipo
de
entidad
‘Departamento’ es
obligatorio
en
la
relación
ya
que,
según
el
diagrama,
todo
departamento
deberá
tener
un
profesor
que
lo
dirija.
Dicha
restricción
hará
que
todos
los
departamentos
participen
en
la
relación.
Por
tanto,
podemos
decir
que
la
clase
‘Departamento’
es obligatoria
en
la
relación.
No
obstante,
la
clase
‘Profesor’ es
opcional
en
la
relación
ya
que
hay
profesores
que
no
dirigen
ningún
departamento
y,
por
tanto,
no
todos
los
profesores
participan
en
la
relación.
Figura 16. Ejemplo de dependencia de existencia en los tipos de relación
binarias
29.
La
cardinalidad
1
es
una
manera
abreviada
de
referirse
a
la
cardinalidad
1..1.
30.
La
cardinalidad
*
es
una
manera
abreviada
de
referirse
a
la
cardinalidad
0..*.
©
Editorial
UOC
81
Elementos
básicos
de
modelado
En
una
relación
binaria
con
participantes
A
y
B,
tenemos
cuatro
posibilidades
de
expresar
la
obligatoriedad
entre
las
clases
participantes.
En
la
figura
17,
vemos
en
17a
el
caso
en
el
que
los
dos
tipos
de
entidad
son
opcionales,
en
17b
el
caso
en
el
que
el
tipo
de
entidad
A
es
obligatorio,
en
17c
el
caso
en
el
que
el
tipo
de
entidad
B
es
obligatorio
y
en
17d
el
caso
en
el
que
los
dos
tipos
de
entidad
son
obligatorios.
Igual
que
las
restricciones
de
conectividad,
estas
restriccio-
nes
son
inherentes
a
los
problemas
que
se
quieren
resolver
y
a
partir
de
la
compilación
de
requisitos
de
los
usuarios
de
la
base
de
datos
se
podrá
determinar
cómo
se
debe
proceder
en
cada
caso.
3.3. Tipos de relación ternarias
Hay
situaciones
en
las
que
no
basta
con
modelar
una
asociación
entre
dos
tipos
de
entidad
para
representar
un
concepto
y
es
necesario
modelar
la
asociación
entre
tres
tipos
de
entidad
para
representar
el
concepto
deseado.
Siguiendo
un
ejemplo
visto
antes,
no
es
suficiente
mode-
lar
el
tipo
de
relación
‘Matrícula’
(Enrollment) entre
los
tipos
de
entidad
‘Estudiante’
(Student) y
‘Asignatura’
(Subject).
Dicha
relación
no
permite
representar
la
realidad
de
los
estudiantes
que
suspenden
una
asignatura
y
tienen
que
volver
a
cur-
sarla
en
un
semestre
posterior.
En
estos
casos,
una
entidad
‘Estudiante’ puede
tener
cero,
una
o
más
de
una
matrícula
para
una
misma
asignatura.
El
requisito
es
que
solo
es
posi-
ble
matricularse
de
una
asignatura
una
vez
por
semestre.
Por
lo
tanto,
hay
que
introducir
el
tipo
de
entidad
‘Semestre’
(Semester) y
modificar
el
modelo
para
que
la
relación
‘matrícu-
la’ asocie
los
tres
tipos
de
entidad.
La
figura
18
muestra
el
nuevo
modelo.
Figura 18. Ejemplo de tipo de relación ternaria entre los tipos de entidad
3.3.1. Conectividad
En
la
conectividad
de
un
tipo
de
relación
ternaria
hay
implicados
tres
tipos
de
entidad,
donde
cada
uno
puede
tomar
la
conectividad
«a
uno»
o
«a
muchos».
En
UML,
podemos
representar
hasta
cuatro
tipos
de
conectividad
para
un
tipo
de
relación
ternaria31:
• 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.
Para
decidir
cómo
se
debe
conectar
cada
uno
de
los
tipos
de
entidad
a
la
asociación,
hay
que
fijar
«a
una»
las
otras
entidades
y
entonces
preguntarse
si
es
posible
conectar
con
la
relación
«a
una»
o
«a
muchas»
entidades
del
primer
tipo
de
entidad.
Veamos
cómo
definir
la
conectividad
en
un
tipo
de
rela-
ción
ternaria
mediante
el
ejemplo
que
ilustra
la
figura
19,
donde
podemos
ver
los
tres
tipos
de
entidad,
‘Estudiante’
(Student),
‘Asignatura’
(Subject) y
‘Semestre’
(Semester),
y
el
tipo
de
relación
‘Matrícula’
(Enrollment).
31.
En
un
tipo
de
relación
ternaria
se
podrían
representar
hasta
12
tipos
de
restricciones
de
cardinalidad
distintas.
No
obstante,
la
dificultad
de
mostrar
gráficamente
todas
las
restricciones
de
cardinalidad
para
los
tipos
de
relación
con
un
grado
mayor
a
dos
hace
que
los
lenguajes
de
modelado
muestren
solo
algunas
de
ellas.
Si
el
lector
está
interesado,
puede
encontrar
más
información
al
respecto
en
el
capítulo
4
del
libro
de
Antoni
Olivé
listado
en
el
apartado
de
bibliografía.
©
Editorial
UOC
84
Diseño
conceptual
de
bases
de
datos
en
UML
En
primer
lugar,
nos
preguntamos
si
dados
una
asignatu-
ra
y
un
semestre
concretos,
cuántos
estudiantes
se
pueden
tener
matriculados:
«uno»
o
«muchos».
La
respuesta
es
que
puede
haber
«muchos»
estudiantes
matriculados,
puesto
que
varios
estudiantes
pueden
matricularse
de
una
misma
asignatura
en
el
mismo
semestre.
Por
lo
tanto,
el
tipo
de
entidad
‘estudiante’ participa
con
grado
N
en
la
relación
‘matrícula’.
En
segundo
lugar,
nos
preguntamos,
si
fijados
un
estu-
diante
y
una
asignatura
concretos,
puede
existir
matrícula
en
«uno»
o
«muchos»
semestres.
La
respuesta
es
que
pue-
den
existir
«muchos»
semestres,
puesto
que
un
estudiante
se
puede
matricular
de
una
asignatura
en
diferentes
semes-
tres
hasta
superarla.
Por
lo
tanto,
el
tipo
de
entidad
‘semes-
tre’ participa
con
grado
N
en
la
relación
‘matrícula’.
Finalmente,
nos
preguntamos
si
fijados
un
estudiante
y
un
semestre
concretos,
pueden
tener
matrícula
de
«una»
o
«muchas»
asignaturas.
La
respuesta
es
que
se
pueden
tener
«muchas»
asignaturas
matriculadas,
puesto
que
un
estudiante
se
puede
matricular
en
varias
asignaturas
en
un
mismo
semestre.
Por
lo
tanto,
el
tipo
de
entidad
‘asignatura’
también
participa
con
grado
N
en
la
relación
matrícula.
©
Editorial
UOC
85
Elementos
básicos
de
modelado
3.4. Tipos de relación n-arias
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
86
Diseño
conceptual
de
bases
de
datos
en
UML
3.5. Tipos de relación reflexivas o recursivas
Figura 21. Ejemplo de tipo de relación recursiva
3.6. Tipos de entidad asociativas
En
algunos
casos,
las
relaciones
pueden
requerir
atributos
que
permitan
describir
propiedades
relevantes
sobre
los
tipos
de
relación.
Estos
atributos
se
definen
y
siguen
las
mismas
reglas
que
los
atributos
de
las
entidades
pero
se
definen
en
el
contexto
de
un
tipo
de
relación.
En
UML
se
usan
clases
asociativas
(o
tipos
de
entidad
asociativos)
para
solucionar
dicha
problemática.
Una
clase
asociativa
se
representa
como
la
unión
de
un
tipo
de
entidad
con
un
tipo
de
relación.
El
tipo
de
entidad
de
una
clase
asociativa
se
utiliza
como
contenedor
de
los
atribu-
tos
del
tipo
de
relación.
©
Editorial
UOC
89
Elementos
básicos
de
modelado
Las
clases
asociativas
añaden
nuevas
funcionalidades
a
las
relaciones.
Las
principales
son
las
siguientes:
Figura 24. Ejemplo de tipo de relación entre una entidad y una entidad
asociativa
Cabe
señalar
que
esta
misma
situación
no
se
puede
mode-
lar
mediante
un
tipo
de
relación
ternaria,
vamos
a
ver
con
un
ejemplo
el
porqué.
Supongamos
que
creamos
un
diagrama
UML
para
representar
la
relación
Matrícula
mediante
una
clase
asociativa
de
tipo
ternaria
(ver
figura
25).
En
este
caso,
el
significado
del
modelo
es
diferente
del
que
planteábamos
en
el
ejemplo
anterior.
4. Tipos de entidad débiles
Se
define
un
tipo
de
entidad
fuerte32 como
un
tipo
de
entidad
cuyos
atributos
propios
permiten
formar
claves
can-
didatas
y,
por
tanto,
identificar
de
manera
unívoca
todas
sus
instancias.
La
existencia
de
las
instancias
de
un
tipo
de
entidad
fuerte
no
depende
de
ningún
otro
tipo
de
entidad
o
tipo
de
rela-
ción.
Es
decir,
la
semántica
detrás
de
una
entidad
fuerte
no
necesita
de
ninguna
relación
con
otras
entidades
que
com-
plementen
su
significado.
Se
define
un
tipo
de
entidad
débil33 como
un
tipo
de
entidad
cuyos
atributos
no
permiten
identificar
sus
entida-
des
completamente,
sino
que
solo
las
identifican
de
manera
parcial.
Estas
entidades
deben
participar
en
una
relación
con
otras
entidades
que
ayuden
a
identificarlas
de
manera
unívoca.
Un
tipo
de
entidad
débil,
por
lo
tanto,
necesita
una
aso-
ciación
con
otro
tipo
de
entidad
que
le
permita
identificar
de
manera
única
sus
instancias.
Esta
asociación
recibe
el
nombre
de
asociación
identificativa
del
tipo
de
entidad
débil.
El
tipo
de
entidad
débil
debe
tener
una
restricción
de
participación
total
respecto
a
su
asociación
identificativa
32.
Los
tipos
de
entidad
fuertes
también
se
pueden
denominar
tipos
de
entidad
propietarias,
dominantes
o
padres.
33.
Los
tipos
de
entidad
débiles
también
se
pueden
denominar
tipos
de
entidad
subordinadas
o
hijas.
©
Editorial
UOC
94
Diseño
conceptual
de
bases
de
datos
en
UML
puesto
que
de
no
ser
así,
habría
instancias
que
no
se
podrían
identificar
de
manera
única.
El
tipo
de
relación
identifica-
tiva
tiene
una
conectividad
1:N,
con
la
entidad
débil
en
el
lado
de
la
N.
Una
entidad
débil
no
tiene
sentido
si
se
elimina
la
entidad
con
la
que
está
relacionada.
Por
lo
tanto,
si
se
elimina
una
entidad,
hay
que
eliminar
las
entidades
débiles
que
depen-
den
de
ella.
En
los
diagramas
UML
un
tipo
de
entidad
débil
se
indica
mediante
una
nota
en
su
asociación
identificativa.
La
figura
26
muestra
la
notación
para
modelar
un
tipo
de
entidad
débil
utilizando
diagramas
UML.
Un
tipo
de
relación
identificativa
no
suele
tener
atributos,
puesto
que
en
las
relaciones
1:N
siempre
es
posible
mover
sus
atributos
al
tipo
de
entidad
débil,
es
decir,
en
la
parte
con
cardinalidad
N.
La
figura
27
muestra
el
tipo
de
entidad
débil
‘Día
del
mes’
(DayOfTheMonth) relacionada
con
‘Mes
del
año’
(Month),
que
a
su
vez
también
es
una
entidad
débil
relacionada
con
el
tipo
de
entidad
fuerte
‘Año’
(Year).
©
Editorial
UOC
95
Elementos
básicos
de
modelado
nados
La
clave
primaria
de
un
tipo
de
entidad
débil
está
formada
por
la
combinación
de
la
clave
primaria
del
tipo
de
entidad
relacionado
y
la
clave
parcial
del
tipo
de
entidad
débil.
La clave
parcial
de
un
tipo
de
entidad
débil
es
el
conjunto
de
atributos
que
permiten
identificar
de
manera
única
todas
sus
instancias
que
están
relacionadas
con
una
misma
instan-
cia
del
tipo
de
entidad
relacionada.
tificativa con el tipo de entidad fuerte (BankAccount)
5. Opciones de diseño
Hasta
este
punto
se
han
mostrado
los
elementos
de
mode-
lado
conceptual
más
comunes
en
el
diseño
de
bases
de
datos.
Conocer
qué
elementos
podemos
utilizar
para
modelar
un
dominio,
y
modelarlo
son
dos
cosas
muy
diferentes.
Crear
esquemas
conceptuales
tiene
mucho
de
arte
y
la
práctica
es
la
mejor
manera
de
convertirse
en
un
buen
modelador
conceptual.
Por
otro
lado,
hay
que
tener
en
cuenta
que
el
proceso
de
modelado
conceptual
no
es
determinista,
es
decir,
no
existe
un
único
diagrama
conceptual
para
un
problema
concreto
y,
por
tanto,
diferentes
diseñadores
pueden
generar
diferentes
esquemas
conceptuales
que
representen
la
misma
©
Editorial
UOC
97
Elementos
básicos
de
modelado
• El
proceso
de
diseño
conceptual
de
una
base
de
datos
se
puede
enfocar
como
un
proceso
iterativo
de
refina-
miento,
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
modelar
un
concepto
como
un
atributo
en
un
primer
momento,
y
en
refinamientos
poste-
riores
convertirlo
en
un
tipo
de
relación.
Modelar
el
atributo
como
una
relación
permite
categorizar
los
valores
de
este
concepto
y,
además,
que
se
puedan
añadir
nuevos
atributos
relacionados
con
el
dominio
del
atributo.
• Es
habitual
que
un
atributo
existente
en
varios
tipos
de
entidad
sea
convertido
en
un
nuevo
tipo
de
enti-
dad.
A
continuación
hay
que
establecer
relaciones
desde
los
tipos
de
entidad
que
contenían
este
atributo
hacia
el
nuevo
tipo
de
entidad34.
• También
puede
existir
el
refinamiento
inverso.
En
este
caso,
se
puede
eliminar
un
tipo
de
entidad
y
represen-
34.
De
atributo
a
tipo
de
entidad:
Si
los
tipos
de
entidad
Estudiante,
Profesor
y
Curso
tienen
el
atributo
departamento,
es
interesante
crear
el
nuevo
tipo
de
entidad
Departamento,
con
un
único
atributo
que
indica
el
nombre
del
departamento,
y
crear
tres
tipos
de
relación
binarias
entre
Estudiante,
Profesor
y
Curso,
y
el
nuevo
tipo
de
entidad
Departamento.
©
Editorial
UOC
98
Diseño
conceptual
de
bases
de
datos
en
UML
6. Criterios de asignación de nombres
En
el
diseño
del
esquema
conceptual
de
una
base
de
datos
es
importante
elegir
adecuadamente
los
nombres
de
los
tipos
de
entidad,
atributos
y
tipos
de
relación
que
aparecen
y
usar
criterios
homogéneos
en
todo
el
esquema.
El
objetivo
es
escoger
nombres
que
eviten
confusión
y
que
transmitan
de
la
mejor
manera
posible
el
significado
de
las
diferentes
estruc-
turas
del
esquema.
No
hay
una
normativa
clara
a
la
hora
de
bautizar
los
nom-
bres
de
los
diferentes
elementos
de
un
esquema
conceptual.
A
continuación
se
presentan
un
conjunto
de
criterios
basados
en
la
experiencia
y
el
gusto
particular
de
los
autores
de
este
libro.
El
primer
criterio
es
utilizar
el
inglés
para
definir
los
nom-
bres
de
los
elementos
del
esquema
conceptual.
Es
importante
escoger
qué
«dialecto»
o
tipo
de
lenguaje
utilizaremos.
Una
palabra
en
castellano
de
España,
por
ejemplo,
puede
tener
un
significado
diferente
en
Argentina
y
dar
lugar
a
confusiones
y
errores.
En
nuestro
caso,
utilizamos
el
inglés
americano.
Antes
de
asignar
un
nombre
a
un
elemento,
es
importan-
te
buscar
en
el
diccionario
para
comprobar
que
el
nombre
candidato
es
correcto
y
no
ofrece
ambigüedad.
También
es
©
Editorial
UOC
99
Elementos
básicos
de
modelado
35.
Grafía
Pascal:
la
primera
letra
del
identificador
y
la
primera
letra
de
las
siguientes
palabras
se
escriben
en
mayúscula.
El
resto,
en
minúscula.
Por
ejemplo:
BackColor.
36.
Grafía
Camel:
la
primera
letra
del
identificador
se
escribe
en
minúscula
y
la
primera
letra
de
las
siguientes
palabras
concatenadas,
en
mayúscu-
la.
El
resto,
en
minúscula.
Por
ejemplo:
backColor.
©
Editorial
UOC
100
Diseño
conceptual
de
bases
de
datos
en
UML
una
preposición
y
otro
verbo.
Al
igual
que
en
los
tipos
de
entidad,
las
etiquetas
de
los
tipos
de
relación
siguen
la
grafía
Pascal.
• Las
etiquetas
para
identificar
los
roles
de
las
entidades
en
las
relaciones
siguen
la
grafía
Camel.
7. Ejemplo completo
directores
de
departamento,
nos
interesa
poder
identi-
ficar
la
fecha
en
la
que
empezaron
a
ejercer
este
cargo.
3.
En
la
universidad
se
imparten
un
conjunto
de
asigna-
turas.
Nos
interesa
conocer
el
código
de
cada
una
de
estas,
el
nombre,
el
número
de
créditos,
la
descripción
y
los
prerrequisitos
de
cada
una
de
ellas.
Entendemos
como
prerrequisitos
de
una
asignatura
el
conjunto
de
otras
asignaturas
que
es
necesario
haber
cursado
para
poder
realizar
la
asignatura
con
éxito.
Además,
hay
que
tener
en
cuenta
que
una
asignatura
pertenece
a
un
único
departamento
y
es
impartida
por
un
único
profesor.
4.
Los
estudiantes
son
una
parte
muy
importante
de
la
base
de
datos.
De
ellos,
se
desea
almacenar
informa-
ción
sobre
sus
datos
personales
(nombre,
DNI,
edad,
sexo)
y
número
de
identificación
universitario
(cono-
cido
como
NIU).
5.
Cada
estudiante
puede
estar
matriculado
en
más
de
una
asignatura
en
cada
semestre.
Y
para
cada
una
de
las
asignaturas
en
las
que
está
matriculado
cada
semes-
tre
debemos
poder
almacenar
su
nota
final.
6.
También
se
quiere
dejar
constancia
de
las
fechas
de
inicio
y
final
de
cada
semestre.
A
partir
de
los
requisitos
expresados,
la
figura
29
muestra
un
posible
esquema
conceptual
que
representa
la
informa-
ción
expresada
en
los
puntos
anteriores.
Como
ya
se
ha
descrito,
este
modelo
no
es
único,
y
pueden
existir
diferen-
tes
aproximaciones
y
conceptualizaciones
válidas
para
una
misma
representación
del
mundo
real.
©
Editorial
UOC
103
Elementos
básicos
de
modelado
Figura 29. Diagrama del modelo conceptual para la base de datos de ges-
tión universitaria
Capítulo
IV
Elementos
avanzados
de
modelado
1. Generalización/especialización
(o
tipo
de
entidad
padre),
y
un
tipo
de
entidad
más
específi-
co,
denominado
subclase (o
tipo
de
entidad
hijo).
Figura 31. Ejemplo de generalización/especialización
importante
escoger
adecuadamente
los
posibles
participantes
de
un
tipo
de
relación
dentro
de
una
jerarquía
de
clases.
Por
ejemplo,
supongamos
el
ejemplo
de
la
figura
32,
que
extiende
el
ejemplo
anterior
con
información
de
donde
viven
las
personas
y
de
los
directores
de
departamento
de
la
universidad.
En
el
esquema
se
puede
ver
cómo
la
superclase
‘Persona’
(Person) participa
en
la
relación
‘vive’
(Lives) con
la
entidad
‘Población’
(City) y
la
subclase
‘Profesor’
(Professor)
participa
en
la
relación
‘dirige’
(Heads) con
la
entidad
‘Departamento’
(Department).
Evidentemente
no
tiene
sentido
considerar
que
cualquier
entidad
de
la
superclase
‘Persona’
puede
dirigir
un
departamento
y
hay
que
indicar
en
el
mode-
lo
conceptual
que
solo
aquellas
personas
que
son
entidades
de
la
subclase
‘Profesor’ pueden
dirigir
un
departamento.
Definiendo
la
relación
a
nivel
de
‘Profesor’ garantizamos
que
solo
los
profesores
puedan
dirigir
departamentos.
Por
lo
tanto,
un
proceso
de
generalización/especialización
permite38:
• Crear
una
taxonomía
de
tipos
de
entidad,
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
relación
adicionales
entre
los
tipos
de
entidad
específicos
(subclases)
y
otros
tipos
de
entidad.
1.1. ¿Cómo afecta la jerarquía de clases a las instancias?
Conceptualmente,
la
herencia
(o
jerarquía)
se
utiliza
para
especificar
tipos
de
entidad
más
específicos
y
que,
por
tanto,
contienen
menos
entidades.
Formalmente,
la
generalización/
especialización
entre
dos
clases
(superclase
y
subclase)
define
una
restricción
de
integridad
de
pertinencia
entre
las
dos
cla-
ses,
que
indica
que
toda
instancia
de
la
subclase
es
también
instancia
de
la
superclase.
Así
pues,
si
definimos
que
Jordi
Casas
es
una
instancia
de
la
clase
Profesor,
automáticamente
podremos
inferir
que
Jordi
Casas
es
también
una
Persona,
por-
que
Profesor es
subclase
de
Persona.
Las
relaciones
de
herencia
entre
clases
se
modelan
utilizando
relaciones
de
generaliza-
ción/especialización.
La
figura
33
muestra
una
posible
relación
entre
las
entida-
des
del
ejemplo
anterior.
Podemos
ver
que
hay
cinco
entida-
des
de
la
superclase
‘Persona’
(Person),
con
los
nombres
John,
Mary,
Paul,
Fred y
Sally,
dos
de
las
cuales
son
estudiantes
y
pertenecen
a
la
subclase
‘Estudiante’
(Student),
una
es
un
pro-
fesor
(Professor) y
otra
es
administrativo
(Administrative).
La
entidad
Mary no
pertenece
a
ninguna
de
las
subclases
y
solo
pertenece
a
la
superclase
Persona.
Figura 33. Ejemplo de la relación entre las entidades en una generalización/
especialización
1.2.
Factores
a
tener
en
cuenta
en
la
creación
de
jerarquías
de
clases
Hay
dos
motivos
principales
que
inducen
al
uso
de
las
rela-
ciones
de
generalización/especialización
entre
tipos
de
entidad:
Figura 34. Ejemplo de generalización/especialización que incorpora relacio-
nes
con
la
subclase
©
Editorial
UOC
115
Elementos
avanzados
de
modelado
En
el
momento
de
realizar
el
diseño
del
modelo,
se
puede
optar
por
una
estrategia
descendente
(top-down) y
empezar
diseñando
la
superclase
como
tipo
de
entidad
principal,
y
posteriormente
refinar
el
diseño
añadiendo
las
características
específicas
de
las
subclases.
Esta
metodología
de
diseño
recibe
el
nombre
de
proceso
de
especialización
y
ha
sido
la
emplea-
da
en
los
ejemplos
presentados
hasta
ahora.
La
estrategia
contraria,
basada
en
una
metodología
ascen-
dente
(bottom-up),
consiste
en
diseñar
las
subclases
y
poste-
riormente,
en
el
momento
de
darse
cuenta
de
las
caracterís-
ticas
comunes
entre
estas
subclases,
definir
la
superclase
que
las
une.
Esta
metodología
recibe
el
nombre
de
proceso
de
generalización
y
se
emplea
en
el
ejemplo
siguiente.
Supongamos
que
queremos
modelar
una
base
de
datos
para
mantener
información
sobre
los
vehículos
que
tiene
una
empresa.
En
un
momento
del
diseño
aparece
el
tipo
de
entidad
‘Coche’
(Car),
del
que
queremos
almacenar
el
número
de
bastidor,
la
matrícula,
la
marca,
el
modelo,
la
fecha
de
matriculación,
el
número
de
plazas
disponibles
y
si
es
un
vehículo
todoterreno
o
no.
Más
adelante,
en
la
misma
fase
de
diseño,
aparece
el
tipo
de
entidad
‘Camión’
(Truck),
del
que
queremos
almacenar
el
número
de
bastidor,
la
matrícula,
la
marca,
el
modelo,
la
fecha
de
matriculación,
el
peso
máximo
autorizado
de
carga
y
el
número
de
ejes
del
camión.
La
figura
35
muestra
el
diseño
conceptual
de
los
dos
tipos
de
entidad.
©
Editorial
UOC
116
Diseño
conceptual
de
bases
de
datos
en
UML
Pero
en
este
punto
el
diseñador
se
da
cuenta
de
que
los
dos
tipos
de
entidad
comparten
parte
de
los
atributos
y
de
que
sería
interesante
generalizar
esta
parte
común
para
obte-
ner
una
nueva
superclase
que
permita
identificar
un
vehí-
culo,
sea
camión
o
coche.
Por
lo
tanto,
se
crea
la
superclase
‘Vehículo’
(Vehicle),
que
contiene
todos
los
atributos
comunes
(el
número
de
bastidor,
la
matrícula,
la
marca,
el
modelo
y
la
fecha
de
matriculación).
Después
se
crean
dos
subclases
con
los
atributos
propios
de
cada
una
de
las
clases
anteriores.
La
figura
36
muestra
el
diseño
conceptual
después
del
proceso
de
generalización.
Figura 36. Ejemplo de generalización de los tipos de entidad ‘Coche’ (Car)
y
‘Camión’
(Truck)
©
Editorial
UOC
117
Elementos
avanzados
de
modelado
1.3. Restricciones en la generalización/especialización
• La
manera
en
que
se
clasifican
las
instancias
de
la
superclase
en
las
subclases.
• Si
se
permite
que
diferentes
subclases
compartan
ins-
tancias.
• Si
las
instancias
de
la
superclase
son
iguales
a
la
unión
de
las
instancias
de
sus
subclases.
A
continuación
se
describen
cada
una
de
estas
restriccio-
nes,
se
muestra
cómo
se
representan
en
UML
y
se
ejemplifi-
can
mediante
la
creación
de
algunos
esquemas
conceptuales.
1.3.1. Atributos discriminadores
En
caso
de
que
el
valor
del
atributo
de
una
superclase
determine
a
qué
subclase
pertenece
cada
entidad
de
la
super-
clase,
este
atributo
recibe
el
nombre
de
discriminador
o
atri-
buto
definitorio
y
se
dice
que
la
relación
de
generalización/
especialización
es
de
atributo
definido.
En
caso
de
que
no
exista
ningún
atributo
que
permita
identificar
la
pertenencia
de
las
entidades
a
las
diferentes
subclases,
se
dice
que
es
una
generalización/especialización
definida
por
el
usuario.
En
UML,
el
discriminador,
si
lo
hay,
se
indica
en
la
flecha
de
la
relación
de
generalización/especialización,
como
pode-
mos
ver
en
figura
38.
1.3.2. Restricción de exclusividad
39.
En
inglés,
disjoint.
40.
En
inglés,
overlapping.
©
Editorial
UOC
119
Elementos
avanzados
de
modelado
Figura 37. Ejemplo de generalización/especialización solapada
1.3.3. Restricción de participación
se
a
pertenecer
a
alguna
de
las
subclases.
De
acuerdo
con
su
participación,
la
herencia
entre
una
superclase
y
sus
subclases
puede
ser:
• Total41:
toda
entidad
de
la
superclase
debe
pertenecer
a
alguna
de
las
subclases.
• Parcial42 :
puede
haber
entidades
de
la
superclase
que
no
pertenezcan
a
ninguna
de
las
subclases.
41.
En
inglés,
complete.
42.
En
inglés,
incomplete.
©
Editorial
UOC
121
Elementos
avanzados
de
modelado
parcial (incomplete)
En
la
figura
39,
en
cambio,
se
presenta
una
herencia
simi-
lar,
pero
en
este
caso
es
completa.
El
hecho
de
que
sea
com-
pleta
implica
que
la
superclase
no
podrá
contener
entidades
propias
y,
por
lo
tanto,
será
un
tipo
de
entidad
abstracta.
Es
decir,
que
cualquier
entidad
de
‘Vehículo’ deberá
ser
un
coche
o
un
camión.
En
ambos
diagramas
se
indica
que
el
atributo
vehicleType es
el
discriminante
de
la
generalización/especia-
lización.
©
Editorial
UOC
122
Diseño
conceptual
de
bases
de
datos
en
UML
completa (complete)
Los
conceptos
de
restricciones
de
exclusividad y
de
partici-
pación son
independientes
entre
sí,
y,
por
lo
tanto,
se
pueden
combinar
para
dar
lugar
a
cuatro
posibles
restricciones
de
generalización/especialización:
• Disjunta
y
total
• Disjunta
y
parcial
• Solapada
y
total
• Solapada
y
parcial
1.4. Herencia simple y múltiple
Decimos
que
un
esquema
conceptual
utiliza
herencia
sim-
ple
cuando
todos
sus
tipos
de
entidad
tienen,
como
máximo,
una
superclase.
Como
resultado
de
esta
condición,
el
conjun-
to
de
relaciones
de
generalización/especialización
generan
una
estructura
de
clases
en
forma
de
árbol,
normalmente
llamado
taxonomía.
©
Editorial
UOC
123
Elementos
avanzados
de
modelado
Figura
40.
Ejemplo
de
herencia
simple
©
Editorial
UOC
124
Diseño
conceptual
de
bases
de
datos
en
UML
El
tipo
de
entidad
origen
de
la
jerarquía,
en
este
caso
el
tipo
de
entidad
‘Vehículo’,
se
llama
superclase
raíz
o
tipo
de
entidad
base
de
la
taxonomía.
Mientras
que
los
tipos
de
entidad
que
no
son
superclases,
en
este
caso
las
clases
‘Turismo’,
‘Todoterreno’
y ‘Camión’,
se
denominan
clases
hoja.
Diremos
que
un
esquema
conceptual
utiliza
herencia
múltiple
cuando
alguno
de
sus
tipos
de
entidad
tiene
más
de
una
superclase,
es
decir,
hereda
información
de
más
de
una
clase.
En
estos
casos,
se
obtiene
una
estructura
de
tipo
grafo
dirigido.
La
figura
41
muestra
un
esquema
conceptual
que
utiliza
herencia
múltiple.
En
el
esquema,
los
vehículos
se
espe-
cializan
en
vehículos
terrestres
(LandVehicle) o
acuáticos
(WaterVehicle).
Los
vehículos
terrestres
se
pueden
especiali-
zar
en
coches
(Car),
camiones
(Truck) o
vehículos
anfibios
(Amphibious).
Los
vehículos
anfibios
se
pueden
desplazar
por
tierra
y
por
medios
acuáticos,
y,
por
lo
tanto,
‘Anfibio’
también
es
una
especialización
del
tipo
de
entidad
‘Vehículo
acuático’,
junto
con
los
tipos
de
entidad
‘barco’
(Boat) y
‘sub-
marino’
(Submarine).
Como
el
tipo
de
entidad
‘Anfibio’ tiene
dos
supercla-
ses
(LandVehicle
y WaterVehicle),
estamos
ante
un
caso
de
herencia
múltiple.
Hay
que
señalar
que
si
un
atributo
o
relación
es
heredado
más
de
una
vez
por
caminos
dife-
rentes,
solo
se
incluye
una
vez
en
la
subclase.
Es
decir,
los
atributos
y
las
relaciones
de
la
clase
‘Vehículo’ solo
pueden
aparecer
una
única
vez
en
la
subclase
compartida.
©
Editorial
UOC
125
Elementos
avanzados
de
modelado
Figura 41. Ejemplo de herencia múltiple
1.5. Clasificación múltiple
tiene
dos
o
más
jerarquías
de
especialización
según
diferentes
discriminantes.
Cada
entidad
puede
pertenecer
a
diferentes
subclases
a
la
vez.
Partiendo
del
tipo
de
entidad
‘Persona’
(Person) podemos
establecer
un
proceso
de
especialización
para
definir
su
esta-
do
civil,
que
indique
si
la
persona
está
soltera
(Single),
casada
(Married),
divorciada
(Divorced) o
viuda
(Widowed).
Por
otro
lado,
una
persona
también
se
puede
especializar,
según
el
sexo,
en
‘Hombre’
(Man) o
‘Mujer’
(Woman).
La
figura
42
muestra
el
modelo
conceptual
descrito.
Este
esquema
deberá
utilizar
clasificación
múltiple
para
representar
a
las
personas,
ya
que
toda
persona
será
instancia
de
Hombre y
Mujer por
un
lado
y
de
Soltero,
Casado,
Divorciado y
Viudo por
otro.
Figura 42. Ejemplo de generalización/especialización con clasificación múltiple
2. Agregación y composición
Los
tipos
de
relación
son
elementos
de
modelado
genéricos
que
permiten
representar
cualquier
relación
entre
entidades
©
Editorial
UOC
127
Elementos
avanzados
de
modelado
2.1. Agregación
La
parte
que
representa
el
«todo»
recibe
el
nombre
de
compuesto
y
las
diferentes
«partes»
que
lo
componen
reciben
el
nombre
de
componentes.
En
UML
la
agregación
se
repre-
senta
como
una
asociación
pero
con
un
diamante
de
color
blanco
en
el
tipo
de
entidad
compuesto.
La
figura
43
muestra
un
ejemplo
de
agregación
entre
un
plato
(Dish) y
los
ingredientes
con
los
que
se
ha
preparado
43.
Relaciones
de
partOf
en
inglés.
©
Editorial
UOC
128
Diseño
conceptual
de
bases
de
datos
en
UML
Figura 43. Ejemplo de agregación
En
una
agregación
la
pertenencia
entre
las
partes
y
el
todo
no
es
exclusiva.
Es
decir,
una
parte
puede
pertenecer
a
más
de
un
compuesto.
Por
ejemplo,
el
ingrediente
‘Vino’ (entidad
de
‘Ingredient’)
podría
formar
parte
de
más
de
una
receta.
La
distinción
entre
tipos
de
relación
y
agregación
es
sutil,
y
a
menudo
subjetiva.
En
general,
se
considera
que
es
nece-
sario
que
haya
una
cierta
relación
de
ensamblaje,
sea
física
o
lógica,
entre
las
entidades
para
hablar
de
agregación en
lugar
de
tipo
de
relación.
La
única
restricción
que
añade
la
agrega-
ción
respecto
al
tipo
de
relación
es
que
las
cadenas
de
agrega-
ciones
entre
entidades
no
pueden
formar
ciclos.
2.2. Composición
La
composición es
un
tipo
concreto
de
agregación
donde
la
existencia
de
los
componentes
está
vinculada
a
la
existencia
del
compuesto
y
la
pertenencia
de
los
componentes
respecto
al
compuesto
es
exclusiva.
En
UML
la
composición
se
representa
de
la
misma
forma
que
la
agregación
pero
con
un
diamante
de
color
negro.
Como
ejemplo
podemos
pensar
en
el
conjunto
de
dedos
que
forman
una
mano.
La
figura
44
muestra
el
modelo
con-
ceptual
en
el
que
se
representa
la
composición
de
una
mano
(tipo
de
entidad
Hand)
como
conjunto
de
dedos
(tipos
de
entidad
Finger)
y
donde
cada
dedo
solo
puede
pertenecer
a
una
sola
mano.
Figura 44. Ejemplo de composición
3. Restricciones de integridad
Las
restricciones
de
integridad definen
condiciones
que
se
deben
cumplir
para
garantizar
que
la
instanciación
de
un
esquema
conceptual
es
correcta.
A
lo
largo
del
libro
se
han
ido
viendo
algunas
restricciones
de
integridad,
a
continuación
explicaremos
en
más
detalle
las
©
Editorial
UOC
130
Diseño
conceptual
de
bases
de
datos
en
UML
3.1. Restricciones en los tipos de entidad
Al
igual
que
en
los
atributos
y
los
tipos
de
relación,
también
es
posible
indicar
la
multiplicidad
de
los
tipos
de
entidad.
La
multiplicidad
de
un
tipo
de
entidad
establece
un
rango
de
posibles
cardinalidades
para
las
entidades
para
un
determi-
nado
tipo
de
entidad.
Es
decir,
indica
cuántas
instancias
de
un
determinado
tipo
de
entidad
puede
haber
en
la
base
de
datos.
Generalmente,
y
por
defecto,
la
multiplicidad
de
un
tipo
de
entidad
es
indefinida,
pero
algunas
veces
puede
ser
interesante
poder
limitar
el
número
de
instancias
de
un
tipo
de
entidad.
Por
ejemplo,
supongamos
que
queremos
modelar
una
base
de
datos
para
gestionar
pequeñas
o
medianas
empresas.
Además
de
toda
la
información
que
sea
necesaria
(clientes,
proveedores,
productos,
etc.)
hay
que
almacenar
los
datos
de
la
empresa
(CIF,
nombre,
dirección,
etc.).
Una
manera
de
modelar
este
requisito
es
crear
un
tipo
de
entidad
que
per-
mita
almacenar
esta
información.
Como
solo
va
a
haber
una
empresa,
se
debe
especificar
una
multiplicidad
igual
a
1
para
el
tipo
de
entidad.
La
figura
45
muestra
el
diagrama
UML
de
este
tipo
de
entidad.
3.2. Restricciones en los atributos
En
la
definición
de
los
atributos
hemos
visto
algunas
res-
tricciones
básicas
asociadas
a
los
atributos.
Estas
restricciones
son
las
siguientes:
• Restricciones
de
dominio:
son
las
restricciones
asocia-
das
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
su
valor
a
partir
de
otros
atributos
y
que,
por
lo
tanto,
implícitamente
son
atributos
de
solo
lectura
desde
el
punto
de
vista
del
usuario
o
de
la
aplicación.
No
obs-
tante,
su
valor
puede
cambiar
si
cambia
el
valor
de
los
atributos
de
los
que
dependen.
La
figura
46
muestra
el
tipo
de
entidad
Person,
donde
podemos
ver
dos
atributos
que
no
permiten
modificación
(ID y
birthDate).
3.3. Restricciones en los tipos de relación
A
continuación
presentamos
otras
restricciones
de
integri-
dad
que
se
pueden
utilizar
en
las
asociaciones
para
permitir
una
mayor
expresividad
del
esquema
conceptual.
©
Editorial
UOC
133
Elementos
avanzados
de
modelado
3.3.1. Restricciones de cardinalidad mín..máx
Además
de
todas
las
restricciones
referentes
a
la
cardinali-
dad
de
las
relaciones
que
hemos
visto,
es
posible
indicar
un
valor
o
rango
concreto
en
la
cardinalidad
de
una
relación.
Para
indicar
un
rango
en
UML,
se
expresa
el
valor
mínimo
seguido
de
dos
puntos
y
el
valor
máximo
(mín..máx).
La
figura
47
modela
una
situación
en
la
que
un
empleado
(Employee) solo
puede
pertenecer
a
un
único
departamento
(Department) y
cada
departamento
debe
tener
entre
10
y
50
empleados.
3.3.2. Restricciones xor
Esta
restricción
se
utiliza
para
indicar
que
las
entidades
de
un
tipo
de
entidad
solo
pueden
participar
en
uno
de
un
con-
junto
de
tipos
de
relación
predefinido.
Por
ejemplo,
supon-
gamos
que
un
coche
puede
pertenecer
a
una
persona
o
a
una
empresa.
En
este
caso,
habría
que
crear
dos
tipos
de
relación
para
representar
la
propiedad
del
coche
y
se
debería
añadir
la
restricción
de
integridad
para
indicar
que
para
cada
instancia
de
coche,
solo
una
de
las
dos
relaciones
es
válida.
Para
modelar
la
situación
descrita
en
el
párrafo
anterior,
la
figura
48
muestra
los
tipos
de
relación
que
unen
los
tipos
de
entidad
‘Coche’
(Car) con
los
tipos
de
entidad
‘Persona’
(Person)
y
‘Empresa’
(Enterprise).
Los
dos
tipos
de
relación
están
restrin-
©
Editorial
UOC
134
Diseño
conceptual
de
bases
de
datos
en
UML
gidos
con
la
restricción
xor,
indicando
que
un
coche
ha
de
ser
de
una
persona
o
de
una
empresa,
pero
no
de
ambos
a
la
vez.
3.3.3. Restricciones subset
ja
para
el
departamento
de
finanzas
y,
en
consecuencia
‘Pere
Pi’ deberá
estar
relacionado
con
‘Finanzas’ por
la
relación
‘Belongs
To’.
De
no
ser
así,
querría
decir
que
‘Pere
Pi’ no
traba-
ja
en
el
departamento
de
finanzas
y
no
puede
ser
su
director.
Figura 49. Ejemplo de restricción subset
3.3.4. Restricciones ordered
En
la
figura
50
podemos
ver
un
esquema
UML
que
repre-
senta
el
ejemplo
comentado.
Para
indicar
la
restricción
de
orden
hemos
puesto
la
palabra
{ordered},
en
el
extremo
del
tipo
de
relación
afectado.
Figura 50. Ejemplo de restricción ordered
3.3.5. Restricciones de cambiabilidad
Al
igual
que
en
los
atributos,
se
puede
indicar
si
los
valores
del
extremo
de
una
relación
pueden
cambiar
o
no.
En
UML,
esta
restricción
se
representa
mediante
el
uso
de
las
pala-
bras
reservadas
antes
comentadas
(frozen,
readOnly,
addOnly,
removeOnly) en
el
extremo
del
tipo
de
relación
que
se
quiera
restringir.
Para
poder
comparar
diferentes
ejemplos
relacionados
con
la
cambiabilidad,
la
figura
51
muestra
tres
situaciones
dife-
rentes
en
las
que
intervienen
los
mismos
tipos
de
entidad.
En
la
primera,
representamos
la
ciudad
donde
vive
una
persona,
que
evidentemente
puede
cambiar.
Por
lo
tanto,
el
extremo
de
la
asociación
que
conecta
con
el
tipo
de
entidad
‘ciudad’
(City) es
cambiable
o
no
restringida
(opción
por
defecto).
En
la
segunda
situación,
representamos
el
lugar
de
nacimiento
de
una
persona,
y
en
este
caso
etiquetamos
como
congelado
el
extremo
de
esta
asociación
ya
que
una
persona
no
puede
cambiar
el
lugar
donde
nació.
Finalmente,
si
consideramos
las
ciudades
donde
ha
vivido
una
persona,
etiquetamos
con
el
atributo
‘addOnly’,
puesto
que
la
lista
de
ciudades
donde
©
Editorial
UOC
137
Elementos
avanzados
de
modelado
ha
vivido
una
persona
puede
aumentar,
pero
no
modificar
o
eliminar
valores
existentes.
Figura 51. Ejemplos de restricciones de cambiabilidad en los tipos de
relación
3.4. Otras restricciones
En
el
análisis
de
requisitos
podemos
encontrar
restriccio-
nes
de
integridad
muy
difíciles
o
imposibles
de
representar
mediante
las
estructuras
predefinidas
del
lenguaje
de
mode-
lado
que
usemos.
Generalmente,
para
representar
estas
restricciones
se
utilizan
notas
ligadas
a
los
tipos
de
entidad,
atributos
o
tipos
de
relación
a
los
que
hacen
referencia.
La
figura
52
muestra
tres
notas
que
permiten
notacio-
nes
de
cualquier
tipo
para
clarificar
conceptos
del
modelo,
asociadas
a
un
tipo
de
entidad,
un
atributo
o
un
tipo
de
relación.
©
Editorial
UOC
138
Diseño
conceptual
de
bases
de
datos
en
UML
Figura 52. Ejemplo de uso de notas para indicar requisitos o restricciones
del modelo
4. Modelado de datos históricos
Generalmente
las
bases
de
datos
representan
el
estado
del
dominio
de
interés
en
un
momento
determinado
del
tiempo.
Cuando
se
produce
un
cambio
de
estado
en
el
mundo
real,
la
base
de
datos
se
actualiza
y
se
pierde
la
información
anterior.
No
obstante,
para
algunas
aplicaciones
es
importante
tener
información
histórica
con
el
objetivo
de
ver
y
analizar
cómo
han
evolucionado
las
cosas.
Cuando
se
quiera
representar
información
histórica,
se
modelará
el
tiempo
asociado
a
los
conceptos
de
interés
mediante
instantes
o
intervalos
de
tiempo.
En
función
de
los
requisitos
del
sistema,
las
necesidades
de
información
tempo-
ral
serán
diferentes
y
escogeremos
uno
u
otro.
En
caso
de
querer
relacionar
una
entidad
o
una
relación
con
un
instante
de
tiempo,
se
podrá
hacer
de
dos
formas:
©
Editorial
UOC
139
Elementos
avanzados
de
modelado
• Añadiendo
un
atributo
de
tipo
‘fecha
y
hora’
en
el
tipo
de
entidad
o
tipo
de
relación
que
contenga
el
elemen-
to
de
interés.
• Añadiendo
una
relación
con
el
tipo
de
entidad
‘fecha’
(Date),
que
contiene
un
atributo
de
tipo
‘fecha
y
hora’.
• En
caso
de
tratarse
de
un
tipo
de
entidad
o
un
tipo
de
entidad
asociativo,
se
pueden
añadir
dos
atributos
de
tipo
fecha
y
hora
en
el
tipo
de
entidad
para
indicar
el
inicio
y
el
final
del
intervalo.
• En
caso
de
tratarse
de
un
tipo
de
relación,
hay
que
añadir
un
nuevo
participante
en
el
tipo
de
relación.
El
nuevo
participante
será
una
entidad
‘Fecha’
(Date) que
determinará
los
tiempos
inicial
y
final
del
intervalo.
Por
ejemplo,
supongamos
que
una
empresa
tiene
un
con-
junto
de
vehículos
y
un
conjunto
de
comerciales
y
personal
técnico
que
los
utiliza.
Según
las
tareas
y
las
visitas
de
cada
día,
cada
uno
de
los
comerciales
y
los
técnicos
puede
nece-
©
Editorial
UOC
140
Diseño
conceptual
de
bases
de
datos
en
UML
sitar
un
vehículo
diferente.
Por
lo
tanto,
a
esta
empresa
le
interesará
saber
qué
coche
ha
estado
utilizando
cada
uno
de
los
comerciales
y
técnicos
en
el
pasado
(por
ejemplo,
en
caso
de
recibir
una
sanción
de
tráfico).
Como
una
persona
no
usa
el
vehículo
en
un
momento
concreto
del
tiempo,
sino
que
lo
utiliza
en
un
intervalo,
deberemos
utilizar
intervalos
de
tiem-
po
para
modelar
la
información
temporal.
Para
ello,
creare-
mos
un
tipo
de
relación
cuaternaria
en
la
que
participan
los
tipos
de
entidad
‘Empleado’,
’Vehículo’,
‘Fecha’ y
‘Fecha’.
Dos
de
los
participantes
de
la
relación
son
‘Fecha’
para
poder
representar
el
inicio
y
el
fin
del
intervalo
(desde
que
empieza
a
usar
el
vehículo
hasta
que
lo
devuelve).
La
figura
53
mues-
tra
un
modelo
que
implementa
la
situación
descrita.
La
tabla
2
muestra,
a
modo
de
ejemplo,
una
posible
con-
figuración
de
entidades
del
ejemplo
anterior
en
un
instante
de
tiempo
concreto.
©
Editorial
UOC
141
Elementos
avanzados
de
modelado
5. Ejemplo completo
de
teléfono.
Para
los
profesores
que
son
directores
de
departamento,
nos
interesa
poder
identificar
la
fecha
en
la
que
empezaron
a
ejercer
este
cargo.
3.
En
la
universidad
se
imparte
un
conjunto
de
asignatu-
ras.
Interesa
saber,
para
cada
una
de
estas
asignaturas,
el
código,
el
nombre,
el
número
de
créditos,
la
descrip-
ción,
si
tiene
laboratorio
asociado
y
sus
prerrequisitos.
Además,
hay
que
tener
en
cuenta
que
una
asignatura
pertenece
a
un
único
departamento.
4.
Los
departamentos
están
agrupados
en
escuelas
o
facultades.
Por
ejemplo,
el
departamento
de
matemá-
ticas
pertenece
a
la
facultad
de
ciencias.
Un
departa-
mento
pertenece
a
una
única
escuela
o
facultad.
5.
Los
estudiantes
son
una
parte
muy
importante
de
la
base
de
datos.
Se
quiere
almacenar
información
sobre
los
datos
personales
de
estos
estudiantes
(nombre,
DNI,
fecha
de
nacimiento,
sexo,
dirección
y
números
de
teléfono)
y
su
número
de
identificación
universita-
ria
(conocido
como
NIU).
6.
Cada
estudiante
puede
estar
matriculado
de
varias
asignaturas
en
cada
semestre.
Y
para
cada
una
de
las
asignaturas
en
las
que
está
matriculado
cada
semestre,
debemos
almacenar
una
nota
final.
7.
También
se
quiere
dejar
constancia
de
las
fechas
de
inicio
y
final
de
cada
semestre.
8.
Las
asignaturas
se
agrupan
en
los
diferentes
cursos
que
forman
cada
uno
de
los
grados
que
ofrece
la
universi-
dad.
Por
ejemplo,
la
asignatura
de
Álgebra
pertenece
al
primer
curso
del
grado
de
Matemáticas.
Sobre
cada
uno
de
los
cursos
solo
nos
interesa
almacenar
el
con-
junto
de
asignaturas
que
lo
forman.
Sobre
cada
uno
©
Editorial
UOC
143
Elementos
avanzados
de
modelado
A
partir
de
los
requisitos
expresados,
la
figura
54
muestra
un
diagrama
del
modelo
conceptual.
Como
hemos
comenta-
do,
este
modelo
no
es
único,
sino
que
puede
haber
diversas
aproximaciones
e
interpretaciones
válidas
para
una
misma
representación
del
mundo
real.
©
Editorial
UOC
144
Diseño
conceptual
de
bases
de
datos
en
UML
Resumen
permite
la
optimización
de
la
base
de
datos
y
la
gestión
de
la
seguridad
relacionada
con
los
usuarios
y
las
aplicaciones
de
la
base
de
datos.
Lógicamente,
habrá
que
realizar
la
carga
de
los
datos
previamente,
puesto
que
el
tamaño
de
las
tablas,
los
tipos
de
consultas
y
las
frecuencias
de
estas
son
elementos
importantes
para
optimizar
el
acceso
a
los
datos
por
parte
del
sistema
gestor.
En
el
segundo
capítulo
hemos
visto
el
proceso
de
diseño
conceptual.
Este
proceso
es
una
de
las
etapas
del
diseño
de
bases
de
datos,
concretamente,
es
la
segunda
etapa,
y
se
rea-
liza
después
del
análisis
de
requisitos.
El
diseño
conceptual
permite
crear
un
esquema
conceptual
de
alto
nivel
e
inde-
pendiente
de
la
tecnología
de
implementación
a
partir
de
las
especificaciones
y
los
requisitos
de
un
problema
del
mundo
real.
El
enfoque
de
este
material
nos
ha
permitido
ver
las
bases
del
diseño
conceptual
empleando
los
diagramas
UML
como
sistema
de
notación.
En
la
introducción,
correspon-
diente
a
la
primera
parte
de
este
material,
hemos
detallado
las
bases,
los
objetivos
y
los
requisitos
del
diseño
conceptual
y
de
los
diagramas
en
lenguaje
UML.
En
la
segunda
parte,
hemos
descrito
los
elementos
básicos
de
modelado
en
el
diseño
conceptual.
Entre
los
elementos
principales
hay
que
desta-
car
los
tipos
de
entidad,
los
atributos
y
los
tipos
de
relación.
Además
de
estos
tres
elementos,
que
forman
la
base
principal
del
modelo
conceptual,
también
hemos
visto
los
tipos
de
entidades
asociativas
y
los
tipos
de
entidades
débiles,
que
permiten
una
mayor
riqueza
en
la
representación
del
modelo
conceptual.
Finalmente,
en
la
tercera
parte
de
este
material,
hemos
visto
algunos
de
los
elementos
avanzados
en
el
diseño
conceptual.
Los
elementos
descritos
en
la
parte
anterior
no
permiten
representar
fácilmente
situaciones
que
encontra-
©
Editorial
UOC
147
Resumen
mos
en
el
mundo
real
y
que
queremos
poder
representar
en
nuestro
modelo.
Fruto
de
esta
necesidad
se
extiende
el
mode-
lo
para
incluir
conceptos
como
la
generalización/especiali-
zación,
la
agregación
o
la
composición,
que
permiten
una
mayor
riqueza
en
la
representación
del
modelo
conceptual.
Para
finalizar
este
texto,
nos
hemos
referido
brevemente
a
las
restricciones
de
integridad
básicas
y
al
modelado
de
datos
históricos.
https://dogramcode.com/bases-de-datos
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
149
Glosario
Glosario
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
150
Diseño
conceptual
de
bases
de
datos
en
UML
grado
de
una
relación m.
Número
de
entidades
que
aso-
cia
la
relación.
entidad f.
Objeto
del
mundo
real
que
podemos
distinguir
del
resto
de
objetos
y
del
cual
nos
interesan
algunas
propie-
dades.
tipo
de
relación m.
Asociación
entre
entidades.
tipo
de
relación
recursiva m.
Asociación
a
la
cual
alguna
entidad
está
asociada
más
de
una
vez.
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.
En
inglés
entity-relationship
model
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
inglés
database
management
system (DBMS)
lenguaje
unificado
de
modelado m.
Lenguaje
gráfico
para
modelar,
visualizar,
especificar,
construir
y
documentar
sistemas
de
software
o
de
bases
de
datos.
Sigla
UML.
En
inglés
unified
modeling
language
(UML)
https://dogramcode.com/bases-de-datos
©
Editorial
UOC
151
Bibliografía
Bibliografía
https://dogramcode.com/bases-de-datos
https://dogramcode.com/bases-de-datos