DisenoBD modeloER II 20

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 75

Diseño de una BD

 Dado un conjunto de datos, decidir la estructura


lógica adecuada (relaciones, atributos en el
modelo relacional) para organizar los datos y
almacenarlos.
 Arte más que ciencia (aunque existen
principios).
Diseño de una BD
 Objetivos del diseño de una base de datos
operacional:
– Almacenar toda la información NECESARIA
– Eliminar redundancias
– Usar la menor cantidad posible de tablas
Problema
Se desea construir una base de datos que almacena la carta
de un restaurante. Para cada plato se desea obtener su
nombre, descripción, nivel de dificultad de elaboración,
precio de venta. Cada plato pertenece a una categoría. Las
categorías se caracterizan por su nombre, una breve
descripción y el nombre del encargado. Además de los
platos, se desea conocer la recetas para su realización, con
la lista de ingredientes necesarios, aportando la cantidad
requerida, las unidades de medida (gramos, litros, etc) y
cantidad actual en almacén.
También se quiere guardar información de los clientes y
pedidos que hacen al restaurante. Es importante tener
registrados los datos del cliente para la emisión de la factura
así como su dirección y teléfono para enviar el pedido.
Problema
Sigue los sgtes pasos:
1. (5 minutos) Trabaja de manera individual para definir
Relaciones (tablas) y atributos para poder almacenar todos los
datos necesarios. Tu salida debería ser:
Tabla1(a1,a2,a3…)
Tabla2(a4,a5,…)
Es decir, la especificación de las tablas, atibutos y claves principales, claves
ajenas.
2. (10 minutos) Trabajo en equipo: A partir de tu diseño, discute
en tu grupo para consensuar la mejor alternativa.
¿Cómo empiezo para no perderme?

Necesito una estrategia para entender los datos, cómo están


relacionados y cómo trabajan en conjunto. Una representación
visual ayudará a evitar que me pierda en el detalle y pueda ver la
esencia de los datos que necesito almacenar y gestionar.
Pasos para diseñar una BD
1. Capturar requerimientos de información
– Entrevistas
– Cuestionarios
– Observación in situs
– Análisis de documentos (formularios, BDs existentes)
2. Hacer el modelo semántico o modelo conceptual
– Modelo ER
– Diagrama de clases de UML
3. Pasar el modelo coceptual a tablas (modelo lógico)
4. Normalizar
5. Implementar la base de datos en un DBMS (modelo físico)
Diseño de una BD: Fases del Diseño
Diseño Conceptual Diseño Lógico Diseño Físico

• Diagrama ER • Relaciones • Tablas (DBMS


(modelo (modelo particular)
semántico) relacional) ESQUEMA
ESQUEMA FÍSICO
LÓGICO

 Diseño conceptual: Diagrama ER (modelo semántico)


 Diseño lógico: esquema lógico (depende del modelo de datos, en
nuestro caso el modelo relacional)
 Entrada: Diagrama ER
 Salida: Relaciones (si usamos el modelo relacional)- tablas
 Diseño físico: esquema físico (implementación en un DBMS
concreto)
 Entrada: Relaciones
 Salida: Tablas implementadas en un DBMS
Diseño conceptual:
Modelo Entidad Relación

El modelo entidad relación (modelo ER)


• Es un método para diseñar un esquema con los elementos esenciales
de una base de datos que posteriormente será implementada en un
DBMS
• Ofrece elementos para analizar y representar esquema semántico de
la BD en función a análisis de requerimientos de información
Diseño conceptual:
Cada entidad
Diagrama Entidad Relación representa una
fila de la tabla

 Entidad = Objeto (persona/lugar/cosa) del


cual interesa almacenar información.
 Relación= Vínculo entre entidades (define
cómo interactúan)
– Bidireccionales
– Binarias, ternarias
– 2 Es pueden tener 2 diferentes relaciones
 Atributo= Característica, propiedad o dato
de una Entidad o de una Relación
Diagrama Entidad-Relación
 Representa la estructura lógica global de una BD
 Notación

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:

Entidades = nombres Relaciones=verbos Atributos=propiedades

Se desea construir una base de datos que almacena la carta de un


restaurante. Para cada plato se desea obtener su nombre,
descripción, nivel de dificultad de elaboración, precio de venta. Cada
plato pertenece a una categoría. Las categorías se caracterizan por
su nombre, una breve descripción y el nombre del encargado.
Además de los platos, se desea conocer la recetas para su
realización, con la lista de ingredientes necesarios, aportando la
cantidad requerida, las unidades de medida (gramos, litros, etc) y
cantidad actual en almacén.
También se quiere guardar información de los clientes y pedidos que
hacen al restaurante. Es importante tener registrados los datos del
cliente para la emisión de la factura así como su dirección y teléfono
para enviar el pedido.
Ejemplo
Ejercicio
 Realizar un diagrama entidad relación para
