Anda di halaman 1dari 16

Escuela Universitaria de Informtica

Semestre 2B
1/03/01 Bases de datos 2
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
1/03/01 Bases de datos 3
Temario
1. Sistema de gestin de bases de datos: componentes y
funciones
2. Independencia de datos
3. Integridad
3.1. Concepto de transaccin. Procesamiento de transacciones
3.2. Integridad semntica
3.3. Accesos concurrentes
3.4. Reconstruccin de la base de datos
4 Seguridad
4.1. Control de usuarios
4.2. Control de accesos permitidos
1/03/01 Bases de datos 4
1. Sistema de gestin de bases de datos
SGBD: Software que permite la creacin y manipulacin de
bases de datos
SGBD
modelo de datos (modelo relacional)
estructuras de datos y operadores asociados
1/03/01 Bases de datos 5
1. Sistema de gestin de bases de datos
SGBD: Software que permite la creacin y manipulacin de
bases de datos
SGBD
Base de datos
Programas de aplicacin
1/03/01 Bases de datos 6
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
1. Sistema de gestin de bases de datos
1/03/01 Bases de datos 7
Objetivos de tcnicas BD Funciones SGBD Componentes SGBD
Gestin de la informacin
Manipulacin de los datos:
consulta
actualizacin
Gestin y administracin
de la base de datos
Lenguajes de
manipulacin y
traductores asociados
Herramientas para:
reestructuracin
simulacin
estadsticas
impresin
1. Sistema de gestin de bases de datos
1/03/01 Bases de datos 8
Objetivos de tcnicas BD Funciones SGBD Componentes SGBD
Integridad y seguridad de
los datos
Control de:
integridad semntica
accesos concurrentes
reconstruccin en caso
de fallo
seguridad (privacidad)
Herramientas para:
control integridad
reconstruccin
control seguridad
1. Sistema de gestin de bases de datos
1/03/01 Bases de datos 9
1.2. Esquema del acceso del SGBD a los datos
SGBD
Base de datos
Programas de aplicacin
1/03/01 Bases de datos 10
Esquema externo aplicacin 1:
CREATE VIEW Administrativo (dni, nombre, salario_men)
AS SELECT dni, nombre, salario/14
FROM Empleado
WHERE tipo=AD
Esquema lgico:
Empleado(dni, nombre, direccin, salario, tipo)
CP: {dni}
Esquema Interno:
Fichero ordenado Empleado con ndice primario sobre
el campodni en el camino h:/disco1/gerencia
1.2. Esquema del acceso del SGBD a los datos
1/03/01 Bases de datos 11
Aplicacin 1: accede a la informacin atracsdel esquema externo 1
SELECT nombre, salario_men
FROM Administrativo
WHERE dni =parmetro
SGBD: control del acceso y resolucin de la operacin pedida
SO: Manipulacin de losdriversde los dispositivos de
memoria secundaria
1.2. Esquema del acceso del SGBD a los datos 1.2. Esquema del acceso del SGBD a los datos
BD
Aplicacin 1
SGBD Administrador de
ficheros del SO
Esquemalgico
Esquemainterno
Esquemaexterno 1
Administrador de
E/S del SO
Consultasobrelas
estructuras dedatos del
esquemaexterno 1
Usuario 1
Correspondencia
entreesquemas
Solicitaregistro
defichero dedatos
Solicitabloque
dedatos del disco
Operacin de
entrada-salida
buffers de
memoria
rea de datos de
la aplicacin 1
datos
bloque
registro
mandato
flujo de datos
operacin
1
2
3
4
5
7
6
rea de trabajo
del SGBD
1/03/01 Bases de datos 13
2. Independencia de datos
Propiedad que asegura que los programas de aplicacin
sean independientes de los cambios realizados endatos que no
usan o en detalles de representacin fsica de los datos a los
que acceden
1/03/01 Bases de datos 14
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:
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
2. Independencia de datos
1/03/01 Bases de datos 15
Debido a que no existe un modelo conceptual generalizado y accesible
a los distintos tipos de SGBD, se prefiere distinguir cuatro niveles:
Nivel conceptual Esquema conceptual
descripcinorganizativade 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
Nivel externo Esquema externo
descripcin de las vistas parciales de la BD que poseen los
distintos usuarios
2. Independencia de datos
1/03/01 Bases de datos 16
Un SGBD que soporte la arquitectura de niveles debe:
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 programasde
aplicacin
INDEPENDENCIA DE DATOS
2. Independencia de datos
2. Independencia de datos
Esquema
lgico
Esquema
externo 1
Esquema
externo 2
Esquema
externo n

