concurrencia

75
1 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Transacciones Concurrencia II - Semestre 2007

Upload: frejolano

Post on 23-Dec-2015

2 views

Category:

Documents


0 download

DESCRIPTION

Base de Datos

TRANSCRIPT

1

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke

TransaccionesConcurrencia

II - Semestre 2007

2

Transacciones

Una transacción es una unidad lógica deprocesamiento de la base de datos queincluye una o más operaciones de acceso ala base de datos, que pueden ser deinserción eliminación,modificación orecuperación.

Las transacciones pueden delimitarse consentencias explícitas begin transactionand end transaction

3

Transacción (cont.)

Asumimos que una base de datos esmodelada en forma simplificada como unacolección de elementos de datos connombre (registro, bloque en disco, páginas..)

Las operaciones básicas son: Leer_elemento(X) Escribir_elemento(X)

4

Transacción (cont.)

Leer_elemento(X): Encontrar la dirección del bloque de disco que

contiene el elemento X Copiar ese bloque de disco en un

almacenamiento intermedio (buffer) dentro de lamemoria principal (si es que ese bloque no estáya en algún buffer de la memoria principal).

Copiar el elemento X del almacenamientointermedio en la variable de programa X

5

Transacción (cont.) escribir_elemento(X):

Encontrar la dirección del bloque de disco quecontiene el elemento X

Copiar ese bloque de disco en unalmacenamiento intermedio (buffer) dentro de lamemoria principal (si es que ese bloque no estáya en algún buffer de la memoria principal).

Copiar el elemento X desde la variable delprograma X en el lugar correcto dentro del buffer.

Almacenar el bloque actualizado desde el bufferal disco

6

Concurrencia En sistemas multiusuario, es necesario un

mecanismo para controlar la concurrencia.Se pueden producir inconsistenciasimportantes derivadas del accesoconcurrente (3 problemas)

Las transacciones de los usuarios sepodrían ejecutar de manera concurrente ypodrían acceder y actualizar los mismoselementos de la BD.

7

Control de Concurrencia Problemas:

Actualización perdida Actualización temporal (lectura sucia) Resumen incorrecto

Sistema de BD de reservas en una línea área. T1: transfiere N reservas de un vuelo, cuyo número

de asientos reservados está almacenado en elelemento de la BD llamado X, a otro vuelo, cuyonúmero de asientos reservados está almacenadoen el elemento de la BD llamado Y

8

Actualización Perdida

Esto ocurre cuando las transacciones quetienen acceso a los mismos elementos de laBD tienen sus operaciones intercaladas demodo que hacen incorrecto el valor de algúnelemento.

T1 y T2 se introducen al mismo tiempo y susoperaciones se intercalan.

9

Actualización Perdida T1

Read-item(X); X:=X-N;

Write-item(X); Read-item(Y);

Y:=Y+N; Write-item(Y);

T2

Read-item(X); X:=X+M;

write-item(X);

TIEMPO

El elemento X tiene un valorincorrecto porque la actualizaciónrealizada por T1 se ha perdido(sobreescrito)

10

Actualización perdida El valor final del elemento X es incorrecto, porque

T2 lee el valor de X ANTES de que T1 lo modifiqueen la BD, con lo que se pierde el valor actualizadoque resulta de T1.

Si X=80 al principio, N=5 (T1 transfiere 5 reservasde asientos del vuelo que corresponde a X al vueloque corresponde a Y) y M=4 (T2 reserva 4 asientosen X), el resultado final debería ser X=79, pero esX=84, porque la actualización de T1 que eliminó 5asientos de X se ha perdido.

11

Actualización Temporal Esto ocurre cuando una transacción actualiza un

elemento de la BD y luego la transacción falla poralguna razón. Otra transacción tiene acceso alelemento actualizado antes de que se restaure a suvalor original.

T1 actualiza el elemento X y después falla antes decompletarse, así que el sistema debe cambiar Xotra vez a su valor original.

12

Actualización Temporal

Antes de que pueda hacerlo, la transacciónT2 lee el valor “temporal” de X, que no segrabará permanentemente en la BD debidoal fallo de T1.

