You are on page 1of 27

Tema 6

El clculo relacional

IDBIS - DECSAI

Tema6 Clculo relacional


Indice del tema

Introduccin: los modelos lgicos y las bases de datos relacionales. Nota histrica. El clculo de predicados como lenguaje para la representacin de informacin. Analogas intuitivas entre el calculo de predicados y el modelo relacional. El clculo relacional orientado a tuplas. Introduccin al clculo relacional orientado a dominios.
IDBIS - DECSAI

Tema6 Clculo relacional


Introduccin: los modelos lgicos y las bases de datos relacionales. Nota histrica.

Inicialmente:
Elementos lgicos en el modelo relacional ( Codd 1971).
Clculo relacional orientado a tuplas. Lenguaje Alpha. Equivalencia entre enfoques de consulta.

Extensiones e implementaciones iniciales:


Lacroix y Pirrotte (1977). Primera versin del clculo de dominios. Implementaciones: QUEL(1980), QUERY_BY_EXAMPLE (1985).
IDBIS - DECSAI

Tema6 Clculo relacional


Introduccin: los modelos lgicos y las bases de datos relacionales. Nota histrica.

Conexin de los datos existentes en la base de datos con informacin inteligente:


Formalizacin de los modelos lgicos de Bases de Datos:
Desarrollos tericos. Lgica y Bases de Datos (Gallaire Minker y Nicolas 78,81,84) Inteligencia Artificial y Bases de Datos (Brodie t. al. 81,84,86) (Reiter 1984) Implementaciones: Basadas en acoplamientos con PROLOG: Educe, PRO_SQL, QUINTUS_PROLOG etc.. (1986,87..) Basadas en DATALOG: Nail
IDBIS - DECSAI

Tema6 Clculo relacional


El Clculo de predicados como lenguaje de representacin de informacin

Idea bsicas:
El clculo de predicados surge como sistema de representacin del conocimiento en I.A. Elementos de un sistema de representacin del conocimiento:
Una Base de Conocimiento donde se almacena conocimiento a distintos niveles. Un mecanismo de inferencia que permite derivar un conocimiento de otro.
IDBIS - DECSAI

Tema6 Clculo relacional


El Clculo de predicados como lenguaje de representacin de informacin

Para representar la informacin en la base de conocimiento los formalismos de la Lgica son muy adecuados ya que incluyen:
Mecanismos de representacin Mecanismos de derivacin de conocimiento

Entre los formalismos basados en la Lgica:


Clculo de Proposiciones Clculo de Predicados Formalismos Lgicos ms avanzados: Redes semnticas Lgica multivaluada Razonamiento por defecto, basado en casos etc..
IDBIS - DECSAI

Tema6 Clculo relacional


El Clculo de predicados como elemento de representacin de informacin

Definicin formal: ideas bsicas


Un lenguaje de Clculo de Predicados se define para describir un mundo. Debe tener smbolos y frases. Este lenguaje debe incluir un alfabeto donde haya:
Smbolos para describir los objetos del mundo (constantes) Juan, Jos, ....Seat,..... Rojo,....etc, GR-150-A.... Smbolos para describir funciones que nos dan unos objetos en funcin de otros: Color, Padre, Madre, Propietario etc... Smbolos para describir variables: x, y, z, Smbolos de predicados que describan relaciones entre objetos: Casados, Conduce, Prefiere. Los predicados describen relaciones binarias, ternarias etc...
7

IDBIS - DECSAI

Tema6 Clculo relacional


El Clculo de predicados como lenguaje de representacin de informacin

El lenguaje adems de smbolos tendr que generar frases (frmulas, expresiones...) por ello debe tener
Smbolos de puntuacin: ( ) , . ; [ ] Conectores: , , , Cuantificadores:,

IDBIS - DECSAI

Tema6 Clculo relacional


El Clculo de predicados como lenguaje de representacin de informacin
Definicin formal: Un lenguaje de Clculo de Predicados se define como L=(S, W) donde
S es un conjunto de smbolos incluyendo:
Constantes Funciones Variables Predicados Smbolos adicionales

