Você está na página 1de 87

Projeto de Dados em Bancos de Dados Distribudos

Eduardo Jos Soler Mesquita

Dissertao submetida em cumprimento parcial dos requisitos para obteno do grau de Mestre em Matemtica Aplicada.

rea de Concentrao: Cincia da Computao Orientador: Prof. Dr. Marcelo Finger

(O autor recebeu apoio financeiro da FAPESP (Proc.No. 95/6586-7) durante a elaborao deste trabalho)

Instituto de Matemtica e Estatstica da USP - So Paulo, maio de 1998 -

Projeto de Dados em Bancos de Dados Distribudos

Este exemplar corresponde verso final da dissertao apresentada por Eduardo Jos Soler Mesquita e aprovada pela comisso julgadora.

So Paulo, maio de 1998.

Banca Examinadora:

Prof. Dr. Marcelo Finger (orientador) Prof. Dr. Alberto H. F. Laender

IME-USP DCC-UFMG

Prof. Dr. Francisco da Rocha Reverbel

IME -USP

ii

Projeto de Dados em Bancos de Dados Distribudos


por Eduardo Jos Soler Mesquita

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

Data Distribution Design in Distributed Databases


by Eduardo Jos Soler Mesquita

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.

FAPESP, pelo apoio financeiro concedido.

todos

os

funcionrios

do

IME,

que

com

seu

trabalho

contriburam,

direta

ou

indiretamente, para a realizao do meu.

A todos os professores, amigos e colegas de aula, em especial aos amigos do vlei, pela companhia carinhosa durante este perodo.

vi

NDICE

Captulo 1 - Introduo ................................................................................................... 1

1-1 Projeto de Distribuio de Dados .......................................................................... 3

1-2 Comparaes com a literatura ............................................................................... 3

1-3 Objetivos............................................................................................................... 4

1-4 Organizao da Tese ............................................................................................. 6

Captulo 2 - O Modelo Entidade-Relacionamento ........................................................... 7

2-1 Conceitos do ME-R............................................................................................... 7

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

Captulo 3 - Distribuio de Dados................................................................................ 16

3-1 Arquitetura de Referncia para Bancos de Dados Distribudos ............................ 16

3-1.1 O Modelo Relacional de Dados .................................................................... 19

3-2 Fragmentao de Dados ...................................................................................... 21

3-2.1 Fragmentao Horizontal ............................................................................. 22

3-2.2 Fragmentao Vertical.................................................................................. 23

3-2.3 Fragmentao Mista ..................................................................................... 24

3-2.4 Fragmentao Horizontal Derivada .............................................................. 26

vii

Captulo 4 - Pr-Requisitos Fragmentao no ME-R .................................................. 28

4-1 Modelo Relacional versus Modelo ER................................................................. 28

4-2 Instanciao no ME-R ......................................................................................... 29

4-2.1 Classes de Entidades..................................................................................... 30

4-2.2 Atributos ...................................................................................................... 30

4-2.3 Classes de Relacionamentos ......................................................................... 31

4-2.4 Hierarquias de Generalizao ....................................................................... 31

4-3 Linguagem de Consulta ao ME-R ....................................................................... 31

4-3.1 Caminhos Unrios ........................................................................................ 32

4-3.2 Caminhos Binrios ....................................................................................... 33

4-3.3 Caminhos N-rios......................................................................................... 34

Captulo 5 - Fragmentao Primria do Diagrama ER ................................................... 36

5-1 Unio e Agregao .............................................................................................. 37

5-2 Fragmentao de Classes de Entidades ................................................................ 38

5-2.1 Fragmentao Horizontal de Classes de Entidades........................................ 39

5-2.2 Fragmentao Vertical de Classes de Entidades ............................................ 41

5-3 Fragmentao de Hierarquias de Generalizao................................................... 43

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

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER .................................. 51

viii

6-1 Fragmentao Derivada Primria ........................................................................ 51

6-2 Fragmentao de Elementos Auto-Relacionados ................................................. 54

6-3 Fragmentao Derivada Recursiva ...................................................................... 57

6-4 Exemplo Final..................................................................................................... 61

6-5 Gerao da Imagem dos Fragmentos ................................................................... 67

Captulo 7 - Concluses ................................................................................................ 69

7-1 Ferramenta para Projeto e Distribuio de Dados ................................................ 69

7-2 A Natureza Estrutural das Fragmentaes Derivadas ........................................... 70

7-3 Incorporao do Esquema Conceitual na Vida do Banco de Dados...................... 71

7-4 Criao de uma Base Terica para a Manipulao de Dados ............................... 72

Captulo 8 - Bibliografia ............................................................................................... 73

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.

Figura 1: Fases de Projeto de um Banco de Dados

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

1-1 Projeto de Distribuio de Dados


Em um projeto de banco de dados centralizado, normalmente, o projetista cria o esquema global no nvel conceitual, geralmente usando o ME-R; traduz esse esquema para o nvel lgico, comumente para a linguagem do modelo relacional, e especifica os mtodos de armazenamento fsicos a serem utilizados, seguindo as trs fases de projeto ilustradas na Figura 1. Em um projeto de banco de dados distribudo, o processo praticamente o

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

1-2 Comparaes com a literatura


