You are on page 1of 185

Base de Datos

M. Cs. Javier Gonzlez Snchez javiergs@acm.org

Universidad de Guadalajara
Centro Universitario de Ciencias Econmico Administrativas Coordinacin de Investigacin y Postgrado Maestra en Tecnologas de la Informacin

javiergs@acm.org

semana
01.

clase
00. Presentacin del Curso 01. Conceptos Generales 02. Historia 03. Arquitectura y Sistema de BD 04. Modelo ER 05. Almacenamiento fsico 06. Lenguajes 07. Modelo Relacional 08. lgebra Relacional 08. lgebra Relacional 09. SQL 10. RDBMS y otras herramientas 11. Proyecto

evaluacin
E1. Examen de ubicacin

02. 03. 04. 05. 06. 07.

Practica con ER E2. Conceptos E3. Examen de repaso almacenamiento Ejercicio E4. Examen de repaso Proyecto parcial

08. 09. 10. 11. 12. 13.


javiergs@acm.org

12. Examen de periodo parcial


13. Introduccin a Normalizacin 14. Normalizacin (dependencias y descomposicin) 15. Descomposicin 16. Caso de Estudio 16. Normalizacin multivaluada (dependencias y descomposicin) 17. Practica Relacional 18. Modelo Objeto y Objeto Relacional 19. Entrega del proyecto final

Examen parcial

E5. Modelo Relacional

Repaso General Examen Final

20. Examen Final

javiergs@acm.org

Objetivo

Conceptos Diseo de base de datos modelado y normalizacin Implementacin de base de datos lenguajes y facilidades (interfaces) estado del arte: distribuidas, espaciales, orientadas a objetos, relacionales, otras
5

javiergs@acm.org

Antecedentes

Programacin Estructura de datos Organizacin computacional

pre - requisito

Sistemas operativos avanzados * Programacin avanzada * Ingeniera de Software *


6

javiergs@acm.org

Evaluacin

25% examen parcial: 25% examen final: 30% proyecto: 20% tareas y ejercios en clase 100%

javiergs@acm.org

Bibliografa
Fundamentals of database systems Ramez Elmasri, Shamkant B. Navathe Addison-Wesley, 2000, 3ra edicin.

Database systems : the complete book Hctor Garca-Molina, Jeffrey D. Ullman, Jennifer Widom. Prentice Hall, 2002. An introduction to database systems C. J. Date Pearson / Addison Wesley, 2004. 8va. Edition.

javiergs@acm.org

Referencias

Introduccin a las bases de datos Object Oriented Data Bases

javiergs@acm.org

E1 - examen de Ubicacin

javiergs@acm.org

10

01. Conceptos generales


javiergs@acm.org

11

BD, BDMS, sistema de BD


Base de Datos

Coleccin de datos Relacin lgica y coherente Diseo especifico

DBMS

Programa Administrador

Sistema de base de datos

DBMS + DB

javiergs@acm.org

12

Esquema del Sistema

DB aplicacin query compilador concurrencia DBMS administrador data DDL compiler

Meta data catalogo

javiergs@acm.org

13

Ciclo de Desarrollo

Definir [A&D]
especificar tipos

Construir
almacenar

Manipular
consulta, actualizacion, etc

javiergs@acm.org

14

Conceptos

Meta-datos: esquemas = intencin Instancias: datos = extensin estados Vistas Operacin abstracta Concurrencia Transaccin Persistencia

Relacin Restriccin de integridad Backup (respaldo) Recovery (recuperacin) Escalabilidad


15

Y hablando de BD versus FileSystems


javiergs@acm.org

02. Historia
javiergs@acm.org

16

Historia
1945 1959 1960 1970 1976 1976 1980 1983 1985 1990 1990
javiergs@acm.org

cintas y bsqueda lineal acceso aleatorio a datos en almacenamiento electrnico modelo jerrquico, en red y multiusuario Ted Codd presenta el modelo relacional Chen presenta el modelo entidad relacin Lenguajes de consulta: SQL, QBE, QUEL DBMS para PC (Dbase, Paradox) DBMS comerciales: Oracle, Sybase, Informix SQL estandar preliminar Incorporacin de capacidades y actividades deductivas, espaciales, temporales y multimedia. Paralelismo
17