W un conjunto de frases correctas o frmulas bien formadas (Well formed formulae) o wff W se define de forma recursiva:
Un tomo a se define cmo: Un smbolo de constante (Jose) Un smbolo de variable (x) f(a) donde f es un smbolo de funcin y a un tomo: Padre(Jos), Color(x)

IDBIS - DECSAI

Tema6 Clculo relacional


El Clculo de predicados como lenguaje de representacin de informacin
Una formula atmica se define como p(a1,a2,..an) donde: p es un smbolo de predicado n-ario a1,a2,....an son tomos Toda formula atmica es wff (W) Si f1,f2W entonces: f1f2W ; f1f2W ; f1W ; f1f2W Si f1(x)W entonces: x f1(x)W ; x f1(x)W

Algunos ejemplos de wffs:


casados(Juan,Ana), casados(padre(x),madre(x)),prefiere(Ana,Honda,rojo) conduce(Juan,GR-150-A)conduce(propietario(GR-150-A),GR-150-A) x coche(x)prefiere(propietario(x),marca(x),color(x)) y (persona(y) casados(padre(y),madre(y)))

Toda variable en una wff que no est cuantificada se denomina variable libre En caso contrario se denomina variable ligada
IDBIS - DECSAI

10

Tema6 Clculo relacional


El Clculo de predicados como lenguaje de representacin de informacin Interpretacin de un lenguaje Idea bsica: un lenguaje L=(A,W) es una abstraccin formal que puede describir muchas realidades. Para describir una concreta es necesario asociar
Smbolos de constantes con objetos del mundo Predicados con relaciones concretas entre objetos

Formalmente:
Sea L=(A,W) un lenguaje de CP ;CA es el conjunto de constantes Llamaremos interpretacin I de L al triple I=(D,K,E), donde
D un universo de discurso: conjunto de objetos asociados a una realidad K:CD y permite asociar las constantes de A a objetos reales. E se denomina funcin extensin y asocia a todo predicado n-ario pA un conjunto E(p)Dn. E(p) se denomina extensin de p en I. A partir de ahora cuando hablemos de una interpretacin identificaremos cada objeto con su nombre es decir, cC identificaremos c y K(c)

IDBIS - DECSAI

11

Tema6 Clculo relacional


El Clculo de predicados como lenguaje de representacin de informacin Interpretacin de un lenguaje Valor de verdad: toda interpretacin I=(D,K,E) de un lenguaje L=(A,W) permite asociar valores de verdad a ciertas wffs de W.
Toda wff que no incluya variables tiene un valor de verdad:
Toda frmula atmica de la forma P(c1,..cn) con ciC o ci=f(di) con diC es cierta sii (c1,c2...cn)E(P), en caso contrario es falsa. Sean f1,f2W, el valor de verdad de: f1f2, f1f2 , f1, y not(f1 f2) se calculan de acuerdo con las reglas del or and y not, y not( f1 or f2) supuestos conocidos los valores de verdad de f1 y f2

Toda wff que tenga todas sus variables ligadas tiene un valor de verdad de acuerdo con:
x f1(x) es cierta si f1(c) es cierta cC x f1(x) es cierta si cC para la que f1(c) es cierta

Una wff que tenga alguna variable libre genera un conjunto de constantes que son aquellas que hacen cierta la formula sustituyendo la variable por ellas. 12

IDBIS - DECSAI

Tema6 Clculo relacional


El Clculo de predicados como lenguaje de representacin de informacin

Ejemplos:
casados(Juan,Ana) ser cierta si (Juan,Ana)E(casados) prefiere(Ana,Honda,rojo) es cierta si (Ana,Honda,rojo)E(prefiere) conduce(Juan,GR-150-A)conduce(propietario(GR-150A),GR-150-A) sera cierta si conduce(Juan,GR-150-A) es cierta y conduce(propietario(GR-150-A),GR-150-A) es falsa y (persona(y) casados(padre(y),madre(y))) ser cierta si podemos encontrar una constante c tal que
(persona(c) casados(padre(c),madre(c)))