Modelos conceituais para o projeto de dados para o projeto de dados vm sendo desenvolvidos desde a proposta original de Chen [1]. Mais recentemente, procurou-se dar tambm a este modelo a possibilidade de manipular dados atravs de linguagens 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.

Figura 2: Fases de Projeto de um BD Conceitual

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

1-4 Organizao da Tese


O captulo 2 apresenta os elementos componentes do modelo ER, sobre o qual ser realizado o projeto de distribuio de dados. Para a representao de distribuio neste modelo, necessitamos de uma teoria bsica sobre fragmentao de dados. Esta teoria, na literatura sobre bancos de dados distribudos, encontra-se expressa em termos de um outro modelo, o modelo relacional de dados. Desta maneira, introduziremos a teoria sobre distribuio de dados (captulo 3) segundo o modelo relacional, que ser brevemente apresentado na seo 3-1.1. Uma vez consolidados os conceitos sobre o modelo ER e fragmentao de dados (distribuio), dispomos de base terica para procedermos definio dos conceitos de fragmentao no modelo ER. A definio dos conceitos de fragmentao no modelo ER possui pr-requisitos, que incluem uma semntica de instanciao do modelo ER e uma linguagem de consultas ao modelo, que so explicados no captulo 4. Aps a apresentao dos pr-requisitos necessrios introduo dos conceitos de distribuio no modelo ER (ME-R), introduzimos a fragmentao no diagrama ER no captulo 5, onde so estabelecidos os princpios bsicos para a fragmentao no ME-R. O captulo 6 apresenta a fragmentao derivada estrutural do modelo ER,

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.

2-1 Conceitos do ME-R


Introduziremos, agora, os conceitos do ME-R, seus elementos bsicos e

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.

2-1.1 Elementos Bsicos do ME-R


Os elementos bsicos que fazem parte do modelo so classes de entidades, classes de relacionamentos e atributos.

Captulo 2 - O Modelo Entidade-Relacionamento


2-1.1.1 Classes de Entidades

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).

Figura 4: Relacionamento Ternrio

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.

Captulo 2 - O Modelo Entidade-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.

exemplo, consideremos a figura abaixo:

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)

Captulo 2 - O Modelo Entidade-Relacionamento


instncia(s) de EMPREGADO pode(m) no acontecer no relacionamento GERENCIA, e que nenhuma instncia desta entidade pode participar mais de uma vez deste

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).

Figura 7: Relacionamento M:N

Outras relacionamento

representaes para

grficas

utilizam

linhas da

duplas e

incidentes linhas

no

representarem

participao

total

entidade,

simples

incidentes no relacionamento para representarem participao parcial.

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

DEPARTAMENTO atravs do relacionamento TRABALHA.

10

Captulo 2 - O Modelo Entidade-Relacionamento

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

relacionamento TRABALHA, mas no necessariamente todas.

2-1.1.3

Atributos

Atributos relacionamentos

so que

propriedades descrevem e

particulares, carregam

ou

elementares,

de

entidades estes

ou

toda

informao

sobre

objetos.

Atributos podem ser adicionados ao esquema da Figura 4, resultando no esquema da Figura 8.

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

Captulo 2 - O Modelo Entidade-Relacionamento


entidade FORNECEDOR, na Figura 8, CGC e Nome constituem uma amostra de

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 Extenses Comuns ao ME-R


Alguns dos elementos posteriormente adicionados proposta inicial do modelo so hierarquia de generalizao e atributos chaves.

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

generalizaes. Esta representao pode ser melhor compreendida atravs da Figura 9,

12

Captulo 2 - O Modelo Entidade-Relacionamento


onde as entidades CARRO, MOTOCICLETA e CAMINHO foram generalizadas para a entidade VECULO. Nesta mesma figura, podemos analisar a herana de atributos, onde os atributos No. Chassi, Cor e Ano Fabr. so atributos comuns a todas as entidades e, tambm, na qual cada entidade generalizada pode apresentar atributos privados ou

exclusivos quela entidade.

Figura 9: Hierarquia de Generalizao Simples

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

vazio. Na Figura 10, podemos ver os dois tipos de cobertura de generalizao.

13

Captulo 2 - O Modelo Entidade-Relacionamento

Figura 10: Hierarquia de Generalizao Composta

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

Captulo 2 - O Modelo Entidade-Relacionamento

Figura 11: Identificadores

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.

Um banco de dados distribudo constitui-se de um banco de

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.

3-1 Arquitetura Distribudos

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

Captulo 3 - Distribuio de Dados

Figura 12: Arquitetura de Referncia para Bancos de Dados Distribudos

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

Captulo 3 - Distribuio de Dados


Os fragmentos so pores lgicas de uma relao global que devem ser

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

Figura 13: Fragmentos e Imagem Fsica para uma Relao Global

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

projeto, porm, na seo 6-5,

apresentaremos algumas noes de como a gerao da

imagem fsica dos fragmentos pode ser realizada.

18

Captulo 3 - Distribuio de Dados

3-1.1 O Modelo Relacional de Dados


Em bancos de dados relacionais, os dados so armazenados em tabelas, chamadas de relaes. Estas relaes so compostas por colunas e linhas. As colunas representam os atributos e as linhas so denominadas tuplas. O nmero de atributos em uma relao representa o grau desta relao e o nmero de tuplas sua cardinalidade. A definio do modelo relacional considera uma relao como um conjunto de tuplas, de acordo com as seguintes propriedades:

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