03. Sistemas y Arquitecturas de Bd


javiergs@acm.org

18

Modelo de Datos

Niveles de abstraccin Ocultar detalles del almacenamiento fsico Describir conceptualmente la estructura de la base de datos: tipos, relaciones, restricciones, operaciones (lenguaje).
19

javiergs@acm.org

Modelo de Datos
Conceptual: alto nivel
MODELO ER - Entidad, atributo, relacin

Representativo:
Clases, registros MODELO RELACIONAL, RED, JERARQUICO, OOP

FISICO: nivel bajo


Rutas (paths) Almacenamiento fsico

javiergs@acm.org

20

Arquitectura 3 capas
Externo: (vistas de usuario) esquema de nivel alto o medio

Independencia lgica de datos

Conceptual: esquema de nivel alto o medio Mapeo: transformacin de peticin/respuesta

Independencia fsica de datos

Interna: almacn fsico

javiergs@acm.org

21

Clasificacin de sistemas de BD
Por modelo de datos:

Relacional (alto nivel) -> tablas, lenguaje alto nivel Red-> registros, embebido a lenguajes varios Jerrquico-> rboles, sin lenguaje especial OOP -> objetos/clases,

Por Usuarios:

Simple y multiusuario

Por sitios:

Centralizado y distribuido y homogneo o heterogneo

Por costo: Por propsito:

General o especial

javiergs@acm.org

22

T1: conceptos

Lectura del libro de texto


Conceptos generales Modelo Entidad - Relacin

javiergs@acm.org

23

javiergs@acm.org

24

04. Modelo ER
javiergs@acm.org

25

Modelo ER

Modelo de alto nivel i.e. no es un modelo representativo o de implementacin. ES UN MODELO CONCEPTUAL para la construccin de esquemas analicemos el modelo simple
javiergs@acm.org

26

Modelo ER
Datos persistentes problema programacin

transacciones
ALTO NINEL: Diseo conceptual Schemas Tipos, relaciones, constraint DBMS Modelo de Implementacin + Modelo Fsico

requerimientos anlisis diseo implementacin

Reglas del negocio

UML Diagrama de flujo Etc. Lenguaje de Programacin + Compilacin

javiergs@acm.org

27

Construccin: entidad

Tipo de Entidad (entity type) ! intencion nombre + atributos acaso es una clase ? Entidad = dato = cosa en el mundo acaso un objeto? ! extension Entidad y Entidad frgil. Sustantivo singular
28

javiergs@acm.org

Construccin: atributo
Tipos de Atributos:

Simple / (compuesto) ! una direccion Monovaluado / {multivaluado} ! un color, un grado academico Almacenado/derivado ! edad y fecha Null Llave !

javiergs@acm.org

29

Construccin: relacin

Tipo de Relacin : asociacin entre Tipos Entidad. Instancia de Relacion:_________________ Grado ! # de participantes (binaria, ternaria) Cardinalidad algo asi 1:N, 1:1, M:N Participacion total (obligada) o parcial Rol ! aporte de la entidad a la relacion Relacion Recursiva ! ________________ Objetos tienen o llaves foraneas ? Atributos en relaciones Verbo
30

javiergs@acm.org

Diagramas ER

Entity type

Entity type frgil

Atributo

Atributo Llave

Atributo multivalor

Compuesto Atributo derivado

Atributo Llave parcial relacin

javiergs@acm.org

31

A practicar

javiergs@acm.org

32

Tarea 2

Modelo ER del sistema de


(2004) - revista digital (2005) - universidad virtual (2006) - recursos de informacin (conocimientos)

javiergs@acm.org

33

javiergs@acm.org

34

05. Almacenamiento fsico


javiergs@acm.org

35

Modelo ER

Almacenamiento fsico Organizacin de datos en registros y archivos en un medio de almacenamiento Medio primario = rpido y limitado Medio secundario = lento y extenso, de bajo costo

javiergs@acm.org

