La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia La Lógica en el desarrollo de las Bases de Datos Matilde Celma.

Presentaciones similares


Presentación del tema: "Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia La Lógica en el desarrollo de las Bases de Datos Matilde Celma."— Transcripción de la presentación:

1 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia La Lógica en el desarrollo de las Bases de Datos Matilde Celma Giménez

2 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 2 La Lógica en el desarrollo de las Bases de Datos 1. Lógica y Bases de Datos. 2. Bases de datos deductivas. 3. Actualización de bases de datos deductivas. 3.1 Actualización 3.2 Comprobación de la integridad 3.3 Restauración de la consistencia

3 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 3 1. Lógica y Bases de Datos La idea básica que subyace al uso de la lógica para el estudio de los sistemas de bases de datos es una idea común a todos los campos de la computación lógica: “la semántica por teoría de modelos de la lógica proporciona una base para la representación del conocimiento, y la semántica por teoría de la demostración proporciona una base para la computación” [J.W. Lloyd, en Computational Logic, 1990].

4 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 4 1. Lógica y Bases de Datos. La lógica de primer orden ha sido utilizada en el desarrollo del modelo relacional de datos desde su aparición en 1970. Problemas: - formalización - definición de lenguajes de consulta - estudio del concepto de independencia del dominio - actualización de vistas - comprobación y restauración de la integridad. - optimización de consultas - diseño de bases de datos

5 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 5 Base de datos deductiva + Base de datos relacional Conocimiento explícito Reglas deductivas Conocimiento implícito Las Bases de Datos Deductivas extienden la capacidad expresiva de las bases de datos relacionales incluyendo un conjunto de reglas que permiten definir conocimiento implícito 2. Bases de datos deductivas. Reglas deductivas Base de datos relacional

6 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 6 Hechos Reglas Información derivada Sistema de Gestión de Bases de Datos Relacionales Sistema de Inferencia Hechos = {tuplas de relaciones} (conocimiento explícito) Reglas = {reglas deductivas} (conocimiento implícito) Sistema de gestión de bases de datos deductivas Usuario + Sistema de inferencia Base de datos deductiva + Reglas Hechos 2. Bases de datos deductivas.

7 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 7 2. Bases de datos deductivas Relaciones básicas: R i (A i 1 : D i 1, A i 2 : D i 2,..., A i n i : D i n i ) (1  i  m) (m relaciones básicas) Relaciones derivadas: S i (A i 1 : D i 1, A i 2 : D i 2,..., A i n i : D i n i ) (1  i  s) (s relaciones derivadas) Restricciones de Integridad W i : W i es una expresión lógica (1 ≤ i ≤ k) (k restricciones de integridad) Relaciones básicas: R i  (D i 1 x D i 2 x... x D i n i ) (1  i  m) (m relaciones básicas) BASE DE DATOS Relaciones derivadas: S i j (x 1, x 2,..., x n i )  W i j (1  i  s) (s relaciones derivadas) (1  j  K i ) (K i reglas para la relación S i ) ESQUEMA RiRi

8 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 8 Relaciones básicas: PIEZA (codpieza: D1, desc: D2, peso: D3) CP = {codpieza} PROV (codprov: D4, nombre: D5, zona: D6) CP = {codprov} PRECIOS (codprov: D4, codpieza: D1, precio: D7) CP = {codprov, codpieza} CAj = {codprov}  PROV CAj = {codpieza}  PIEZA COMP (pieza1: D1, pieza2: D1) CP = {pieza1, pieza2} CAj = {pieza1}  PIEZA CAj = {pieza2}  PIEZA Esquema Relaciones derivadas: PRECIOS3 (codprov: D4, codpieza: D1, precio: D7) CP = {codprov, codpieza} CAj = {codprov}  PROV CAj = {codpieza}  PIEZA PRECIOS_EXT (codprov: D4, nombre: D5, codpieza: D1, desc: D2, precio: D7) CP = {codprov, codpieza} CAj = {codprov}  PROV CAj = {codpieza}  PIEZA COMPONENTE (pieza1: D1, pieza2: D1) CP = {pieza1, pieza2} CAj = {pieza1}  PIEZA CAj = {pieza2}  PIEZA Restricciones de integridad:  x  y ( COMPONENTE (x,y)   COMPONENTE (y,x) ) 2. Bases de datos deductivas

