1 / 207

Lógica y Bases de Datos

Lógica y Bases de Datos. Matilde Celma Giménez. Lógica y Bases de Datos 1. Lógica y Bases de Datos: introducción. 2. Bases de datos deductivas: definición y formalización. 3. Actualización de vistas. 3.1. Introducción al problema 3.2. Estudio avanzado del problema

tamra
Download Presentation

Lógica y Bases de Datos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lógica y Bases de Datos Matilde Celma Giménez

  2. Lógica y Bases de Datos 1. Lógica y Bases de Datos: introducción. 2. Bases de datos deductivas: definición y formalización. 3. Actualización de vistas. 3.1. Introducción al problema 3.2. Estudio avanzado del problema 4. Comprobación de restricciones de integridad en esquemas con vistas 4.1 Introducción al problema 4.2 Estudio avanzado del problema 5. SGBD deductivos. 5.1. Evaluación de consultas 5.2. SQL3

  3. 1. Lógica y Bases de Datos: introducción 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. 1. Lógica y Bases de Datos: introducción • 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. 1. Lógica y Bases de Datos: introducción Modelo Relacional de Datos • Tupla • Relación Estructuras de datos • Álgebra Relacional • Cálculo Relacional de Tuplas/Dominios • SQL Operadores (lenguajes) • Definición de relaciones • Restricciones generales Restricciones (estáticas)

  6. 1. Lógica y Bases de Datos: introducción • Tupla • Relación Estructuras de datos tupla º registro • · esquema de tupla:t= {(A1, D1), (A2, D2), …, (An, Dn)} • tupla t de esquema {(A1, D1), (A2, D2), …, (An, Dn)}: • t= {(A1, v1), (A2, v2), …, (An, vn)}: i ( vi Di)

  7. 1. Lógica y Bases de Datos: introducción • Tupla • Relación Estructuras de datos Relación: conjunto de tuplas del mismo esquema al que se denomina esquema de la relación. R Definición de una relación R:R (A1: D1, A2: D2 , …, An: Dn ) Extensión de R: {{ (A1, v1), (A2, v2), …, (An, vn)}: i ( vi Di ) } A1 A2 A3 … An R representación del esquema de una relación representación tabular de la extensión de la relación

  8. 1. Lógica y Bases de Datos: introducción • Valor No Nulo (NOT NULL) • Unicidad (UNIQUE) • Clave Primaria (PRIMARY KEY) • Clave Ajena (FOREING KEY) • CHECK • CREATE ASSERTION Restricciones de Integridad

  9. 1. Lógica y Bases de Datos: introducción • Álgebra Relacional • Cálculo Relacional de Dominios • Cálculo Relacional de Tuplas Lenguajes SQL (estándar) Operadores del Álgebra Relacional: insertar una tupla en una relación borrar una tupla de una relación seleccionartuplas de una relación que cumplen una condición proyectar los valores de las tuplas de una relación sobre un conjunto de atributos. concatenar relaciones (join) unión, intersección, diferencia, …... actualización consulta

  10. 1. Lógica y Bases de Datos: introducción Lenguaje de tipo algebraico Consulta: “Nombre de los ríos que sólo pasan por una provincia” ( ( Pasa_por [rcod] – ( (Pasa_por P1 Pasa_por P2 ) DONDE P1.rcod = P2.rcod AND P1.pcod  P2.pcod) [rcod] ) producto cartesiano diferencia proyección concatenación Río) [nombre] selección

  11. 1. Lógica y Bases de Datos: introducción • Álgebra Relacional • Cálculo Relacional de Dominios • Cálculo Relacional de Tuplas Lenguajes SQL (estándar) SQL INSERT (insertar tupals) DELETE (borrar tuplas) actualización SELECT consulta

  12. 1. Lógica y Bases de Datos: introducción Lenguaje de tipo lógico Consulta: “Nombre de los ríos que sólo pasan por una provincia” SELECT nombre FROM Río R WHERE EXISTS (SELECT * FROM Pasa_por P1 WHERE P1.rcod = R.rcod AND NOT EXISTS (SELECT * FROM Pasa_por P2 WHERE P2.rcod = R.rcod AND P1.pcod <> P2.pcod ) ) )

  13. 1. Lógica y Bases de Datos: introducción Relación:conjunto de tuplas del mismo esquema. Definición de una relación R:R (A1: D1, A2: D2 , …, An: Dn ) Extensión de R: {{ (A1, v1), (A2, v2), …, (An, vn): i ( vi Di )} } El Álgebra Relacional es un conjunto de operadores definidos para la estructura de datos relación (conjunto de tuplas). El CRT, CRD y SQL son lenguajes lógicos definidos sobre ??? Aproximación algebraica Aproximación lógica

  14. 1. Lógica y Bases de Datos: introducción • Formalización lógica de una base de datos relacional: • Interpretación de un lenguaje de 1er orden (Teoría de Modelos) • Teoría de un lenguaje de 1er orden (Teoría de la Demostración)

  15. 1. Lógica y Bases de Datos: introducción Esquema S: Enseña (cod_prof: dom_P, cod_curso: dom_C) CP: {cod_prof, cod_curso} CAj: {cod_prof}  Profesor CAj: {cod_curso}  Curso Matriculado (cod_alum: dom_A, cod_curso: dom_C) CP: {cod_alum, cod_curso} CAj: {cod_alum}  Alumno CAj: {cod_curso}  Curso Dominios: dom_P= { A, B, C } dom_A = { a, b, c, d } dom_C = { CS100, CS200, P100, P200 } Relaciones: Profesor (cod_prof: dom_P) CP: {cod_prof} Alumno (cod_alum: dom_A) CP: {cod_alum} Curso (cod_curso: dom_C) CP: {cod_curso} Restricciones: "Todo curso es impartido por algún profesor"

  16. 1. Lógica y Bases de Datos: introducción Base de Datos: Ext (S) Ext(Profesor) Ext(Alumno) Ext(Curso) Ext(Matriculado) Ext(Enseña)

  17. 1. Lógica y Bases de Datos: introducción Formalización lógica de una base de datos relacional: interpretación de un lenguaje de 1er orden. Esquema S: (L, RI) Un conjunto de símbolos biyectivo con la unión de los dominios de definición de las relaciones del esquema: C = {ci: cidi, di  i (Di), Di es un dominio de S } Constantes C Lenguaje L Predicados P Nombres de relación del esquema: P = { Rn: R (A1: D1, A2: D2 , ..., An: Dn)  S}  {=} Fórmulas bien formadas (f.b.f) de L RI Restricciones de Integridad (RI)

  18. 1. Lógica y Bases de Datos: introducción Formalización lógica de una base de datos relacional: interpretación de un lenguaje de 1er orden. Interpretación I de L : (D, K, E) Unión de los dominios de definición de las relaciones del esquema: D = {di :di  i (Di), Dies un dominio de S} Dominio D Interpretación Asignación (K, E) K : C D / K = { (c, d): c  C, d  D, c  d} E : P  i:1..n ( 2Di ) / E(pk)  (2Dk), E(pk) = Ext(p) (pkes un predicado de aridad k) E(=) = { (d, d): d  D}

  19. 1. Lógica y Bases de Datos: introducción Predicados P Nombres de relación del esquema: P = { Rn: R (A1: D1, A2 : D2 , ..., An : Dn)  S}  {=} En la definición del lenguaje L, hemos convertido cada relación n-aria del esquema S en un predicado n-ario, definiendo un orden en el conjunto de atributos del esquema de la relación. De esta forma el concepto de relación coincide con el concepto de relación matemática (subconjunto del producto cartesiano de los dominios): se pierde el concepto de atributo de una relación.

  20. 1. Lógica y Bases de Datos: introducción Unión de los dominios de definición de las relaciones del esquema: D = {di :di  i (Di), Dies un dominio de S} Dominio D Asignación (K, E) E : P  i:1..n ( 2Di ) / E(pk)  (2Dk), E(pk) = Ext(p) (pkes un predicado de aridad k) E(=) = { (d, d): d  D} En la definición de la interpretación I de L, hemos definido el dominio como la unión de los dominios de definición de las relaciones del esquema. De esta forma se pierde el concepto de dominio de un atributo (lógica homogénea). Esta simplificación no quita generalidad a la formalización, ya que podría trabajarse en una lógica con tipos (lógica heterogénea).

  21. 1. Lógica y Bases de Datos: introducción Esquema S: (L, RI) : Constantes: dom_PÈ dom_A È dom_C = {A, B, C, a, b, c, d, CS100, CS200, P100, P200} Predicados: { Profesor(.), Alumno(.), Curso(.), Enseña(.,.), Matriculado(.,.)}  {=} Lenguaje L Variables: { X, Y, Z, …} Cuantificadores: { " , $ } Conectivas lógicas: { Ù, Ú , ® } Símbolos de puntuación: { (, ),’, ... } Restricciones de Integridad: "x ( curso (x) ® y enseña (y,x) ) Fórmula bien formada de L RI

  22. E (Profesor) E (Alumno) E (Curso) E (Matriculado) E (Enseña) 1. Lógica y Bases de Datos: introducción BD: interpretación de L que es modelo de RI D= {A, B, C, a, b, c, d, CS100, CS200, P100, P200} K(A)=A, K(B)=B, …, K(P200)=P200 E(=) = {(d, d): d D}

  23. 1. Lógica y Bases de Datos: introducción BD: interpretación de L que es modelo de RI D= {A, B, C, a, b, c, d, CS100, CS200, P100, P200} K(A)=A, K(B)=B, …, K(P200)=P200 E(=) = {(d,d): d D} • En esta formalización, L es un lenguaje de definición de datos y de consulta: • f.b.f cerrada de L: restricción de integridad (x ( curso (x)  y enseña (y,x) ) • f.b.f abierta de L: consulta a la BD (profesor (x) ¬ enseña (x, CS100) )

  24. 1. Lógica y Bases de Datos: introducción • Formalización lógica de una base de datos relacional: • Interpretación de un lenguaje de 1er orden • Teoría de un lenguaje de 1er orden

  25. 1. Lógica y Bases de Datos: introducción Formalización lógica de una base de datos relacional: teoría de un lenguaje de 1er orden. Esquema S: (L, RI) BD: Interpretación I de L Esquema S: (L, RI) BD: Teoría T de L |=I F sii T |= F

  26. 1. Lógica y Bases de Datos: introducción Formalización lógica de una base de datos relacional: teoría de un lenguaje de 1er orden. Axiomas de información básica en T Por cada predicado n-ario p de L y por cada tupla <d1, ..., dn> en la extensión de p en la base de datos, se incluye en T el átomo p(d1, ..., dn). T = { profesor(A), profesor(B), ..., matriculado(d, P200)}  {x =(x, x)}

  27. 1. Lógica y Bases de Datos: introducción Axiomas de compleción en T (información negativa) Existen fórmulas F que no son consecuencia lógica de la teoría T y sin embargo son ciertas en la interpretación I, es decir T |F y |=I F, por ejemplo la fórmula ¬Prof(P100). Para resolverlo se añade a T un axioma que defina explícitamente quienes son los únicos individuos para cada predicado: x1, ..., xn (p(x1, ..., xn)  ((=(x1, d11)  ...  =(xn, d1n))  . . . (<di1, ..., din> es una tupla de p) (=(x1, dm1)  ...  =(xn, dmn)))) T = { profesor(A), profesor(B), ..., matriculado(d, P200), x =(x, x), x (profesor(x)  (=(x, A)  =(x, B)  =(x,C))), x (alumno(x)  (=(x, a)  =(x, b)  =(x,c)  =(x,d))), … }

  28. 1. Lógica y Bases de Datos: introducción Axiomas de nombre único en T Existen fórmulas F que no son consecuencia lógica de la teoría T y sin embargo son ciertas en la interpretación I, es decir T |F y |=I F, por ejemplo la fórmula ¬ =(A, B). Para resolverlo se añade a T un axioma que defina explícitamente qué pares de constantes no son iguales: ¬ =(c, c’): c, c’ son dos constantes distintas de C T = { profesor(A), profesor(B), ..., matriculado(d, P200), x =(x, x), x (profesor(x)  ( =(x, A)  =(x, B)  =(x,C))), x (alumno(x)  ( =(x, a)  =(x, b)  =(x,c)  =(x,d))), …, ¬ =(A, B), ¬ =(A, C), ¬ =(A, a), ..., ¬ =(P100, P200) }

  29. 1. Lógica y Bases de Datos: introducción Axioma de cierre de dominio en T Existen fórmulas F que no son consecuencia lógica de la teoría T y sin embargo son ciertas en la interpretación I, es decir T |F y |=I F, por ejemplo la fórmula dependiente del dominio, F = x (Prof(x)  Curso(x)  Alumno(x)). Para resolverlo se añade a T un axioma que defina explícitamente el domino: x (=(x, c1) ...  =(x, cm)): {c1, c2,...cm} son las constantes de C. T = { profesor(A), profesor(B), ..., matriculado(d, P200), x =(x, x), x (profesor(x)  ( =(x, A)  =(x, B)  =(x,C))), x (alumno(x)  ( =(x, a)  =(x, b)  =(x,c)  =(x,d))), …, ¬ =(A, B), ¬ =(A, C), ¬ =(A, a), ..., ¬ =(P100, P200), x (=(x, A)  =(x, B)  ...  =(x, P200)) }

  30. 1. Lógica y Bases de Datos: introducción Teoría T T = { p(d1, ..., dn): pn P, y <d1, ..., dn>  Ext(p), x =(x, x), x1, ..., xn (p(x1, ..., xn)  ((=(x1, d11)  ...  =(xn, d1n))  . . . (=(x1, dm1)  ...  =(xn, dmn)))): pn P y <di1, ..., din>  Ext(p), x1, ..., xn¬ p(x1, ..., xn ): pn P y Ext(p) = , ¬ =(c, c’): c y c’ son constantes distintas de C, x (=(x, c1)  =(x, c2)  ...  =(x, cm)): (c1, c2, …, cm) son las constantes de C } Axiomas de información básica Axioma de la igualdad Axiomas de compleción Axiomas de nombre único Axioma de cierre de dominio

  31. 1. Lógica y Bases de Datos: introducción Esquema S de la BD Lenguaje de 1er orden L Axiomas de información básica: D = { p(d1, ..., dn): pn P, y <d1, ..., dn>  Ext(p)} (átomos base) Extensión D de la BD T= comp(D)  {axioma de cierre de dominio} Teoría de primer orden en L

  32. 1. Lógica y Bases de Datos: introducción Esquema S de la BD Lenguaje de 1er orden L Programa lógico: D = {A: A es un átomo base} Extensión D de la BD Semántica de D {L: L es un literal base, T |= L } T = comp(D)  {axioma de cierre de dominio}

  33. 1. Lógica y Bases de Datos: introducción La teoría de la compleción formaliza hipótesis implícitas en la evaluación de consultas en bases de datos relacionales: - hipótesis del mundo cerrado - hipótesis del cierre del dominio - hipótesis de nombre único Hipótesis del mundo cerrado axiomas de compleción axioma de cierre de dominio Hipótesis del cierre de dominio Hipótesis de nombre único axioma de nombre único

  34. 1. Lógica y Bases de Datos: introducción Axiomas de compleción para las relaciones del esquema A D Hipótesis del mundo cerrado Ø A D HMC

  35. Lógica y Bases de Datos 1. Lógica y Bases de Datos: introducción. 2. Bases de datos deductivas: definición y formalización. 3. Actualización de vistas. 3.1. Introducción al problema 3.2. Estudio avanzado del problema 4. Comprobación de restricciones de integridad en esquemas con vistas 4.1 Introducción al problema 4.2 Estudio avanzado del problema 5. SGBD deductivos. 5.1. Evaluación de consultas 5.2. SQL3

  36. 2. Bases de datos deductivas: definición y formalización Base de datos relacional Base de datos relacional Conocimiento explícito + Reglas deductivas Reglas deductivas Conocimiento implícito Base de datos deductiva 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

  37. 2. Bases de datos deductivas: definición y formalización Padre Reglas Deductivas: Antecesor (x, y) ¬ Padre (x, y) Antecesor (x, y) ¬ z (Padre (x, z) Ù Antecesor (z, y) ) Base de datos deductiva Juan es antecesor de Luis Juan es antecesor de María Juan es antecesor de Pedro Luis es antecesor de José

  38. 2. Bases de datos deductivas: definición y formalización Hechos = {tuplas de relaciones} (información básica) Hechos Información derivada Sistema de inferencia Reglas= {reglas deductivas} (conocimiento implícito) Reglas Sistema de Gestión de Bases de Datos Relacionales Base de datos relacional + + Reglas deductivas Usuario Sistema de Inferencia Base de datos deductiva Sistema de gestión de bases de datos deductivas

  39. 2. Bases de datos deductivas: definición y formalización Relación derivada Base de datos deductiva Padre Antecesor Reglas Deductivas: Antecesor (x, y) ¬ Padre (x, y) Antecesor (x, y) ¬ z (Padre (x, z) Ù Antecesor (z, y))

  40. 2. Bases de datos deductivas: definición y formalización Bases de Datos Relacionales Bases de Datos Deductivas ESQUEMA Relaciones Ri (Ai1: Di1, Ai2: Di2 , ..., Aini: Dini) (1 £ i £ m) (m relaciones) Restricciones de Integridad Wi: Wies una expresión lógica (1 ≤ i ≤ k) (k restricciones de integridad) ESQUEMA Relaciones básicas: Ri (Ai1: Di1, Ai2: Di2 , ..., Aini: Dini) (1 £ i £ m) (m relaciones básicas) Relaciones derivadas: Si (Ai1: Di1 , Ai2: Di2 , ..., Aini: Dini) (1 £ i £ s) (s relaciones derivadas) Restricciones de Integridad Wi: Wi es una expresión lógica (1 ≤ i ≤ k) (k restricciones de integridad)

  41. 2. Bases de datos deductivas: definición y formalización Bases de Datos Relacionales Bases de Datos Deductivas Base de datos Base de datos Ri Í (Di1 x Di2 x ... x Dini) (1 £ i £ m) (m relaciones básicas) Ri Í (Di1 x Di2 x ... x Dini) (1 £ i £ m) (m relaciones) Sij (x1, x2,..., xni) ¬ Wij (1 £ i £ s) (s relaciones derivadas) (1 £ j £ Ki) (Ki reglas para la relación Si) Ri

  42. 2. Bases de datos deductivas: definición y formalización Bases de Datos Deductivas Bases de Datos Relacionales Base de datos Base de datos Ri Í (Di1 x Di2 x ... x Dini) (1 £ i £ m) (m relaciones básicas) Ri Í (Di1 x Di2 x ... x Dini) (1 £ i £ m) (m relaciones) Sij(x1, x2,..., xni) ¬ Wij (1 £ i £ s) (s relaciones derivadas) (1 £ j £ Ki) (Ki reglas para la relación Si) Si definimos un orden en el conjunto de atributos del esquema de la relación, el concepto de relación coincide con el concepto de relación matemática (subconjunto del producto cartesiano de los dominios): se pierde el concepto de atributo de una relación. En la definición de una regla deductiva, S  W: W es una fórmula cuyas únicas variables libres son las variables de S.

  43. 2. Bases de datos deductivas: definición y formalización 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

  44. 2. Bases de datos deductivas: definición y formalización 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) ) Esquema

  45. 2. Bases de datos deductivas: definición y formalización PIEZA PROV Base de Datos PRECIOS COMP

  46. 2. Bases de datos deductivas: definición y formalización Reglas deductivas: 1PRECIOS3 (x, y, z) ¬ w (PROV (x, w, 3) PRECIOS (x, y, z) ) 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 w (PROV (x, n, z) Ù PIEZA (y, d, w) PRECIOS (x, y, p) ) Base de Datos Se asume la notación de la Programación Lógica: todas las variables libres en la regla se suponen cuantificadas universalmente.

  47. PROV PIEZA PRECIOS COMP BASE DE DATOS PRECIOS3 COMPONENTE PRECIOS_EXT El usuario desea manipular las relaciones de la BD independientemente de que sean relaciones básicas o derivadas.

  48. 2. Bases de datos deductivas: definición y formalización Definición de información implícita Mecanismo de vistasdel modelo relacional Relación derivada PRECIOS3 VISTA SQL92: CREATE VIEW PRECIOS3 AS SELECT codprov, codpieza, precio FROM PRECIOS, PROV WHERE (PRECIOS.codprov = PROV.codprov AND (PROV.zona=3)

  49. 2. Bases de datos deductivas: definición y formalización Limitaciones del modelo relacional (SQL92) en la definición de vistas: Relación derivada COMPONENTE VISTA SQL: CREATE VIEW COMPONENTE AS SELECT pieza1, pieza2 FROM COMP UNION SELECT pieza1, pieza2 FROM COMP, COMPONENTE ................... ¡ En SQL92 no se pueden definir vistas recursivas!

  50. 2. Bases de datos deductivas: definición y formalización Limitaciones del modelo relacional (SQL92) en la actualización de vistas: opción 1 INSERT INTO PRECIOS3 VALUES (pv12, pz23, 20) INSERT INTO PRECIOS VALUES (pv12,pz23,20) ¿el proveedor existe? ¿la pieza existe? NO SI SI NO INSERT INTO PROV VALUES (pv12,NULL,3) INSERT INTO PIEZA VALUES (pz23,NULL,NULL) ¿el proveedor es de la zona 3? NO SI error c

More Related