Nome Joo Jos Manuel Joaquim Maria

Idade 34 28 45 44 30

NoDepartamento 2 1 2 2 1

Figura 14: Exemplo de Relao Global

O esquema da relao representado pelo nome da relao e os nomes de seus atributos. Por exemplo, o esquema da relao EMP

EMP(NoEmpregado, Nome, Idade, NoDepartamento)

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

Captulo 3 - Distribuio de Dados

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

Captulo 3 - Distribuio de Dados


operador semi-juno R SJ. S, onde F denota a mesma frmula entre as

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).

3-2 Fragmentao de Dados


Na seo anterior, foi apresentada a arquitetura de referncia para bancos de

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

necessariamente pertencer a algum fragmento.

Reconstruo - A reconstruo da relao global a partir de seus fragmentos

deve ser sempre possvel.

21

Captulo 3 - Distribuio de Dados

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.

3-2.1 Fragmentao Horizontal


A fragmentao horizontal consiste no particionamento das tuplas de uma relao global em subconjuntos. Estes subconjuntos so criados em considerao necessidade de distribuio de uma relao quanto a caractersticas comuns apresentadas por pores independentes dentro desta relao. Por exemplo, particionamento quanto s

caractersticas geogrficas, visando facilidade de gerenciamento e diminuio do banco de dados local. Consideremos a relao FORNECEDOR.

FORNECEDOR(NoFornecedor, Nome, Cidade),

um particionamento horizontal desta relao pode ser definido da seguinte maneira:

FORNECEDOR1 = SLCidade FORNECEDOR2 = SLCidade

= 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

relao original resultante da seguinte operao:

FORNECEDOR = FORNECEDOR1 UN FORNECEDOR2

22

Captulo 3 - Distribuio de Dados


A verificao da regra de disjuno trivial, visto que os predicados Cidade = So Paulo e Cidade = Rio de Janeiro so mutuamente exclusivos. Os predicados utilizados na operao de seleo(SL) so chamados de

qualificaes dos fragmentos. Pelo exemplo acima, as qualificaes para cada fragmento seriam:

q1: Cidade = So Paulo q2: Cidade = Rio de Janeiro

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.

3-2.2 Fragmentao Vertical


A fragmentao vertical de uma relao global a subdiviso de seus atributos em grupos. Os fragmentos so obtidos projetando-se a relao global sobre cada um desses grupos. A corretude da fragmentao depende da possibilidade de reconstruo da relao original e tambm da completude da operao, onde cada atributo deve ser mapeado em um ou mais atributos dos fragmentos, conforme as regras citadas na seo 3-2. A fragmentao realizada considerando-se que os atributos a serem agrupados tm caractersticas desejveis em comum. Por exemplo, consideremos a relao global

EMP(NoEmp, Nome, Salrio, FGTS, NoGerente, NoDepart),

onde estabeleceremos que salrios e fundos de garantia sero tratados em separado dos demais atributos. Assim, uma fragmentao possvel seria:

23

Captulo 3 - Distribuio de Dados


EMP1 = PJNoEmp, Nome, NoGerente, NoDepart EMP EMP2 = PJNoEmp, Salrio, FGTS EMP.

A reconstruo da relao original EMP pode ser obtida realizando-se uma juno natural entre os fragmentos, como se segue:

EMP = EMP1 NJN EMP2.

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.

3-2.3 Fragmentao Mista


A fragmentao mista um tipo de fragmentao onde os fragmentos so

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

Captulo 3 - Distribuio de Dados


Utilizando a relao EMP da seo 3-2.2 e aplicando sobre seus fragmentos

verticais EMP1 e EMP2 uma fragmentao horizontal produziremos uma fragmentao mista. Seja a relao global

EMP(NoEmp, Nome, Salrio, FGTS, NoGerente, NoDepart)

e seus fragmentos verticais

EMP1 = PJNoEmp, Nome, NoGerente, NoDepart EMP EMP2 = PJNoEmp, Salrio, FGTS EMP.

Aplicando-se uma fragmentao horizontal sobre estes fragmentos, teremos:

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:

