Your SlideShare is downloading. ×
  • Like
Banco de Dados Relacional Estendido
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Banco de Dados Relacional Estendido

  • 460 views
Published

Baixe mais arquivos em http://pastadomau.wikidot.com. …

Baixe mais arquivos em http://pastadomau.wikidot.com.
Este trabalho mostra duas extensões do tradicional modelo relacional para banco de dados. Essas extensões do modelo relacional visam ampliar a aplicabilidade do banco de dados sem sacrificar o fundamento relacional.
As duas extensões abordadas são:
- Modelo Baseado em Lógica
- Modelo Relacional Encaixado

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
460
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
9
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. UNIVERSIDADE LUTERANA DO BRASILCENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃOBANCO DE DADOS RELACIONAL ESTENDIDO MAURICIO VOLKWEIS ASTIAZARA IGOR CASA NOVA DOS SANTOS Banco de Dados II Torres, Junho de 2001
  • 2. Introdução Com este trabalho visamos conhecer um dos tipos de banco de dados nãoconvencional: o modelo relacional estendido. Procuramos passar pelo conceito debanco de dados relacional estendido, características, técnica utilizada e vantagens.
  • 3. Conceito Diversas novas áreas de aplicação para sistemas de banco de dados são limitadaspor restrições impostas pelo modelo de dados relacional. Entre essas limitações estão auniformidade, a orientação a registro e a atomicidade de campos. Notamos que algunsdesses aplicativos requerem linguagens com maior poder expressivo do que o SQL ou aálgebra relacional. O modelo orientado a objeto é uma forma de suplantar essas limitações domodelo relacional, porém sacrifica muitas vantagens do modelo relacional,especialmente em processamento de consultas. A solução é uma extensão do modelo relacional, que alarga a aplicabilidade domodelo sem sacrificar o fundamento relacional. Existem diversos tipos de modelos dedados que possuem estas características, cada um utilizando uma técnica diferente paraestender o modelo relacional. Veremos os seguintes modelos: • Modelo de dados baseado em lógica • Modelo relacional encaixado Modelo de Dados Baseado em Lógica Para exemplificar este modelo utilizaremos o Datalog, que é uma linguagem deconsulta não-procedural baseada na lógica de primeira ordem. O usuário descreve ainformação desejada sem dar procedimento específico para obtenção daquelainformação. Técnica Um banco de dados Datalog consiste em dois tipos de relações: • Relações Base – estão armazenadas no BD, são as tabelas ou entidades do BD relacional (São as vezes chamadas de BDs extencionais (extensional database – EBD)); • Relações Derivadas – não estão necessariamente armazeadas no BD. Elas são usualmente relações temporárias que guardam resultados intermediários computados durante a execução de uma consulta. São as vezes chamados de BD intencional (intentional database - IDB). Estrutura da Consulta Regra 1 Regra 1 [Programa Datalog] Regra 2 Regra 2 Regra n Regra n Consulta Instrução de Consulta Instrução de consulta
  • 4. A consulta é constituída de duas partes: Programa Datalog e Instrução deconsulta que são executados nessa ordem. O programa Datalog é um conjunto de regras que envolvem relações base ederivada. Apresenta a seguinte estrutura: Cabeça Corpo NovaRelação : - literal 1, literal 2, ... , literal n, predicado 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 esteatributo poderá conter qualquer valor. Colocando uma constante (valor) indicamos queo atributo deve conter um valor igual ao da constante. A relação só mostrará os registrosque atendem as exigências dos atributos, sendo assim usado para definir critérios deconsulta. 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 (agência, número, cliente, saldo) Depósito(“Tramandaí”, X , Y , Z ) Saldo = qualquer valor Cliente = qualquer cliente Número = qualquer número Agência = “Tramandaí” Observe a correspondência da posição dos atributos com as variáveis/constantes.Este literal indica que da relação Depósito quero somente os registros que possuamagência = “Tramandaí”. Ex.: Regra Uma vez compreendido os literais, podemos formar uma regra utilizando-os Rel (Y,X): - Depósito (“Tramandaí”, X, Y, Z), Z>200 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;
  • 5. • 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 clientesque 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 (substituirvariáveis pelos seus valores) resulta em verdade (satisfaz as condições da regra). Instrução de Consulta Existem duas maneiras de efetuar a consulta: 1) Indicando-se que queremos consultar determinada relação. Relação (campo 1, campo 2, ... , campo n) ? Ex.: Depósito (“Tramandaí”, X, Y, Z) ? Esta instrução não suporta predicado, nem a supressão de campos. 2) Indicando-se que queremos consultar o resultado de uma regra. Query (campo1, ... , campo n): - relação 1, ... , relação n, predicado Ex.: Query (Y): - Depósito (“Tramandaí”, X, Y, Z) Z>1000 Se a consulta não for muito complexa, esta instrução pode dispensar o programa. Ex. Programa: Conhecendo-se a aplicação das regras podemos formar um programa, pois comofoi mencionado: um programa é um conjunto de regras. Sendo a base de dados umaeditora de revistas: Cliente (cliente, cidade, fone, renda, número_revistas) Tabela de assinantes ou ex-assinantes de revista da editora Interesse (cliente, interesse) Interesse dos clientes (Ex.: política, ciência, informática. Etc.) Assinatura (cliente, revista) Revista que o cliente assina. Vamos elaborar um programa que ao final tenha uma relação que contenha onome e o fone dos clientes que tem renda maior que R$ 1000 e interesse eminformática. R1 (N,F): - Cliente (N, C, F, R), R>1000 R2 (N,F): - Interesse (N, “informática”), R1 (N,F) A relação R2 atende o que foi especificado. Importante observar que as variáveisde mesmo nome são as mesmas, portanto representando o mesmo valor. No corpo daúltima regra a variável N aparece no atributo cliente da relação Interesse e também narelação R1 indicando valores iguais, assim será formada uma junção entre Interesse eR1. Utilizando programa e instrução de consulta podemos formar uma consultacompleta. Vejamos os exemplos a seguir: Consultar nome e fone dos clientes da cidade de Torres que tem renda maior que1500 e assinam menos de 3 revistas.
  • 6. X (Vcliente, Vfone, Vnúmero): - Cliente (Vcliente, “Torres”, Vfone, Vrenda,Vnúmero), Vrenda>1500 Y (Vcliente, Vfone): - X (Vcliente, Vfone, Vnúmero), Vnúmero<3 Y (Vcliente, Vfone) ? Uma expressão equivalente usando a instrução de consulta query ao invés de ?poderia ser: X (Vcliente, Vfone, Vnúmero): - Cliente (Vcliente, “Torres”, Vfone, Vrenda,Vnúmero), Vrenda>1500 Query (Vcliente, Vfone): - X (Vcliente, Vfone, Vnúmero), Vnúmero<3 Operações Algébricas de Consulta 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 mesmacabeç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 Para encontrar a diferença entre duas relações é necessário o uso do operador denegação, representado pelo símbolo ¬. RelDif (X1, ... , Xn): - R1 (X1, ... , Xn), ¬ R2 (X1, ... , Xn) O conjunto das variáveis que aparece em R1 e R2 deve ser o mesmo. Ex.: Consultar o nome dos clientes que tem interesse em “informática” mas nãoassinam a revista “Guia Digital”. A(X): - Interesse (X, “informática”) B(X): - Assinatura (X, “Guia Digital”) C(X): - A(X), ¬ B(X) Na última relação acima o X satisfará a regra quando ocorrer em A mas nãoocorrer em B. Recursão O Datalog permite a utilização de consultas recursivas ampliando o seu poder deexpressão. Isto significa que podemos propor algumas questões para o banco de dadosque podem ser respondidas em Datalog, mas não na álgebra relacional.
  • 7. Vejamos um exemplo de sua utilização: Uma tabela de funcionários contendo o seu nome e o nome de seu gerente direto(primeiro acima dele). Este gerente também é um funcionário e está armazenado nestamesma tabela, podendo ele também ter um superior, formando assim uma hierarquiagerencial. Funcionário (nome, gerente) Exemplo de ocorrências nesta tabela: Nome GerenteBia AlfredoBernardo AlfredoCélia BiaCarlos BiaValter BernardoMauro BernardoDaniela CéliaEduardo CarlosFábio CarlosVanessa ValterJosé ValterAna EduardoJoão EduardoLúcia Fábio Para obtermos o nome de todos os funcionários trabalhando diretamente abaixode Bia (primeiro nívvel de funcionários de Bia) poderíamos construir a seguinteconsulta: Query (X): - Funcionário (X, “Bia”) Para obtermos os nomes dos funcionários cujo gerente direto trabalha sob Bia(segundo nível de funcionários de Bia) escrevemos: Query (X): - Funcionário (X,Y), Funcionário (Y, “Bia”) Seguindo essa lógica poderíamos elaborar uma consulta para qualquer nível defuncionários sob Bia. Isto também poderia ser feito na álgebra relacional. Porém paraobter o nome dos funcionários de todos os níveis sob Bia não seria possível, pois não sesabe o maximo sob Bia. Com o Datalog esta consulta é possível utilizando recursividade. Ela poderiaapresentar a seguinte formulação: Rel (X): - Funcionário (X, “Bia”) Rel (X): - Funcionário (X, Y), Rel (Y) Query (X): - Rel(X) ou Rel (X)? Observe que esta consulta é recursiva. Primeiro, são adicionados a relação Reltodos os funcionários do primeiro nível sob Bia. Depois é efetuada uma união com osfuncionários sob os da relação Rel, adicionando a Rel os funcionários de segundo nível.Como o conteúdo de Rel é acrescido do segundo nível, os funcionários do nível abaixodeste (terceiro) também serão acrescidos, assim sucessivamente até que não hajanenhum nível mais baixo.
  • 8. Funcionários sob Rel são procurados e quando encontrados são adicionados a Rel. Vantagens A possibilidade de realizar consultas recursivas aumenta as possibilidades demodelagem e consulta. Devido à proximidade com a álgebra relacional possibilita uma “pré-otimização”da consulta aplicando-se as regras de otimização algébrica. Modelo Relacional Encaixado Características A hipótese da primeira forma normal (1FN) diz que os atributos devem terdomí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 quemotivaram novas aplicações de banco de dados nem sempre são compatíveis com ahipó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 osdomínios podem ser valores atômicos ou assumirem valores que são relações. Assim ovalor de um atributo pode ser uma relação, e o valor de um atributo dessa relação podeser outra relação. Isto permite a construção de um objeto complexo que pode serrepresentado em uma única tupla de uma relação encaixada. Técnica Para mostrar a implementação de um modelo relacional encaixado vamosexaminar o exemplo de um banco de dados que deve armazenar informações sobredocumentos. Para cada documento são armazenadas as seguintes informações: • Título do documento • Lista de autores • Data • Lista de palavras-chave, palavras relativas ao assunto que o documento trata. A relação não normalizada e com duas ocorrências de documentos ficaria assim:
  • 9. Doc, não normalizada Título Lista_Autor Data Lista_Palavra-chavePlano de venda {Samuel, João} 1/Abril/95 {Lucro, Estratégia}Relatório geral {João, Fábio} 17/Junho/97 {Lucro, Pessoal} Observe que o atributo Autor - lista é multivalorado: um documento tem váriosautores, portanto não é atômico. O mesmo ocorre com Palavra-chave - lista. Já data nãoé um atributo multivalorado mas pode ser dividido em 3 fragmentos, subcampos. Pelo modelo relacional tradicional, a mesma relação Doc na 1FN seria: Doc1 (1FN) Título Autor Dia Mês Ano Palavra-chavePlano de venda Samuel 1 Abril 95 LucroPlano de venda João 1 Abril 95 LucroPlano de venda Samuel 1 Abril 95 EstratégiaPlano de venda João 1 Abril 95 EstratégiaRelatório geral João 17 Junho 97 LucroRelatório geral Fábio 17 Junho 97 LucroRelatório geral João 17 Junho 97 PessoalRelatório geral Fábio 17 Junho 97 Pessoal Agora a versão Doc na 4FN: Doc4 (4FN)
  • 10. Título AutorPlano de venda SamuelPlano de venda JoãoRelatório geral JoãoRelatório geral FábioTítulo Palavra-chavePlano de venda LucroPlano de venda EstratégiaRelatório geral LucroRelatório geral PessoalTítulo Dia Mês AnoPlano de venda 1 Abril 95Relatório geral 17 Junho 97 Como foi dito anteriormente o modelo relacional encaixado permite aimplementação de relações com atributos multivalorados, que ao invés de conter umdomínio atômico possui uma relação. A definição do esquema de Doc é a seguinte: Doc=(Título, Lista_Autor, Data, Lista_Palavra-chave) Lista_Autor=(Autor) Data=(Dia, Mês, Ano) Lista_Palavra-chave=(Palavra-chave) 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. Linguagem de Consulta Relacional Encaixada A linguagem de consulta que utilizaremos para ilustrar o Modelo RelacionalEncaixado é a SQL/NF (Nested Form), que é uma versão da SQL estendida paraincorporar operações relacionais encaixadas, existem outras como a XSQL e novaslinguagens estão em fase de desenvolvimento. Enquanto no SQL padrão só eram permitidos atributos na cláusula “select” esomente relações na cláusula “from”, a SQL/NF não faz diferença entre relações eatributos. Para realizar a seguinte consulta “Dê o título de todos os documentos escritos porJoão que dizem respeito a lucro” é utilizada a seguinte instrução: select Título from Doc
  • 11. where “João” in Lista_Autor and “Lucro” in Lista_Palavra-chave Considerando uma modificação na consulta para “Dê o ano de publicação dosdocumentos escritos por João que dizem respeito a lucro”: select Título, (select ano from data) 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 umconjunto como argumento e retornam um valor como seu resultado. A SQL/NF permiteque estas funções sejam aplicadas a qualquer expressão que dê uma relação comoresultado. Vamos observar um exemplo do uso dessas funções na elaboração daseguinte consulta “Dê o título e número de autores de cada documento”: select Título, count (Lista_Autor) from Doc É permitido ainda que condições sobre conjuntos, que em SQL padrão são usadasnas cláusulas “having”, sejam diretamente colocadas na cláusula “where”.Considerando o esquema de banco de dados abaixo, examinemos o exemplo: Jogador (nome, pontuação) pontuação (rodada, pontos) Consultar o nome e total de pontos dos jogadores com mais de 100 pontos. select nome, sum (select pontos from pontuação) from Jogador where sum (select pontos from pontuação)>100 Como um modelo relacional estendido, o modelo relacional encaixado devepermitir compatibilidade com o modelo relacional tradicional, por isso existem osoperadores “desencaixar” (unnest) e “encaixar” (nest). Com o operador desencaixar podemos transformar uma tabela que está modeladade forma encaixada (não normalizada) em uma na 1FN. Ele possui a seguinte sintaxeem SQL/NF: unnest <tabela> on <campo> as <novo campo> Relação Encaixada Campo multivalorados Novo campo atômico Por exemplo desencaixar a lista de autores em único campo para a relação Doc: unnest Doc on Lista_Autor as Autor O operador encaixar possui sintaxe semelhante ao do desencaixar. Com eletransformamos uma tabela normalizada em uma encaixada (não normalizada).
  • 12. nest <tabela> on <campo> as <novo campo> Relação a Campo, ou campos Novo campo que ser a serem a agrupados será o resultado do em um único encaixe Para gerar a relação Doc a partir de Doc1 (na 1FN) utilizamos os seguintecomandos de encaixe: Nest (nest (nest (Doc1 on Autor as Lista_Autor) onPalavra-chave as Lista_Palavra-chave) on Dia, Mês, Ano asData As operações encaixar e desencaixar podem ser usadas nas consultas.Considerando o banco de dados abaixo: Cliente (codcliente, nome, fone) NF (codcliente, data, valor) Vejamos a consulta “Dê o nome e a média de compras de cada cliente”: Select nome, avg (valor_total) From (nest (selectnome, valor, codcliente from Cliente, NotaFiscal whereCliente.codcliente=NotaFiscal.codcliente) on valor as valortotal) Assim pode-se trabalhar de forma encaixada mesmo quando as relações estãomodeladas na forma relacional tradicional (normalizadas). Como de pode notar, com SQL/NF e o modelo encaixado não é necessário o usodos comandos “group by” e “having”, mesmo assim eles estão presentes na SQL/NFpara manter a compatibilidade. Vantagens Embora as relações normalizadas possam representar adequadamente um bancode dados, a representação não normalizada pode ser um modelo de mais fácilentendimento e mais intuitivo, uma vez que o usuário típico de um sistema pensa naorganização das informações no modo não normalizado. A representação em 4FNexigiria que os usuários incluíssem junções nas suas consultas, complicando a iteraçãocom o sistema. Uma visão definida poderia eliminar a necessidade das junções nasconsultas, porém ocorre a perda da representação em uma única tupla. O modelo encaixado permite ainda total compatibilidade com o modelo relacionaltradicional podendo transformar as relações em 4FN para encaixadas e vice versa.
  • 13. Conclusão Com a disseminação da informática os sistemas automatizados de informaçãoestão sendo aplicados às mais diferentes áreas, das ciências humanas à neurologia, nãoficando mais restritos à aplicação comercial. Neste contexto, os analistas podem se deparar com sistemas que requerem umbanco de dados com características especiais no modo de tratar e organizar asinformações. Nesse caso os bancos de dados relacionais estendidos são importantesopções que devem ser levadas em conta. 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 osusuários, sendo este grande fator a favor dos bancos de dados relacionais estendidos.
  • 14. Bibliografia1. KORTH, Henry F.; SILBERSCHATZ, Abraham. Sistema de Banco de Dados. 2 ed. São Paulo: Makron, 1995.2. _____._____. 3 ed. São Paulo: Makron, 1999.