9 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 9 PIEZAPROV PRECIOSCOMP Reglas deductivas: 1 precios3 (x, y,z)  z  precios (x, y, z)  prov (x, w, 3) ) 2 componente (x, y)  z (comp (x, z)  componente (z, y) ) 3 componente (x, y)  comp (x, y) 4 precios_ext (x,n,y,d,p)  z  z ( prov (x, n,z)  pieza (y, d,w)  precios (x, y, p) ) BDD : 2. Bases de datos deductivas

10 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 10 PROV PIEZAPRECIOSCOMP PRECIOS3COMPONENTE BASE DE DATOS El usuario desea manipular (consultar y actualizar) las relaciones de la BD independientemente de que sean relaciones básicas o derivadas. 2. Bases de datos deductivas PRECIOS_EXT

11 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 11 Mecanismo de vistas del modelo relacional Definición de información implícita Relación derivada VISTA 2. Bases de datos deductivas Base de datos deductiva Base de datos relacional con vistas

12 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 12 Definición de vistas Limitaciones en la definición de vistas recursivas Actualización Limitaciones en la actualización de las vistas 2. Bases de datos deductivas SGBD relacionalesAusencia de procedimientos para la evaluación de consultas recursivas Limitaciones del modelo relacional (SQL92):

13 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 13 Los sistemas de gestión de bases de datos deductivas deben superar las limitaciones de los sistemas relacionales PROBLEMAS: Formalización Actualización de la base de datos Construcción de SGBD deductivos 2. Bases de datos deductivas. LÓGICA

14 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 14 pieza (pz1, tornillo, 10)... prov (pv1, Juan, 1)... comp (pz1, pz3)... precios3 (x, y, z)  w  prov (x, w, 3)   precios (x, y, z) ) componente (x, y)  z ( comp (x, z)  componente (z, y) ) componente (x, y)  comp (x, y) precios_ext (x,n,y,d,p)  z  w (prov (x, n, z)  pieza (y, d, w)  precios (x, y, p) ) Reglas deductivas Hechos Base de datos deductiva Formalización: Si intentamos representar la información explícita y la información implícita en un mismo lenguaje (lenguaje de 1 er orden) obtenemos un programa lógico: 2. Bases de datos deductivas.

15 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 15 MARCO FORMAL: Lógica de 1 er orden (Programación Lógica) Esquema de BDD: (L, RI): - L es un lenguaje de 1 er orden - RI es un conjunto de f.b.f de L (restricciones de integridad) BDD: (programa lógico) {A: A es un átomo base} (hechos)  { A  L 1  L 2 ...  L n : A es un átomo y L i es un literal} (reglas) 2. Bases de datos deductivas

16 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 16 Semántica de una BDD: definir el conocimiento existente en la base de datos. ¿qué es cierto en la BDD? : Semántica declarativa: conocimiento en la BDD Semántica operacional: procedimiento para obtener el conocimiento Semántica de una BDD 2. Bases de datos deductivas

17 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 17 Programación lógica: semántica operacional: SLDNF semántica declarativa: comp(D) Semántica operacional: procedimiento SLDNF SLDNF: - procedimiento de refutación - reglas de inferencia: resolución negación como fallo Semántica declarativa asociada al SLDNF: compleción de D Semántica de una BDD 2. Bases de datos deductivas

18 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 18  componente (pz1,w)  comp (pz1,z)  componente (z,w) componente (pz3,w)  comp (pz3,z ‘)  componente (z ‘,w)  componente ( pz8,w)  comp (pz8,z ‘‘)  componente (z ‘‘,w)  comp (pz8,w)  comp (pz3,w)  comp (pz1,w) 2 hecho z/pz3 2 3 hecho z’/pz8 23 hecho w/pz3 hecho w/pz8 3 w = pz3 w = pz8 ¿ De qué piezas se compone la pieza pz1? 2 componente (x, y)  comp (x, z)  componente (z, y) 3 componente (x, y)  comp (x, y) Procedimiento SLDNF comp(D) |= componente (pz1, pz3) comp(D) |= componente (pz1, pz8)