EMP = UN( EMP3, EMP4, EMP5) NJN (PJ

NoEmp, Salrio, FGTS

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

Captulo 3 - Distribuio de Dados

Figura 15: rvore de Fragmentao

3-2.4 Fragmentao Horizontal Derivada


Na fragmentao horizontal vista na seo 3-2.1, a fragmentao de uma relao realizada com base nas propriedades dos atributos desta relao. Em alguns casos, a

fragmentao horizontal pode ser derivada de uma fragmentao horizontal de uma outra relao. Para compreendermos melhor esta modalidade de fragmentao, consideremos a seguinte relao:

FORNECE(NoFornecedor, NoProduto, NoDepartamento, Quantidade).

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:

FORNECE1 = FORNECE SJ FORNECE2 = FORNECE SJ

NoFornecedor = NoFornecedor

FORNECEDOR1 FORNECEDOR2

NoFornecedor = NoFornecedor

26

Captulo 3 - Distribuio de Dados


As operaes de semi-juno acima selecionam as tuplas de FORNECE que se referem aos fornecedores em So Paulo e Rio de Janeiro, respectivamente. Os quantificadores para os fragmentos acima no podem ser definidos somente em funo de atributos da relao FORNECE, uma vez que os fragmentos desta relao so derivados de outros fragmentos. Desta maneira, uma representao para estes

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

4- Pr-Requisitos Fragmentao no ME-R

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

fragmentao ao modelo entidade-relacionamento.

4-1 Modelo Relacional versus Modelo ER


O projeto de um banco de dados, seja ele distribudo ou no, est longe de ser uma tarefa trivial. As relaes (do modelo relacional) constituem um modo homogneo de

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

Captulo 4 - Pr-Requisitos Fragmentao no ME-R


de validarmos as regras bsicas de fragmentao de dados, mencionadas na seo 3-2, desta vez em relao ao ME-R. Discutiremos estas regras medida que o conceito sobre a fragmentao no modelo entidade-relacionamento for sendo apresentada.

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.

4-2 Instanciao no ME-R


Cada elemento do ME-R ser semanticamente instanciado atravs da funo I que representa uma instncia de todo o diagrama ER. Seja ID = {id1, id2, ..., idn} um conjunto contvel de identificadores e DER = {E, A, R, H, C}, um diagrama formado por todos os elementos pertencentes ao ME-R, onde

E: conjunto de classes de entidades; A: conjunto de atributos; R: conjunto de classes de relacionamentos;

29

Captulo 4 - Pr-Requisitos Fragmentao no ME-R


H: conjunto de hierarquias de generalizao; C: funo de configurao do diagrama de acordo com:

- para cada entidade e

E, C(e) =

Ad,

A nd , onde A d

A corresponde ao

conjunto de atributos chaves de e, e A nd

A ao conjunto de atributos no-chaves de e.


R, C(r) =

- para cada relacionamento r correspondem s restries de cardinalidade.

e1,

e2, c12, c21 , onde c12 e c21

- para cada hierarquia de generalizao h

H, C(h) =

e,

{ei}, tipo , onde

E corresponde classe de entidades pai da hierarquia, {ei}

E corresponde ao

conjunto de filhos e tipo indica se a hierarquia total ou parcial.

4-2.1 Classes de Entidades


O elemento bsico do diagrama a classe de entidades. Se I uma instncia de todo o diagrama ER e e uma classe de entidades nessa instncia, I(e) representa a instncia desta classe de entidades. Uma instncia de uma classe de entidades I(e) um conjunto finito de identificadores (ou entidades), isto ,

I(e) um conjunto finito {idi}, com idi

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).

Para os atributos conectados a identificadores de uma classe de entidades e temos,

I(atrib) : I(e)

dom(atrib).

30

Captulo 4 - Pr-Requisitos Fragmentao no ME-R


Se I(e) = {id} n.

I(atrib)(id) =

{a1, a2, ..., an}, onde ai

dom(atrib) para 0

4-2.3 Classes de Relacionamentos


A instanciao de uma classe de relacionamento conectando classes de entidades contm um subconjunto de se n-uplas r uma formado classe a partir das instncias entre das classes ou de

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:

id1, id2, ..., idn I(r),

onde {id1}

I(e1), {id2}

I(e2), ..., {idn}

I(en),

restritas s restries de cardinalidade.

4-2.4 Hierarquias de Generalizao


A instanciao de uma hierarquia de generalizao que tem e como classe de entidades pai e o conjunto {ei} como classes de entidades filhos, sendo I uma

instncia do diagrama ER obedece s seguintes restries:

I(ei) I(ei)

I(e), I(ej) =

para i=1, 2, ..., n.

para i

j.

No caso de hierarquia total, ento: I(e) = I(e1)

I(e2) ... I(en).

No caso de hierarquia parcial, ento: I(e)

I(e1) I(e2) ... I(en).

4-3 Linguagem de Consulta ao ME-R


A fragmentao de um banco de dados requer que consultas sejam efetuadas sobre o seu esquema conceitual. Conforme visto na seo 3-2, a lgebra relacional foi a

31

Captulo 4 - Pr-Requisitos Fragmentao no ME-R


linguagem utilizada para a fragmentao das relaes que compem um esquema

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

diagrama apresentado na Figura 16 como exemplo.

Figura 16: Diagrama ER

4-3.1 Caminhos Unrios


Os caminhos unrios so compostos apenas por uma classe de entidades, ou

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

Captulo 4 - Pr-Requisitos Fragmentao no ME-R

Para melhor ilustrarmos a definio apresentada acima, consideremos o diagrama da Figura 16. Uma consulta de caminho unrio sobre este diagrama pode ser:

Fornea todos os empregados que possuem salrio superior a 500,00,

que resulta em:

EMPREGADO.Salrio > 500,00.

Uma outra consulta de caminho unrio pode ser:

Fornea todos os empregados que 1.000,00,

possuem

salrio

superior

500,00

inferior

que resulta no caminho:

EMPREGADO.{Salrio > 500,00 and Salrio < 1.000,00}.

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.

4-3.2 Caminhos Binrios


Os caminhos so compostos por duas classes de entidades e/ou hierarquias. Sejam e1 e e2 classes de entidades e/ou hierarquias, seja R 12 uma classe de relacionamentos entre e1 e e2, e sejam r1, r2 e r12 restries sobre os atributos de e1, e2 e R 12, respectivamente. Um caminho binrio apresenta-se na forma: e1.r1 R12.r12 e2.r2.

