El modelo relacional de datos
(2.3)
El modelo relacional de datos.
9 conocer las estructuras de datos del modelo: la tupla y la relación.
9 conocer básicamente la forma de modelar la realidad utilizando el modelo relacional.
9 conocer los mecanismos del modelo relacional para expresar restricciones de integridad.
9 conocer los lenguajes de manipulación propuestos para este modelo de datos: Álgebra Relacional y Cálculo Relacional de Tuplas.
Objetivos:
9 2.1 Modelo relacional de datos (Aproximación algebraica).
– 2.1.1 Estructuras de datos: tupla, relación.
– 2.1.2 Operadores asociados a la estructura relación: Álgebra Relacional.
9 2.2 Esquema relacional: representación de la realidad.
9 2.3 Modelo relacional de datos (Aproximación lógica)
– 2.3.1 Interpretación lógica de una base de datos relacional.
– 2.3.2 Cálculo Relacional de Tuplas.
9 2.4 Restricciones de integridad.
El modelo relacional de datos.
El modelo relacional de datos.
2.3. Modelo relacional de datos (Aproximación lógica)
2.3.1 Interpretación lógica de una BD relacional.
LÓGICA de 1er ORDEN
“Sistema formal que permite razonar sobre un universo de discurso”
qué es
cómo
•lenguaje: permite expresar aserciones sobre el universo de interés.
•reglas de evaluación: permiten determinar el valor de verdad de las aserciones.
2.3.1 Interpretación lógica de una BD relacional.
Dominio (D)
•Luis
•María •Juan
•AD1
•BDA
Ejemplo: sistema de información sobre la matrícula.
Propiedades (P):
• ser un alumno
• ser una asignatura
• estar matriculado
Aserción:
Todos los alumnos están matriculados de una asignatura
información sobre las propiedades de P en el dominio D
¿es cierta esta aserción en D?
2.3.1 Interpretación lógica de una BD relacional.
es-alumno ⇒ {María, Juan, Luis}
es-asignatura ⇒ {AD1, BDA}
está-matriculado ⇒ { (Luis, AD1), (Juan, BDA) } Información sobre las propiedades de P en el dominio D
La aserción:
“Todos los alumnos están matriculados de una asignatura”
es falsa
2.3.1 Interpretación lógica de una BD relacional.
Ejemplo: formalización en lógica de 1erorden.
lenguaje: permite expresar aserciones sobre el universo de interés
Lenguaje L:
constantes = {María, Juan, Luis, AD1, BDA}
predicados = {Alumno(.), Asignatura(.), Matriculado(. , .)}
variables = {x, y, z, …}
conectivas = ∧, ∨, ¬, → cuantificadores = ∀, ∃
símbolos auxiliares = ‘(‘, ‘)’, ‘,’, …
F= ∀x (Alumno(x) → ∃y Matriculado(x, y) )
“Todos los alumnos están matriculados de una asignatura”
conjunto de símbolos
reglas de evaluación: permiten determinar el valor de verdad de las expresiones
Interpretación I del lenguaje L:
• dominio D = {María, Juan, Luis, AD1, BDA}
• interpretación de cada predicado:
alumno ⇒ {María, Juan, Luis}
asignatura ⇒ {AD1, BDA}
matriculado ⇒ { (Luis, AD1), (Juan, BDA) }
conocimiento que se tiene sobre los predicados en un dominio
F= ∀x (Alumno(x) → ∃y Matriculado(x, y) )
F se evalúa a FALSO en I
2.3.1 Interpretación lógica de una BD relacional.
Base de datos relacional:
Asignatura AD1 BDA Alumno
María Juan Luis
Matriculado Luis AD1 Juan BDA
Interpretación I del lenguaje L:
• dominio D = {María, Juan, Luis, AD1, BDA}
• interpretación de cada predicado:
alumno ⇒ {María, Juan, Luis}
asignatura ⇒ {AD1, BDA}
matriculado ⇒ { (Luis, AD1), (Juan, BDA) }
la interpretación de cada predicado puede representarse como una relación
2.3.1 Interpretación lógica de una BD relacional.
Una interpretación de un lenguaje de 1er ordenpuede verse como una base de datos relacional en la que los nombres de relación coinciden con los símbolos de predicado
Una base de datos relacional puede verse como una interpretación de un lenguaje de 1erorden en el que los símbolos de predicado coinciden con los nombres de relación
2.3.1 Interpretación lógica de una BD relacional.
Base de datos relacional:
Asignatura AD1 BDA Alumno
María Juan Luis
Matriculado Luis AD1 Juan BDA Esquema relacional:
alumno (nombre: dom_nom) asignatura (código: dom_cod)
matriculado (nombre:dom_nom, código: dom_cod)
lenguaje L
interpretación I de L
Lenguaje L:
constantes = {María, Juan, Luis, AD1, BDA}
predicados = {Alumno(.), Asignatura(.), Matriculado(. , .)}
variables = {x, y, z, …}
conectivas = ∧, ∨, ¬, → cuantificadores = ∀, ∃
símbolos auxiliares = ‘(‘, ‘)’, ‘,’, …
Esquema relacional
Base de datos relacional
Interpretación I del lenguaje L:
• dominio D = {María, Juan, Luis, AD1, BDA}
• interpretación de cada predicado:
alumno ⇒ {María, Juan, Luis}
asignatura ⇒ {AD1, BDA}
matriculado ⇒ { (Luis, AD1), (Juan, BDA) }
2.3.1 Interpretación lógica de una BD relacional.
F= ∀x (Alumno(x) → ∃y Matriculado(x, y) ) El lenguaje L se pude usar como lenguaje de consultas
¿Están matriculados todos los alumnos de alguna asignatura?
¿Qué alumnos están matriculados de BDA?
F= Alumno(x) ∧ Matriculado(x, ‘BDA’) )
2.3.1 Interpretación lógica de una BD relacional.
F= ∀x (Alumno(x) → ∃y Matriculado(x, y) )
El lenguaje L se pude usar como lenguaje de consultas
¿Están matriculados todos los alumnos de alguna asignatura?
F es una fórmula cerrada que se evalúa a un valor de verdad en la interpretación I de L
2.3.1 Interpretación lógica de una BD relacional.
X es una variable ligada
al cuantificador ∀ Y es una variable ligada al cuantificador ∃
Lógica bivaluada: cierto falso
G H F = G ∧ H F = G ∨ H G Æ H G F = ¬ G falso falso falso falso cierto falso cierto cierto falso falso cierto falso cierto falso falso cierto falso cierto cierto
cierto cierto cierto cierto cierto
F= ∀x (Alumno(x) → ∃y Matriculado(x, y) ) Base de datos relacional:
Asignatura AD1 BDA Alumno
María Juan Luis
Matriculado Luis AD1 Juan BDA
interpretación I de L
•Luis
•María •Juan
•AD1
•BDA
D
X Alumno(X) Y Matriculado (X, Y) Alumno(X) →Matriculado (X, Y)
BDA falso cierto
AD1 falso cierto
Luis cierto BDA falso falso
cierto
AD1 cierto
Juan cierto BDA cierto cierto
María cierto BDA falso falso
falso
AD1 falso
2.3.1 Interpretación lógica de una BD relacional.
F se evalúa a FALSO en I
falso
Luis falso
falso
Juan falso
falso
María falso
El lenguaje L se pude usar como lenguaje de consultas
F es una fórmula abierta cuya evaluación consiste en buscar los valores de X para los que F se evalúa a CIERTO en I
2.3.1 Interpretación lógica de una BD relacional.
X es una variable libre
¿Qué alumnos están matriculados de BDA?
F= Alumno(x) ∧ Matriculado(x, ‘BDA’) )
Base de datos relacional:
Asignatura AD1 BDA Alumno
María Juan Luis
Matriculado Luis AD1 Juan BDA
interpretación I de L
•Luis
•María •Juan
•AD1
•BDA
D
X Alumno(X) Matriculado (X, ‘BDA’) Alumno(X) ∧Matriculado (X, ‘BDA’)
BDA falso falso
AD1 falso falso
Luis cierto falso falso
Juan cierto cierto cierto
María falso falso
2.3.1 Interpretación lógica de una BD relacional.
F= Alumno(x) ∧ Matriculado(x, ‘BDA’) )
cierto
la evaluación de F devuelve el conjunto de valores {’Juan’}
Interpretación lógica de una BD relacional:
esquema relacional lenguaje L base de datos
relacional interpretación de L
las consultas a la BD relacional son fórmulas abiertas del lenguaje L
la evaluación de una consulta consiste en buscar los valores de las variables libres para las que la fórmula se evalúa a CIERTO en la BD
2.3.2 Cálculo Relacional de Tuplas.
2.3.2 Cálculo Relacional de Tuplas.
cod_pro nombre teléfono cod_dep Profesor
cod_dep nombre director teléfono Departamento
cod_asg nombre semestre teoría prac cod_dep Asignatura
Esquema relacional
cod_pro cod_asg gteo gpra Docencia
2.3.2 Cálculo Relacional de Tuplas.
Departamento (cod_dep: tira(5), nombre: tira(40), director tira(30), teléfono : entero) Asignatura (cod_asg: tira(3), nombre: tira(40), semestre: tira(2),
teoría: real, prác: real, cod_dep: tira(5))
Profesor (cod_pro : tira(3), nombre : tira(40), teléfono: entero, cod_dep: tira(5) ) Docencia ( cod_asg: tira(3), cod_pro: tira(3), gteo: entero, gpra: entero)
Esquema relacional
2.3.2 Cálculo Relacional de Tuplas.
cod_dep nombre director teléfono DSIC Sistemas Informáticos y
Computación V. Botti 3500
DISCA Ingeniería de Sistemas, Computadores y Automática
A. Crespo 5700
MAT Matemática Aplicada P. Pérez 6600
FIS Física Aplicada J. Linares 5200
IDM Idiomas B. Montero 5300
EIO Estadística e Investigación Operativa
L. Barceló 4900
OEM Org. de Empresas, Economía
Financ. y Contabilidad M. Pérez 6800
cod_pro nombre teléfono cod_dep
JCC Juan C. Casamayor Ródenas 7796 DSIC RFC Robert Fuster i Capilla 6789 MAT JBD José V. Benlloch Dualde 5760 DISCA MAF María Alpuente Frasnedo 3560 DSIC CPG Cristina Pérez Guillot 7439 IDM JTM José M. Torralba Martínez 4590 OEM
IGP Ignacio Gil Pechuán 3423 OEM
DGT Daniel Gil Tomás 5679 DISCA
MCG Matilde Celma Giménez 7756 DSIC
Profesor
Departamento
cod_dep nombre director teléfono
DSIC Sistemas Informáticos y
Computación V. Botti 3500
DISCA Ingeniería de Sistemas,
Computadores y Automática A. Crespo 5700 MAT Matemática Aplicada P. Pérez 6600
FIS Física Aplicada J. Linares 5200
IDM Idiomas B. Montero 5300
EIO Estadística e Investigación
Operativa L. Barceló 4900
OEM Org. de Empresas, Economía
Financ. y Contabilidad M. Pérez 6800
Asignatura
Departamento
cod_ asg nombre semestre teoría prac cod_dep
B D A B ases de D atos 2B 3 3 D SIC
AD 1 Algoritm os y E structuras de D atos 1
1A 4 2 D SIC
FC O F undam entos de
com putado res 1A 4,5 4,5 D ISC A
M AD M atem ática D iscreta 1A 3 3 M A T
IN T Inglés Técnico 1B 3 3 ID M
FF I Fundam entos F ísicos
de la Inform ática 1A 3 3 FIS
E C 2 E structuras de C om putadores 2
2A 3 3 D ISC A
2.3.2 Cálculo Relacional de Tuplas.
cod_ asg nombre semestre teoría prac cod_dep
B D A B ases de D atos 2B 3 3 D SIC
AD 1 Algoritm os y E structuras de D atos 1
1A 4 2 D SIC
FC O F undam entos de
com putado res 1A 4,5 4,5 D ISC A
M AD M atem ática D iscreta 1A 3 3 M A T
IN T Inglés Técnico 1B 3 3 ID M
FF I Fundam entos F ísicos
de la Inform ática 1A 3 3 FIS
E C 2 E structuras de C om putadores 2
2A 3 3 D ISC A
cod_pro nombre teléfono cod_dep
JCC Juan C. Casamayor Ródenas 7796 DSIC RFC Robert Fuster i Capilla 6789 MAT JBD José V. Benlloch Dualde 5760 DISCA MAF María Alpuente Frasnedo 3560 DSIC CPG Cristina Pérez Guillot 7439 IDM JTM José M. Torralba Martínez 4590 OEM
IGP Ignacio Gil Pechuán 3423 OEM
DGT Daniel Gil Tomás 5679 DISCA
MCG Matilde Celma Giménez 7756 DSIC
cod_asg cod_pro gteo gpra
BDA JCC 2 4
MAD RFC 1 2
FCO DGT 2 2
AD1 MAF 1 1
INT CPG 1 0
EC2 JBD 2 0
BDA MCG 1 3
AD1 JCC 1 1
FCO JBD 2 2
AD1 MCG 1 1
Profesor Asignatura
Docencia
2.3.2 Cálculo Relacional de Tuplas.
2.3.2 Cálculo Relacional de Tuplas.
Lenguaje L:
constantes = {JCC, MCG, RFC, ..., AD1, BDA, ..., DSIC, DISCA, ..., Juan C. Casamayor Ródenas, Daniel Gil Tomás, ..., 3, 6, 4.5,..., 1A, 3B, ..., 3376, 7796, 7753, ... }
predicados = { Profesor(., ., ., .), Asignatura(., ., ., ., ., .), Departamento(. , ., ., .), Docencia(., ., ., .) }
variables = {x, y, z, …}
conectivas = ∧, ∨, ¬, → cuantificadores = ∀, ∃
símbolos auxiliares = ‘(‘, ‘)’, ‘,’, …
Esquema relacional
cod_pro nombre teléfono cod_dep JCC Juan C. Casamayor Ródenas 7796 DSIC RFC Robert Fuster i Capilla 6789 MAT JBD José V. Benlloch Dualde 5760 DISCA MAF María Alpuente Frasnedo 3560 DSIC CPG Cristina Pérez Guillot 7439 IDM JTM José M. Torralba Martínez 4590 OEM IGP Ignacio Gil Pechuán 3423 OEM
DGT Daniel Gil Tomás 5679 DISCA
MCG Matilde Celma Giménez 7756 DSIC
Profesor
cod_asg nombre semestre teoría prac cod_dep
BDA Bases de Datos 2B 3 3 DSIC
AD1 Algoritmos y
Estructuras de Datos 1 1A 4 2 DSIC FCO Fundamentos de
computadores
1A 4,5 4,5 DISCA
MAD Matemática Discreta 1A 3 3 MAT
INT Inglés Técnico 1B 3 3 IDM
FFI Fundamentos Físicos
de la Informática 1A 3 3 FIS
EC2 Estructuras de
Computadores 2 2A 3 3 DISCA
Asignatura
c o d _ a sg c o d _ p r o g te o g p r a
B D A JC C 2 4
M A D R F C 1 2
F C O D G T 2 2
A D 1 M A F 1 1
IN T C P G 1 0
E C 2 J B D 2 0
B D A M C G 1 3
A D 1 JC C 1 1
F C O J B D 2 2
A D 1 M C G 1 1
Docencia
cod_dep nombre director teléfono
DSIC Sistemas Informáticos y
Computación V. Botti 3500
DISCA Ingeniería de Sistemas, Computadores y Automática
A. Crespo 5700
MAT Matemática Aplicada P. Pérez 6600
FIS Física Aplicada J. Linares 5200
IDM Idiomas B. Montero 5300
EIO Estadística e Investigación Operativa
L. Barceló 4900
OEM Org. de Empresas, Economía Financ. y Contabilidad
M. Pérez 6800
BD relacional
las consultas a la BD relacional son fórmulas abiertas del lenguaje L
la evaluación de una consulta consiste en buscar los valores de las variables libres para las que la fórmula se evalúa a CIERTO en la BD relacional 2.3.2 Cálculo Relacional de Tuplas.
2.3.2 Cálculo Relacional de Tuplas.
El lenguaje L se pude usar como lenguaje de consultas
F es una fórmula abierta cuya evaluación consiste en buscar los valores de X1, X2, X3 para los que F se evalúa a CIERTO en la BD X1, X2, X3 son variables libres
¿Qué profesores imparten BDA y cuántos grupos?
F= Docencia ( ‘BDA’, X1, X2, X3) )
cod_asg cod_pro gteo gpra
BDA JCC 2 4
MAD RFC 1 2
FCO DGT 2 2
AD1 MAF 1 1
INT CPG 1 0
EC2 JBD 2 0
BDA MCG 1 3
AD1 JCC 1 1
FCO JBD 2 2
AD1 MCG 1 1
Docencia
F= Docencia ( ‘BDA’, X1, X2, X3) )
la evaluación de F devuelve el conjunto de tripletes:
{{’JCC’, 2, 4}, {‘MCG’, 1, 3}}
2.3.2 Cálculo Relacional de Tuplas.
F= Docencia (X1, ‘BDA’, X2, X3) )
cod_asg cod_pro gteo gpra
BDA JCC 2 4
MAD RFC 1 2
FCO DGT 2 2
AD1 MAF 1 1
INT CPG 1 0
EC2 JBD 2 0
BDA MCG 1 3
AD1 JCC 1 1
FCO JBD 2 2
AD1 MCG 1 1
Docencia
Para usar el lenguaje L como lenguaje de consultas es necesario conocer el orden de los atributos
Se ha perdido el concepto de atributo
2.3.2 Cálculo Relacional de Tuplas.
Lenguaje de 1erorden con variables-tupla Cálculo Relacional de Tuplas
•Variables-tupla: variable de tipo tupla.
• Definición de una variable-tupla: una variable-tupla se define sobre un esquema de relación.
•Dominio de una variable-tupla: todas las posibles tuplas del esquema de la relación.
2.3.2 Cálculo Relacional de Tuplas.
Docencia ( cod_asg: tira(3), cod_pro: tira(3),
gteo: entero, gpra: entero)
DX: Docencia (variable-tupla del tipo del esquema de Docencia) Dominio de DX
{(cod_asg,‘BDA’), (cod_pro,‘JCR’),(gteo, 1),(gpra, 3)}
...
{(cod_asg,‘AD3’), (cod_pro,‘JCR’),(gteo, 1),(gpra, 3)}
{(cod_asg,‘BDA’), (cod_pro,‘MCG’),(gteo, 1),(gpra, 3)}
{(cod_asg,‘EC2’), (cod_pro,‘JBD’),(gteo, 2),(gpra, 0)}
{(cod_asg,‘FFF’), (cod_pro,‘KKK’),(gteo, 1),(gpra, 3)}
dominio infinito
F es una fórmula abierta cuya evaluación consiste en buscar los valores de DXpara los que F se evalúa a CIERTO en la BD
DX es una variable libre
¿Qué profesores imparten BDA y cuántos grupos?
F= DX.cod_asg=‘BDA’
2.3.2 Cálculo Relacional de Tuplas.
el dominio de DX es infinito la evaluación de F es infinita
F es una fórmula abierta cuya evaluación consiste en buscar los valores de DXpara los que F se evalúa a CIERTO en la BD DX es una variable libre
¿Qué profesores imparten BDA y cuántos grupos?
F= Docencia ( DX) ∧ DX.cod_asg=‘BDA’
Docencia (DX) se evalúa a CIERTO en la BD para las tuplas del dominio de DX que pertenecen a la extensión de la relación Docencia
¿Qué profesores imparten BDA y cuántos grupos?
F= Docencia ( DX) ∧ DX.cod_asg=‘BDA’
2.3.2 Cálculo Relacional de Tuplas.
los predicados son todos de aridad 1: Docencia (.)
con las variables-tupla se pueden usar los operadores del tipo tupla
son necesarios predicados de comparación
cod_asg cod_pro gteo gpra
BDA JCC 2 4
MAD RFC 1 2
FCO DGT 2 2
AD1 MAF 1 1
INT CPG 1 0
EC2 JBD 2 0
BDA MCG 1 3
AD1 JCC 1 1
FCO JBD 2 2
AD1 MCG 1 1
Docencia
2.3.2 Cálculo Relacional de Tuplas.
F= Docencia ( DX) ∧ DX.cod_asg=‘BDA’
{{(cod_asg,‘BDA’), (cod_pro,‘JCR’),(gteo, 1),(gpra, 3)}, {(cod_asg,‘BDA’), (cod_pro,‘MCG’),(gteo, 1),(gpra, 3)}}
2.3.2 Cálculo Relacional de Tuplas.
DX Docencia (DX)
cierto
falso falso
cierto
falso
F= Docencia ( DX) ∧ DX.cod_asg=‘BDA’
Dominio de DX
Asignatura Profesor Docencia Departamento BD relacional
{(cod_asg,‘BDA’), (cod_pro,‘JCR’), (gteo, 1), (gpra, 3)}
DX.cod_asg=‘BDA’
F1 F2
F=F1 ∧F2 cierto {(cod_asg,‘AD3’), (cod_pro,‘JCR’),
(gteo, 1),(gpra, 3)}
{(cod_asg,‘FFF), (cod_pro,‘KKK),
(gteo, 1),(gpra, 3)} falso
{(cod_asg,‘EC2), (cod_pro,‘JBD),
(gteo, 2),(gpra, 0)} cierto falso falso
{(cod_asg,‘BDA’), (cod_pro,‘MCG),
(gteo, 1),(gpra, 3)} cierto cierto cierto
... evaluación infinita dominio
infinito
F= Docencia ( DX) ∧ DX.cod_asg=‘BDA’
¿Cómo evitar una evaluación infinita?
para los valores de DX que no están en la extensión de Docencia F se evalúa a FALSO
es suficiente evaluar F para los valores de DX que están en la extensión de Docencia rango de la
variable DX condición de
pertenencia
conjunción
Las condiciones de pertenencia para las variables y la forma sintáctica de las fórmulas pueden evitar la evaluación infinita
2.3.2 Cálculo Relacional de Tuplas.
DX Docencia (DX)
F= Docencia ( DX) ∧ DX.cod_asg=‘BDA’
Dominio de DX
Asignatura
Profesor Departamento
Docencia
BD relacional
DX.cod_asg=‘BDA’
F1 F2
F=F1 ∧F2
cierto cierto
{(cod_asg,‘BDA’), (cod_pro,‘JCR’),
(gteo, 1), (gpra, 3)} cierto
{(cod_asg,‘AD1’), (cod_pro,‘MAF’),
(gteo,1),(gpra, 1)} cierto falso falso
{(cod_asg,‘INT’), (cod_pro,‘CPG’),
(gteo, 1),(gpra, 0)} cierto falso falso
cierto falso
{(cod_asg,‘MAD’), (cod_pro,‘RFC),
(gteo, 1),(gpra, 2)} falso
cierto {(cod_asg,‘FCO’), (cod_pro,‘DGT’),
(gteo, 2),(gpra, 1)} falso falso
tuplas10
DX Docencia (DX) DX.cod_asg=‘BDA’F1 F2
F=F1 ∧F2
{(cod_asg,‘EC2’), (cod_pro,‘JBD’),
(gteo, 2),(gpra, 0)} cierto falso falso
{(cod_asg,‘BDA’), (cod_pro,‘MCG),
(gteo, 1),(gpra, 3)} cierto cierto cierto
{(cod_asg,‘AD1’), (cod_pro,‘JCC’),
(gteo, 1),(gpra, 1)} cierto falso falso
{(cod_asg,‘FCO’), (cod_pro,‘JBD),
(gteo, 2),(gpra, 2)} cierto falso falso
{(cod_asg,‘AD1’), (cod_pro,‘MCG’),
(gteo, 1),(gpra, 1)} cierto falso falso
evaluación finita
2.3.2 Cálculo Relacional de Tuplas.
{{(cod_asg,‘BDA’), (cod_pro,‘JCR’), (gteo, 1), (gpra, 3)}, {(cod_asg,‘BDA’), (cod_pro,‘MCG’), (gteo, 1), (gpra, 3)}}
2.3.2 Cálculo Relacional de Tuplas.
¿Qué profesores imparten BDA y cuántos grupos?
F= Docencia ( DX) ∧ DX.cod_asg=‘BDA’
{{(cod_asg,‘BDA’), (cod_pro,‘JCR’), (gteo, 1), (gpra, 3)}, {(cod_asg,‘BDA’), (cod_pro,‘MCG’), (gteo, 1), (gpra, 3)}}
{Dx.cod_pro, DX.gteo, DX.gpra Docencia ( DX) ∧ DX.cod_asg=‘BDA’}
para poder seleccionar los atributos que interesan
condición de pertenencia de DX condición de
pertenencia de PX
¿Nombres de profesores que imparten BDA?
{PX.nombreProfesor ( PX) ∧
{ {(nombre, ‘Juan C. Casamayor Ródenas’)}, {(nombre, ‘Matilde Celma Giménez’)} } PX es una variable libre:
devuelve valores de la BD
DX es una variable ligada: se introduce para expresar condiciones
∃DX (Docencia (DX) ∧ DX.cod_pro=PX.cod_pro ∧ DX.cod_asg=‘BDA’)}
condición de pertenencia de AX condición de
pertenencia de DX
2.3.2 Cálculo Relacional de Tuplas.
¿Nombres de departamentos que no tienen adscritas asignaturas?
{DX.nombreDepartamento ( DX) ∧
{ {(nombre, ‘Estadística e Investigación Operativa)}, {(nombre, ‘Organización de Empresas...’)} } DX es una variable libre:
devuelve valores de la BD
AX es una variable ligada: se introduce para expresar condiciones
¬∃AX (Asignatura (AX) ∧ AX.cod_dep=DX.cod_dep)}
condición de pertenencia de DX
condición de pertenencia de AX
∃AX (Asignatura (AX) ∧ (AX.semestre=‘1A’ ∨AX.semestre =‘1B’) ∧ condición de
pertenencia de PX
2.3.2 Cálculo Relacional de Tuplas.
¿Nombres de profesores que imparten docencia en el 1er curso?
{PX.nombreProfesor ( PX) ∧
PX es una variable libre:
devuelve valores de la BD
AX y DX son variables ligadas: se introducen para expresar condiciones
∃DX(Docencia(DX)∧DX.cod_pro=PX.cod_pro∧DX.cod_asg=AX.cod_asg))}
condición de pertenencia de DY
condición de pertenencia de DX
∃DX (Docencia (DX) ∧ DX.cod_pro=PX.cod_pro ∧ condición de
pertenencia de PX
2.3.2 Cálculo Relacional de Tuplas.
¿Nombres de profesores que imparten mas de una asignatura?
{PX.nombreProfesor ( PX) ∧
PX es una variable libre:
devuelve valores de la BD
DX y DY son variables ligadas: se introducen para expresar condiciones
∃DY(Docencia(DY)∧DY.cod_pro=PX.cod_pro ∧ DX.cod_asg ≠ DY.cod_asg))}
condición de pertenencia de DY condición de
pertenencia de DX
∃DX (Docencia (DX) ∧ DX.cod_pro=PX.cod_pro ∧ condición de
pertenencia de PX
{PX.nombreProfesor ( PX) ∧
∃DY(Docencia(DY)∧DY.cod_pro=PX.cod_pro∧DX.cod_asg≠DY.cod_asg))}
Dominio de DX, DY
Dominio de PX
Dominio de definición Dominio de evaluación
Profesor Docencia
infinito
infinito finito
finito
2.3.2 Cálculo Relacional de Tuplas.
{X.nom_atributo
∃Y (C’(Y)
condición de pertenencia sobre X
fórmula abierta con la variable libre X que expresa las condiciones de la consulta variable libre
condición de pertenencia sobre Y variable
ligada
C(X) ∧ F ( X) }
∧ F’ ( X, Y))
condición de pertenencia de DX
condición de pertenencia de AX condición de
pertenencia de PX
2.3.2 Cálculo Relacional de Tuplas.
¿Nombres de profesores que imparten todas las asignaturas?
{PX.nombreProfesor ( PX) ∧
∀AX ( Asignatura (AX)
∃DX(Docencia(DX)∧DX.cod_pro=PX.cod_pro∧DX.cod_asg=AX.cod_asg)→ )}
AX Asignatura (AX)
F1 F2
F=F1 →F2
valores de AX que no están en
Asignatura falso cierto
1, ..., 2 cierto
MAD cierto cierto
2.3.2 Cálculo Relacional de Tuplas.
∃DX(Docencia(DX)∧...
DX
1, ..., 10 cierto
BDA falso falso
PX RFC
falso
Profesor Docencia
JCC MAD cierto 1, ..., 10 falso falso
falso Asignatura
...
condición de pertenencia de DX
condición de pertenencia de AX condición de
pertenencia de PX
¿Nombres de profesores que imparten todas las asignaturas de su departamento?
{PX.nombreProfesor ( PX) ∧
∀AX ( (Asignatura (AX) ∧ AX.cod_dep = PX.cod_dep)
∃DX(Docencia(DX)∧DX.cod_pro=PX.cod_pro∧DX.cod_asg=AX.cod_asg)→ )}
2.3.2 Cálculo Relacional de Tuplas.
{X.nom_atributo
∃ Y (C’(Y)
condición de pertenencia sobre X
fórmula abierta con la variable libre X que expresa las condiciones de la consulta variable libre
condición de pertenencia sobre Y variable
ligada
C(X) ∧ F ( X) }
∧ F’ ( X, Y))
∀Y (C’(Y)
condición de pertenencia sobre Y variable
ligada
F’ ( X, Y)) }
→
Fórmula segura: se puede evaluar accediendo sólo a la extensión de la BD
2.3.2 Cálculo Relacional de Tuplas.
Cálculo Relacional de Tuplas:
•lenguaje de 1er orden con variables de tipo tupla.
•las variables-tupla se definen sobre el
esquema de una relación y sus dominios suelen ser infinitos.
•los predicados relacionales son de aridad 1.
•R(t) se evalúa a CIERTO si la tupla t está en la extensión de R en la BD.
•las condiciones de pertenencia de la forma R(t) y la forma sintáctica de las fórmulas evitan las evaluaciones infinitas.
Ejercicios:
1. Obtener el código de los profesores que imparten asignaturas que no son de su departamento.
2. Obtener el nombre de los profesores que tienen toda su docencia en la misma asignatura 2.3.2 Cálculo Relacional de Tuplas.