Tema III:
Sistemas de Gestión de
Bases de Datos.
Sistemas de gestión de bases de datos.
9
conocer la arquitectura ANSI/SPARC para
sistemas de gestión de bases de datos.
9
conocer el concepto de independencia de
datos en bases de datos y los mecanismos
asociados.
9
conocer los mecanismos y estrategias para el
control de la integridad (calidad) y seguridad
(privacidad) en bases de datos.
9
conocer básicamente la implementación física
de una base de datos relacional.
Objetivos:
9
3.1 Sistema de gestión de bases de datos:
componentes y funciones.
9
3.2 Independencia de datos.
9
3.3 Integridad.
9
3.4 Seguridad.
9
3.5 Implementación física de bases de
datos relacionales.
Bibliografía:
“Bases de datos relacionales
” .
M. Celma, J.C. Casamayor, L. Mota,
Pearson Educación, S.A., Madrid 2003
ISBN: 84-205-3850-7
“Sistemas de Bases de Datos”. (Parte V)
Elmasri & Navathe. Addison Wesley. 1997
Sistemas de gestión de bases de datos.
Motivación:
Un uso correcto de un SGBD exige el
conocimiento de los mecanismos que el
sistema utiliza para cumplir con los
objetivos de la tecnología de bases de
datos: la independencia de datos, la
integridad y la seguridad.
Sistemas de gestión de bases de datos.
3.1 Sistema de gestión de bases de datos.
colección estructurada
de datos
Base de
datos:
los mecanismos de estructuración de datos (estructuras de datos) que se pueden utilizar dependen del sistema informático (SGBD) con el que se vaya a crear y manipular la base de datos
Sistema de gestión de bases de datos
(SGBD)
herramienta (software) para la
gestión (creación y manipulación)
de bases de datos.
SGBD:
SGBD
modelo de datos
9
estructuras de datos
9
operadores asociados
Familias de SGBD:
3.1 Sistema de gestión de bases de datos.
jerárquicos
jerárquico
registro, árbolen red
red
registro, lista (set)relacionales
relacional
registro (tupla), relaciónOO
OO
constructores de tipos3.1 Sistema de gestión de bases de datos.
Funciones de un SGBD
9definición de datos 9manipulación de datos (consulta y actualización) 9gestión y administraciónComponentes de un SGBD
9lenguaje de definición 9lenguaje de manipulación9herramientas para la gestión
La
tecnología de bases de datos
ha
evolucionado intentando dar respuesta a las
crecientes exigencias de funcionalidad y
eficiencia que los usuarios plantean a los
sistemas de información.
¿características de
esta tecnología?
dar servicio a
distintos usuarios
9definición de vistas parciales de los datos para distintos usuarios
9accesibilidad simultánea para distintos usuarios
soporte del SI de
la organización
9integración de la información de la organización
9persistencia de los datos
abstracción de
datos
integridad de
los datos
seguridad de
los datos
9descripción unificada de los datos e independiente de las aplicaciones
9independencia de las aplicaciones respecto a la representación física (implementación) de los datos
9asegurar la calidad de la información almacenada.
9asegurar la privacidad de la información almacenada.
9
3.1 Sistema de gestión de bases de datos:
componentes y funciones
9
3.2 Independencia de datos
9
3.3 Integridad
9
3.4 Seguridad
9
3.5 Implementación física de bases de
datos relacionales
Sistemas de gestión de bases de datos.
abstracción de
datos
9descripción unificada de los datos e independiente de las aplicaciones
9independencia de las aplicaciones respecto a la representación física (implementación) de los datos
los programas de aplicación escritos por los usuarios son independientes de cambios en datos que no usan o en la representación física de los datos a los que acceden.
abstracción de datos
independencia de datos
3.2 Independencia de datos.
independencia de datos
definición de la base de datos a tres niveles
de abstracción
(lógico, físico, externo)
esquemas de base de datos
(lógico, físico, externo
)
arquitectura de niveles
esquema lógico:
definición de las estructuras de
datos de la base de datos.
esquema físico:
implementación de las
estructuras de datos definidas en el esquema
lógico.
esquema externo:
“vistas parciales” del
esquema lógico (estructuras derivadas definidas
rq
ui
te
ct
ur
a
de
ni
ve
le
s
de
l S
G
BD
3.2 Independencia de datos.
Esquema lógico Nivel lógico Esquema físico Nivel físico Esquema
externo 1 Esquema externo 2 Esquema externo 3
Nivel externo
3.2 Independencia de datos.
correspondencia física correspondencia lógica
Correspondencia: definición de cada elementode un esquema en términos de elementosdel esquema inmediatamente inferior
3.2 Independencia de datos.
Esquema lógico
Nivel lógico
Esquema
externo 1 Esquema externo 2 Esquema externo 3
Nivel externo
Independencia lógica
Independencia lógica:los esquemas externos no deben verse afectados por modificaciones del esquema lógico conservativas*.
* modificaciones conservativas: modificaciones consistentes en reestructuraciones del esquema lógico que permitan definir los mismos esquemas externos.
Esquema lógico Nivel lógico Esquema físico Nivel físico Independencia física
Independencia física:el esquema lógico no debe verse afectado por cambios en el esquema interno referentes a la representación física de la estructuras de datos del esquema lógico.
3.2 Independencia de datos.
Un SGBD que soporte la arquitectura de
niveles ANSI/SPARC debe
:9permitir la definición de los distintos esquemas de la BD
9establecer las correspondencias entre los
esquemas: correspondencia lógica y correspondencia física
9aislar los esquemas de forma que los cambios
en un esquema no afecten a los esquemas de nivel superior: independencia lógica e
Aplicación 1 Esquema externo1 Esquema lógico Esquema físico Administrador de E/S del SO
BD
3.2 Independencia de datos.
2.1 2.2 2.3 1 4 Administrador de ficheros del SOSGBD
3 área SGBD datos registro buffers bloque operación de E/S 5 6 7 área 1 consulta sobre lasestructuras de datos del esquema externo1
solicita registro de fichero de datos
correspondencia
entre esquemas solicita bloque de datos del disco
3.2 Independencia de datos.
transformación (traducción) del esquema externo al esquema físico
ligadura
Esquema lógico Nivel lógico Esquema físico Nivel físico Esquemaexterno 1 Esquema externo 2 Esquema externo 3
Nivel externo
Ligadura física Ligadura
transformación del esquema externo al esquema físico
ligadura
La ligadura puede tener lugar en:
9en la compilación de los programas de acceso
9en el montaje para ejecutar el módulo ejecutable del programa
9al iniciarse la ejecución de un programa
9en cada acceso a la BD
cuando se produce la ligadura se pierde la independencia de datos
transformación del esquema externo al esquema físico
ligadura
la independencia de datos es mayor cuando
mas tardía es la ligadura
el funcionamiento de las aplicaciones es menos
eficiente cuanto mas frecuente es la ligadura
3.2 Independencia de datos.
cod_pro nombre teléfono cod_dep Profesor cod_dep nombre director teléfono Departamento cod_asg nombre semestre teoría prac cod_dep Asignatura
Ejemplo: base de datos “Docencia”
cod_pro cod_asg gteo gprac Docencia
3.2 Independencia de datos.
3.2 Independencia de datos.
CREATE TABLE Departamento
(cod_dep CHAR (5),
nombre VARCHAR(40) NOT NULL, director CHAR (25),
teléfono CHAR (15),
PRIMARY KEY (cod_dep) )
CREATE TABLE Profesor
(cod_pro CHAR (5) ,
nombre VARCHAR (40) NOT NULL, teléfono CHAR (15),
cod_dep CHAR (5) NOT NULL,
PRIMARY KEY (cod_pro),
FOREING KEY (cod_dep) REFERENCES Departamento (cod_dep) )
CREATE TABLE Asignatura
(cod_asg CHAR (5) ,
nombre VARCHAR (40) NOT NULL, semestre CHAR (2),
teoría NUMBER,
prac NUMBER,
cod_dep CHAR (5) NOT NULL,
PRIMARY KEY (cod_asg),
FOREING KEY (cod_dep) REFERENCES Departamento (cod_dep) )
CREATE TABLE Docencia
(cod_pro CHAR (5) , cod_asg CHAR (5) ,
gteo NUMBER,
gprac NUMBER, PRIMARY KEY (cod_pro, cod_asg),
FOREING KEY (cod_pro) REFERENCES Profesor (cod_pro), FOREING KEY (cod_asg) REFERENCES Asignatura (cod_asg) )
Esquema lógico
AD1 Algoritmos y estructuras de datos I 1A 3 3 DSIC IP Introducción a la programación 1A 1.5 1.5 DSIC
AD2 Algoritmos y estructuras de datos II 1B 3 3 DSIC --- --- --- --- --- ---Fichero Asignatura AD1 • AD2 • IP • ---Índice cod_asg
Implementación de la tabla Asignatura como un fichero secuencial desordenado con un índice sobre el atributo cod_asg
Esquema físico
El lenguaje para la definición del esquema físico en el modelo relacional no es estándar. Cada SGBD particular ofrece sus alternativas de implementación.
3.2 Independencia de datos.
CREATE VIEW Profesor-DSIC
AS SELECT cod_pro, nombre, teléfono FROM Profesor
Where cod_dep=’DSIC’
CREATE VIEW Asignatura-DSIC
AS SELECT cod_asg, nombre, semestre, teoría, prac FROM Asignatura
Where cod_dep=’DSIC’
CREATE VIEW Docencia-DSIC
AS SELECT D.cod_pro, D.cod_asg, D.gteo, D.gprac FROM Asignatura, A, Docencia D, Profesor P WHERE A.cod_asg = D.cod_asg
AND P.cod_pro = D.cod_pro AND A.cod_dep = 'DSIC’ Esquema externo del DSIC SQL
cod_pro nombre teléfono cod_dep JCC Juan C. Casamayor Ródenas 7796 DSIC RFC Robert Fuster i Capilla 6789 M AT JBD José V. Benlloch Dualde 5760 DISCA M AF M aría Alpuente Frasnedo 3560 DSIC CPG Cristina Pérez Guillot 7439 IDM JTM José M. Torralba M artínez 4590 OEM IGP Ignacio Gil Pechuán 3423 OEM DGT Daniel Gil Tomás 5679 DISCA MCG Matilde Celma Giménez 7756 DSIC Profesor cod_asg nombre semestreteoría praccod_dep
BDA Bases de Datos 2B 3 3 DSIC AD1 Algoritmos y
Estructuras de Datos 1 1A 4 2 DSIC FCO Fundamentos de
computadores 1A 4,5 4,5 DISCA MAD Matemática Discreta 1A 3 3 MAT INT Inglés Técnico 1B 3 3 IDM FFI Fundamentos Físicos
de la Informática 1A 3 3 FIS EC2 Estructuras de Computadores 2 2A 3 3 DISCA Asignatura c o d _ a s g c o d _ p r o g t e o g p r a B D A J C C 2 4 M A D R F C 1 2 F C O D G T 2 2 A D 1 M A F 1 1 I N T C P G 1 0 E C 2 J B D 2 0 B D A M C G 1 3 A D 1 J C C 1 1 F C O J B D 2 2 A D 1 M C G 1 1 Docencia cod_dep nombre director teléfono
DSIC Sistemas Informáticos y
Computación V. Botti 3500 DISCA Ingeniería de Sistemas,
Computadores y Automática A. Crespo 5700 MAT Matemática Aplicada P. Pérez 6600 FIS Física Aplicada J. Linares 5200 IDM Idiomas B. Montero 5300 EIO Estadística e Investigación
Operativa L. Barceló 4900 OEM Org. de Empresas, Economía
Financ. y Contabilidad M. Pérez 6800 Departamento Docencia-DSIC Profesor-DSIC Asignatura-DSIC
3.2 Independencia de datos.
Base de DatosEsquema externo: Vistas (relaciones virtuales)
3.2 Independencia de datos.
SELECTA.semestre, A.cod_asg, P.nombre, D.gteo, D.gprac
FROMAsignatura-DSIC A, Docencia-DSIC D, Profesor-DSIC P
WHEREA.cod_asg = D.cod_asg AND P.cod_pro = D.cod_pro
SELECTA.semestre, A.cod_asg, P.nombre, D.gteo, D.gprac
FROMAsignatura A, Docencia D, Profesor P
WHEREA.cod_asg = D.cod_asg AND P.cod_pro = D.cod_pro AND
A.cod_dep = `DSIC’
ligadura lógica
Consulta en el esquema externo del DSIC
Modificaciones del esquema lógicoque no obligarían a modificar el esquema externo del DSICen un SGBD con independencia lógica:
9ampliar la relación Profesor con mas atributos
9eliminar la relación Departamento
3.2 Independencia de datos.
Modificaciones del esquema lógicoque no obligarían a modificar el esquema externo del DSIC en un SGBD con independencia lógica:
“Si se reestructura el esquema lógico reagrupando los datos en estructuras distintas a las originales, las aplicaciones desarrolladas sobre el esquema externo del DSIC no se verán afectadas siempre que sea posible definir el mismo esquema externo (vistas) a partir del nuevo esquema lógico.Sólo será preciso cambiar la definición de las vistas (correspondencia lógica)”
9
3.1 Sistema de gestión de bases de datos:
componentes y funciones
9
3.2 Independencia de datos
9
3.3 Integridad
9
3.4 Seguridad
9
3.5 Implementación física de bases de
datos relacionales
Sistemas de gestión de bases de datos.
3.3 Integridad.
En un SGBD, los datos deben estar estructuradosde forma que reflejen los objetos, las restricciones y las relaciones existentesen la parcela del mundo real de la cual la BD es una representación; asimismo la BD debe ser sensible a los sucesos del mundo realy debe evolucionar para reflejar los cambios que la ocurrencia de estos sucesos produce en la parcela del mundo representada.
los datos se deben almacenar de acuerdo a las estructuras y restricciones definidas en el esquema de la BD las actualizaciones se deben ejecutar correctamente y mantener permanentemente
integridad
≡
calidad de la información
El SGBD debe disponer de herramientas y técnicas
para:
9comprobar las restricciones de integridad definidas en el esquema de la BD (frente a actualizaciones del usuario). (1)
9controlar la correcta ejecución de las
actualizaciones (en un entorno concurrente). (2)
9recuperar (o reconstruir) la BD en caso de que se pierda la integridad por algún motivo. (3)
3.3 Integridad.
Cuentas 123 1000 555 2000 Nro. Saldo Cuentas 123 800 555 2000 Nro. Saldo Tiempo P1 P2 t1 leer (123, saldo) t2 leer (123, saldo) t3 saldo ← saldo -100 t4 saldo ← saldo -200 P1 y P2Ejemplo:
Anomalías provocadas por el acceso concurrente (no controlado) a los datos.3.3 Integridad.
Cuentas Copia de seguridad (12-12-2006) 13-12-2006: Actualización de cuentastransacción nº 51: ¡fallo del sistema!
Procedimiento de recuperación:
• sustituir el fichero de Cuentas por su copia de seguridad
Efecto negativo:
• se han perdido las actualizaciones de 50 transacciones
Ejemplo:
Pérdida de actualizaciones por deficientes técnicas de recuperación de datos.3.3 Integridad.
¿cómo se actualiza una
base de datos?
La integridad de la base de datos se puede perder :
•al ser actualizada (sin los adecuados mecanismos de control) (1) (2)
•por fallos del sistema (caídas del sistema, averías, catástrofes, ...) (3)
Secuencia de operaciones de acceso a la base de datos (consulta o actualización) que constituyen una unidad lógica de ejecución
TRANSACCIÓN
Las operaciones de acceso a una BD se
organizan en transacciones
3.3 Integridad.
Empleado(dni: dom_dni, nombre: dom_nom, dirección: dom_dir, dpto: dom_dpto) CP: {dni} VNN={dpto}
CAj: {dpto} →Departamento f(dpto)=código
Departamento(código: dom_dpto, nombre: dom_nom,
ubicación: dom_ub) CP: {código}
R1:"∀Dx: Departamento (∃Ex: Empleado (Dx.código = Ex.dpto) )
Actualización de la BD:
“Inserción de un nuevo departamento <d2,“Personal”, “Planta 3ª”> y asignación al mismo del empleado de dni 20456 (ya existente en la base de datos)”
1) Inserción en Departamento: <d2, “Personal”, “Planta 3ª”>
2) Modificación en Empleado:modificación del atributo dpto del empleado con dni 20456
1) Modificación en Empleado:modificación del atributo dpto del empleado con dni 20456
2) Inserción en Departamento: <d2, “Personal”, “Planta 3ª”> ERROR: la restricción R1 no se cumple
ERROR: la restricción de CAj. no se cumple
3.3 Integridad.
¡ necesidad del concepto de transacción !
INICIO T1
INSERT INTO Departamento VALUES (d2, “Personal”, “Planta 3ª”) UPDATE Empleado SET dpto=d2 WHERE dni=20456
FIN T1
3.3 Integridad.
9las restricciones se comprueban al final de la transacción 9la transacción es rechazada si alguna restricción se viola
Operaciones de acceso a datos en una transacción :
– leer(X):
1. buscar la dirección 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.
- escribir(X):
1. buscar la dirección 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 posición adecuada en el buffer
4. copiar el bloque actualizado del buffer al disco.
3.3 Integridad.
Operaciones de definición de una transacción:
• principio: el usuario indica al SGBD el comienzo de la transacción
• fin (confirmación parcial): el usuario indica al SGBD que se han terminado todas las operaciones de la transacción. • anulación: el usuario o el SGBD anulan la transacción que
se está ejecutando.
• confirmación: El SGBD confirma definitivamente una transacción que ha finalizado con confirmación por parte del usuario. En ese momento se asegura de que los cambios son grabados sobre la base de datos.
3.3 Integridad.
activa confirmada fallada terminada confirmada parcialmente fin principio anulación anulación confirmación usuario SGBD usuario SGBD SGBD usuariooperaciones del usuario o del SGBD estados de la transacción
sujeto de la operación
3.3 Integridad.
Propiedades que deben cumplir las
transacciones:
•atomicidad:una transacción es una unidad atómica de ejecución (o se ejecutan todas sus operaciones o ninguna). •consistencia: la transacción debe conducir la BD de un estado consistente a otro estado consistente (se cumplen todas las restricciones de integridad).
•aislamiento: una transacción debe procesarse como si se ejecutase de forma aislada (en solitario).
•persistencia: cuando una transacción es confirmada sus cambios deben ser grabados en la BD y no deben perderse debido a fallos de otras transacciones o del sistema.
integridad
≡
calidad de la información
El SGBD debe disponer de herramientas y técnicas
para:
9comprobar las restricciones de integridad definidas en el esquema de la BD (frente a actualizaciones del usuario). (1)
9controlar la correcta ejecución de las
actualizaciones (en un entorno concurrente). (2)
9recuperar (o reconstruir) la BD en caso de que se pierda la integridad por algún motivo. (3)
3.3 Integridad.
9las restricciones se definen en el esquema lógico y el SGBD debe velar por su cumplimiento.
9la comprobación se realiza cuando la base de datos cambia (se ejecuta una transacción).
9las restricciones que no se incluyen en el esquema de la base de datos deben ser comprobadas por los programas de las aplicaciones.
Integridad semántica.
(1)
Restricción de3.3 Integridad.
• Tipos de restricciones de integridad:
–estáticas:se deben cumplir en cada estado de la base de datos.
“la edad debe ser positiva”
– de transición:se deben cumplir en dos estados consecutivos.
“la edad no debe decrecer”
3.3 Integridad.
• Restricciones en el SQL:
– restricciones estáticas: ◊sobre dominios ◊sobre atributos ◊sobre relaciones ◊sobre la base de datos- se puede especificar cuando se comprueba la restricción:
◊después de cada operación individual (INMEDIATLY)
◊al final de la transacción (DEFERRED).
- se pueden especificar acciones restauradoras (integridad referencial).
CREATE TABLE Departamento
(cod_dep CHAR (5),
nombre VARCHAR(40) NOT NULL, director CHAR (25),
teléfono CHAR (15),
PRIMARY KEY (cod_dep) )
CREATE TABLE Profesor
(cod_pro CHAR (5) ,
nombre VARCHAR (40) NOT NULL, teléfono CHAR (15),
categoría CHAR(3) NOT NULL CHECK categoría IN (‘TEU’, ‘TU’, ‘CEU’, ‘CU’),
cod_dep CHAR (5) NOT NULL,
PRIMARY KEY (cod_pro),
FOREING KEY (cod_dep) REFERENCES Departamento (cod_dep) )
CREATE TABLE Asignatura
(cod_asg CHAR (5) ,
nombre VARCHAR (40) NOT NULL, semestre CHAR (2),
teoría NUMBER,
prac NUMBER,
cod_dep CHAR (5) NOT NULL,
PRIMARY KEY (cod_asg),
FOREING KEY (cod_dep) REFERENCES Departamento (cod_dep) )
CREATE TABLE Docencia
(cod_pro CHAR (5) , cod_asg CHAR (5) ,
gteo NUMBER,
gprac NUMBER, PRIMARY KEY (cod_pro, cod_asg),
FOREING KEY (cod_pro) REFERENCES Profesor (cod_pro), FOREING KEY (cod_asg) REFERENCES Asignatura (cod_asg) )
Esquema lógico
3.3 Integridad.
CREATE TABLE Asignatura
(cod_asg CHAR (5) ,
nombre VARCHAR (40) NOT NULL, semestre CHAR (2),
teoría NUMBER CHECK (teoría>0), prac NUMBER CHECK (prac>0),
cod_dep CHAR (5) NOT NULL, PRIMARY KEY (cod_asg),
FOREING KEY (cod_dep) REFERENCES Departamento (cod_dep) )
CREATE DOMAIN d_cr AS INTEGER CHECK (value>0)
d_cr d_cr
3.3 Integridad.
CREATE TABLE Asignatura
(cod_asg CHAR (5) ,
nombre VARCHAR (40) NOT NULL, semestre CHAR (2),
teoría d_cr prac d_cr
cod_dep CHAR (5) NOT NULL,
PRIMARY KEY (cod_asg),
FOREING KEY (cod_dep) REFERENCES Departamento (cod_dep) )
restricciones sobre relaciones
restricciones sobre atributos
3.3 Integridad.
directrices de mantenimiento de la integridad referencial
CREATE TABLE Docencia
(cod_pro CHAR (5) , cod_asg CHAR (5) , gteo NUMBER,
gprac NUMBER,
PRIMARY KEY (cod_pro, cod_asg),
FOREING KEY (cod_pro) REFERENCES Profesor (cod_pro)
ON UPDATE CASCADE ON DELETE CASCADE,
FOREING KEY (cod_asg) REFERENCES Asignatura (cod_asg)
Restricción de integridad general:
“Las asignaturas adscritas a un departamento sólo pueden ser impartidas por profesores del departamento”
CREATE ASSERTION docencia CHECK (NOT EXISTS (SELECT *
FROM Asignatura A, Docencia D, Profesor P WHERE A.cod_asg=D.cod_asg AND P.cod_pro=D.cod_pro AND P.cod_dep<>A.cod_dep))
3.3 Integridad.
integridad
≡
calidad de la información
El SGBD debe disponer de herramientas y técnicas
para:
9comprobar las restricciones de integridad definidas en el esquema de la BD (frente a actualizaciones del usuario). (1)
9controlar la correcta ejecución de las
actualizaciones (en un entorno concurrente). (2)
9recuperar (o reconstruir) la BD en caso de que se pierda la integridad por algún motivo. (3)
3.3 Integridad.
Control de accesos concurrentes.
(2)
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
–lectura de datos actualizados que no han
sido confirmados.
3.3 Integridad.
Cuentas 123 1000 555 2000 Nro. Saldo Cuentas 123 800 555 2000 Nro. Saldo Tiempo P1 P2 t1 R← leer (123) t2 R← leer (123) t3 R.saldo ← R.saldo -100 t4 R.saldo ← R.saldo -200 t5 escribir (123) t6 escribir (123) P1 y P2Pérdida de actualizaciones:
5/12/2008 Bases de datos 59
Obtención de información incoherente:
P1 P2 tiempo R1←leer(C1) R2←leer(C2) ... R50←leer(C50) R100 ←leer(C100) Cuentas corrientes
P1: Obtención del total de saldos
P2: Transferencia de la cuenta 100 a la 1
R51←leer(C51)
...
100000
R100←leer(C100)
Error: total incorrecto
100000+X 200000 200000-X C1 C100 R100. saldo ←R100. saldo-X escribir(C100) R1. saldo ←R1. saldo+X escribir(C1) R1 ←leer(C1)
Lectura de datos actualizados sin confirmar:
P1: Cambia el campo A del registro RP2: Lee el campo A del registro R y lo usa
a
0R
R←leer(c3) R. A ←a1 escribir(R) ... R←leer(c3) utiliza el valor a1 anulación ... P1 P2a
13.3 Integridad.
A C C33.3 Integridad.
Control de accesos concurrentes. (2)
Reserva de ocurrencias de datos
3.3 Integridad.
integridad
≡
calidad de la información
El SGBD debe disponer de herramientas y técnicas
para:
9comprobar las restricciones de integridad definidas en el esquema de la BD (frente a actualizaciones del usuario). (1)
9controlar la correcta ejecución de las
actualizaciones (en un entorno concurrente). (2)
9recuperar (o reconstruir) la BD en caso de que se pierda la integridad por algún motivo. (3)
Reconstrucción de la base de datos. (3)
atomicidad y persistencia de las transacciones los cambios producidos por una transacción confirmada
deben ser grabadossobre la base de datos y una vez grabados no se deben perder
errores del sistema con pérdida de memoria principal
errores del sistema de almacenamiento secundario con pérdida de memoria secundaria causas de error
3.3 Integridad.
Reconstrucción de la base de datos. (3)
atomicidad y persistencia de las transacciones los cambios producidos por una transacción falladaque
ya han sido grabadossobre la base de datos deben ser deshechos
causas locales a la
transacción interrumpan su ejecuciónerrores del sistema que
3.3 Integridad.
Herramientas de reconstrucción
9
Fichero de diario.
Entradas (registros) del fichero de diario:
[inicio, T]
[escribir, T, X, valor_antes, valor_después ] [leer, T, X ]
[confirmar, T ] [anular,T ]
9
Copias de seguridad de la base de datos.
3.3 Integridad.
Recuperación de transacciones confirmadasfrente a fallos del sistema con pérdida de memoria principal.
Una transacción confirmada puede no haber sido grabada en la BD, debido al desajuste temporal entre el instante de la confirmación y el instante en que los buffers con los cambios son grabados en disco.
Recuperación de transacciones confirmadasfrente a fallos del sistema con pérdida de memoria principal.
Técnica de reconstrucción:
Transacciones T confirmadas en el fichero de diario: ([inicio,T ]...[confirmar, T ])
debe volver a ejecutarse
(valor_después)
Herramienta de reconstrucción:
fichero de diario3.3 Integridad.
Recuperación de transacciones falladas o interrumpidas. (causas locales a la transacción o interrupciones del sistema).
Los cambios producidos por una transacción fallada o interrumpida pueden haber sido grabados sobre la base de datos.
3.3 Integridad.
Recuperación de transacciones falladas o interrumpidas. (causas locales a la transacción o interrupciones del sistema).
Transacciones T anuladasen el fichero de diario:
([inicio,T ]...[anular, T ])
deben deshacerse sus efectos (valor_antes)
Herramienta de reconstrucción:
fichero de diarioTransacciones T interrumpidasen el fichero de diario:
([inicio,T ]...)
deben deshacerse sus efectos (valor_antes)
Técnica de reconstrucción:
3.3 Integridad.
¡ la reconstrucción a partir del fichero de diario (completo) puede
ser muy costosa e innecesaria !
grabación de puntos de verificación (checkpoint)
9suspender temporalmente la ejecución de transacciones
9grabar en el diario el punto de verificación
9forzar la grabación de todas las actualizaciones de las transacciones confirmadas, copiando los correspondientes bloques de los buffersde memoria al disco
9reanudar la ejecución de las transacciones que han sido suspendidas.
Ejemplo:
T1 T2 T3 punto de verificación T4 T5fallo del sistema
Rehacer Rehacer Deshacer Deshacer tiempo (confirmada) (confirmada) (confirmada) (interrumpida) (interrumpida)
3.3 Integridad.
Recuperación de transacciones confirmadas frente a fallos del sistema de almacenamiento secundario
Herramienta de reconstrucción:
9copias de seguridad de la base de datos 9fichero de diario
Cargar la base de datos a partir de la copia de seguridad y a continuación rehacer todas las transacciones que aparecen confirmadas en el diario desde la fecha de la copia.
9
3.1 Sistema de gestión de bases de datos:
componentes y funciones
9
3.2 Independencia de datos
9
3.3 Integridad
9
3.4 Seguridad
9
3.5 Implementación física de bases de
datos relacionales
Sistemas de gestión de bases de datos.
3.4 Seguridad.
seguridad
≡
privacidad de la información
a la información sólo pueden acceder las personas autorizadas y de la forma autorizada
9Identificación del usuario:
• claves de acceso
9Determinación de accesos permitidos
• lista de autorizaciones de cada usuario • definición de niveles de autorización 9Gestión de autorizaciones transferibles:
• conocimiento de las autorizaciones de accesos transferibles • control de la revocación de las autorizaciones de acceso • revocación de todas las autorizaciones que son resultado de una transferencia de la misma
9
3.1 Sistema de gestión de bases de datos:
componentes y funciones
9
3.2 Independencia de datos
9
3.3 Integridad
9
3.4 Seguridad
9
3.5 Implementación física de BD relacionales
3.5 Implementación física de bases de datos relacionales.
Motivación:
Aunque la arquitectura de niveles de un
SGBD permite manipular una base de datos
sin conocer los detalles de implementación,
estos últimos pueden ser determinantes
para el buen funcionamiento de un sistema
de bases de datos.
3.5 Implementación física de bases de datos relacionales.
SELECT dorsal, nombre FROM Ciclista Esquemas externos Esquema lógico (especificación) Esquema físico (implementación) Arquitectura de nivelesORACLE
SO
Implementación de la BD en discoDisco1
Ciclista (dorsal,... ) Equipo (nomeq,... ) Etapa (netapa,.... ) Maillot (codigo,... ) ... Ciclista INDEX (dorsal) DATAFILE Disco1:F1 Equipo HEAP ... F13.5 Implementación física de bases de datos relacionales.
Técnicas de bases de datos:
9gran volumen de datos
9persistencia en el tiempo
almacenamiento de la BD en memoria secundaria (discos)
tecnología actual
elegir una implementación de las relaciones que reduzca el
número de accesos a disco
acceso a memoria secundaria mas lento que a memoria principal
9características de las estructuras de datos para memoria secundaria (ficheros)
¿Estructuras de datos
utilizadas para organizar los
datos en memoria secundaria?
tipo de datos “fichero”
fichero ≡ colección de registros Ficheros desordenados (monticulo): los registros se guardan sin orden
Ficheros ordenados: los registros se guardan en orden del valor en uno o más campos.
Ficheros dispersos: organización de acceso directo.
9acceso a la localización exacta de un registro por el valor de un campo (o campos), basada en el uso de funciones de dispersión (hashing).
3.5 Implementación física de bases de datos relacionales.
Fichero desordenado (monticulo)
9Ventajas:
•La inserciónde nuevos registros en un fichero de este tipo es
muy eficiente: se copia el bloque del fichero en el buffer, se añade el registro nuevo y se reescribe el bloque en el disco. 9Descentajas:
•La búsquedade un registro basada en alguna condición
requiere un barrido secuencialdel fichero hasta que encuentre el registro, o hasta el final, si no está dicho registro en el disco.
•El borradode un registro exige su búsqueda.
3.5 Implementación física de bases de datos relacionales.
Fichero ordenado
9Ventajas:
•La lecturade los registros de los registros del fichero en orden del campo de ordenación es extremadamente eficiente.
•La búsqueda del registro siguiente al actual en orden del campo de ordenación no requiere accesos adicionales a un bloque. •El uso de una condición de búsqueda basada en el campo de ordenación permite un acceso rápido a la información. 9Descentajas:
•La ordenaciónno proporciona ninguna ventaja para el acceso aleatorio u ordenado de los registros basados en campos distintos al campo de ordenación.
•La inserción y el borradode registros son operaciones
Fichero disperso (hashing):
Una función p llamada función de dispersión o de
aleatorizaciónse aplica al valor de un campo(s) del registro (campo de dispersión) K y devuelve la dirección del
“bloque” de disco en el que se almacena el registro. Dominio del campo de dispersión K: D
Espacio de direcciones (cubos): Un cubo es o un bloque del disco o un grupo de bloques contiguos
p : D →0..N-1 (N cubos) Cubos principales cubo 0 360 450 210 puntero cubo 1 322 52 211 nulo cubo 2 362 59 311 puntero 59 360
360 MOD 3
59 MOD 3
Ventajas(operaciones eficientes):
9búsqueda de un registro por el campo de dispersión. Inconvenientes(operaciones costosas):
9lectura secuencial de los registros por el valor del campo de dispersión.
9colisiones: al valor del campo de dispersión de un registro nuevo le corresponde una dirección llena
9crecimiento del fichero.
3.5 Implementación física de bases de datos relacionales.
Fichero disperso (hashing):
Índice:estructura de datos que permite el acceso a los registros de un fichero por el valor de un campo (campo de indización)
Elementos de un índice (entradas del índice): valor del campo de
indización de un registro + “dirección”del registro Los índices permiten el acceso directo y el acceso ordenado a los registros del fichero por el campo de indización.
Índices:
estructuras auxiliares de acceso a los registros deun fichero.
Índice
Fichero de datos
123
123 •
Fichero de datos con una
organización secuencial o dispersa. Estructura auxiliar para
acceder directamente a los registros del fichero.
•
Indice:
Permite imponer un orden en un fichero sin
necesidad de ordenarlo realmente, lo que hace
que los problemas como la adición de registros
al fichero sean mucho menos costosos que con
un fichero ordenado
• Opciones proporcionadas por los SGBD para la
implementación de BD:
– Distintos tipos de organizaciones básicas: secuencial, dispersa.
– Distintos tipos de dispersión: funciones de dispersión, tratamiento del desborde, ...
– Varios tipos de indización: tipos de índices. – Agrupación de tablas relacionadas
– Enlaces a través de punteros de registros relacionados
3.5 Implementación física de bases de datos relacionales.
3.5 Implementación física de bases de datos relacionales.
relación del
esquema relacional
organización de
fichero
+
[índices]
• Factores a tener en cuenta en la implementación
de BD:
– Espacio físico utilizados por los ficheros y sus estructuras de acceso (índices).
– Tiempo de respuesta esperado.
– Tipo y frecuencia de ejecución de las operaciones de manipulación del fichero.
Implementación estándar:
– Utilizar un fichero secuencial desordenado para almacenar las tuplas de la relación.
– Crear tantos índices como sean necesarios. – Si la información va a sufrir muchas inserciones y
borrados hay que intentar minimizar el número de índices. – El fichero que tiene un índice para cada uno de sus
campos se llama fichero invertido completamente
– Si la recuperación por orden de un campo es muy frecuente, puede plantearse usar una organización secuencial ordenada para el fichero.
– Si no es frecuente la recuperación ordenada se puede usar una organización dispersa para el fichero.
Consultas sobre más de una relación:
Agrupación
– Dos relaciones tiene sendos atributos que
habitualmente se usan para su concatenación.
– Es deseable guardar físicamente en el mismo
bloque las tuplas relacionadas de ambas
relaciones
.3.5 Implementación física de bases de datos relacionales.
Agrupación
R1 (a1 : dom1, a2 : dom2) CP: {a1}
R2 (b1 : dom3, b2 : dom4, b3 : dom1) CP: {b1}
CAJ: {b3} Æ R1 (a1)
a1 a2 b1 b2 b3
12 Doce 9A ASDF 84 51 Cincuenta y uno 0B QWER 51 84 Ochenta y cuatro 1L ZXCV 12 2X QAZ 12 3P POIU 84 4K MNBV 51 5T TTTT 51 6M MMM 12
Agrupación
• La concatenación de R1 y R2 por a1 y b3 es
habitual
• Guardar las tuplas de R1 junto con las de R2
que tengan en la clave ajena el mismo valor que
la clave primaria de R1 (
clave de la agrupación
)
• Cada valor distinto de la clave de agrupación en
un bloque diferente
BLOQUE 1 a1 a2 12 Doce b1 b2 1L ZXCV 2X QAZ 6M MMM BLOQUE 2 a1 a2 51 Cincuenta y uno b1 b2 0B QWER 4K MNBV 5T TTTT BLOQUE 3 a1 a2 84 Ochenta y cuatro b1 b2Ventajas de la agrupación:
• Se reduce el tiempo de acceso en las concatenaciones, ya que el número de bloques accedido es menor.
• La clave de agrupación sólo se almacena una vez.
Desventajas de la agrupación
• Obliga a mantener juntas las tuplas con el mismo valor en la clave de agrupación.
• Inserciones y modificaciones de la clave de agrupación son costosas.