Вы находитесь на странице: 1из 183

BASE DE DATOS II

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

Modelo Entidad Relacin


Modelo Conceptual DDL grfico. Sin DML estndar. Orientado a la definicin de estructuras y restricciones. Orientado a valor
(NO ORIENTADO A OBJETOS).

Modelo Entidad Relacin

10

Modelo Entidad Relacin


Constructores: Conjuntos de Entidades. Esquema: Rectngulo con un nombre. Instancia: Conjunto de elementos abstractos. Relaciones. Esquema: Rombo con un nombre unido a varias entidades (mnimo 2). Instancia: Subconjunto del producto cartesiano de las instancias de los conjuntos de entidades participantes en el esquema.
11

Modelo Entidad Relacin


Constructores Bsicos: Atributos. Esquema: Puntos que cuelgan de una entidad o relacin. Instancia: funcin de la instancia de la entidad o relacin a la que estn asociados, en un dominio dado. Categorizacin. Esquema: Un tringulo que relaciona una entidad (super-entidad) con un conjunto de entidades (categoras). Instancia: La instancia de cada una de las categoras es un subconjunto de la instancia de la super-entidad. De esta forma, cualquier elemento de una categora es tambin un elemento de la super-entidad.
12

Notacin

13

Modelo Entidad Relacin


Constructores Bsicos: Agregacin. Esquema: Lnea cerrada que enmarca una nica relacin con todas las entidades que participan de esa relacin. Instancia: La misma que la de la relacin. Es un operador de cambio de tipo de relacin a entidad. Entidad Dbil. Esquema: Relacin binaria N:1 y total del lado N con rombo de doble lnea. Instancia: La misma de la relacin. En realidad especifica que la entidad del lado N no se puede identificar por s misma.
14

Modelo ER c/ Restricciones

15

Esquema del Modelo Conceptual Notacin UML

16

Ejercicio Pasar a Modelo Relacional

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

Relacin CAR con dos claves candidatas

23

Esquema de COMPANY

24

Restricciones de Integridad Referencial

25

Esquema Relacional de AeroLneas

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

Posible Estado Para el Esquema COMPANY

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

Algebra Relacional -Seleccin


Descripcin General: Permite obtener las tuplas que cumplen una cierta condicin. Sintaxis: <condicion> (<relacin>) donde: Condicin es una condicin lgica sobre valores de los atributos de las tuplas resultado. Relacin es una relacin o expresin relacional.
30

Algebra Relacional - Proyeccin


Descripcin General: Permite obtener las tuplas con un cierto conjunto de atributos. Sintaxis: <lista_atributos> (<relacion>) donde: Lista_atributos es una lista de atributos a aparecer en la relacin resultado. Relacin es una relacin o expresin relacional.
31

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

Algebra Relacional Seleccin- Proyeccin


(a) (DNO=4 AND SALARY>25000)
OR (DNO=5 AND

SLARY>30000)(EMPLOYEE).

(b) pSEX, SALARY(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

UNION INTERSECCIN DIFERENCIA


(a) Two union-compatible relations. (b) STUDENT INSTRUCTOR. (c) STUDENT INSTRUCTOR. d) STUDENT INSTRUCTOR. (e) INSTRUCTOR STUDENT

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

DEPT_MGR DEPARTMENT JOIN MGRSSN=SSN EMPLOYEE .

Resultado de la operacin JOIN

49

JOIN NATURAL (a) PROJ_DEPT PROJECT * DEPT.


(b) DEPT_LOCS DEPARTMENT * DEPT_LOCATIONS.

50

Resumen

Operaciones en Algebra Relacional

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

SQL- Create Table

67

SQL Alter Table

68

SQL-Alter Table

69

SQL Drop ,Rename,etc

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

SQL DML Insert

82

SQL- DML -Update

83

SQL DML -Update

84

SQL DML Update Error

85

SQL-DML Delete

86

SQL-DML- Delete Error

87

SQL Ordenamiento de Tuplas


La clusula ORDER BY permite indicar el campo por el cual se ordena el resultado. Se indica el orden (ASC o DESC)

88

SQL Filtrado de Repetidos


Dar los #prod de los productos fabricados, filtrando los repetidos. SELECT DISTINCT #prod FROM VENTAS ORDER BY #prod; La clusula DISTINCT filtra tuplas repetidas.

