A lógica aplicada no modelo relacional

Post on 13-Jan-2017

265 views 1 download

Transcript of A lógica aplicada no modelo relacional

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

mailson.proenca@dc.ufscar.br

1

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