El valor que T2 lee de X se llama dato sucio,porque fue creado por una transacción queno se ha completado ni confirmado todavía.

13

Actualización Temporal T1

Read-item(X); X:=X-N; Write-item(X);

Read-item(Y);

T2

Read-item(X); X:=X+M; write-item(X);

TIEMPO

La T1 falla y debe restaurar X a su antiguo valor; mientrastanto T2 ha leído el valor temporal incorrecto de X

T2 se limita areservar M asientosen el primer vuelo (X)al que hacereferencia T1

14

Resumen Incorrecto

Si una transacción está calculando unafunción agregada de resumen sobre variosregistros mientras otras transacciones estánactualizando algunos de ellos, puede serque la función agregada calcule algunosvalores antes de que se actualicen y otrosdespués de actualizarse

15

Resumen Incorrecto T1

Read-item(X); X:=X-N; Write-item(X);

Read-item(Y); Y:=Y+N; Write-item(Y);

T3 Sum:=0; Read-item(A); Sum:=sum+A;

Read-item(X); Sum:=sum+X; Read-item(Y); Sum:=sum+Y;

TIEMPO

T3 lee X después de retarle N y lee Yantes de sumarsele N, así que el resultadoes un resumen incorrecto (discrepancia deN)

16

Manejador de Transacciones

Siempre que se introduce una transacción aun SGBD para ejecutarla, el sistema tieneque asegurarse de que: Todas las operaciones de la transacción se

realicen con éxito y su efecto quede registradopermanentemente en la BD

Que la transacción no tenga efecto alguno sobrela BD ni sobre otra transacción, si es que no secompleta o falla.

17

Tipos de Fallos Caída del Sistema: durante la ejecución de la

transacción se produce un error de hardware,software o red.

Error de transacción o del sistema: algunaoperación de la transacción puede hacer que éstafalle (overflow) o errores de lógica.

Errores locales o condiciones de excepción, porejemplo saldo insuficiente. Esta podríaprogramarse y no ser un tipo de fallo.

18

Tipos de Fallos

Imposición de control de concurrencia:puede suceder que método de control deconcurrencia aborte una transacción odeadlock (varias transacciones “pelean” porel mismo recurso)

Fallo del disco Catastrofes

19

Estado de Transacciones

Una transacción es una unidad atómica detrabajo que se realiza por completo o bienno se efectúa en absoluto.

activaParcialmenteconfirmada confirmada

fallida terminada

beginRead/write

end commit

abort abort

20

Estados de Transacciones El componente del sistema encargado de lograr la atomicidad

se conoce como administrador de transacciones y lasoperaciones COMMIT (comprometer) y ROLLBACK (retroceder)son la clave de su funcionamiento.

La operación COMMIT señala el término exitoso de latransacción: le dice al administrador de transacciones que se hafinalizado con éxito una unidad lógica de trabajo, que la base dedatos está o debería estar de nuevo en un estado consistente yque se pueden comprometer, o hacer permanentes todas lasmodificaciones efectuadas por esa unidad de trabajo

21

Estados de transacciones

La operación ROLLBACK, en cambio,señala el término no exitoso de latransacción: le dice al administrador detransacciones que algo salió mal, que labase de datos podría estar en un estadoinconsistente y que todas las modificacionesefectuadas hasta el momento por la unidadlógica de trabajo deben retroceder oanularse.

22

Características de lastransacciones Atomicidad, en el sentido que hemos especificado

anteriormente: se ejecutan todas las sentencias o ninguna. Preservación de la consistencia: la ejecución de una

transacción deja la BD en un estado consistente. Aislamiento, ya que una transacción no muestra los cambios

que produce hasta que finaliza. Persistencia, ya que una vez que finaliza la transacción con

éxito, sus efectos perduran en la BD. Seriabilidad, en el sentido de que el efecto de ejecutar

transacciones concurrentemente debe ser el mismo que seproduciría al ejecutarlas por separado en un orden secuencialsegún van entrando en el sistema.

23

Planes Un Plan P de n transacciones: T1, T2,…,Tn

