Está en la página 1de 155

Maestría en Redes y Sistemas Integrados

Tecnologías de la información

MC. Yesenia Hernández Velázquez


yhernandez@lania.mx

Enero 2019

TODOS LOS DERECHOS RESERVADOS


SISTEMA DE GESTIÓN DE BASES DE DATOS
(SGBD/DBMS)
▪Software que facilita la
creación y el mantenimiento
de Base de Datos

▪Existen SGBD
• comerciales: DB2, Oracle,
SQLServer

• de libre distribución tales como:


MySQL, Postgres.

2
Funcionalidades de un SGBD
▪ Definir la base de datos: tipos de datos, estructuras y
restricciones.
▪ Construir o cargar la base de datos en un medio de
almacenamiento.
▪ Manipulación de la base de datos: consultas, generación de
reportes, inserción, eliminación y modificación de su contenido
▪ Procesamiento concurrente de un conjunto de usuarios y
programas, conservando los datos válidos y consistentes.
▪ Protección y medidas de seguridad para prevenir accesos no
autorizados.

3
MEDIO AMBIENTE DE UNA BD

4
Componentes de un sistema gestor de BD
▪ Gestor de archivos: Gestiona la asignación de espacio en la memoria del disco y de las
estructuras de datos usadas para representar información.
▪ Manejador de base de datos: Sirve de interfaz entre los datos y los programas de aplicación.
▪ Procesador de consultas: Traduce las proposiciones en lenguajes de consulta a instrucciones
de bajo nivel. Además convierte la solicitud del usuario en una forma más eficiente.
▪ Compilador de DDL: Convierte las proposiciones DDL en un conjunto de tablas que contienen
metadatos, estas se almacenan en el diccionario de datos.
▪ Archivo de datos: En él se encuentran almacenados físicamente los datos de una
organización.
▪ Diccionario de datos: Contiene la información referente a la estructura de la base de datos.
▪ Índices: Permiten un rápido acceso a registros que contienen valores específicos.

5
6
TIPOS DE USUARIOS DE UN SGBD
▪Diseñador de base de datos: define el contenido, la
estructura, las restricciones y las transacciones sobre la
BD

▪Usuarios finales: utilizan los datos para consultarlos,


realizar reportes y actualizar el contenido de la base de
datos

▪Administrador de la BD
• Autoriza los accesos a la BD
• Coordina y monitorea su uso
• Adquiere el software y recursos de hardware
• Controla el uso de la BD y monitorea la eficiencia de las operaciones

7
ventajas desventajas
• Control de redundancia de • Complejidad
datos • Tamaño
• Consistencia de datos • Costo (adicional de
• Compartición de datos hardware o para conversión
• Integridad de datos mejorada de datos)
• Seguridad mejorada • Desempeño (Velocidad)
• Uso de estándares • Impacto grande por fallas en
• Mejora del mantenimiento el gestor.
• Incrementa la concurrencia

8
Diseño de Base de Datos

9
DISEÑO DE BASES DE DATOS
▪Diseñar una BD: definir su estructura lógica y física
de tal forma que se satisfagan los requerimientos
solicitados

▪Aspectos a considerar
• Clara estructuración de la información
• Lograr objetivos de desempeño

10
OPERACIONES

▪Lenguajes:
• De definición de estructuras
de datos (Data Definition
Language)

• De manipulación de datos
(Data Manipulation Language)

11
FASES PARA EL MODELADO DE DATOS

12
PLANEACIÓN DE LA BASE DE DATOS
▪Evaluación de sistemas
manejadores de base de datos

▪Desarrollo y/o adopción de


estándares

Estudio de factibilidad tecnológica,


operacional y económica

13
FASES PARA EL MODELADO DE DATOS

14
RECOLECCIÓN Y ANÁLISIS DE
REQUERIMIENTOS

▪Identificación de
necesidades de
hardware y software

▪ Identificación de procesos de
negocio
15
Cuestionario guía
▪Nombre
▪Cargo
▪Área de Responsabilidad
▪Obligaciones principales que requieren información de la base
datos
▪¿De qué aplicaciones recibe información?
▪¿Con cuánta frecuencia recibe información?
▪¿Qué hace con esta información?
▪¿Qué precauciones de seguridad debe tomar con respecto a
la información?
▪¿Para qué aplicación proporciona datos?
▪Están contemplados cambios para alguna de sus actividades
actuales que involucren alguna de las informaciones
anteriores?

16
FASES PARA EL MODELADO DE DATOS

17
DEFINICIÓN DEL DICCIONARIO DE DATOS
▪Es un catálogo ó depósito de los
elementos de un sistema. Se
encuentran todos los
elementos que forman parte
del sistema con sus detalles y
descripciones
▪ Los elementos más
importantes son:
• Flujos de datos
• Almacenes de datos ¿Cuál es la longitud de un
• Procesos dato?
¿Qué otros nombres recibe?
¿Dónde se utiliza?
18
DICCIONARIO DE DATOS

▪Se utilizan por 5 razones importantes:

• Manejo de detalles (No memorizar, registrar todo lo recabado en


entrevistas)

• Comunicar un significado común (¿Programa, significa lo mismo


para dos personas? ¿Cómo se distingue un programa de varios?)

• Documentar características del sistema (¿Cuáles son los


procesos a modelar?¿Bajo qué circunstancias se lleva a cabo
cada proceso? ¿Con cuánta frecuencia ocurre?)

19
DICCIONARIO DE DATOS
▪Facilitar el análisis de los detalles para evaluar y determinar
dónde efectuar cambios en el sistema (¿Son necesarias más
características? ¿Qué datos deben capturarse? ¿Cómo se
validan? ¿Cuántos datos se procesan al día?)
• Naturaleza de las transacciones
• Salida y generación de reportes
• Archivos y bases de datos existentes
• Capacidad del sistema