19 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 19 La Lógica en el desarrollo de las Bases de Datos 1. Lógica y Bases de Datos. 2. Bases de datos deductivas. 3. Actualización de bases de datos deductivas. 3.1 Actualización 3.2 Comprobación de la integridad 3.3 Restauración de la consistencia

20 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 20 Actualización sobre relación derivada Actualización(es) sobre relación(es) básicas(s) “Dada una base de datos D (D=BDI  BDE) y un requisito de actualización insertar (A) (resp. borrar (A)) donde A es una tupla de una relación derivada, encontrar una transacción T sobre EDB tal que T(D) satisfaga el requisito de actualización” Ejemplo: DELETE FROM PRECIOS3 WHERE codprov=pv1 3. Actualización de base de datos deductivas

21 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 21 PIEZA PRECIOS_EXT PRECIOS PROV T1={borrar (PROV (pv1,Juan,1))} T2={borrar (PIEZA (pz3,tuerca,11), borrar (PIEZA (pz8,arandela,8))} T3={borrar (PRECIOS (pv1,pz3,10), borrar (PRECIOS (pv1,pz8,20))}

22 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 22 Métodos para la actualización de bases de datos deductivas Utilización de los procedimientos de evaluación de consultas para determinar los posibles caminos de derivación del conocimiento que se desea a actualizar 3. Actualización de bases de datos deductivas

23 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 23  precios_ext (pv1, x1, x2, x3, x4)  prov (pv1, x1, x5)  pieza (x2,x3,x6)  precios (pv1,x2,x4)  pieza (x2,x3,x6)  precios (pv1,x2,x4)  precios (pv1,pz3,x4)  precios (pv1,pz8,x4) prov(pv1,Juan,1) pieza(pz3,tuerca,11) x2 / pz8, x3 / arandela precios(pv1,pz3.10) x4/ 10x4/ 20 4 T1 T2 T3 SLDNF: pieza(pz8,arandela,8) x2 / pz3, x3 / tuerca x1 / Juan precios(pv1,pz8,20)

24 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 24 Enunciado general del problema: Dados el esquema (L,RI) de una base de datos deductiva, un estado de base de datos D de ese esquema tal que  W  RI se cumple que D satisface W, y dado un requisito de actualización U tal que U no es cierto en D entonces encontrar una transacción T tal que  W  RI, D’ = T(D) satisface W y U es cierto en D’. 3.1 Actualización

25 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 25 1. p(x)  q(x)  t(x) 2. p(x)  w(x)  v(x) 3. t(x)  s(x)  ¬r(x) 1) {w(1), v(1)}  BDE 2) {q(1), s(1)}  BDE y {r(1)}  BDE 3) {p(1)}  BDE 4) {q(1), t(1)}  BDE Ejemplo 1 Actualización: U = p(1) Obtener transacciones que aseguren una de estas cuatro situaciones 3.1 Actualización

26 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 26 1) Tiempo de generación de la solución. 2) Variables cuantificadas existencialmente 3) Recursividad 4) Información asumida 5) Tratamiento de restricciones de integridad Caracterización del problema: 3.1 Actualización

27 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 27 1) Tiempo de generación de la solución.  Tiempo de ejecución: el árbol de derivación para el requisito de actualización se genera cuando la actualización es solicitada.  Tiempo de definición: el árbol de derivación para un requisito de actualización se estudia cuando se define el esquema de la base de datos, lo que supone una mejora ya que determinadas tareas sólo se realizan una vez.  Mixto: en este caso una parte de la solución se genera en tiempo de definición del esquema y se completa en tiempo de ejecución. 3.1 Actualización

28 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 28 En el Ejemplo 1:  un método que obtuviese la solución en tiempo de ejecución estudiaría el árbol de derivación de la actualización p(1) para encontrar una solución.  un método que trabajase en tiempo de definición del esquema estudiaría el requisito genérico p(x) para obtener soluciones que luego se instanciarían en tiempo de ejecución. 3.1 Actualización

