Académique Documents
Professionnel Documents
Culture Documents
Banco de Dados II
Técnica
Estrutura da Consulta
Regra 1 Regra 1
[Programa Datalog] Regra 2 Regra 2
Regra n Regra n
Consulta
Onde:
• NovaRelação: é uma nova relação derivada, resultado da execução do corpo
da regra. É definir por um literal;
• Relação (1, ... , n): é uma relação base ou derivada;
• Predicado: é uma expressão aritmética sobre uma das variáveis das Relações
(1, ... , n).
Literal:
Relação (campo 1, campo 2, ... , campo n)
Onde:
• Relação é uma relação base ou derivada;
• Campo (1, ... , n) é uma variável ou uma constante que representa o valor do
atributo da relação que está na mesma posição (ordem).
Colocando uma variável na posição de certo atributo, indicamos que este
atributo poderá conter qualquer valor. Colocando uma constante (valor) indicamos que
o atributo deve conter um valor igual ao da constante. A relação só mostrará os registros
que atendem as exigências dos atributos, sendo assim usado para definir critérios de
consulta.
Ex.: sendo a estrutura de uma tabelo chamada depósito:
Nome_agência, número, nome_cliente, saldo
Podemos utilizar a seguinte relação:
Depósito(“Tramandaí”, X , Y , Z )
Saldo = qualquer valor
Cliente = qualquer cliente
Número = qualquer número
Agência = “Tramandaí”
Esta regra indica que a nova relação derivada Rel conterá os campos cliente (Y)
e número (X) da relação base Depósito. Sendo que:
• Da relação Depósito só os registros agência = “Tramandaí” serão utilizados;
• Estes registros devem atender ainda a exigência do predicado saldo (Z)>200.
Resumo: Rel é uma relação derivada que tem o nome e o número dos clientes
que fizeram depósito na agência Tramandaí e com valor maior que 200.
Instanciação de uma regra: é o registro que aplicado-se a regra (substituir
variáveis pelos seus valores) resulta em verdade (satisfaz as condições da regra).
Instrução de Consulta
Ex. Programa:
Conhecendo-se a aplicação das regras podemos formar um programa, pois como
foi mencionado: um programa é um conjunto de regras. Sendo a base de dados uma
editora de revistas:
Cliente (cliente, cidade, fone, renda, número_revistas)
Tabela de assinantes ou ex-assinantes de revista da editora
Vamos elaborar um programa que ao final tenha uma relação que contenha o
nome e o fone dos clientes que tem renda maior que R$ 1000 e interesse em
informática.
Produto cartesiano:
O produto cartesiano entre duas relações dá-se da seguinte forma:
RelProduto (X1, ... , Xn, Y1, ... , Yn): - rel1 (X1, ... , Xn), rel2 (Y1, ... ,Yn)
Onde Xi e Yi são variáveis distintas
União:
Produzir uma relação de união entre duas regras dá-se utilizando a mesma
cabeça para o corpo das duas regras. <observar a diferença da atribuição>
RelUnião (X1, ... , Xn): - rel1 (X1, ... , Xn), predicado
RelUnião (X1, ... , Xn): - rel2 (X1, ... , Xn), predicado
Ex.: Consultar nome e renda de todos os clientes de Torres e Tramandaí.
Rel (A,D): - Cliente (A, “Torres”, C, D, E)
Rel (A,D): - Cliente (A, “Tramandaí”, C, D, E)
Outra forma equivalente seria usar a instrução query:
Query (A,D) : - Cliente (A, “Torres”, C, D, E)
Query (A,D) : - Cliente (A, “Tramandaí”, C, D, E)
Diferença e Negação
Recursão
Vantagens
Características
A hipótese da primeira forma normal (1FN) diz que os atributos devem ter
domínios atômicos, ou seja, o domínio deve ser unidade indivisível possuindo um valor
único, não é permitido algo como um array de valores. Entretanto, os exemplos que
motivaram novas aplicações de banco de dados nem sempre são compatíveis com a
hipótese da 1FN. Em vez de ver o banco de dados como um conjunto de registros,
usuários das novas aplicações encaram o banco de dados como um conjunto de objetos.
Esses objetos requerem diversos registros para suas representações.
O modelo relacional encaixado é uma extensão do módulo relacional no qual os
domínios podem ser valores atômicos ou assumirem valores que são relações. Assim o
valor de um atributo pode ser uma relação, e o valor de um atributo dessa relação pode
ser outra relação. Isto permite a construção de um objeto complexo que pode ser
representado em uma única tupla de uma relação encaixada.
Técnica
Doc1 (1FN)
Título Autor Dia Mês Ano Palavra-chave
Plano de venda Samuel 1 Abril 95 Lucro
Plano de venda João 1 Abril 95 Lucro
Plano de venda Samuel 1 Abril 95 Estratégia
Plano de venda João 1 Abril 95 Estratégia
Relatório geral João 17 Junho 97 Lucro
Relatório geral Fábio 17 Junho 97 Lucro
Relatório geral João 17 Junho 97 Pessoal
Relatório geral Fábio 17 Junho 97 Pessoal
Título Palavra-chave
Plano de venda Lucro
Plano de venda Estratégia
Relatório geral Lucro
Relatório geral Pessoal
Onde:
• Doc tem 4 atributos;
• O atributo título tem domínio atômico;
• Os outros atributos tem domínios com valores que são relações, que são
definidas logo abaixo;
• Uma relação lista_autor é simplesmente um conjunto de autores;
• O mesmo ocorre com o atributo lista_palavra-chave;
• Já a data é definida por 3 atributos (Dia, Mês e Ano). Note que deste modo é
permitido a um documento ter um conjunto de datas, porém no nosso exemplo
somente uma data para cada documento é necessária.
select Título
from Doc
where “João” in Lista_Autor
and “Lucro” in Lista_Palavra-chave
Na SQL padrão as funções de agregação (avg, min, max, sum, count) tomam um
conjunto como argumento e retornam um valor como seu resultado. A SQL/NF permite
que estas funções sejam aplicadas a qualquer expressão que dê uma relação como
resultado. Vamos observar um exemplo do uso dessas funções na elaboração da
seguinte consulta “Dê o título e número de autores de cada documento”:
É permitido ainda que condições sobre conjuntos, que em SQL padrão são usadas
nas cláusulas “having”, sejam diretamente colocadas na cláusula “where”.
Considerando o esquema de banco de dados abaixo, examinemos o exemplo:
Consultar o nome e total de pontos dos jogadores com mais de 100 pontos.
Por exemplo desencaixar a lista de autores em único campo para a relação Doc:
Para gerar a relação Doc a partir de Doc1 (na 1FN) utilizamos os seguinte
comandos de encaixe:
Vantagens
estão sendo aplicados às mais diferentes áreas, das ciências humanas à neurologia, não
Por serem uma extensão do modelo relacional é provável que não ocorra nenhum
“trauma” na transição de um modelo para o outro, tanto para o analista quanto para os
usuários, sendo este grande fator a favor dos bancos de dados relacionais estendidos.
Bibliografia