▪Localizar errores y omisiones en el sistema (conflictos entre


descripciones de flujos de datos y procesos que nunca
reciben entradas o producen salidas, nunca se actualizan)

20
Tarea 2
▪Realizar una búsqueda de los elementos de un
diccionario de datos y describirlos

▪Buscar los tipos de diccionarios de datos que existen


y describirlos

21
FASES PARA EL MODELADO DE DATOS

22
DISEÑO DE LA BASE DE DATOS

Conceptual Lógico Físico

Representación Traducción del Determinar la


gráfica de lo modelo de datos estructura y
recopilado en Conceptual al organización de
el paso 3. (E- DDL del SMBD archivos en la BD
correspondiente
R, UML, ORM,
Relacional)

23
DISEÑO CONCEPTUAL
▪Es independiente del SMBD

▪Posee un mayor nivel de


abstracción

▪Enfocado al diseño de alto


nivel

▪Ideal para presentar al


usuario del sistema

24
FASES PARA EL MODELADO DE DATOS

25
EVALUACIÓN DE UN SGBD
▪Seleccionar el modelo de datos, el tipo de sistema
gestor de BD: R, OR, OO, multidimensional

▪Costos

▪Requerimientos de hardware

▪Portabilidad

▪Funcionalidades

26
FASES PARA EL MODELADO DE DATOS

27
IMPLEMENTACIÓN
▪Elaborar un prototipo

▪Aplicar un conjunto de pruebas

▪Realizar correcciones e implementarlo

▪Cargar la información a la base de datos

▪Efectuar mantenimiento
• Correctivo (recovery)
• Preventivo (backup)
• Monitoreo, asignación de permisos, etc

28
Modelo Entidad - Relación
29
Modelo Entidad-Relación Básico
▪Entidad: reagrupamiento de propiedades, con una
existencia propia e identificable.
• CLIENTE dotada de un nombre y una dirección.
• ARTICULO dotada de un precio unitario, de una referencia.

▪Propiedad: información elemental conforme a las


necesidades de información.
• La DIRECCION de una persona.
• El PRECIO de un artículo.

30
Modelo Entidad-Relación Básico
▪Relación: asociación entre varias entidades. Su
existencia está condicionada por las entidades
relacionadas.

• La asociación CASAMIENTO entre dos personas.


• La asociación ORDENAR entre un cliente y un artículo.

31
Elementos dentro del modelo ER

32
Modelo Entidad - Relación
ATRIBUTO
▪Parte lógica más pequeña de información, se usa para
describir una entidad
▪Describen propiedades que posee cada miembro de un
conjunto de entidades
▪Cada entidad tiene un valor para cada atributo que lo
conforma
▪Tiene un conjunto de valores permitidos llamados
dominio

33
Modelo Entidad - Relación
▪Tipos de atributos:
• Simples: no están divididos en subpartes

• Compuestos: pueden dividirse en subpartes que a


su vez son otros atributos, permiten modelos más
claros

• Monovalorados: tiene un sólo valor para una


entidad específica (Fecha de nacimiento)

• Multivalorado: tienen un conjunto de valores


para una entidad específica (teléfono)

34
Propiedad /Atributo
Tipos:
• Simple: color, folio, duración
• Compuesta: dirección (calle, colonia, ciudad)

35
Modelo Entidad - Relación
▪Tipos de atributos:
• Derivados: el valor para este tipo de atributo se
puede derivar de los valores de otros atributos o
entidades relacionados.

• Toma un valor nulo cuando una entidad no tiene


un valor, no existe o es desconocido para la
entidad

36
Modelo Entidad - Relación
ciudad provincia
calle
codpostal
dirección
fechanacim telefono
(0,3)
(0,1)
nombre EMPLEADO altura
(1,2)

nss nacionalidad
dni edad

37
Atributos Clave
▪Atributo con valor distinto para cada instancia de un
tipo de entidad
curp en EMPLEADO
▪Una clave identifica de forma única cada entidad
concreta  atributo identificador
▪Notación

EMPLEADO

curp
[EN2002]

38
Atributos Clave
▪Una clave puede estar formada por
varios atributos  clave compuesta
• Combinación de valores distinta para cada instancia
(nombre, fechanacim) en el tipo de entidad EMPLEADO
• Una clave compuesta debe ser mínima
▪Un tipo de entidad puede tener
más de una clave  claves candidatas
Claves o Identificadores Candidatos de EMPLEADO:
• curp
• nss
• (nombre, fechanacim)

39
Atributos Clave
▪Atributo identificador principal (IP)
• Clave Principal
• Elegido (por el diseñador) de entre los identificadores candidatos
(IC), para ser el medio principal de identificación de las
instancias del tipo de entidad
• curp en EMPLEADO
▪Atributos identificadores alternativos (IA)
• Claves Alternativas
• El resto de IC’s
• nss y (nombre, fechanacim) en EMPLEADO

40
Notación para atributos clave
[EN2002]
ciudad provincia
calle
codpostal
dirección
fechanacim telefono
(0,3)
(0,1)
n-f EMPLEADO altura
(1,2)

nombre IP nacionalidad
nss
curp edad

◼ Es obligatorio que todo tipo de entidad tenga


un identificador
41
Propiedad /Atributo
▪Una o un conjunto de propiedades se elige como
identificador único (llave) de cada entidad, lo cual
permite conocer sin ambigüedades una ocurrencia.

▪Las propiedades que formen parte de una llave no


deben tener valores nulos

42
Propiedad / Atributo
▪Evitar

• Derivadas o redundantes: edad (fecha de nacimiento)