modelar la información académica de la
Universidad
Diseño lógico

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

sigla nombre Creditos area


INF-101 Intr. Progr. 5 A1
INF-102 Algorítmica I 6 A1
SIS-241 Sistemas Inf I 6 A3
TEL-101 Introd. Telecom 6 A4
SIS-224 Sistemas Inf II 6 A3
Ejercicio
MODELAR LA RELACIÓN ALUMNO-MATERIA
a) Utilizando una tabla
b) Utilizando una columna
 Suponiendo una relación 1:1 entre alumno-materia.
 Suponiendo una relación 1:n entre alumno-materia.
 Suponiendo una relación n:1 entre alumno-materia.
 Suponiendo una relación n:m entre alumno-materia.

¿Cuál será la mejor forma de representar cada tipo de relación?


Relación 1:n => Columnas en Materia
calif sigla
ci
1 n nombre
nombre Alumno nota Materia
creditos
sexo
direc gestión area

Representamos la relación nota en la tabla Clave principal


Materia añadiendo la clave principal de Atributos propios
de Alumno
Alumno y los atributos propios de la relación de l relación

MATERIA sigla nombre Creditos area ci gestion calif


INF-101 Intr. Progr. 5 A1 A1 I-2001 20
INF-102 Algorítmica I 6 A1 A1 II-2000 80
SIS-241 Sistemas Inf I 6 A3 A3 II-2000 50
TEL-101 Introd. Telecom 6 A4 A4 II-2000 90
SIS-224 Sistemas Inf II 6 A3 A3 I-2000 60
Relación 1:n => Columna en Alumno
calif sigla
ci
1 n nombre
nombre Alumno nota Materia
creditos
sexo
direc gestión area

Representamos la relación nota en la tabla


Alumno añadiendo la clave principal de Materia y
Clave principal
los atributos propios de la relación. Atributos propios
de Materia
Sin embargo en este caso no es conveniente de l relación
porque hay redundancias

ALUMNO Ci nombre sexo Direc sigla gestion calif


4 Juan M Sucre 3 INF-101 I-2001 20
9 Pedro M América 4 INF-102 II-2000 80
9 Pedro M América 4 INF-101 II-2000 50
4 Juan M Sucre 3 INF-103 II-2000 90
4 Juan M Sucre 3 SIS-241 I-2000 60
Relación n:m => Columnas en Materia
nota sigla
ci
n m nombre
nombre Alumno Inscrip Materia
creditos
sexo
direc gestión area

MATERIA

sigla nombre Credit area ci Gestion nota


INF-101 Intr. Progr. 5 A1 4 I-1999 90
INF-102 Algorítmica I 6 A1 4 II-1999 40
INF-101 Intr. Progr. 5 A1 9 I-2001 78
TEL-101 Introd. Telecom 6 A4 6 II-2001 23
SIS-224 Sistemas Inf II 6 A3 2 I-2000 30
SIS-224 Sistemas Inf II 6 A3 2 II-2000 80
SIS-224 Sistemas Inf II 6 A3 4 I-2000 32
TEL-101 Introd. Telecom 6 A4 8 I-1999 67
TEL-101 Introd. Telecom 6 A4 6 II-1999 89
SIS-224 Sistemas Inf II 6 A3 2 II-2000 51
Relación n:m => Tabla
calif sigla
ci
n m nombre
nombre Alumno nota Materia
creditos
sexo
direc gestión area

Clave Atributos propios


principal Clave principal de la relación
de Alumno de Materia
Representamos la relación nota en
una tabla Nota, cuyos atributos
nota ci sigla Gestion calif son la clave principal de alumno,
4 INF-101 I-1999 90 la clave principal de materia y los
atributos propios de la relación
4 INF-102 II-1999 40
9 INF-101 I-2001 78
6 TEL-101 II-2001 23
2 SIS-224 I-2000 30
2 SIS-224 II-2000 80
4 SIS-224 I-2000 32
8 TEL-101 I-1999 67
6 TEL-101 II-1999 89
Diagrama ER Tablas
(Modelo conceptual) (Modelo lógico)

 Entidad => Tabla


 Atributo => Columna
 Relación n:m => Tabla
 Relación 1:n => Columna(s) en la tabla de cardinalidad n
opción1 : Representar la relación en una nueva tabla
Alumno nota Materia

Se puede representar la 1:1