x | casados(padre(x),madre(x)) define un conjunto de constantes

IDBIS - DECSAI

13

Tema6 Clculo relacional


Analogas intuitivas entre el calculo de predicados y el modelo relacional

Ideas bsicas:
Un lenguaje de calculo de predicados y un modelo relacional son estructuras formales para describir la realidad: ambas pueden identificarse. Una instancia de una base de datos se identificara entonces con una interpretacin de su lenguaje asociado. Las reglas de integridad seran wffs. Las consultas se generaran mediante wffs con variables libres. Los conjuntos de constantes que las hacen ciertas sern la solucin de la consulta.

IDBIS - DECSAI

14

Tema6 Clculo relacional


Analogas intuitivas entre el calculo de predicados y el modelo relacional Identificacin en el caso del calculo relacional orientado a tuplas

Calculo de predicados

Modelo relacional

Universo de discurso variables Predicados Funciones


Cambio de notacin:

Dominios Relaciones Atributos Operadores de comparacion


(=, <=, <=,....)

Operadores de comparacin: notacin de operador


=(a,b) se sustituye por a=b, etc...

Funciones: notacin de atributo


f(x) se sustituye por x.f IDBIS - DECSAI

15

Tema6 Clculo relacional


El calculo relacional orientado a tuplas

Definicin de una consulta:


Consideremos una base de datos con relaciones R[A1,...An], S[B1,...Bm], etc,... y le asociamos un lenguaje de Clculo de Predicados. Supongamos que Rx, Ry ....Sx, Sy.. etc.. son variables que toman valores en R, S etc.. Son variables tupla. Una consulta en C.R. orientado a tuplas (lenguaje QUEL) tiene la forma:
Select Rx.Ai, Rx.Aj ..., Ry.Ah, Sx.Bl,... Where wff(Rx,Ry,Sx...) Rx.Ai, Rx.Aj ..., Ry.Ah,Sx.Bl,... se denomina lista objetivo . wff(Rx,Ry,Sx...) es una frmula cuyas variables libres aparecen en la lista objetivo. La particularizacin de la lista objetivo para las tuplas que hacen cierta esta frmula nos da la solucin a la consulta.
IDBIS - DECSAI

16

Tema6 Clculo relacional


El calculo relacional orientado a tuplas

ALUMNOS

DNI

NOMB_ALUM

FECHA_NAC

PROVINCIA

BECA

ASIGNATURAS

COD_ASIG

NOMB_ASIG

CREDITOS

CARACTER

CURSO

profesores

NRP

NOM_PROF

CATEGORIA

AREA

COD_DEP

DEPARTAMENTOS

COD_DEP

NOM_DEP

DIRECTOR

AULAS

COD-AULA

CAPACIDAD

GRUPOS

COD_GRUP

COD_ASIG

TIPO

NRP

MAX_AL

CLASE

COD_AULA

DIA

HORA

COD_GRUP

COD_ASIG

TIPO

MATRICULAS

COD_ASIG

DNI

CONVOCATORIA

CALIFICACION

IDBIS - DECSAI

17

Tema6 Clculo relacional


El calculo relacional orientado a tuplas Ejemplo:
Modelo relacional
Asignaturas(Cod_Asig,Nom_asig, Creditos, Carcter, Curso) Profesores(NRP, Nom_Prof, Categoria, Area, Cod_Dep) Departamentos(Cod_Dep,Nom_Dep, Director) Grupos(Cod_Asig, Cod_Grup, Tipo, NRP, Max_Al)

Lenguaje
Constantes: CCIA, LSI, TU, CU, etc..... Variables: Range Sx, Sy ... in S, Range Px, Py, ...in P, Funciones: NRP, cod_asig,......

Consultas
SELECT Sx.cod_asig,Sx.nom_asig,Sx.creditos WHERE Sx.curso=2 SELECT Sx.cod_asig,Sx.nom_asig WHERE Ey(Ey.cod_asig=Sx.cod_asigEy.tipo=TeoriaEy.max_al>=60)
IDBIS - DECSAI

18

Tema6 Clculo relacional


Ejemplos

