Tema III - dsic.upv.essabrahao/ficheros/temaIII.pdf · control de la integridad (calidad) y...

49
Tema III: Sistemas de Gestión de Bases de Datos. Sistemas de gestión de bases de datos. 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. conocer básicamente la implementación física de una base de datos relacional. Objetivos:

Transcript of Tema III - dsic.upv.essabrahao/ficheros/temaIII.pdf · control de la integridad (calidad) y...

1

Tema III:

Sistemas de Gestión de Bases de Datos.

Sistemas de gestión de bases de datos.

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.conocer básicamente la implementación física de una base de datos relacional.

Objetivos:

2

3.1 Sistema de gestión de bases de datos: componentes y funciones.3.2 Independencia de datos.3.3 Integridad.3.4 Seguridad.3.5 Implementación física de bases de datos relacionales.

Sistemas de gestión de bases de datos.

Bibliografía:

“Bases de datos relacionales” .M. Celma, J.C. Casamayor, L. Mota,Pearson Educación, S.A., Madrid 2003ISBN: 84-205-3850-7

“Sistemas de Bases de Datos”. (Parte V)Elmasri & Navathe. Addison Wesley. 1997

Sistemas de gestión de bases de datos.

3

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)

4

3.1 Sistema de gestión de bases de datos.

herramienta (software) para la gestión (creación y manipulación) de bases de datos.

SGBD:

SGBD

modelo de datos

estructuras de datos

operadores asociados

Familias de SGBD:

3.1 Sistema de gestión de bases de datos.

jerárquicos jerárquico registro, árbol

en red red registro, lista (set)

relacionales relacional registro (tupla), relación

OO OO constructores de tipos

SGBD modelo estructuras

5

3.1 Sistema de gestión de bases de datos.

Funciones de un SGBDdefinición de datos

manipulación de datos (consulta y actualización)

gestión y administración

Componentes de un SGBDlenguaje de definición

lenguaje de manipulación

herramientas 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?

3.1 Sistema de gestión de bases de datos.

6

dar servicio a distintos usuarios

definición de vistas parciales de los datos para distintos usuarios

accesibilidad simultánea para distintos usuarios

soporte del SI de la organización

integración de la información de la organización

persistencia de los datos

3.1 Sistema de gestión de bases de datos.

abstracción de datos

integridad de los datos

seguridad de los datos

descripción unificada de los datos e independiente de las aplicaciones

independencia de las aplicaciones respecto a la representación física (implementación) de los datos

asegurar la calidad de la información almacenada.

asegurar la privacidad de la información almacenada.

3.1 Sistema de gestión de bases de datos.

7

3.1 Sistema de gestión de bases de datos: componentes y funciones3.2 Independencia de datos3.3 Integridad3.4 Seguridad3.5 Implementación física de bases de datos relacionales

Sistemas de gestión de bases de datos.

abstracción de datos

descripción unificada de los datos e independiente de las aplicaciones

independencia 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.

8

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)

3.2 Independencia de datos.

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 a partir de las estructuras del esquema lógico).A

rqui

tect

ura

de n

ivel

es d

el S

GBD

3.2 Independencia de datos.

9

Esquema lógico

Nivel lógico

Esquema físico

Nivel físico

Esquema externo 1

Esquema externo 3

Esquema externo 2Nivel externo

3.2 Independencia de datos.

correspondencia física

correspondencia lógica

Correspondencia: definición de cada elemento de un esquema en términos de elementos del esquema inmediatamente inferior

3.2 Independencia de datos.

Esquema lógico

Nivel lógico

Esquema externo 1

Esquema externo 3

Esquema externo 2Nivel 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.

10

3.2 Independencia de datos.

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:

permitir la definición de los distintos esquemas de la BD

establecer las correspondencias entre los esquemas: correspondencia lógica y correspondencia física

aislar los esquemas de forma que los cambios en un esquema no afecten a los esquemas de nivel superior: independencia lógica e independencia física.

11

Aplicación 1

Esquema externo1

Esquema lógico

Esquema físico

Administrador de E/S del SOBD

3.2 Independencia de datos.

2.1

2.2

2.3

1

4

Administrador de ficheros del SOSGBD 3

área SGBDdatos

registro

buffers

bloque

operación de E/S

5

6

7

área 1

consulta sobre las estructuras 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ísicoligadura

Esquema lógico

