• No se han encontrado resultados

Tema III: Sistemas de Gestión de Bases de Datos. Sistemas de gestión de bases de datos.

N/A
N/A
Protected

Academic year: 2021

Share "Tema III: Sistemas de Gestión de Bases de Datos. Sistemas de gestión de bases de datos."

Copied!
49
0
0

Texto completo

(1)

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:

(2)

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.

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

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, árbol

en red

red

registro, lista (set)

relacionales

relacional

registro (tupla), relación

OO

OO

constructores de tipos

(5)

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

Componentes de un SGBD

9lenguaje de definición 9lenguaje de manipulación

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

(6)

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.

(7)

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.

(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

)

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.

(9)

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.

(10)

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

(11)

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 SO

SGBD

3 área SGBD datos 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ísico

ligadura

Esquema lógico Nivel lógico Esquema físico Nivel físico Esquema

externo 1 Esquema externo 2 Esquema externo 3

Nivel externo

Ligadura física Ligadura

(12)

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.

(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

(14)

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

(15)

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 Datos

Esquema 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

(16)

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

(17)

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

(18)

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

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.

9las restricciones se comprueban al final de la transacción 9la 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.

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 parcialmente fin principio anulación anulació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)

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 de

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

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

(27)

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)

(28)

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)

(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 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 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 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 R

P2: Lee el campo A del registro R y lo usa

a

0

R

R←leer(c3) R. A ←a1 escribir(R) ... R←leer(c3) utiliza el valor a1 anulación ... P1 P2

a

1

3.3 Integridad.

A C 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:

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)

(32)

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

(33)

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.

(34)

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 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 anuladasen el fichero de diario:

([inicio,T ]...[anular, T ])

deben deshacerse sus efectos (valor_antes)

Herramienta de reconstrucción:

fichero de diario

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

(36)

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:

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.

(37)

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

(38)

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.

(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

SO

Implementació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:

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)

(40)

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

(41)

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

(42)

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

(43)

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 de

un fichero.

(44)

Í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

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

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.

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

(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

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 b2

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

Referencias

Documento similar

Un Sistema de Gestión de Bases de Datos ( SGBD ) es el conjunto de programas que permiten definir, manipular y utilizar la información que contienen las bases de datos,

CR1.5 En el caso de bases de datos distribuidas se establecen los mecanismos necesarios para mantener la sincronizacin entre ellas, garantizando la integridad.. CR1.6 En el caso

El diseño conceptual de una base de datos es elaborado por el Sistema Gestor de Bases de Datos (SGBD) elegido por el usuario8. Verdadero /

En los sistemas de gestión de bases de datos aparece la figura del “administrador” de la base de datos, usuario especial, propietario del sistema, que decide quién conecta a la

Este curso de Postgrado en Administración de Bases de Datos: SGBD, SQL le prepara para adquirir los conocimientos necesarios para la administración de bases de datos..

 No obstante, muchas aplicaciones informáticas tienen objetivos diferentes al de las bases de datos, y continúan teniendo mucho sentido los sistemas basados en ficheros.. BD

a) Instalación de un sistema gestor de bases de datos (SGBD). b) Creacion de un workspace o espacio de trabajo para la base de datos que se pretende crear, dentro del SGBD. c)

Este curso de Postgrado en Administración de Bases de Datos: SGBD, SQL le prepara para adquirir los conocimientos necesarios para la administración de bases de datos..