• El uso de propiedades similares: dirección, domicilio

• Colocar propiedades que sean ambiguas (polisemia): precisar si


se trata de la dirección del cliente o del proveedor.
• FACTURA??: SI/NO
123BG
ENTREGADA/CANCELADA

43
Modelo Entidad - Relación
Entidad:
▪Cosa u objeto en el mundo real que es distinguible de todos
los demás objetos
▪Puede ser concreto (persona, libro) o abstracto (préstamo,
concepto, vacaciones)
▪Conjunto de entidades son aquellas del mismo tipo que
comparten las mismas propiedades, o atributos
▪ Las entidades individuales que forman parte de un conjunto
se le llama extensión del conjunto de entidades

44
Entidades
▪Una entidad que tiene un atributo llave se le
denomina entidad fuerte.

▪Es posible que ciertas entidades no cuenten con


suficientes atributos para formar una llave. Cuando
esto sucede se les llama entidades débiles.

45
Entidad vs Ocurrencia

46
Relación / Asociación
▪ Asociación entre diversas entidades de un modelo. Es la
traducción de los verbos del lenguaje de la empresa.

▪ No tiene existencia propia. Más de una asociación puede existir


con los mismos tipos de entidad participantes

▪ Una relación también puede tener atributos asociados

47
Relación / Asociación
▪Es posible asociar una entidad con ella misma, se le
conoce como relación reflexiva

48
▪ Rectángulo: tipo de entidad
▪ Rombo: tipo de asociación
▪ Elipse: atributo. Los atributos llave se
subrayan
▪ Líneas: vínculos entidad-asociación,
atributo-entidad

49
Grado de un tipo de asociación
▪Número de tipos de entidad que participan en el tipo
de asociación

▪A un tipo de asociación involucrando dos tipos de


entidad se le denomina binario. Ej.: CONTIENE

▪Es posible tener tipos de asociación de grado mayor a


dos, aunque es raro en la práctica

50
Cardinalidad
▪Representan el número mínimo y máximo de
ocurrencias de un tipo de relación.

▪Cuántas entidades de E1 están asociadas con cuántas


entidades de E2

51
Cardinalidad
▪(0, 1) la ocurrencia de una entidad puede existir sin
que participe en la relación (0) y nunca participa más
de una vez (1).

▪(0, n) la ocurrencia de una entidad puede existir sin


que participe en la relación y puede participar de
manera ilimitada.

52
Cardinalidad
▪Ejemplo
• Si un departamento posee de 0 a n empleados, en la entidad
EMPLEADO aparecerán las cardinalidades (0,n); en otro sentido,
podemos suponer que un empleado tiene que pertenecer
obligatoriamente a un departamento y a lo sumo a uno, por lo
que las cardinalidades de DEPARTAMENTO serán (1,1).

(0,N) (1,1)
Empleado Pertenece Departamento

53
Cardinalidad
▪Números mínimo y máximo de instancias del tipo de
relación en las que puede intervenir una instancia del
tipo de entidad

▪Notación
• (min, max) en la línea que une entidad y relación

(0,n) (1,n)
PERSONA USA EDIFICIO

(1,1) (0,n)
POSEE

54
Cardinalidad
▪Cardinalidad de tipos de entidad recursivos

[EN2002]

superior (0,n) 1
subalterno
EMPLEADO (0,1) N JEFE DE

55
Recomendaciones para construir un modelo
ER
▪Identificar y listar las propiedades obtenidas de los
procesos del negocio.

▪Clasificarlas por un orden establecido (alfabético). Todas


las propiedades deben ser simples

▪Eliminar las polisemias y sinónimos

▪Identificar las propiedades que servirán de llave para


generar una entidad

56
Recomendaciones para construir un modelo
ER
▪Toda entidad debe participar en una relación, no es
opcional

▪Colocar las relaciones entre entidades y asociarles sus


propiedades (en caso de tenerlas).

▪Asignar las cardinalidades de cada entidad-relación.

▪Verificar las reglas.

57
Ejercicios
▪Obtener el diagrama E-R
▪Empleados (Nombre, Teléfono, Salario, Cargo)
▪Departamentos (Nombre, Localización)

▪Un empleado trabaja en un departamento


▪Un departamento puede tener de uno a varios
empleados
▪Un empleado puede dirigir a muchos empleados

58
Ejercicios
Una empresa necesita un sistema de información, los
datos que administra son los siguientes:

• Número de cliente (único) • Artículos pedidos


• Proveedor del articulo. • Cantidad.
• No de pedido (único) • Saldo
• Direcciones de envío • Número de artículo
• Descuento (único).
• Descripción del artículo • Límite de crédito
• Fecha del pedido • Cliente

59
Razón de Participación
▪Especifica si toda la extensión de un tipo de entidad
participa en un tipo de relación, o sólo parte de la
extensión
▪Indica si hay dependencia en existencia de un tipo de
entidad respecto de un tipo de relación

▪Clases de participación:
• Participación total (dependencia en existencia)
• Participación parcial

60
Razón de Participación
DIRECTOR
▪Notación ACTOR
• Líneas dobles o simples 1
HA_ RODADO personaje M

N ACTUA_EN
PELICULA
film N
trabajador PELICULA
EMPLEADO
1 encargado 1
TRABAJA_EN SUPERVISA

1 sucursal N

lugar trabajo LOCAL_VIDEOCLUB


61
Modelo Entidad –
Relación Extendido

62
Modelo Entidad-Relación Extendido
▪Aportaciones de diversos autores al modelo
Entidad-Relación «básico».

▪Permiten representar...
• Relaciones exclusivas entre sí
• Jerarquías de Especialización/Generalización