Encontrar los datos de aquellos profesores que son asociados:


RANGE Tx IN profesores SELECT Tx.* WHERE Tx.categoria=AS
categoria=AS

(profesores)

Encontrar el nombre de aquellos profesores que son asociados:


RANGE Tx IN profesores SELECT Tx.nom_prof WHERE Tx.cateogoria=AS nom_prof(categoria=AS (profesores))

IDBIS - DECSAI

19

Tema6 Clculo relacional


Ejemplos

Encontrar para cada profesor el nombre del departamento en el que trabaja:


RANGE Tx IN profesores RANGE Ox IN departamentos SELECT Tx.NRP, Ox.nom_dep WHERE Tx.cod_dep=Ox.cod_dep NRP, mom_dep(profesores
IDBIS - DECSAI

departamentos)
20

Tema6 Clculo relacional


Ejemplos

Encontrar los nombres de los profesores que imparten tanto la asignatura FBD como la asignatura TA :
RANGE Tx IN profesores RANGE Ax, Ay IN grupos SELECT Tx.nom_prof WHERE (Ax,Ay ((Ax.NRP=Tx.NRP) (Ay.NRP=Tx.NRP) (Ax.cod_asig=FBD) (Ay.cod_asig=TA))) nom_prof (profesores ((NRP (cod_asig=FBD (grupos))) (NRP (cod_asig=TA (grupos)))))

IDBIS - DECSAI

21

Tema6 Clculo relacional


Ejemplos

Encontrar los nombres de los profesores que imparten la asignatura FBD o la asignatura TA:
RANGE Tx IN profesores RANGE Ax IN grupos SELECT Tx.nom_prof WHERE Ax ((Ax.NRP=Tx.NRP) ((Ax.cod_asig=FBD) (Ax.cod_asig=TA))) nom_prof (profesores (cod_asig=FBD
cod_asig=TA

(grupos)))

IDBIS - DECSAI

22

Tema6 Clculo relacional


Ejemplos

Encontrar el nombre de aquellos profesores que no han imparten asignaturas prcticas:


RANGE Tx IN profesores RANGE Ax IN grupos SELECT Tx.nom_prof WHERE (Ax ((Ax.NRP=Tx.NRP) (Ax.tipo=Practica))) nom_prof (profesores (NRP(profesores) NRP(tipo=practica (grupos))))

IDBIS - DECSAI

23

Tema6 Clculo relacional


Ejemplos

Encontrar parejas de profesores que sean del mismo departamento:


RANGE Tx, Ty IN profesores SELECT Tx.NRP, Ty.NRP WHERE ((Tx.cod_dep=Ty.cod_dep) Tx.NRP<Ty.NRP)) (profesores) = profes profesores.nom_prof, profes.nom_prof (profesores.cod_dep=profes.cod_dep profes)) profesores.NRP<profes.NRP (profesores

IDBIS - DECSAI

24

Tema6 Clculo relacional


Ejemplos

Encontrar las asignaturas en las que dan clase todos los profesores del rea COMPUT :
RANGE Tx IN profesores RANGE Ax IN grupos SELECT Ax.cod_asig WHERE Tx (Ax ((Ax.NRP=Tx.NRP) Tx.area=COMPUT)))

(cod_asig, NRP (grupos) (

NRP

(area=COMPUT (profesores)))

IDBIS - DECSAI

25

Tema6 Clculo relacional


Clculo relacional orientado a dominios

Identificacin intuitiva en el calculo relacional orientado a dominios


Calculo de predicados Modelo relacional

Universo de discurso variables Predicados Funciones

Dominios Relaciones Atributos Operadores de comparacion


(=, <=, <=,....)

Lenguaje QBE (Query-By-Example) (IBM, 1977)


IDBIS - DECSAI

26

Tema6 Clculo relacional


Clculo relacional orientado a dominios

Encontrar el nombre de aquellos profesores que son asociados:

{r (q)(s)(t )(u )( profesores(qrstu ) and (s =' AS ' )}


QBE: NRP nom_prof P._X categoria AS area cod_dep

IDBIS - DECSAI

27