33

Captulo 4 - Pr-Requisitos Fragmentao no ME-R


Considerando o diagrama da Figura 16, uma consulta de caminho binrio pode ser:

Fornea todos os empregados que possuem salrio superior a 500,00 e trabalham no projeto nmero 5,

que produz:

EMPREGADO.Salrio > 500,00 TRABALHA PROJETO.Id=5.

Uma outra consulta de caminho binrio pode ser:

Fornea todos os empregados que possuem salrio superior a 500,00 e trabalharam pelo menos 10 horas no projeto nmero 5,

que produz:

EMPREGADO.Salrio > 500,00 TRABALHA.Qte_horas

10 PROJETO.Id = 5.

4-3.3 Caminhos N-rios


Os caminhos n-rios so compostos por n classes de entidades e/ou hierarquias de generalizao. Generalizando as definies de caminhos unrios e binrios apresentadas nas ltimas duas sees, sejam e1, e2, ..., en classes de entidades e/ou hierarquias, sejam R 12, R 23, ..., R n-1 classes de relacionamentos entre e1 e e2, e2 e e3, ..., en-1 e en,

respectivamente, e sejam r1, r2, ..., rn, r12, r23, ..., rn-1 e2, ..., en, R 12, R 23, ..., R n-1

restries sobre os atributos de e1,

, respectivamente. Um caminho n-rio apresenta-se na forma: en.rn.

e1.r1 R12.r12 e2.r2 R23.r23 e3.r3 ... Rn-1 n.rn-1

De acordo com o diagrama da Figura 16, uma consulta de caminho n-rio pode ser:

34

Captulo 4 - Pr-Requisitos Fragmentao no ME-R


Fornea todos os empregados que possuem salrio superior a 500,00 e trabalham em algum projeto do departamento de R.H.,

que resulta em:

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.,

que resulta em:

EMPREGADO.Salrio

>

500,00

TRABALHA

PROJETO[UTILIZA

PRODUTO.Descrio = X and PERTENCE DEPARTAMENTO.Nome = R.H.].

Vale ressaltar a

utilizao de colchetes e do operador lgico and na segunda

consulta, uma vez que o caminho resultante compreende um sub-caminho composto na sua formao (PROJETO[UTILIZA PRODUTO.Descrio = X and PERTENCE

DEPARTAMENTO.Nome = R.H.]) e no um caminho simples, como visto nas demais consultas.

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

5- Fragmentao Primria do Diagrama ER

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

fragmentao existente a entre

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

Captulo 5 - Fragmentao Primria do Diagrama ER

5-1 Unio e Agregao


Como mencionado anteriormente, as fragmentaes devem obedecer s trs

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

conjuntos de identificadores, E ids+ , ..., id }, ..., E

com I(E ) = {id , id , ..., id }, E

com I(E ) = {id

s+1,

com I(E ) = {id

r+1,

id

r+2,

..., id }, com as regras de completude e

disjuno devidamente respeitadas. A funo Un definida como sendo o conjunto unio entre as instncias de cada um dos fragmentos, ou seja,

Un = I(E ) U I(E ) U ... U I(E )} = {id , id , ..., id , id

s+1,

id

s+2,

..., id , id

r+1,

id

r+2,

..., id }.

Un = I(E) = {id , id , ..., 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

fragmentos, que ser discutida na seo 5-2.2.

37

Captulo 5 - Fragmentao Primria do Diagrama ER


Definiremos a funo de agregao de acordo com a semntica discutida na seo 4-2. Seja E uma classe de entidades (hierarquia) com I(E) = {id1, id2, ..., idn} seu

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

r. Dessa maneira, o conjunto de atributos dos fragmentos ser da forma E j = {k1,

k2, ..., ks} U Aj, sendo A j

{a1, a2, ..., ar}, para 1 j . m.

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}.

5-2 Fragmentao de Classes de Entidades


Nesta seo, a fragmentao de classes de entidades, ou simplesmente entidades, ser abordada utilizando-se um diagrama ER composto apenas por entidades, isto , sem relacionamentos com outras entidades. A fragmentao de entidades formada por dois tipos bsicos: a fragmentao horizontal e a fragmentao vertical. Ambos os tipos de fragmentao produzem novas classes de entidades. Porm, o que as difere da classe de entidades original a

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

Captulo 5 - Fragmentao Primria do Diagrama ER

5-2.1 Fragmentao Horizontal de Classes de Entidades


A fragmentao horizontal de entidades consiste no particionamento do conjunto de identificadores que instanciam uma entidade original em subconjuntos de

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

Captulo 5 - Fragmentao Primria do Diagrama ER

Figura 17: Fragmentao Horizontal de Classes de Entidades

s entidades FORNECEDOR e FORNECEDOR

foram atribudas as restries