29 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 29 2) Variables existencialmente cuantificadas. Dada una regla deductiva de una base de datos normal, a las variables que aparecen en el cuerpo de la regla y no aparecen en la cabeza se les denomina variables existencialmente cuantificadas.  x 1  x i  x m ( A  L 1    L n )  (x i no aparece en A)  x 1  x i-1  x i+1   x m ( A   x i ( L 1    L n )) La presencia de variables existencialmente cuantificadas en las reglas deductivas puede provocar la aparición del problema llamado falta de valores durante la generación de las transacciones que resuelven un requisito de actualización. 3.1 Actualización

30 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 30 Una solución sencilla a este problema consiste en utilizar el valor nulo para la variable de la que se desconoce el valor o bien un valor cualquiera proporcionado por el usuario o extraído sin criterio de la base de datos. Aunque en ocasiones esta solución es la única posible, en otras se puede elegir un valor tal que la transacción obtenida sea más sencilla. BDD: 1. p(x)  q(x,y)  t(x,y) …. t(1,2) Actualización: U = p(1). Ejemplo 2:  p(1)  q(1,y)  t(1,y) 1 resolución  y (q(1,y)  t(1,y)) {y/--} 3.1 Actualización

31 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 31 BDD: 1. p(x)  q(x,y)  t(x,y) …. t(1,2) Actualización: U = p(1). Ejemplo 2:  p(1)  q(1,y)  t(1,y) 1 resolución  y (q(1,y)  t(1,y)) T 1 = { insertar(q(1,nulo)), insertar(t(1,nulo))} T 2 = { insertar(q(1, c)), insertar(t(1, c))} T 3 = { insertar(q(1,2))} {y/ nulo}{y/ c}{y/ 2} 3.1 Actualización

32 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 32 3) Recursividad. La presencia de reglas recursivas en la base de datos puede complicar la generación de la transacción, ya que el árbol de derivación puede ser infinito para un determinado requisito de actualización, lo que supone la existencia de infinitas transacciones posibles para satisfacerlo. 3.1 Actualización

33 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 33 Para satisfacer este requisito hay infinitas transacciones posibles: T 1 : {insertar(q(1,1))} T 2 : {insertar(q(1,2)), insertar(q(2,1))} T 3 : {insertar(q(1,2)), insertar(q(2,3)), insertar(q(3,1))} … BDD: 1. p(x,y)  q(x,y) 2. p(x,y)  q(x,z)  p(z,y) Actualización: U = p(1,1). Ejemplo 3: 3.1 Actualización

34 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 34 4) Problema de la información asumida. En presencia de negación en las reglas deductivas, es posible que algunas soluciones que podrían parecer correctas no lo sean, ya que alguna información que se ha supuesto cierta (resp. falsa), durante la construcción de la solución pase a ser falsa (resp. cierta) debido a las actualizaciones propuestas más adelante. 3.1 Actualización

35 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 35 BDD: 1. p(x)  r(x,y)   s(x,y)  q(x,y) 2. s(1,2)  q(1,2) r(1,2) Ejemplo 4: Actualización: U = p(1).  y (r(1,y)   s(1,y)  q(1,y))  p(1)  r(1,y)  ¬ s(1,y)  q(1,y) 1 resolución {y/2}  r(1,2)  ¬ s(1,2)  q(1,2) T 1 = { insertar( q(1,2)) } r(1,2)  BDE s(1,2) fallo finito q(1,2)  BDE  q(1,2) q(1,2) resolución  s(1,2) 2 resolución T 1 no es una solución correcta porque induce la inserción de s(1,2) que se había asumido falsa en la construcción de la solución.  q(1,2)  s(1,2) 2 resolución 3.1 Actualización

36 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 36 5) Tratamiento de las restricciones de integridad. La solución propuesta para un requisito de actualización puede suponer la violación de alguna restricción de integridad por lo que es interesante estudiar cómo integra cada método, si lo hace, su estrategia con la comprobación de las restricciones del esquema. 3.1 Actualización

