Escolar Documentos
Profissional Documentos
Cultura Documentos
Banco de Dados Resumo - Mesquita
Banco de Dados Resumo - Mesquita
Dissertao submetida em cumprimento parcial dos requisitos para obteno do grau de Mestre em Matemtica Aplicada.
(O autor recebeu apoio financeiro da FAPESP (Proc.No. 95/6586-7) durante a elaborao deste trabalho)
Este exemplar corresponde verso final da dissertao apresentada por Eduardo Jos Soler Mesquita e aprovada pela comisso julgadora.
Banca Examinadora:
IME-USP DCC-UFMG
IME -USP
ii
Resumo
Esta tese prope o projeto de distribuio de dados no nvel conceitual, a partir da utilizao de um modelo semntico, o modelo Entidade-Relacionamento. Nos modelos de dados existentes na literatura, o projeto de distribuio de dados realizado no nvel lgico, o que torna o esquema conceitual obsoleto a partir da gerao do esquema lgico. O esquema de fragmentao construdo sobre o esquema lgico, e o modelo conceitual torna-se uma documentao desatualizada do projeto do banco de dados. Nosso trabalho clarifica a natureza estrutural das fragmentaes realizadas no projeto de distribuio de dados e incorpora o modelo conceitual documentao ativa do projeto.
iii
Abstract
This work studies the problem of designing the data distribution for distributed databases from the coceptual level, using the well-known semantic model Entity-
Relationship. In the literature, data distribution desing is made at the logic level, wich makes the associated model at the conceptual level obsolete once the distribution schema is generated. Fragmentation is the usual process of distributing data, and it is applied only at the logic level. Therefore the database schema at the conceptual level is left out of date. By bringing the fragmentation process to the comceptual level our work intends to make the conceptual level as living entity throughout the design process abd also during the database life-time. Also, our method clarifies the structural nature of fragmentation process, a fact that remained hidden in the logic level. the
iv
Dedico
este
trabalho
Deus,
pela graa da vida e "perfeio" a mim concedidas, e aos meus pais pelo carinho e esforo dos
dispensados
realizao
meus estudos.
AGRADECIMENTOS
Ao Prof. Dr. Marcelo Finger, pelo acompanhamento e orientao neste trabalho, e pela amizade com que sempre me considerou.
minha famlia, por todo o apoio e incentivo. Em especial minha me, pela incessante "marcao cerrada" desde o incio, e pela correo ortogrfica deste trabalho.
Ao meu irmo, Beto, por ter me aturado nestes dois longos anos, e por preparar o jantar s segundas e quartas.
minha namorada, Maida, pela pacincia e carinho, e pela ajuda na elaborao de algumas figuras (que no so poucas).
minha amiga Loreley, pela ateno e companheirismo, e por sujeitar-se massacrante tarefa de revisar esta dissertao.
todos
os
funcionrios
do
IME,
que
com
seu
trabalho
contriburam,
direta
ou
A todos os professores, amigos e colegas de aula, em especial aos amigos do vlei, pela companhia carinhosa durante este perodo.
vi
NDICE
1-3 Objetivos............................................................................................................... 4
2-1.1 Elementos Bsicos do ME-R .......................................................................... 7 2-1.1.1 Classes de Entidades ................................................................................ 8 2-1.1.2 Classes de Relacionamentos..................................................................... 8 2-1.1.3 Atributos ............................................................................................... 11
2-1.2 Extenses Comuns ao ME-R ........................................................................ 12 2-1.2.1 Hierarquia de Generalizao .................................................................. 12 2-1.2.2 Atributos Chaves ................................................................................... 14
vii
5-3.1 Fragmentao Horizontal de Hierarquias de Generalizao .......................... 43 5-3.1.1 Fragmentao de Entidades Pai .......................................................... 43 5-3.1.2 Fragmentao de Entidades Filhas...................................................... 45
5-3.2 Fragmentao Vertical de Hierarquias de Generalizao .............................. 47 5-3.2.1 Fragmentao de Entidades Pai .......................................................... 47 5-3.2.2 Fragmentao de Entidades Filhas...................................................... 49
viii
ix
NDICE DE FIGURAS
Figura 1: Fases de Projeto de um Banco de Dados .......................................................... 1 Figura 2: Fases de Projeto de um BD Conceitual............................................................. 5 Figura 3: Entidades ......................................................................................................... 8 Figura 4: Relacionamento Ternrio ................................................................................. 8 Figura 5: Auto-Relacionamento ...................................................................................... 9 Figura 6: Cardinalidades ................................................................................................. 9 Figura 7: Relacionamento M:N ..................................................................................... 10 Figura 8: Atributos ........................................................................................................ 11 Figura 9: Hierarquia de Generalizao Simples ............................................................. 13 Figura 10: Hierarquia de Generalizao Composta ........................................................ 14 Figura 11: Identificadores ............................................................................................. 15 Figura 12: Arquitetura de Referncia para Bancos de Dados Distribudos ..................... 17 Figura 13: Fragmentos e Imagem Fsica para uma Relao Global ................................ 18 Figura 14: Exemplo de Relao Global ......................................................................... 19 Figura 15: rvore de Fragmentao .............................................................................. 26 Figura 16: Diagrama ER ............................................................................................... 32 Figura 17: Fragmentao Horizontal de Classes de Entidades ....................................... 40 Figura 18: Associao Implcita entre Diagramas (Frag. Horizontal Entidades)............. 40 Figura 19: Fragmentao Vertical de Classes de Entidades............................................ 42 Figura 20: Operao de Agregao dos Fragmentos ...................................................... 42 Figura 21: Fragmentao Horizontal de uma Entidade "Pai" em uma Hierarquia........... 44 Figura 22: Associao Implcita entre Diagramas (Frag. Horizontal Hierarquias) .......... 45 Figura 23: Fragmentao Horizontal de uma Entidade "Filha" em uma Hierarquia........ 46 Figura 24: Associao Implcita entre Diagramas (Frag. Horizontal Hierarquias) .......... 46 Figura 25: Fragmentao Vertical de uma Entidade "Pai" em uma Hierarquia............... 48 Figura 26: Associao Implcita entre Diagramas (Frag. Vertical Hieraquias) ............... 48 Figura 27: Fragmentao Horizontal Derivada Primria ................................................ 52 Figura 28: Fragmentao Vertical Derivada Primria .................................................... 53
Figura 29: Fragmentao de um Auto-Relacionamento ................................................. 54 Figura 30: Relacionamento Binrio ............................................................................... 55 Figura 31: Fragmentao Horizontal (1) em Auto-Relacionamento ............................... 55 Figura 32: Fragmentao Horizontal (2) em Auto-Relacionamento ............................... 56 Figura 33: Diagrama ER Final (Auto-Relacionamento) ................................................. 56 Figura 34: Propagao (1) da Fragmentao pelo Diagrama ER .................................... 59 Figura 35: Propagao (2) da Fragmentao pelo Diagrama ER .................................... 60 Figura 36: Diagrama ER Global .................................................................................... 62 Figura 37: Fragmentao Horizontal Inicial .................................................................. 63 Figura 38: Fragmentao Horizontal Derivada .............................................................. 65 Figura 39: Diagrama ER Distribudo ............................................................................. 66 Figura 40: Diagrama ER para Gerao da Imagem dos Fragmentos .............................. 67 Figura 41: Imagem Fsica Conexa dos Fragmentos........................................................ 68 Figura 42: Diagrama ER (Concluso)............................................................................ 71
xi
Captulo 1
1- Introduo
A modelagem de bancos de dados no nvel conceitual j existe na literatura desde a proposta de modelo de Peter Chen [1], e vem sendo enriquecida e expandida ao longo dos anos. O projeto de um banco de dados pode ser dividido em trs fases. A primeira fase, chamada de projeto conceitual, produz uma representao em alto nvel de abstrao da realidade. A segunda que fase, denominada ser projeto lgico, e traduz esta por representao um as sistema estruturas em de de
especificaes computao. A
podem
implementadas de
processadas fsico,
terceira
fase,
chamada
projeto
determina
armazenamento fsico e mtodos de acesso eficientes ao contedo do banco de dados atravs de dispositivos de armazenamento secundrios. As fases de projeto so ilustradas na Figura 1.
Captulo 1 - Introduo
At bem pouco tempo atrs, os chamados modelos semnticos de dados, em particular o modelo entidade-relacionamento (ME-R), eram tratados meramente como ferramentas de abandonado, projeto e, to logo o esquema parte do da banco de dados fosse do gerado, era
tornando-se
apenas
uma
documentao
projeto.
Mais
recentemente, vem-se tentando expandir o uso de modelos no nvel conceitual tambm para a manipulao dos dados, bem como o projeto de aplicativos para bancos de dados. As vantagens obtidas com esta expanso so, dentre outras:
o modelo conceitual torna-se uma documentao "viva" do projeto, ou seja, ele acompanha a vida do banco de dados, evoluindo com o mesmo.
Anteriormente, era normal existir uma discrepncia, ou mesmo contradies, entre o modelo conceitual, que dava origem apenas verso original do banco de dados, e a verso ativa que continha depuraes e refinamentos posteriores verso original;
obtm-se
uma
independncia
de
plataforma,
visto
que
projeto
sendo
realizado no nvel conceitual mais abstrato e independe, em tese, do banco de dados projeto subjacente. e portanto, Isto um traz vantagens de aprendizado aprenda a na metodologia para de
programador
que
metodologia
uma
plataforma poderia aplic-la a qualquer outra plataforma que oferea suporte manipulao no nvel conceitual;
o projeto e manipulao feitos no nvel conceitual encontram-se mais prximos do projetista e mais distantes das especificaes do ambiente de
implementao;
existem semnticas formais que do sentido ao projeto e manipulao no nvel conceitual. Portanto, este tipo de projeto est baseado em princpios
matemticos.
Captulo 1 - Introduo
mesmo. A distribuio realizada no nvel lgico, antes da definio das estratgias do nvel fsico, e realizada a partir de fragmentaes aplicadas sobre o esquema lgico do banco de dados. A fragmentao do banco de dados, como mencionado anteriormente, ocorre no nvel lgico, a partir do seu esquema lgico, que aps o processo de distribuio ser composto pelos fragmentos resultantes da fragmentao. Aps a gerao do esquema lgico, e principalmente aps sua fragmentao, o esquema conceitual abandonado, tornando-se dados. Em [6], os autores definem o esquema de fragmentao no modelo relacional como dependente das consultas feitas nos aplicativos de banco de dados. Isto nos fornece a impresso de que a fragmentao do banco de dados acidental e dependente das aplicaes existentes. Nosso trabalho pretende investigar o que h por trs desta viso "ad hoc". apenas uma documentao inicial da estrutura centralizada do banco de
consulta e manipulao (e.g. [5][10]), e existem implementaes em que o projeto de dados (centralizado) e todos os acessos ao banco de dados so feitos apenas neste nvel, como no projeto TEMPORA [7][8].
Captulo 1 - Introduo
O mtodo predominante na literatura para projeto de bancos de dados parte da fragmentao esquema e horizontal de relaes no modelo relacional [4][6], operando transformaes horizontal, em no
instanciao derivada e
no
modelos Estas
chamadas
de
fragmentaes so baseadas
vertical, e as
mista.
transformaes
consultas
instanciaes dos fragmentos devem obedecer a restries que garantem sua corretude: completude, reconstrutibilidade e disjuno. Similarmente, nosso trabalho ir transpor as transformaes por fragmentao horizontal, vertical e mista para entidades do ME-R baseado em consultas ao ME-R. No entanto, precisaremos estender este conceito para lidar com hierarquias de classes de entidades, fragmentao derivada de relacionamentos, e a fragmentao derivada de
classes de entidades atravs de caminhos no Diagrama E-R (DE-R). Preservaremos os critrios de corretude em todos os casos, garantindo completude, reconstrutibilidade e disjuno no nvel conceitual. Um trabalho na literatura que trata da transformao de DE-Rs [2]. O objetivo das transformaes, nesse caso, o projeto do DE-R por meio de refinamentos sucessivos e as transformaes so agrupadas em mtodos de refinamento: top-down, bottom-up e misto. Estas transformaes tambm devem obedecer a condies: correo e completude (que apesar da coincidncia nominal, um conceito distinto da completude da
fragmentao). Diferentemente do nosso caso, as transformaes dos refinamentos no so guiadas por consultas s instanciaes do DE-R.
1-3 Objetivos
Este distribuio projeto de de pesquisa a partir visa do a estudar formas de permitir o projeto que de
dados
modelo
entidade-relacionamento
(ER),
apresentado com detalhes no captulo 2. Ele engloba o projeto conceitual de um banco de dados global utilizando o modelo ER, que ser posteriormente distribudo, e sua
distribuio representada no seu esquema conceitual. importante ressaltar que a fase do projeto fsico no faz parte deste trabalho. A partir da aplicao destas idias no projeto de bancos de dados, o projeto de distribuio passa a ser composto de duas fases, em vez de trs. A primeira fase, o
Captulo 1 - Introduo
projeto conceitual, produz o esquema conceitual, que alm de suportar o esquema global do banco de dados, passa a suportar tambm o esquema de fragmentao, tornando-o parte ativa do banco de dados. E a segunda fase, o projeto fsico, que no sofre nenhuma alterao. Sob uma viso geral do projeto geral de um banco de dados, as fases de projeto permanecem as mesmas, porm a distribuio de dados que era realizada no nvel lgico passa a ser representada no nvel conceitual. As demais funes realizadas pelo nvel lgico ainda permanecem, como, a manipulao de dados. A ilustrao da Figura 2 exibe o processo proposto acima.
Este
trabalho
visa
tambm
ressaltar
que,
ao
contrrio
do
que
acontece
no
modelo relacional, a natureza do esquema de fragmentao estrutural, e no acidental. A distribuio do banco de dados derivada da estrutura do grafo que representa o diagrama ER e no dependente de consultas realizadas por aplicativos de banco de dados. Tal considerao ser apresentada durante as sees que oferecem a fragmentao no modelo ER (captulo 6) e ressaltada na seo 7-2 do captulo que conclui este projeto de pesquisa.
Captulo 1 - Introduo
decorrente dos conceitos bsicos apresentados no captulo 5, alm de um exemplo final que compreende toda a teoria desenvolvida durante o texto. O captulo 7 descreve algumas concluses e consideraes importantes obtidas durante a realizao deste projeto de pesquisa e o captulo 8 apresenta as referncias bibliogrficas utilizadas neste trabalho.
Captulo 2
2- O Modelo Entidade-Relacionamento
O modelo de dados entidade-relacionamento baseia-se universo constitudo por um grupo bsico de objetos
na
percepo entidades
de e
um por
chamados
relacionamentos entre estes objetos. Ele foi desenvolvido a fim de facilitar o projeto de bancos de dados permitindo a especificao de um esquema de empreendimento. Tal esquema representa a estrutura lgica global do banco de dados. [4]
O Modelo Entidade-Relacionamento (ME-R) o modelo de dados mais utilizado para o projeto conceitual de bancos de dados. O ME-R foi introduzido por Peter Chen em 1976 e, originalmente, o modelo inclua somente conceitos de classes de entidades,
classes de relacionamentos e atributos, sendo que outros conceitos como atributos chaves e hierarquias de generalizao foram adicionados, posteriormente, ao modelo
inicialmente proposto.
avanados, e daremos alguns exemplos sobre sua utilizao. Na seo 2-1.1, discutiremos os conceitos inicialmente propostos por Chen e, na seo 2-1.2, os componentes do
modelo avanado, adotando a diviso cronolgica da construo do modelo sugerida em [2]. Alguns dos elementos pertencentes ao ME-R no sero discutidos devido sua
irrelevncia para este projeto de pesquisa. O modelo completo pode ser encontrado em [2] ou em [3], alm de outros.
As
classes
de
entidades,
ou
simplesmente
entidades,
representam
classes
de
objetos no mundo real com existncia independente. Uma entidade pode ser um objeto com existncia fsica - uma pessoa, uma casa, ou um carro - ou pode ser um objeto com existncia conceitual - uma empresa, um cargo, ou um curso. Entidades so graficamente representadas por meio de retngulos e so ilustradas no exemplo da Figura 3.
Figura 3: Entidades
2-1.1.2
Classes de Relacionamentos
As classes de relacionamentos, ou simplesmente relacionamentos, representam associaes entre duas ou mais entidades e so representados graficamente atravs de losangos (ou diamantes). O nmero de entidades participantes em um relacionamento chamado de grau do relacionamento. Um relacionamento de grau 2 chamado de binrio (mais comum), um de grau 3 chamado de ternrio. Relacionamentos com grau maior que 2 so tambm denominados relacionamentos n-rios, onde n representa o nmero de classes de entidades envolvidas (Figura 4).
Os chamados
relacionamentos de
binrios
que
conectam 5). A
uma este
entidade tipo de
ela
mesma
so so
auto-relacionamentos
(Figura
relacionamento
adicionados rtulos sua representao, para efeito de distino entre os dois papis que a entidade assume no relacionamento.
Figura 5: Auto-Relacionamento
Introduziremos, brevemente, o conceito de instanciao de classes de entidades e de classes de relacionamentos para definirmos as funes de cardinalidades, uma vez que a teoria sobre a instanciao do modelo ER ser devidamente explicada na seo 4-2. A instanciao de uma entidade ou um relacionamento o conjunto de objetos pertencentes a estas classes. Por exemplo, as instncias de uma classe de entidades
EMPREGADO so conjuntos de informaes sobre os indivduos que pertencem a esta classe. As instncias de um relacionamento so relaes entre as instncias das classes de entidades participantes desse relacionamento.
Relacionamentos so associados a funes de cardinalidades mximas e mnimas. As cardinalidades especificam o nmero de instncias de um relacionamento das quais uma entidade pode participar. Se a existncia da instncia de uma entidade depende da sua participao em um relacionamento, total. Caso a participao ela desta entidade em tal Por
relacionamento
denominada
contrrio,
denominada
parcial.
Figura 6: Cardinalidades
Podemos notar no exemplo da Figura 6 que a classe de entidades EMPREGADO possui par de cardinalidades (0, 1), significando que a participao de alguma(s)
relacionamento. Os relacionamentos podem ser interpretados de maneiras diferentes, dependendo das cardinalidades a ele atribudas. Suponhamos no relacionamento GERENCIA (Figura 6), que um empregado pode gerenciar no mximo um departamento e que um
departamento pode ser gerenciado por um empregado somente. Deste modo, baseado nas cardinalidades, GERENCIA um relacionamento do tipo 1:1 (l-se um-para-um) entre EMPREGADO e DEPARTAMENTO. O relacionamento TRABALHA (Figura 6) entre EMPREGADO e
DEPARTAMENTO do tipo 1:N (l-se um-para-muitos), desde que suponhamos que um empregado deve trabalhar somente para um departamento e que em um departamento trabalham muitos empregados. Porm, se admitirmos que um empregado pode trabalhar para vrios departamentos, teremos o relacionamento TRABALHA (Figura 7) com tipo M:N (l-se muitos-para-muitos).
Outras relacionamento
representaes para
grficas
utilizam
linhas da
duplas e
incidentes linhas
no
representarem
participao
total
entidade,
simples
Nos exemplos acima, para o relacionamento TRABALHA (Figura 6 e Figura 7), admitimos que todo empregado deva trabalhar para no mnimo um departamento, assim, uma instncia da entidade EMPREGADO somente pode existir se esta participar em uma instncia do relacionamento TRABALHA TRABALHA. chamada estar A participao significando a uma de que EMPREGADO toda instncia da no da
relacionamento entidade
total,
EMPREGADO
deve
relacionada
instncia
entidade
10
No relacionamento GERENCIA (Figura 6) no se admite que todo empregado gerencie um departamento, ento a participao de EMPREGADO no relacionamento GERENCIA parcial, ou seja, somente parte das instncias da entidade EMPREGADO deve estar relacionada a uma instncia da entidade DEPARTAMENTO atravs do
2-1.1.3
Atributos
Atributos relacionamentos
so que
propriedades descrevem e
particulares, carregam
ou
elementares,
de
entidades estes
ou
toda
informao
sobre
objetos.
Figura 8: Atributos
Os atributos de FORNECEDOR so: CGC, Nome e Telefone, de PRODUTO so: No. Serial e Descrio, e de CLIENTE so: RG e Nome. O nico atributo de FORNECE Quantidade, representando a quantidade de produtos fornecidos pelo fornecedor ao cliente. Os atributo so funes ao que aplicadas do sobre as instncias o das entidades, CGC ou da
relacionamentos, entidade
levam
domnio
atributo. uma
Por
exemplo,
atributo dessa
FORNECEDOR
aplicado
sobre
determinada
instncia
entidade
resulta em 123456789, que pertence ao domnio deste atributo. Atributos podem ser mono-valorados, atributos que armazenam um nico valor, ou multi-valorados, armazenando mais de um valor. Por exemplo, considerando a
11
atributos mono-valorados, enquanto que o atributo Telefone pode ser multi-valorado, no caso de considerarmos que um mesmo fornecedor pode (e na maioria dos casos ter) mais de um nmero de telefone. Cada atributo est associado a um domnio, isto , um conjunto de valores vlidos para aquele atributo. Um atributo simples (ou atmico) um atributo que est definido sobre um nico domnio. Na Figura 8, poderamos especificar o conjunto de valores para o atributo Nome da entidade CLIENTE como sendo o conjunto de palavras formadas por caracteres do alfabeto separadas por caracteres em branco.
2-1.2.1
Hierarquia de Generalizao
Uma hierarquia de generalizao o resultado da unio de dois ou mais conjuntos de entidades de nvel mais baixo produzindo um conjunto de entidades de nvel mais alto. [4] Uma entidade E uma generalizao de um grupo de entidades E 1, E 2, ..., E n se cada instncia das classes E 1, E2, ..., En for tambm uma instncia da classe E.
Segundo
propriedade
fundamental
de
abstrao
de
generalizao,
todas
as
propriedades da entidade (ou classe) genrica so herdadas pelas entidades generalizadas (subclasses). Em termos de ME-R, isto significa que todo atributo, relacionamento e generalizao definidos para a entidade genrica so automaticamente herdados por todas as entidades generalizadas. Esta propriedade muito importante, uma vez que permite a construo de hierarquias de generalizao estruturadas. A representao grfica de uma generalizao dada por meio de um tringulo com uma seta incidente na entidade genrica e linhas conectando este tringulo s
12
As hierarquias de generalizao so caracterizadas pelo tipo de cobertura que ela apresenta. A cobertura de uma generalizao total se cada instncia da classe genrica mapeada instncia para da ao menos uma instncia no das subclasses, ser mapeada e parcial se existe alguma das
classe
genrica
que
pode
para
nenhuma
instncia
subclasses. As entidades generalizadas so necessariamente disjuntas. No exemplo da Figura 9, um carro no pode na ser um caminho nem uma motocicleta, como e assim por diante. de
Algumas
propostas
literatura
consideram
disjuno
uma
propriedade
cobertura, como em [2], neste trabalho estaremos considerando somente a cobertura total ou parcial. Para efeito de representao, quando a generalizao possuir cobertura total o tringulo que a representa estar preenchido, e quando for parcial o tringulo estar
13
Cada mapeada
uma
das
instncias de
da
entidade das
genrica
VECULO PASSEIO
ou
necessariamente TRANSPORTE,
para
uma
instncia
uma
entidades
significando que um veculo pode ser exclusivamente de passeio ou de transporte. J a entidade instncia TRANSPORTE das entidades possui instncia(s) ou que no so mapeadas que para um nenhuma de
CAMINHO
NIBUS,
significando
veculo
transporte no precisa ser necessariamente um nibus ou caminho, pode, por exemplo, ser um navio.
2-1.2.2
Atributos Chaves
Um conjunto
atributo
chave
de
uma
entidade
um
atributo para
(chave
simples),
ou
um uma
de
atributos
(chave
composta),
usado(s)
identificar
unicamente
instncia dessa entidade. Uma chave deve ter um valor distinto para todas as instncias da entidade. Na Figura 10, o atributo NoChassi uma chave da entidade VECULO, j que no podem existir veculos com o mesmo nmero de chassi. No caso da chave ser um conjunto de atributos, os valores combinados desse conjunto de atributos tambm devero apresentar valores distintos para todas as
instncias da entidade. Por exemplo, na Figura 11, a entidade TELEFONE tem como chave o conjunto de atributos {Cd. Pas, DDD, Nmero}.
14
Para efeito de terminologia, chaves so tambm chamadas de chaves primrias. A representao grfica de um atributo chave um crculo preenchido. No caso da chave ser composta, ela ser formado pela combinao de todos os atributos que apresentem um crculo preenchido. (Figura 11) Uma definio para chaves, segundo [2], a que se I um atributo chave de uma entidade E ento:
satisfeita.
no pode haver duas instncias de E com o mesmo valor de chave; se retirarmos qualquer atributo A E da chave I, a propriedade
no mais ser
15
Captulo 3
3- Distribuio de Dados
Nos ltimos anos, o crescente aumento das redes de computadores em todo o mundo tem sido muito significante e vem refletindo seu impacto sobre as mais diversas reas da computao.
objetivo
das
redes
de
computadores
compartilhamento
de
recursos
e,
principalmente, de informao entre seus usurios. A distribuio da informao se faz necessria para atender este tipo de tecnologia, o que nos conduz ao conceito de bancos de dados distribudos.
dados
integrado
construdo sobre uma rede de computadores, ao invs de um nico computador. Os dados que constituem o banco de dados esto armazenados em locais diferentes da rede de computadores, e os programas que so executados por estes computadores acessam os dados como se eles estivessem armazenados localmente; isto chamado de transparncia da distribuio.
de
Referncia
para
Bancos
de
Dados
Nesta seo, introduziremos uma arquitetura de referncia para a distribuio de um banco de dados. Esta arquitetura, mostrada na Figura 12, definida em termos do modelo relacional de dados em [6]. Seus trs primeiros nveis sero devidamente
explicados, uma vez que so independentes do SGBD (Sistema Gerenciador de Banco de Dados) utilizado, o que caracteriza a proposta deste projeto de pesquisa.
16
Esta arquitetura no explicitamente implementada em todos os bancos de dados distribudos, mas seus nveis so conceitualmente importantes no entendimento da
organizao de qualquer banco de dados distribudo. O primeiro nvel da arquitetura o esquema global. O esquema global apresenta os dados, conceitualmente organizados segundo algum modelo de dados, como se eles estivessem em um esquema centralizado. No existe exatamente tipo de
nenhum
distribuio neste nvel. A partir do modelo relacional, o esquema global est constitudo de um conjunto de relaes globais. Cada relao global pode ser dividida em diversas e exclusivas
pores, chamadas de fragmentos. Existem algumas maneiras de efetuarmos a diviso das relaes, as quais explicaremos nas prximas sees. O mapeamento entre as relaes globais e seus fragmentos definido no esquema de fragmentao. Este mapeamento do tipo um-para-muitos, pois um dado fragmento deve pertencer , no mximo, uma relao global, enquanto que uma nica relao global pode possuir vrios fragmentos. Os fragmentos so representados na forma R i, onde R o nome da relao global e i um ndice que distingue um dado fragmento dos demais, isto , R i representa o i-simo fragmento da relao global R.
17
fisicamente armazenadas em um ou mais locais da rede de computadores. A alocao destes fragmentos est contida no esquema de alocao. A alocao de fragmentos deve considerar os casos em que o banco de dados redundante, ou seja, h replicao de fragmentos, um ou mais locais da rede contendo um mesmo fragmento, ou uma cpia de fragmento. A representao usada para os fragmentos alocados por este esquema R i indica o i-simo fragmento da relao global R alocado no local j. Todos os fragmentos alocados em um dado local constituem a imagem fsica deste local. Os esquemas global, de fragmentao e alocao podem ser observados na Figura 13.
j
Para este projeto, estaremos considerando apenas os dois primeiros nveis desta arquitetura, o projeto O conceitual de global do banco de dados no e seu esquema de
fragmentao.
esquema
alocao
dos
fragmentos
parte
integrante
deste
18
No podem existir duas tuplas idnticas na mesma relao; No h uma ordem definida entre as tuplas na relao.
A Figura 14 mostra a relao EMP (Empregado) constituda por quatro atributos NoEmpregado, Nome, Idade, NoDepartamento.
NoEmpregado 3 2 5 15 35
Idade 34 28 45 44 30
NoDepartamento 2 1 2 2 1
O esquema da relao representado pelo nome da relao e os nomes de seus atributos. Por exemplo, o esquema da relao EMP
A relao no exemplo da Figura 14 apresenta cinco tuplas, por exemplo, {5, Manuel, 45, 2} uma tupla desta relao. O grau da relao EMP 4 e a cardinalidade 5.
19
Para que seja possvel efetuarmos operaes com estas relaes, utilizaremos a lgebra relacional, que toma uma ou duas relaes como operandos e produz uma relao como resultado. Mencionaremos agora as operaes unrias e binrias da lgebra relacional, bem como sua notao.
Unrias:
operador seleo SL. R, onde R uma relao e F uma frmula que expressa uma seleo de predicados. operador projeo PJ)JHE>R, onde Atrib denota um subconjunto de atributos da relao R a serem projetados na relao resultante.
Binrias:
operador unio R UN S, onde R e S denotam relaes (que devem possuir esquemas compatveis) a serem unidas. operador diferena R DF S, onde a relao S subtrada da relao R. As relaes R e S devem possuir esquemas compatveis. operador produto cartesiano R PC S, onde a relao resultante formada por todos os atributos de R e S. Toda tupla de R combinada com cada tupla de S. operador juno R JN. S, onde F uma frmula que expressa uma seleo de predicados entre as relaes R e S. A relao resultante inclui todos os
atributos de R e S, e todas as tuplas de R e S que satisfaam F. O operador JN derivado de uma seleo(SL) maneira: R JN. S = SL. (R PC S). sobre um produto cartesiano(PC) da seguinte
operador juno natural R NJN S, onde a relao resultante formada por uma juno no qual todos os atributos com mesmo nome nas relaes R e S so comparados. Uma vez que estes atributos tm nomes e valores iguais em todas as tuplas, apenas um dos atributos aparecer no resultado.
20
relaes R e S da juno. O operador SJ derivado de uma projeo(PJ) sobre uma juno(JN) da seguinte forma: R SJ. S = PJ)JHE>4 (R JN. S).
operador semi-juno natural R NSJ. S, onde o resultado obtido a partir de uma semi-juno(SJ) com a mesma frmula F, como em uma juno natural (NJN).
dados distribudos, onde o segundo nvel era o esquema de fragmentao. Neste esquema esto os tipos de fragmentao aplicados ao esquema global. Existem dois tipos bsicos de fragmentao de relaes, a fragmentao
horizontal e a fragmentao vertical. Primeiramente, discutiremos separadamente estes dois tipos de fragmentao, e ento consideraremos fragmentaes mais complexas que podem ser obtidas a partir da composio de ambas. Quando discutimos fragmentao, estamos nos referindo justamente a fragmentos e como estes fragmentos so definidos. Para a definio destes fragmentos utilizaremos a lgebra relacional discutida na seo 31.1, a qual recebe relaes globais como operandos produzindo um fragmento como resultado. Na definio dos fragmentos, segundo [6], existem algumas regras que devem ser seguidas:
Completude isto , um
Todos valor
os
dados
da
relao que
global
devem
ser
mapeados global
em
fragmentos,
de
atributo
pertence
relao
deve
21
sejam
Disjuno - Para evitar a redundncia dos dados, exige-se que os fragmentos Esta exigncia faz mais sentido em se tratando de fragmentao
disjuntos.
horizontal, enquanto que na fragmentao vertical em algumas ocasies a violao desta regra permitida. As razes para esta violao sero discutidas quando abordarmos a fragmentao vertical.
caractersticas geogrficas, visando facilidade de gerenciamento e diminuio do banco de dados local. Consideremos a relao FORNECEDOR.
= So Paulo
FORNECEDOR FORNECEDOR
= Rio de Janeiro
Contudo, temos que garantir que as trs regras discutidas na seo 3-2 sejam respeitadas. Podemos verificar a completude desta fragmentao se, e somente se, So
Paulo e Rio de janeiro forem os nicos dois valores possveis para o atributo Cidade, caso contrrio existiriam localidades que no estariam especificadas nesta fragmentao. A regra de reconstruo facilmente verificada, dado que a reconstruo da
22
qualificaes dos fragmentos. Pelo exemplo acima, as qualificaes para cada fragmento seriam:
Assim, podemos concluir que para que a regra de completude se verifique, o conjunto de qualificaes para todos os fragmentos deve ser completo, ao menos em relao ao conjunto de valores permitidos. A condio de reconstruo sempre
verificada atravs da operao de unio(UN), e a disjuno requer que as qualificaes sejam mutuamente exclusivas.
onde estabeleceremos que salrios e fundos de garantia sero tratados em separado dos demais atributos. Assim, uma fragmentao possvel seria:
23
A reconstruo da relao original EMP pode ser obtida realizando-se uma juno natural entre os fragmentos, como se segue:
Existem duas formas de garantir a reconstruo de uma relao global original aps sua fragmentao. Uma delas a incluso da chave primria da relao global em todos os seus fragmentos, dessa forma a reconstruo se torna simples atravs de uma operao de juno entre os fragmentos. A outra maneira de se garantir a reconstruo a gerao de um determinante de tuplas que usado de maneira semelhante a chaves
automticas de sistema e evita a replicao de chaves primrias muito grandes atravs dos fragmentos. Finalmente, consideremos o problema da disjuno dos fragmentos. Em geral, pode-se dizer que a motivao para a disjuno dos fragmentos na fragmentao vertical no to importante quanto na fragmentao horizontal. De fato, se em uma
fragmentao vertical permitirmos que um mesmo atributo faa parte de dois ou mais fragmentos de uma relao global, trivial a localizao do dado replicado, pois sabe-se exatamente em que coluna ele se encontra. Todavia, se permitirmos que dois fragmentos horizontais se sobreponham, no possvel a referenciao direta da poro sobreposta.
resultantes da aplicao de operaes de fragmentao sobre fragmentos, e no sobre relaes globais. Estas operaes podem ser aplicadas recursivamente, contanto que as regras de fragmentao sejam seguidas.
24
verticais EMP1 e EMP2 uma fragmentao horizontal produziremos uma fragmentao mista. Seja a relao global
EMP1 = PJNoEmp, Nome, NoGerente, NoDepart EMP EMP2 = PJNoEmp, Salrio, FGTS EMP.
EMP3 = SLNoDepart
10
EMP1
EMP4 = SL10
< NoDepart 20
EMP1
EMP5 = SLNoDepart
> 20
EMP1,
dos
quais
relao
global
original
pode
ser
perfeitamente
reconstruda
partir
da
seguinte expresso:
EMP2).
A fragmentao mista pode ser convenientemente representada atravs de uma rvore de fragmentao. Um exemplo de uma rvore de fragmentao pode ser visto na Figura 15. A raiz da rvore corresponde relao global original, as folhas correspondem aos fragmentos finais, e os ns intermedirios correspondem aos fragmentos
intermedirios. Na Figura 15, a raiz (relao EMP) verticalmente fragmentada em duas partes. Uma das partes constitui um n folha, o fragmento EMP2 desta rvore. A outra parte fragmentada horizontalmente em trs outras partes, produzindo outros trs ns folhas, os fragmentos EMP3, EMP4 e EMP5.
25
fragmentao horizontal pode ser derivada de uma fragmentao horizontal de uma outra relao. Para compreendermos melhor esta modalidade de fragmentao, consideremos a seguinte relao:
Consideremos a relao FORNECEDOR da seo 3-2.1 e sua fragmentao em FORNECEDOR1 e FORNECEDOR2, onde cada fragmento contem as tuplas referentes a uma dada cidade. Assim, ao particionarmos a relao FORNECE, devemos considerar o fato de que os fragmentos devem conter as tuplas para fornecedores referentes a cada uma das cidades correspondentes. Todavia, a relao FORNECE no possui o atributo cidade, e sim a relao FORNECEDOR. Desta forma, para determinarmos as tuplas de FORNECE que correspondem aos fornecedores em uma cidade, necessitamos de uma operao de semi-juno. Assim, a fragmentao derivada da relao FORNECE pode ser definida como:
NoFornecedor = NoFornecedor
FORNECEDOR1 FORNECEDOR2
NoFornecedor = NoFornecedor
26
quantificadores :
q: FORNECE.NoFornecedor = FORNECEDOR.NoFornecedor AND FORNECEDOR.Cidade = So Paulo q : FORNECE.NoFornecedor = FORNECEDOR.NoFornecedor AND FORNECEDOR.Cidade = Rio de Janeiro
Notemos a presena de uma condio de existncia na fragmentao realizada. Devemos assegurar que para cada tupla em FORNECE1, ou FORNECE2, deve existir uma tupla em FORNECEDOR1, ou FORNECEDOR2, com o mesmo valor para o atributo NoFornecedor. A reconstruo da relao original pode ser realizada facilmente atravs de uma operao de unio(UN) entre os fragmentos. A completude que no da fragmentao a exige que no existam restrio fornecedores de integridade em em
FORNECE
pertenam
FORNECEDOR.
Esta
bancos de dados denominada restrio de integridade referencial. A condio de disjuno satisfeita se uma tupla de FORNECE no corresponder a duas tuplas da relao FORNECEDOR que pertenam a fragmentos diferentes.
27
Captulo 4
Dentre a variedade de modelos sendo usados para a descrio e manipulao de dados com um sistema gerenciador de banco de dados, o modelo entidade-
relacionamento , sem dvida, o representante mais popular dos modelos semnticos. Desde o primeiro modelo proposto por Chen [1], muitos dos trabalhos de
pesquisa sobre o ME-R empregaram-no como uma ferramenta de projeto devido ao seu poder descritivo, que certamente representou um enorme avano em respeito semntica pobre do modelo relacional. O intuito da introduo de fragmentao ao ME-R justamente estender este conceito de mera ferramenta de projeto que acompanha este modelo h tanto tempo. A representao de fragmentao no ME-R ressalta que a tarefa de distribuio de um
banco de dados decorrente da estrutura dos dados e no apenas decorrente de consultas de uma aplicao, como visto anteriormente na fragmentao no modelo relacional. Este captulo se destina a formalizar uma base terica para a introduo da
representar informao, mas a parte do mundo real a ser modelada tende a ser uma coleo, muito pouco homognea, de objetos que interagem. Desta maneira, precisamos de estruturas que sejam melhores abstraes, em vez de simples relaes, o que nos conduz ao modelo entidade-relacionamento. Considerando a teoria referente distribuio de um banco de dados sobre o modelo relacional, estabeleceremos uma analogia entre estes dois modelos de dados a fim
28
No modelo relacional, uma operao de fragmentao aplicada sobre uma relao global produz outras relaes, assim, nada mais intuitivo que deduzirmos que a
fragmentao de uma classe de entidades deva produzir outras classes de entidades. Alm do mais, a fragmentao de um conjunto de relaes no modelo relacional produz um outro conjunto de relaes, agora fragmentos. Desta maneira, podemos imaginar que, ao fragmentarmos um diagrama ER, ou parte dele, produziremos um outro diagrama ER que representa o esquema de um banco de dados distribudo. Como visto anteriormente, as fragmentaes horizontais no modelo relacional so formadas por predicados (qualificaes) associados s relaes que resultam na diviso desta relao em novas relaes. Estes predicados so parte de uma linguagem de
consulta sobre o modelo em questo, que atuam sobre as tuplas (instncias) das relaes produzindo os fragmentos. Da mesma maneira, para fragmentarmos o ME-R, tambm precisaremos da
aplicao de consultas sobre o esquema do banco de dados. A fragmentao do modelo entidade-relacionamento deve atuar sobre instanciaes do diagrama ER. Comeamos, portanto, definindo o significado de instanciao.
29
E, C(e) =
Ad,
A nd , onde A d
A corresponde ao
e1,
H, C(h) =
e,
E corresponde ao
ID.
4-2.2 Atributos
As classes de entidades so associadas a atributos, e cada atributo atrib est
associado a um certo domnio dom(atrib). A instanciao de um atributo uma funo sobre um conjunto de identificadores em seu domnio, isto ,
I(atrib) : ID
dom(atrib).
I(atrib) : I(e)
dom(atrib).
30
I(atrib)(id) =
dom(atrib) para 0
entidades.
Formalmente,
de
relacionamentos
duas
mais
entidades e1, e2, ..., en, I uma instncia do diagrama ER, ento, I(r) um conjunto de nuplas da forma:
onde {id1}
I(e1), {id2}
I(en),
I(ei) I(ei)
I(e), I(ej) =
para i
j.
31
relacional de dados. No modelo entidade-relacionamento, vrias linguagem de consulta e manipulao de dados foram propostas, como a linguagem GORDAS apresentada em [3], alm de outras, como em [5], [12] e [13]. Baseando-nos nestas linguagens propostas, optamos por utilizar um tipo semelhante de linguagem de consulta ao qual denominamos Linguagem de Definio de Caminhos. Esta linguagem utiliza-se da estrutura do grafo que representa um diagrama ER para a especificao de um caminho no grafo. Tal caminho formado pelos elementos que compem um diagrama ER (sees 2-1.1 e 2-1.2). Um caminho no grafo pode ser classificado segundo o nmero de classes de
entidades, ou hierarquias, que ele contm. Os ns que compem estes caminhos podem conter restries, por que podem ser vazias os ou no. Restries eles so composies a lgicas de
formadas
predicados
sobre
atributos,
sejam
pertencentes
classes
entidades, classes de relacionamentos ou hierarquias de generalizao. Para a especificao desta linguagem, nas prximas sees, utilizaremos o
hierarquia. Seja e uma classe de entidades ou hierarquia, e r uma restrio sobre os atributos de e, um caminho unrio apresenta-se na forma: e.r.
32
Para melhor ilustrarmos a definio apresentada acima, consideremos o diagrama da Figura 16. Uma consulta de caminho unrio sobre este diagrama pode ser:
possuem
salrio
superior
500,00
inferior
Vale
notar
que
primeira
consulta
produziu
um
caminho
com
restrio
simples,
enquanto que a segunda produziu um caminho com restrio composta, utilizando-se de chaves e do operador lgico and na sua formao.
33
Fornea todos os empregados que possuem salrio superior a 500,00 e trabalham no projeto nmero 5,
que produz:
Fornea todos os empregados que possuem salrio superior a 500,00 e trabalharam pelo menos 10 horas no projeto nmero 5,
que produz:
10 PROJETO.Id = 5.
respectivamente, e sejam r1, r2, ..., rn, r12, r23, ..., rn-1 e2, ..., en, R 12, R 23, ..., R n-1
De acordo com o diagrama da Figura 16, uma consulta de caminho n-rio pode ser:
34
EMPREGADO.Salrio
>
500,00
TRABALHA
PROJETO
PERTENCE
DEPARTAMENTO.Nome = R.H..
Uma outra consulta de caminho n-rio um pouco mais complexa pode ser:
Fornea todos os empregados que possuem salrio superior a 500,00 que trabalham em algum projeto que utilize o produto X e que pertena ao departamento de R.H.,
EMPREGADO.Salrio
>
500,00
TRABALHA
PROJETO[UTILIZA
Vale ressaltar a
consulta, uma vez que o caminho resultante compreende um sub-caminho composto na sua formao (PROJETO[UTILIZA PRODUTO.Descrio = X and PERTENCE
Diante dos conceitos apresentados at agora, dispomos de uma base terica para iniciarmos as definies de fragmentao no modelo ER. O prximo captulo fornece as diretrizes primrias para a introduo da fragmentao.
35
Captulo 5
teoria
apresentada
neste
captulo
fundamenta-se para a
nos
elementos
do
modelo
entidade-relacionamento,
tomados
separadamente,
introduo
dos
conceitos
bsicos sobre a fragmentao no ME-R. A fragmentao de um diagrama ER completo, ou seja, com relacionamentos entre diversas entidades, tratada no prximo captulo. A idia principal da fragmentao do diagrama entidade-relacionamento a
aplicao de consultas sobre seus elementos, utilizando-se da linguagem de definio de caminhos apresentada na seo 4-3, de forma anloga fragmentao no modelo
relacional (seo 3-2). Um aspecto importante quando tratamos de fragmentao de um diagrama ER a associao captulo, entre o a diagrama original de os e o diagrama fragmentado. do ME-R, um a No decorrer deste a
durante
cada
elemento de
apresentaremos diagramas. do
associao associao
implcita permite
elementos
cada
destes partir
Tal
reconstruo
do
diagrama
original
diagrama
fragmentado. Primeiramente, analisaremos os tipos de fragmentao aplicados sobre as classes de entidades. A partir do conceito de fragmentao de classes de entidades, analisaremos os tipos de fragmentao aplicados sobre hierarquias de generalizao e analisaremos os efeitos de uma operao de fragmentao sobre um elemento que participe de um autorelacionamento. Antes de iniciarmos os conceitos sobre fragmentao dos elementos do modelo ER, introduziremos duas operaes, as operao de unio e agregao, que so
necessrias para que as fragmentaes obedeam s trs regras apresentadas na seo 3-2.
36
regras bsicas que so: completude, reconstruo e disjuno. As regras de completude e disjuno so facilmente verificadas atravs da anlise dos fragmentos em relao ao elemento original. A regra da reconstruo, todavia, necessita de uma funo que realmente una os fragmentos a fim de obter o elemento original.
No caso da fragmentao horizontal, os fragmentos resultantes possuem o mesmo esquema do elemento inicial, portanto, necessitamos de uma funo que combine as instncias de cada um dos fragmentos, reconstruindo o elemento fragmentado. Definiremos a funo de unio dos fragmentos segundo a semntica apresentada na seo 4-2. Seja E uma classe de entidades (hierarquia) com I(E) = {id , id , ..., id } seu conjunto aplicada finito sobre de E, identificadores foram (instncias). os Aps uma fragmentao com seus horizontal respectivos
produzidos
seguintes
fragmentos
s+1,
r+1,
id
r+2,
disjuno devidamente respeitadas. A funo Un definida como sendo o conjunto unio entre as instncias de cada um dos fragmentos, ou seja,
s+1,
id
s+2,
..., id , id
r+1,
id
r+2,
..., id }.
No
caso
da
fragmentao elemento
vertical, mas
os
fragmentos seus
resultantes esquemas
no
possuem
mesmo esquema do
inicial,
possuem
individuais
como
subconjuntos do esquema do elemento fragmentado, alm dos mesmos identificadores que o instanciavam. Por isso, necessitamos de uma funo que realize a agregao dos fragmentos, levando em considerao a associao implcita existente entre os
37
conjunto finito de identificadores (instncias). Aps uma fragmentao vertical aplicada sobre E, foram produzidos os fragmentos E 1, E 2, ..., E m com I(E1) = I(E2) = ... = I(Em) = {id1, id2, ..., idn}. Admitamos que o conjunto finito dos atributos de E seja {k1, k2, ..., ks, a1, a2, ..., ar}, sendo ki os atributos chaves de E para 1 1
i s, e ai os atributos no-chaves de E
para
A funo de agregao reconstruir o elemento fragmentado a partir da gerao de uma nova classe de entidades (hierarquia) com seu conjunto de atributos formado atravs da unio entre os subconjuntos de atributos dos fragmentos, alm dos atributos chaves comuns a todos os fragmentos, ou seja,
Ag = {k1, k2, ..., ks} U A1 U A2 U ... U Am = {k1, k2, ..., ks, a1, a2, ..., ar}.
incorporao de predicados no caso da fragmentao horizontal, e o esquema da classe da entidade no caso da fragmentao vertical. Discutiremos cada um dos tipos de fragmentao de entidades nas duas prximas sees.
38
identificadores que instanciam os fragmentos. Este particionamento realizado a partir de consultas geradas sobre o esquema da classe de acordo com algum critrio desejado que pode ser, por exemplo, geogrfico. Para definirmos a fragmentao horizontal de entidades acrescentamos uma nova propriedade sinttica classe de entidades que chamaremos de conjunto embutido de restries, ou simplesmente restries. Estas restries so combinaes booleanas de predicados que associadas classe de entidades atuam como um filtro para as suas instncias, atributos. Uma classe de entidades em seu estado original possui um conjunto vazio de restries e, por isso, contm todas as instncias possveis quela classe. A aplicao de uma consulta de fragmentao sobre uma entidade produz outras entidades com o mesmo esquema da entidade original, a no ser por uma diferena, a incorporao de restries por parte das novas entidades. A incorporao destas restries pelas novas entidades realizada a partir da conjuno booleana (AND) das restries anteriormente pertencentes classe de entidades de origem com as novas restries caracterizando, assim, as instncias dessa entidade em relao aos seus
impostas pela fragmentao propriamente dita. A Figura 17 exibe um exemplo de fragmentao horizontal segundo um critrio geogrfico, gerando duas outras classes de entidades, agora fragmentos, a partir da
entidade original.
39
[Cidade = So Paulo] e [Cidade = Rio de Janeiro], respectivamente. Neste caso, a conjuno das restries no explcita, pois a entidade de origem (FORNECEDOR) possua um conjunto vazio de restries. A associao existente entre a entidade de origem e as novas entidades neste tipo de fragmentao corresponde uma hierarquia de generalizao total implcita, onde a entidade de origem representa a entidade pai dessa hierarquia e as novas entidades representam as entidades filhas, conforme a Figura 18.
Para
garantirmos
que
as
trs
regras
bsicas
de
fragmentao,
mencionadas
anteriormente, sejam vlidas para este tipo de fragmentao, analisaremos uma a uma. Podemos Paulo Cidade, e Rio verificar de a completude forem os desta nicos fragmentao dois que valores no se, e somente para se, o So
Janeiro
possveis
atributo nesta
caso
contrrio
existiriam
localidades
estariam
especificadas
fragmentao.
40
classe de entidades original facilmente alcanada atravs de uma operao de unio entre os conjuntos de restries que caracterizam cada um dos fragmentos. A verificao da regra de disjuno trivial, visto que as restries [Cidade = So Paulo] e [Cidade = Rio de Janeiro] so mutuamente exclusivos.
subconjuntos de atributos que caracterizam os fragmentos. Neste particionamento, so produzidas novas classes de entidades com o esquema composto por estes subconjuntos de atributos da classe original, onde cada uma dessas novas classes contm,
necessariamente, os atributos chaves da classe de entidades de origem. Os mesmos identificadores que instanciavam a classe de entidades inicial, agora, instanciam cada um dos fragmentos. A corretude da fragmentao depende da completude da operao, onde cada atributo deve ser mapeado em um atributo de cada fragmento, conforme as regras citadas na seo 3-2. A corretude da fragmentao depende tambm da possibilidade de
reconstruo da classe de entidades original, que ocorre por meio de uma operao de agregao sobre os fragmentos, considerando-se a associao implcita entre eles na
forma de um relacionamento do tipo 1:1. A disjuno entre os fragmentos no requerida para este tipo de fragmentao, muito pelo contrrio, a reconstruo da classe de entidades original depende da
replicao de seus atributos chaves em cada um dos fragmentos. Em geral, duplicam-se apenas os atributos chaves. A fragmentao realizada considerando-se que os atributos a serem agrupados tm caractersticas desejveis em comum. Por exemplo, consideremos a Figura 19, na qual estabeleceremos uma organizao onde salrios e fundos de garantia so tratados em separado dos demais atributos. Assim, uma fragmentao possvel seria:
41
Para
garantirmos
que
as
trs
regras
bsicas
de
fragmentao,
mencionadas
anteriormente, sejam vlidas para este tipo de fragmentao, analisaremos uma a uma. A regra de completude trivial neste tipo de fragmentao, pois cada um dos fragmentos recebe todos os identificadores que instanciam a classe de entidades original. A reconstruo da classe de entidades original alcanada atravs da agregao dos fragmentos atravs de uma relao implcita que consiste de um relacionamento do tipo 1:1 entre eles, conforme Figura 20. A regra de disjuno, como j mencionado anteriormente, no requerida neste tipo de fragmentao.
42
apenas por hierarquias de generalizao. A fragmentao de hierarquias de generalizao utiliza os conceitos apresentados na seo 5-2, sobre a fragmentao de classes de entidades. Ela formada por dois tipos bsicos: a fragmentao horizontal e a fragmentao vertical. Ambos os tipos de
fragmentao produzem novas hierarquias de generalizao, e podem ser aplicados tanto entidade pai quanto s entidades filhas de uma hierarquia de generalizao. Nas prximas sees, discutiremos os dois tipos bsicos de fragmentao. Em cada um dos casos, trataremos da fragmentao da entidade pai e das entidades
filhas.
Horizontal
de
Hierarquias
de
horizontal
de
hierarquias
de
generalizao
consiste
na
fragmentao horizontal das classes de entidades pertencentes a estas hierarquias. Como visto anteriormente, as hierarquias de generalizao so compostas por entidades pai e entidades filhas, desta maneira, analisaremos separadamente cada um destes casos de fragmentao em uma hierarquia de generalizao.
5-3.1.1
A fragmentao horizontal da entidade pai de uma hierarquia de generalizao produz novas hierarquias (novas rvores), do mesmo tipo (total ou parcial). As novas entidades pai de cada uma das novas hierarquias produzidas incorporam as restries impostas pela fragmentao. Tais restries so ento herdadas pelas entidades filhas de cada uma das hierarquias fragmentadas, ou seja, por todos os ramos de cada uma das novas rvores recursivamente.
43
instanciam cada uma das hierarquias fragmentadas, obedecendo ao conjunto de restries pertencentes a cada uma entidades que as compem. Um exemplo deste tipo de
fragmentao pode ser observado na Figura 21. Note-se que esta definio vlida para ambos os tipos de hierarquia, por isso representamos a hierarquia por um tringulo semi preenchido.
A obtida da
entre
os
diagramas
original de
fragmentado hierarquia
seo
5-2.1,
atravs
uma
de
generalizao total onde, neste caso, a entidade pai da hierarquia original (VEICULO) torna-se pai da hierarquia Tal implcita e seus pode filhos ser so representados compreendida pelas duas da
fragmentadas.
associao
melhor
atravs
44
Para que a fragmentao seja correta, as regras bsicas de fragmentao devem ser atendidas. A completude da fragmentao verificada, uma vez que todos os identificadores que instanciam cada uma das entidades filhos filhas PASSEIO e TRANSPORTE e esto
representados
nos
fragmentos
PASSEIO |
PASSEIO
TRANSPORTE |
TRANSPORTE , respectivamente, dado que os conjuntos de restries das hierarquias fragmentadas so complementares entre si. A reconstruo da hierarquia original garantida atravs de uma operao de unio do conjunto de restries de cada uma das novas hierarquias, a qual reproduzir a hierarquia original. A disjuno entre os fragmentos trivialmente verificada, uma vez que as
5-3.1.2
fragmentao no
horizontal novas
de
uma
entidade
filha ela
de
uma
hierarquia
de
generalizao
produz
hierarquias
(rvores),
apenas
acrescenta
novas
entidades/hierarquias filhas (novos ramos), resultantes da fragmentao, hierarquia original. Um exemplo deste tipo de fragmentao pode ser observado na Figura 23.
45
O processo de fragmentao o mesmo apresentado na seo 5-2.1 e as restries incorporadas pelas novas classes de entidades filhas so, ento, herdadas por todas as entidades pertencentes sua sub-rvore, de acordo com o processo apresentado na seo 5-3.1.1. A associao implcita existente entre os diagramas original e fragmentado
tambm a mesma apresentada na seo 5-2.1, ou seja, uma hierarquia de generalizao total contendo a entidade filha original como entidade pai, e os fragmentos como entidades filhas desta hierarquia, conforme a Figura 24.
Os mesmos identificadores que instanciavam a entidade filha original agora instanciam cada uma das entidade filhas fragmentadas, obedecendo ao conjunto de restries pertencentes a cada uma destas entidades.
46
TRANSPORTE e TRANSPORTE . Isso pode ser facilmente comprovado, visto que a associao implcita existente entre os diagramas composta de uma hierarquia total entre a entidade original e as novas entidades. A reconstruo da entidade original (TRANSPORTE) realizada atravs de uma operao de unio dos conjuntos de restries de cada um dos fragmentos, neste caso, [No.Eixos
[No.Eixos
6] so mutuamente excludentes.
fragmentao
das
classes
entidades
Novamente,
fragmentaes de entidades pai e filhas em uma hierarquia de generalizao sero apresentadas separadamente para melhor compreenso e visualizao de cada caso.
5-3.2.1
A fragmentao vertical de uma classe de entidades pai de uma hierarquia de generalizao produz novas hierarquias (novas rvores), do mesmo tipo (total ou parcial) da hierarquia original. As novas hierarquias possuem a mesma estrutura de classes de entidades da
hierarquia original, porm seus esquemas so determinados pela fragmentao realizada sobre a entidade pai da hierarquia original, uma vez que as entidades filhas (ramos) herdam os atributos das entidades de maior nvel na hierarquia (seo 2-1.2.1) e mantm seus atributos individuais. Os mesmos identificadores que instanciavam a hierarquia original agora
47
A associao implcita existente entre o diagrama original e o fragmentado para este tipo de fragmentao representada por um relacionamento do tipo 1:1 entre as entidades pai das hierarquias fragmentadas, o qual herdado, segundo a propriedade fundamental de abstrao de generalizao (seo 2-1.2.1), por todas as sub-rvores na hierarquia. A Figura 26 ilustra tal associao.
Para comprovarmos a corretude da fragmentao devemos realizar a verificao das regras bsicas de fragmentao.
48
considerando-se a associao implcita (relacionamento 1:1) entre elas. A regra de disjuno mais uma vez no se faz necessria para este tipo de
5-3.2.2
fragmentao no
vertical novas
de
uma
entidade
filha ela
em
uma
hierarquia
de
generalizao
produz
hierarquias ramos)
(rvores),
apenas
acrescenta da mesma
novas forma
entidades/hierarquias
filhas
(novos
hierarquia
original,
apresentada na seo 5-3.1.2. O processo de fragmentao segue as mesmas diretrizes de uma fragmentao vertical aplicada sobre uma classe de entidades qualquer, e os fragmentos resultantes substituem a entidade filha original na hierarquia de generalizao. Caso a entidade filha a ser fragmentada seja nica em sua sub-rvore, ou seja, ela no possua filhos, os nicos esquemas afetados na hierarquia so os esquemas das novas entidades geradas pela fragmentao. Caso contrrio, ou seja, a entidade em
questo seja tambm pai de uma sub-hierarquia, a fragmentao acrescentar novas hierarquias ao invs de simples entidades hierarquia original, e neste caso a estrutura dos esquemas de cada uma das novas sub-hierarquias segue as diretrizes definidas na seo 5-3.2.1, que trata da fragmentao de entidades pai em uma hierarquia. Este completar a tipo de fragmentao sobre foi apresentado de simplesmente de com o intuito j que de a
teoria
fragmentao
hierarquias
generalizao,
fragmentao vertical de uma entidade filha em uma hierarquia de generalizao nada mais que um refinamento da hierarquia.
49
50
Captulo 6
Na fragmentao, seja ela horizontal ou vertical, de uma classe de entidades (ou hierarquia de generalizao), novas classes de entidades (ou hierarquias) so produzidas. Tais novas classes podem ou no diferirem da classe de origem quanto ao seu esquema ou quanto incorporao de restries provenientes da linguagem de consulta utilizada. Porm, a teoria apresentada no captulo 5 utiliza-se de diagramas ER que contm nica e exclusivamente os elementos a serem estudados, como classes de entidades e hierarquias de generalizao, sem mencionar nenhum tipo de relacionamento envolvendo tais elementos. Quando analisamos a fragmentao de elementos que no se encontram
isolados no diagrama, temos que considerar os efeitos produzidos por uma operao de fragmentao sobre todos os demais elementos deste diagrama que direta, ou
indiretamente, relacionam-se com o elemento fragmentado. Uma vez que a fragmentao de um elemento no diagrama resulta na fragmentao de outro(s) elemento(s) deste
diagrama, dizemos que tais fragmentaes so derivadas da fragmentao inicial. Este captulo destina-se ao estudo dos casos de fragmentao derivada sobre uma composio dos elementos do modelo entidade-relacionamento e, principalmente,
ser
totalmente proveniente da estrutura do diagrama ER e no da aplicao de consultas, como no caso do modelo relacional de dados.
51
fragmentao participante.
todos
dos
elemento que
exemplo,
entidades
Ent,
participa
relacionamentos Rel1 e Rel2, fragmentada (horizontal ou verticalmente) produzindo os fragmentos Ent1, Ent2 e Ent3, tais fragmentos herdam, cada um deles, os relacionamentos nos quais a entidade Ent participava, neste caso Rel1 e Rel2, com seus respectivos
A Figura 27 ilustra um exemplo onde ocorre a fragmentao horizontal de uma classe de entidades participante de um relacionamento no diagrama original. Tal
fragmentao produz um novo diagrama (distribudo) composto por duas novas classes de entidades (EMPREGADO1 e EMPREGADO2), com seus respectivos conjuntos de
restries e relacionamentos, alm da classe de entidades DEPARTAMENTO que agora participa de mais um relacionamento, sem perda de generalidade.
52
fosse vertical, ao invs de horizontal, o efeito produzido seria o mesmo para este caso primrio de fragmentao derivada, que pode ser visto na Figura 28.
Para os dois casos de fragmentao, existe uma anlise a ser realizada sobre as cardinalidades que caracterizam o relacionamento fragmentado. Caso a cardinalidade-mxima for igual a N, o entre o relacionamento no garante e a a(s) entidade(s) entre no os
fragmentada(s)
relacionamento
disjuno
fragmentos, ou seja, uma mesma instncia pertencente a uma entidade no fragmentada pode se relacionar com instncias pertencentes a diferentes fragmentos. Caso a cardinalidade-mxima entre o relacionamento e a(s) entidade(s) no-
fragmentada(s) for igual a 1, o relacionamento garante a disjuno entre os fragmentos, ou seja, uma mesma instncia pertencente a uma entidade no-fragmentada dever se relacionar com, no mximo, uma instncia pertencente a algum dos fragmentos.
Nos exemplos acima, as cardinalidades (1, 1) que caracterizam a participao da entidade no-fragmentada DEPARTAMENTO no relacionamento GERENCIA garantem a
53
DEPARTAMENTO deve se relacionar com apenas uma instncia de um dos fragmentos. Ainda nos exemplos acima, dependendo do contexto da aplicao de banco de dados, a fragmentao realizada sobre a entidade EMPREGADO poderia resultar na
necessidade de fragmentao da entidade DEPARTAMENTO. Tal fragmentao derivada representa a propagao dos efeitos gerados pela operao de fragmentao inicial,
atravs do grafo que representa o diagrama recursivamente. O estudo dos casos de propagao (derivao) recursiva da fragmentao
horizontalmente,
Salrio,
fragmentos.
Vale notar que a fragmentao aplicada sobre a entidade EMPREGADO produziria o mesmo efeito se fosse realizada verticalmente.
Sem perda de generalidade, transformaremos o auto-relacionamento GERENCIA em um relacionamento binrio criando duas cpias da entidade EMPREGADO,
54
Aplicando fragmentos
fragmentao e
sobre
entidade
EMPREGADO1 seus
produzimos conjuntos
os de
EMPREGADO1.1
EMPREGADO1.2,
com
respectivos
Repetindo
operao
em
EMPREGADO2
produzimos
os
fragmentos
EMPREGADO2.1 e EMPREGADO2.2 que, conforme a primeira operao, herdam os seus relacionamentos, resultando no diagrama da Figura 32.
55
Como
EMPREGADO
EMPREGADO
so
cpias
de
EMPREGADO
importante notarmos que alguns relacionamentos resultantes da fragmentao podem ser vazios e no necessitam ser mostrados no diagrama. Por exemplo, se
soubermos de antemo que todos os gerentes possuem um salrio maior que 1.500, os
56
relacionamentos
elemento
fragmentado
participante,
pudemos
constatar a analogia entre os casos de fragmentao horizontal e vertical. Nesta seo investigaremos os casos de propagao da fragmentao, no
somente sobre os relacionamentos diretos, mas tambm sobre entidades relacionadas, direta ou indiretamente, ao elemento fragmentado, seja ele uma classe de entidades ou uma hierarquia de generalizao. Quando analisamos a propagao de uma fragmentao, atravs do grafo que representa um diagrama ER, devemos considerar o contexto da aplicao de banco de dados, a fim de estabelecermos limites de alcance para a propagao de uma
fragmentao. Tais limites de alcance se referem definio do caminho, no grafo que representa o diagrama ER, que ser afetado pela fragmentao. A definio destes caminhos nica para cada tipo de aplicao de banco de dados e crucial para o sucesso de um projeto de distribuio de um banco de dados.
A fragmentao derivada em um diagrama ER definida sobre os conjuntos de restries dos elementos horizontal fragmentados. derivada. Por Por este motivo ela tambm denominada que a
fragmentao
conseqncia
disto,
podemos
afirmar
propagao de uma fragmentao pelo diagrama ER somente faz sentido quando esta fragmentao horizontal. Como visto na seo 6-1, elemento do diagrama somente afeta os a fragmentao vertical de um nos quais ele participa
relacionamentos
diretamente.
Para ilustrarmos a teoria apresentada acima, reconsideremos o exemplo da Figura 27, supondo agora a fragmentao horizontal da entidade DEPARTAMENTO. Tal
57
fragmentao
horizontal
derivada
fragmentao
horizontal
entidade
fragmentao horizontal de uma classe de entidades era realizada atravs da incorporao de um conjunto de restries baseadas nos atributos da prpria entidade a ser
fragmentada. Desta maneira, ao fragmentarmos a entidade DEPARTAMENTO a partir de um conjunto de restries baseado no atributo Atividade, deduzimos que a fragmentao da entidade EMPREGADO tambm deva ser realizada em relao diviso departamental. Porm, a entidade EMPREGADO no possui nenhum atributo referente ao departamento a que suas instncias pertencem. Assim, a fragmentao da entidade EMPREGADO deve ser realizada atravs da incorporao de um conjunto de restries baseado nos atributos da entidade DEPARTAMENTO, e no baseado nos seus prprios atributos. Estas
restries sero realizadas na forma de uma frmula de caminho, conforme visto na seo 4-3. O conjunto de restries que caracterizar as novas classes de entidades
composto pela conjuno booleana (AND) entre as restries anteriores pertencentes classe de entidades original com as restries referentes fragmentao derivada. No exemplo acima, a entidade as novas original EMPREGADO sero No possua um conjunto pelas vazio de
restries, referentes
portanto
entidades derivada.
caracterizadas caso, o
somente
fragmentao
caminho
inicial
EMPREGADO EMPREGADO
onde a parte sublinhada a restrio entidade fragmentada. Conforme mencionado anteriormente, as restries resultantes da fragmentao derivada so obtidas atravs da aplicao de consultas no diagrama. Aps a aplicao de
58
apresenta-se
na
Figura
ilustra
processo
fragmentao,
fragmentao inicial aplicada sobre a entidade DEPARTAMENTO at a propagao da mesma sobre a entidade EMPREGADO.
No exemplo acima, caso a entidade DEPARTAMENTO participasse de outros relacionamentos, estes seriam herdados pelos fragmentos DEPARTAMENTO1 e
DEPARTAMENTO2, como visto anteriormente na seo 6-1. Neste caso, a fragmentao realizada no exemplo poderia propagar-se ainda, recursivamente, pelas demais entidades do diagrama, seguindo a mesma filosofia apresentada nesta seo.
Conforme visto na seo 5-2, as cardinalidades determinam a disjuno entre os fragmentos. No caso da fragmentao derivada recursiva, as cardinalidades, alm de
determinarem a disjuno, determinam o nmero de novos relacionamentos que sero criados na fragmentao. No caso da cardinalidade-mxima, que caracteriza a participao do elemento a sofrer a fragmentao ocorre derivada recursiva no relacionamento, Figura 34; ser igual dois a 1, a
fragmentao
conforme
apresentado
na
apenas
novos
59
de
DEPARTAMENTO, as cardinalidades de participao da entidade DEPARTAMENTO no relacionamento GERENCIA determinam o nmero de novos relacionamentos a serem criados, conforme mostra a Figura 35.
No diagrama inicial, temos que os departamentos podem ser co-gerenciados por vrios empregados devido cardinalidade mxima N, e os salrios dos gerentes podem ser, a princpio, qualquer. Portanto, apenas apenas por por a fragmentao empregados empregados de derivada salrio deve inferior a nos a fornecer 1.500,00, e
departamentos departamentos
gerenciados gerenciados
de
salrio
superior
1.500,00,
departamentos em que h pelo menos um gerente com salrio acima e um gerente com salrio abaixo de 1.500,00. Desta forma teremos trs entidades e a existncia de quatro relacionamentos decorre deste fato. Por outro lado, se a cardinalidade-mxima fosse igual a 1, os relacionamentos GERENCIA3 e GERENCIA4 seriam vazios e poderiam ser ocultados no diagrama, alm da no existncia da nova entidade (DEPARTAMENTO3), conforme a Figura 34.
60
ento, o fragmento que contm apenas co-gerentes com salrios inferiores (superiores) a 1.500,00 caracterizado pela restrio R 1 and not R 2 (R 2 and not R 1) e o fragmento com ambos os tipos de gerentes caracterizado por R 1 and R 2. Assim, temos garantida tanto a disjuno desta fragmentao derivada, pela mtua excluso lgica, como a completude, pois uma das restries sempre verdadeira. A reconstrutibilidade garantida por
construo. Em geral, uma fragmentao primria de uma entidade em N gera outras, por fragmentao derivada atravs de relacionamento de cardinalidade mxima ilimitada, 2 1 novas entidades e N.2
(N-1) N
novos relacionamentos.
analisadas quanto sua viabilidade e eficincia. O diagrama da Figura 36 representa o esquema do banco de dados de uma
empresa que se encontra centralizado e que se pretende distribuir. O critrio considerado pela empresa para o processo de distribuio deste banco de dados a atribuio de
61
Para
tal,
primeira
operao
ser
realizada
sobre
diagrama
acima
fragmentao horizontal da entidade DEPARTAMENTO de acordo com o atributo Nome. Esta fragmentao produz trs novas entidades DEPARTAMENTO1, DEPARTAMENTO2 e DEPARTAMENTO3, com seus respectivos conjuntos embutidos de restries, [Nome = R.H.], [Nome = Finanas] e [Nome = Informtica]. Esta primeira operao pode ser visualizada na Figura 37.
62
Nesta figura, podemos notar que a fragmentao da entidade DEPARTAMENTO produz a fragmentao do relacionamento PERTENCE, para que a propriedade de
herana dos relacionamentos seja seguida, conforme apresentado na seo 6-1. Uma importante considerao a ser feita sobre a fragmentao derivada primria do relacionamento PERTENCE que deve estar claro, com referncia seo 6-1, que existe a disjuno entre os fragmentos da entidade DEPARTAMENTO, instncia entidade da entidade PROJETO em pode se relacionar um dos com somente Isto uma do ou seja, uma instncia da
apenas a
fragmentos.
garantido
pelas
cardinalidades PERTENCE.
que
entidade
PROJETO
participa
relacionamento
Aps a fragmentao inicial do diagrama, devemos analisar a necessidade, ou no, da propagao desta fragmentao atravs dos demais elementos do diagrama. De acordo com o grafo que representa o diagrama, o nico elemento que devemos considerar em primeira instncia a entidade PROJETO. Como a proposta da empresa para a fragmentao do seu banco de dados era fornecer autonomia aos departamentos, devemos supor que cada departamento deva deter o controle sobre seus projetos. Desta maneira, a entidade PROJETO deve ser fragmentada de acordo com o
departamento ao qual pertencem cada uma das suas instncias. A Figura 38 ilustra a fragmentao horizontal derivada da entidade PROJETO, que produz trs novas
63
restries. Deve-se notar que os conjuntos de restries de cada uma das novas entidades est representado por uma legenda que se encontra no canto inferior direito da figura. Tal representao necessrio. Podemos observar na Figura 38 que, assim como na fragmentao anterior, esta tambm culmina na fragmentao e de relacionamentos, que so neste caso de dois deles, os visa no sobrecarga da figura e pode ser realizada sempre que
relacionamentos
TRABALHA
UTILIZA,
herdados
pelos
novos
fragmentos.
Alm disso, vale ressaltar que as entidades EMPREGADO e PRODUTO aumentaram suas participaes em relacionamentos, relacionando-se tambm com cada um dos novos fragmentos.
A fragmentao do relacionamento TRABALHA no requer a disjuno entre os fragmentos da entidade PROJETO, uma vez que as cardinalidades (1, N) com que a entidade EMPREGADO participa deste relacionamento no garantem tal disjuno (vide seo 6-1). A mesma coisa acontece com o relacionamento UTILIZA, que tambm no exige a disjuno entre os fragmentos da entidade PROJETO, ou seja, uma mesma
instncia da entidade PRODUTO pode se relacionar com vrias instncias pertencentes a diferentes fragmentos da entidade DEPARTAMENTO.
De
maneira
recursiva
independente
do
contexto,
poderamos
aplicar
propagao da fragmentao inicial da entidade DEPARTAMENTO sobre todo o grafo, porm, o contexto da aplicao deve ser considerado na gerao do esquema distribudo de um banco de dados. Portanto, seguiremos questionando a necessidade de propagao, definindo, assim, o caminho no grafo afetado pela fragmentao inicial, ou o escopo da propagao.
Analisando
grafo
da
Figura
38,
existem
dois
caminhos
que
devem
ser
considerados para a propagao da fragmentao da entidade PROJETO, que se iniciam nas entidades EMPREGADO e PRODUTO.
64
Porm,
empresa
deseja
que
seus
empregados
sejam
administrados
diferentemente segundo seu nvel salarial pelo departamento de finanas, e estipulou o nvel divisrio entre eles em R$ 1.500,00. Por este motivo, aplicamos uma fragmentao horizontal sobre a entidade EMPREGADO segundo seu nvel salarial, e obtemos duas novas entidades, EMPREGADO e EMPREGADO , com seus respectivos conjuntos de restries, [Salrio 39.
65
fragmentao
realizada
sobre
entidade
EMPREGADO
inicia
um
novo
processo de anlise da necessidade de propagao da fragmentao. Dessa vez, a nica entidade a ser analisada CIDADE. Observando o esquema, decidimos no propagar a fragmentao atravs da
entidade CIDADE, uma vez que tal operao no implicaria nenhum benefcio para o esquema do banco de dados. importante notarmos que a fragmentao da entidade EMPREGADO produziu quatro relacionamentos GERENCIA, porm, conforme visto na seo 6-2, e admitindo que nenhum gerente possui salrio inferior aos seus subordinados, o relacionamento que representa tal condio vazio e no se apresenta no diagrama. Assim, finalizamos o processo de distribuio, com esquema final representado na Figura 39. Vale lembrar que o modelo distribudo construdo nesse exemplo acompanha toda a vida do banco de dados da empresa, devendo ser alterado para representar modificaes que possam vir a ocorrer.
66
O contedo deste trabalho de pesquisa se encerra por aqui, mas o projeto do banco de dados no, ainda resta a fase do projeto fsico. Na seo 3-1, ilustramos a relao entre os fragmentos e sua imagem fsica (Figura 13), a fim de oferecermos uma viso mais ampla do projeto de distribuio de um banco de dados. Por isso, apresentaremos uma simples noo de como proceder com a gerao da imagem fsica o dos fragmentos, ER sem nos aprofundarmos na Figura no 40, assunto. que Para da isso, sua
utilizaremos
diagrama
distribudo
ilustrado
apesar
Nosso
mtodo
de
fragmentao
transforma
um
diagrama
ER
em
um
outro
diagrama, mais complexo que o original. No entanto, este diagrama gerado ainda no o produto final, pois devemos distribu-lo. Usando a terminologia da fragmentao
relacional, precisamos gerar as imagens fsicas, definimos imagens fsicas no MER como um subconjunto conexo do diagrama ER resultante da fragmentao. A unio das imagens fsicas deve reconstruir o diagrama final obtido. Em geral, uma imagem fsica contm no mximo um dos fragmentos de uma entidade fragmentada. Mas essa regra pode ser violada, por exemplo, no caso de haver replicao de entidades; replicaes, no entanto, devem ser tratadas na fase de alocao dos fragmentos em
67
poderemos indicar que uma destas entidades virtual, talvez representando-a com linha tracejada. Obviamente, em alguma das imagens fsicas a entidade no deve ser virtual.
A gerao das imagens de fragmentos um assunto complexo, se considerarmos diagramas ER maiores e com mais fragmentaes, portanto no ser abordado em
maiores detalhes.
68
Captulo 7
7- Concluses
A principal meta deste trabalho de pesquisa foi a de construirmos uma base slida para a integrao entre o projeto e a distribuio dos dados no nvel conceitual. Desta maneira, o projeto de um banco de dados distribudo pode ser realizado sobre o seu esquema conceitual, e no, necessariamente, precisa da gerao do esquema lgico para o incio da fase de projeto fsico. A partir dos estudos ser realizados durante a este projeto de pesquisa, algumas
concluses
puderam
obtidas,
comprovando
viabilidade
da
filosofia
apresentada
atravs dos captulos que compem este texto. Tais concluses referem-se possibilidade de implementao de uma ferramenta computacional para o projeto e distribuio dos dados no nvel conceitual; provenincia estrutural das fragmentaes horizontais
derivadas; incorporao do esquema conceitual na vida do banco de dados e criao de uma base terica para a manipulao de dados. As prximas sees deste captulo destinam-se ao comentrio sobre as concluses preliminares supracitadas respectivamente.
69
Captulo 7 - Concluses
controlaria a associao entre os diagramas inicial e fragmentado durante o processo de distribuio. A implementao da ferramenta encontra-se em estgio intermedirio de
desenvolvimento. O
terminado, comportando todos os elementos previstos. A finalizao do sistema depende da implementao do mdulo de distribuio, que est prevista para ser realizada em projetos futuros.
PRODUTO(NoSerial, Descrio).
As relaes FORNECEDOR e PRODUTO esto relacionadas atravs da relao FORNECE, que possui os atributos chaves de ambas as relaes, o que, sob nosso ponto de vista, no um relacionamento explcito entre elas, mas arbitrrio. Uma fragmentao ou o horizontal realizada sobre qualquer uma direta das da relaes relao torna
FORNECEDOR FORNECE,
PRODUTO, esquema
acarretaria de
na
fragmentao apresentado no
porm,
lgico
dados
exemplo
no
Consideremos o mesmo cenrio utilizando o modelo ER ao invs do relacional. O diagrama que representa o esquema conceitual deste cenrio pode ser visto na Figura 42.
70
Captulo 7 - Concluses
relacionamento
entre
as
entidades
FORNECEDOR
PRODUTO
torna-se
explcito atravs do diagrama, uma caracterstica semntica do modelo ER que o modelo relacional no possui. Ao aplicarmos uma fragmentao horizontal sobre qualquer uma das classes de entidades FORNECEDOR ou PRODUTO a fragmentao horizontal derivada sobre a classes de relacionamentos FORNECE direta e totalmente explcita atravs do
diagrama, como podemos conferir no captulo 5, onde tratamos da fragmentao derivada primria.
Ao analisarmos os exemplo acima, podemos verificar que a estrutura representada no esquema conceitual no modelo ER, determina as fragmentaes derivadas. Em [6], o autor refere-se fragmentao derivada de de relaes de (no modelo de onde
banco
dados,
podemos extrair que o esquema lgico que representa o banco de dados construdo em relao s consultas que sero efetuadas sobre ele. No caso do modelo ER, pode-se facilmente notar que tanto as consultas, quanto as fragmentaes derivadas, so decorrentes totalmente da estrutura do diagrama ER que representa conceitualmente o banco de dados. O que nos mostra uma inverso de
conceitos no que tange ao projeto de um banco de dados nos diferentes modelos de dados.
do
Esquema
Conceitual
na
Vida
do
Atualmente, a maioria dos projetistas de bancos de dados utiliza-se do modelo ER como ferramenta inicial de projeto. Uma vez definido o esquema conceitual do banco de dados, inicia-se a fase de projeto lgico, ou seja, ocorre a traduo do esquema conceitual
71
Captulo 7 - Concluses
para uma estrutura que possa ser manipulada por um SGDB (Sistema Gerenciador de Banco de Dados). O modelo lgico mais comumente utilizado nesta fase de projeto o modelo relacional. Aps a traduo terminada, o esquema conceitual abandonado, e todas as
alteraes que possivelmente venham a ocorrer so efetuadas sobre o esquema lgico, bem como a distribuio do banco de dados, e o esquema conceitual, na maioria dos casos, no modificado. Para o caso de distribuio, o esquema conceitual no possui estruturas para representao de distribuio. Com a utilizao da teoria apresentada neste trabalho possvel que o modelo conceitual possa ser utilizado como uma ferramenta permanente para o projeto de bancos de dados. Desta maneira, a documentao do projeto tornar-se-ia mais fcil e abstrata, em decorrncia da representao semntica fornecida pelo modelo ER. A representao de distribuio de dados no modelo ER possibilita que o esquema conceitual acompanhe a vida do banco de dados, tornando-o parte integrante e
praticamente todo o controle sobre o banco de dados seria realizado no nvel conceitual. Por isso, podemos afirmar que este trabalho de pesquisa ampliou as possibilidades para tal progresso.
72
Captulo 8
8- Bibliografia
[1]
[2]
C.
Batini,
S.
Ceri,
S.
Navathe.
Conceptual
Database
Design
An
Entity-
[3]
R.
Elmasri
S.
Navathe.
Fundamentals
of
Database
Systems.
The
[4]
Ltda., 1989.
[5]
[6]
[7] and B.
P. Loucopoulos, P. J. McBrien, F. Schumacker, B. Theodoulidis, V. Kopanas, Wangler. for Integrating database the technology, TEMPORA rule-based paradigm. systems and temporal
reasoning
effective
software:
Journal
of
Information
[8]
P.
J.
McBrien.
The
TEMPORA
implementation:
Overview,
testing
and
73
Captulo 8 - Bibliografia
[9]
P.
Pantazis, B. The
Theodoulidis, external
G.
Tziallas,
A.
H. In
Seltveit,
TEMPORA on
rule
language.
Proceedings
Third
Conference
Advanced
Information
Systems
[10]
TEMPORA project report. The sweden post case study. SISU, 1991.
[11]
[12]
[13]
74