Nivel lógico

Esquema físico

Nivel físico

Esquema externo 1

Esquema externo 3

Esquema externo 2Nivel externo

Ligadura física

Ligadura lógica

12

3.2 Independencia de datos.transformación del esquema externo al esquema físicoligadura

La ligadura puede tener lugar en:en la compilación de los programas de acceso

en el montaje para ejecutar el módulo ejecutable del programa

al iniciarse la ejecución de un programa

en cada acceso a la BD

cuando se produce la ligadura se pierde la independencia de datos

transformación del esquema externo al esquema físicoligadura

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.

13

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

SQL

14

3.2 Independencia de datos.

AD1 Algoritmos y estructurasde datos I

1A 3 3 DSIC

IP Introducción a laprogramación

1A 1.5 1.5 DSIC

AD2 Algoritmos y estructurasde 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éfonoFROM ProfesorWhere cod_dep=’DSIC’

CREATE VIEW Asignatura-DSICAS SELECT cod_asg, nombre, semestre, teoría, prac

FROM AsignaturaWhere cod_dep=’DSIC’

CREATE VIEW Docencia-DSICAS SELECT D.cod_pro, D.cod_asg, D.gteo, D.gpracFROM Asignatura, A, Docencia D, Profesor PWHERE A.cod_asg = D.cod_asg

AND P.cod_pro = D.cod_pro

ANDA.cod_dep = 'DSIC’

Esquema externo del DSIC

SQL

15

cod_pro nombre teléfono cod_dep

JCC Juan C. Casamayor Ródenas 7796 DSIC

RFC Robert Fuster i Capilla 6789 MAT

JBD José V. Benlloch Dualde 5760 DISCA

MAF María Alpuente Frasnedo 3560 DSIC

CPG Cristina Pérez Guillot 7439 IDM

JTM José M. Torralba Martínez 4590 OEM

IGP Ignacio Gil Pechuán 3423 OEM

DGT Daniel Gil Tomás 5679 DISCA

MCG Matilde Celma Giménez 7756 DSIC

Profesorcod_asg nombre semestre teoría prac cod_dep

BDA Bases de Datos 2B 3 3 DSIC

AD1 Algoritmos yEstructuras de Datos 1

1A 4 2 DSIC

FCO Fundamentos decomputadores

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ísicosde la Informática

1A 3 3 FIS

EC2 Estructuras deComputadores 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

IN 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 yComputació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ónOperativa

L. Barceló 4900

OEM Org. de Empresas, EconomíaFinanc. y Contabilidad

M. Pérez 6800

Departamento

Docencia-DSICProfesor-DSICAsignatura-DSIC

3.2 Independencia de datos.

Base de Datos

Esquema externo: Vistas (relaciones virtuales)

3.2 Independencia de datos.

SELECT A.semestre, A.cod_asg, P.nombre, D.gteo, D.gpracFROM Asignatura-DSIC A, Docencia-DSIC D, Profesor-DSIC P WHERE A.cod_asg = D.cod_asg AND P.cod_pro = D.cod_pro

SELECT A.semestre, A.cod_asg, P.nombre, D.gteo, D.gpracFROM Asignatura A, Docencia D, Profesor P WHERE A.cod_asg = D.cod_asg AND P.cod_pro = D.cod_pro