37 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 37 Un método que integre la generación de las soluciones con la restauración de la integridad podría generar la transacción {insertar(q(1)), insertar(r(1)), insertar(t(1))}. BDD: 1. p(x)  q(x)  r(x) … W =  x (r(x)  t(x)) Actualización: U = p(1).  p(1) 1 resolución T 1 = { insertar(q(1)), insertar(r(1)) }  q(x)  r(x) T 1 no es una solución correcta porque el estado T1(BDD) viola la restricción de integridad W Ejemplo 5: 3.1 Actualización

38 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 38 Estudio de un método de actualización: 1.Semántica asumida: la semántica declarativa determina el conjunto de posibles soluciones al requisito de actualización y la semántica operacional constituye la herramienta para computar esas soluciones. 2.Bases de datos: tipo de bases de datos y de restricciones de integridad para los que está definido el método. 3.Requisitos de actualización: forma sintáctica de los requisitos de actualización permitidos en el método. 4.Transacciones generadas: tipo de soluciones obtenidas y si sólo se obtiene una o todas las soluciones posibles. 5.Descripción del método: estrategia seguida para generar las transacciones. 6.Corrección y completitud del método. 7.Resumen: cómo el método resuelve los problemas antes mencionados. 3.1 Actualización

39 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 39 La Lógica en el desarrollo de las Bases de Datos 1. Lógica y Bases de Datos. 2. Bases de datos deductivas. 3. Actualización de bases de datos deductivas. 3.1 Actualización 3.2 Comprobación de la integridad 3.3 Restauración de la consistencia

40 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 40 Restricción de integridad: propiedad del mundo real que una base de datos debe satisfacer en cualquier instante para ser consistente con cierto modelo del mundo real. 3.2 Comprobación de la integridad D0D0 T1T1 D1D1 TiTi DiDi Evolución de una BD TnTn DnDn Restricciones estáticas: hacen referencia a un único estado de la base de datos. Estas restricciones restringen los estados válidos con independencia de la secuencia de los mismos. Restricciones dinámicas: hacen referencia a dos o más estados de la base de datos. Estas restricciones restringen las secuencias de estados válidas. Un caso particular de restricciones dinámicas son las restricciones de transición que restringen dos estados consecutivos válidos.

41 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 41 Comprobación de la integridad: la comprobación de la integridad en bases de datos consiste en comprobar si el par de estados (D,D') implicados en una transacción T satisface las restricciones de transición y si el estado final D' satisface las restricciones estáticas. Método de comprobación de la integridad: es un procedimiento de decisión tal que, dado un estado D y una restricción de integridad estática W, decide con una respuesta binaria si/no si el estado D satisface/viola la restricción estática W. 3.2 Comprobación de la integridad

42 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 42 La forma más sencilla de comprobar las restricciones estáticas es evaluar cada una de ellas después de la transacción; sin embargo esta aproximación puede ser muy costosa en bases de datos voluminosas. La comprobación de la integridad podría simplificarse si consideráramos sólo los "cambios" que la transacción ha producido en la base de datos. Todos los métodos propuestos para simplificar la comprobación de la integridad suponen que la base de datos era íntegra antes de la transacción. Apoyándose en esta hipótesis, los métodos comprueban sólo instancias de las restricciones generadas a partir de las actualizaciones (inserciones y borrados) de la transacción, evitando comprobar instancias que ya se satisfacían antes de la transacción y que además no se ven afectadas por ésta. 3.2 Comprobación de la integridad

43 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 43 Comprobación simplificada de la integridad en bases de datos relacionales: PRECIOS (codprov: D4, codpieza: D1, precio: D7) CP = {codprov, codpieza} CAj = {codprov}  PROV CAj = {codpieza}  PIEZA W:  x  y  z ( (precios(x, y, z)  w  t (prov(x,w,t)) ) T = { insertar (PRECIOS (pv11,pz3,100)) } D T D’ Si D es un estado íntegro entonces D’ satisface W si y sólo si D’ satisface  w  t (prov (pv11,w,t) ) 3.2 Comprobación de la integridad

44 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 44 En bases de datos deductivas las actualizaciones generadas por una transacción no son sólo las explícitamente requeridas por ésta (operaciones que la componen) sino también todas las actualizaciones que se pueden inducir por la presencia de reglas deductivas en la base de datos. Comprobación simplificada de la integridad en bases de datos deductivas: 3.2 Comprobación de la integridad

45 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 45 COMPCOMPONENTE COMPONENTE (x, y)  COMP (x,z)  COMPONENTE (z, y) COMPONENTE (x, y)  COMP (x, y) Reglas deductivas: Transacción: {insertar (COMP(pz8,pz1))} COMP COMPONENTE D D’ inserciones inducidas

46 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 46 W:  x  y ( COMPONENTE (x,y)   COMPONENTE (y,x) ) Restricción de integridad: insertar ( COMPONENTE(pz8,pz1) )  COMPONENTE (pz1, pz8) Si D es un estado íntegro entonces D’ satisface W si y sólo si D’ satisface   COMPONENTE (pz1, pz8) D’ viola W 3.2 Comprobación de la integridad

47 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 47 Enunciado general del problema: Dados, el esquema (L,RI) de una base de datos deductiva, un estado D de ese esquema tal que D satisface W (para toda W  RI), una transacción T formada por dos conjuntos de sentencias de base de datos, T=T ins  T del, (T ins  T del = , T del  D y T ins  D =  ), el estado D’ resultante de aplicar a D la transacción T, ( D' = (D  T ins ) \ T del ), comprobar que D' satisface W (para toda W  RI). 3.2 Comprobación de la integridad

48 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 48 1) Concepto de satisfacción 2) Corrección y completitud de un método 2) Fases en la comprobación simplificada de la integridad 3.2 Comprobación de la integridad Caracterización del problema:

