Está en la página 1de 16

Objetivos

conocer la arquitectura ANSI/SPARC para sistemas de gestin


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 Informtica


Semestre 2B

1/03/01

Temario

Bases de datos

1. Sistema de gestin de bases de datos

1. Sistema de gestin de bases de datos: componentes y


funciones
2. Independencia de datos
3. Integridad

SGBD: Software que permite la creacin y manipulacin de


bases de datos
SGBD

3.1. Concepto de transaccin. Procesamiento de transacciones


3.2. Integridad semntica
3.3. Accesos concurrentes
3.4. Reconstruccin 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

1/03/01

Bases de datos

1. Sistema de gestin de bases de datos

1. Sistema de gestin de bases de datos

SGBD: Software que permite la creacin y manipulacin de


bases de datos
Programas de aplicacin

Objetivos de tcnicas BD

Funciones SGBD

Componentes SGBD

descripcin unificada e
independiente de los datos
independencia de las
aplicaciones
definicin de vistas parciales

Definicin de datos a
varios niveles:
esquema lgico
esquema interno
esquemas externos

Lenguajes de definicin
de esquemas y
traductores asociados

SGBD

Base de datos

1/03/01

Bases de datos

1. Sistema de gestin de bases de datos


Objetivos de tcnicas BD

Gestin de la informacin

Funciones SGBD

Objetivos de tcnicas BD

Manipulacin de los datos: Lenguajes de


manipulacin y
consulta
traductores asociados
actualizacin

Integridad y seguridad de
los datos

Bases de datos

Bases de datos

1. Sistema de gestin de bases de datos

Componentes SGBD

Gestin y administracin
de la base de datos

1/03/01

1/03/01

Herramientas para:
reestructuracin
simulacin
estadsticas
impresin

1/03/01

Funciones SGBD

Componentes SGBD

Control de:
integridad semntica
accesos concurrentes
reconstruccin en caso
de fallo
seguridad (privacidad)

Herramientas para:
control integridad
reconstruccin
control seguridad

Bases de datos

1.2. Esquema del acceso del SGBD a los datos

1.2. Esquema del acceso del SGBD a los datos


Esquema externo aplicacin 1:
CREATE VIEW Administrativo (dni, nombre, salario_men)
AS SELECT dni, nombre, salario/14
FROM Empleado
WHERE tipo=AD

Programas de aplicacin

SGBD

Esquema lgico:
Empleado(dni, nombre, direccin, 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

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

Aplicacin 1: accede a la informacin a tracs del esquema externo 1

Consulta sobre las


estructuras de datos del
esquema externo 1

SELECT nombre, salario_men


FROM Administrativo
WHERE dni = parmetro

rea de datos de
la aplicacin 1

Aplicacin 1

datos

Esquema externo 1
Esquema lgico

rea de trabajo
del SGBD

1
7

Solicita registro
de fichero de datos

SGBD

SGBD: control del acceso y resolucin de la operacin pedida

Esquema interno

SO: Manipulacin de los drivers de los dispositivos de


memoria secundaria

Correspondencia
entre esquemas

registro

mandato

operacin

Bases de datos

6
buffers de
memoria

11

Solicita bloque
de datos del disco

bloque

flujo de datos

1/03/01

Administrador de
ficheros del SO

BD

Operacin 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 definicin de la base de datos a tres
niveles de abstraccin:

Propiedad que asegura que los programas de aplicacin


sean independientes de los cambios realizados en datos que no
usan o en detalles de representacin fsica de los datos a los
que acceden

Nivel conceptual Esquema conceptual


descripcin de la BD con independencia del SGBD
Nivel interno Esquema interno
descripcin de la BD en trminos de su representacin fsica
Nivel externo Esquema externo
descripcin 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


descripcin organizativa de la BD
Nivel lgico Esquema lgico
descripcin de la BD en trminos del modelo de datos del SGBD
Nivel interno Esquema interno
descripcin de la BD en trminos de su representacin fsica

permitir definir los distintos esquemas de la base de datos


(excepcin 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
aplicacin

Nivel externo Esquema externo


descripcin 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 lgica entre el esquema lgico y los externos:

Esquema
ext erno 1

Esquema
ext erno 2

Esquema
ext erno n

Correspondencia
externo-lgico

Independencia lgica

Los esquemas externos y los programas de aplicacin no deben de


verse afectados por modificaciones del esquema lgico sobre
datos que no usan

Esquema
lgico

Independencia fsica entre el esquema interno y el lgico:

Correspondencia
lgico-fsico

Independencia fsica
Esquema
f sico

el esquema lgico no debe de verse afectado por cambios en el


esquema interno referentes a la implementacin de las estructuras
de datos, modos de acceso, tamaos de pginas, 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 fsica
Administrador de
ficheros del SO

2.3

Cuando se produce la ligadura desaparece la independencia

Correspondencia
entre esquemas

registro
buffers de
memoria

mandato (orden)

Solicita bloque
de datos del disco

bloque

flujo de datos
operacin

Ligadura lgica

Solicita registro
de fichero de datos

Esquema lgico
2.2

Transformacin del esquema externo en el esquema interno

datos
rea de trabajo
del SGBD

7.1

Esquema externo 1

LIGADURA:

rea de datos de
la aplicacin 1

Aplicacin 1

BD

Operacin 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 aplicacin:

Momento de la ligadura:

Ligadura en tiempo de compilacin

en compilacin o en la precompilacin

Transformacin del esquema externo que usa el


programas en trminos del esquema interno

en el montaje
al iniciarse la ejecucin o en el momento de conectarse

Cualquier cambio del esquema lgico y/o interno


requiere una recompilacin

en cada acceso a la base de datos

Ligadura al ejecutar el programa


Mayor independencia cuanto ms tarde se produzca la ligadura

No requiere ninguna accin sobre el programa

Mayor coste cuanto ms tarde se produzca la ligadura

1/03/01

Bases de datos

21

1/03/01

3. Integridad

3. Integridad

Objetivo de la tecnologa de bases de datos

Calidad de la informacin:

Calidad de la informacin:

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

Representacin de los objetos, relaciones y restricciones en el


esquema de la base de datos
La informacin contenida en la base de datos debe preservar la
definicin 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 ejecucin correcta de las actualizaciones (entorno


concurrente)
Recuperar (reconstruir) la base de datos en caso de prdidas o
accidentes

1/03/01

Bases de datos

25

3. Integridad: recuperacin

P1
leer(123, saldo)

t2
t3

leer(123, saldo)
saldosaldo-100

t4

Cuentas
Nro.

Saldo

t5

123

800

t6

555

2000

1/03/01

P2

saldosaldo-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: Actualizacin de cuentas


Cuentas

Las operaciones de acceso a una base de datos se organizan en


transacciones

Copia de
seguridad
(12-12-93)

Tiempo

transaccin n 51: fallo del sistema!

Procedimiento de recuperacin:
sustituir el fichero de Cuentas por su copia de seguridad

TRANSACCIN

Secuencia de operaciones de acceso a la


base de datos que constituyen una unidad
lgica de ejecucin

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) Insercin en Dep:

Dep(cod, nombre, ubicacin)


CP: {cod}

2) Modificacin de Emp en la tupla con dni 20