89

SQL DML Join


Dar los nombres de fabricantes y los #prod. que venden. SELECT nombre, #prod FROM VENTAS, FABS WHERE VENTAS.#fab = FABS.#fab; Dar los nombres de fabricantes y los #prod. que venden, tales que vendi el producto a $100. SELECT nombre, #prod FROM VENTAS, FABS WHERE VENTAS.#fab = FABS.#fab and precio = 100;
90

SQL- DML Union


algn producto a precio mayor que $500. SELECT #fab FROM FABS WHERE direc = "d1" UNION SELECT #fab FROM VENTAS WHERE precio > 500; La UNION elimina tuplas repetidas
91

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

SQL DML Diferencia


Dar los #fab que no venden ningn producto. SELECT #fab FROM FABS EXCEPT SELECT #fab FROM VENTAS; o tambin: SELECT #fab FROM FABS WHERE #fab not IN (SELECT #fab FROM VENTAS)
93

Order By

94

SQL DML Sumarizacin


Las consultas anteriores se podan resolver en Algebra Relacional. El SQL incluye adems funciones para contar tuplas, sumar cantidades, etc. Por ejemplo: Decir cuantos fabricantes hay. SELECT count(#fab) FROM FABS; Dar el precio mximo de venta. SELECT max(precio) FROM VENTAS;
95

SQL-DML Consultas Anidadas

96

SQL-DML Exists
Para qu sirve?: para chequear si el resultado de una consulta anidada es vaco.

97

SQL-DML Agrupamiento de Tuplas


Se quiere resolver: Dar, para cada fabricante, la cantidad de productos que vendi. esto implica: Tomar cada grupo de tuplas en Ventas correspondiente a un fabricante. Contar la cantidad de tuplas en el grupo. Para realizar esta operacin es necesaria la clusula GROUP BY.

98

SQL-DML Condiciones sobre grupos


Con la clusula HAVING se pueden especificar condiciones sobre los grupos. Por ejemplo: Dar el nmero de fabricante y los promedios de precios a los cuales vendi, pero para los fabricantes con ms de 3 ventas. SELECT #f, avg(precio) FROM VENTAS GROUP BY #f HAVING count(*) > 3;
99

SLQ-DML Condiciones sobre grupos


Dar los nombres de fabricantes que hicieron ms de 5 ventas sobre productos con #p mayor que 2, junto con el total de precio vendido. SELECT #f, nombre, sum(precio) FROM FABS, VENTAS WHERE FABS.#f = VENTAS.#f and #p > 2 GROUP BY #f, nombre HAVING count(*) > 5;
100

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

Normalizacin 1 Forma Normal

106

2 y 3 Forma Normal

107

Casos de USO

108

Caso de Uso Universidad

109

Diagrama de Secuencia

110

Diagrama de Estados

111

Ejemplo Universidad

112

Diagrama de Secuencia

113

Diagrama Rational Rose

114

Diseo BD con Clases

115

Diseo de BD COMPANY

116

SQL Embebido ProC -Oracle


#include <stdio.h> void Login(); void Query(); void Err(); void Addspc(); EXEC SQL BEGIN DECLARE SECTION; <your variable declarations> EXEC SQL END DECLARE SECTION; EXEC SQL INCLUDE sqlca;
117

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();

} /* end of Login() procedure */

118

SQL Embebido
void Query() { EXEC SQL WHENEVER SQLERROR GOTO printerror; <your program>

printerror: Err(); } /* end of Query() procedure */


119

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 }

SQLDisconnect(conn); SQLFreeConnect(conn); SQLFreeEnv(env);

}
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

Estructura Interna Implementacin

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 PL/SQL (Oracle)


En PL/SQL un error o advertencia se llama excepcin. Cuando se produce un error una excepcin se dispara (raise) La ejecucin se detiene y el control se transfiere al rea de excepciones del bloque. Para manejar excepciones se escriben manejadores (handlers) de excepciones
147

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

Sintaxis Triggers Oracle

153

Ejemplo Trigger Oracle

154

Active Rules StarBust Notation

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

Esquema ER XML Universidad

174

Vista Jerrquica

175

Schema del CURSO

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)

Oracle 9i Student Guide

FING Fundamentos de Base de Datos

http://www.fing.edu.uy/inco/cursos/bdatos/

183

Вам также может понравиться