A lógica aplicada no modelo relacional

22
A lógica aplicada no modelo relacional Mailson de Queiroz Proença [email protected] 1

Transcript of A lógica aplicada no modelo relacional

Page 1: A lógica aplicada no modelo relacional

A lógica aplicada no modelo relacionalMailson de Queiroz Proença

[email protected]

1

Page 2: 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

Page 3: A lógica aplicada no modelo relacional

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

Page 4: A lógica aplicada no modelo relacional

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

Page 5: A lógica aplicada no modelo relacional

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

Page 6: A lógica aplicada no modelo relacional

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

Page 7: A lógica aplicada no modelo relacional

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

Page 8: A lógica aplicada no modelo relacional

Lógica de predicados

• Interpretação de fórmulas:

• Atribuir valores para:

• Constantes;

• Variáveis;

• Funções;

• Predicados (V ou F).

8

Page 9: A lógica aplicada no modelo relacional

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

Page 10: A lógica aplicada no modelo relacional

Modelo Relacional

Fonte: http://www.cavalcanteassociados.com.br/files/bd01_aa4.gif

10

Page 11: A lógica aplicada no modelo relacional

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

Page 12: A lógica aplicada no modelo relacional

Á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

Page 13: A lógica aplicada no modelo relacional

Á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

Page 14: A lógica aplicada no modelo relacional

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

Page 15: A lógica aplicada no modelo relacional

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

Page 16: A lógica aplicada no modelo relacional

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

Page 17: A lógica aplicada no modelo relacional

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

Page 18: A lógica aplicada no modelo relacional

Link com a lógica

• As interpretações das sentenças podem ser feitas

através de Diagramas de Venn:

18

Page 19: A lógica aplicada no modelo relacional

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

Page 20: A lógica aplicada no modelo relacional

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

Page 21: A lógica aplicada no modelo relacional

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

Page 22: A lógica aplicada no modelo relacional

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