63
Relaciones Exclusivas
▪ Dos (o más) tipos de relación son exclusivos,
respecto de un tipo de entidad que participa en ambos, si cada
instancia del tipo de entidad sólo puede participar en uno de
los tipos de relación
VEHÍCULO

CONSUME GASTA

GASOIL GASOLINA

• CONSUME y GASTA son exclusivas respecto del tipo de


entidad VEHICULO
64
Especialización/Generalización (E/G)
▪Caso especial de relación entre un tipo de entidad
y varios otros tipos de entidad

▪La jerarquía o relación que se establece entre uno


y otros corresponde a la noción de “es_un” o de
“es_un_tipo_de”

▪Estas jerarquías pueden formarse por


especialización o bien por generalización

65
E/G: Subtipo de un tipo de entidad
▪ Agrupación de instancias dentro de un tipo de entidad, que debe
representarse explícitamente debido a su importancia para el
diseño o aplicación
• Subtipos del tipo de entidad VEHÍCULO:
CAMIÓN
TURISMO
AUTOBÚS
CICLOMOTOR
• Subtipos del tipo de entidad EMPLEADO:
SECRETARIO
GERENTE
COMERCIAL

▪ El tipo de entidad que se especializa en otros se llama supertipo (


VEHICULO, EMPLEADO )
66
Especialización
▪ Un conjunto de entidades puede incluir subgrupos de
entidades que se diferencian de alguna forma de las
otras entidades del conjunto

▪ Puede tener atributos que no son compartidos por


todas las entidades del conjunto

▪ El proceso de designación de subgrupos dentro de un


conjunto de entidades se denomina especialización

▪ También pueden llamarse relación superclase-subclase

▪ Proceso de diseño descendente

▪ Enfatiza las diferencias entre las entidades dentro del


conjunto
67
Generalización
▪ Proceso de diseño ascendente

▪ Varios conjuntos de entidades se sintetizan en un


conjunto de entidades de nivel más alto basado en
características comunes

▪ Relación contenedora entre el conjunto de entidades


de nivel más alto y uno o más conjuntos de entidades
de nivel más bajo
EMPLEADO
▪ Inversión simple de una
especialización actividad
▪ Se diferencian en su punto de
partida y objetivo global
▪ Enfatiza las similitudes entre SECRETARIO GERENTE COMERCIAL
entidades del conjunto

68
Herencia
▪ Propiedad crucial de la especialización y la generalización

▪ Los atributos de los conjuntos de entidades de nivel más alto se


dice que son heredados por los conjuntos de entidades de nivel
más bajo

▪ Las entidades de nivel más bajo también heredan la participación


en los conjuntos de relaciones en los que su entidad de nivel más
alto participa

69
Especialización, Generalización y Herencia

70
Agregación
▪Una limitación del modelo E-R
es que no resulta posible
expresar relaciones entre
relaciones

▪La agregación es una


abstracción a través de la cual
las relaciones se tratan como
entidades de nivel más alto

71
Agregación
▪ Un empleado trabaja en una sucursal específica cubriendo un cargo
específico

▪ ¿Qué sucedería si quisiéramos representar al jefe o directivo que


es responsable de dicho empleado en una sucursal determinada
para un puesto en específico?

72
Agregación

73
Modelo UML
▪ Lenguaje gráfico para especificar, construir y documentar
artefactos de software

▪ Resultado de una acción de unificación de lenguajes de modelado


orientados a objetos

▪ Permite modelar sistemas desde la fase de concepción hasta la fase


de ejecución

74
Diagrama de Clases
▪Conjunto de clases, relaciones y dependencias

▪Modelar la perspectiva de diseño estático de un


sistema

▪Clase
• Nombre
• Conjunto de atributos
• Conjunto de métodos

75
Notación UML equivalencia en ER
▪Entidad y sus atributos

76
E/R - UML
▪ En E/R un tipo de entidad representa dos cosas:
• La intensión: nombre del tipo de entidad y lista de atributos.
• La extensión: conjunto de entidades del tipo de entidad.

▪ Una clase incluye ambos aspectos.


▪ Las entidades de una clase se llaman objetos o instancias.
▪ Cada objeto o instancia consta de un identificador predefinido
diferente para cada objeto. Dicho identificador no es ninguno de sus
atributos.
▪ Los objetos o instancias de una clase cuentan con un conjunto de
operaciones que se pueden realizar sobre ellos (sólo se pueden
realizar esas operaciones).
▪ Las operaciones están asociadas a (definidas en) la clase.

77
Notación UML equivalencia en ER

78
Notación UML equivalencia en ER

Entidad - Relación Clases UML


79
Notación UML equivalencia en ER

80
Notación UML equivalencia en ER

81
Notación UML equivalencia en ER

83
Notación UML equivalencia en ER

84
Notación UML equivalencia en ER

85
Notación UML equivalencia en ER

86
Ejemplos

87
Ejemplos

88
Ejemplos

89
Modelo relacional

90
Modelo relacional
▪Una base de datos relacional (BDR) es un conjunto de
tablas vinculadas entre sí

▪Es considerado un modelo lógico, a diferencia del


modelo ER que es conceptual

▪El esquema de la BD es el conjunto de tablas de cada


relación individual

▪La instancia de la BD es el conjunto de tuplas de cada


una de las tablas

91
Esquema e Instancia
▪Esquema de una tabla: T = (A1,…,An), donde T es un
nombre y A1,…, An son atributos
▪La instancia de una tabla es el conjunto de tuplas que
tiene en un momento dado

92
Dominios, Tuplas, Atributos, Relaciones
▪Dominio: Conjunto de valores
▪Tupla: Lista de n valores ordenados con un dominio
dado