relación nota a través de
una tabla nota en todos los
casos. Sin embargo
debemos intentar usar la
menor cantidad posible de
tablas, por tanto sólo n:m
elegir esta opción para el
caso n:m
n:1
1:n
opción2 : Representar la relación en Alumno
Se puede
representar la Alumno nota Materia
relación nota en la
tabla alumno sólo
cuando la relación
es 1:1 o n:1 n:1

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)

 R ternaria vs. R Binaria


 Entidad vs. Relación
 Entidad vs. Atributo
Ejercicio: Diferencias entre A,B,C,D
 Explicar las diferencias en cuanto a lo que representa cada
diagrama.
nro cod
ci
A Cuenta
nombre
nombre Cliente Sucursal
ciudad
sexo
direc saldo
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
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

nombre Cuenta Sucursal


Cliente

ciudad

sexo

direc saldo

cod

ci

B direc

nombre Cliente R Sucursal

ciudad
sexo

direc
Cuenta

saldo nro
Diferencias entre C,D

cod
nro

ci

C direc

nombre Cliente cuenta Sucursal

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

nombre Cliente Cuenta Sucursal


ciudad
sexo
direc saldo

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

D nombre Cliente Cuenta sucural

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

1) Una combinación (E1,E2,..Ei) se asocia con a lo sumo una


combinación (Ei+1,Ei+2,..En)
=> CP(R)= UNION (CPs de E1,..Ei)
2) Para cada conjunto Ek (i<k<=n), cada combinación de las otras
Es se pueden asociar con a lo sumo un Ek.
=>Clave Candidata(R)=Cada conjunto (E1,E2,..Ek-1,Ek+1..En),
i<k<=n
E4
EJEMPLO: Relaciones E1
E2 R E5

que vinculan n entidades E3 E6

Suponiendo que la calve principal de Ei es ei:


1) Una combinación (E1,E2E3) se asocia con a lo sumo una
combinación (E4,E5,E6)=> CP(R)= UNION (CPs de E1,E2,E3)
2) Para cada conjunto Ek (i<k<=n), cada combinación de las otras
Es se pueden asociar con a lo sumo un Ek.
=>Clave Candidata(R)=Cada conjunto (E1,E2,E3,E4,E5) 
Ejercicio
Diseñar una BD para mantener información de los
empleado de la UCB y de esta manera poder
realizar el control de personal. En la UCB se tienen
dos tipos de empleados: docentes y administrativos.
La fecha en la que un empleado es contratado es
importante para calcular algunos beneficios como
antigüedad, vacación, aguinaldos, quinquenios, etc.
El sexo del empleado también es importante porque
la fecha de jubilación estará en función al sexo y
fecha de ingreso así como algunos beneficios como
períodos de trabajo, las mujeres deben trabajar ½
hora menos que los hombres.
Diagrama ER
Generalización (ISA)
ci nom sexo
Fec_ing
Empleado

Docente Administrativo

grado tipo cargo dpto

Me permite representar la relación es un (IS A)


Un docente es un empelado
Un administrativo es un empleado
ci nom sexo
ISA => Tablas Fec_ing
Empleado

Docente Administrativo

OPCIÓN 1 grado tipo cargo dpto

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)

OPCIÓN 2 B1(a#,a1,a2,a3, b11,b12)


Crear tabla para cada Bi B2(a#,a1,a2,a3,b21,b22)
….
BK(a#,a1,a2,a3, bk1,bk2)
Diagrama ER: Agregación
Para poder expresar relaciones entre relaciones
Empleados trabajan en un proyecto y usan n diferentes
máquinas para su trabajo (trabaja y usa deben ser
diferentes relaciones)

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)

CodL nomComercial codM


nombre labo produce nombre
Medicamento
pais tipo OPCION 1
categoria codP
concentr
presentacion
tipo

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

Labo produce Medicamento

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

linea produce Medicamento

tiene

Presentacion
Datos
produce tiene

codL codM nomComercial codL codM codP


B A Amoval B A P1
L A Amoxilar B A P2
B A P3
B A P4
L A P2
L A P3
L A P4
L A P5
Decisiones del diseñador
(Necesita buena comprensión de la empresa
que modela)

 R ternaria vs. R Binaria


 Entidad vs. Relación
 Entidad vs. Atributo
 Usar Generalización
 Usar Agregación
Otras recomendaciones
 Intentar usar tipos de datos lo más pequeños posible.
 Ver la naturaleza del negocio
Muchas Desde la década de 1980 muchos
investigadores (Teorey, et al., 1986;
notaciones Chen, 2006; Hartmann & Link, 2007)
introducen conceptos adicionales para
captar cada vez más la semántica de
un universo del discurso, este
esfuerzo para extender el modelo
básico se conoce de manera simbólica
como modelo Entidad Relación
Extendido
Muchas
notaciones
Muchas
notaciones

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)

También podría gustarte