es un ordenamiento para las operaciones,en donde para cada Ti, las operaciones deTi en P deben aparecer en el mismo ordenen que ocurren en Ti.

El plan P1 (de slice 9) es: P1:r1(X);r2(X);w1(X);r1(Y);w2(X);w1(Y); r=read, w=write,a:abort, c:commit

24

Planes

Dos operaciones de un plan están enconflicto si satisfacen: Pertenecen a distintas transacciones Tienen acceso al mismo elemento X Al menos una de las operaciones es

write_item(X) Para el P1, r1(X) y w2(X) están en conflicto

25

Seriabilidad de planes Planes en Serie: las operaciones de cada

transacción se ejecutan de maneraconsecutiva, sin intercalación.

Los planes en serie limitan la concurrencia,por ejemplo si una transacción estáesperando que se complete una operaciónde E/S, no se puede conmutar el procesadora otra transacción, desperdiciando la CPU.

26

Seriabilidad de planes

Un plan de n transacciones es serializable sies equivalente a algún plan en serie.

Dos planes son equivalentes por conflicto siel orden de dos operaciones cualquiera enconflicto es el mismo en ambos planes

27

Ejemplo Plan en Serie

T1 Read-item(X); X:=X-N; Write-item(X); Read-item(Y); Y:=Y+N; Write-item(Y);

T2T2

Read-item(X);Read-item(X);X:=X+M;X:=X+M;write-item(X);write-item(X);PLAN A

28

Ejemplo Plan no en Serie

T1 Read-item(X); X:=X-N; Write-item(X);

Read-item(Y); Y:=Y+N; Write-item(Y);

T2T2

Read-item(X);Read-item(X);X:=X+M;X:=X+M;write-item(X);write-item(X);

PLAN B

29

Equivalencia de planes El plan B es equivalente al plan A. El plan B es

serializable Para probar si un plan es serializable por conflictos

se usa un grafo de precedencia o grafo deserialización, que es un grafo dirigido G=(N,A), conN ={T1, T2,…,Tn} y A ={a1,a2,…,an} arcos. Cadaarco ai tiene la forma (Tj ->Tk), con j,k =1,n, dondeTj es el nodo inicial de ai y Tk es el nodo final. Elarco se crea si una de las operaciones de Tjaparece en el plan antes que alguna operación enconflicto de Tk.

30

Equivalencia de Planes

Algoritmo Para cada transacción Ti que participa en el

plan crear un nodo etiquetado Ti en el grafo. Para cada paso en P en el que Tj ejecuta

una orden r(X) después de que Ti ejecuteuna orden w(X), crear un arco (Ti ->Tj) en elgrafo

31

Equivalencia de Planes Algoritmo Para cada paso en P en que Tj ejecuta una

operació w(X) después de que Ti ejecute r(X),crear un arco (Ti ->Tj) en el grafo

Para cada paso en P en que Tj ejecuta w(X)después de que Ti ejecute w(X), crear un arco (Ti ->Tj) en el grafo

El Plan P es serializable si y solo si el grafo notiene ciclos.

32

Equivalencia de Planes

T1 T2X

T1 T2

X

Plan A Plan B

T1 T2X

X

Plan C: No Serializable

T1T1Read-item(X);Read-item(X);X:=X-N;X:=X-N;

Write-item(X);Write-item(X);Read-item(Y);Read-item(Y);

Y:=Y+N;Y:=Y+N;Write-item(Y);Write-item(Y);

T2T2

Read-item(X);Read-item(X);X:=X+M;X:=X+M;

write-item(X);write-item(X);

33

Ejercicio T1:r(X);w(X);r(Y);w(Y); T2:r(Z);r(Y);w(Y);r(X);w(X); T3:r(Y);r(Z);w(Y);w(Z);

T1

r(X)w(X)

r(Y)w(Y)

T2r(Z)r(Y)w(Y)

r(X)

w(X)

T3

r(Y)r(Z)

w(Y)w(Z)

Ver si el Plan es serializable. Construir el grafo de precedencia

T1

T2

T3

y,z

y

x