ANDA.cod_dep = `DSIC’

ligadura lógica

Consulta en el esquema externo del DSIC

16

3.2 Independencia de datos.

Modificaciones del esquema lógico que no obligarían a modificar el esquema externo del DSIC en un SGBD con independencia lógica:

ampliar la relación Profesor con mas atributos

eliminar la relación Departamento

3.2 Independencia de datos.

Modificaciones del esquema lógico que 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)”

17

3.1 Sistema de gestión de bases de datos: componentes y funciones3.2 Independencia de datos3.3 Integridad3.4 Seguridad3.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 estructurados de forma que reflejen los objetos, las restricciones y las relaciones existentes en 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 real y 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

18

3.3 Integridad.

integridad ≡ calidad de la información

El SGBD debe disponer de herramientas y técnicas para:

comprobar las restricciones de integridad definidas en el esquema de la BD (frente a actualizaciones del usuario). (1)

controlar la correcta ejecución de las actualizaciones (en un entorno concurrente). (2)

recuperar (o reconstruir) la BD en caso de que se pierda la integridad por algún motivo. (3)

3.3 Integridad.

Cuentas

123 1000555 2000

Nro. Saldo

Cuentas

123 800555 2000

Nro. Saldo

Tiempo P1 P2

t1 leer (123, saldo)

t2 leer (123, saldo)

t3 saldo ← saldo -100

t4 saldo ← saldo -200

t5 escribir (123, saldo)

t6 escribir (123, saldo)

P1 y P2

Ejemplo: Anomalías provocadas por el acceso concurrente (no controlado) a los datos.

19

3.3 Integridad.

Cuentas

Copia de seguridad (12-12-2006)

13-12-2006: Actualización de cuentas

transacció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)

20

3.3 Integridad.

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)”

21

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.

las restricciones se comprueban al final de la transacciónla transacción es rechazada si alguna restricción se viola

22

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.

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.

23

3.3 Integridad.

activa confirmada

fallada terminada

confirmada parcialmentefinprincipio

anulaciónanulación

confirmación

usuario

SGBD

usuario

SGBD

SGBD

usuario

operaciones 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.

24

3.3 Integridad.

integridad ≡ calidad de la información

El SGBD debe disponer de herramientas y técnicas para:

comprobar las restricciones de integridad definidas en el esquema de la BD (frente a actualizaciones del usuario). (1)

controlar la correcta ejecución de las actualizaciones (en un entorno concurrente). (2)

recuperar (o reconstruir) la BD en caso de que se pierda la integridad por algún motivo. (3)

3.3 Integridad.

las restricciones se definen en el esquema lógico y el SGBD debe velar por su cumplimiento.

la comprobación se realiza cuando la base de datos cambia (se ejecuta una transacción).

las 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 de integridad

propiedad del mundo real del cual la BD es una representación.

25

3.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).

26

3. Integridad.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_crd_cr

restricciones de dominio

27

3.3 Integridad.CREATE TABLE Asignatura

(cod_asg CHAR (5) ,nombre VARCHAR (40) NOT NULL,semestre CHAR (2),teoría d_crprac d_crcod_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 CASCADEON DELETE CASCADE,

FOREING KEY (cod_asg) REFERENCES Asignatura (cod_asg)ON UPDATE CASCADE )

28

3.3 Integridad.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:

comprobar las restricciones de integridad definidas en el esquema de la BD (frente a actualizaciones del usuario). (1)

controlar la correcta ejecución de las actualizaciones (en un entorno concurrente). (2)

recuperar (o reconstruir) la BD en caso de que se pierda la integridad por algún motivo. (3)

29

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 1000555 2000

Nro. Saldo

Cuentas

123 800555 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 P2

Pérdida de actualizaciones:

30

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 corrientesP1: 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

200000200000-X

3.3 Integridad.

C1

C100

R100. saldo ← R100. saldo-Xescribir(C100)

R1. saldo ← R1. saldo+Xescribir(C1)

R1 ← leer(C1)

5/12/2008 Bases de datos 60

Lectura de datos actualizados sin confirmar:P1: Cambia el campo A del registro RP2: Lee el campo A del registro R y lo usa

a0R

R← leer(c3)R. A ← a1escribir(R)...

R← leer(c3)utiliza el valor a1

anulación ...

P1 P2

tiempo Error: usa un dato inválido

a1

3.3 Integridad.

AC

C3

31

3.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:

comprobar las restricciones de integridad definidas en el esquema de la BD (frente a actualizaciones del usuario). (1)

controlar la correcta ejecución de las actualizaciones (en un entorno concurrente). (2)

recuperar (o reconstruir) la BD en caso de que se pierda la integridad por algún motivo. (3)

32

3.3 Integridad.Reconstrucción de la base de datos. (3)

atomicidad y persistencia de las transacciones

los cambios producidos por una transacción confirmadadeben ser grabados sobre 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 fallada que ya han sido grabados sobre la base de datos deben ser deshechos

causas locales a la transacción

errores del sistema que interrumpan su ejecución

causas de error

33

3.3 Integridad.

Herramientas de reconstrucción

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 ]

Copias de seguridad de la base de datos.

3.3 Integridad.Recuperación de transacciones confirmadas frente 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.

34

3.3 Integridad.Recuperación de transacciones confirmadas frente 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 diario

3.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.

35

3.3 Integridad.Recuperación de transacciones falladas o interrumpidas.

(causas locales a la transacción o interrupciones del sistema).

Transacciones T anuladas en el fichero de diario:([inicio,T ].................................[anular, T ])

deben deshacerse sus efectos (valor_antes)

Herramienta de reconstrucción: fichero de diario

Transacciones T interrumpidas en 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)

suspender temporalmente la ejecución de transacciones

grabar en el diario el punto de verificación

forzar la grabación de todas las actualizaciones de las transacciones confirmadas, copiando los correspondientes bloques de los buffers de memoria al disco

reanudar la ejecución de las transacciones que han sido suspendidas.

36

3.3 Integridad.Ejemplo:

T1

T2

T3

punto de verificación

T4

T5

fallo 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:copias de seguridad de la base de datos

fichero 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.

Técnica de reconstrucción:

37

3.1 Sistema de gestión de bases de datos: componentes y funciones3.2 Independencia de datos3.3 Integridad3.4 Seguridad3.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óna la información sólo pueden acceder las personas

autorizadas y de la forma autorizada

Identificación del usuario:• claves de acceso

Determinación de accesos permitidos• lista de autorizaciones de cada usuario

• definición de niveles de autorización

Gestió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

38

3.1 Sistema de gestión de bases de datos: componentes y funciones3.2 Independencia de datos3.3 Integridad3.4 Seguridad3.5 Implementación física de BD relacionales

Sistemas de gestión de bases de datos.

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.

independencia de datos

39

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 niveles

ORACLE

SOImplementación de la BD en disco

Disco1

Ciclista (dorsal,... )

Equipo (nomeq,... )

Etapa (netapa,.... )

Maillot (codigo,... )

..............

Ciclista

INDEX (dorsal)

DATAFILE Disco1:F1

Equipo

HEAP

........

F1

3.5 Implementación física de bases de datos relacionales.

Técnicas de bases de datos:gran volumen de datospersistencia 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

características de las estructuras de datos para memoria secundaria (ficheros)

estudio

40

3.5 Implementación física de bases de datos relacionales.

¿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.

acceso 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.

5

41

3.5 Implementación física de bases de datos relacionales.

Fichero desordenado (monticulo)Ventajas:

•La inserción de 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.

Descentajas:•La búsqueda de un registro basada en alguna condición requiere un barrido secuencial del fichero hasta que encuentre el registro, o hasta el final, si no está dicho registro en el disco.

•El borrado de un registro exige su búsqueda.

3.5 Implementación física de bases de datos relacionales.

Fichero ordenadoVentajas:

•La lectura de 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.

Descentajas:•La ordenación no 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 borrado de registros son operaciones lentas.

42

Fichero disperso (hashing):

Una función p llamada función de dispersión o de aleatorización se 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)

3.5 Implementación física de bases de datos relacionales.

Cubos principales

cubo 0 360450210

puntero

cubo 1 32252211

nulo

cubo 2 36259311

puntero

59

360

360 MOD 3

59 MOD 3

Función de dispersión típica: p (K) = K mod N

3.5 Implementación física de bases de datos relacionales.

43

Ventajas (operaciones eficientes):

búsqueda de un registro por el campo de dispersión.

Inconvenientes (operaciones costosas):

lectura secuencial de los registros por el valor del campo de dispersión.

colisiones: al valor del campo de dispersión de un registro nuevo le corresponde una dirección llena

crecimiento 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 de un fichero.

3.5 Implementación física de bases de datos relacionales.

44

ÍndiceFichero de datos

123

123

3.5 Implementación física de bases de datos relacionales.

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

3.5 Implementación física de bases de datos relacionales.

45

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

46

• 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.

3.5 Implementación física de bases de datos relacionales.

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.

3.5 Implementación física de bases de datos relacionales.

47

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ónR1 (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

3.5 Implementación física de bases de datos relacionales.

48

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

3.5 Implementación física de bases de datos relacionales.

BLOQUE 1a1 a2

12 Doce

b1 b2

1L ZXCV

2X QAZ

6M MMM

BLOQUE 2a1 a2

51 Cincuenta y uno

b1 b2

0B QWER

4K MNBV

5T TTTT

BLOQUE 3a1 a2

84 Ochenta y cuatro

b1 b2

9A ASDF

3P POIU

3.5 Implementación física de bases de datos relacionales.

49

Ventajas 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.

3.5 Implementación física de bases de datos relacionales.