<d2, Personal, Planta 3>

ERROR: la restriccin R1 no se cumple

R1: Dx (Dep(Dx) Ex (Emp(Ex) Dx.cod = Ex.dept ))


Insercin de un nuevo departamento:

1) Modificacin 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) Insercin 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 direccin del bloque que contiene el dato X
2. copiar el bloque a un buffer de memoria principal

escribir(X): actualizacin (insercin, borrado o modificacin)


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 definicin de las transacciones:


principio: indica el comienzo de la transaccin

escribir(X):
1. buscar la direccin del bloque que contiene el dato X

fin: indica que se han terminado todas las operaciones de la


transaccin.

2. copiar el bloque a un buffer de memoria principal


3. copiar el dato X de la variable del programa a la posicin adecuada
en el buffer
4. copiar el bloque actualizado del buffer al disco

1/03/01

Bases de datos

confirmacin: indica el xito de la transaccin, permitiendo que


el SGBD guarde los cambios efectuados en la base de datos
anulacin: indica el fracaso de la transaccin debido a algn
motivo. El SGBD deshace todos los posibles cambios
efectuados por la transaccin

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 transaccin es una unidad atmica de ejecucin


(o se ejecutan todas sus operaciones o ninguna)
confirmacin

confirmada

consistencia: la transaccin debe dar lugar a un estado de la base


de datos consistente (se cumplen todas las restricciones de
integridad)

anulacin

anulacin

fallada

terminada

aislamiento: las modificaciones introducidas por una transaccin


no confirmada no son visibles al resto de transacciones
persistencia: la confirmacin de implica la grabacin 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 semntica

3. Integridad: integridad semntica

Restriccin de integridad:

Tipos de restricciones de integridad:

Propiedad del mundo real que modela la base de datos

estticas: se deben cumplir en cada estado de la base de datos

Las restricciones se definen en el esquema lgico y el SGBD debe


velar por su cumplimiento.

de transicin: se deben cumplir en dos estados consecutivos

La comprobacin se realiza cuando la base de datos cambia (se


ejecuta una operacin de actualizacin)
Las restricciones que no se incluyen en el esquema de la base de
datos se han de mantener en los programas de aplicacin

1/03/01

Bases de datos

37

1/03/01

Bases de datos

38

3. Integridad: integridad semntica

3. Integridad: integridad semntica

Restricciones en el SQL/92:
estticas:
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 bsqueda generales
(no suelen mantenerlas los sistemas comerciales)
cuando se comprueba: despus de cada operacin, al final
acciones compensatorias:

Procedimientos de comprobacin de la integridad :


programacin de la comprobacin por parte del diseador
se incluyen en el esquema de la base de datos las restricciones
complejas
en los procedimientos se debe incluir:
operaciones que los activan
cdigo a ejecutar que incluye operaciones sobre la base de
datos
acciones de rechazo o compensacin en caso de violacin

