03 - Diseño de Bases de Datos I aaaaaaaaaa

gptjorgito 1 views 54 slides Oct 11, 2025
Slide 1
Slide 1 of 54
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54

About This Presentation

Diseño de base de datos


Slide Content

Bases de Datos
Clase3: Diseñode Bases de DatosI

Hasta ahora
Conocemoselmodelorelacionalporlo que podemos
comenzara diseñarunabase de datos, pero...
¿Sabemossilo estamoshaciendobien?
Por ejemplo: olvidarañadirunacolumna
Personas(id, RUN, nombre)
Clientes(id, RUN, nombre)
Copie* desdePersonas a Clientes
Si a personas agregamosPersonas(ID, RUT, nombre, edad)
Copie* desdePersonas a Clientes
Un error enla modelaciónpuedeser muycostoso!

Diseñode base de datos
Análisisde requisitos
Diseño conceptual de bases de datos
Diseño lógico de bases de datos
Usuarios Requisitos
Requisitos Modelo entidad-relación
Modelo entidad-relación Modelo relacional

Relational Database
Management System (RDBMS)
Una base de datosrelacional(RDB) es unaforma de
estructurarinformaciónentablas, filasy columnas.
Una RDB tienela capacidadde establecervínculosentre
informaciónmediantela uniónde tablas
Un Sistema de administraciónde bases de datos
relacionales(RDBMS) es un programaque se usapara
crear, actualizary administrarbases de datosrelacionales.

Construir una aplicación con un
RDBMS
En la prácticaes imposiblesaber de antemanotodoslos
requisitosque deberácumplirun software.
De la mano con eso, elesquemade la base de datosva
cambiandoa medidaque progresaeldesarrollode un
proyecto.
Un esquemabien diseñadono solo nospermiteconsultar
con facilidady guardarlosdatosde forma óptima, sino
que tambiénpermitemodificarloy aumentarlocon menos
doloresde cabeza.
Los erroreseneldiseñoson muycostososa la larga!

Definicionesimportantes
Entidad: es un conjunto de objetos
similares.
Atributo: cualidadeso propiedades
de unaentidad. Es lo que nos
permiteagruparlosobjetos. Los
atributospertenecena dominios,
loscualesindican losposibles
valoresdel atributo.
Relación: Es unaasociaciónentre
dos o másentidades
Producto
nombre
compra

Diseño conceptual de la BD
Ventajasdediseñarydiagramarlabasededatos:
•Definirentidades.
•Entendercómoseasocianesasentidades.
•Visualizarlasrestriccionesdeldominio.
•Lograrundiseñoapropiadoalproblema.
•Mantener unesquema biendocumentado.

Diagramas E/R

Diagramas E/R
Obligatorio: cadaentidaddebetenerun atributollave
Llave: un conjunto de atributoscuyosvaloresidentificande manera
unívocaa cadaentidaddel conjunto. Enelfuturodenotaremosla llave,
subrayandoelatributo
Entidad con sus atributos
Producto
nombre
precio categoría

M. E/R →M. Relacional
Producto(nombre: string, precio: int, categoría: string)
Compañía(nombre: string, valor-acción: int)
Fabrica(Producto_nombre: string, Compañia_nombre)
Compañía
nombre
valor-acción
nombre
precio
categoría
fabricaProducto
Las llavesde las entidades
involucradasformanuna
llavepara la relación
Esquema

Relaciones Binarias
Las relaciones también pueden tener atributos descriptivos
que dan información de la relación.
Producto fabrica Compañía
nombre
precio
categoría nombre
valor-acción
desde
Las relacionesbinariasson asociacionesentre
2 entidades

Relaciones Binarias
Producto fabrica Compañía
nombre
precio
categoría nombre
valor-acción
Entidad con sus atributos
desde
No puede ser parte
de una llave!!

Relaciones Binarias
Multiplicidades
Producto fabrica Compañíana n
Producto fabrica Compañíana 0 o 1
Producto fabrica Compañía0 o 1 an
Producto fabrica Compañía0 o 1a 0 o 1
0 o más
Un productose fabricaa lo másporuna
compañía
Una compañíafabricaa lo másun
producto
Una compañía puede fabricar
varios productos
Un producto puede ser
fabricado por muchas compañías
Un producto se fabrica a lo más por
una compañía
Una compañíafabricaa lo másun
producto

Diferentesnotaciones
Multiplicidades
Muchasconvenciones
distintas

