Sei sulla pagina 1di 83

Diseño de Bases de Datos

Dr. Guillermo Rodríguez Abitia


Departamento de Sistemas de Información
ITESM Campus Estado de México
Definiciones
• Datos: Hechos significativos, texto,
graficas, imágenes, sonido, segmentos de
video
• Base de datos: Colección organizada de
datos relacionados lógicamente
• Información: Datos procesados para ser
útiles en la toma de decisiones
• Metadatos: Datos sobre los datos
Problemas con la Dependencia de
los Datos
Cada programador de aplicaciones debe
mantener sus propios datos
Cada programa de aplicación necesita incluir
códigos de metadatos de cada archivo
Cada programa de aplicación debe tener sus
propias rutinas de procesamiento para leer,
insertar, actualizar y borrar datos
Carencia de coordinación y control central
Formatos no estándar de archivos
Problemas con Redundancia de Datos
• Desperdicio de espacio por tener datos
duplicados
• Provoca mayores problemas de
mantenimiento
• El problema mayor:
– Cuando los datos cambian en un archivo,
se pueden producir inconsistencias.
– Pone en peligro la integridad de los datos
SOLUCIÓN:
El Uso de Bases de Datos
• Repositorio central de datos compartidos
• Los datos son manejados por un agente
controlador
• Se almacenan de manera conveniente y
estandarizada
Sistema de Administración de
Bases de Datos

• Un DBMS es un sistema de
almacenamiento y recuperación de datos
que permite su almacenamiento no
redundante, mientras aparecen ante el
usuario como completamente integrados
Sistema de Administración de
Aplicación
#1
Bases de Datos

Aplicación

DBMS
#2
Base de datos
que contiene
datos
centralizados
y
Aplicación
compartidos
#3
Ventajas de las Bases de Datos
• Independencia programa-datos
– Los metadatos están almacenados en el DBMS, de modo que las
aplicaciones no necesitan preocuparse de los formatos de los datos
– Las consultas (queries) y actualizaciones de los datos son
administrados por el DBMS, de modo que los programas no necesitan
procesar rutinas de acceso a datos
– Resultados en el incremento de la productividad de desarrollo y
mantenimiento de aplicaciones
– Redundancia mínima de datos
– Lleva a un incremento de integridad y consistencia
Ventajas de las Bases de Datos
• Mejora en la compartición de datos
– Usuarios distintos obtienen vistas distintas de los datos
• Reforzamiento de estándares
– Todos los accesos a datos son hechos del mismo modo
• Mejora en la calidad de los datos
– Restricciones y reglas de validación de los datos
• Mejor acceso y respuesta de los datos
– Uso de un lenguaje estándar de consultas (SQL)
• Seguridad, recuperación, respaldo y concurrencia
– La recuperación de desastres es más fácil
Componentes del
Ambiente de Bases de Datos
• Herramientas CASE – computer-aided software engineering
• Repositorio – almacén centralizado de metadatos
• Sistema de Administración de Bases de Datos (DBMS) – software
para administrar la base
• Base de datos – almacén de los datos
• Programas de Aplicación – software que usa los datos
• Interfaz de usuario – despliegues gráficos y de texto a los usuarios
• Administradores de datos – personal responsable de mantener la
base de datos
• Desarrolladores de sistemas – personal responsable de diseñar
programas y bases de datos
• Usuarios finales – gente que usa las aplicaciones y las bases de
datos
Administradores Desarrolladores Usuarios
de datos de sistemas finales

Componentes
del ambiente
de bases de
datos
Herramientas Interfaz Programas de
CASE de usuario aplicación

Repositorio DBMS Base de


Datos
Evolución de los Sistemas de
Bases de Datos
• Archivos planos - 1960s - 1980s
• Jerárquico – 1970s - 1990s
• Redes – 1970s - 1990s
• Relacional – 1980s – presente
• Orientado a objetos – 1990s - presente
• Objetos-relacional – 1990s - presente
• Data warehousing – 1980s - presente
• En Web – 1990s - presente
Ciclo de Desarrollo
Reglas de Negocio
• Declaraciones que definen o restringen
algún aspecto del negocio
• Reflejan la estructura del negocio
• Controlan e influencian el ambiente de
negocios
• Expresadas en términos familiares para
los usuarios
• Automatizadas a través del DBMS
Una buena regla de negocio es:

• Declarativa – qué, no cómo


• Precisa – clara, significado acordado
• Atómica – una oración
• Consistente – interna y externamente
• Expresable – estructurada, lenguaje natural
• Distinta – no redundante
• Orientada al negocio – entendida por gente de
negocios
Elementos del Modelo E-R
• Instancia de entidad - persona, lugar, objecto,
evento, concepto (normalmente corresponde a un
renglón en una tabla)
– Entidad – colección de instancias de entidad
(normalmente corresponde a una tabla)
• Atributo – propiedad o característica de una
entidad (normalmente corresponde a una columna
en una tabla)
• Instancia de relación – liga entre (corresponde a
llaves primarias y foráneas en dos tablas
relacionadas)
– Relación – liga entre entidades
envía PROVEEDOR

suministra

EMBARQUE incluye COMPONENTE CLIENTE

clave se usa en somete

entidad relación

cardinalidades
PRODUCTO requiere ORDEN
Obligatoria – uno
Obligatoria – muchos
Opcional – uno
Opcional - muchos
Símbolos básicos

Entidad fuerte Entidad


asociativa

Entidad débil Atributo

Relación Atributo
multivaluado

Relación de Atributo
identificación derivado
¿Qué debe ser una entidad?
• Debe ser:
– Un objeto con muchas instancias en la BD
– Un objeto compuesto de múltiples atributos
– Un objeto que queremos modelar
• No debe ser:
– Un usuario de la BD
– Un resultado de la BD (ejm. un reporte)
!
REPORTE
TESORERO recibe DE
GASTOS

administra sumariza

CUENTA es cargado GASTO

CUENTA es cargado GASTO


Atributos
• Atributo – propiedad o característica de
una entidad
• Clasificación de atributos:
– Simple vs. Compuesto
– Un valor vs. Multivaluado
– Almacenado vs. Derivado
– Atributos de identificación
Identificadores (Llaves)
• Identificador (Llave) – Un atributo (o
combinación de atributos) que identifica
instancia individuales de manera única en
una entidad
• Llaves simples vs. llaves compuestas
• Llave candidata – un atributo que puede
ser llave… satisface los requerimientos
para serlo
Características de los
Identificadores
• No cambiarán su valor (dinámicos)
• No serán nulos
• No son inteligentes
• Son lo más sencillos posible
Dirección

Calle_Número Ciudad Estado Código_Postal


" #

Número_matrícula Nombre_estudiante Otros_atributos

" # $ ESTUDIANTE
" #

num_vuelo fecha num_pasajeros

Id_Vuelo

VUELO
" #
% & '
nombre_empleado

Id_empleado dirección

antigüedad EMPLEADO habilidad

fecha_ingreso # *
#
( ) $( ) & )
precio fecha_efectiva

id_producto historia_precios

PRODUCTO
)
Más sobre relaciones
• Relaciones vs. instancias de relaciones
– Las relaciones son modeladas como diamantes y
líneas entre entidades. Las instancias de
relaciones ocurren entre instancias específicas de
las entidades
• Las relaciones pueden tener atributos
– Estas describen características que se presentan cuando
hay una asociación entre las entidades de la relación
• Dos entidades pueden tener más que un tipo
de relación entre ellas (relaciones múltiples)
• Entidad asociativa = combinación de una
relación con una entidad
– Surge al normalizar un ERD
Grado de las Relaciones

• El grado de una relación se


refiere al número de entidades
que participan en ella
– Unitaria
– Binaria
– Ternaria
+

Grados de relaciones

Binaria

Unitaria
Ternaria
Cardinalidad de las Relaciones
• Uno a Uno
– Cada instancia de una entidad se relacionará
exactamente con una instancia de la entidad
asociada
• Uno a Muchos
– Una instancia de la primera entidad se relacionará
con muchas instancias de la segunda, pero cada
instancia de la segunda se relacionará exactamente
con una instancia de la primera
• Muchos a Muchos
– Las instancias de ambos lados de la relación de
asociarán con muchas instancias de la otra entidad
Restricciones de Cardinalidad
• El número de instancias de una entidad con
que puede o debe relacionarse una
instancia del otro lado de la relación
• Cardinalidad Mínima
– Cero: opcional
– Uno o más: obligatoria
• Cardinalidad Máxima
– El número máximo de instancias
,