No es serializable

34

Archivo de log Para conseguir anular y recuperar transacciones, el método

mas usado consiste en utilizar un archivo de diario o log en elque va guardando toda la información necesaria para deshacer(en caso de fracasar) o rehacer ( en caso de recuperar) lastransacciones. Este archivo consta de:

identificador de la transacción hora de modificación identificador del registro afectado tipo de acción valor anterior del registro nuevo valor del registro información adicional

35

Puntos de revisión Un concepto relacionado con los archivos de log es

el CHECKPOINT, que permite manejar en formaeficiente el contenido de los archivos log, ya quepermiten no tener que recorrer todo el archivo delog, ante fallas.

El establecimiento de puntos de revisión implica: grabar físicamente el contenido de los buffers de datos a

la base de datos física grabar físicamente un registro de punto de revisión

especial dentro del archivo de log o bitácora

36

Puntos de revisión

Los puntos marcados como checkpoint,permiten la recuperación de la base dedatos en caliente, es decir, después de lacaída del sistema se obtiene la dirección delregistro de recuperación más reciente y serecorre el archivo de log desde el puntomarcado como checkpoint

37

Puntos de revisión

t1t2

t3

t4

t5

checkpoint falla del sistema

La transacción t1 no se ve afectada por la falla del sistema, ni por el proceso derecuperación, por haberse completado antes del último punto de recuperación.Las transacciones t2 y t4, a pesar de haber terminado no han sido grabadas en labase de datos, ya que éstas serían comprometidas en un checkpoint. Lastransacciones t3 y t5 deberán rehacerse ya que no han concluido.

38

Transacciones en SQL La definición de transacción en SQL es una

unidad lógica de trabajo que garantiza seratómica.

No tiene un sentencia de iniciación explícita,pero si terminan con COMMIT o ROLLBACK

Las característica de las transacciones enSQL se definen con la sentencia SETTRANSACTION, la que especifica modo deacceso, tamaño del área de diagnóstico ynivel de aislamiento.

39

Modo de acceso

Puede especificar un READ ONLY o READWRITE. Un modo READ WRITE permiteque se ejecuten operaciones de insertar,modificar, crear o borrar. EN cambio unmodo READ ONLY sólo sirve para leer.

40

Tamaño del área dediagnóstico

DIAGNOSTICS SIZE n, especifica un valorentero que indica el número de condicionesque se pueden tomar simultáneamente en elárea de diagnóstico. Estas condicionessuministan información al usuario feedbackde errores o excepciones de sentenciasSQL ejecutadas más recientemente.

41

Nivel de aislamiento

ISOLATION LEVEL <aislamiento>, dondeaislamiento puede tomar los sgtes valores: READ UNCOMMITED (lectura no confirmada) READ COMMITED (lectura confirmada) REPEATABLE READ (lectura repetible) SERIALIZABLE

Si se usa algo menos restrictivo queserializable, pueden ocurrir una de lassiguientes violaciones.

42

Violaciones (1)

Lectura sucia: Ocurre cuando uunatransacción usa los valores actualizados porotra transacción aún no confirmada y queaborta.

Lectura no repetible: Se leen dos veces unmismo valor que no es repetible.

Fantasmas: Después de leer datos, se creannuevos que aparecen cuando se realiza unanueva lectura.

43

Violaciones (2)

NoNoNoSerializable

SiNoNoLecturarepetible

SiSiNoLecturaconfirmada

SiSiSiLectura noconfirmada

FantasmasLectura norepetible

Lecturasucia

Nivel deAislamiento

44

Ejemplo de SQLEXEC SQL WHENEVER SQLERROR GOTO UNDO;EXEC SQL SET TRANSACTION

READ WRITEDIAGNOSTICS SIZE 5ISOLATION LEVEL SERIALIZABLE;

EXEC INSERT…;EXEC UPDATE..;EXEC COMMIT;GOTO: THE_END;UNDO: EXEC SQL ROLLBACK;THE_END:…;

45

Técnicas de Control deConcurrencia

Pesimistas: bloqueo y marcas de tiempo Optimistas Técnicas de bloqueo: es una variable

