Академический Документы
Профессиональный Документы
Культура Документы
Curso 2008
Base de Datos
Base de Datos : Un conjunto de datos interrelacionados. Elementos que componen una Base de Datos. Esquema. Descripcin de los datos y las relaciones entre los mismos. Cambia muy poco con el tiempo. Instancia. El conjunto de datos de la base en un instante dado de tiempo. Cambia con cada insercin, borrado o modificacin que se realice.
2
DBMS
DBMS (Data Base Management System): Software especializado en el manejo de bases de datos. Permite la manipulacin de bases facilitando la solucin de: Aislamiento de los datos: simplifica el cruzamiento de los datos, a travs de un lenguaje de consulta. Independencia de Datos: permite la independencia de las implementaciones (independencia lgica y fsica). Acceso Concurrente: varios usuarios pueden acceder simultneamente a los mismos datos. Control de Integridad: simplifica los controles de integridad.
DBMS
Modelo de datos
Modelo de Datos. Lenguaje de Especificacin de Bases de Datos. Tiene tres sublenguajes bsicos: DDL (Data Description Language): Orientado a la descripcin del esquema de la base o sea, la estructura de los datos y las restricciones de integridad. DML (Data Manipulation Language): Orientado a la manipulacin de las instancias, permitiendo tpicamente la insercin, borrado, modificacin y consulta de la base. QL (Query Language): Subconjunto del DML, orientado a la consulta de la base.
Arquitectura
Modelo de datos
Clasificacin: Modelos Conceptuales MER Orientados a la definicin de estructuras y restricciones. Usados fundamentalmente para el diseo conceptual. Modelos Lgicos MR Orientados a la implementacin y a las operaciones. Usados fundamentalmente para la implementacin de la base. Modelos Fsicos Estructuras de datos sobre las que se implementan los otros. Usados dentro de los manejadores, con relativamente poco control desde fuera del mismo.
Componentes de un DBMS
10
Notacin
13
Modelo ER c/ Restricciones
15
16
17
Modelo Relacional
Modelo Lgico. Orientado a la manipulacin de los datos. A pesar de eso, permite buenas estrategias de diseo y re-ingeniera (Teora del Diseo Relacional). Estructuras muy simples: slo tablas
18
Modelo Relacional
Esquema Relacional. Un esquema relacional (o de base de datos relacional) est formado por un conjunto de esquemas de Relacin. Esquema de Relacin. Un esquema de relacin est formado por un nombre y un conjunto ( o lista) de atributos con un dominio asociado. Atributo. Nombre que se le asocia a un dominio en una tabla.
19
Modelo Relacional
Instancia de Relacin. Conjunto de tuplas compatibles con el esquema de la relacin. Tupla. Funcin que dado un nombre de un atributo, devuelve un valor del dominio de ese atributo.
20
Modelo Relacional
21
Dependencias Funcionales
Dependencias Funcionales X -> Y. para toda instancia de la base se cumple que: En todas las tuplas en que los atributos de X toman el mismo valor, los de Y tambin. Recordar Conceptos de : Clave Candidata, Clave Foranea, Clave Primaria
22
23
Esquema de COMPANY
24
25
26
Modelo Relacional
Recordar que: Una tabla puede tener muchas claves, pero a una de ellas le llamamos clave primaria. Cuando se descompone una relacin, se deben buscar SIEMPRE descomposiciones con JSP. Se pueden tolerar descomposiciones que pierdan dependencias, siempre y cuando se documente cules son las dependencias que se pierden. En SQL, se pueden declarar:
Claves Primarias (Primary key) Claves Alternativas (unique) Claves foraneas (references) Restricciones de dominio (Check).
27
28
Algebra Relacional
Visin General: Conjunto de operadores para consultar BD-Rs. Define conjunto de ops estandar en BD-Rs. Operadores: Sobre conjuntos de tuplas: Union, Diferencia, Producto Cartesiano. Especficos para BDs Rel. Seleccin, Proyeccin, Join.
29
Select Propiedades
The SELECT operation <selection condition>(R) produces a relation S that has the same schema as R The SELECT operation is commutative; i.e., <condition1>( < condition2> ( R)) = <condition2> ( < condition1> ( R)) A cascaded SELECT operation may be applied in any order; i.e., <condition1>( < condition2> ( <condition3> ( R)) = <condition2> ( < condition3> ( < condition1> ( R))) A cascaded SELECT operation may be replaced by a single selection with a conjunction of all the conditions; i.e., <condition1>( < condition2> ( <condition3> ( R)) = <condition1> AND < condition2> AND < condition3> ( R)))
32
SLARY>30000)(EMPLOYEE).
33
Unin
Descripcin General: Permite obtener la Union de dos relaciones tomadas como conjuntos de tuplas. Sintaxis: (<relacion>) U (<relacion>) donde: relacin es una relacin o expresion relacional.
34
Unin
35
UNIN
Unin: Sean R y S dos relaciones con igual esquema (o compatible). La operacin: (R US) da como resultado otra relacin: cuyo esquema es igual al de R (y S),y que tiene como conjunto de tuplas a la unin de las de R y las de S.
36
Union
Student U Intructor
37
Diferencia
Descripcin General: Permite obtener la Diferencia de dos relaciones tomadas como conjuntos de tuplas. Sintaxis: (<relacion>) - (<relacion>) donde: Relacin es una relacin o expresin relacional.
38
Diferencia
Diferencia: Sean R y S dos relaciones con igual esquema (o compatible). La operacin: (R - S) da como resultado otra relacin: cuyo esquema es igual al de R (y S), y que tiene como conjunto de tuplas a la resta de las de R menos las de S.
39
40
Solucin
41
Producto Cartesiano
Cartesiano Descripcin General: Permite obtener el Producto Cartesiano de dos relaciones tomadas como conjuntos de tuplas. Sintaxis: (<relacin>) x (<relacin>) donde: Relacin es una relacin o expresin relacional.
42
Producto Cartesiano
43
Operaciones de Conjuntos
44
Operadores Derivados
Los operadores presentados antes: son los bsicos del Algebra Relacional. Se definen otros que: se pueden expresar en funcin de los bsicos, pero que expresan operaciones importantes. Estos operadores son: Join: Permite expresar la combinacin de tablas. Divisin: Permite obtener los datos que se relacionan con todos los elementos de otro conjunto.
45
Join
Descripcin General: Permite combinar tuplas de dos relaciones a travs de una condicin sobre los atributos. Corresponde a una seleccin sobre el Prod. Cartesiano de las relaciones. Sintaxis: (<relacion>) |><| <condicion> (<relacion>)
46
-Join
tita-Join. Sean R y S dos relaciones, la operacin R |><|condicin S es equivalente a realizar : condicin (R x S)
47
Join Natural
Join Natural. Sean R y S dos relaciones, la operacin R*S es equivalente a realizar el: -Join con la condicin de igualdad entre los atributos de igual nombre y luego proyectar eliminando columnas con nombre repetido.
48
49
50
Resumen
51
Calculo Relacional
Retrieve the name and address of all employees who work for the Research department. Query :
{t.FNAME, t.LNAME, t.ADDRESS | EMPLOYEE(t) and ( d) (DEPARTMENT(d) and d.DNAME=Research and d.DNUMBER=t.DNO) }
52
Calculo Relacional
Find the names of employees who work on all the projects controlled by department number 5.
Query :
{e.LNAME, e.FNAME | EMPLOYEE(e) and ( ( x)(not(PROJECT(x)) or not(x.DNUM=5) OR ( ( w)(WORKS_ON(w) and w.ESSN=e.SSN and x.PNUMBER=w.PNO) ) ) )}
53
SQL
Lenguajes Comerciales Relacionales. Ej. SQL, QUEL, QBE, otros. SQL es el lenguaje comercial mas aceptado. Standard aprobado por ANSI e ISO en 1986. Caractersticas del SQL Standard: Lenguaje no procedural. Opera sobre "conjuntos de tuplas": Incluso para las operaciones de insercin, borrado y actualizacin.
54
SQL
55
SQL
56
SQL
57
SQL
58
SQL
59
SQL
60
SQL
61
SQL- Qry
62
SQL
Caractersticas del SQL Standard (3): Se pueden identificar dos sublenguajes: DDL (Data Definition Language): CREATE ALTER DROP DML (Data Manipulation Language): INSERT UPDATE DELETE SELECT
63
SQL
Seguridad: A veces se lo llama DCL (Data Control Language) Grant (Permisos sobre objetos y logins). Concurrencia y recuperacin: commit work rollback work
64
SQL - Resumiendo
SQL es un lenguaje no procedural cuyo objetivo es el de soportar la: definicin. manipulacin control de los datos.
65
SQL - DDL
La instruccin CREATE TABLE: Crea una tabla vaca. Genera informacin en el Diccionario de Datos. Algunos elementos de la instruccin CREATE TABLE: Nombre de la tabla Nombre de cada atributo Tipo de datos para cada atributo Restricciones de integridad: NOT NULL, PRIMARY KEY, FOREIGN KEY
66
67
68
SQL-Alter Table
69
70
SQL -Constraints
71
Not NULL
72
Unique
73
Primary Key
74
Foreign Key
75
Check
76
SQL-DDL
Otras instrucciones sobre tablas: ALTER TABLE: permite modificar la definicin de la tabla Cambiar nombres de atributos Cambiar tipos de atributos Agregar o quitar atributos Agregar o quitar restricciones de integridad Etc DROP TABLE: permite eliminar una tabla
77
SQL Select
78
SQL Select
79
SQL Select
80
SQL - DML
Modificacin de los datos. Insert: permite agregar tuplas a una tabla Update: permite cambiar tuplas de una tabla. Delete: permite borrar tuplas de una tabla
81
82
83
84
85
SQL-DML Delete
86
87
88
89
Operador
Format: <grouping attributes><function list>(R)
MAX Salary (Employee) retrieves the maximum salary value from the Employee relation
MIN Salary (Employee) retrieves the minimum Salary value from the Employee relation
SUM Salary (Employee) retrieves the sum of the Salary from the Employee relation
DNO
COUNT SSN, AVERAGE Salary (Employee) groups employees by DNO (department number) and computes the count of employees and average salary per department.[ Note: count just counts the number of rows, without removing duplicates]
92
Order By
94
96
SQL-DML Exists
Para qu sirve?: para chequear si el resultado de una consulta anidada es vaco.
97
98
SubQueries
101
Subqueries
102
Vistas
Vistas: Una vista es una tabla virtual que se basa en el resultado de una clusula SELECT. Sus atributos son atributos de tablas o de otras vistas. Pueden utilizarse una vista en consultas, como si fuera una tabla mas. Instrucciones sobre vistas: CREATE VIEW ALTER VIEW DROP VIEW
103
Vistas
104
Vistas
105
106
2 y 3 Forma Normal
107
Casos de USO
108
109
Diagrama de Secuencia
110
Diagrama de Estados
111
Ejemplo Universidad
112
Diagrama de Secuencia
113
114
115
Diseo de BD COMPANY
116
SQL Embebido
void Login() { strcpy(username.arr, "<your last name>/<your password>"); /* append @hq to your original password */ username.len = strlen(username.arr); EXEC SQL WHENEVER SQLERROR GOTO printerror; EXEC SQL CONNECT :username; /* Logon Oracle */ printf("\n Connected to ORACLE as user: %s \n", username.arr); return; printerror: Err();
118
SQL Embebido
void Query() { EXEC SQL WHENEVER SQLERROR GOTO printerror; <your program>
SQL Embebido
void Err() { printf("\n\n% .70s \n", sqlca.sqlerrm.sqlerrmc); /*Error message */ EXEC SQL WHENEVER SQLERROR CONTINUE; /* Avoid infinite loop */ EXEC SQL ROLLBACK WORK RELEASE; /* Disconnect from Oracle */ exit(1); } /* end of Err() procedure */ void main() { Login(); Query(); }
120
ODBC
int ODBCexample() {
RETCODE error; HENV env; /* environment */ HDBC conn; /* database connection */ SQLAllocEnv(&env); SQLAllocConnect(env, &conn); SQLConnect(conn, "aura.bell-labs.com", SQL_NTS, "avi", SQL_NTS, "avipasswd", SQL_NTS); { . Do actual work }
}
121
Optimizacin de Consultas
Estrategias usuales de los optimizadores Proceso ms detallado de Optimizacin. Optimizacin Heurstica Basada en equivalencia de las expresin del lgebra y ciertas estrategias bsicas para limitar el tamao de los resultados Optimizacin por Costos Basada en estimaciones y datos del catlogo que permiten seleccinar un mejor plan de acceso.
122
Optimizacin de Consultas
Generacin del Algebra (rbol Cannico) Generacin de planes lgicos (Optimizacin Heurstica) Implica la aplicacin de determinadas estrategias (heursticas) y consultas al catlogo para tamaos de las relaciones para transformar el rbol original.
123
Optimizacin de Consultas
Generacin de planes fsicos (Optimizacin por Costos) Implica asociar a cada operacin de los planes lgicos generados, una o ms implementaciones. Qu implementacin depende de las estructuras de datos disponibles. Seleccin del Plan final (Optimizacin por Costos) Implica la evaluacin de los planes fsicos generados en base a las cantidades de operaciones de I/O que realiza cada algoritmo
124
Proceso de Optimizacin
125
Optimizacin
126
Optimizacin
127
Heursticas
Reglas para reducir los tamaos intermedios. 1. Cambiar las selecciones conjuntivas por una cascada de selecciones simples. 2. Mover las selecciones lo ms abajo que se pueda en el rbol.
128
Heursticas
3. Poner a la izquierda de los productos las hojas que generen menos tuplas. 4. Cambiar secuencias de selecciones y productos por joins. 5. Mover las proyecciones lo ms abajo posible en el rbol, agregando las proyecciones que sean necesarias.
129
rbol Cannico
130
Optimizacin
Cambiar las selecciones conjuntivas por una cascada de selecciones simples. Mover las selecciones lo ms abajo que se pueda en el rbol.
131
Optimizacin
Poner a la izquierda de los productos las hojas que generen menos tuplas.
132
Optimizacin
Cambiar secuencias de selecciones y productos por joins.
133
Optimizacin
Mover las proyecciones lo ms abajo posible en el rbol, agregando las proyecciones que sean necesaria
134
Optimizacin Estadsticas
135
136
Transacciones
Una transaccin (transaction) es una unidad lgica de trabajo compuesta por una o ms sentencias SQL ejecutadas por un nico usuario. Una transaccin comienza en la primer sentencia ejecutable y finaliza al ser confrimada (COMMIT) o deshecha (ROLLBACK)
137
Propiedades de Transacciones
Propiedades ACID Atomicidad : Una transaccin es una unidad atmica de procesamiento o se realiza por completo o no se realiza en absoluto. Conservacin de la consistencia: Una ejecucin correcta de la transaccin debe llevar a la base de datos de un estado consistente a otro
138
Transacciones
Aislamiento: Una transaccin no deben dejar que otras transacciones puedan ver sus actualizaciones antes de que sean confirmadas. Durabilidad o Permanencia : una vez que una transaccin ha modificado la base y las modificaciones se han confirmado, estas nunca deben perderse.
139
Transacciones
Los cambios hecho por las sentencias que componen una transaccin deben ser confirmados o deshechos.
COMMIT
Deshacer una transaccin es como si los camios provocados por esta nunca se hubiesen hecho
ROLLBACK
140
Estados de Transacciones
141
Transacciones SavePoints
En transacciones muy largas se pueden declarar puntos intermedios (SavePoints) Para dividir una transaccin en partes mas pequeas
SAVEPOINT <nombre> ROLLBACK TO <nombre>
142
RollBack en Cascada
143
Consistencia
Los lectores no esperan por los escritores Los escritores no esperan por los lectores Los escritores solo esperan por otros escritores si intentan modificar filas idnticas en transaciones actuales - SET TRANSACTION REAL ONLY Las consultas son consistentes con los datos del momento
144
LOCKS
Son mecanismos diseados para prevenir interaccin destructivo entre usuarios concurrentes. Para Locking de Filas
SELECT FOR UPDATE OF <columna> Para Locking de Tablas - SELECT TABLE <tabla> IN <modo> MODE
145
DeadLocks en BD
146
Manejo de Excepciones
WHEN exception {[exception]} THEN
secuencia de sentencia.
Ventajas: Permite agrupar el manejo de errores y manejarlo separadamente. Legibilidad Robustez y Confiabilidad Desventajas: Capturan solo errores de ejecucin
148
Excepciones
Se declara
excepcin EXCEPTION;
Se dispara con - RAICE excepcin Para asociar una excepcin de usuario con un error en Oracle se declara Nota: Si el handler no maneja la excepcin la misma se propaga.
149
Triggers - Disparadores
Un trigger define una accin de la base de datos. La ejecucin de triggers es transarente al usuario incluyen INSERT, UPDATE o DELETE Por su flexibiliadad los triggers pueden suplementar la integridad referencial pero no reemplazarla
150
Privilegios Requeridos
ALTER de la tabla ALTER ANY TABLE CREATE TRIGGER CREATE ANY TRIGGER
Los privilegios necesarios para transacciones con triggers no pueden proceder de roles deben ser otorgados por el creador del trigger
151
Schema Triggers
Se pueden crear operaciones tales como CREATE TABLE, ALTER TABLE , DROP TABLE , AUDIT , RENAME , REVOKE Se pueden utilizar triggers para prevenir que los usuarios eliminen sus propias tablas
152
153
154
155
Aplicaciones de Triggers
Auditoria Sofisticada Validaciones no estructurales Seguridad ms complejas Tablas Replicadas
Un trigger puede ser habilitado o deshabilitado Enable/Disable
156
Seguridad
Proteger
Esquema Instancia
Lecturas / Escrituras no Autorizadas Esquemas de Seguridad Informacin sobre: Usuarios, Objetos ,Operaciones y Reglas
157
Seguridad
Privilegio:
Definicin : autorizacin a un sujeto de realizar operaciones sobre objetos Sujetos : Actores Objetos: Son manejados por sujetos atravez de operaciones Operaciones: Operaciones sujetos realizan sobre objetos
158
Seguridad
CIA
Confidencialidad : acceso no autorizado Integridad: Cambio de datos Disponibilidad : No esta disponible cuando es requerida
Objetivo: el objetivo del sistema de seguridad es preservar o maximizar estas propiedades (CIA)
Amenaza:
Es la posibilidad de perder algunas de las CIA
159
Esquemas de Seguridad
DAC Discretionary Access Control MAC Mandatory Access Control RBAC- Role Base Access Control
160
DAC
DAC : En un esquema DAC el DBA asigna o quita privilegios a los agentes por cuentas Niveles Privilegios de DAC Nivel de Base de Datos system priviledge Nivel de Relacin object priviledge Propagacin Horizontal : # usuarios con grant option Vertical :# usuarios otorgados por otros usuaros Problemas : # usuarios a dar permisos modificacin de mltiples usuarios
161
MAC
Mandatory Access control Define un conjunto de Niveles de Seguridad
TopSecret(TS)>Secret(S)>Confidential(C)>Unclasified (U) A cada sujeto se le asigna un nivel LEVEL(s) A cada objeto se le asigna un nivel LEVEL(o)
Propiedad Seguridad Simple Un sujeto puede leer objetos tal que LEVEL(s)>= LEVEL(o) MAC prioriza seguridad respecto de integridad
162
RBAC
Propone una alternativa ms flexible, pero igual de segura que MAC
Se define jerarqua de roles Los sujetos pertenecen a uno o ms roles Se asignan privilegios sobre los objetos a los roles Se asignan usuarios a los roles
163
Privilegios
164
Privilegios
165
Roles
166
Roles
167
Passwords
168
Privilegios
169
Privilegios
170
XML
Representacin Semi-Estructurada de Informacin como Grafo
171
XML
Representacin en HTML
172
XML
173
174
Vista Jerrquica
175
176
DataWareHousing
177
Star Schema
178
SnowFlake Schema
179
DataMining
rboles de decisin
180
WebHouse
181
GIS
182
Bibliografia
Elmasri Navathe
Fundamentals of Database Systems, Fourth Edition by Ramez Elmasri (Author), Shamkant B. Navathe (Author)
http://www.fing.edu.uy/inco/cursos/bdatos/
183