Professional Documents
Culture Documents
El clculo relacional
IDBIS - DECSAI
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
Inicialmente:
Elementos lgicos en el modelo relacional ( Codd 1971).
Clculo relacional orientado a tuplas. Lenguaje Alpha. Equivalencia entre enfoques de consulta.
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
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
IDBIS - DECSAI
El lenguaje adems de smbolos tendr que generar frases (frmulas, expresiones...) por ello debe tener
Smbolos de puntuacin: ( ) , . ; [ ] Conectores: , , , Cuantificadores:,
IDBIS - DECSAI
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
Toda variable en una wff que no est cuantificada se denomina variable libre En caso contrario se denomina variable ligada
IDBIS - DECSAI
10
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
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
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)))
IDBIS - DECSAI
13
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
Calculo de predicados
Modelo relacional
15
16
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
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
(profesores)
IDBIS - DECSAI
19
departamentos)
20
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
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
IDBIS - DECSAI
23
IDBIS - DECSAI
24
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)))
NRP
(area=COMPUT (profesores)))
IDBIS - DECSAI
25
26
IDBIS - DECSAI
27