de transicin: 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

Prdida de las actualizaciones

Problemas por los accesos concurrentes:


prdida de las actualizaciones
obtencin de informacin incoherente de estados vlidos 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

Obtencin de informacin incoherente

Lectura de datos actualizados sin confirmar

P1: Obtencin 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

a0

escribir(R(a1))

P2

lee(R)

lee(C1)
lee(C2)
lee(C50)
lee(C51)

P1

100000

anulacin

lee(R)
utiliza el valor a1

200000

tiempo

Error: excede en X
Bases de datos

43

1/03/01

Error: usa un dato invlido


Bases de datos

44

3. Integridad: reconstruccin de la base de datos

3. Integridad: reconstruccin de la base de datos

Las propiedades de atomicidad y persistencia de una transaccin


obligan a que el SGBD asegure que:

Prdidas 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 confirmacin de una transaccin


y la grabacin de sus campos en memoria secundaria
La transaccin est confirmada y sus cambios estn en los
bloques de los buffers
En el intervalo se produce un fallo con prdida de memoria
principal y los bloques de los buffers se pierden

1/03/01

Bases de datos

3. Integridad: reconstruccin de la base de datos

3. Integridad: reconstruccin de la base de datos

Prdidas de memoria secundaria

Causas del fallo de un transaccin

Transaccin confirmada y cuyos cambios estn grabados en


la base de datos
Fallo en la memoria secundaria y estos cambios se pierden

46

Locales a la transaccin (funcionamiento del sistema normal)


errores en la transaccin (acceso a la base de datos incorrecto,
clculos fallidos, etc.)
excepciones (violacin 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: reconstruccin de la base de datos

3. Integridad: reconstruccin de la base de datos


Reconstruccin frente a fallos del sistema

Causas del fallo de un transaccin


Externas a la transaccin (errores del sistema)

Mdulo de reconstruccin

fallos del sistema con prdida de la memoria principal

Recuperar transacciones confirmadas que no han sido


grabadas

fallos del sistema de almacenamiento con prdida de la memoria


secundaria

Anular transacciones que han fallado


Tcnica ms extendida: uso del fichero diario

1/03/01

Bases de datos

49

3. Integridad: reconstruccin de la base de datos

50

Tipos de entradas que se graban en el fichero diario

Registrar las operaciones de actualizacin de las transacciones


Se almacena en disco para evitar la desaparicin por un fallo
del sistema
Se graba peridicamente a una unidad de almacenamiento
masiva

Bases de datos

Bases de datos

3. Integridad: reconstruccin de la base de datos

Actividades sobre el fichero diario

1/03/01

1/03/01

[inicio, T]
[escribir, T, X, valor_antes, valor_despus]
[leer, T, X]
[confirmar, T]
[anular, T]

51

1/03/01

Bases de datos

52

3. Integridad: reconstruccin de la base de datos


Fallo de una transaccin T

3. Integridad: reconstruccin 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_despus]

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_despus]

53

3. Integridad: reconstruccin de la base de datos

1/03/01

Bases de datos

54

3. Integridad: reconstruccin de la base de datos


Puntos de verificacin

Puntos de verificacin
Tamao del fichero diario puede crecer rpidamente

Se graban en el diario
peridicamente

Suspender temporalmente la ejecucin de transacciones

Recuperacin en caso de fallo muy costosa (hay que


rehacer muchas operaciones)

Grabar en el diario el punto de verificacin


Forzar la grabacin de todas las actualizaciones de las
transacciones confirmadas (copiar los buffers a disco)
Reanudar la ejecucin de las transacciones suspendidas

1/03/01

Bases de datos

55

1/03/01

Bases de datos

56

3. Integridad: reconstruccin de la base de datos


Puntos de verificacin

3. Integridad: reconstruccin de la base de datos

Reconstruccin a
partir del ltimo

Reconstruccin frente a fallos del sistema almacenamiento

tiempo

Prdida de memoria secundaria


T1

Base de datos puede estar daada total o parcialmente


T2

Tcnica: reconstruir la base de datos a partir de

T3

T4

T5
punto de verificacin
1/03/01

Recuperar una copia de seguridad ms 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
Tcnicas:
Identificacin del usuario

Objetivo:

Determinacin de los accesos permitidos

a la informacin slo pueden acceder las


personas autorizadas y en la forma autorizada

lista de autorizaciones (objeto y operaciones permitidas)


por usuario
niveles de autorizacin
Gestin 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 gestin de autorizaciones transferibles
Conocimiento de las autorizaciones de acceso de cada
usuario (cuales son transferibles y cuales no)
Transferencia de un autorizacin de un usuario a otro (en
modo transferible o no)
Revocacin posterior de una autorizacin de acceso
Si se otorgo en modo transferible, revocacin de las autorizaciones
que partieron de ella

Revocacin independiente de una autorizacin de acceso


otorgada de forma mltiple
1/03/01

Bases de datos

61

También podría gustarte