[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.

Figura 18: Associao Implcita entre Diagramas (Frag. Horizontal Entidades)

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

Captulo 5 - Fragmentao Primria do Diagrama ER


A regra de reconstruo facilmente verificada, dado que a reconstruo da

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.

5-2.2 Fragmentao Vertical de Classes de Entidades


A fragmentao vertical de classes de entidades consiste no particionamento do conjunto de atributos que caracterizam uma classe de entidades de origem em

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

Captulo 5 - Fragmentao Primria do Diagrama ER

Figura 19: Fragmentao Vertical de Classes de Entidades

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.

Figura 20: Operao de Agregao dos Fragmentos

42

Captulo 5 - Fragmentao Primria do Diagrama ER

5-3 Fragmentao de Hierarquias de Generalizao


Conforme explicado anteriormente, no incio deste captulo, a fragmentao de hierarquias de generalizao ser abordada utilizando-se um diagrama ER composto

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.

5-3.1 Fragmentao Generalizao


A fragmentao

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

Fragmentao de Entidades Pai

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

Captulo 5 - Fragmentao Primria do Diagrama ER


Os mesmos identificadores que instanciavam a hierarquia original agora

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.

Figura 21: Fragmentao Horizontal de uma Entidade "Pai" em uma Hierarquia

A obtida da

associao implcita existente mesma maneira utilizada na

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

hierarquias Figura 22.

fragmentadas.

associao

melhor

atravs

44

Captulo 5 - Fragmentao Primria do Diagrama ER

Figura 22: Associao Implcita entre Diagramas (Frag. Horizontal Hierarquias)

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

restries [Ano Fabr.

1980] e [Ano Fabr. > 1980] so mutuamente excludentes.

5-3.1.2

Fragmentao de Entidades Filhas

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

Captulo 5 - Fragmentao Primria do Diagrama ER

Figura 23: Fragmentao Horizontal de uma Entidade "Filha" em uma Hierarquia

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.

Figura 24: Associao Implcita entre Diagramas (Frag. Horizontal Hierarquias)

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

Captulo 5 - Fragmentao Primria do Diagrama ER


Para verificarmos a corretude da fragmentao, analisaremos cada uma das regras bsicas de fragmentao apresentadas na seo 3-2. A completude da fragmentao satisfeita, uma vez que todos os identificadores que instanciavam a entidade TRANSPORTE, passam a instanciar as entidades

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

> 6] or [No.Eixos 6] = 1. >


6] e

