Objetivos Temario 1. Sistema de gestión de bases de datos

Anuncio
Objetivos
– conocer la arquitectura ANSI/SPARC para sistemas de gestión
de bases de datos
– conocer el concepto de independencia de datos en bases de
datos y los mecanismos asociados
– conocer los mecanismos y estrategias para el control de la
integridad (calidad) y seguridad (privacidad) en bases de datos
Escuela Universitaria de Informática
Semestre 2B
1/03/01
Temario
Bases de datos
2
1. Sistema de gestión de bases de datos
1. Sistema de gestión de bases de datos: componentes y
funciones
2. Independencia de datos
3. Integridad
SGBD: Software que permite la creación y manipulación de
bases de datos
SGBD
3.1. Concepto de transacción. Procesamiento de transacciones
3.2. Integridad semántica
3.3. Accesos concurrentes
3.4. Reconstrucción de la base de datos
modelo de datos (modelo relacional)
estructuras de datos y operadores asociados
4 Seguridad
4.1. Control de usuarios
4.2. Control de accesos permitidos
1/03/01
Bases de datos
3
1/03/01
Bases de datos
4
1. Sistema de gestión de bases de datos
1. Sistema de gestión de bases de datos
SGBD: Software que permite la creación y manipulación de
bases de datos
Programas de aplicación
Objetivos de técnicas BD
Funciones SGBD
Componentes SGBD
• descripción unificada e
independiente de los datos
• independencia de las
aplicaciones
• definición de vistas parciales
Definición de datos a
varios niveles:
• esquema lógico
• esquema interno
• esquemas externos
Lenguajes de definición
de esquemas y
traductores asociados
SGBD
Base de datos
1/03/01
Bases de datos
5
1. Sistema de gestión de bases de datos
Objetivos de técnicas BD
Gestión de la información
Funciones SGBD
Objetivos de técnicas BD
Manipulación de los datos: Lenguajes de
manipulación y
• consulta
traductores asociados
• actualización
Integridad y seguridad de
los datos
Bases de datos
Bases de datos
6
1. Sistema de gestión de bases de datos
Componentes SGBD
Gestión y administración
de la base de datos
1/03/01
1/03/01
Herramientas para:
• reestructuración
• simulación
• estadísticas
• impresión
7
1/03/01
Funciones SGBD
Componentes SGBD
Control de:
• integridad semántica
• accesos concurrentes
• reconstrucción en caso
de fallo
• seguridad (privacidad)
Herramientas para:
• control integridad
• reconstrucción
• control seguridad
Bases de datos
8
1.2. Esquema del acceso del SGBD a los datos
1.2. Esquema del acceso del SGBD a los datos
Esquema externo aplicación 1:
CREATE VIEW Administrativo (dni, nombre, salario_men)
AS SELECT dni, nombre, salario/14
FROM Empleado
WHERE tipo=‘AD’
Programas de aplicación
SGBD
Esquema lógico:
Empleado(dni, nombre, dirección, salario, tipo)
CP: {dni}
Esquema Interno:
Fichero ordenado Empleado con índice primario sobre
el campo dni en el camino h:/disco1/gerencia
Base de datos
1/03/01
Bases de datos
9
1.2. Esquema del acceso del SGBD a los datos
1/03/01
Bases de datos
10
1.2. Esquema del acceso del SGBD a los datos
Usuario 1
Aplicación 1: accede a la información a tracés del esquema externo 1
Consulta sobre las
estructuras de datos del
esquema externo 1
SELECT nombre, salario_men
FROM Administrativo
WHERE dni = parámetro
área de datos de
la aplicación 1
Aplicación 1
datos
Esquema externo 1
Esquema lógico
área de trabajo
del SGBD
1
7
Solicita registro
de fichero de datos
2
SGBD
SGBD: control del acceso y resolución de la operación pedida
Esquema interno
SO: Manipulación de los drivers de los dispositivos de
memoria secundaria
Correspondencia
entre esquemas
registro
mandato
operación
Bases de datos
6
buffers de
memoria
11
4
Solicita bloque
de datos del disco
bloque
flujo de datos
1/03/01
Administrador de
ficheros del SO
3
5
BD
Operación de
entrada-salida
Administrador de
E/S del SO
2. Independencia de datos
2. Independencia de datos
Grupo de estudio ANSI/SPARC en 1977 propuesta de arquitectura
para los SGBD que plantea la definición de la base de datos a tres
niveles de abstracción:
Propiedad que asegura que los programas de aplicación
sean independientes de los cambios realizados en datos que no
usan o en detalles de representación física de los datos a los
que acceden
• Nivel conceptual ΤEsquema conceptual
descripción de la BD con independencia del SGBD
• Nivel interno ΤEsquema interno
descripción de la BD en términos de su representación física
•Nivel externo ΤEsquema externo
descripción de las vistas parciales de la BD que poseen los
distintos usuarios
1/03/01
Bases de datos
13
1/03/01
Bases de datos
2. Independencia de datos
2. Independencia de datos
Debido a que no existe un modelo conceptual generalizado y accesible
a los distintos tipos de SGBD, se prefiere distinguir cuatro niveles:
Un SGBD que soporte la arquitectura de niveles debe:
• Nivel conceptual ΤEsquema conceptual
descripción organizativa de la BD
• Nivel lógico ΤEsquema lógico
descripción de la BD en términos del modelo de datos del SGBD
• Nivel interno ΤEsquema interno
descripción de la BD en términos de su representación física
• permitir definir los distintos esquemas de la base de datos
(excepción del esquema conceptual)
• establecer las correspondencias entre los esquemas
• asilar los esquemas: los cambios en un esquema no afecten a los
esquemas de nivel superior y en última instancia a los programas de
aplicación
•Nivel externo ΤEsquema externo
descripción de las vistas parciales de la BD que poseen los
distintos usuarios
1/03/01
Bases de datos
14
INDEPENDENCIA DE DATOS
15
1/03/01
Bases de datos
16
2. Independencia de datos
2. Independencia de datos
• Independencia lógica entre el esquema lógico y los externos:
Esquema
ext erno 1
Esquema
ext erno 2
…
Esquema
ext erno n
Correspondencia
externo-lógico
Independencia lógica
Los esquemas externos y los programas de aplicación no deben de
verse afectados por modificaciones del esquema lógico sobre
datos que no usan
Esquema
lógico
• Independencia física entre el esquema interno y el lógico:
Correspondencia
lógico-físico
Independencia física
Esquema
f ísico
el esquema lógico no debe de verse afectado por cambios en el
esquema interno referentes a la implementación de las estructuras
de datos, modos de acceso, tamaños de páginas, caminos de
acceso, etc.
1/03/01
2. Independencia de datos
Bases de datos
18
2. Independencia de datos
Usuario 1
Consulta sobre las
estructuras de datos del
esquema externo 1
7.2
2.1
Esquema interno
SGBD
• Ligadura física
Administrador de
ficheros del SO
3
2.3
• Cuando se produce la ligadura desaparece la independencia
6
Correspondencia
entre esquemas
registro
buffers de
memoria
mandato (orden)
4
Solicita bloque
de datos del disco
bloque
flujo de datos
operación
• Ligadura lógica
Solicita registro
de fichero de datos
Esquema lógico
2.2
• Transformación del esquema externo en el esquema interno
datos
área de trabajo
del SGBD
7.1
1
Esquema externo 1
LIGADURA:
área de datos de
la aplicación 1
Aplicación 1
5
BD
Operación de
entrada-salida
Administrador de
E/S del SO
1/03/01
Bases de datos
20
2. Independencia de datos
2. Independencia de datos
Programa de aplicación:
Momento de la ligadura:
• Ligadura en tiempo de compilación
• en compilación o en la precompilación
Transformación del esquema externo que usa el
programas en términos del esquema interno
• en el montaje
• al iniciarse la ejecución o en el momento de conectarse
Cualquier cambio del esquema lógico y/o interno
requiere una recompilación
• en cada acceso a la base de datos
• Ligadura al ejecutar el programa
Mayor independencia cuanto más tarde se produzca la ligadura
No requiere ninguna acción sobre el programa
Mayor coste cuanto más tarde se produzca la ligadura
1/03/01
Bases de datos
21
1/03/01
3. Integridad
3. Integridad
• Objetivo de la tecnología de bases de datos
• Calidad de la información:
• Calidad de la información:
Bases de datos
22
– SGBD debe asegurar que los datos se almacenan correctamente
“los datos deben estar estructurados reflejando adecuadamente,
los objetos, relaciones y las restricciones existentes en la parcela
del mundo real que modela la base de datos”
– SGBD debe asegurar que las actualizaciones de los usuarios
sobre la base de datos se ejecutan correctamente y que se hacen
permanentes
• Representación de los objetos, relaciones y restricciones en el
esquema de la base de datos
• La información contenida en la base de datos debe preservar la
definición del esquema
1/03/01
Bases de datos
23
1/03/01
Bases de datos
24
3. Integridad
3. Integridad: accesos concurrente
Cuentas
Herramientas del SGBD orientadas a la integridad para:
– Comprobar (frente a actualizaciones) las restricciones de
integridad del esquema
Nro.
Saldo
123
1000
555
2000
t1
– Controlar la ejecución correcta de las actualizaciones (entorno
concurrente)
– Recuperar (reconstruir) la base de datos en caso de pérdidas o
accidentes
1/03/01
Bases de datos
25
3. Integridad: recuperación
P1
leer(123, saldo)
t2
t3
leer(123, saldo)
saldo←saldo-100
t4
Cuentas
Nro.
Saldo
t5
123
800
t6
555
2000
1/03/01
P2
saldo←saldo-200
escribir(123, saldo)
escribir(123, saldo)
Bases de datos
26
3. Integridad: transacciones
• La integridad de la base de datos peligra generalmente por las
operaciones de acceso de las aplicaciones
13-12-93: Actualización de cuentas
Cuentas
• Las operaciones de acceso a una base de datos se organizan en
transacciones
Copia de
seguridad
(12-12-93)
Tiempo
transacción nº 51: ¡fallo del sistema!
Procedimiento de recuperación:
• sustituir el fichero de Cuentas por su copia de seguridad
TRANSACCIÓN
Secuencia de operaciones de acceso a la
base de datos que constituyen una unidad
lógica de ejecución
Efecto negativo:
• se han perdido las actualizaciones de 50 transacciones
1/03/01
Bases de datos
27
1/03/01
Bases de datos
28
3. Integridad: transacciones
3. Integridad: transacciones
Emp(dni, nombre, dir, dept)
CP: {dni}
CAj: {dept} → Dep
1) Inserción en Dep:
Dep(cod, nombre, ubicación)
CP: {cod}
2) Modificación de Emp en la tupla con dni 20
<d2, “Personal”, “Planta 3ª”>
ERROR: la restricción R1 no se cumple
R1: ∀Dx (Dep(Dx) →Τ∃Ex (Emp(Ex) ∧ Dx.cod = Ex.dept ))
Inserción de un nuevo departamento:
1) Modificación de Emp en la tupla con dni 20
<d2, “Personal”, “Planta 3ª”>
ERROR: la clave ajena sobre dept en Emp no se cumple
cuyo primer empleado es el de dni 20
2) Inserción en Dep:
1/03/01
Bases de datos
29
1/03/01
<d2, “Personal”, “Planta 3ª”>
Bases de datos
3. Integridad: transacciones
3. Integridad: transacciones
Operaciones de las transacciones relevantes para el SGBD:
Operaciones de las transacciones relevantes para el SGBD:
– leer(X): lectura o consulta del dato X de la base de datos sobre
la variable del programa del mismo nombre
– leer(X):
1. buscar la dirección del bloque que contiene el dato X
2. copiar el bloque a un buffer de memoria principal
– escribir(X): actualización (inserción, borrado o modificación)
del dato X de la base de datos usando la variable del mismo
nombre del programa
1/03/01
Bases de datos
31
30
3. copiar el dato X del buffer a la variable X del programa
1/03/01
Bases de datos
32
3. Integridad: transacciones
3. Integridad: transacciones
Operaciones de las transacciones relevantes para el SGBD:
Operaciones de definición de las transacciones:
• principio: indica el comienzo de la transacción
– escribir(X):
1. buscar la dirección del bloque que contiene el dato X
• fin: indica que se han terminado todas las operaciones de la
transacción.
2. copiar el bloque a un buffer de memoria principal
3. copiar el dato X de la variable del programa a la posición adecuada
en el buffer
4. copiar el bloque actualizado del buffer al disco
1/03/01
Bases de datos
• confirmación: indica el éxito de la transacción, permitiendo que
el SGBD guarde los cambios efectuados en la base de datos
• anulación: indica el fracaso de la transacción debido a algún
motivo. El SGBD deshace todos los posibles cambios
efectuados por la transacción
33
3. Integridad: transacciones
1/03/01
Bases de datos
34
3. Integridad: transacciones
Propiedades que deben cumplir las transacciones:
principio
activa
fin
parcialmente
confirmada
• atomicidad: una transacción es una unidad atómica de ejecución
(o se ejecutan todas sus operaciones o ninguna)
confirmación
confirmada
• consistencia: la transacción debe dar lugar a un estado de la base
de datos consistente (se cumplen todas las restricciones de
integridad)
anulación
anulación
fallada
terminada
• aislamiento: las modificaciones introducidas por una transacción
no confirmada no son visibles al resto de transacciones
• persistencia: la confirmación de implica la grabación de los
cambios introducidos en la base de datos, de forma que no se
puedan perder por un fallo del sistema o de otras transacciones
1/03/01
Bases de datos
35
1/03/01
Bases de datos
36
3. Integridad: integridad semántica
3. Integridad: integridad semántica
• Restricción de integridad:
• Tipos de restricciones de integridad:
Propiedad del mundo real que modela la base de datos
– estáticas: se deben cumplir en cada estado de la base de datos
• Las restricciones se definen en el esquema lógico y el SGBD debe
velar por su cumplimiento.
– de transición: se deben cumplir en dos estados consecutivos
• La comprobación se realiza cuando la base de datos cambia (se
ejecuta una operación de actualización)
• Las restricciones que no se incluyen en el esquema de la base de
datos se han de mantener en los programas de aplicación
1/03/01
Bases de datos
37
1/03/01
Bases de datos
38
3. Integridad: integridad semántica
3. Integridad: integridad semántica
• Restricciones en el SQL/92:
– estáticas:
sobre dominios: de valor
sobre atributos: valor no nulo, de rango, etc.
sobre relaciones: clave primaria, unicidad y claves ajenas.
sobre la base de datos: condiciones de búsqueda generales
(no suelen mantenerlas los sistemas comerciales)
• cuando se comprueba: después de cada operación, al final
• acciones compensatorias:
• Procedimientos de comprobación de la integridad :
– programación de la comprobación por parte del diseñador
– se incluyen en el esquema de la base de datos las restricciones
complejas
– en los procedimientos se debe incluir:
operaciones que los activan
código a ejecutar que incluye operaciones sobre la base de
datos
acciones de rechazo o compensación en caso de violación
– de transición: se deben cumplir en dos estados consecutivos
(no suelen mantenerlas los sistemas comerciales)
1/03/01
Bases de datos
39
1/03/01
Bases de datos
40
3. Integridad: control de accesos concurrentes
3. Integridad: control de accesos concurrentes
• El SGBD debe controlar los accesos concurrentes de las aplicaciones
Pérdida de las actualizaciones
• Problemas por los accesos concurrentes:
– pérdida de las actualizaciones
– obtención de información incoherente de estados válidos de la
base de datos
P1
P2
R
a0
b0
lee(R)
lee(R)
– lectura de datos actualizados que no han sido confirmados
escribir(R(a1, b0))
escribir(R(a0, b1))
tiempo
1/03/01
Bases de datos
41
1/03/01
Bases de datos
42
3. Integridad: control de accesos concurrentes
3. Integridad: control de accesos concurrentes
Obtención de información incoherente
Lectura de datos actualizados sin confirmar
P1: Obtención del total de saldos
Cuentas corrientes
P2: Transferencia de la cuenta 100 a la 1
P1
P1: Cambia el campo A del registro R
P2: Lee el campo A del registro R y lo usa
P2
1/03/01
…
lee(C100)
escribir(C100-X)
lee(C1)
escribir(C1+X)
lee(C100)
tiempo
R
a0
escribir(R(a1))
…
…
P2
lee(R)
lee(C1)
lee(C2)
lee(C50)
lee(C51)
P1
100000
anulación
lee(R)
utiliza el valor a1
…
200000
tiempo
Error: excede en X
Bases de datos
43
1/03/01
Error: usa un dato inválido
Bases de datos
44
3. Integridad: reconstrucción de la base de datos
3. Integridad: reconstrucción de la base de datos
Las propiedades de atomicidad y persistencia de una transacción
obligan a que el SGBD asegure que:
Pérdidas de memoria principal
a) si se confirma, los cambios efectuados son grabados en la base
de datos y que no se pierden
b) si es anulada, los cambios efectuados sobre la base de datos son
deshechos
1/03/01
Bases de datos
45
• Desajuste temporal entre la confirmación de una transacción
y la grabación de sus campos en memoria secundaria
• La transacción está confirmada y sus cambios están en los
bloques de los buffers
• En el intervalo se produce un fallo con pérdida de memoria
principal y los bloques de los buffers se pierden
1/03/01
Bases de datos
3. Integridad: reconstrucción de la base de datos
3. Integridad: reconstrucción de la base de datos
Pérdidas de memoria secundaria
Causas del fallo de un transacción
• Transacción confirmada y cuyos cambios están grabados en
la base de datos
• Fallo en la memoria secundaria y estos cambios se pierden
46
• Locales a la transacción (funcionamiento del sistema normal)
– errores en la transacción (acceso a la base de datos incorrecto,
cálculos fallidos, etc.)
– excepciones (violación de la integridad, de la seguridad, etc.)
– control de la concurrencia (estado de bloqueo entre dos transacciones)
– decisiones humanas
1/03/01
Bases de datos
47
1/03/01
Bases de datos
48
3. Integridad: reconstrucción de la base de datos
3. Integridad: reconstrucción de la base de datos
Reconstrucción frente a fallos del sistema
Causas del fallo de un transacción
• Externas a la transacción (errores del sistema)
• Módulo de reconstrucción
– fallos del sistema con pérdida de la memoria principal
• Recuperar transacciones confirmadas que no han sido
grabadas
– fallos del sistema de almacenamiento con pérdida de la memoria
secundaria
• Anular transacciones que han fallado
• Técnica más extendida: uso del fichero diario
1/03/01
Bases de datos
49
3. Integridad: reconstrucción de la base de datos
50
Tipos de entradas que se graban en el fichero diario
• Registrar las operaciones de actualización de las transacciones
• Se almacena en disco para evitar la desaparición por un fallo
del sistema
• Se graba periódicamente a una unidad de almacenamiento
masiva
Bases de datos
Bases de datos
3. Integridad: reconstrucción de la base de datos
Actividades sobre el fichero diario
1/03/01
1/03/01
• [inicio, T]
• [escribir, T, X, valor_antes, valor_después]
• [leer, T, X]
• [confirmar, T]
• [anular, T]
51
1/03/01
Bases de datos
52
3. Integridad: reconstrucción de la base de datos
Fallo de una transacción T
3. Integridad: reconstrucción de la base de datos
Fallo del sistema
Deshacer cambios de T
• Transacciones sin confirmar
[inicio, T] en el diario sin [confirmar, T]
• actualizar los datos modificados por T con su valor
original (valor_antes)
• Proceso anterior
• buscar las entradas en el diario
[escribir, T, X, valor_antes, valor_después]
• Transacciones confirmadas
[confirmar, T]
Fallo del sistema
1/03/01
• Volver a ejecutarlas:
Aplicar el proceso anterior
a todas las transacciones
sin confirmar
Bases de datos
[escribir, T, X, valor_antes, valor_después]
53
3. Integridad: reconstrucción de la base de datos
1/03/01
Bases de datos
54
3. Integridad: reconstrucción de la base de datos
Puntos de verificación
Puntos de verificación
• Tamaño del fichero diario puede crecer rápidamente
Se graban en el diario
periódicamente
• Suspender temporalmente la ejecución de transacciones
• Recuperación en caso de fallo muy costosa (hay que
rehacer muchas operaciones)
• Grabar en el diario el punto de verificación
• Forzar la grabación de todas las actualizaciones de las
transacciones confirmadas (copiar los buffers a disco)
• Reanudar la ejecución de las transacciones suspendidas
1/03/01
Bases de datos
55
1/03/01
Bases de datos
56
3. Integridad: reconstrucción de la base de datos
Puntos de verificación
3. Integridad: reconstrucción de la base de datos
Reconstrucción a
partir del último
Reconstrucción frente a fallos del sistema almacenamiento
tiempo
• Pérdida de memoria secundaria
T1
• Base de datos puede estar dañada total o parcialmente
T2
• Técnica: reconstruir la base de datos a partir de
R
T3
A
T4
R
T5
punto de verificación
1/03/01
A
– Recuperar una copia de seguridad más reciente
– A partir del instante de la copia utilizar el diario para
rehacer las operaciones realizadas por las transacciones
confirmadas
fallo del sistema
Bases de datos
57
4. Seguridad
1/03/01
Bases de datos
58
4. Seguridad
Técnicas:
• Identificación del usuario
Objetivo:
• Determinación de los accesos permitidos
a la información sólo pueden acceder las
personas autorizadas y en la forma autorizada
– lista de autorizaciones (objeto y operaciones permitidas)
por usuario
– niveles de autorización
• Gestión de autorizaciones transferibles: traspaso de
autorizaciones de un usuario a otro
1/03/01
Bases de datos
59
1/03/01
Bases de datos
60
4. Seguridad
Requerimientos para realizar la gestión de autorizaciones transferibles
• Conocimiento de las autorizaciones de acceso de cada
usuario (cuales son transferibles y cuales no)
• Transferencia de un autorización de un usuario a otro (en
modo transferible o no)
• Revocación posterior de una autorización de acceso
– Si se otorgo en modo transferible, revocación de las autorizaciones
que partieron de ella
• Revocación independiente de una autorización de acceso
otorgada de forma múltiple
1/03/01
Bases de datos
61
Descargar