Está en la página 1de 83

Diseo de Bases de Datos

Dr. Guillermo Rodrguez Abitia


Departamento de Sistemas de Informacin
ITESM Campus Estado de Mxico
Definiciones
Datos: Hechos significativos, texto,
graficas, imgenes, sonido, segmentos de
video
Base de datos: Coleccin organizada de
datos relacionados lgicamente
Informacin: 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 aplicacin necesita incluir
cdigos de metadatos de cada archivo
Cada programa de aplicacin debe tener sus
propias rutinas de procesamiento para leer,
insertar, actualizar y borrar datos
Carencia de coordinacin y control central
Formatos no estndar 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
SOLUCIN:
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
Requiere un sistema de administracion de bases de datos
(DBMS por sus siglas en ingles)
Sistema de Administracin de
Bases de Datos
Un DBMS es un sistema de
almacenamiento y recuperacin de datos
que permite su almacenamiento no
redundante, mientras aparecen ante el
usuario como completamente integrados
Sistema de Administracin de
Bases de Datos
El DBMS administra los
recursos de datos como un
sistema operativo administra
los recursos de hardware
DBMS
DBMS
Base de datos
que contiene
datos
centralizados
y
compartidos
Aplicacin
#1
Aplicacin
#2
Aplicacin
#3
Ventajas de las Bases de Datos
Independencia programa-datos
Los metadatos estn 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 mnima de datos
Lleva a un incremento de integridad y consistencia
Ventajas de las Bases de Datos
Mejora en la comparticin de datos
Usuarios distintos obtienen vistas distintas de los datos
Reforzamiento de estndares
Todos los accesos a datos son hechos del mismo modo
Mejora en la calidad de los datos
Restricciones y reglas de validacin de los datos
Mejor acceso y respuesta de los datos
Uso de un lenguaje estndar de consultas (SQL)
Seguridad, recuperacin, respaldo y concurrencia
La recuperacin de desastres es ms fcil
Componentes del
Ambiente de Bases de Datos
Herramientas CASE computer-aided software engineering
Repositorio almacn centralizado de metadatos
Sistema de Administracin de Bases de Datos (DBMS) software
para administrar la base
Base de datos almacn de los datos
Programas de Aplicacin software que usa los datos
Interfaz de usuario despliegues grficos y de texto a los usuarios
Administradores de datos personal responsable de mantener la
base de datos
Desarrolladores de sistemas personal responsable de disear
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
aplicacin
Repositorio
DBMS
Base de
Datos
Evolucin de los Sistemas de
Bases de Datos
Archivos planos - 1960s - 1980s
Jerrquico 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
lderl|l|cac|r y
se|ecc|r de proyeclos
lr|c|ac|r y p|areac|r
de| proyeclo
Analisis
[diseno conceptual}
0|sero lis|co
lrp|arlac|r
Varler|r|erlo
0|sero |g|co
Reglas de Negocio
Declaraciones que definen o restringen
algn aspecto del negocio
Reflejan la estructura del negocio
Controlan e influencian el ambiente de
negocios
Expresadas en trminos familiares para
los usuarios
Automatizadas a travs del DBMS
Una buena regla de negocio es:
Declarativa qu, no cmo
Precisa clara, significado acordado
Atmica una oracin
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
rengln en una tabla)
Entidad coleccin de instancias de entidad
(normalmente corresponde a una tabla)
Atributo propiedad o caracterstica de una
entidad (normalmente corresponde a una columna
en una tabla)
Instancia de relacin liga entre (corresponde a
llaves primarias y forneas en dos tablas
relacionadas)
Relacin liga entre entidades
enva
incluye
somete
suministra
se usa en
requiere
relacin
clave
cardinalidades
Obligatoria uno
Obligatoria muchos
Opcional uno
Opcional - muchos
PROVEEDOR
COMPONENTE
EMBARQUE
CLIENTE
PRODUCTO ORDEN
Ejemplo de diagrama
E-R
entidad
Notacin Bsica para el ERD
Simbolos
de entidad
Simbolos de
relacion
Simbolos de
atributo
Entidad
especial que es
tambien
relacion
Smbolos bsicos
Entidad fuerte
Entidad dbil
Relacin
Relacin de
identificacin
Entidad
asociativa
Atributo
Atributo
multivaluado
Atributo
derivado
Qu debe ser una entidad?
Debe ser:
Un objeto con muchas instancias en la BD
Un objeto compuesto de mltiples atributos
Un objeto que queremos modelar
No debe ser:
Un usuario de la BD
Un resultado de la BD (ejm. un reporte)
Entidades Apropiadas
Entidades Inapropiadas
Usuario Usuario
del del
sistema sistema
Resultado Resultado
del del
sistema sistema
TESORERO
REPORTE
DE
GASTOS
CUENTA GASTO
administra
recibe
sumariza
es cargado
es cargado
CUENTA GASTO
Atributos
Atributo propiedad o caracterstica de
una entidad
Clasificacin de atributos:
Simple vs. Compuesto
Un valor vs. Multivaluado
Almacenado vs. Derivado
Atributos de identificacin
Identificadores (Llaves)
Identificador (Llave) Un atributo (o
combinacin 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
Caractersticas de los
Identificadores
No cambiarn su valor (dinmicos)
No sern nulos
No son inteligentes
Son lo ms sencillos posible
Atributo compuesto
Un atributo
descompuesto en
partes
Direccin
Calle_Nmero Ciudad Estado Cdigo_Postal
Llave simple
La llave se subraya
Nmero_matrcula Nombre_estudiante Otros_atributos
ESTUDIANTE
Llave compuesta
Id_Vuelo
fecha num_vuelo num_pasajeros
VUELO
La llave se compone
de dos partes
Ejemplos de atributos
EMPLEADO antigedad
Id_empleado direccin
nombre_empleado
habilidad
fecha_ingreso
que esta mal aqui?
Derivado
de Iecha de ingreso y Iecha actual
Multivaluado:
un empleado puede
tener mas de una habilidad
Ejemplos de atributos
Ejemplo de
registro
historico
precio fecha_efectiva
id_producto historia_precios
PRODUCTO
Ms sobre relaciones
Relaciones vs. instancias de relaciones
Las relaciones son modeladas como diamantes y
lneas entre entidades. Las instancias de
relaciones ocurren entre instancias especficas de
las entidades
Las relaciones pueden tener atributos
Estas describen caractersticas que se presentan cuando
hay una asociacin entre las entidades de la relacin
Dos entidades pueden tener ms que un tipo
de relacin entre ellas (relaciones mltiples)
Entidad asociativa = combinacin de una
relacin con una entidad
Surge al normalizar un ERD
Grado de las Relaciones
El grado de una relacin se
refiere al nmero de entidades
que participan en ella
Unitaria
Binaria
Ternaria
Grado de las relaciones
Una instancia
se relaciona
con otra en la
misma entidad
Instancias de
dos distintas
entidades se
relacionan
entre s
Instancias de tres
entidades distintas se
relacionan entre s
Grados de relaciones
Unitaria
Binaria
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 relacin de
asociarn con muchas instancias de la otra entidad
Restricciones de Cardinalidad
El nmero de instancias de una entidad con
que puede o debe relacionarse una
instancia del otro lado de la relacin
Cardinalidad Mnima
Cero: opcional
Uno o ms: obligatoria
Cardinalidad Mxima
El nmero mximo de instancias
Cardinalidades
Cardinalidad de la relacin
Obligatoria - uno
Obligatoria - muchos
Opcional - uno
Opcional - muchos
Relaciones unitarias
PERSONA EMPLEADO
se casa
con
dirige
Uno a uno Uno a muchos
Relaciones binarias
EMPLEADO
LUGAR DE
ESTACIONA-
MIENTO
LNEA DE
PRODUCTOS
PRODUCTO
ESTUDIANTE CURSO
utiliza
contiene
asiste a
Uno a uno
Uno a muchos
Muchos a muchos
Relaciones ternarias
Nota: una relacin puede tener atributos propios
PARTE
BODEGA VENDEDOR suministra
medio_de_embarque costo_unitario
Relacion basica solo con cardinalidades maximas
Cardinalidades minimas obligatorias
PELCULA
COPIA EN
VIDEO
PACIENTE CONSULTA
est
grabada
en
acude a
Cardinalidad opcional, uno a uno y en grado unitario
PERSONA
desposa
Claudia
Gerardo
Elena
Carmen
Ricardo
Carlos
Relacion
Instancias
clave_
empleado
nombre_
empleado
(otros
atributos)
clave_
curso
nombre_
curso
requisito
EMPLEADO CURSO aprueba
Empleado
Carlos
Mara
Othn
Leonel
Irma
Curso
Relacion binaria con un atributo
Aqui el atributo Iecha es necesario solo cuando un empleado
aprueba un curso. El atributo es de la relacion.
EMPLEADO CURSO
clave_
empleado
nombre_
empleado
clave_
curso
nombre_
curso
fecha
aprueba
Relacion ternaria con Atributos
PARTE
BODEGA VENDEDOR suministra
medio_de_embarque costo_unitario
Relacion muchos a muchos, unitaria y con atributo
PARTE
cantidad
se
Compone
de
Las entidades se pueden relacionar en varias Iormas
supervisa EMPLEADO DEPARTAMENTO
trabaja
en
administra
ProIesores y cursos con restriccion
cardinalidad
maxima
restringida a 4
PROFESOR CURSO
semestre
puede
impartir
imparte
Ejercicio
A la compaa El Sapo Saltador, S.A. le interesa guardar informacin
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,
direccin, telfonos de casa, extensin, puesto, departamento,
estado civil y prestaciones. Adems, a la compaa le interesa
mantener la siguiente informacin acerca de sus productos:
nmero de identificacin del producto, costo unitario, nmero de
unidades en inventario, descripcin, categora (ej.
electrodomsticos, cocina, juguetes, etc.) y fecha de
manufactura. Cada departamento de la compaa se encarga de
una categora. Todos los departamentos tienen un nombre y una
extensin distinta. Tambin es importante guardar informacin
sobre los proveedores, quin es el representante de ventas, el
nombre de la compaa, la clave del proveedor, la direccin, la
extensin y los productos que ofrece.
Entidades Fuertes vs. Dbiles y
Relaciones de Identificacin
Entidad fuerte
Existe independientemente de otras entidades
Tiene su propio identificador nico
Se representa con un rectngulo de lnea sencilla
Entidad dbil
Depende de una entidad fuerte, no puede existir sola
No tiene su propio identificador nico
Se representa con un rectngulo de lnea doble
Relacin de identificacin
Asocia entidades fuertes con dbiles
Se representa con un rombo de lnea doble
Entidades Iuertes y debiles
Entidad Iuerte Entidad debil
Relacion de identiIicacion
tiene
EMPLEADO
DEPENDIENTE
apellido_
paterno
nombre
clave_empleado
apellido_
materno
nombre_
empleado
nombre_dep
fecha_
nacimiento
Entidades Asociativas
Es una entidad tiene atributos
Y es una relacin asocia dos entidades
Las cardinalidades hacia la entidad asociativa siempre son
muchos
La entidad asociativa podra tener significado independientemente
de otras entidades
La entidad asociativa preferentemente debe tener un identificador
nico y puede tener ms atributos
Puede tener otras relaciones con entidades adems de las que
asocia
Las relaciones ternarias se deben convertir en entidades
asociativas
Entidad asociativa CERTIFICADO
Una entidad asociativa se representa con un rectangulo y un
rombo dentro. El lado 'muchos siempre apunta a la entidad
asociativa.
EMPLEADO CURSO
clave_
empleado
nombre_
empleado
clave_
curso
nombre_
curso
fecha num_certificado
CERTIFICADO
Supertipos y Subtipos

Subtipo:
Subtipo: un subgrupo en una entidad que posee
atributos adicionales exclusivos.

Supertipo
Supertipo
:
: entidad genrica con los
atributos comunes a todos los subtipos con
que se relaciona.

Herencia:
Herencia:
Los subtipos heredan todos los atributos del
supertipo
Una instancia del subtipo tambin es una
instancia del supertipo
Notacin bsica para
supertipos y subtipos
atributos
compartidos
SUPERTIPO
SUBTIPO 1
SUBTIPO 2
atributos nicos
para subtipo 1
atributos nicos
para subtipo 2
Entidad
genrica
Versiones
especializadas
del supertipo
Etctera
Supertipo EMPLEADO y tres subtipos
Todos los subtipos de
empleado comparten estos
atributos
Cada subtipo de empleado
tendra sus propios
atributos
EMPLEADO
EMPLEADO
POR HORA
EMPLEADO
ASALARIADO
CONSULTOR
clave_empleado
nombre_empleado direccin
fecha_contrato
pago_por_hora salario opcin_acciones num_contrato tasa_facturacin
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
Generalizacin y
Especializacin
Generalizacin: El proceso de definir
un supertipo a partir de los subtipos.
BOTTOM-UP
Especializacin: 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
tambin
Exhaustiva: lnea doble
No exhaustiva: lnea 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)
FACTULTAD STAFF
EMPLEADO EX-ALUMNO ESTUDIANTE
PERSONA
POSGRADO PREGRADO
salario
fecha_contrato
id_persona
nombre
direccin
sexo
fecha_nacim
departamento
rango puesto tipo asesor
ao
grado
fecha
grados
Agrupamiento
Los diagramas EER pueden ser difciles
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 algn
aspecto del negocio
Las restricciones pueden impactar:
Estructura (definicin, dominio, relacin)
Comportamiento (restricciones de operacin)
Reglas sobre acciones
Objeto ancla el objeto sobre el cual se
limitan las acciones
Accin creacin, borrado, actualizacin
o lectura
Objetos correspondientes un objeto
influenciando la habilidad de realizar una
accin en otra regla de negocio
La regla sobre acciones identificar objetos La regla sobre acciones identificar objetos
correspondientes que restringen las acciones sobre objetos correspondientes que restringen las acciones sobre objetos
ancla ancla
PROFESOR
ESTUDIANTE
CURSO
GRUPO
num-grupo
id-grupo
semestre
Id_estudiante
nombre
id_profesor nombre_prof
fecha_acredita
id_curso
nombre_curso
est
acreditado
est
programado
est
asignado
est
inscrito
R
objeto ancla
objeto correspondiente
objeto correspondiente
regla sobre accin
para poder asignar un grupo, el profesor debe estar acreditado
para impartir el curso correspondiente
Normalizando ERDs
Normalizar permite optimizar el diseo 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 lgico
Para ERDs garantiza segunda forma normal
Normalizando ERDs
Relaciones muchos a muchos
Crear una entidad asociativa
Relaciones unitarias
Crear una entidad dbil
Atributos multivaluados
Crear una entidad dbil
Relaciones ternarias
Crear una entidad asociativa
Ejercicio
Normalizar el siguiente ERD
clave_
empleado
nombre_
empleado
clave_
proyecto
fecha_
inicio
material
EMPLEADO PROYECTO
trabaja
en
dependiente
nombre_
proyecto
fecha_
final
Ciclo de Desarrollo
lderl|l|cac|r y
se|ecc|r de proyeclos
lr|c|ac|r y p|areac|r
de| proyeclo
Analisis
[diseno conceptual}
0|sero lis|co
lrp|arlac|r
Varler|r|erlo
0|sero |g|co
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 atmicas
Cada rengln 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 relacin muchos a muchos
corresponde a una tabla
Los renglones corresponden a instancias de la
tabla o de la relacin muchos a muchos
Las columnas corresponden a atributos
Las relaciones del ERD se expresan como llaves
forneas y van en el lado muchos
NOTA: las tablas tambin 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 propsitos principales:
Las llaves primarias son identificadores nicos de la
tabla
Las llaves forneas son identificadores para ligar
dos tablas
Las llaves pueden ser simples o compuestas,
dependiendo del nmero de atributos que las
componen
Pasando de ERD a Modelo
Relacional
EMPLEADO CURSO
clave_
empleado
nombre_
empleado
clave_
curso
nombre_
curso
fecha num_certificado
CERTIFICADO
clave_
empleado
nombre_
empleado
num_
certificado
fecha
clave_
empleado
clave_
curso
clave_
curso
nombre_
curso
EMPLEADO
CURSO
CERTIFICADO
Otras Consideraciones
La llave de una entidad asociativa puede ser:
Asignada con un identificador nico
La combinacin de las llaves de las entidades que
asocia
La llave de una entidad dbil
Siempre es compuesta
Se combina el valor del atributo en cuestin con la
llave de la entidad padre
La llave de un subtipo
Es la misma que la del supertipo
La relacin es uno a uno
Ejercicio
Convertir los siguientes ERD a modelo
relacional
EMPLEADO
EMPLEADO
POR HORA
EMPLEADO
ASALARIADO
CONSULTOR
clave_empleado
nombre_empleado direccin
fecha_contrato
pago_por_hora salario opcin_acciones num_contrato tasa_facturacin
tiene
EMPLEADO
DEPENDIENTE
apellido_
paterno
nombre
clave_empleado
apellido_
materno
nombre_
empleado
nombre_dep
fecha_
nacimiento
Tablas Bien Estructuradas
Una que tiene redundancia mnima y permite
insertar, actualizar y borrar datos sin causar
inconsistencias
La meta es evitar anomalas
Insercin al agregar nuevos renglones se
duplican datos innecesariamente
Borrado al borrar renglones se pierden datos
que sern necesarios en el futuro o en otras
tablas
Actualizacin cambiar datos en un rengln
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 normalizacin
Ninguna forma normal
Primera forma normal
Segunda forma normal
Tercera forma normal
Forma normal de Boyce-Codd
Cuarta forma normal
Quinta forma normal
Eliminar grupos repetidos
Eliminar dependencias parciales
Eliminar dependencias transitivas
Eliminar anomalas de dependencias funcionales
Eliminar dependencias multivaluadas
Eliminar otras anomalas
Ninguna forma normal
idemp iddepto depto proy liderproy nombre
Puede tener muchos proyectos, por lo tanto es multivaluado
Primera forma normal
idemp iddepto depto proy liderproy nombre
Dependencias parciales
Segunda forma normal
idemp direccion nombredepto iddept grado nombre
Dependencias transitivas
Ejercicio
17,000 4 meses Rapids Mercadotecnia Anastasia 098871
25,000
15,000
3 meses
4 meses
Blue Jay
Rapids
Contabilidad Gumaro 736499
45,000
10,000
3 meses
2 meses
Blue Jay
Shell
Mercadotecnia Petronilo 456527
presupuesto duracion proyecto area nombre claveempleado
Ejercicio
Capitan
Co-piloto
Sobrecargo
Aaron Guy
Pepe Perez
Lisa Juarez
Acapulco FrankIurt 9802
8766
4563
65
Capitan
Co-piloto
Sobrecargo
Pepe Perez
Jorge Rojas
Carmen Mar
Atlanta Huatulco 8766
5621
6532
123
puesto nombre destino origen idtripulacion novuelo
Ejercicio
Indicar en qu forma normal se encuentran las siguientes tablas:
a)
EMPLEADO (emp_id, emp_nombre, direccin, telfono)
b)
EMPLEADO (emp_id, emp_nombre, direccin, telfono, pariente)
c)
EMPLOYEE (emp_id, emp_nombre, direccin, telfono, pariente)
d)
RELATIVE (emp_id, pariente)
e)
FLIGHT (no_vuelo, origen, destino, millaje)

También podría gustarte