Relaciones Binarias
Producto fabrica Compañía
Sóloutilizaremosestaconvención:
Ramakrishnan
“Esa es mi compañía”
nombre
precio
categoría nombre
valor-acción
desde
Con la flecha: llavede la fabricaes (llavede) Producto
Multiplicidadde atributoses siemprea 1

DiagramasE/R
Relaciones Múltiples

Relaciones Múltiples
PROBLEMA: Unaempresa tiene empleadosy áreasen las que
trabajan. Además, cada área tiene diferentes locaciones en las
que se trabaja.
Modelemos las locacionesy áreasenla que trabajaun empleado
Una relaciónmultiplees unaasociaciónentre más
de dos entidades.

Relaciones Múltiples
¿Cómose puedemodelarlas locaciones
y áreasenla que trabajaun empleado?
Área
trabajaEn
Locación
Empleado

Relaciones Múltiples
¿Por qué no un atributo?
trabajaEn
Locación
Persona
Área
Quizásno es un “valor
simple”: Que pasasi
queremosguardaraño,
presupuesto, etc?

Relaciones Múltiples
¿Y ahora?
trabajaEn
Locación
Empleado
presupuesto
No se puedenrelacionar
atributosde diferentes
entidades.
Área
nombre id
a_id

Relaciones Múltiples
¿Quésignificaesto?
Área
trabajaEn
Locación
Empleado
Un empleadopuede
trabajara lo más1 en
unasola áreay enuna
sola locación
“Dime elempleadoy te
dirédondetrabajas”
(flecha= llave)

RelacionesMúltiples
¿Y quépasasidecimos que un
empleadopuedetrabajarenvarias
áreasperoenunasola locación?
Área
trabajaEn
Locación
Empleado

Relaciones Múltiples
Siusamossolo relacionesbinarias
Área
en
Locación
EmpleadoEmpleo
delArea
persona

Relaciones Múltiples
¿Y qué pasa si decimos que un empleado
puede trabajar en varias áreaspero en una
sola locación?
Área
en
Locación
EmpleadoEmpleo
delArea
persona

Relaciones Múltiples
¿Cuál es mejor?
Área
en
Locación
EmpleadoEmpleo
delArea
persona
Área
trabajaEn
Locación
Empleado
Más flexible Más conciso

Relaciones Múltiples
Una entidadpuedeparticiparmás
de unavezenunarelación
Departamento
trabajaEn
Locación
Empleado
Backend developer Frontend developer

Diagramas E/R
Jerarquía de clases

Jerarquíade clases
Bebida
Vino
nombre
origen tipo
Ensamblaje
isA isA
año
Los atributosde bebidase heredanpor
vino y ensamblajeSuperclase
SubclasesSubclases
PROBLEMA: Modelemosuna
distribuidoade licoreso “Spirits”

Jerarquía de clases
Bebida
Vino Ensamblaje
isA isA
El solapamientoes unarestricciónque indica sidos
subentidadespuedentenerun mismoobjeto
VinosEnsamblaje
Los ensamblajesson un tipode
vino porlo que acásihay
solapamiento

Jerarquía de clases
Bebida
Vino Cerveza
isA isA
Vinos Cervezas
El solapamientoes unarestricciónque indica sidos
subentidadespuedentenerun mismoobjeto
Acáno hay solapamiento
No hay vinos acervezados

Jerarquía de clases
Bebida
Vino Cerveza
isA isA
Vinos Cervezas
La coberturaes la restricciónde que todaslas
sub-entidadesesténenla super-entidad.
Si tenemosun local que vende
solo cerveza y vino, entoncesse
consideraríaque estácubierto.

Jerarquía de clases
Bebida
Vino ensamblaje
isA isA
Vinos
Bebidas
Whisky
Chocoron
Pisco
Si tenemosun local que además
vendePisco, Whisky y chocoronno
se consideraríacubierto.
La coberturaes la restricciónde que todaslas
sub-entidadesesténenla super-entidad.
ensamblaje

Diagramas E/R
Entidades Débiles
Una entidaddébiles unaentidadque cuyallavedepende
de otraentidad.
La entidaddébiles identificadaporsus atributosy porun
atributollavede otraentidad, la cuales llamadaidentifying
owner.
La llavede la entidaddébiles conocidadcomollave
parcial.

EntidadesDébiles
Evaluación de Curso
fecha
código
nombre
nombre
Llave parcial
Participacióntotal (n a 1)
La llavede Evaluaciónes elpar
(código, nombre)
Primero, veremos cuales son las evaluaciones del curso
Como dijo Jack, ”vamos por partes”
PROBLEMA: Modelemos un sistema de registro de notas