36

Arquitectura
Unidad de transferencia: Bloque Direccin: Superficie:pista:bloque
Bit Byte Pista Cilindro Sectores ! HW

format

Bloque ! SW nter bloques (gaps) Cluster

Medio primario

Medio secundario Rotacin Transferencia latencia

CPU

Buffer - RAM

javiergs@acm.org

37

Conceptos

Entidad !registro Tipo entidad ! metadato (tipos): int date, boolean, blob (binary large object) Archivo = secuencia de registros mismo tamao tamao distinto (separadores)

Registros insertados en bloques: continuos, ligados, indexados


javiergs@acm.org

38

Operaciones sobre Archivos

de recuperacin (consulta) de actualizacin (insercin, borrado, ) De 1 resultado De 1 conjunto de resultados

Archivos voltiles ! cambios constantes Archivos estticos !pocos cambios Archivos con ndices ! busqueda

javiergs@acm.org

39

Archivos

Secundario Primario Orden sin orden nico combinado Registros fijos - variables ndice

javiergs@acm.org

40

Organizacin de Archivo Primario


Heap file (sin orden): uso asociado a indice, buena insercion, busqueda lineal, borrado con fragmentacion. Reorganizacion y/o encadenar borrados con marcas. Modificar implica borrar e insertar. Listado de registros en orden implica un mergeSort externo. Sorted file (secuencial): registros ordenados en disco por un campo dado. Uso de busqueda binaria. Costoso borrar e insertar. Transaccion implica copia y anexo de busqueda lineal a la binaria existente.
javiergs@acm.org

41

Organizacin de Archivo Primario


Hash file: (rowid por registro). Interno (en RAM): solucin de colisin, abierta (sig. posicin), encadenar, multihash Implica el uso de algoritmos propios de insercin, borrado y seleccin Externo: por posicin relativa de bloque o cluster. complica consulta secuencial. Bsqueda es cara para campos no llave. Modificar = borrar + insertar

javiergs@acm.org

42

Organizacin de Archivo Primario


rbol: como directorio primario y datos en archivo

javiergs@acm.org

43

ndices

ndice: estructura de acceso para acelerar recuperacion de datos Tipos: 1.basado en archivo ordenado (mononivel) 2. basado en rbol (multinivel) 3. basado en hash A. ndice fsico B. ndice lgico

Problemas para insertar y borrar


javiergs@acm.org

44

mononivel

Primario:
lista de ndice: direccin. Denso/No denso. Aplica sobre primario ordenado

Clustering:
campo de orden no es llave (nico). No denso. Aplica sobre archivo ordenado.

Secundario:
Archivo no ordenado, denso
45

javiergs@acm.org

multinivel

rboles
combaten la desventaja de insertar y borrar en los mononivel. rbol B, hash.

javiergs@acm.org

46

06. Lenguajes
javiergs@acm.org

47

Lenguajes

javiergs@acm.org

48

Lenguajes

DDL (data definition languaje) Define esquemas conceptuales e interno SDL (storage definition languaje) Define esquema interno VDL (view definition languaje) Define esquemas de usuarios DML (data definition languaje) Usuario, comnmente denominado query languaje

Y el famoso SQL es un caso tpico de .?

javiergs@acm.org

49

E2 conceptos
Habilidad construyendo modelos abstractos Habilidad fabricando Query-SQL

javiergs@acm.org

50

Tarea 3

Modelo Relacional
Conversin de ER a R Simbologa ()

lgebra Relacional
Evolucionado la Teora de conjuntos

Necesitamos un RDBMS
Oracle, mySQL

javiergs@acm.org

51

javiergs@acm.org

52

Examen de Repaso

javiergs@acm.org

53

07. Modelo Relacional


javiergs@acm.org

54

Modelo Relacional

javiergs@acm.org

55

Introduccin

Codd 1970 Estable y firme a nivel comercial Considerar: restriccin de integridad lgebra = coleccin de operaciones para manipular relaciones Proyeccin de ER
56

javiergs@acm.org

conceptos

