Diseño de Bases de Datos

Anuncio
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
Bases de Datos
Aplicación
#1
Aplicación
#2
Aplicación
#3
DBMS
Base de datos
que contiene
datos
centralizados
y
compartidos
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
Componentes
del ambiente
de bases de
datos
Administradores
de datos
Desarrolladores
de sistemas
Usuarios
finales
Herramientas
CASE
Interfaz
de usuario
Programas de
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
clave
COMPONENTE
CLIENTE
somete
se usa en
relación
entidad
cardinalidades
Obligatoria – uno
Obligatoria – muchos
Opcional – uno
Opcional - muchos
PRODUCTO
requiere
ORDEN
Símbolos básicos
Entidad fuerte
Entidad
asociativa
Entidad débil
Atributo
Relación
Atributo
multivaluado
Relación de
identificación
Atributo
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)
!
TESORERO
recibe
administra
CUENTA
CUENTA
es cargado
REPORTE
DE
GASTOS
sumariza
es cargado
GASTO
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
$
ESTUDIANTE
Otros_atributos
" #
num_vuelo
fecha
Id_Vuelo
"
#
VUELO
num_pasajeros
%
&
'
nombre_empleado
Id_empleado
EMPLEADO
antigüedad
fecha_ingreso
#
( )
dirección
$( )
habilidad
#
&
*
)
precio
id_producto
fecha_efectiva
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
PERSONA
Uno a uno
se casa
con
EMPLEADO
dirige
Uno a muchos
EMPLEADO
utiliza
LUGAR DE
ESTACIONAMIENTO
Uno a uno
LÍNEA DE
PRODUCTOS
contiene
PRODUCTO
Uno a muchos
ESTUDIANTE
asiste a
Muchos a muchos
CURSO
PARTE
VENDEDOR
suministra
medio_de_embarque
BODEGA
costo_unitario
&
&-
está
grabada
en
PELÍCULA
COPIA EN
VIDEO
,
PACIENTE
acude a
CONSULTA
,
.
$
Claudia
Gerardo
PERSONA
Elena
desposa
Carmen
Ricardo
Carlos
clave_
empleado
nombre_
empleado
EMPLEADO
(otros
atributos)
aprueba
clave_
curso
nombre_
curso
requisito
CURSO
!
Empleado
Carlos
María
Othón
Leonel
Irma
Curso
clave_
empleado
nombre_
empleado
EMPLEADO
fecha
aprueba
( )
/
clave_
curso
nombre_
curso
CURSO
/
PARTE
VENDEDOR
suministra
medio_de_embarque
BODEGA
costo_unitario
)
PARTE
) .
se
Compone
de
$
cantidad
"
#
(
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
(
$
clave_empleado
EMPLEADO
(
nombre
apellido_
paterno
apellido_
materno
nombre_
empleado
nombre_dep
fecha_
nacimiento
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
# ,
clave_
empleado
nombre_
empleado
2!3!,
num_certificado
EMPLEADO
5
4
#/
clave_
curso
&
6
) 7
nombre_
curso
CURSO
CERTIFICADO
#
/
fecha
$
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
Entidad
genérica
SUPERTIPO
Etcétera
SUBTIPO 1
SUBTIPO 2
atributos únicos
para subtipo 1
atributos únicos
para subtipo 2
Versiones
especializadas
del supertipo
Supertipo EMPLEADO y tres subtipos
nombre_empleado
clave_empleado
2
dirección
EMPLEADO
fecha_contrato
,
&
EMPLEADO
POR HORA
pago_por_hora
EMPLEADO
ASALARIADO
salario
opción_acciones
CONSULTOR
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. TOPDOWN
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)
nombre
dirección
sexo
PERSONA
id_persona
fecha_nacim
salario
departamento
EMPLEADO
EX-ALUMNO
fecha_contrato
ESTUDIANTE
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
objeto correspondiente
Id_estudiante
PROFESOR
está
acreditado
fecha_acredita
nombre
objeto ancla
ESTUDIANTE
está
asignado
regla sobre acción
R
id_curso
CURSO
nombre_curso
GRUPO
está
inscrito
está
programado
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_
empleado
nombre_
empleado
dependiente
clave_
proyecto
trabaja
en
EMPLEADO
fecha_
inicio
nombre_
proyecto
PROYECTO
fecha_
final
material
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_
empleado
nombre_
empleado
num_certificado
EMPLEADO
nombre_
curso
CURSO
CERTIFICADO
CURSO
EMPLEADO
clave_
nombre_
empleado empleado
num_
CERTIFICADO certificado
clave_
curso
fecha
clave_
curso
fecha
clave_
empleado
nombre_
curso
clave_
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
clave_empleado
EMPLEADO
EMPLEADO
POR HORA
pago_por_hora
dirección
EMPLEADO
ASALARIADO
salario
opción_acciones
fecha_contrato
CONSULTOR
num_contrato
tasa_facturación
clave_empleado
EMPLEADO
nombre
apellido_
paterno
apellido_
materno
nombre_
empleado
nombre_dep
fecha_
nacimiento
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
Ninguna forma normal
Eliminar dependencias parciales
Segunda forma normal
Eliminar anomalías de dependencias funcionales
Forma normal de Boyce-Codd
Eliminar otras anomalías
Quinta forma normal
Eliminar grupos repetidos
Primera forma normal
Eliminar dependencias transitivas
Tercera forma normal
Eliminar dependencias multivaluadas
Cuarta forma normal
Ninguna forma normal
8
8
8
$
$
Puede tener muchos proyectos, por lo tanto es multivaluado
Primera forma normal
8
8
Dependencias parciales
8
$
$
Segunda forma normal
8
8
Dependencias transitivas
8
Ejercicio
#8
1?B?>:
&
$
0
A$
@
>
1?.
;;;
9;.
;;;
A$
@
1
>?.
;;;
9?.
;;;
1
9:.
;;;
)
:@B1<<
;<==:9
+
,
Ejercicio
8#
8
9>@
=:BB
?B>9
B?@>
E
B?
<=;>
=:BB
1?B@
3
0
A
,
D(
0
"
0 C
,
,
&
+ $
0 C
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)
Descargar