Esquema
fsico
Independencia lgica
Independencia fsica
Correspondencia
externo-lgico
Correspondencia
lgico-fsico
1/03/01 Bases de datos 18
Independencia lgica entre el esquema lgico y los externos:
Los esquemas externos y los programas de aplicacin no deben de
verse afectados por modificaciones del esquema lgico sobre
datos que no usan
Independencia fsica entre el esquema interno y el lgico:
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.
2. Independencia de datos
BD
Aplicacin 1
SGBD Administrador de
ficheros del SO
Esquemalgico
Esquema interno
Esquemaexterno 1
Administrador de
E/S del SO
Consultasobrelas
estructuras dedatos del
esquemaexterno 1
Usuario 1
Correspondencia
entreesquemas
Solicitaregistro
defichero dedatos
Solicitabloque
dedatos del disco
Operacin de
entrada-salida
buffers de
memoria
rea de datos de
la aplicacin 1
datos
bloque
registro
mandato (orden)
flujo de datos
operacin
1
2.1
3
4
5
7.1
6
rea de trabajo
del SGBD
2.3
2.2
7.2
2. Independencia de datos
1/03/01 Bases de datos 20
LIGADURA:
Transformacin del esquema externo en el esquema interno
Ligadura lgica
Ligadura fsica
Cuando se produce la ligadura desaparece la independencia
2. Independencia de datos
1/03/01 Bases de datos 21
Programa de aplicacin:
Ligadura en tiempo de compilacin
Transformacin del esquema externo que usa el
programas en trminos del esquema interno
Cualquier cambio del esquema lgico y/o interno
requiere unarecompilacin
Ligadura al ejecutar el programa
No requiere ninguna accin sobre el programa
2. Independencia de datos
1/03/01 Bases de datos 22
Momento de la ligadura:
en compilacin o en laprecompilacin
en el montaje
al iniciarse la ejecucin o en el momento de conectarse
en cada acceso a la base de datos
Mayor independencia cuanto ms tarde se produzca la ligadura
Mayor coste cuanto ms tarde se produzca la ligadura
2. Independencia de datos
1/03/01 Bases de datos 23
Objetivo de la tecnologa de bases de datos
Calidad de la informacin:
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
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
3. Integridad
1/03/01 Bases de datos 24
Calidad de la informacin:
SGBD debe asegurar que los datos se almacenan correctamente
SGBD debe asegurar que las actualizaciones de los usuarios
sobre la base de datos se ejecutan correctamente y que se hacen
permanentes
3. Integridad
1/03/01 Bases de datos 25
Herramientas del SGBD orientadas a la integridad para:
Comprobar (frente a actualizaciones) las restricciones de
integridad del esquema
Controlar la ejecucin correcta de las actualizaciones (entorno
concurrente)
Recuperar (reconstruir) la base de datos en caso de prdidas o
accidentes
3. Integridad
1/03/01 Bases de datos 26
3. Integridad: accesos concurrente
Cuentas
123
1000
555
2000
Nro. Saldo
Tiempo P1 P2
t1 leer(123, saldo)
t2 leer(123, saldo)
t3 saldosaldo-100
t4 saldosaldo-200
t5 escribir(123, saldo)
t6 escribir(123, saldo)
Cuentas
123 800
555 2000
Nro. Saldo
1/03/01 Bases de datos 27
3. Integridad: recuperacin
Cuentas
Copia de
seguridad
(12-12-93)
13-12-93: Actualizacin de cuentas
transaccin n 51: fallo del sistema!
Procedimiento de recuperacin:
sustituir el fichero de Cuentas por su copia de seguridad
Efecto negativo:
se han perdido las actualizaciones de 50 transacciones
1/03/01 Bases de datos 28
3. Integridad: transacciones
La integridad de la base de datos peligra generalmente por las
operaciones de acceso de las aplicaciones
Las operaciones de acceso a una base de datos se organizan en
transacciones
Secuencia de operaciones de acceso a la
base de datos que constituyen una unidad
lgica de ejecucin
TRANSACCIN
1/03/01 Bases de datos 29
3. Integridad: transacciones
Emp(dni, nombre, dir, dept)
CP: {dni}
CAj: {dept} Dep
Dep(cod, nombre, ubicacin)
CP: {cod}
R1: Dx(Dep(Dx) Ex (Emp(Ex) Dx.cod=Ex.dept ))
Insercin de un nuevo departamento:
<d2, Personal, Planta 3>
cuyo primer empleado es el dedni 20
1/03/01 Bases de datos 30
3. Integridad: transacciones
1) Insercin enDep: <d2, Personal, Planta 3>
2) Modificacin deEmp en la tupla condni 20
ERROR: la restriccin R1 no se cumple
1) Modificacin deEmp en la tupla condni 20
2) Insercin enDep: <d2, Personal, Planta 3>
ERROR: la clave ajena sobredept enEmp no se cumple
1/03/01 Bases de datos 31
3. Integridad: transacciones
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
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 32
3. Integridad: transacciones
Operaciones de las transacciones relevantes para el SGBD:
leer(X):
1. buscar la direccin del bloque que contiene el dato X
2. copiar el bloque a un buffer de memoria principal
3. copiar el dato X del buffer a la variable X del programa
1/03/01 Bases de datos 33
3. Integridad: transacciones
Operaciones de las transacciones relevantes para el SGBD:
escribir(X):
1. buscar la direccin del bloque que contiene el dato X
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 34
3. Integridad: transacciones
Operaciones de definicin de las transacciones:
principio: indica el comienzo de la transaccin
fin: indica que se han terminado todas las operaciones de la
transaccin.
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
1/03/01 Bases de datos 35
3. Integridad: transacciones
principio
fin
activa confirmada
confirmacin
fallada
anulacin
anulacin
terminada
parcialmente
confirmada
1/03/01 Bases de datos 36
3. Integridad: transacciones
Propiedades que deben cumplir las transacciones:
atomicidad: una transaccin es una unidad atmica de ejecucin
(o se ejecutan todas sus operaciones o ninguna)
consistencia: la transaccin debe dar lugar a un estado de la base
de datos consistente (se cumplen todas las restricciones de
integridad)
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 37
3. Integridad: integridad semntica
Restriccin de integridad:
Propiedad del mundo real que modela la base de datos
Las restricciones se definen en el esquema lgico y el SGBD debe
velar por su cumplimiento.
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 38
3. Integridad: integridad semntica
Tipos de restricciones de integridad:
estticas: se deben cumplir en cada estado de la base de datos
de transicin: se deben cumplir en dos estados consecutivos
1/03/01 Bases de datos 39
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:
de transicin: se deben cumplir en dos estados consecutivos
(no suelen mantenerlas los sistemas comerciales)
1/03/01 Bases de datos 40
3. Integridad: integridad semntica
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
1/03/01 Bases de datos 41
3. Integridad: control de accesos concurrentes
El SGBD debe controlar los accesos concurrentes de las aplicaciones
Problemas por los accesos concurrentes:
prdida de las actualizaciones
obtencin de informacin incoherente de estados vlidos de la
base de datos
lectura de datos actualizados que no han sido confirmados
1/03/01 Bases de datos 42
3. Integridad: control de accesos concurrentes
Prdida de las actualizaciones
a
0
b
0
P
1
P
2
tiempo
lee(R)
lee(R)
escribir(R(a
1
, b
0
))
R
escribir(R(a
0
, b
1
))
1/03/01 Bases de datos 43
3. Integridad: control de accesos concurrentes
Obtencin de informacin incoherente
P
1
P
2
tiempo
lee(C
1
)
lee(C
2
)