asociada a cada elemento de datos quedescribe el estado de dicho elementorespecto a las posibles operaciones(recuperación o actualización) que sepueden realizar sobre ellos en cadamomento.

46

Técnicas de bloqueos Las transacciones pueden llevar a cabo bloqueos,

impidiendo a otros usuarios la recuperación oactualización de los elementos bloqueados, paraevitar inconsistencias en el acceso concurrente.

Los SGBD tienen bloqueos (por tupla, por tabla)para asegurar la consistencia. Los usuariostambién pueden bloquear explícitamente losobjetos, impidiendo el acceso por parte de otrosusuarios.

47

Técnicas de bloqueos Tipos de bloqueo Exclusivos o binario: cuando una transacción mantiene un

bloqueo de este tipo, ninguna otra transacción puede acceder alobjeto bloqueado, ni bloquearlo, hasta que sea liberado por latransacción que lo había retenido. Se utiliza cuando se quiereactualizar datos.

Bloqueo compartido: cuando una transacción bloquea en estemodo, permite que otras transacciones retengan también elobjeto en bloque compartido, pero no exclusivo. Este tipo seutiliza cuando no se requiere actualizar datos, pero se deseaimpedir cualquier modificación mientras los datos sonconsultados.

48

Reglas de esquema debloqueos (1) Una transacción T debe emitir un bloqueo de

lectura sobre X o bloqueo de escritura sobre Xantes de que realice cualquier operación de lecturade X de T.

Una transacción T debe emitir un bloqueo deescritura sobre X antes de que realice cualquieroperación de escritura de X de T.

Una T debe emitir la operación desbloquear(X) unavez que se hayan completado las operaciones deleer o escribir X.

49

Reglas de esquema debloqueos (2)• Una transacción no emitirá una operación de

bloqueo de lectura sobre X si ya posee un bloqueode lectura compartido o de escritura sobre elelemento X. Esto tiene algunas excepciones.

• Una transacción no emitirá una operación debloqueo de escritira sobre X si ya posee un bloqueode lectura compartido o de escritura sobre elelemento X.

• Una transacción T no emitirá una operación dedesbloquear X a menos que ya posea un bloqueode lectura compartido o escritura para X

50

Reglas de esquema debloqueos (3)• En algunas ocasiones es posible la conversión de

bloqueos, lo que permite que un bloqueo de lecturapase a escritura o vice versa. Para ello, la tabla debloqueos debe incluir identificación detransacciones en el registro de bloqueo y así saberqué transacciones poseen bloqueos.

51

Bloqueo de 2 Fases

El bloqueo por si sólo no garantiza laseriabilidad porque desbloqueos puedenocurrir antes de tiempo.

Para garantizar la seriablidad se usa unprotocolo denominado bloqueo de dosfases.

52

Bloqueo de 2 Fases Se dice que una transacción sigue el protocolo de

dos fases, si TODAS las operaciones de bloqueopreceden la primera operación de desbloqueo.Entonces tenemos una fase de expansión y otra decontracción

Si se permite la conversión en bloqueos, loscambios de promoción (lectura a escritura)occurren en la expansión y los de degradación enla contracción.

El bloqueo de dos fases puede limitar laconcurrencia.

53

Tipos de bloqueos de dosfases (1)

El bloqueo descrito anteriormente es elbásico.

El bloqueo de dos fases conservador oestático requiere que se bloqueen todos loselementos a los que tendrá acceso antes decomenzar a ejecutarse.

El bloqueo estricto es en la práctica el másusado.

54

Bloqueo de 2 Fases estricto Cada transacción debe obtener un bloqueo

compartido antes de leer X y un bloqueo exclusivoantes de escribir X

Una transacción no libera nungún bloqueo exclusivoantes de confirmar o abortar.

Si una T mantiene un bloqueo exclusivo sobre unobjeto O, ninguna otra transaccion puede tener unbloqueo compartido o exclusivo sobre O.

Una transacción no puede pedir bloqueosadicionales sobre O una vez que libera un bloqueode O.