▪Relación: Conjunto de tuplas

▪Atributo: Papel de un dominio en una relación

▪Dominio de un atributo: Valores permitidos para un


atributo

93
Grado y Cardinalidad
▪El grado de una tabla es el número de campos o
columnas que posee. Se define al momento de
construir una tabla.

▪La cardinalidad es el número de tuplas concretas


que almacena. Puede variar en el tiempo.

94
Restricciones de Integridad
▪Condiciones que deberán cumplir todas las la
integridad de los datos instancias válidas de una
relación para garantizar

▪Seis tipos principales:


1. De llave
2. De unicidad
3. Valor nulo
4. De dominio
5. Integridad referencial
6. Generales

95
Restricción de llave
▪Llave: conjunto de atributos que identifican
unívocamente a cada tupla de una tabla
▪Si una relación tiene muchas llaves (candidatas), se
elige una como llave primaria
▪Ningún par de tuplas debe tener la misma
combinación de valores en los atributos que forman la
llave primaria
Primary
Key

96
Restricción de unicidad
▪Bajo esta restricción, un atributo sólo puede tomar
valores diferentes

▪Ejemplo: el email de un cliente

▪Una llave primaria por definición debe satisfacer


esta restricción
Unique

97
Restricción de obligatoriedad
▪Bajo esta restricción, un atributo no debe tomar nulo como
valor. (Las relaciones deben ser diseñadas de tal forma que sus
tuplas tengan el menor número de nulos posible)
▪Una llave primaria por definición debe satisfacer esta
restricción
▪Razones para el valor nulo
• atributo no aplicable o inválido Not
• valor del atributo desconocido (puede existir)
• valor de existencia conocida, pero no indisponible null
▪Los atributos que son nulos frecuentemente pueden ser
colocados en relaciones separadas

98
Restricción de dominio
▪Bajo esta restricción, un atributo debe tomar su valor
de un conjunto predeterminado

▪Los conjuntos pueden ser:


• Enumerados: ‘Teléfono’ puede tomar un valor de {‘Celular’,’Fijo’}
• Definidos por un rango: 0 <= edad < 150

99
Restricción de integridad referencial
▪Especificada entre dos tablas para mantener la
consistencia de los datos entre ellas.

▪Definición de llave foránea:


Conjunto de uno o más atributos de una tabla referenciando a la
llave primaria de otra tabla

▪El valor del atributo (o atributos) de la llave foránea


FK de la tabla referencial R1 es: Foreign
1. Un valor existente de llave primaria en la tabla referenciada
key R2
2. Nulo

100
▪Hay que determinar las consecuencias de la
modificación de la relación:

• CASCADE- Propagación de la acción realizada (borrado)


• SET NULL – Poner valor nulo a la llave foránea
• SET DEFAULT – Poner un valor a la llave foránea

Entiéndase como modificación la actualización o borrado de


datos.
Foreign
key

101
Restricciones Generales
▪Comprobar que los valores de un atributo cumplan
con una condición especificada.

• Puede aplicar sobre un atributo de una tabla


• O sobre varios atributos de diferentes tablas

Check/
Assertion

102
Convertir un modelo E-A a Relacional
▪Crear una tabla por cada entidad dándole por columnas
sus atributos simples y por llave su identificador.
▪El nombre de la entidad fuerte se convierte en el nombre
de una tabla , sus atributos simples serán sus columnas. El
atributo o los atributos identificadores servirán como llave
primaria de la tabla.
▪El nombre de la entidad débil se convierte en una tabla,
sus atributos simples serán las columnas de la tabla.
Tomará como llave primaria la llave primaria de la entidad
fuerte con la que está relacionada (estableciendo una llave
foránea).

103
Transformación de un Tipo de Entidad en una Tabla
▪Cada tipo de entidad E se transforma en el esquema de
una tabla con el mismo nombre.

▪Los atributos de la tabla son los atributos de E


▪El atributo llave de E se designa como la llave primaria
de la tabla.

104
Transformación de un Tipo de Asociación en una Tabla
▪ Un tipo de asociación A se transforma en el esquema de una tabla T
con el mismo nombre
▪ Los atributos de T son:
• Las llaves primarias de los tipos de entidad participantes en A. Su combinación
representará la llave primaria de la tabla
• Los atributos simples de A

105
Paso de atributos
▪Atributos multivaluados se convierten en una nueva
tabla, en donde la llave primaria estará compuesta por
la llave primaria de la entidad donde vive el atributo
más el atributo simple.

106
Paso de atributos
▪ Atributo compuesto.- Dos alternativas:
a) «Eliminar» atributo compuesto y considerar
todos sus componentes como columnas simples
de la tabla resultante
b)«Eliminar» los componentes y considerar el
atributo compuesto como una sola columna de
la tabla

107
Paso de atributos
▪Atributos derivados. No hay acuerdo sobre la forma
apropiada para su mapeo a modelo relacional
• Crear una tabla y una vista; en la tabla se omite el atributo, en la vista
incluir el atributo derivado y la forma en que se calcularía su valor.

• Si es un atributo cuyo valor se obtiene por los atributos que vivirán en la


entidad no se coloca, si su valor está condicionado por atributos de otras
entidades o tipos de relaciones se coloca y se agrega una nota la forma
de calcular su valor.

• Si es un valor que sólo se calculará una vez se deja en la tabla, si su valor


cambiará constantemente se quita y se deja una nota asociando cómo se
calcula dicho valor

108
Convertir un modelo E-A a Relacional
▪Examinar las asociaciones de cardinalidad (1,1). Para
cada una de ellas, realizar el tratamiento siguiente:
• Sea R la relación entre las entidades A y B. La cardinalidad es (1:1)
del lado de A. Integrar en la tabla que representa A la llave de B
así como las propiedades de R.