Entidad = tabla = relacin Datos = Rengln = tupla Atributo = campo = atributo Dominio = tipo = dominio: conjunto de valores atmicos (D) : nombre, tipo, formato, adicional indicacin. Cardinalidad del dominio (# elementos) Esquema de relacin (R) = R (A1, An). Nombre, lista de atributos (ROLes de dominio) <intencin> Grado de una relacin (# atributos) Instancia de relacin (r) denota r(R) como un conjunto de tuplas (rengln), r = {t1.. tn} <extensin> Tupla t = <v1 vn> Lista ordenada de valores con vi pertenece a dom(Ai) Dicese que r(R ) es subconjunto del producto cartesiano de los dominios de R

javiergs@acm.org

57

conceptos

Esquema relacional S={R1..Rn} + conjunto de restricciones de integridad. Instancia relacional s= {r1..rn} donde ri es instancia de Ri y satisface las restricciones de integridad.

javiergs@acm.org

58

Caractersticas de relaciones

Diferencia de relacin con archivo/tabla: no orden de tuplas, tupla como lista ordenada o conjunto de pares, valores atmicos (no compuesto, no multivalor) Se interpreta la relacin como sugerencia de entidad, predicado deductivo, fact. Notacin del modelo

javiergs@acm.org

59

constraint

De dominio. De llave: superllave, llave mnima, llaves candidatas, llave primaria De integridad en entidad: no null en llaves De integridad referencial: llaves foraneas

javiergs@acm.org

60

notacin

javiergs@acm.org

61

Tarea 4

Practica: RDBMS: MySQL vs Oracle Teora: Definicin de Operaciones

javiergs@acm.org

62

javiergs@acm.org

63

08. lgebra Relacional


javiergs@acm.org

64

Operaciones

Datos (lgebra):
recuperacin
lgebra relacional insertar, (tupla) consideracin a los 4 constraint borrar, (tupla) consideracin a 1 constraint Modificar (atributo) consideraciones igual que borra

actualizacin:

Meta-datos (DDL): creacin de esquema


Crear esquema Crear dominios Crear relaciones (especifica nombre, atributos, tipos y constraints)

javiergs@acm.org

65

lgebra relacional

Manipular informacin
relacin" relacion

Operaciones:
Teora de conjuntos (conjuntos de tuplas): unin, interseccin, diferencia, producto cartesiano Especificas de BD: select, project, join

javiergs@acm.org

66

select

Genera un subconjunto de tuplas acorde a una condicin S attributo = valor (RELACION) Se genera en dominios ordenados (comparacin) y no ordenados. (solo = y !=) Operador unario (aplica a 1 relacin) Es conmutativo y aplicable en cascada Grado = # de atributos en la relacin Selectividad = # tuplas obtenidas

javiergs@acm.org

67

project

Selecciona atributos descartando otros


Patributo1,atributoN(RELACION)

Grado = # atributos Se eliminan tuplas duplicadas como parte de la operacin Por ello no es conmutativa la operacin
68

javiergs@acm.org

Expresin lgebra Relacional

Patributo(Satributo=valor(RELACION)) X"Satributo=valor(RELACION); Y" Patributo(X); Y(nombres atributos nuevos)" Patributo(X);

javiergs@acm.org

69

Operaciones de conjuntos

Aplican a dos relaciones con el mismo tipo de tuplas y genera una nueva relacin

UNION: unir eliminando duplicados(asociativa y conmutativa) INTERSECCION: tuplas en ambos conjuntos (asociativa y conmutativa) DIFERENCIA: tupla en A y no en B (no conmutativa)

javiergs@acm.org

70

Operaciones de conjuntos

PRODUCTO CARTESIANO: aplicable sobre relaciones con distintas tuplas (no compatibles) Se suman grado de atributos Se multiplican grado de tuplas El resultado no es til. Debe combinarse con una seleccin
71

javiergs@acm.org

Operaciones de conjuntos

JOIN |X|: combina tuplas relacionadas. X " RELACION|X|att=val RELACION

JOIN genrico: aplica operadores relacionales EQUIJOIN: aplica solo el operador = NATURAL JOIN: (*) es un equijoin con 1 atributo comun X " RELACION*(atts),(atts) RELACION

javiergs@acm.org

72

problemas !

Seleccin, Proyeccin, Unin, Diferencia y Producto. Interseccin = Join = Natural Join =

javiergs@acm.org

73

problemas !

Divisin:
los y atributos en R y no en S, equivale a: t1 " Py (R) t2 " Py ( ( t1 X S ) R) T " t1-t2

Que resulta de (RS) * S ? Qu pasa con las tuplas rojas?


javiergs@acm.org

74

Tarea 5

Traduccin de modelo ER a Relacional Consultas bsicas sobre el modelo Relacional, considerando las necesidades del sistema Dudas a estudiar!

javiergs@acm.org

75

Ejercicio de Repaso

javiergs@acm.org

76

javiergs@acm.org

77

javiergs@acm.org

78

Operaciones adicionales

Funciones:
SUM, AVERAGE, MAX, MIN, COUNT
atributoFfuncion atributo ( relacin)

javiergs@acm.org

79

Operadores adicionales

JOIN NATURAL tuplas que no entran a la relacin (y/ o null) se eliminan LEFT OUTER JOIN =|X| RIGHT OUTER JOIN |X|= FULL OUTER JOIN =|X|=

OUTER UNION: union de tuplas distintos atributos (no compatibles)

javiergs@acm.org

80

y ahora ER a Relacional

Artculos de un volumen Autor(es) de un articulo Articulo titulo autor edad revisor nombre Seccin nombre, articulo nombre, autor nombre Revisor por autor
81

javiergs@acm.org

Ejercicio

javiergs@acm.org

82

javiergs@acm.org

83

09. SQL
javiergs@acm.org

84

SQL
Comando de SQL.
Recuperacin de Datos: SELECT. Manipulacin de Datos: (DML) INSERT DELETE UPDATE Definicin de Datos (DDL) CREATE ALTER DROP Seguridad de los Datos: GRANT REVOKE Confirmacin COMMIT ROLLBACK

javiergs@acm.org

85

SQL -DDL
CREATE TABLE PROVEEDORES ( S# CHAR(5) NOT NULL, SNOMBRE CHAR(20) NOT NULL, SITUACION SMALLINT NOT NULL, CIUDAD CHAR(15) NOT NULL, PRIMARY KEY ( S# ) ) ; CREATE TABLE PARTES ( P# CHAR(6) PNOMBRE CHAR(20) COLOR CHAR(6) PESO SMALLINT CIUDAD CHAR(15) PRIMARY KEY ( P# ) NOT NULL, NOT NULL, NOT NULL, NOT NULL, NOT NULL, );

CREATE TABLE ENVIOS ( S# CHAR(5) NOT NULL, P# CHAR(6) NOT NULL, CANT INTEGER NOT NULL, PRIMARY KEY ( S# , P# ), FOREIGN KEY ( S# ) REFERENCES FOREIGN KEY ( P# ) REFERENCES

PROVEEDORES, PARTES ) ;

javiergs@acm.org

86

SQL-DML
SELECT S#, SITUACION FROM PROVEEDORES WHERE CIUDAD = Pars; SELECT DISTINCT P# FROM ENVIOS; SELECT * FROM PROVEEDORES;

SELECT PROVEEDORES.S#,PROVEEDORES.SITUACION FROM PROVEEDORES WHERE PROVEEDORES.CIUDAD = Pars; SELECT PARTES.P#, Peso en gramos =, PARTES.PESO *454 FROM PARTES; SELECT S# , SITUACION FROM PROVEEDOR WHERE CIUDAD=Pars ORDER BY SITUACION DESC; SELECT PROVEEDORES.* , PARTES.* FROM PROVEEDORES, PARTES WHERE PROVEEDORES.CIUDAD = PARTES.CIUDAD;

javiergs@acm.org

87

SQL-DML
SELECT PRIMERA.S#, SEGUNDA.S# FROM PROVEEDOR PRIMERA, PROVEEDOR SEGUNDA WHERE PRIMERA.CIUDAD = SEGUNDA.CIUDAD AND PRIMERA.S# < SEGUNDA.S#; SELECT PARTES.* FROM PARTES WHERE PARTES.NOMBRE LIKE B%; SELECT SUM (CANT) FROM ENVIOS WHERE P# = P2; SELECT P#, SUM (CANT) FROM ENVIOS GROUP BY P#;
javiergs@acm.org

SELECT PROVEEDORES.NOMBRE FROM PROVEEDORES WHERE S# IN ( SELECT S# FROM ENVIOS WHERE P# = P2 );

88

10. Herramientas
javiergs@acm.org

89

Internet + DBMS
Web Server
Internet Base de datos
Web Client

programacin

HTML
Oracle, MySQL, MS-SQL, Informix, Postgres, etc Java, PHP, Perl, Python, MS.net, etc

javiergs@acm.org

90

mySQL

mysqladmin -u root create mydb mysql -u root mydb < mydb.sql


mydb Id 1 2 3 First Bob Jonh Brad Last Smith Roberts Johnson address 128 Here St. 45 There St. 1/34 Nowhere Blvd position Marketing Manager Telephonist Doorman

javiergs@acm.org

91

php

$db = mysql_connect("localhost", "root"); mysql_select_db("mydb",$db); $result = mysql_query($sql); $result = mysql_query("SELECT * FROM employees",$db); while ($myrow = mysql_fetch_array($result)) { echo $myrow["id"].$myrow["first"].$myrow["last"].<BR>; }

javiergs@acm.org

92

11. Proyecto
javiergs@acm.org

93

publicaciones electrnicas

usuarios Editores rbitros operativos

usuarios

javiergs@acm.org

94

Tarea 7
ACTIVIDADES: Interfaces de Usuario para cada rol Funcionalidades esperadas Enlaces Interacciones con la BD Anlisis y diseo genrico Diseo (simple) BD relacional (revisin) nlisis de Requerimientos A (simple) PRODUCTOS: apa de navegacin a M implementar

javiergs@acm.org

95

javiergs@acm.org

96

12. Examen Parcial


javiergs@acm.org

97

Examen parcial

javiergs@acm.org

98

dudas del examen

Como se representa una llave fornea en un modelo E/R ?! no existen llaves forneas en el modelo E/R Llave primaria, candidata, ajena/fornea

Otras?

javiergs@acm.org

99

13. Introduccin a la Normalizacin


javiergs@acm.org

100

terminologa

relacin

A1 A2 20 5

An

terminologa relacional
Modelo Relacional relacin tuple (fila) atributo Programador Usuario archivo tabla registro fila campo columna
101

javiergs@acm.org

Problemas (caso 1)
Nulos o Repetidos Y si los Repetidos Se escriben mal

javiergs@acm.org

102

Problemas (caso 2)

Redundancia Employee Salary Project Budget Function Desperdicio de Brown 20 Mars 2 technician espacio Green 35 Jupiter 15 designer Actualizacin complicada Green 35 Venus 15 designer Hoskins 55 Venus 15 manager Hoskins 55 Jupiter 15 consultant Anomala Hoskins 55 Mars 2 consultant de actualizacin de Moore 48 Mars 2 manager borrado Moore 48 Venus 15 designer de Kemp 48 Venus 15 designer insercin Kemp 48 Jupiter 15 manager
103

javiergs@acm.org

diseo de base de datos

importancia del modelo relacional


estructuras amplias y generales importante categora de productos DBMS

mal diseo
anomalas, redundancia e inconsistencias de la informacin imposibilidad para representar cierta informacin

metas del diseo


evitar informacin redundante y anmala asegurar que las relaciones entre los atributos sean representadas facilitar la verificacin de las actualizaciones

normalizacin
conversin de una relacin con ciertos problemas a dos o ms relaciones que no tienen tales problemas formas normales (Codd)

javiergs@acm.org

104

normalizacin
!

tipos de anomalas formas normales


tcnicas para la prevencin 1NF, 2NF, 3NF, 4NF, 5NF

1NF 2NF 3NF BCNF 4NF 5NF

E. F. Codd (1970)
1NF, 2NF, 3NF

Boyce-Codd
BCNF

4NF, 5NF

javiergs@acm.org

105

esencia de normalizacin = anomalas


! ! !

de modificacin anomala de eliminacin anomala de insercin

solucin:
descomposicin

actividad
SID 100 150 175 200 Actividad Esqu Natacin Squash Natacin Cuota 200 50 50 50

est-act
SID 100 150 175 200 Actividad Esqu Natacin Squash Natacin

act-cost
Actividad Esqu Natacin Squash Cuota 200 50 50

SID Actividad Cuota

SID Actividad

Actividad Cuota

javiergs@acm.org

106

esencia de normalizacin

cada relacin normalizada tiene un solo tema si tiene dos o ms, deber fragmentarse en relaciones cada vez que se divida una relacin, es probable que surja la necesidad de crear una restriccin de interrelacin cuando se encuentra una relacin con anomalas de modificacin, se las elimina dividiendo la relacin en dos o ms, cada una de las cuales contendr un solo tema
107

javiergs@acm.org

Tarea 8

Normalizacin

Formas normales bsicas 1NF, 2NF, 3NF

Adicionalmente BCNF, 4NF y 5NF

javiergs@acm.org

108

javiergs@acm.org

109

14. Normalizacin simple (dependencias y descomposicin)


javiergs@acm.org

110

normalizacin
!

Dependencia funcional
Monovaluada Multivaluada

1NF 2NF 3NF BCNF 4NF 5NF


!

Descomposicin
Preservar atributos Menor perdida de union Preservar dependencia No redundancia

javiergs@acm.org

111

dependencia funcional

restriccin de integridad para el modelo relacional describe las relacionales funcionales entre los atributos de una relacin notacin
YZ

Ejemplo
el valor del atributo Salary depende funcionalmente del valor atributo Employee Employee Salary

javiergs@acm.org

112

dependencia funcional

relacin entre uno o ms atributos generalizacin de la nocin de llave


t1, t2 r ( t1 t2 t1[K] t2[K] )

notacin
esta dependencia funcional se verifica en R

t1, t2 r (t1[] = t2[] t1[] = t2[] )

K es un sper llave de R si K R
K es una sper llave si t1[K]=t2[K] t1[R]=t2[R] (es decir, t1=t2)
113

javiergs@acm.org

dependencia funcional

Considerando:
A B A C CG H CG I B H

Las dependencias implican lgicamente:


A H A ! BC CG ! HI

javiergs@acm.org

114

1NF
cumplir con la definicin de una tabla
! ! ! ! !

valores atmicos valores de un atributo dominio cada atributo posee un nombre nico orden de los registros sin importancia sin tuplas idnticas (llave candidata) actividad
SID 100 150 175 200 Actividad Esqu Natacin Squash Natacin Cuota 200 50 50 50

SID Actividad Cuota

javiergs@acm.org

115

Esta en1NF?
student (matricula, nombre, fecha_nacimiento)

javiergs@acm.org

116

2NF
actividad
SID 100 100 150 175 175 200 200 Actividad Esqu Golf Natacin Squash Natacin Natacin Golf Cuota 200 65 50 50 50 50 65

una relacin est en 2NF si todos sus atributos que no son claves dependen por completo de la clave

SID Actividad 100 100 150 175 175 200 200 Esqu Golf Natacin Squash Natacin Natacin Golf

Actividad Cuota Esqu 200 Golf 65 Natacin Squash 50 50

SID Actividad Cuota Actividad Cuota

Actividad Cuota

Cuota parcialmente dependiente


mismas anomalas de modificacin
javiergs@acm.org

SID Actividad SID Actividad

117

2NF (ejercicio)

Para la relacin:
PRESTAMO ( num_socio, nombre_socio, cod_libro, fec_prest, editorial, pas )

las claves candidatas son: (num_socio, cod_libro) y (nombre_socio, cod_libro)


Como 2NF se representa:

PRESTAMO1 ( num_socio, nombre_socio, cod_libro, fec_prest ) LIBRO ( cod_libro, editorial, pas )

javiergs@acm.org

118

2NF (conclusin)

una relacin est en 2NF si todos sus atributos que no son claves dependen por completo de la clave. no pueden existir dependencias parciales! (en relaciones con llaves compuestas).

javiergs@acm.org

119

Esta en 2NF?
student (matricula#, nombre, clave_curso#, curso) matricula -> nombre clave_curso -> curso

S1 (matricula, nombre) S2 (clave_curso, curso) SC (matricula, clave_curso)


javiergs@acm.org

120

3NF
vivienda
SID 100 150 200 250 300 Edificio Cuota Randolph 1200 Ingersoll 1100 Randolph 1200 Pitkin 1100 Randolph 1200

una relacin est en 3NF si est en 2NF y no tiene dependencias Transitivas :


los atributos que no forman parte de ninguna clave candidata facilitan informacin slo acerca de la(s) clave(s) y no acerca de otros atributos

SID Edificio Edificio Cuota

SID 100 150 200 250 300

Edificio Randolph Ingersoll Randolph Pitkin Randolph

Edificio Cuota Randolph 1200 Ingersoll 1100 Pitkin 1100


Edificio Cuota Edificio Cuota

SID Edificio SID Edificio


javiergs@acm.org

121

3NF (ejercicio)
PRESTAMO1( num_socio, nombre_socio, cod_libro, fec_prest ) LIBRO( cod_libro, editorial, pas )

ESTA EN 3NF ? Solucin:


LIBRO1( cod_libro, editorial ) EDITORIAL( editorial, pas )

javiergs@acm.org

122

Esta en 2NF, 3NF?


subject (clave_curso, nombre, instructor, office) clave_curso -> nombre clave_curso -> instructor instructor -> office

s (clave_curso, nombre, instructor) ins (instructor, office)

javiergs@acm.org

123

BCNF
un estudiante puede tener una o ms especialidades una especialidad puede tener varios miembros de la facultad como consejeros un miembro de la facultad slo imparte asesora en una rea de especialidad

asesor
SID 100 150 200 250 300 300 Especialidad Matemticas Psicologa Matemticas Matemticas Psicologa Matemticas NombreF Cauchy Jung Riemann Cauchy Perls Riemann

en 1NF? en 2NF? en 3NF? existen anomalas de modificacin?

una relacin est en BCNF si cada determinante irreducible (izq) es una clave candidata i.e. X !A y A no esta en X X es llave

SID Especialidad SID NombreF NombreF

NombreF Especialidad Especialidad

javiergs@acm.org

124

BCNF
una relacin est en BCNF si cada determinante es una clave candidata est-ase
asesor
SID 100 150 200 250 300 300 Especialidad Matemticas Psicologa Matemticas Matemticas Psicologa Matemticas NombreF Cauchy Jung Riemann Cauchy Perls Riemann SID 100 150 200 250 300 300 NombreF Cauchy Jung Riemann Cauchy Perls Riemann

ase-materia
NombreF Cauchy Jung Riemann Perls Materia Matemticas Psicologa Matemticas Psicologa
125

SID Especialidad SID NombreF NombreF

NombreF Especialidad Especialidad

javiergs@acm.org

3NFvs BCNF

La mayora de las relaciones que estn en 3NF estn tambin en BCNF. Infrecuentemente, una relacin 3NF no est en BCNF y sta sucede solamente si: (a) las llaves candidatas en la relacin son llaves compuestas (es decir, no son atributos solos), (b) existe ms de una llave candidata en la relacin, (c) las llaves no son disjuntas, es decir, algunas cualidades en las llaves son comunes.

El BCNF difiere de 3NF solamente cuando hay mas de una llave candidata, las llaves son compuestas y traslapadas.

javiergs@acm.org

126

Esta en 3NF, BCNF?


enrol (sno, sname, cno, cname, date-enrolled) Llaves candidatas: (sno, cno) (sno, cname) (sname, cno) (sname, cname)

Problemas: sno -> sname cno -> cname


javiergs@acm.org

Solucion: (sno, sname) (cno, cname) (sno, cno, date-of-enrolment)


127

You might also like