49 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 49 1) Concepto de satisfacción: a) Punto de vista de la demostración: D satisface W sii Tr |= W. b) Punto de vista de la consistencia: D satisface W sii Tr  {W} es consistente. El concepto de violación se define en términos del concepto de satisfacción: D viola W sii no (D satisface W). Diremos que un estado D es íntegro si, para toda restricción W perteneciente a RI, D satisface W. Tr es la teoría de 1 er orden que representa la base de datos en la semántica asumida 3.2 Comprobación de la integridad

50 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 50 Ejemplo 1: D = { p(a)  q(x)  ¬r(x), q(a), r(x)  r(x) }. Si asumimos la semántica de la compleción: Tr=comp(D) = {  y(p(y)  y=a   x(q(x)  ¬r(x))),  x(q(x)  x=a),  x(r(x)  r(x)) }. Desde el punto de vista de la consistencia D satisface: W 1 =q(a), W 2 =r(a), W 3 =p(a), W 4 =¬r(a). Desde el punto de vista de la demostración D satisface: W 1 =q(a). Tr es la teoría de 1 er orden que representa la base de datos en la semántica asumida 3.2 Comprobación de la integridad

51 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 51 Si asumimos la semántica del punto fijo iterado: M D ={q(a), p(a)} Tr(M D ) = {  x (p(x)  x=a),  x (q(x)  x=a),  x (  r(x) }. D satisface W 1 =q(a) y W 2 =p(a) en los dos conceptos de satisfacción. Tr es la teoría de 1 er orden que representa la base de datos en la semántica asumida 3.2 Comprobación de la integridad

52 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 52 2) Corrección y completitud de un método: Sean: M un método de comprobación de la integridad. D satisface M (resp. viola M ) W significa que el método M decide que el estado D satisface (resp. viola) la restricción W (W  RI). CS el concepto de satisfacción asumido por el método M. D satisface CS (resp. viola CS ) W significa que el estado D satisface (resp. viola) la restricción W (W  RI) en el concepto de satisfacción CS. Un método M es correcto cuando se cumple: si D satisface M W entonces D satisface CS W(correcto para satisfacción) si D viola M W entonces D viola CS W(correcto para violación). Un método M es completo cuando se cumple: si D satisface CS W entonces D satisface M W(completo para satisfacción) si D viola CS W entonces D viola M W(completo para violación). 3.2 Comprobación de la integridad

53 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 53 3) Fases en la comprobación simplificada de la integridad Hipótesis: D es íntegro. Comprobación de la integridad: FASE I: Fase de Generación Paso 1:Cálculo del conjuntos de literales que “representan” la diferencia entre los estados consecutivos D y D'. Paso 2:Identificación de las restricciones relevantes. Paso 3:Instanciación de las restricciones relevantes. Paso 4: Simplificación de las instancias de las restricciones relevantes. FASE II: Fase de Evaluación Paso 5: Comprobación en D' de las instancias simplificadas de las restricciones relevantes. 3.2 Comprobación de la integridad

