A lógica aplicada no modelo relacional
-
Upload
mailson-queiroz -
Category
Software
-
view
264 -
download
1
Transcript of A lógica aplicada no modelo relacional
Roteiro
• Introdução;
• Lógica de Predicados;
• Modelo Relacional;
• Álgebra Relacional;
• Cálculo Relacional;
• Link com a lógica;
• Conclusão.
2
Introdução
• Modelo de gerenciamento de banco de dados mais
utilizado;
• Proposto em 1970 por Edgar F. Codd;
• Baseado na lógica de predicados;
3
Lógica de predicados
• Alfabeto:
• Variáveis: A, MAI, Miguel;
• Constantes: a, maria, 92;
• Símbolos funcionais: f(P), g(a), f2(X,y), pai(X,Y);
• Símbolos de predicados: f(P), g(a), f2(X,y), pai(X,Y);
• Conectivos: ¬, ˄, ˅, → e ↔.
• Quantificadores: ∀ e ∃;
• Símbolos de pontuação: ( ) e ,
4
Lógica de predicados
• Termo:
• Constante;
• Variável;
• Símbolos funcionais;
• Fórmulas bem formadas:
• Símbolos de predicado;
• Quantificadores;
Exemplos:a
X2
g(X1, b, f(f(f(a))))
Exemplos:p(a,b)
∀X q(X)
5
Lógica de predicados
• Escopo dos quantificadores:
• O escopo de um quantificador ocorrendo em uma
fórmula α é a fórmula à qual o quantificador se aplica:
• O escopo de ∀X em ∀X α é α;
• O escopo de ∃X em ∃X α é α;
• Variável ligada;
• Variável livre.
6
Lógica de predicados
• Linguagem de Primeira Ordem X Linguagem Natural
• Quantificador Universal:
• “tudo”, “cada”, “todos” - ∀X;
• Quantificador Existencial:
• “algum”, “alguns”, “pelo menos um” - ∃X;
7
Lógica de predicados
• Interpretação de fórmulas:
• Atribuir valores para:
• Constantes;
• Variáveis;
• Funções;
• Predicados (V ou F).
8
Modelo Relacional
• Modelo de dados representativo criado por Edgar
Codd, em 1970;
• Utiliza o conceito de relação matemática;
• Tabela de valores;
• Fundamenta-se na teoria de conjuntos e lógica de
predicados;
9
Modelo Relacional
Fonte: http://www.cavalcanteassociados.com.br/files/bd01_aa4.gif
10
Modelo Relacional
• Cada linha na tabela representa um conjunto de dados
relacionados;
• Uma linha é chamada de tupla, um cabeçalho da coluna é
chamado de atributo e a tabela é chamada de relação;
• O raciocínio é feito a partir da lógica de predicados sobre
dois valores: verdadeiro ou falso;
• Os dados são interpretados por meio de um cálculo
relacional ou uma álgebra relacional;
11
Álgebra Relacional
• Alicerce formal para as operações do modelo
relacional;
• Base para a implementação e otimização de consultas
nos módulos de otimização e processamento de
consultas.
• A manipulação de dados no modelo relacional
depende de um conjunto de operações:
12
Álgebra Relacional
• As principais operações da álgebra relacional são:
• Seleção: usada para escolher um subconjunto das tuplas de uma relação
que satisfaça uma condição;
• Projeção: utilizada para selecionar certas colunas e descarta as outras;
• Produto cartesiano: produz um novo elemento combinando cada tupla
de uma relação com cada membro da outra relação.
• União: junta duas relações eliminando tuplas duplicadas.
• Diferença entre conjuntos: inclui todas as tuplas que estão na primeira
relação mas que não estão na segunda.
13
Cálculo Relacional
• Oferece uma linguagem declarativa de nível mais alto para
especificar consultas relacionais;
• Baseado na lógica matemática;
• Utilizado pela linguagem de consulta padrão (SQL);
• Linguagem não procedimental:
• uma expressão de cálculo especifica o que deve ser recuperado
e não como ou em que ordem deve ser recuperado.
14
Cálculo Relacional
• O cálculo relacional de tupla é baseado na especificação de
uma série de variáveis de tupla, tendo a seguinte forma:
(t1A1,t2A2,…,tnAn | COND(t1,t2,…,tn+1, tn+2,…,tn+m))
• t1,t2,…,tn são variáveis de tupla;
• Cada A é um atributo da relação;
• COND(t) é uma expressão condicional ou fórmula:
• composta por cálculos de predicados ou átomos;
• valor verdade do átomo (V ou F).
15
Cálculo Relacional
• Utiliza os símbolos conectivos e quantificadores da lógica de
predicados;
• Quantificador existencial: se pelo menos uma tupla satisfazer a
fórmula como verdadeira;
• Quantificador universal: se e somente se todas tuplas forem
verdadeiras;
• Exemplo:
f.Nome — FUNCIONARIO(f) AND ((∃p) (∃t)(PROJETO(p) AND
TRABALHA(t) AND p.Dep = 5 AND t.cpf = f.cpf AND p.ProjNum =
t.ProjNum))
16
Link com a lógica
• Enunciados mais comuns da lógica de predicados:
1. “Todo P é Q” (universal afirmativa);
2. “Nenhum P é Q” ou “Todo P não é Q” (universal
negativa);
3. “Algum P é Q” (existencial afirmativa);
4. “Algum P não é Q” (existencial negativa);
(∀X)(p(X) → q(X))
(∀X)(p(X) → ¬q(X))
(∃X)(p(X) ˄ q(X))
(∃X)(p(X) ˄ ¬q(X))
17
Link com a lógica
• As interpretações das sentenças podem ser feitas
através de Diagramas de Venn:
18
Link com a lógica• Na linguagem natural:
• Listar os nomes dos funcionários que trabalham em algum projeto do
gerente com Id número 5.
• Interpretação do cálculo relacional:
f.Nome — FUNCIONARIO(f) AND ((∃p) (∃t)(PROJETO(p) AND TRABALHA(t) AND
p.Dep = 5 AND t.cpf = f.cpf AND p.ProjNum = t.ProjNum))
• Consulta sql:
• SELECT f.nome FROM funcionario f INNER JOIN trabalha t ON
f.IdFuncionario = t.IdFuncionario INNER JOIN projeto p ON p.IdProjeto =
t.IdProjeto WHERE p.IdGerente = 5
19
Link com a lógica
• Modelo relacional também considera os valores como
verdadeiro e falso.
• As consultas só retornam dados das sentenças que
foram interpretadas como verdadeiras.
• Exemplo:
• Em um SELECT somente as tuplas que satisfazerem todas
condições são retornadas;
20
Conclusão
• Lógica de predicados está diretamente relacionada
com o modelo relacional;
• Álgebra relacional e o cálculo relacional compõem a
base de ambos;
• O entendimento da lógica de predicados é essencial
para o entendimento do funcionamento do modelo
relacional.
21
BibliografiaAbar, C. (2004). Noções de lógica matemática. http://www.pucsp.br/ logica/Calculode-Predicados.htm. Acessado em: 21/05/2015.
Codd, E. F. (1970). A relational model of data for large shared data banks. In Baxendale, P., editor, Communications of the ACM 13(6), pages 377–387.
Elmasri, R. and Navathe, S. B. (2011). Sistemas de Banco de Dados. Pearson, 6th edition.
Nicoletti, M. D. C. (2008). A Cartilha da lógica. EdUFSCar, 1th edition.
Silberschatz, A., Korth, H. F., and Sudarshan, S. (2006). Sistema de Banco de Dados.
Elsevier, Rio de Janeiro, 5th edition.
Souza, J. N. D. (2008). Lógica para computação: uma introdução concisa. Elsevier, Rio de Janeiro, 2th edition.
Alguns slides foram baseados do material Lógica de Predicados -Profa. Helena Caseli – 2015.
22