A disjuno dos fragmentos trivial, visto que as restries [No.Eixos

[No.Eixos

6] so mutuamente excludentes.

5-3.2 Fragmentao Vertical de Hierarquias de Generalizao


A fragmentao vertical vertical de uma de hierarquia que de a generalizao compem. consiste na as

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

Fragmentao de Entidades Pai

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

instanciam cada uma das hierarquias fragmentadas.

47

Captulo 5 - Fragmentao Primria do Diagrama ER


Um exemplo deste tipo de fragmentao pode ser encontrado na Figura 25.

Figura 25: Fragmentao Vertical de uma Entidade "Pai" em uma Hierarquia

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.

Figura 26: Associao Implcita entre Diagramas (Frag. Vertical Hieraquias)

Para comprovarmos a corretude da fragmentao devemos realizar a verificao das regras bsicas de fragmentao.

48

Captulo 5 - Fragmentao Primria do Diagrama ER


A completude da fragmentao satisfeita, uma vez que todos os identificadores que instanciavam a hierarquia original agora instanciam as novas hierarquias. A mudana ocorrida em tal fragmentao refere-se apenas aos esquemas da entidades participantes nas novas hierarquias geradas, e no instanciao de cada uma delas. A reconstruo da hierarquia original facilmente alcanada atravs da aplicao de uma operao de agregao entre as novas hierarquias (entidades pai),

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

fragmentao, conforme mencionado anteriormente.

5-3.2.2

Fragmentao de Entidades Filhas

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

Captulo 5 - Fragmentao Primria do Diagrama ER


No conhecemos aplicaes para tal tipo de operao na fragmentao do ME-R visando a distribuio dos dados, por este motivo no so apresentados exemplos para este tipo de fragmentao.

50

Captulo 6

6- Fragmentao Derivada Estrutural do Diagrama ER

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,

introduo do fato da fragmentao derivada no modelo entidade-relacionamento

ser

totalmente proveniente da estrutura do diagrama ER e no da aplicao de consultas, como no caso do modelo relacional de dados.

6-1 Fragmentao Derivada Primria


Nesta seo, analisaremos os efeitos da fragmentao de um dos elementos do diagrama sobre os relacionamentos dos quais o elemento fragmentado participa.

51

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER


Como mencionado anteriormente, uma fragmentao de elementos como uma classe de entidades ou uma hierarquia de generalizao, seja ela horizontal ou vertical, produz novas entidades herdam Por (ou os se hierarquias). Estes novos quais elementos o resultantes original da era dos

fragmentao participante.

todos

relacionamentos uma classe de

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

atributos e restries de cardinalidade.

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.

Figura 27: Fragmentao Horizontal Derivada Primria

52

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER


Analogamente, caso a fragmentao aplicada sobre a entidade EMPREGADO

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.

Figura 28: Fragmentao Vertical Derivada Primria

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

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER


disjuno entre os fragmentos, ou seja, uma mesma instncia da entidade

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

discutido na seo 6-3. A prxima seo apresenta a fragmentao de elementos autorelacionados.

6-2 Fragmentao de Elementos Auto-Relacionados


A fragmentao de elementos auto-relacionados, sejam eles classes de entidades ou hierarquias de generalizao, segue os mesmos princpios apresentados nas demais sees que compem este captulo. Ilustraremos a fragmentao de uma classe de entidades que possui um autorelacionamento por meio de um exemplo para melhor compreenso do processo. Consideremos EMPREGADO, o exemplo da pelo Figura atributo 29, onde fragmentaremos produzindo dois a entidade

horizontalmente,

Salrio,

fragmentos.

Vale notar que a fragmentao aplicada sobre a entidade EMPREGADO produziria o mesmo efeito se fosse realizada verticalmente.

Figura 29: Fragmentao de um Auto-Relacionamento

Sem perda de generalidade, transformaremos o auto-relacionamento GERENCIA em um relacionamento binrio criando duas cpias da entidade EMPREGADO,

EMPREGADO1 e EMPREGADO2, produzindo o diagrama da Figura 30.

54

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER

Figura 30: Relacionamento Binrio

Aplicando fragmentos

fragmentao e

sobre

entidade

EMPREGADO1 seus

produzimos conjuntos

os de

EMPREGADO1.1

EMPREGADO1.2,

com

respectivos

restries. A Figura 31 ilustra a operao.

Figura 31: Fragmentao Horizontal (1) em Auto-Relacionamento

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

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER

Figura 32: Fragmentao Horizontal (2) em Auto-Relacionamento

Como

EMPREGADO

EMPREGADO

so

cpias

de

EMPREGADO

diagrama final pode ser visto na Figura 33.

Figura 33: Diagrama ER Final (Auto-Relacionamento)

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

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER


relacionamentos GERENCIA" e GERENCIA diagrama. seriam vazios e poderiam ser ocultados no

6-3 Fragmentao Derivada Recursiva


Na seo anterior, nos quais foram o apresentados os efeitos da fragmentao onde sobre os

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

fragmentao poderia, dependendo do contexto da aplicao, exigir a fragmentao da

57

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER


entidade EMPREGADO. tambm Caso esta e fragmentao da fosse necessria, ela seria da uma

fragmentao

horizontal

derivada

fragmentao

horizontal

entidade

DEPARTAMENTO. Na teoria sobre fragmentao no diagrama ER, apresentada no captulo 5, a

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

restries que unia

fragmentao

caminho

inicial

DEPARTAMENTO a EMPREGADO ser desdobrado em dois, um para cada fragmento de DEPARTAMENTO:

EMPREGADO EMPREGADO

Gerencia DEPARTAMENTO.{Atividade = RH}

Gerencia DEPARTAMENTO .{Atividade = Projetos} ,

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

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER


tais consultas para a formao 34, que dos conjuntos todo o de restries, de o diagrama resultante desde a

apresenta-se

na

Figura

ilustra

processo

fragmentao,

fragmentao inicial aplicada sobre a entidade DEPARTAMENTO at a propagao da mesma sobre a entidade EMPREGADO.

Figura 34: Propagao (1) da Fragmentao pelo Diagrama ER

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

relacionamentos so criados, um para cada fragmento.

59

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER


No caso desta cardinalidade-mxima ser igual a N, em vez de duas entidades e dois relacionamentos, teremos trs entidades e quatro novos relacionamentos. A criao de uma terceira entidade se faz necessria para haver a disjuno entre os fragmentos. Alterando o esquema de fragmentao do diagrama ilustrado na Figura 34, partir da fragmentao primria de EMPREGADO e da fragmentao derivada a

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.

Figura 35: Propagao (2) da Fragmentao pelo Diagrama ER

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

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER


Suponhamos que Gerenciado_por um alias de Gerencia (prtica comum no ME-R, e.g. [2] e [9]) e:

R 1 = DEPARTAMENTO Gerenciado_por EMPREGADO1 R 2 = DEPARTAMENTO Gerenciado_por EMPREGADO2,

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.

6-4 Exemplo Final


Nesta seo, apresentaremos um exemplo completo de fragmentao derivada, a fim de melhor visualizarmos os efeitos produzidos por uma operao de fragmentao no diagrama ER. Ao contrrio dos demais exemplos apresentados nesta dissertao, este exemplo possui vrias entidades, atributos, seus respectivos relacionamentos e cardinalidades, e representa um contexto real de modelagem. Isto essencial para que as operaes de fragmentao realizadas sobre o diagrama possam ser devidamente interpretadas e

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

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER


autonomia a cada um dos seus departamentos, o departamento de recursos humanos, de finanas e de informtica.

Figura 36: Diagrama ER Global

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

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER

Figura 37: Fragmentao Horizontal Inicial

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

DEPARTAMENTO (1, 1) com

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

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER


entidades, PROJETO, PROJETO e PROJETO!, com seus respectivos conjuntos de

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

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER


Suponhamos que a empresa no deseja conceder o controle sobre os empregados a cada departamento, ou seja, o controle realizado de forma centralizada. Assim, a entidade EMPREGADO no faz parte do escopo de propagao da fragmentao. De forma anloga, o controle sobre os produtos utilizados pelos projetos deve ser realizado igualmente de maneira centralizada, e a entidade PRODUTO tambm no faz parte do escopo de propagao.

Figura 38: Fragmentao Horizontal Derivada

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.

1.500] e [Salrio > 1.500]. Tal fragmentao ilustrada na Figura

65

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER

Figura 39: Diagrama ER Distribudo

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

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER

6-5 Gerao da Imagem dos Fragmentos

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

simplicidade, exemplifica com satisfatoriedade a noo que nos propomos a passar.

Figura 40: Diagrama ER para Gerao da Imagem dos Fragmentos

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

mquinas hospedeiras, e, portanto, est fora do escopo deste trabalho.

67

Captulo 6 - Fragmentao Derivada Estrutural do Diagrama ER


A Figura 41 mostra uma possvel gerao de duas imagens fsicas. Vale notar que h replicao da entidade EMPREGADO. Se desejarmos evitar esta replicao

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.

Figura 41: Imagem Fsica Conexa dos Fragmentos

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.

7-1 Ferramenta para Projeto e Distribuio de Dados


Os conceitos e a sistemtica apresentados neste trabalho de pesquisa constituem uma base terica bastante para a implementao de uma ferramenta computacional que possibilitasse a fragmentao automtica de um DE-R. Tal implementao ilustraria a viabilidade e funcionalidade da aplicao da teoria desenvolvida durante este trabalho. Segundo a idealizao do autor, esta ferramenta seria composta por um editor de diagramas entidade-relacionamento, que englobaria todos os elementos do modelo ER apresentados no captulo 2, alm de um mdulo de distribuio de dados. Este mdulo de distribuio seria composto por um compilador simples para a realizao de consultas baseadas na linguagem definida na seo 4-3, e um manipulador de vises, que

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

editor de diagramas entidade-relacionamento est completamente

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.

7-2 A Natureza Estrutural das Fragmentaes Derivadas


No captulo 3, onde apresentamos a teoria sobre distribuio de dados segundo o modelo relacional, pudemos notar a ausncia de uma correspondncia explcita e direta entre as relaes globais que compem o esquema lgico de um banco de dados. A correspondncia entre relaes realizada em funo de uma outra relao que possui atributos em comum entre estas relaes, como por exemplo:

FORNECEDOR(CGC, Nome, Telefone)

FORNECE(CGC, NoSerial, Quantidade)

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

explcita tal fragmentao derivada.

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

Figura 42: Diagrama ER (Concluso)

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

relacional) como decorrente das consultas da aplicao

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.

7-3 Incorporao Banco 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

indispensvel ao bom funcionamento do mesmo.

7-4 Criao de uma Base Terica para a Manipulao de Dados


Conforme mencionado na seo 7-3, as idias sugeridas neste projeto de pesquisa tornam o esquema conceitual um elemento componente da vida do banco de dados. Uma das principais metas deste trabalho foi a criao de uma base terica que possibilitasse a incorporao de manipulao de dados ao modelo ER para o caso de bancos de dados distribudos. Uma vez que j temos a especificao de distribuio no modelo ER, a manipulao de dados pode ser realizada com base no projeto TEMPORA [7, 8, 9, 10, 11]. Este implementa a manipulao de dados no nvel conceitual para bancos de dados centralizados, desenvolvido no Imperial College em Londres, do qual o Prof. Dr. Marcelo Finger (orientador) fez parte do grupo de desenvolvimento. Com a manipulao de dados sendo realizada tambm no nvel conceitual,

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]

P. Chen. The Entity-Relatioship model: Toward a unified view of data. ACM

TODS, vol. 1, No. 1, 1976.

[2]

C.

Batini,

S.

Ceri,

S.

Navathe.

Conceptual

Database

Design

An

Entity-

Relationship Approach. The Benjamin/Cummings Publishing Company, Inc., 1992.

[3]

R.

Elmasri

S.

Navathe.

Fundamentals

of

Database

Systems.

The

Benjamin/Cummings Publishing Company, 1989.

[4]

H. Korth e A. Silberschatz. Sistema de Bancos de Dados. Editora McGraw-Hill,

Ltda., 1989.

[5]

S. Spaccapietra e C. Parent. An Algebra for a General Entity-Relationship Model.

In IEEE Transactions on Software Engineering, vol. SE-11, No. 7, 1985.

[6]

S. Ceri, G. Pelagatti. Distributed Databases - Principles and Systems. McGraw-

Hill, Inc., 1984.

[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

Systems, 1(2), 1991.

[8]

P.

J.

McBrien.

The

TEMPORA

implementation:

Overview,

testing

and

assessment. Technical report, TEMPORA project report, November 1993.

73

Captulo 8 - Bibliografia

[9]

P.

J. McBrien, M. Niezette, S. U.Sundin, of the and R. Wohed. Nordic

Pantazis, B. The

Theodoulidis, external

G.

Tziallas,

A.

H. In

Seltveit,

TEMPORA on

rule

language.

Proceedings

Third

Conference

Advanced

Information

Systems

Engineering, vol. 498 of LNCS. Springer-Verlag, 1991.

[10]

TEMPORA project report. The sweden post case study. SISU, 1991.

[11]

TEMPORA project report. The TEMPORA manual. BIM, 1992.

[12]

V. Setzer. Projeto Lgico e Projeto Fsico de Bancos de Dados. In V Escola de

Computao, Belo Horizonte - MG, 1986.

[13]

A. M. Neto. Uma Linguagem de Consulta para o Modelo ER e sua Completude.

Dissertao de Mestrado - IME - USP, 1982.

74

Você também pode gostar