Abordagens
Teóricas
para
a
Especificação
de
Linguagens
de
Consulta Relacionais
Ana Maria de Carvalho Moura
LNCC – DEXL Lab
AMCM 2
Linguagens Relacionais
Abordagens utilizadas
Linguagens algébricas:
consultas são
expressas a partir de operadores aplicados
às relações
Linguagens baseadas no Cálculo
Relacional
Cálculo Relacional de Tuplas (CRT):
consultas são feitas diretamente sobre as
tuplas que satisfazem às condições
especificadas pelo predicado (lógica de 1
a
ordem - LPO);
Cálculo Relacional de Domínios (CRD):
consultas são feitas diretamente aos elementos
do domínio da relação
AMCM 3
Álgebra Relacional
Baseada na teoria de conjuntos, onde as operações sobre
conjuntos são utilizadas para manipular relações inteiras.
O resultado dessas operações é uma nova relação.
Adaptação p/ relações: conjuntos finitos e nomeação
Dois grupos de operações:
Operações da Teoria Matemática dos Conjuntos
UNIÃO - INTERSEÇÃO - DIFERENÇA - PRODUTO CARTESIANO
Operações desenvolvidas especificamente para bancos de
dados relacionais
AMCM 4
Uma instância de banco de dados relacional
EMPREGADO LOCAL_DEPT
Nome CPF Data-Nasc Endereço Sexo Salário Supervisor Dept
Nome Núm Gerente Data-Inicio
Num-Dept Localização
Nome Núm Local Dept
CPF-Emp Num-Proj Horas
CPF-Emp Nome-Dep Sexo Data-Nasc Relacionamento
DEPARTAMENTO PROJETO TRABALHA_EM DEPENDENTE Joao Frank Alicia Jane Ramon Joyce Ahmad James 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 09Jan55 08Dez45 19Jul58 20Jun31 15Set52 31Jul62 29Mar59 10Nov27 333445555 888665555 987654321 888665555 333445555 333445555 987654321 nulo Santos,SP Santos,SP Tatui,SP Lins,SP Marilia,SP Santos,SP Santos,SP Santos,SP M M F F M F M M 30000 40000 25000 43000 38000 25000 25000 55000 5 5 4 4 5 5 4 1 Pesq Adm Sede 5 4 1 333445555 987654321 888665555 22Mai88 01Jan92 19Jun91 1 4 5 5 5 Santos Campinas Lins Bauru Santos 123456789 123456789 666884444 453453453 453453453 333445555 123456789 333445555 333445555 123456789 999887777 123456789 987987987 987654321 123456789 888665555 ProdutoX ProdutoY ProdutoZ Informat. Reorgan. Beneficios 1 2 3 10 20 30 Lins Bauru Santos Campinas Santos Campinas 5 5 5 4 1 4 1 2 3 1 2 2 3 10 20 30 10 10 30 30 20 20 32,5 7,5 40,0 20,0 20,0 10,0 10,0 10,0 10,0 30,0 10,0 35,0 5,0 20,0 15,0 nulo 333445555 333445555 333445555 987654321 123456789 123456789 123456789 Alice Teo Joy Abner Miguel Alice Beth F M F M M F F 05Abr76 25Out73 03Mai48 29Fev32 01Jan78 31Dez78 05Mai57 Filha Filho Esposa Esposo Filho Filha Esposa
AMCM 5
Operadores básicos
UNIÃO
(R
1
R
2)
A união de relações R
1e R
2é o conjunto de
tuplas que estão em R
1, R
2ou em ambas. As
relações devem ser união compatíveis.
DIFERENÇA
(R1 - R2)
A diferença entre 2 relações R
1e R
2é o conjunto
de tuplas que estão em R
1mas que não estejam em
R
2. R
1e R
2devem ser união compatíveis.
AMCM 6
Exemplos
Lista de novos projetos
Nome Num Local Dept
BD 5 Rio 4 Produto X 1 Lins 5
Nov_proj
U_PR=Projetos Nov_pro j
União :
Nome Núm Local Dept
U_PR
ProdutoX ProdutoY ProdutoZ Informat. Reorgan. Beneficios BD 5 1 2 3 10 20 30 5 5 5 4 1 4Diferença:
D_PR =Projetos - Nov_Proj
Lins Bauru Santos Campinas Santos Campinas Rio 4
Nome Núm Local Dept
ProdutoY ProdutoZ Informat. Reorgan. Beneficios 2 3 10 20 30 5 5 4 1 4 Bauru Santos Campinas Santos Campinas
D_PR
AMCM 7
Operadores básicos
PRODUTO CARTESIANO
(PC)
Sejam 2 relações R
1
(a
1
,a
2
,...a
n
) e R
2
(b
1
,b
2
,...b
m
)
de aridade K
n
e K
m
respectivamente.
O PC de R
1
X R
2
é uma relação Q com n+m
atributos, i.e., Q(a
1
,a
2
,...a
n
,b
1
,b
2
,...b
m
),
onde
os K
n
primeiros componentes formam uma tupla de
R
1
e os últimos K
m
componentes formam
uma
tupla de R
2
. Assim, se R
1
tiver r
1
tuplas e R
2
r
2
tuplas, Q terá r
1
*r
2
tuplas.
AMCM 8
Exemplos
Produto Cartesiano:
DEP_PROJ = Departamento X Nov_Proj
Pesq 5 333445555 22mai88 BD 5 Rio 4 Adm 4 987654321 01Jan92 BD 5 Rio 4 Sede 1 888665555 19Juin91 BD 5 Rio 4 Pesq 5 333445555 22mai88 ProdutoX 1 Lins 5 Adm 4 987654321 01Jan92 ProdutoX 1 Lins 5 Sede 1 888665555 19Juin91 ProdutoX 1 Lins 5
Nome Num Gerente Data Nome Num Local Dept
DEP_PROJ
AMCM 9
Operadores básicos
PROJEÇÃO
(
)
Operação unária, utilizada para recuperar um subconjuto de atributos. O resultado é
sempre uma relação. Tuplas iguais são eliminadas.
Notação: S=
i1, i2, ... ij(R)
SELEÇÃO
(
σ
)
Operação unária, serve para se obter um subconjunto de tuplas que atende a uma
certa condição. O resultado é sempre uma relação
Notação: S=
F(R) onde:
R é uma relação e F é uma fórmula envolvendo:
- operandos: constantes ou nomes de
atributos;
- operadores relacionais:<,=,> ...
- operadores lógicos:
,
,
AMCM 10
Exemplos
Seleção:
PR =
Dept= 5(Projetos)
Nome Núm Local DeptPR
ProdutoX ProdutoY ProdutoZ 1 2 3 5 5 5 Lins Bauru SantosProjeção
:
PROJ =
Nome,Dept
(Projetos)
Nome Dept ProdutoX ProdutoY ProdutoZ Informat. Reorgan. Beneficios 5 5 5 4 1 4
PROJ
AMCM 11
Operações derivadas
INTERSEÇÃO (R
1
R
2)
R
1 R
2= R
1- ( R
1- R
2)
DIVISÃO
Sejam R
1e R
22 relações de aridade r1
e r2, onde r1> r2 e r2
0. R
1
R
2é o
conjunto de (r1 - r2) tuplas tq p/ todas
as tuplas u de R
2, a tupla tu está
presente em R
1.
JUNÇAO
(
R
1
R
2)
=
(R
1X R
2)
A junção de
R
1e R
2sobre as colunas i e
j, onde
representa a condição de
seleção sobre o PC de R
1X R
2. Os
domínios devem ser
compatíveis.
JUNÇÃO NATURAL
Junção, onde existe o mesmo atributo
nas 2 relações
AMCM 12
Exemplos
Interseção:
I_PR= Projetos
Nov_Proj
Nome Núm Local Dept
ProdutoX 1 Lins 5
I_PR
Divisão :
DTRAB =
CPF-Emp(
CPF-Emp,Num-proj(Trabalha)
Num(Projetos))
A divisão pode ser expressa como uma seqüência de operações
básicas:
T=
CPF-Emp(
Trabalha)
U=
CPF-Emp(
Num-Proj
(Projetos) X T)-Trabalha) (tuplas u)
V= T-U
Sabendo-se que t contém todas as tuplas de T, i.e. T(t),
então V conterá todas as tuplas tq
tu
T
CPF-Emp
123456789
AMCM 13
Exemplos – Junção natural
Nome Gerente Data-Inicio Pesq Pesq Pesq Pesq 333445555 333445555 333445555 333445555 22Mai88 22Mai88 22Mai88 22Mai88
DepPro
=
Empregado
(Departamento)
(Dept=5)
Nome CPF Data-Nasc Endereço Sexo Salário Supervisor Dept Joao Frank Ramon Joyce 123456789 333445555 666884444 453453453 09Jan55 08Dez45 15Set52 31Jul62 333445555 888665555 333445555 333445555 Santos,SP Santos,SP Marilia,SP Santos,SP M M M F 30000 40000 38000 25000 5 5 5 5
DepPro
DepPro
AMCM 14
Funções Agregadas
Algumas consultas comuns em bancos de dados não podem ser
executadas apenas com as operações da álgebra relacional. A
maioria das linguagens de consulta dos SGBDs relacionais inclui
funções matemáticas agregadas
que permitem executar consultas
sobre coleções de valores do banco de dados.
As mais usuais são:
SOMA (SUM)
MÉDIA (Average)
MÁXIMO (Max)
MÍNIMO (Min)
CONTAGEM - COUNT (de tuplas)
AMCM 15
Exemplos
Calcular a média salarial dos empregados
que trabalham no depto 5:
media_sal
(
depto=5
average
(salario)
(E
mp))
Obter o nº de empregados para cada depto
e a média salarial dentro do depto:
dep,num empreg,media_sal
(
dept
count
(cpf)
,
average
(salario
)(E
mp))
AMCM 16
Outras operações da Álgebra
Relacional
Outer Join
Left Outer Join: ]X
Mantém cada tupla na 1
a
relação em R]X S; se
nenhuma tupla é achada em S, então os atributos de
S no resultado são preenchidos com nulos.
AMCM 17
Empregado
N
0emp
Nome
End
Chefe
N
0dep
100
Joao
R.X
200
15
120
Alfredo
R.y
100
10
150
Pedro
R.Z
100
10
200
Ana
R.X
300
15
250
Claudia
R.Z
200
15
300
Danielle
R.K
null
20
Departamento
Nomedep
N
0
dep
chefe
Pessoal
10
100
Inform
15
200
Admin
20
300
AMCM 18
Left Outer Join
Exemplo:
Empregado (n
0
emp, nome, chefe, n
0
dep)
Depto(nomedep, n
0
dep, chefe)
Listar os nomes dos empregados e nome dos deptos
que eles gerenciam, quando for o caso
Res
nome, nomedep
(Empregado ]X
n0emp=chefe
Departamento)
AMCM 19
Res
Nome
Nomedep
João
Pessoal
Alfredo
Null
Pedro
Null
Ana
Inform
Claudia
Null
Danielle
Admin
AMCM 20
Outras operações da Álgebra
Relacional - cont
Right Outer Join (X[)
Mantém cada tupla na 2
a
relação em R X [S;
AMCM 21
Right Outer Join (X[)
Nome
Nomedep
João
Pessoal
Ana
Inform
Danielle
Admin
Null
Biblioteca
Res
AMCM 22
Outras operações da Álgebra
Relacional - cont
Full Outer Join (]X[)
Mantém todas as tuplas em ambas
relações quando nenhuma tupla é
encontrada
Res
nome, nomedep
(Empregado ] X [
n0emp=chefe
Departamento)
AMCM 23
Full
Outer Join (]X[)
Nome
Nomedep
João
Pessoal
Alfredo
null
Pedro
null
Ana
Inform
Claudia
null
Danielle
Admin
Null
Biblioteca
Res
AMCM 24
Outras operações da Álgebra
Relacional - cont
Outer Union Join
Realiza a união de tuplas de 2 relações
que não são união-compatíveis (UC),
mas parcialmente compatíveis
AMCM 25
Outer Union Join
Exemplos
Ex 1:
A
B
Res
a
b
d
a
b
c
d
11
12
13
1 2 3 null
14
15
16
4
5 6 null
7 8 9 null
11
12 null 13
14 15 null 16
a
b
c
OUJ
1
2
3
4
5
6
7
8
9
Ex 2:
Aluno ( nome, matr, dep, orientador)
Prof (nome, matr, dep, grau)
AMCM 26
Finalmente, a Álg. Relac é:
Conjunto de operações
completo
, isto é,
qualquer uma das outras operações pode ser
expressa como uma seqüência de operações
deste conjunto.
As linguagens de consultas baseadas na Álgebra
Relacional são denominadas
procedurais
É necessário especificar a seqüência e a ordem
dos operadores a serem executados
AMCM 27
Exemplos de consultas
Empregado(cpf,nome,data_nasc,sal,ndep)
Dept(ndep,cpf_gerente,data_inicio)
Trabalha(cpf,nproj,nhoras)
Projeto(nproj,nomepr,nhoras)
Exemplos:
1.
Que empregados são chefes de
departamento com menos de 30 anos?
R
nome
( (
data_nasc >1983
(E
mp
)
(
cpf_gerente
(
Dep
))
AMCM 28
Exemplos de consultas (cont)
2.
Empregados que ganham mais do que
R$5.000,00 e que trabalham no projeto “Web
Semântica”
R
nome
(
cpf,nome
(
sal >5000
(E
mp
)) (
cpf
(
Trabalha
)
(
proj
(
nomepr=“Web Semant”
(
Proj
))))
3.
Que empregados trabalham em todos
os projetos?
AMCM 29
Exemplos de consultas (cont)
4.
Que empregados trabalham em algum
projeto que o Silva trabalha?
R
nome
(
EMP
cpf
(Trabalha
(
nproj
(Trabalha)
cpf
(
nome=“Silva”
(E
mp
)))))
5.
Liste os empregados que trabalham em
mais de 3 projetos
Total_emp(cpf,nºproj)
cpf
count
(nproj
)(Trabalha))
AMCM 30
Exemplos de consultas (cont)
6. Liste os nomes dos empregados que
trabalham em todos os projetos em
que João Silva trabalha.
R
nome
(Emp
cpf
(
Trabalha
nproj
(Trabalha
cpf
(
nome=“João Silva”(Emp)))))
7. Liste os nomes dos empregados que não
trabalham no depto 5.
AMCM 31
ISBL
(Information System Base Language)
Linguagem baseada na Álgebra Relacional
IBM – Inglaterra para utilização PRTV (Peterlee Relational Test
Vehicle)
Álgebra Relacional
ISBL
R U S
R + S
R – S
R – S
R
S
R . S
σ
F(R)
R : F
π
A1, ... , An(R)
R % A
1,
... ,A
nR
S
R * S
LIST
(impressão valores)
N! (avaliação por nome). Retarda avaliação
AMCM 32
Consultas em ISBL
ASSOCIADOS
(NOME, ENDER,BALANÇA)
PEDIDOS
(NORD, NOME, ITEM, QUANT)
FORNECEDORES
(NOMEF, ENDF, ITEM, PREÇO)
(1) Liste o nome dos associados com balança negativa
LIST ASSOCIADOS : BALANÇA < 0 % NOME
(2) Liste nome fornecedor, itens e preços de todos
fornecedores que forneçam no minimo 1 item encomendado
por silva
T = N ! FORNECEDORES * N ! PEDIDOS
AMCM 33
Cálculo Relacional
Também denominado Cálculo de Predicados
baseado na Lógica de 1
a
Ordem (LPO)
LPO: sistema formal p/ definição de teorias a
respeito de um universo de discurso. Definida a
partir de um alfabeto
parênteses
variáveis, constantes, símbolos funcionais,
predicados
conectivos lógicos:
,
,
,
,
quantificadores universal (
), existencial (
)
Uma instância de um BDR é uma interpretação
AMCM 34
Notação utilizada pela LPO
Termo:
definido recursivamente como constante ou
variável, ou se f é um símbolo funcional de aridade
n, e se t
1
, ..., t
n
são termos, então f(t
1
, ..., t
n
) são
termos.
Fórmula Atômica (fa):
Se p é um predicado, e t
1
,
..., t
n
são termos, então p(t
1
, ..., t
n
) é uma fórmula
atômica
Literal:
é uma fórmula atômica ou a sua negação
Fórmulas bem Formadas (fbf):
definidas
recursivamente, como sendo uma fórmula atômica
ou como a combinação qualquer de fa, através de
conectivos lógicos.
AMCM 35
Cálculo Relacional de Tuplas
Representação:
{t|
(t)}
t: variável do tipo tupla
:fbf
Letras maiúsculas: relações
minusc: tuplas, variáveis
Os átomos da fórmula são de 3 tipos:
R(s), onde s é uma tupla de R;
s.i
u.j
, i.e, o i-ésimo elemento da tupla s está
relacionado ao j-ésimo elemento da tupla u;
AMCM 36
Variável livre/ ligada
Variável ligada: associada a um
quantificador (
,
) - resultado
V/F;
Exs:
(
s) (
):
um valor s tq quando
substituída por todas as ocorrências de s
em
, a fórmula
torna-se
V
;
(
s
) (
): a fórmula
torna-se
V
p/ qq
ocorrência de s em
.
AMCM 37
Fórmulas bem formadas
Para ser uma fórmula é necessário obedecer às seguintes
regras:
1.
Todo átomo é uma fórmula;
2.
Se
1e
2são fórmulas
(
1
2), (
1
2) e (
1) são
fórmulas;
3.
Se
1é uma fórmula
(
s)(
) é uma fórmula;
4.
Se
1é uma fórmula
(
s)(
) é uma fórmula;
5.
Parênteses podem ser colocados quando necessário.
Ordem de precedência dos operadores:
1.
1
0: operadores relacionais;
2.
2
0:
,
3.
3
0:
,
,
AMCM 38
CRT X Álgebra Relacional
Operadores da Álgebra Relacional
podem ser expressos na forma de
CRT
Exercício
Expressar os operadores união,
diferença, prod. cartesiano, projeção e
seleção em termos de CRT
AMCM 39
Transformando operadores
Alg
CRT
1.
União:
{t|R(t)
S(t)}
2.
Diferença:
{t| R(t)
S(t)}
3.
Seleção:
{t| R(t)
F´}
4.
Projeção:
{u.a
1
...u.a
k
)
| (
t)R(t)
u.a
1
=t.a
i
...
... u.a
k
=t.a
i+k
}
5.
Prod.
Cart:W=RXS
{q.a
1
...q.a
n+k
W(q)|
(
t)R(t
n
)
(
u)S(u
k
)
q.a
1
=t.a
1
...
...
q.a
n
=t.a
n
q.a
n+1
=u.b
1
...
...
q.a
n+k
=u.b
k
}
AMCM 40
Consultas em CRT
Empregado(cpf,nome,data_nasc,sal,ndep)
Dept(ndep,cpf_gerente,data_inicio)
Trabalha(cpf,nproj,nhoras)
Projeto(nproj,nomepr,nhoras)
Exemplos:
1.
Que empregados são chefes de departamento com
menos de 30 anos?
{e.nome| Emp(e)
e.data_nasc > 1983
(
d) Dept(d)
AMCM 41
Exemplos
2.
Empregados que ganham mais do que
R$5.000,00 e que trabalham no projeto “Web
Semântica”
{e.nome| Emp(e)
e.sal>5000
(
t) Trabalha(t)
e.cpf=t.cpf
(
p) Projeto(p)
t.nproj=p.nproj
p.nomeproj= “Web Semântica”}
Ou
{e.nome| Emp(e)
e.sal>5000
((
t) (
p)
Trabalha(t)
Projeto(p)
e.cpf=t.cpf
t.nproj=p.nproj
p.nomeproj= “Web
Semântica”)}
AMCM 42
Exemplos
3.
Que empregados trabalham em algum
projeto em que Silva trabalha?
{e.nome| Emp(e)
((
p) Projeto(p)
(
p1) Projeto(p1)
(
e1) Emp(e1)
e1.nome= “Silva”
(
t) Trabalha(t)
t.cpf=e1.cpf
(
t1) Trabalha(t1)
t.nproj=t1.nproj)
t1.cpf=e.cpf)}
4.
Empregados que não trabalham no projeto
“Portais Semânticos”
{e.nome| (Emp(e)
(
t) Trabalha(t)
t.cpf=e.cpf
(
(
p)
(Projeto(p)
p.nome= “Portais Semânticos”
AMCM 43
Transformações de quantificadores
É possível transformar fbf que utilizam quantificadores
existenciais em expressões equivalentes:
(
x) (P(x))
(
x)
(P(x))
(
x) (P(x))
(
x)
(P(x))
(
x) (P(x)
Q(x))
(
x) ((
P(x))
(
Q(x)))
(
x) (P(x)
Q(x))
(
x) ((
P(x))
(
Q(x)))
(
x) (P(x)
Q(x))
(
x) ((
P(x))
(
Q(x)))
(
x) (P(x)
Q(x))
(
x) ((
P(x))
(
Q(x)))
Além disso, são válidas também as expressões:
(
x) (P(x))
(
x) (P(x))
(
x) (P(x))
(
x) (P(x))
a
b
a
b
AMCM 44
Divisão
5.
Que empregados trabalham em
todos os projetos?
{e.nome| Emp(e)
((p) Projeto(p)
(t)
(Trabalha(t)
e.cpf=t.cpf
t.nproj=p.nproj))}
6.
Que empregados trabalham em
todos os projetos em que o Silva
trabalha?
AMCM 45
Re-fraseando a consulta
“Não existe um só projeto em que o
Silva trabalhe e que alguém não
trabalhe”
{e.nome| Emp(e)
(
(
p) (Projeto(p)
(
e1) Emp(e1)
e1.nome=“Silva”
(
t1)
(Trabalha(t1)
e1.cpf=t1.cpf ))
(
(
t)
Trabalha(t)
t.nproj=t1.nproj
Outras soluções
{e.nome| Emp(e)
((
p) (
(Projeto(p))
((
e1)
Emp(e1)
e1.nome=“Silva”
(
t1) (Trabalha(t1)
e.cpf=t1.cpf ))
((
t) (Trabalha(t)
t.nproj=t1.nproj
e.cpf=t.cpf))))
Decompondo a consulta:
{e.nome| Emp(e)
F´}
F´= ((
p) (
(Projeto(p))
F1))
F1=
((
e1) Emp(e1)
e1.nome=“Silva”
(
t1)
(Trabalha(t1)
e.cpf=t1.cpf ))
F2
F2= ((
t) (Trabalha(t)
t.nproj=t1.nproj
.cpf=t.cpf))
AMCM 47
Restringindo o CRT a relações finitas
O CRT permite expressões do tipo:
{t|
(t)}
Hipótese do mundo fechado:
Domínio de uma fórmula - Dom(
):
Conjunto de todos os valores que
aparecem explicitamente em
ou em
uma ou mais relações cujos nomes
aparecem em
AMCM 48
Expressões seguras (safe)
Uma expressão {t|
(t)} é segura se
atender às seguintes condições:
1.
Todos os valores que aparecem nas tuplas da
expressão são valores de Dom(
);
2.
Para cada sub-fórmula da forma (
s)(
(s)), a
sub-fórmula é V sse existir uma tupla com valores do
Dom(
) tq
(s) é V;
3.
Para cada sub-fórmula da forma (
s)(
(s)), a
sub-fórmula é V se todos os valores do Dom(
) forem V
para
(s).
Objetivo:
garantir que somente valores do
AMCM 49
Álgebra Relac. X CRT
O CRT, quando restrito à
expressões seguras, tem
expressividade equivalente
à
Álg. Relacional (completeza
relacional)
AMCM 50 {u(r)
(
t
1) … (
t
k) (R
1(t
1)
…
R
k(t
k)
u[1] = t
i1[j
1]
… u[r]= t
i1[j
1]}
Linguagem QUEL
Linguagem baseada no Cálculo Relacional de Tuplas
Sistema Ingres (Univ. of California, Berkley, inicio dos anos
70, Stonebraker)
S.O Unix, usada como linguagem interativa ou com ling.
hospedeira
Representação:
Range of t
1is R
1Range of t
2is R
2Range of t
kis R
kRetrieve (t
i1.A
1,……., t
ir.A
r)Where
´
AMCM 53
Cálculo Relacional de Domínios - CRD
O CRD
atua
sobre variáveis domínio, ao invés
de tuplas
Mesmo formalismo utilizado no CRT
Principais diferenças:
Os componentes das tuplas são variáveis domínio;
Átomos são da forma:
R(x
1x
2...x
n), onde R é uma relação n-ária e os x
isão
constantes ou variáveis dom;
x
y, onde x, y são constantes ou variáveis dom, e
um op. relacional;
Uso de conectivos (
,
,
) e quantificadores p/
AMCM 54
Cálculo Relacional de Domínios -
CRD
Representação
{(x
1
x
2
...x
n
) |
(x
1
x
2
...x
n
)}
: fórmula cujas únicas variáveis domínio
livres são as var. x
1
x
2
...x
n
Exercícios
AMCM 55
Exemplo
1.
Que empregados são chefes de departamento
com menos de 30 anos?
{nome|(
data) (
cpf) (
cpfger) (
sal) (
dep)
(Emp(cpf,nome,data,sal,dep)
data>1983
Dep(ndep,cpfger,data_in)
cpfger:cpf))}
2.
Que empregados ganham mais do que
R$5.000,00 e trabalham no projeto “Web
Semântica”?
{nome|(
sal) (
cpf) (
cpft) (
npr) (
nomep) (
nproj)
(
nhor) (
dep) (Emp(cpf,nome,data,sal,dep)
cpf:cpft
sal>5.000
Trabalha(cpft,nproj,nhor)
(Projeto(npr,nomep,nh)
npr=nproj
nomep=“
Web
AMCM 56