Bloqueo de 2 Fases estricto permite sólo planescuyo grafo de precedencia es acíclico.

55

Tipos de bloqueos de 2 fases

Una variación del bloqueo de dos fasesestricto es el riguroso, en el cual ningúntipo de bloqueo es liberado antes deconfirmar o abortar una transacción.

56

Técnicas de bloqueo El problema de las técnicas de bloqueo es que

puede producirse un interbloqueo (deadlock) obloqueo mortal, dos o más transacciones estánesperando cada una de ellas que la otra liberealgún objeto antes de seguir.

57

Bloqueo Mortal

T1Bloqueo lectura(Y);Lee(Y);

Bloqueo_escritura(X)

T1

Bloqueo_lectura(X);Lee(X);

Bloqueo_escritura(Y)

T1 T2 Grafo de espera

58

Protocolo de prevención dedeadlock (1)

Bloqueo por adelantado: obliga a que lastransacciones bloqueen todos los elementos quenecesitan por adelantado. En caso de no poderconseguir todos esos elementos no bloqueaninguno y se queda en espera hasta volver aintentarlo.

Ordenación: Ordena todos los elementos de labase de datos y una transacción que necesitevarios de esos elementos los bloqueará en eseorden. Esto no es muy práctico.

59

Protocolo de prevención dedeadlock (2)

Marca de tiempo transaccional: Las transacción estánmarcadas con el tiempo de de iniciación de ellas. Si T1 seinicia antes que T2, entonces MT(T1) < MT(T2). Bajo esteprotocolo hay dos esquemas que evitan el bloqueo mortal.

Supongamos que Ti intenta bloquear un elemento X que yaestá bloqueado por Tj con un bloqueo en conflicto, entonceslas reglas que se aplican son: Esperar_morir: Si MT(Ti) < MT(Tj), entonces Ti puede esperar,

en caso contrario Ti se aborta y se reinicia con la misma marcade tiempo.

Herir_esperar: Si MT(Ti) < MT(Tj), se aborta Tj y reiniciaposterirmente con la misma marca de tiempo. EN casocontrario,Ti puede esperar.

60

Protocolo de prevención dedeadlock (3)

No-espera: Si una transacción no puede bloquear se abortay reinicia posteriormente.

Espera-cautelosa: Si Tj no está detenida y tiene bloqueadoun elemento que Ti quiere bloquear, entonces Ti se detiene,de lo contrario se aborta Ti.

61

Detección de Deadlock Se controla de forma periódica si se ha producido un

deadlock. Se construye un grafo en espera, cada nodo esuna transacción en ejecución y un arco de una transacciónTi a Tj, en caso que Ti esté esperando un elemento queocupa Tj. Si existe un ciclo en el grafo tenemos un deadlock.La solución es escoger transacciones víctimas ydeshacerlas, hasta que desaparezca el deadlock. CadaSGBD tiene políticas diferentes para escoger víctimas.

Otro esquema de detección es tener un tiempo limitado deespera de una transacción, el cual al ser excedido, implicaque ha ocurrido un deadlock.

62

Técnicas de bloqueo Este tema influye notoriamente en el

rendimiento de los sistemas. Los SGBDpueden bloquear: un campo de un registro (un atributo de una

tabla) un registro (una tupla) un archivo (una tabla) la BD total

Esto se llama granularidad del bloqueo.

63

Técnicas de bloqueo Granularidad muy gruesa implica gestionar

menor nro de bloqueos, pero retrasa la ejecuciónde muchas transacciones (los objetos no se vanliberando). Una granularidad muy fina, permitemayor concurrencia, pero aparecen massituaciones de deadlock que han de serresueltas.

64

Modos de Bloqueo:Granularidad

65

Protocolo de bloqueo múltiple

66

Ejemplo

67

Técnicas de marca de tiempo

Técnicas de marca de tiempo(timestamping)

Las marcas de tiempo son identificadoresúnicos que se asignan a las transacciones,que se consideran como el tiempo de iniciode una transacción. Con esta técnica noexisten bloqueos. Ordena las transacciones.Se retrasan.

68