Cardinalidad de la relación

Obligatoria - uno

Obligatoria - muchos

Opcional - uno

Opcional - muchos
se casa
PERSONA EMPLEADO dirige
con

Uno a uno Uno a muchos


LUGAR DE
EMPLEADO utiliza ESTACIONA-
MIENTO
Uno a uno

LÍNEA DE contiene PRODUCTO


PRODUCTOS

Uno a muchos

ESTUDIANTE asiste a CURSO

Muchos a muchos
PARTE

VENDEDOR suministra BODEGA

medio_de_embarque costo_unitario
& &-

está
COPIA EN
PELÍCULA grabada
en VIDEO

PACIENTE acude a CONSULTA


, . $

Claudia

Gerardo

Elena
PERSONA desposa
Carmen

Ricardo

Carlos
clave_ nombre_ (otros clave_ nombre_
requisito
empleado empleado atributos) curso curso

EMPLEADO aprueba CURSO

!
Empleado Curso
Carlos

María

Othón

Leonel

Irma
clave_ nombre_ clave_ nombre_
fecha
empleado empleado curso curso

EMPLEADO aprueba CURSO

( )
/ /
PARTE

VENDEDOR suministra BODEGA

medio_de_embarque costo_unitario
) ) . $

se
PARTE Compone cantidad
de
" # (

trabaja
en

supervisa EMPLEADO DEPARTAMENTO