54 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 54 3) Fases en la comprobación simplificada de la integridad Ejemplo 2: 3.2 Comprobación de la integridad D = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), q(a,b), q(b,a), s(c) } T= {ins(s(b), ins(t(y)  q(y,z)  t(z))} D’ = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), t(y)  q(y,z)  t(z) q(a,b), q(b,a), s(c), s(b) } W 1 =  x  y ( q(x,y)  q(y,x) ) W 2 =  x ( s(x)  p(x) )

55 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 55 Paso 1: Cálculo del conjuntos de literales que “representan” la diferencia entre los estados consecutivos D y D'. Fase de Generación D = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), q(a,b), q(b,a), s(c) } T= {ins(s(b), ins(t(y)  q(y,z)  t(z))} D’ = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), t(y)  q(y,z)  t(z) q(a,b), q(b,a), s(c), s(b) } Actualizaciones inducidas por T: Inserciones = {A: A  B D, comp(D’) |= A y comp(D) |= A } = {s(b), t(a), t(b)} Borrados = {A: A  B D, comp(D) |= A y comp(D’) |= A } = {p(a), p(b)} T Se asume la semántica de la compleción y el punto de vista de la demostración.

56 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 56 D = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), q(a,b), q(b,a), s(c) } D’ = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), t(y)  q(y,z)  t(z) q(a,b), q(b,a), s(c), s(b) } Inserciones = {s(b), t(a), t(b)} Borrados = {p(a), p(b)} T T= {ins(s(b), ins(t(y)  q(y,z)  t(z))} W 1 =  x  y ( q(x,y)  q(y,x) ) no es relevante para T W 2 =  x ( s(x)  p(x) ) es relevante para T Paso 2: Identificación de restricciones relevantes Fase de Generación Paso 2

57 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 57 D = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), q(a,b), q(b,a), s(c) } D’ = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), t(y)  q(y,z)  t(z) q(a,b), q(b,a), s(c), s(b) } T W 2 =  x ( s(x)  p(x) ) W 2  1 = s(b)  p(b) W 2  2 = s(a)  p(a) W 2  3 = s(b)  p(b) Paso 3: Instanciación de las restricciones relevantes Fase de Generación Inserciones = {s(b), t(a), t(b)} Borrados = {p(a), p(b)} W 2  1 = p(b) W 2  2 =  s(a) W 2  3 =  s(b) Paso 4: Simplificación de las instancias de las restricciones relevantes Paso 3 Paso 4

58 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 58 3) Fases en la comprobación simplificada de la integridad Hipótesis: D es íntegro. Comprobación de la integridad: FASE I: Fase de Generación Paso 1:Cálculo del conjuntos de literales que “representan” la diferencia entre los estados consecutivos D y D'. Paso 2:Identificación de las restricciones relevantes. Paso 3:Instanciación de las restricciones relevantes. Paso 4: Simplificación de las instancias de las restricciones relevantes. FASE II: Fase de Evaluación Paso 5: Comprobación en D' de las instancias simplificadas de las restricciones relevantes. 3.2 Comprobación de la integridad Paso 1: El cálculo de las actualizaciones inducidas por la transacción puede ser muy costoso en base de datos voluminosas. Sólo algunas de estas actualizaciones serán relevantes para la integridad.

59 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 59 3) Fases en la comprobación simplificada de la integridad Hipótesis: D es íntegro. Comprobación de la integridad: FASE I: Fase de Generación Potencial Paso 1:Cálculo del conjuntos de literales que “capturen” la diferencia entre los estados consecutivos D y D‘ sin acceder a la BDE. Paso 2:Identificación de las restricciones relevantes. Paso 3:Instanciación de las restricciones relevantes. Paso 4: Simplificación de las instancias de las restricciones relevantes. FASE II: Fase de Evaluación Paso 5: Comprobación en D' de las instancias simplificadas de las restricciones relevantes. 3.2 Comprobación de la integridad Solución

