Professional Documents
Culture Documents
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
Practica con ER E2. Conceptos E3. Examen de repaso almacenamiento Ejercicio E4. Examen de repaso Proyecto parcial
Examen parcial
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
pre - requisito
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
javiergs@acm.org
E1 - examen de Ubicacin
javiergs@acm.org
10
11
DBMS
Programa Administrador
DBMS + DB
javiergs@acm.org
12
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
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
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
javiergs@acm.org
20
Arquitectura 3 capas
Externo: (vistas de usuario) esquema de nivel alto o medio
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:
General o especial
javiergs@acm.org
22
T1: conceptos
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
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
Atributo
Atributo Llave
Atributo multivalor
javiergs@acm.org
31
A practicar
javiergs@acm.org
32
Tarea 2
javiergs@acm.org
33
javiergs@acm.org
34
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
Medio primario
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)
38
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
41
javiergs@acm.org
42
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
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
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
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
javiergs@acm.org
62
javiergs@acm.org
63
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:
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
Grado = # atributos Se eliminan tuplas duplicadas como parte de la operacin Por ello no es conmutativa la operacin
68
javiergs@acm.org
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 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 !
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
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|=
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
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
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
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
97
Examen parcial
javiergs@acm.org
98
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
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
mal diseo
anomalas, redundancia e inconsistencias de la informacin imposibilidad para representar cierta informacin
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
!
E. F. Codd (1970)
1NF, 2NF, 3NF
Boyce-Codd
BCNF
4NF, 5NF
javiergs@acm.org
105
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
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
javiergs@acm.org
108
javiergs@acm.org
109
110
normalizacin
!
Dependencia funcional
Monovaluada Multivaluada
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
notacin
esta dependencia funcional se verifica en R
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
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
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
117
2NF (ejercicio)
Para la relacin:
PRESTAMO ( num_socio, nombre_socio, cod_libro, fec_prest, 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
120
3NF
vivienda
SID 100 150 200 250 300 Edificio Cuota Randolph 1200 Ingersoll 1100 Randolph 1200 Pitkin 1100 Randolph 1200
121
3NF (ejercicio)
PRESTAMO1( num_socio, nombre_socio, cod_libro, fec_prest ) LIBRO( cod_libro, editorial, pas )
javiergs@acm.org
122
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
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
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
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