Entidades Débiles
Evaluación
de Curso
fecha
código nombre
nombre
Nota eval
valor
run_alumno
La llavede Nota es la tupla
(código, nombre, run_alumno)
Falta elnombredel
estudiante
Ahora añadiremos las notas

Entidades Débiles
Evaluación
de Curso
fecha
código nombre
nombre
Nota eval
valor RUN_estudiante
nombre_estudiante
Problema, se repiteelnombredel
estudiantepara cadanota! (y es
redundantecon RUN)

Entidades Débiles
Evaluación
de Curso
fecha
código nombre
nombre
Se crea la entidad Estudiante
Nota eval
valor
Estudiante
RUN
nombre
obtiene
No hay llave
parcial!

Entidades Débiles
Evaluación
de Curso
fecha
código nombre
nombre
Nota pasa a ser relación
nota
valor
Estudiante
RUN nombre
Incorporemosla nota por
pregunta

Entidades Débiles
Evaluación
de Curso
fecha
código nombre
nombre
Se incorporanla notasporpregunta
nota
valor
Estudiante
RUN nombre
pregunta
Un estudiantepuedetenervariasnotasen
la mismaevaluación!

Entidades Débiles
Evaluación
de Curso
fecha
código nombre
nombre
Nota por pregunta
Nota eval
Estudiante
RUN
nombre
obtiene
preguntavalor
AHORA SI!!!!

DiagramasE/R
Agregación
Volvamos al problema de modelar la empresa y
sus empleados.
Al diagrama se le quiere añadir una relación que
indique si un área tiene sede en una locación y
cuantas oficinas tiene en la sede.
Área
trabajaEn
Locación
Empleado
Íbamos aquí

Agregación
Queremos registrar las locaciones que posee un
área y su cantidad de oficinas.
Área
trabajaEn
Locación
Empleado
Jefe
dirección
nombre
nombre
desde
RUN nombre

Agregación
Queremos registrar las locaciones que posee un
área y su cantidad de oficinas.
Área
trabajaEn
Locación
Empleado
Jefe
dirección
nombre
nombre
desde
rut nombre
tiene
cantidad_oficinas
Se puedetrabajar
locales que no tenganel
áreaindicada.
Queremosrelacionarla
entidad“Empleado” con la
relación“tiene”.
!Pero las relacionesson
entre entidades!

Agregación
Queremos registrar las locaciones que posee un
área y su cantidad de oficinas.
Área
trabajaEn
Locación
Empleado
Jefe
dirección
nombre
nombre
desde
rut nombre
tiene
cantidad_oficinas
Encapsulamosla relacióny
sus correspondientes
entidadesenunaentidad
virtual

Ejemplo: Modelando vinos y
cervezas
Problema: Vendemosvinosy cervezas. Cadavino
tienenombre, año, tipo, gradosy ciudad-origen.
Cadacerveza tienenombre, ciudad-origen, tipo,
grados. Vinos y cervezas tienenun preciounitarioy
unacantidad“enstock”cadadía.

Modelando vinos y cervezas
ProblemaNo hay llaves
Vendemosvinosy
cervezas. Cadavino
tieneaño, tipo, grados
y ciudad-origen. Cada
cerveza tieneciudad-
origen, tipo, grados.
Vinos y cervezas tienen
un preciounitarioy una
cantidad“enstock”
cadadía.

Modelando vinos y cervezas
Agregando llaves
Problema: Se repiten
atributos
Vendemosvinosy
cervezas. Cadavino
tieneaño, tipo, grados
y ciudad-origen. Cada
cerveza tieneciudad-
origen, tipo, grados.
Vinos y cervezas tienen
un preciounitarioy una
cantidad“enstock”
cadadía.

Modelando vinos y cervezas
Usando jerarquía de clases
Problema: llavede
stock

Modelando vinos y cervezas
Usando jerarquía de clases
Problema:
Multiplicidades

Modelando vinos y cervezas
con multiplicidades
¿Que pasa si cada bebida
tiene que tener un valor de
stock?

Modelando vinos y cervezas
con multiplicidades
¿Que pasa si solo se
guarda el stock actual?

Modelando vinos y cervezas
con solo stock actual
Hay un problema
!No hay llave parcial!

Modelando vinos y cervezas
con solo stock actual

•Referencia Capi 2 libro guía
Tags