60 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 60 Paso 1: Cálculo del conjuntos de literales que “capturen” la diferencia entre los estados consecutivos D y D'. Fase de Generación Potencial D = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), q(a,b), q(b,a), s(c) } D’ = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), t(y)  q(y,z)  t(z) q(a,b), q(b,a), s(c), s(b) } Actualizaciones potenciales inducidas por T: Inserciones Borrados {s(b), t(y)} {t(b)}{p(x)} T T= {ins(s(b), ins(t(y)  q(y,z)  t(z))} Actualizaciones reales inducidas por T: Inserciones = {s(b), t(a), t(b)} Borrados = {p(a), p(b)} instancias

61 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 61 D = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), q(a,b), q(b,a), s(c) } D’ = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), t(y)  q(y,z)  t(z) q(a,b), q(b,a), s(c), s(b) } T W 2 =  x ( s(x)  p(x) ) W 2  1 = s(b)  p(b) W 2  2 =  x s(x)  p(x) W 2  3 =  x s(x)  p(x) Paso 3: Instanciación de las restricciones relevantes Fase de Generación Potencial Inserciones = {s(b), t(y), t(b)} Borrados = {p(x)} Paso 4: Simplificación de las instancias de las restricciones relevantes Paso 3 Paso 4 W 2 =  x s(x)  p(x)

62 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 62 D = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), q(a,b), q(b,a), …, s(c) } D’ = { p(x)  q(x,y)  ¬ t(y), t(y)  s(y), t(y)  q(y,z)  t(z) q(a,b), q(b,a), …, s(c), s(b) } T W 3 =  x ( p(x)  r(x) ) no es relevante para T. Paso 3: Instanciación de las restricciones relevantes Fase de Generación Potencial Inserciones = {s(b), t(y), t(b)} Borrados = {p(x)} Paso 4: Simplificación de las instancias de las restricciones relevantes Si la extensión de q es grande los borrados sobre p inducidos por T pueden ser muchos.

63 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 63 Estudio de un método de simplificación: 1.Semántica asumida: referencia para interpretar el concepto de satisfacción. 2.Concepto de satisfacción utilizado. 3.Requisitos sintácticos: forma sintáctica de las reglas y de las restricciones de integridad. 4.Corrección y completitud del método. 5.Estrategia del método: Fase de Generación: potencial (sin acceso a la BDE), real (con acceso a la BDE). Intercalación de las fases de Generación y Evaluación. Etapa de compilación independiente de la transacción. 3.2 Comprobación de la integridad

64 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 64 La Lógica en el desarrollo de las Bases de Datos 1. Lógica y Bases de Datos. 2. Bases de datos deductivas. 3. Actualización de bases de datos deductivas. 3.1 Actualización 3.2 Comprobación de la integridad 3.3 Restauración de la consistencia

65 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 65 3.2 Restauración de la consistencia D U Requisito de actualización D satisface W Tr (D) |= U T = T ins  T del D’ D' = (D  T ins ) \ T del ) Tr (D’) |= U Comprobación RI D’ Actualización Restauración de la consistencia T’ = T’ ins  T’ del D’’ D‘’ = (D’  T’ ins ) \ T’ del ) Tr (D’’) |= U D’’ satisface W (  W  RI) NOSI

66 Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 66 Enunciado general del problema: Dados, el esquema (L,RI) de una base de datos deductiva, un estado D de ese esquema tal que D satisface W (para toda W  RI), una transacción T=T ins  T del, (T ins  T del = , T del  D y T ins  D =  ), el estado D’ resultante de aplicar a D la transacción T, (D' = (D  T ins ) \ T del ), y una restricción W  RI tal que D' viola W, encontrar una transacción T*=T* ins  T* del (T* ins  T* del = , T* del  T ins = , T* ins  T del = , ), tal que el estado D’’ resultante de aplicar T* a D’, D‘’ = (D’  T* ins ) \ T* del ), satisface W. 3.2 Restauración de la consistencia


Descargar ppt "Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia La Lógica en el desarrollo de las Bases de Datos Matilde Celma."

Presentaciones similares


Anuncios Google