Técnicas Optimistas Las transacciones acceden libremente a los elementos, y antes de

finalizar se determina si ha habido interferencias Este tipo de técnicas considera que las transacciones tienen 3 fases: Lectura: las transacciones realizan operaciones sobre copias privadas

de los objetos (accesibles solo por la transacción) Validación : en la que se comprueba si el conjunto de objetos

modificados por una transacción se solapa con el conjunto de objetosmodificados por alguna otra que haya hecho la validación durante lafase de lectura de dicha transacción

Grabación:, en el caso de no detectar interferencias se graban lasmodificaciones, convirtiendo las versiones privadas de los objetos enversiones actuales

69

Integridad La integridad tiene como función proteger la BD contra

operaciones que introduzcan inconsistencias en los datos. Sehabla de integridad en el sentido de corrección, validez oprecisión de los datos.

El subsistema de integridad de un SGBD debe por tantodetectar y corregir, en la medida de lo posible, las operacionesincorrectas. En la práctica es el punto débil de los SGBDcomerciales, ya que casi toda la verificación de integridad serealiza mediante código de procedimientos escritos por losusuarios.

Habrá operaciones cuya falta de corrección no sea detectable,por ejemplo, introducir un fecha de nacimiento 25/12/1945cuando en realidad era 25/12/1954

70

Operaciones semánticamenteinconsistentes

Son las que transgreden las restricciones que hadefinido el administrador al diseñar la base dedatos, tales como: Restricciones sobre dominios por ejemplo, el dominio

edad esté comprendido entre 18 y 65 años. Restricciones sobre los atributos, por ejemplo, la edad de

los empleados ingenieros debe ser mayor de 21 años. Estas restricciones pueden ser estáticas, como las

anteriores o dinámicas por ejemplo, el sueldo de unempleado no puede disminuir.

71

Operaciones semánticamenteinconsistentes Otra forma de clasificar las restricciones es en: simples: si se aplican a una ocurrencia de un atributo con

independencia de los demás, por ejemplo, el sueldo de unempleado tiene que ser mayor que 60000.

compuestas: si implican más de una ocurrencia, como es elcaso de las restricciones de comparación, por ejemplo, elsueldo de un empleado debe ser menor que el de su jefe. Obien, las llamadas de globalidad, por ejemplo, el sueldo mediode los empleados de un determinado depto debe ser menor de250000

72

Reglas de Integridad En general, una regla de integridad está compuesta

por tres componentes: La restricción propiamente tal, que establece la

condición que deben cumplir los datos La respuesta a la transgresión, que especifica las

acciones a tomar, como rechazar las operaciones,informar al usuario, corregir el error con accionescomplementarias, etc.

Condición de disparo, que especifica cuándo debedesencadenarse la acción especificada en larestricción de integridad: antes, después o durantecierto evento

73

Seguridad El objetivo es proteger la BD contra accesos no

autorizados. Se llama también privacidad. Incluye aspectos de:

Aspectos legales, sociales y éticos Políticas de la empresa, niveles de información publica y

privada Controles de tipo físico, acceso a las instalaciones Identificación de usuarios: voz, retina del ojo, etc. Controles de sistema operativo

74

Seguridad En relación al SGBD, debe mantener información de los

usuarios, su tipo y los accesos y operaciones permitidas a éstos. Tipos de usuarios: DBA, están permitidas todas las operaciones, conceder

privilegios y establecer usuarios Usuario con derecho a crear, borrar y modificar objetos y que

además puede conceder privilegios a -otros usuarios sobre losobjetos que ha creado.

Usuario con derecho a consultar, o actualizar, y sin derecho acrear o borrar objetos

75

Seguridad Privilegios sobre los objetos, añadir nuevos

campos, indexar, alterar la estructura de losobjetos, etc. Los SGBD tienen opciones quepermiten manejar la seguridad, tal como GRANT,REVOKE, etc. También tienen un archivo deauditoría en donde se registran las operacionesque realizan los usuarios.

Otro mecanismo de seguridad que ofrecen losSGBD en entregar información a los usuarios através de vistas (CREATE VIEW)