▪Algunos autores consideran factible formar una sola


tabla a partir de los atributos de ambas entidades; o si
se separan, la llave puede ser colocada en cualquier
tabla A o B.

109
Cardinalidad 1:1

110
Convertir un modelo E-A a Relacional
▪Examinar las asociaciones de cardinalidad (m,n):
• Sea R la relación entre las entidades A y B. Crear una tabla cuyos
atributos son:
• Las propiedades de R.
• Los atributos llave de la tabla que representa A.
• Los atributos llave de la tabla que representa B.

• La llave de la tabla se compone de la llave de A y de la llave de B.

▪Cuando existe una relación de muchos a muchos se crea


una tabla intermedia que almacenará los identificadores
de ambas tablas

111
112
113
Convertir un modelo E-A a Relacional
▪Examinar las asociaciones de cardinalidad (1:n) ó
(n:1):

▪Sea R la relación entre las entidades A y B. Realizar el


tratamiento siguiente:
• Integrar en la tabla que representa A la llave de B así como las
propiedades de R.

▪Esto es, la tabla que tenga la relación de muchos (n)


es la que guardará el identificador de la otra tabla.

114
Cardinalidad N:1

115
Ejercicio

codAutor derechosAutor isbn

AUTOR Escribe LIBRO


(1,n) (1,4)

nomAutor numPaginas titulo

116
Traducción de una relación n-aria
 Tabla R correspondiente a V, V
E1 E2
que incluye...
– claves ajenas hacia cada clave R1 E3 R2

primaria de R1, R2, R3, etc. R3


– columnas para los atributos de la relación V
(simples o componentes simples de atributos
compuestos)
– la clave primaria de R
▪ En general, es la combinación de todas las claves
externas hacia R1, R2, R3, etc.
▪ Pero es posible que sea un subconjunto de dicha
clave
117
Traducción de una relación n-aria
matricula
COCHE
nifCliente (0,1) fechaVenta
nifVendedor
CLIENTE Venta VENDEDOR
(0,n) (0,m)

(0,p)
cifBanco
BANCO

VENTA ( matricula, vendedor, cliente, banco, fechaVenta )

1. ¿Cuál es la superclave de esta relación?


2. ¿y cuál es su clave primaria?
3. ¿Cómo asegurar que no haya ventas sin cliente, sin coche, sin vendedor?
4. ¿Puede reflejarse la existencia de ventas directas (sin banco)?

118
Convertir un modelo E-A a Relacional
▪En el caso de E-A-Extendido. Generalización

▪Sea R la relación de generalización entre las entidades A y


B. Realizar el tratamiento siguiente:
• Crear una tabla para el conjunto de entidades A de mayor nivel
(supertipo)

• Para cada conjunto de entidades B de menor nivel (subtipo) crear una


tabla con:
• Los atributos llave de la tabla que representa A.
• Los atributos de la tabla B.

• La llave de la entidad B es la llave foránea de A

119
Herencia

120
Supertipo/Subtipo

121
Consideraciones Generales
▪Nombre de columna: claros, concisos, sin abreviaturas,
uniformes.
• Malos hábitos: cont_aut, cat_id, ide_pago, fecha_nac, f_factura.

▪Nombre de entidades únicos, claros, sin ambigüedades.


• Malos hábitos: pagcon; pagcon1; pagos.

▪Tipos de datos: que definan correctamente la información


a almacenar y la longitud especificada que sea adecuada.
• Malos hábitos: poner todos los tipos de datos a string; manejar todas las
longitudes iguales (20).

122
Consideraciones Generales
▪Especificar cuáles columnas son opcionales y cuáles
obligatorios.
• Malos hábitos: dejar todos los atributos como opcionales (a
excepción de la llave primaria)

▪Identificar plenamente a los atributos que son llaves


foráneas, no confundirlos con atributos estándar.

▪Los nombres de las tablas se sugiere vayan en plural


y los atributos en singular

123
Traducción de una relación binaria M:N
 Nueva tabla R, que incluye... E1 V E2
– claves ajenas hacia las
claves primarias de R1 y de R2 R1 R2
R
▪ Su combinación (concatenación) forma
la clave primaria de R
– columnas correspondientes a los atributos de la relación V

nombre papel código


ACTOR(nombre, ..., caché, ...)
FK
ACTOR Actua PELICULA
(1,m) en (1,n) ACTUA_EN (actor, pelicula, papel, paga)
FK
caché paga título PELICULA(código, título, ...)

[MPM 1999]
124
Traducción de una relación binaria 1:N
1) Caso general E1
1
V
N
E2
• Propagación de clave R1 R2
– En R2 se incluyen nuevas columnas...
▪ clave externa hacia la clave primaria de R1
▪ columnas para los atributos de la relación V
1.1) Participación total de E2 en V

codEstado
nombreMunicipio
Estado contiene Municipio
(1,1) (1,n) ...

nomEstado Municipio nombreMunicipio Estado …..

FK: NULOS NO PERMITIDOS


Estado CodEstado nomEstado …..

125
Traducción de una relación binaria 1:N
1.2) Participación parcial de E2 en V

nomMuseo
codCuadro
PINACOTECA Expone CUADRO
(1,n) titulo
(0,1)
pintor
ciudad
sala

NULOS PERMITIDOS
Cuadro
codCuadro titulo pintor museo sala …
FK
Pinacoteca
nomMuseo ciudad …

126
Traducción de una relación binaria 1:N
2) Se cumple uno o varios de estos supuestos:
❑ La relación V tiene varios atributos propios
❑ Hay pocas ocurrencias de la relación V
❑ En el futuro la relación V se podría transformar en una M:N
* Añadir una nueva tabla R, que incluye...
– claves ajenas hacia las claves primarias de R1 y de R2
▪ Donde una clave será la clave primaria de R
▪ columnas para los atributos de V