lee(C
50
) lee(C
100
)
Cuentas corrientes
P
1
: Obtencin del total de saldos
P
2
: Transferencia de la cuenta 100 a la 1
lee(C
51
) escribir(C
100
-X)
200000

lee(C
1
)
escribir(C
1
+X)
100000
lee(C
100
)
Error: excede en X
1/03/01 Bases de datos 44
3. Integridad: control de accesos concurrentes
Lectura de datos actualizados sin confirmar
P
1
: Cambia el campo A del registro R
P
2
: Lee el campo A del registro R y lo usa
a
0
R
lee(R)
escribir(R(a
1
))

lee(R)
utiliza el valor a
1
anulacin

P
1
P
2
tiempo
Error: usa un dato invlido
1/03/01 Bases de datos 45
3. Integridad: reconstruccin de la base de datos
Las propiedades deatomicidady persistencia de una transaccin
obligan a que el SGBD asegure que:
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 46
3. Integridad: reconstruccin de la base de datos
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 losbuffers
En el intervalo se produce un fallo con prdida de memoria
principal y los bloques de losbuffers se pierden
Prdidas de memoria principal
1/03/01 Bases de datos 47
3. Integridad: reconstruccin de la base de datos
Transaccin confirmada y cuyos cambios estn grabados en
la base de datos
Fallo en la memoria secundaria y estos cambios se pierden
Prdidas de memoria secundaria
1/03/01 Bases de datos 48
3. Integridad: reconstruccin de la base de datos
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
Causas del fallo de un transaccin
1/03/01 Bases de datos 49
3. Integridad: reconstruccin de la base de datos
Externas a la transaccin (errores del sistema)
fallos del sistema con prdida de la memoria principal
fallos del sistema de almacenamiento con prdida de la memoria
secundaria
Causas del fallo de un transaccin
1/03/01 Bases de datos 50
3. Integridad: reconstruccin de la base de datos
Mdulo de reconstruccin
Recuperar transacciones confirmadas que no han sido
grabadas
Anular transacciones que han fallado
Tcnica ms extendida: uso del fichero diario
Reconstruccin frente a fallos del sistema
1/03/01 Bases de datos 51
3. Integridad: reconstruccin de la base de datos
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
Actividades sobre el fichero diario
1/03/01 Bases de datos 52
3. Integridad: reconstruccin de la base de datos
[inicio, T]
[escribir, T, X, valor_antes, valor_despus]
[leer, T, X]
[confirmar, T]
[anular, T]
Tipos de entradas que se graban en el fichero diario
1/03/01 Bases de datos 53
3. Integridad: reconstruccin de la base de datos
Deshacer cambios de T
actualizar los datos modificados por T con su valor
original (valor_antes)
buscar las entradas en el diario
[escribir, T, X, valor_antes, valor_despus]
Fallo de una transaccin T
Fallo del sistema Aplicar el proceso anterior
a todas las transacciones
sin confirmar
1/03/01 Bases de datos 54
3. Integridad: reconstruccin de la base de datos
Fallo del sistema
Transacciones sin confirmar
[inicio, T] en el diario sin [confirmar, T]
Proceso anterior
Transacciones confirmadas
[confirmar, T]
Volver a ejecutarlas:
[escribir, T, X, valor_antes, valor_despus]
1/03/01 Bases de datos 55
3. Integridad: reconstruccin de la base de datos
Tamao del fichero diario puede crecer rpidamente
Recuperacin en caso de fallo muy costosa (hay que
rehacer muchas operaciones)
Puntos de verificacin
1/03/01 Bases de datos 56
3. Integridad: reconstruccin de la base de datos
Se graban en el diario
peridicamente
Suspender temporalmente la ejecucin de transacciones
Grabar en el diario el punto de verificacin
Forzar la grabacin de todas las actualizaciones de las
transacciones confirmadas (copiar losbuffers a disco)
Reanudar la ejecucin de las transacciones suspendidas
Puntos de verificacin
1/03/01 Bases de datos 57
3. Integridad: reconstruccin de la base de datos
Puntos de verificacin Reconstruccin a
partir del ltimo
tiempo
T
1
T
2
T
3
punto de verificacin
T
4
T
5
fallo del sistema
R
R
A
A
1/03/01 Bases de datos 58
3. Integridad: reconstruccin de la base de datos
Prdida de memoria secundaria
Base de datos puede estar daada total o parcialmente
Tcnica: reconstruir la base de datos a partir de
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
Reconstruccin frente a fallos del sistema almacenamiento
1/03/01 Bases de datos 59
4. Seguridad
Objetivo:
a la informacin slo pueden acceder las
personas autorizadas y en la forma autorizada
1/03/01 Bases de datos 60
4. Seguridad
Identificacin del usuario
Determinacin de los accesos permitidos
lista de autorizaciones (objeto y operaciones permitidas)
por usuario
niveles de autorizacin
Gestin de autorizaciones transferibles: traspaso de
autorizaciones de un usuario a otro
Tcnicas:
1/03/01 Bases de datos 61
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

Anda mungkin juga menyukai