DisenoBD modeloER II 20
DisenoBD modeloER II 20
DisenoBD modeloER II 20
Entidad Atributo
Relación
Ejemplo
nota sigla
ci
nombre
nombre Alumno Inscrip Materia
creditos
sexo
direc area
gestión
Tipos de Relaciones
Binarias
Alumno Inscrip Materia
Ternarias
Alumno Inscrip Materia
Carrera
Cardinalidad de Relaciones
Representa el
1:1 1 1
número de
entidades con
que se puede
1:n 1 n
vincular otra
entidad.
Ej. Una entidad
n:1 n 1 alumno se puede
vincular con
varias entidades
n:m n m materia
Diferentes notaciones
Notaciones usadas
en herramientas de
1:1 1 1
diseño.
1:n 1 n
n:1 n 1
n:m n m
Resolviendo el ejercicio propuesto
con el modelo ER
Aunque no es una regla, para identificar entidades, atributos y
relaciones, puede ayudar la siguiente asociación:
Diagrama ER Relaciones
(Tablas)
Entidad => Tabla
Relación => Tabla/Columna
Atributo => Columna
Entidad => Tabla
nota sigla
ci
nombre
nombre Alumno inscribe Materia
creditos
sexo
direc gestión area
ALUMNO
Ci nombre sexo Direc
4 Juan M Sucre 3
9 Pedro M América 4
8 Ana F Oquendo 7
6 Juan M Belzu 4
2 Julia F América 6
Entidad => Tabla
calif sigla
ci
nombre
nombre Alumno nota Materia
creditos
sexo
direc gestión area
MATERIA
MATERIA
1:1
n:m
1:n
opción3 : Representar la relación en Materia
Se puede
representar la
relación nota en la Alumno nota Materia
tabla materia sólo
cuando la relación
es 1:1 o 1:n
1:1
n:1
n:m
1:n
En general para pasar un
relación a tablas
Intentar usar la menor cantidad de tablas
Cuando la relación es n:m usar una tercera tabla
para representar la relación (nota en el ejemplo)
Cuando la relación es 1:n, usar la tabla n para
representar la relación
Cuando la relación es 1:1, usar cualquiera de las
tablas (alumno o materia en el ejemplo)
Decisiones del diseñador
(Necesita buena comprensión de la empresa
que modela)
saldo nro
nro cod
ci
nombre
C nombre Cliente cuenta Sucursal
ciudad
sexo
direc saldo
nro
ci
nombre Cliente Cuenta sucural
D
sexo
direc saldo
OpcionA: Puedo tener clientes que tiene cuentas (sin sucursal) y
cuentas sin cliente que pertenecen a una sucursal
nro cod
ci
direc
nombre Cliente n n Cuenta n 1 Sucursal
ciudad
sexo
direc saldo
OpcionB: La relación entre cliente y cuenta puede representarse unicamente si existe
la sucursal correspondiente
cod
ci
n 1 direc
nombre Cliente R Sucursal
sexo ciudad
direc n
Cuenta
saldo nro
OpcionC: Un cliente puede tener una cuenta en n sucursales. Una sucursal puede tener n clientes.
No se puede representar convenientemente que n clientes pueden tener una misma cuenta
nro cod
ci
n n nombre
nombre Cliente cuenta Sucursal
ciudad
sexo
direc saldo
OpcionD: Sucursal es un atributo de cuenta. No puedo guardar datos de sucursal.
ci nro
nombre Cliente n n Cuenta sucursal
sexo
direc saldo
Diferencias entre A,B
cod
nro
A
ci
direc
ciudad
sexo
direc saldo
cod
ci
B direc
ciudad
sexo
direc
Cuenta
saldo nro
Diferencias entre C,D
cod
nro
ci
C direc
ciudad
sexo
direc
saldo
nro
ci
D
Cuenta
nombre Cliente sucural
sexo
direc saldo
Diferencias entre A,B,C,D
nro cod
A ci
nombre
cod
ci
nombre
B
nombre Cliente R Sucursal
ciudad
sexo
direc Cuenta
saldo nro
nro cod
ci
nombre
C
nombre Cliente cuenta Sucursal
ciudad
sexo
direc saldo
nro
ci
sexo
direc saldo
Relaciones que vinculan n
entidades 1
n E i+1
E1
n 1
.E2 R E i+2
.
. .
. .
.
Ei
n 1 .
En
Docente Administrativo
Docente Administrativo
Empleado(ci,nom,sexo,fec_ing)
Docente(ci,grado,tipo)
Administrativo(ci,cargo,dpto)
OPCIÓN 2
Docente(ci,grado,tipo, nom,sexo,fec_ing)
Administrativo(ci,cargo,dpto, nom,sexo,fec_ing)
ci nom sexo
Fec_ing
Empleado ISA => Tablas
Docente Administrativo
grado tipo cargo dpto
OPCIÓN 1
Docente(ci,,grado,tipo, nom,sexo,fec_ing))
Administrativo(ci,cargo,dpto,nom,sexo,fec_ing)
OPCIÓN 2
Empleado(ci,nom,sexo,fec_ing)
Docente(ci,grado,tipo)
Administrativo(ci,cargo,dpto)
a# a2 a3
ISA => Tablas a1
A
B1 B2 BK
…….
b11 b12 b21 b22 bk1 bk2
OPCIÓN 1
A(a#,a1,a2,a3)
Crear tabla para A B1(a#,b11,b12)
Crear tabla para Bs (key de A es atribu1to de Bs) B2(a#,b21,b22)
..
Bk(a#,bk1,bk2)
nro
ci
nombre Empl trabaja Proyecto
sexo
direc
usa
maquina
Diagrama ER: Agregación
Para poder expresar relaciones entre relaciones
Empleados trabajan para un proyecto en un lugar y
usan n diferentes máquinas para su trabajo. Para cada
trabajo usan varias máquinas, cada máquina en un
horario (trabaja y usa deben ser diferentes relaciones)
nro lugar
ci
nombre Empl trabaja Proyecto
sexo
direc lugar
usa
nro
No se ve la
relación entre
horario maquina usa y trabaja
Diagrama ER: Agregación
Para poder expresar relaciones entre relaciones
Empleados trabajan para un proyecto en un lugar y
usan n diferentes máquinas para su trabajo. Para cada
trabajo usan varias máquinas, cada máquina en un
horario (trabaja y usa deben ser diferentes relaciones)
nro lugar
ci
nombre Empl trabaja Proyecto
sexo
direc
Una relación
usa
horario vincula
entidades (no
maquina relaciones!)
Diagrama ER: Agregación
Para poder expresar relaciones entre relaciones
Empleados trabajan para un proyecto en un lugar y
usan n diferentes máquinas para su trabajo. Para cada
trabajo usan varias máquinas, cada máquina en un
horario (trabaja y usa deben ser diferentes relaciones)
horario nro lugar
ci
nombre Empl Trabaja-usa Proyecto
sexo
direc
No se ve que
maquina para cada
trabajo usan n
diferentes
máquinas
Diagrama ER: Agregación
Para poder expresar relaciones entre relaciones
Tratamos la relación como una entidad de alto nivel
trabaja
nro lugar
ci
nombre Empl trabaja Proyecto
sexo
direc
usa
horario
maquina
Agregación => Tablas
trabaja
nro lugar
ci
nombre Empl trabaja Proyecto
sexo
direc
usa
horario
maquina
Empl( ...)
Proyecto( ...)
Maquina ( ...)
Trabaja ( ...)
Usa (cp maquina, cp trabaja, atributos de usa)
Ejercicio
Los siguientes modelos han sido obtenidos
como parte del proceso de diseño de una
base de datos que permita guardar la
información del detalle de notas de los
alumnos (inclusive de evaluación continua
con los diferentes instrumentos).
Elija una de las opciones y justifique su
respuesta con ejemplos de datos.
Ejercicio: Elija una opción, justifique su respuesta (intente pasar
los diagramas a tablas antes de justificar su elección)
OPCION 1
OPCION 2
OPCION 1
notaFinal
gestion
paralelo docente codM
ci
nom alumno inscrip nombre
Materia
sexo area
direc nota
fecha
codI
descrip
Instrumento
valoracion
OPCION 2
notaFinal
gestion
paralelo docente codM
ci
nom alumno inscrip nombre
Materia
sexo area
direc
fecha nota
tiene
codI
descrip
Instrumento
valoracion
OPCION 1
OPCION 2
Ejercicio
Se quiere guardar información sobre
medicamentos para una farmacia. Un mismo
medicamento puede tener varios nombres
comerciales dependiendo de la línea que
produce el mismo. Asimismo, cada
medicamento comercial puede tener varias
presentaciones.
Hacer el modelo entidad relación y pasarlo a
tablas
Ejercicio: Elija una opción, justifique su
respuesta (intente pasar los diagramas a tablas
antes de justificar su elección)
produce
CodL nomComercial codM
nombre llabo produce nombre
Medicamento
pais tipo OPCION 2
categoria
tiene
codP
concentr
presentacion
tipo
OPCION 1
CodL nomComercial codM
nombre Labo produce nombre
Medicamento
pais tipo
categoria codP
concentr
presentacion
tipo
OPCION 2
produce
CodL nomComercial codM
nombre Labo produce nombre
Medicamento
pais tipo
categoria
tiene
codP
concentr
presentacion
tipo
Respuesta
NomComercial
Presentacion
Labo(codL,nomb,pais,categoria)
medicamento(codM,nom,tipo,categoria)
presentacion(codP,concentracion,tipo)
Produce(codL,codM,codP,nomComercial)
Datos
produce
codL codM codP nomComercial
B A P1 Amoval
B A P2 Amoval
B A P3 Amoval
B A P4 Amoval
L A P2 Amoxilar
L A P3 Amoxilar
L A P4 Amoxilar
L A P5 Amoxilar
nuevo
NomComercial
tiene
Presentacion
Datos
produce tiene
Nosotros usaremos la
notación básica
Herramientas de apoyo para
modelar una BD
Si deseas, puedes apoyar tu trabajo de diseño usando estas herramientas
Power Designer
– Genera bd para diferentes gestores
– Permite trabajar con el modelo conceptual, y a partir de él puede
generar el modelo lógico y el modelo físico
Visual Paradigm (libre, acceso directo por internet)
– Genera bd para diferentes gestores
– Permite trabajar con el modelo conceptual, y a partir de él puede
generar el modelo lógico y el modelo físico.
Draw io (libre, acceso directo por internet)
– Conectores no inteligentes (más moroso)
Etc.
Herramientas para modelar:
Power Designer
Modelo
conceptual
Modelo
Lógico
Herramientas para modelar:
Visual Paradigm (Modelo Conceptual)