ESTUDIANTE: curp nombre …


curp
ESTUDIANTE
nombre (0,1)

1:N Propietario_de PROPIEDAD coche estudiante


FK FK NN
(0,n)
matricula COCHE matricula modelo …
COCHE
modelo

127
Traducción de una relación binaria 1:1
1) Participación total de ambas entidades
– Si las entidades no participan en otras relaciones...
 una única tabla R, que incluye...
– columnas para todos los atributos de ambas entidades
– claves de R:
▪ Clave primaria = clave primaria de R1 o de R2 (es indiferente)
▪ La otra (llave si es distinta) será alternativa (UNIQUE) y además
NOT NULL
– columnas para atributos de la relación V

nss numHistoria
PACIENTE Tiene HISTORIAL
MEDICO fechaApertura
(1,1) (1,1)

nombre ... ... centroSalud

PACIENTE nss nombre numHisto fechaApert centroSalud


PK AK, NN
128
Traducción de una relación binaria 1:1
2) Participación total de una entidad y parcial de la otra
2.1) Caso general E1 V E2

R1 R2
 Propagación de clave
– La clave de la entidad con participación parcial «se propaga»
hacia la entidad con participación total → clave ajena
– Los atributos de la relación V «siguen» a la clave propagada
codEmp numDep
(1,1) (0,1)
Un empleado puede no EMPLEADO Dirige DEPARTAMENTO
dirigir ningún departamento,
o bien ser el gerente de uno nomEmp fechaInic nomDep
de ellos (desde cierta fecha, EMPLEADO codEmp nomEmp …
en la que fue nombrado FK
como tal) DEPARTAMENTO numDep nomDep codDir fechInicDir …
AK, NN NN

129
Traducción de una relación binaria 1:1
2.2) Hay pocas instancias del tipo de relación
 Añadir una nueva tabla R que incluye...
– claves ajenas hacia las claves primarias de R1 y de R2
▪ una será clave primaria de R (la de participación total, si existe)
▪ la otra será clave alternativa en R (UNIQUE) y además NOT NULL
– columnas para los atributos de V (simples o componentes simples
de atributos compuestos)

codEmp nomEmp …
EMPLEADO
FK

DIRIGE emp dep fechInic


AK,NN FK

DEPARTAMENTO numDep nomDep …

130
Traducción de una relación binaria 1:1
2.3) Hay muchas instancias del tipo de relación
 Una única relación R que incluye...
• todos los atributos de las entidades y de la relación
• la clave primaria es la clave de la entidad con participación parcial
• debe permitirse NULL en los atributos procedentes de la entidad con
participación total y de la relación

• A la relación que se genera se le suele dar el nombre de la entidad con


participación parcial

131
Traducción de una relación binaria 1:1
3) Participación parcial de ambas entidades
 Añadir una nueva tabla R
• La tabla R se construye exactamente igual que en el caso (2.2)
• Evita los NULL que aparecerían si se propagara la clave de R1 a R2 o
viceversa (caso general (2.1))
lugar
nif HOMBRE(nif, ...)
nif
FK
Matrimonio
HOMBRE MUJER MATRIMONIO(esposa, esposo, fecha, lugar)
(0,1) a la antigua (0,1)
AK, NN NN NN
FK
fecha MUJER(nif, ...)
Y... ¿qué acciones de mantenimiento
de la integridad referencial debemos
imponer para (todos los casos de)
transformación de relaciones 1:1?

132
Traducción de una relación binaria reflexiva
jefe
nifEmp
EMPLEADO Es jefe de
nomEmp
subordinado

Caso 1:N
EMPLEADO nifEmp nomEmp … jefe …
FK
NULL

 tabla que contiene dos claves externas hacia la clave primaria de la


tabla correspondiente a la entidad
– Nombradas según los roles de la entidad en la relación
Otra posibilidad en el Caso 1:N
Caso M:N
EMPLEADO ( nifEmp, nomEmp, ...)
EMPLEADO nifEmp nomEmp …
FK FK
FK FK
JEFE_EMP jefe subordinado … JEFE_EMP jefe subordinado …
NN
133
Ejercicios
▪Obtener el modelo relacional del siguiente esquema
E/R

134
Ejercicios
▪Obtener el modelo relacional del siguiente esquema
E/R

135
Ejercicios
▪Obtener el modelo relacional del siguiente esquema
E/R

136
Normalización de
relaciones

137
Objetivo
▪Obtener un conjunto de relaciones que:
• Evite anomalías en operaciones de manipulación de datos

• Forme una estructura flexible y fácil de mantener

• Evite redundancias superfluas

• Aminore el espacio requerido para el almacenamiento

• Evite problemas de integridad

138
Origen y definición
▪Parte de las formas normales definidas por E.F. Codd,
formulando inicialmente las tres primeras formas
normales (1FN, 2FN, 3FN)
▪Anomalías detectadas con el uso de esas tres primeras
formas normales forzaron a restringir la última de ellas
dando lugar a la forma normal de Boyce y Codd.
(FNBC)
▪Por último, Fagin definió las dos últimas formas
normales (4FN y 5FN) buscando criterios de mejoras de
rendimientos para grandes sistemas transaccionales de
las bases de datos modernas

139
Dependencia funcional
Concepto
▪ La normalización parte del concepto de dependencia funcional.
▪ Se dice que el atributo o conjunto de atributos B depende funcionalmente
del atributo o conjunto de atributos A, y se representa como A→B , si y
sólo si cada valor de A se corresponde conceptualmente con un único
valor de B
▪ Es decir, si en cualquier instante, se conoce el valor de A podemos
conocer inmediatamente el valor de B.
▪ Las Formas Normales descomponer tablas en función de las dependencias
funcionales