administra
0 ( $

puede
impartir

PROFESOR CURSO

imparte

&-
semestre 1
Ejercicio
A la compañía “El Sapo Saltador, S.A.” le interesa guardar información
acerca de sus empleados, incluyendo: clave, nombre, apellido
paterno, apellido materno, nacionalidad, forma migratoria (en
caso de ser extranjero), si es tiempo parcial o tiempo completo,
dirección, teléfonos de casa, extensión, puesto, departamento,
estado civil y prestaciones. Además, a la compañía le interesa
mantener la siguiente información acerca de sus productos:
número de identificación del producto, costo unitario, número de
unidades en inventario, descripción, categoría (ej.
electrodomésticos, cocina, juguetes, etc.) y fecha de
manufactura. Cada departamento de la compañía se encarga de
una categoría. Todos los departamentos tienen un nombre y una
extensión distinta. También es importante guardar información
sobre los proveedores, quién es el representante de ventas, el
nombre de la compañía, la clave del proveedor, la dirección, la
extensión y los productos que ofrece.
Entidades Fuertes vs. Débiles y
Relaciones de Identificación
• Entidad fuerte
– Existe independientemente de otras entidades
– Tiene su propio identificador único
– Se representa con un rectángulo de línea sencilla
• Entidad débil
– Depende de una entidad fuerte, no puede existir sola
– No tiene su propio identificador único
– Se representa con un rectángulo de línea doble
• Relación de identificación
– Asocia entidades fuertes con débiles
– Se representa con un rombo de línea doble
( $

apellido_ apellido_
nombre
paterno materno

nombre_ fecha_
clave_empleado nombre_dep
empleado nacimiento

EMPLEADO tiene DEPENDIENTE

(
(
Entidades Asociativas
• Es una entidad – tiene atributos

• Y es una relación – asocia dos entidades


– Las cardinalidades hacia la entidad asociativa siempre son
“muchos”
– La entidad asociativa podría tener significado independientemente
de otras entidades
– La entidad asociativa preferentemente debe tener un identificador
único y puede tener más atributos
– Puede tener otras relaciones con entidades además de las que
asocia
– Las relaciones ternarias se deben convertir en entidades
asociativas
# , 2!3!, 4

clave_ nombre_ clave_ nombre_


num_certificado fecha
empleado empleado curso curso

EMPLEADO CERTIFICADO CURSO

5 # & $
/ 6 ) 7
#/
Supertipos y Subtipos
• Subtipo: un subgrupo en una entidad que posee
atributos adicionales exclusivos.
• Supertipo: entidad genérica con los
atributos comunes a todos los subtipos con
que se relaciona.
• Herencia:
– Los subtipos heredan todos los atributos del
supertipo
– Una instancia del subtipo también es una
instancia del supertipo
atributos
compartidos

Notación básica para


supertipos y subtipos SUPERTIPO
Entidad
genérica

Etcétera

Versiones
SUBTIPO 1 SUBTIPO 2 especializadas
del supertipo

atributos únicos atributos únicos


para subtipo 1 para subtipo 2
Supertipo EMPLEADO y tres subtipos

2
nombre_empleado dirección

clave_empleado EMPLEADO fecha_contrato

,
&

EMPLEADO EMPLEADO
CONSULTOR
POR HORA ASALARIADO

pago_por_hora salario opción_acciones num_contrato tasa_facturación


Relaciones y subtipos
• Las relaciones en el nivel del supertipo
indican que todos los subtipos participan
en ella
• Las relaciones en el nivel del subtipo son
exclusivas de las instancias del mismo
Generalización y
Especialización
• Generalización: El proceso de definir
un supertipo a partir de los subtipos.
BOTTOM-UP
• Especialización: El proceso de definir
subtipos a partir de un supertipo. TOP-
DOWN
Restricciones en Subtipos

• Exhaustiva: Si toda instancia en el


supertipo debe pertenecer a un subtipo
también
– Exhaustiva: línea doble
– No exhaustiva: línea sencilla
Restricciones de Subtipos
• Excluyente: Si una instancia del
supertipo puede pertenecer solo a un
subtipo
– Excluyente: se marca con una “d” (disjoint)
– No excluyente: se marca con una “o”
(overlapping)
dirección
nombre sexo

id_persona PERSONA fecha_nacim

salario departamento

EMPLEADO EX-ALUMNO ESTUDIANTE

fecha_contrato grados

año fecha

grado

FACTULTAD STAFF POSGRADO PREGRADO

rango puesto tipo asesor


Agrupamiento
• Los diagramas EER pueden ser difíciles
de leer cuando hay muchas entidades
involucradas
• Las entidades que hacen referencia a un
mismo objeto de negocio se pueden
agrupar en un cluster
• Facilita la lectura para el usuario
Reglas de Negocios
• Declaraciones que definen o restringen algún
aspecto del negocio
• Las restricciones pueden impactar:
– Estructura (definición, dominio, relación)
– Comportamiento (restricciones de operación)
Reglas sobre acciones
• Objeto ancla – el objeto sobre el cual se
limitan las acciones
• Acción – creación, borrado, actualización
o lectura
• Objetos correspondientes – un objeto
influenciando la habilidad de realizar una
acción en otra regla de negocio
para poder asignar un grupo, el profesor debe estar acreditado
para impartir el curso correspondiente

id_profesor nombre_prof

Id_estudiante objeto correspondiente

PROFESOR está
acreditado fecha_acredita
nombre

objeto ancla regla sobre acción


id_curso
ESTUDIANTE está
asignado
R CURSO

nombre_curso

GRUPO está
está programado
inscrito objeto correspondiente

num-grupo id-grupo semestre


Normalizando ERDs
• Normalizar permite optimizar el diseño de la
base de datos al:
– Minimizar redundancia
– Fragmentar las entidades para garantizar
dependencias directas
– Facilitar consistencia e integridad en los datos
• Se puede hacer desde el modelo conceptual o
desde el modelo lógico
• Para ERDs garantiza segunda forma normal
Normalizando ERDs
• Relaciones muchos a muchos
– Crear una entidad asociativa
• Relaciones unitarias
– Crear una entidad débil
• Atributos multivaluados
– Crear una entidad débil
• Relaciones ternarias
– Crear una entidad asociativa
Ejercicio
Normalizar el siguiente ERD

clave_ nombre_ clave_ nombre_


dependiente material
empleado empleado proyecto proyecto

trabaja
EMPLEADO en
PROYECTO

fecha_ fecha_
inicio final
Ciclo de Desarrollo

ERD

Diagrama relacional
Tablas
• Son bidimensionales
– Renglones: registros o instancias
– Columnas: atributos o campos
– Los renglones son variable
– Las columnas son fijas
• Requisitos:
– Nombre único
– Celdas atómicas
– Cada renglón es único
– Las columnas tienen nombres únicos
– El orden de las columnas es irrelevante
– El orden de los renglones es irrelevante
Correspondencia con el ERD
• Cada entidad y cada relación muchos a muchos
corresponde a una tabla
• Los renglones corresponden a instancias de la
tabla o de la relación muchos a muchos
• Las columnas corresponden a atributos
• Las relaciones del ERD se expresan como llaves
foráneas y van en el lado “muchos”
NOTA: las tablas también se conocen como
relaciones, pero no tienen el mismo significado
que las relaciones en el ERD
Campos Llave
• Las llaves son campos especiales que sirven
dos propósitos principales:
– Las llaves primarias son identificadores únicos de la
tabla
– Las llaves foráneas son identificadores para ligar
dos tablas
• Las llaves pueden ser simples o compuestas,
dependiendo del número de atributos que las
componen
Pasando de ERD a Modelo
Relacional
clave_ nombre_ clave_ nombre_
num_certificado fecha
empleado empleado curso curso

EMPLEADO CERTIFICADO CURSO

EMPLEADO CURSO
clave_ nombre_ clave_ nombre_
empleado empleado curso curso

num_ clave_ clave_


CERTIFICADO certificado fecha empleado curso
Otras Consideraciones
• La llave de una entidad asociativa puede ser:
– Asignada con un identificador único
– La combinación de las llaves de las entidades que
asocia
• La llave de una entidad débil
– Siempre es compuesta
– Se combina el valor del atributo en cuestión con la
llave de la entidad padre
• La llave de un subtipo
– Es la misma que la del supertipo
– La relación es uno a uno
Ejercicio
Convertir los siguientes ERD a modelo
relacional
nombre_empleado dirección

clave_empleado EMPLEADO fecha_contrato

EMPLEADO EMPLEADO
CONSULTOR
POR HORA ASALARIADO

pago_por_hora salario opción_acciones num_contrato tasa_facturación


apellido_ apellido_
nombre
paterno materno

nombre_ fecha_
clave_empleado nombre_dep
empleado nacimiento

EMPLEADO tiene DEPENDIENTE


Tablas Bien Estructuradas
• Una que tiene redundancia mínima y permite
insertar, actualizar y borrar datos sin causar
inconsistencias
• La meta es evitar anomalías
– Inserción – al agregar nuevos renglones se
duplican datos innecesariamente
– Borrado – al borrar renglones se pierden datos
que serán necesarios en el futuro o en otras
tablas
– Actualización – cambiar datos en un renglón
obliga a cambiarlos en otros, debido a
redundancia
Dependencias Funcionales y Llaves
• Dependencia funcional: el valor de un
atributo determina el valor de otro
• Llave candidata:
– Identificador único. Una de las llaves
candidatas se convertirá en la llave
primaria
– Cada atributo no candidato, depende
funcionalmente de los candidatos
Pasos de la normalización
Eliminar grupos repetidos
Ninguna forma normal

Eliminar dependencias parciales


Primera forma normal

Eliminar dependencias transitivas


Segunda forma normal

Eliminar anomalías de dependencias funcionales


Tercera forma normal

Eliminar dependencias multivaluadas


Forma normal de Boyce-Codd

Eliminar otras anomalías


Cuarta forma normal

Quinta forma normal


Ninguna forma normal

8 8 8 $ $

Puede tener muchos proyectos, por lo tanto es multivaluado


Primera forma normal

8 8 8 $ $

Dependencias parciales
Segunda forma normal

8 8 8

Dependencias transitivas
Ejercicio
#8 & $

1?B?>: 0 A$ @ 1?.
;;;
) > 9;.
;;;

:@B1<< + , A$ @ >?.
;;;
1 9?.
;;;

;<==:9 1 9:.
;;;
Ejercicio
8# 8

9>@ =:BB E 0 0 C , &


?B>9 A ,
B?@> ,

B? <=;> 3 D( + $ , &
=:BB 0 0 C ,
1?B@ " A& C
Ejercicio
Indicar en qué forma normal se encuentran las siguientes tablas:
a)
EMPLEADO (emp_id, emp_nombre, dirección, teléfono)
b)
EMPLEADO (emp_id, emp_nombre, dirección, teléfono, pariente)
c)
EMPLOYEE (emp_id, emp_nombre, dirección, teléfono, pariente)
d)
RELATIVE (emp_id, pariente)
e)
FLIGHT (no_vuelo, origen, destino, millaje)

Potrebbero piacerti anche