Ejemplo:
PERSONAL(DNI,NOMBRE,DIRECCION,EMPRESA,SUELDO). Entre
los atributos CURP y NOMBRE existe una DF CURP→NOMBRE

140
Dependencia funcional
▪Para llevar a cabo el proceso de normalización es
aconsejable dar los siguientes pasos:

1. Elegir una clave primaria para cada relación.

2. Construir un diagrama de dependencias en función de esas


claves.

3. Construir las nuevas relaciones con base en esas claves.

141
Dependencia funcional total
▪Se dice que el atributo Y tiene una dependencia funcional
total con el atributo X, si tiene una dependencia funcional
con X y no depende funcionalmente de ningún
subconjunto de X
▪ Ejemplo:
• (DNI.EMPRESA) NOMBRE no es total puesto que Nombre depende del
Dni únicamente. A esta dependencia se la denomina parcial.
• La dependencia funcional total sería (DNI.EMPRESA SUELDO)

▪Las dependencias que interesan para tratar las anomalías y


su solución son las dependencias funcionales totales

142
Primera forma normal 1FN
▪Una tabla se encuentra en primera forma normal si y
sólo si los valores que componen el atributo de una
tupla son atómicos. Es decir, si contiene para cada
intersección de fila-columna un solo valor y no un
conjunto de ellos

143
Transformación a 1FN
▪Se divide la relación en dos:
• Se localizan los atributos que forman la clave principal
• Se descompone la tabla realizando dos proyecciones:
• Relación 1: Clave + atributos únicos: Tomando la tabla nueva
el nombre de la tabla original.
• Relación 2: Clave + atributos múltiples. Se crea otra tabla con
la clave y los atributos que tienen valores múltiples,
distribuyendo cada valor en una fila. La tabla que se genera
tendrá un nombre descriptivo compuesto por la abreviatura de
los atributos que la definen. La nueva clave está formada por
ambos campos

144
Primera Forma Normal: 1FN
Matricula Nombre Antigüedad Grado Cargo
Completo académico
000156565 Yesenia 5 Maestría Profesor,
Hernández Consultor
Velazquez
… … … … …

Matricula Nombre Antigüedad Grado Matricula Cargo


Completo académico 000156565 Profesor
000156565 Yesenia 5 Maestría 000156565 Consultor
Hernández
… …
Velazquez
… … … …

145
Segunda forma normal 2FN
▪Una tabla se encuentra en segunda forma normal si y
sólo si cumple las condiciones:
• Esta en primera forma normal
• Todo atributo secundario depende de la clave principal en su
totalidad y no de una parte de ella

▪Sólo se considera si la clave principal de la tabla es


compuesta. Si la clave principal es simple entonces la
tabla ya se encuentra en segunda forma normal (si se
encuentra en primera forma normal).

146
Segunda forma normal 2FN
▪Ejemplo: Sea la siguiente tabla de personal:
• PERSONAL(CURP, EMPRESA, NOMBRE, SUELDO)
con las siguientes dependencias:
• CURP→NOMBRE
• CURP, EMPRESA→SUELDO

• La tabla PERSONAL no se encuentra en 2FN ya que


existe un atributo NOMBRE que depende de parte de la
clave CURP y no tiene por tanto una dependencia
funcional total.

147
Segunda forma normal 2FN
▪Transformación a la 2FN de una tabla:
• Comprobar que se encuentra en primera 1FN.
• Se realizan dos proyecciones obteniendo dos tablas:
• Una primera tabla con la clave de la tabla inicial y todos los
atributos que tienen una dependencia funcional total con ella.

• Una segunda tabla con la parte de la clave que tiene


dependencias funcionales, que será la nueva clave, y los
atributos que dependen de ella.

148
Tercera forma normal (3FN)
▪Ocurre cuando una tabla está en 2FN

▪Ningún atributo que no sea clave depende


transitivamente de las claves de la tabla. Es decir no
ocurre cuando algún atributo depende funcionalmente
de atributos que no son clave

149
Ejemplo: 3FN

150
Ejercicio
▪Normalizar la siguiente tabla

151
forma normal de Boyce-Codd (FNBC o BCFN)
▪Ocurre si una tabla está en tercera forma normal y
además todo determinante es una clave candidata.
Ejemplo:

152
Ejemplo: forma normal de Boyce-Codd

153
Dependencia multivaluada
▪Una dependencia multivaluada de una tabla con atributos
X, Y, Z de X sobre Z (es decir X->>Z) ocurre cuando los
posibles valores de Y sobre cualquier par de valores X y Z
dependen sólo del valor de X y son independientes de Z
Ejemplo:

Los materiales se van a


repetir para cualquier
profesor dando cualquier
curso, ya que los profesores
van a utilizar todos los
materiales del curso

154
cuarta forma normal (4FN)
▪Ocurre esta forma normal cuando una tabla está en
forma normal de Boyce Codd
▪y toda dependencia multivaluada es una dependencia
funcional. Para la tabla anterior la solución serían dos
tablas:

155
Quinta forma normal (5FN)
▪Es la más compleja y polémica de todas.
▪Fue definida también por Fagin
▪Es raro encontrarse este tipo de problemas cuando la
normalización llega a 4FN

▪Una tabla se encuentra en 5FN si:


• La tabla esta en 4FN
• y cada dependencia de unión (join) en ella es implicada por
las claves candidatas

https://www.youtube.com/watch?v=7_-DifqVlBI

156

También podría gustarte