• Nenhum resultado encontrado

Publicações do PESC Um Estudo sobre Implementação de Índices Através de Árvores N-Árias

N/A
N/A
Protected

Academic year: 2021

Share "Publicações do PESC Um Estudo sobre Implementação de Índices Através de Árvores N-Árias"

Copied!
201
0
0

Texto

(1)

UM ESTUDO SOBRE A IMPLEMENTAÇÃO D E TNDICES

ATRAVES DE

ARVORES

N-ARIAS

E l i s a b e t h Fátima T o r r e s

DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO R I O DE JANEIRO COMO PARTE DOS R E Q U I - S I T O S NECESSARIOS PARA A OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIAS (M.Sc.)

A p r o v a d a p o r :

'Prof. L U I Z A. C. DA CUNHA COUCEIRO

R I O DE JANEIRO, R J

-

B R A S I L JUNHO DE 1981

(2)

TORRES, ELISABETH

FATIMA

Um E s t u d o s o b r e a Implementação d e h d i c e s

través

de A r v o r e s N - h r i a s (Rio d e J a n e i r o ) 1 9 8 1

V I I , 19.4 p . 29,7cm (COPPE-UFRJ, M.Sc. Engenharia

d e S i s t e m a s e Computação, 1981)

Tese

-

Univ. Fed. Rio de J a n e i r o . F a c u l d a d e de E n g e n h a r i a . 1. Banco de Dados I . COPPE/UFRJ 11. Um E s t u d o S o b r e Imple- mentação de Í n d i c e s

través

d e A r v o r e s N-Arias.

(3)

iii

(4)

AGRADEC IMENTOS

Ao meu o r i e n t a d o r , JANO M Q R E I R A D E SOUZA, p e l o s e n - s i n a m e n t o s e a t e n ç ã o ; a o a c a d ê m i c o HEL I 0 MARÇOLA JUN I O R , p e l a c o

-

l a b o r a ç ã o na p r o g r a m a ç ã o ; a o E D S O N S H I G U E R U TAKEDA, p e l o c u i d a d o com a d a t i l o g r a f i a ; a o d i r e t o r d o N Ü c l e o d e P r s c e s s a m e n t o d e D a - d o s d a U n i v e r s i d a d e E s t a d u a l d e M a r i n g á , DILVO PAUPTIZ, p o r t e r f a c i l i t a d o o u s o d o c o m p u t a d o r .

a

m i n h a f a m 7 l i a e a m i g o s p e l o a p o i o m o r a l e c o m p r e - e n s ã o . A o s p r o f e s s o r e s d o P r o g r a m a d e E n g e n h a r i a d e S i s t e - mas e C o m p u t a ç ã o d a COPPE-UFRJ, p e l a f o r m a ~ à o a q u i a d q u i r i d a . Ao C N P Q

-

C o n s e l h o N a c i o n a l d e D e s e n v o l v i m e n t o C i e n

-

t / f i c o e T e c n o l Ó g i c o ,

ã

CAPES

-

C o o r d e n a ç ã o N a c i o n a l d e A p e r f e i - ç o a m e n t o d o P e s s o a l d o E n s i n o S u p e r i o r e

5

F I N E P

-

F i n a n c i a d o r a d e P r o j e t o s e P e s q u i s a s , p e l a s b o l s a s r e c e b i d a s d u r a n t e o c u r s o .

(5)

RESUMO G o n s i s t e num e s t u d o , s o b r e a o r g a n i z a ç ã o e e s t r u - t u r a ç ã o d e í n d i c e s p a r a a c e s s o a l e a t õ r i o e s e q u e n c i a l a a r q u i - v o s r e s i d e n t e s e m d i s c o s m a g n é t i c o s ou d i s c o s m a g n é t i c o s f l e x z - v e i s e , n a e s c o l h a e d e f i n i ç ã o d e uma e s t r u t u r a p a r a a i m p l e - m e n t a ç ã o . A e s t r u t u r a e s c o l h i d a

e

uma v a r i a ç ã o d a á r v o r e B e p e r m i t e a o u s u & i o c o n s t r u i r e a c e s s a r í n d i c e s com c h a v e s numé- r i c a s e a l f a n u m & i c a s , d e tamanho c o n s t a n t e ou v a r i â v e l , a t r a -

-

-

v é s d a s o p e r a ç õ e s d e b u s c a , i n s e r ç a o , remoçao, b u s c a a o prÓxi- mo, b u s c a a o a n t e r i o r e b u s c a p o r p o s i ç ã o . A i m p l e m e n t a ç ã o f o i f e i t a num computador I B M 1 1 3 0 , s e n d o u s a d a p a r a a p r o g r a m a ç ã o a l i n g u a g e m FORTRAN ( s a l v o s u b - r o t i n a s a u x i l i a r e s d e m a n i p u l a ç ã o d e b y t e s , que e s t ã o e m A s - s e m b l e r ) , a p r e s e n t a n d o uma boa p o r t a b i l i d a d e . L P r e p a r o u - s e um manual p a r a o r i e n t a ç ã o a o s u s u a - r i o s d o s i s t e m a .

(6)

AB STRACT --- T h i s work i n v o l v e s t h e s t u d y c o n c e r n i n g t h e o r g a n i z a t i o n and s t r u c t u r e o f i n d e x e s f o r t h e randomic a c c e s s t o t h e e x i s t i n g f i l e s i n m a g n e t i c d i s k s , and i n t h e c h o i c e o f a d e f i n i t i o n a b o u t a s t r u c t u r e f o r i m p l e m e n t a t i o n . The c h o s e n s t r u c t u r e i s a v a r i a t i o n of a B t r e e and p e r m i t s t h e u s e r t o b u i l d up and t o h a v e a c c e s s t o i n d e x e s w i t h n u m e r i c a l and a l p h a n u m e r i c Keys, o f a c o n s t a n t and v a r i a b l e s i z e , t h r o u g h r e t r i e v a l , i n s e r t i o n , d e l e t i o n , s e a r c h f o r

t h e n e x t , s e a r c h f o r t h e p r e v i o u s and s e a r c h f o r p o s i t i o n .

An i m p l e m e n t a t i o n was made i n a I B M 1130 comput e r b e i n g u s e d f o r t h e program d e a l i n g w i t h t h e FORTRAN l a n g u a g e ( w i t h t h e e x c e p t i o n of a u x i l i a r y s u b r o t i n e s of m a n i p u l a t i o n o f b y t e s , which a r e i n a s s e m b l e r ) , o f f e r i n g a good p o n t a b i l i t y .

I t p r e p a r e s a manual f o r t h e g u i d a n o e o f t h o s e t h a t u s e t h e s y s t e m .

(7)

v i i I . I n t r o d u ç ã o

...

0 1 1 1 . Revisão d a L i t e r a t u r a

...

03 111. D e f i n i ç ã o do Sistema

...

4 3 IV. Conclusões

...

93 V. ~ e f e r ê n c i a s ~ i b l i o g r á f i c a s

...

9 4

Anexo 1

-

C a r a c t e r í s t i c a s do Computador Hospedeiro Anexo 2

-

Determinação do K

Anexo 3

-

L i s t a g e n s

(8)

O trabalho desenvolvido trata do problema do pro- jeto de um sistema para organização e utilização de índices pa

-

ra acesso aleatório e sequencial a arquivos residentes em dis-

cos magnéticos ou discos magnéticos f1ex:vei.s. O nosso traba

-

lho consistiu na pesquisa das referências bibliogr~ficas sobre

o assunto, no estudo da revisão da literatura, sistematização

da nomenclatura usada para as árvores n-&ias, definição de um

projeto de es*ruturação de hdices que aceitasse o uso de cha-

ves alfanuméticas, de tamanho constante e variável, e na imple

-

mentação dessa estrutura de índice.

A revisão da literatura comecou pelo estudo do ar

tigo "Organization and Maintenance of Large Ordered Indexes"

o 2

de BAYER e McCREIGHT

,

onde

é

apresentado o conceito de árvore

B. Continuando com os estudos de revisão da literatura, encon

-

tramos variações surgidas em torno do conceito de árvore B, in

-

clusive havendo multiplicidade nos nomes atribuidos a essas, e

dados comparativos entre os desempenhos de implementações fei-

tas con variações diversas.

Nesta implementação usamos a arvore apresentada

+-

neste trabalho como sendo árvore B com prefixo simples.

A

es- trutura desenvolvida, além dos procedimentos básicos de busca,

inserção e remocão, oferece outras facilidades ao usuário como

a possibilidade de ser feita inicialmente uma carga maciça do

h d i c e , em vez da inserção um a um, e a busca ao anterior, a

busca ao e a busca por posicão, sendo também poss?vel

(9)

O objetivo foi possibilitar aos usu&ios da linguagem FORTRAN, que apresenta tão poucas opções para o tra-

balho com arquivos, as facilidades oferecidas pela utilização

de índices associados aos arquivos. O sistema todo, salvo sub-

rotinas auxiliares de manipulação de bytes que estão em as-

sembler, foi desenvolvido com a linguagem FORTRAN do IBM U30,

o que acarreta uma boa portabilidade.

Consideramos o desenvolvimento deste trabalho

importante por ser de utilidade prática a outros usuários. Par-

ticularmente, tem importância pela própria concretização da nos

-

sa proposta de trabalho e o consequente aperfeiçoamento adqui-

rido com o seu desenvolvimento.

Na seção 11, descreveremos as principais soluções

encontradas na literatura,

utilizadas na ou em es- tudo. Na seção 111 apresentamos o sistema implementado, com

todos os procedimentos desenvolvidos e os algoritmos correspon -

dentes, que são apresentados usando-seuma pseudo-linguagem al-

gorltmica em português. Na seção IV apresentamos as conclu-

-

soes; na

V

as referências bibliograficas e na VI temos quatro

anexos: no primeiro, apresentamos algumas caracterhticas do

computador em que foi feita a implementação, um IBM 1130 aloca-

do na Universidade Estadual de ~ a r i n ~ ã , no paranã; no segundo,

A

temos a maneira de determinar corretamente o

K,

um dos parame-

tros caracter?sticos de uma árvore B; no terceiro anexo temos as listagens do sistema e como quarto anexo temos o Manual do

usuário com orientações quanto ao uso do sistema e onde apre-

(10)

I I

-

REV ISRO DA L ITERA'PURA

.

1

-

J u s t i Z 3 c a t i ~ a s

.

2

-

Tipos de %xlices ,

.

1

-

quanto

%

e s t a b H 2 d a d e á a sua e s t r u t u r a

.

.

2

-

quanto

's

l o c a l f z a ç ã o d a s Informaq6es

.

3

-

Tndlces e s t á t i c o s

-

ESAM

.

.

1

-

defin2çgo

. .

2

-

adequacáo

à

e s t r u t u r a f i s f c a ao d l s p o s i t i v o de armazenamenta C

..

3

-

á r e a d e extensào , 4

-

I n d i c e s dln8micos

..

1

-

VSAM

. . .

1

-

d e f i n i c ã o

. . .

2

-

organizaggo do ,fndice

...

3

-

operaqõeç

.

. .

.

1

-

busca

.

.

..

2

-

i n s e r c ã o

.

. .

.

3

-

remsç5o riC

.

.

2

-

a r v o r e R

.

. .

1

-

d e f f n l q 3 0

.

R 2

-

ope.rbç@'es\ permii'8?3as

.

. . .

1

-

Busca

,L..

2

-

busca o p~6x?mo

..

,, 3

-

i n s e r ç 8 o

....

4

-

remoção

...

3

-

c u s t o das operaç6es

,.

.

, 1

-

c u s t o d a busca

....

2

-

c u s t o da busca ao p ~ 6 x h o

.

. . .

3

-

c u s t o d a imserçho

.

* ,

.

4

-

c u s t o d a remoqso

(11)

. . .

, 1

-

"Overflow"

....

2

-

ré-pag2nacZío

,

.

3

-

v a r i a ç 0 e s de % m o r e B

...

1

-

tamanho de p á g i n a v a r i & e l com o n z v e l

.

, , 2

-

aumento da ocupacão mZnima

*

r ,

. .

, 1

-

a r v o r e B 4

*

*

.

.

,.

2

-

á r v o r e B

.

. .

3

-

chaves de tamanhos v a r i g v e i s

...

4

-

l o c a l i z a q ã o da h f o r m a ç ã o d e n t r o da e s t r u - t u r a

+

.

, ,

.

1

-

,grvore B

+

...,

2

-

a r v o r e B com p r e f l x o s2mples #

+

.

.

. .

3

-

a r v o r e B com p r e f i x o

(12)

I1

-

1 JUSTIFICATIVAS A u t i l i z a ç ã o d e g r a n d e s a r q u i v o s em p r o c e s s a m e n t o onde s e n e c e s s i t a d e a c e s s o a l e a t z r i o e x i g e uma e s t r u t u r a d e h d i c e a s s o c i a d a a o a r q u i v o . - 0 c o n c e i t o d e h d k e a q u i

é

o mesmo u s a d o em l i n g u a g e m comum: c o n s i s t e d e um c o n j u n t o o r d e n a d o d e i n f o r -

-

maçoes q u e f a c i l i t a m a b u s c a a um c o n j u n t o m a i o r d e i n f o r - mações a s s o c i a d a s

2s

p r i m e i r a s . D e n t r o d o s r e g i s t r o s d e um a r q u i v o , o r g a n i z a d o d e manei

-

r a n ã o s e q u e n c i a l , h á i n f o r m a ç õ e s que p o r

SI

s ó ,

ou combinadas a o u t r a s , podem i d e n t i f i c a r u n i v o c a m e n t e o s r e g i s t r o s . E s s e s i d e n t i f i c a d o r e s d e r e g i s t r o s a o c o n h e c i d o s como a s u a c h a v e e

é

p o s s í v e l i d e n t i f i c a r o r e g i s t r o r i uma v e z c o n h e c i d a s u a c h a v e Ki. Em g e r a l c h a v e s obedecem a alguma r e l a ç ã o d e ordem o que p e r m i t e d e f i n i r - s e uma s e q u ê n c i a

l ó g i c a

e n t r e e l a s , no a r q u i v o , e e s s a s e q u ê n c i a l ó g i c a que p e r m i t e a e s t r u t u r a ç ã o d o í n d i c e . Um f n d i c e pode e s t a r f i s i c a m e n t e i n t e g r a d o a o a r q u i v o i f l L o u

2

p a r t e , e p o r s i

o í n d i c e j a e um a r q u i v o . Se o f n d i c e f o r m u i t o e x t e n s o t e r um í n d i c e d e n í v e l s u p e r i o r a s s o c i a d o a e l e . Embora o s í n d i c e s tenham s i d o u s a d o s em c o m p u t a d o r e s p r a t i c a m e n t e d e s d e o começo,

é

com o d e s e n v o l v i m e n t o d o s d i s p o - s i t i v o s d e d i s c o m a g n < t i c o , q u e p e r m i t e m o a c e s s o d i r e t o a o da- d o , que a s u a u t i l i z a ç ã o

é

a c e n t u a d a . O s í n d i c e s e x t e n s o s s a o m a n t i d o s em d i s p o s i t i v o s d e memória a u x i l i a r e p o r i s s o o tempo g a s t o c o m o s e u p r o - c e s s a m e n t o

é

i m p o r t a n t e n a a v a l i a ç ã o d o s c u s t o s . O tempo r e q u e r i d o p a r a a c e s s a r o d i s p o s i t i v o s e c u n d ã r i o d e armaze- 4 namento e o p r i n c i p a l f a t o r c o n s i d e r a d o n e s s a a n á l i s e d e c u s - t o s , o u t r o s s ã o : o tempo n e c e s s á r i o p a r a p r o c e s s a r um d a d o uma v e z c o l o c a d o n a m e m ô r i a , a o c u p a ç ã o d e e s p a ç o no d i s p o s i t i v o d e

(13)

0 6 armazenamento e a r a z ã o e n t r e o e s p a ç o r e q u e r i d o p e l o í n d i c e e o e s p a ç o r e q u e r i d o p e l a s i n f o r m a ç õ e s a s s o c i a d a s ( o s r e g i s t r o s com- p l e t o s ) . O s T n d i c e s g e r a l m e n t e a p r e s e n t a m alguma ou t o d a s d a s s e - g u i n t e s c a r a c t e r k t i c a s : 1) h a b i l i d a d e p a r a a c e s s a r d i r e t a m e n t e um r e g i s t r o a t r a - v ê s d e s u a c h a v e , 2 ) h a b i l i d a d e p a r a p r o c e s s a r s e q u e n c i a l m e n t e o s r e g i s - t r o s d o a r q u i v o p e l a s e q u ê n c i a d a s c h a v e s , 3 ) h a b i l i d a d e p a r a i n s e r i r ou remover r e g i s t r o s ; em p a r - t i c u l a r , p e r m i t i r o d e s e n v o l v i m e n t o do a r q u i v o num de- t e r m i n a d o s e n t i d o . A e s t r u t u r a b á s i c a d e r e p r e s e n t a ç ã o d o s T n d i c e s c o n s i d e - r a - o s como um c o n j u n t o d e c h a v e s K i=1,

...,

n ( n = tamanho do

i

'

a r q u i v o ) e um c o n j u n t o d e a p o n t a d o r e s p j = O , . * n Cj E N I e j 3 I1

-

2 TIPOS DE ÍNDICES 1. Quanto

5

e s t a b i l i d a d e d e s u a e s t r u t u r a o s í n d i c e s s ã o c l a s - s i f i c a d o s p o r HELD e S T O N E B R A K E R ~ ~ como e s t ã t i c o s o u d i n â m i - c o s . Um í n d i c e

é

d i t o d i n â m i c o quando e s t a s u j e i t o

5

r e o r g a n i - z a ç ã o d e s u a e s t r u t u r a sempre q u e uma o p e r a ç ã o d e i n s e r ç ã o ou remoção f e i t a , podendo h a v e r a l t e r a ç õ e s e m t o d o s o s s e u s n í v e i s e

a t é

do número d e n z v e i s . N e s s e t i p o d e h d i - c e , a f l e x i b i l i d a d e c o n s e g u i d a a t r a v é s d e uma g r a n d e u t i l i - z a ç ã o d e p o n t e i r o s . Ex. d e h d i c e d e s s e t i p o : i m p l e m e n t a ç õ e s com a r v o r e - B (a s e r v i s t a com d e t a l h e s n a s e ç ã o 11-4-21 O u t r o p r o b l e m a d e c o r r e n t e do u s o d e h d i c e s d i n â m i c o s , além do c u i d a d o e x i g i d o p a r a a s u a f r e q u e n t e r e e s t r u t u r a ç ã o , d i z respeito a o u s o d e um mesmo a r q u i v o p o r p r o c e s s o s c o n c o r r e n t e s .

(14)

Neste c a s o precauqões devem s e r tomadas p a r a que não ocorram i n t e r f e r ê n c i a s e n t r e o s d i v e r s o s p r o c e s s o s .

f n d i e e s . es't'á-t'i'còs são e s t r u t u r a s de armazenamento rzgi- d a s , nas q u a i s não são p e r m i t i d a s r e o r g a n i z a c õ e s e s t r u t u r a i s s i g n i f i c a t i v a s d u r a n t e o processamento. Como exemplo temos o ISAM,aa IBM ou da D i g i t a l , [a s e r v i s t o com d e t a l h e s na s e

-

Ç ~ O 11-3). No PSAM da IBM, os r e g i l s t r o s i n s e r i d o s após a c r i a ç ã o do a r q u i v o

s ó

i n t e r f e r e m na d i s p o s i j á o f l s i c a dos d e

-

mais r e g i s t r o s da mesma t r i l h a , podendo f a z e r com que o r e -

L

g i s t r o d e maior v a l o r s e j a colocado numa á r e a de e x t e n s ã o a p a r t e , chamada ã r e a de "overf low".

2 . Quanto

à

l o c a l i z a ç ã o d a s informac8es

Uma das maneiras de implementar e s t r u t u r a s de ? n a i c e s

é

d e i x a r a s informações, (ou apontadores p a r a a s informações), no

nIvel

de mais b a i x a ordem ( f o l h a ) e u s a r o s n í v e i s supe

-

r i o r e s simplesmente p a r a ordenação do Tndice. Para implemen- t a g õ e s d e s s e t2po pode-se u s a r o u t r o s elementos que não a s chaves, p a r a a p a r t e superi'or, o que em ~'mplementagões mais s o f i s t i c a d a s pode s e r f e i t o com c o m p r e s s ~ o , de chaves e ap'on

-

t a d o r e s .

A p a r t e formada p e l o s nSve2s s u p e r i o r e s

é

m u i t a s v e z e s

-<:

denominada na l i t e r a t u r a por i n d i c e (ou "index s e t t ' ) e ã

formada p e l o s elementos do n?vel. i n f e r i o r por, arquivo (ou "sequence s e t " ) .

Frequentemente, um arquivo p a r a o q u a l s e deve c o n s t r u i r

um

h d i c e não e s t á f i s i c a m e n t e ordenado conforme a sequência d a s chaves usadas p a r a o k d i c e . Neste c a s o , cada chave do a r

-

qulvo deve também a p a r e c e r no I n d i c e . E s t e s h d i c e s são coríhe

-

tidos como índices'&eenns+os o u ~ ~ s ' e ' c ü n n ~ ~ r r i ó s , conforme BAYER e

O 4

(15)

p a r t i c i p a r d o í n d i c e e l e

é

d i t o n ã o d e n s o .

Ê i n t e r e s s a n t e n o t a r q u e um a r q u i v o sz pode t e r um h d i - c e n ã o d e n s o , v i s t o q u e n ã o

6

p o s s í v e l o r d e n á - l o f i s i c a m e n t e segundo m a i s d e uma r e l a ç ã o d e ordem.

Se a c o n d i ç ã o p a r a as c h a v e s p a r t i c i p a r e m do h d i c e f o r o u t r a q u e n ã o a s u a l o c a l i z a ç ã o pode-se c l a s s i f i c a r o s h d i - c e s como s e l e t i v o s ou e x a u s t i v o s . No h d i c e s e l e t i v o somente algumas d a s c h a v e s devem p a r t i c i p a r d o í n d i c e , b a s e a d o e m a l - gum a t r i b u t o , g e r a l m e n t e o u t r o que n ã o a l o c a l i z a ç ã o . No -

h-

d i c e e x a u s t i v o , t o d a s as c h a v e s devem p a r t i c i p a r d o í n d i c e b a s e a d o no a t r i b u t o i n d i c a d o . Um í n d i c e e x a u s t i v o ê um h d i c e d e n s o e e v e n t u a l m e n t e , c o n f o r m e o a t r i b u t o t e s t a d o p a r a o a r q u i v o , um í n d i c e s e l e t i - vo pode s e r d e n s o .

11

-

3 ÍNDICES

ESTATICOS

-

ISAM

. .

1

-

~ e f i n i ç ã o

D i v e r s a s i m p l e m e n t a ç õ e s d e a r q u i v o s do t i p o S e q u e n c i a l I n - dexado o p t a r a m p o r uma e s t r u t u r a e s t â t i c a , e n t r e e l a s temos o ISAM ( I n d e x e d S e q u e n t i a l A c c e s s M e t h o d ) . Um a r q u i v o ISAM é um a r q u i v o s e q u e n c i a l a o q u a l s e a s s o - c i a um h d i c e formado p o r uma c o l e ç ã o d e p a r e s , c a d a um d e l e s a s s o c i a n d o um v a l o r d a c h a v e d e a c e s s o a um e n d e r e ç o do a r - q u i v o . 4 A c a r a c t e r Z s t i c a d e s e q u e n c i a l i d a d e f í s i c a do a r q u i v o e a p r o v e i t a d a p a r a a d e f i n i ç ã o d e b l o c o s a o s q u a i s a s s o c i a d a uma Ú n i c a e n t r a d a no í n d i c e , a o i n v é s d e uma p a r a c a d a r e g i s - t r o i n d i v i d u a l . A s s i m , s e n d o N o nzmero d e r e g i s t r o s e m o número d e b l o c o s , o í n d i c e p o s s u i r á em s e u U l t i m o n í v e l a p e - n a s m e n t r a d a s , em v e z d e N .

(16)

mero de a c e s s o s a i e a t 8 r i o s , bem como a f r e q u e n t e s processafien

-

t o s s e q u e n c i a i s . Neste c a s o hã n e c e s s i d a d e de u t i l i z a c ã o de uma e s t r u t u r a de a c e s s o , a s s o c i a d a ao a r q u i v o , que o f e r e ç a maior e f i c i ê n c i a na l o c a l i z a ç ~ o de um r e g i ç t r o , i d e n t i f i c a d o

por uma chave, que o s métodos v i s t o s p a r a a r q u i v o s sequencia- i s ,

A f i g u r a (2.1) a p r e s e n t a um exemplo de arquivo do t i p o s e q u e n e i a l indexado e s t z t i c o onde podemos o b s e r v a r a e x i s t ê n - c i a de uma á r e a de e x t e n s ã o usada para. e v i t a r a reorganizaqão da e s t r u t u r a do a r q u i v o quando, em uma operação de i n s e r c ã o de um r e g i s t r o , a t r i l h a correspondente

não t i v e r espaços l i v r e s , No caso de operações de remoç50

é

s u f i c i e n t e a s s i n a

-

l a r o s r e g i s t r o s removidos com alguma marca e s p e c i a l , de f o r - ma a que e l e s nSo sejam c o n s i d e r a d o s no procesçainento do a r

-

quivo

.

.,

2

-

Adequação e s t r u t u r a f T s i c a do d S s p o s i t l v o de armaze- namento.

Para a d e f i n i ç ã o dos n í v e i s de um 5ndTce

ISAM

procura-se adequã-10 aos n h e i s f " i i c o s dos meios de armazenamento, pro- curando o b t e r uma maior e £ i c i & c i a , como no caso de d i s c o s mag

-

n é t i c o s onde podemos c o n s i d e r a r o s n l v e i s de d i s c o , c i l i n d r o e t r i l h a .

O' 'hd^i:ce* dei

-

tl'l'izldrb s contem, p a r a cada c i l i n d r o ocupado p e l o a r q u i v o , uma e n t r a d a , que i n d i c a o ma2or v a l o r da chave de ordenação n e l e c o n t i d o . A cada c i l i n d r o do a r q u i v o assocAia

-

do um' Tn&i-ce'de'

-

-tri'l'hás que i n d i c a , p a r a cada t r i l h a do c i l i n - d r o , o v a l o r da maior chave n e l a c o n t i d o . A cada t r i l h a do c i - l i n d r o

é

a s s o c i a d o um p a r de e n t r a d a s no f n d i c e de t r i l h a s , - f i

-

cando a i r e g i s t r a d o o v a l o r da maior chave p r e s e n t e na t r i l h a e o v a l o r da maior chave lógicamente p e r t e n c e n t e a e s t a mesma t T i

-

(17)

índice de c i l i n d r o s índice

1:::;

1

de trilhas do 2000 2000 cilindro área de extensão 30

cilindro I cilindro 2 cilindro 3

UM ARQUIVO ISAM

(18)

l h a , p r e s e n t e na &ea d e e x t e n s ã o . Se a á r e a d e e x t e n s ã o não f o r u s a d a p e l a t r i l h a a s d u a s e n t r a d a s r e g i s t r a m o mesmo v a - l o r .

O m a i s a l t o nirvel do h d i c e , acima do h d i c e d e c i l - i n

-

d r o s

,

é'

chamado "'ha'2c e' tn'e's't'r e e contgm p a r a cada d i s c a (ou g r u p o d e c i l i n d r o s ocupado p e l o a r q u i v o ) a identificação da

s u a chave d e m a i o r v a l o r . Seu u s o o p c i o n a l ,

O h d i c e m e s t r e e o d e c i l i n d r o s , sempre que p o s s E v e i são m a n t i d o s ~ e s i d e n t e s n a mem6ria p r i n c i p a l , d u r a n t e o p r o - c e s s a m e n t o , d e modo que d u r a n t e o p r o c e s s o d e p e s q u i s a

é

d e - t e r m i n a d o em que c i l i n d r o e s t a o r e g i s t r o p r o c u r a d o sem necees

-

s i d a d e d e a c e s s a r o d i s c o . Uma vez determinado o c i 1 i n d r o ; e s

-

t e

é

a c e s s a d o p a r a a l e i t u r a do s e u í n d i c e d e trilhas,^ q u a l p e r m i t e a l o c a l i z a q ã o d a t r l l h a onde s e e n c o n t r a o r e g i s t r o .

A t r i l h a s e l e c i o n a d a

5,

e n t ã o , l i d a e d e n t r o d e l a l o c a l i z a d o , p o r meio d e algum metodo d e p e s q u i s a , o r e g r s t r o d e s e j a d o

.

N e s t e p r o c e s s o , a p e n a s um c i l i n d r o

é

a c e s s a d o . R e s s a l t e - s e que não h5 n e c e s s i d a d e d e c a d a e n t r a d a no I n

-

dite

d e t r i l h a s c o n t e r o e n d e r e ç o d a t r i l h a , p o i s e s t e

é

de

-

terminado p e l a sequEncia na q u a l a p a r e c e a e n t r a d a d e n t r o do 4 i n d i c e . O mesmo s e a p l i c a ao Tndice d e c i l i n d r o s ,

.

.

3

-

Area d e e x t e n s ã o

A á r e a d e e x t e n s ã o (tambsm c o n h e c i d a ,como á r e a d e "over- flow") d e s t i n a - s e a p o s s i b i l i t a r a i n s e r ç ã o d e novos r e g i s

-

t r o s quando j á não houver e s p a c o s l i v r e s n a t r i l h a adequada. E l a

é

uma e x t e n s ã o da á r e a p r i n c i p a l d e dados do a r q u i v o .

Uma d a s s o l u c õ e s p a r a o problema d a manutenção d a e s t r u - t u r a , quando sZo f e i t a s i n s e r q z e s ,

é

a a d o t a d a p e l a IW4. Den- t r o da t r i l h a o s r e g i s t r o s devem m a n t e r uma s e q u ê n c i a f f s i c a segundo o s v a l o r e s d e s u a s c h a v e s o que e x l g e que sempre h a j a

(19)

um deslocamento a cada i n s e r ç S o , Se a t r i l h a j g e s t i v e r c h e i a , i s t o

é,

sem espaços l i v r e s , o r e g i s t - r o com a maior chave pas- s a p a r a a á r e a de extensZo. Para s e d e t e r m i n a r em q u a l t r i l h a deverá s e r f e i t a a i n s e r ç z o procura-se no i n d i c e de t r i l h a s

,

considerando t a n t o a e n t r a d a normal como a de "overflow", a menor d a s chaves s u p e r i o r e s

â

que v a i s e r i n s e r i d a . Se a cha- ve do r e g i s t r o a s e r i s e r i d a

e

maior que t o d a s a s do í n d i c e de t r i l h a s e n t ã o o arquivo d e v e r á s o f r e r uma extensão.

No caso d a s implementações f e i t a s com O uso de d i s c o s m'ag

-

n é t i c o s onde os n ' í ~ e i s do arquivo e s t ã o asssci-adas a t r i l h a s , c i l i n d r o s e dTseos h% duas opgões quanto ao uso d a s â r e a s de extensgo: uma á r e a de extensão j u n t o ao c i l l n d r o e uma á r e a de extensão independente.

L

A Zrea de extensgo j u n t o ao c i l i n d r o de uso comum a s t r i l h a s d e s s e c i l i n d r o e e v i t a que sejam f e i t o s a c e s s o s e x t r a s quando s e c o n s t a t a que o r e g i s t r o procurado deve e s t a r na

á

-

r e a de e x t e n s ã o . O i n c o n v e n i e n t e que a p r e s e n t a

é

a r e s e r v a de espaço f e i t a em cada c i l i n d r o , que pode f i c a r d e s p e r d i j a d a

,

caso não h a j a i n s e r ç õ e s s u f i c i e n t e s .

No caso da á r e a de extensão independente, c i l i n d r o s espe

-

c i a i s são r e s e r v a d o s p a r a e l a . O seu uso minimiza o s espaços n e c e s s ã r i o s p a r a a extensão do a r q u i v o , mas, o c a s i o n a buscas e x t r a s , i s t o

é,

a c e s s o s a d i c i o n a i s a o u t r o s c i l i n d r o s .

Melhores d e t a l h e s podem s e r e n c o n t r a d a s na r e f e r ê n c i a

-

mero onze (11)

as

p a g i n a s 170-189.

(20)

11

-

4

-

INDICES

DINAMICOS

,, 1

-

VSAM

. .

.

1

-

D e f i n i ç ã o

O V i r t u a l S t o r a g e Access Method

(VSAM)

da

IW,

f o i desenvolvido p a r a s e r usado em s i s t e m a s o p e r a c i o n a i s com memória v i r t u a l . E l e s u r g i u da n e c e s s i d a d e de haver um método de acesso que p o s s i b i l i t a s s e t a n t o o a c e s s o d i r e -

t o a t r a v é s de uma chave de busca quanto o processamento s e q u e n c i a l segundo uma ordem d e f i n i d a e n t r e a s chaves, sem degradação do desempenho quando houvesse um grande n6mero de i n s e r ç 8 e s ou remoções. 0 s mstodos de a c e s s o do t i p o s e q u e n ~ ~ a l indexado e s t á t i c o geralmente conseguem a t e n d e r a e s s a s duas formas de a c e s s o mas o desempenho c a i progressivamente medida em que s e r e a l i z a m i n s e r

-

çFes ou remoções.

O VSAM f o i p l a n e j a d o de maneira a e v i t a . r e s s a de- gradação, A e s t r u t u r a a p r e s e n t a d o i s c o n c e i t o s l ó g i c o s

,

a s s o c i a d o s ao c o n t r o l e do espaço ocupado p e l o s dados

,

muito i m p o r t a n t e s : de c o n t r o l e [CA) e i n t e r v a l o de

c o n t r o l e (CTNV)

.

Uma á r e a d e c o n t r o l e

S

o espaço que contém um con- j u n t o de i n t e r v a l o s de c o n t r o z e contfguos. A ordem den- t r o da CA não

é

necessariamente f l s i c a . A s CA's e s t ã o -ge

-

r a l m e n t e a s s o c i a d a s a c i l i n d r o s em d i s c o s magnéticos.

Um i n t e r v a l o de c o n t r o l e

é

formado por um conjunto de r e g i s t r o s armazenados em á r e a s c o n t f g u a s . 0 s r e g i s t r o s de um i n t e r v a l o de c o n t r o l e são mantidos em sequ&cia

'f?

-

s i c a segundo uma chave d e ordenação. No caço de t r a - b a l h a r - s e com r e g i s t r o s de tamanho v a r i á v e l o CPNV deve t e r informaç6es s o b r e o endereço de i n T c i o de cada r e g i 2

(21)

14

t r o . O C I N V

é

a unidade de infermacào que

é

t r a n s f e r i d a e n t r e a mem6ria v i r t u a l e a memória a u x i l i a r . O tamanho do CINV

é

defin5do no momento da c r i a ç ã o do arquivo.

. . .

2

-

Organização do I n d i c e

Um Tndice

é

usado p a r a endereçar o s r e g i s t r o s con- t i d o s n a s 5 r e a s de c o n t r o l e e i n t e r v a l o s de c o n t r o l e . ?o

-

de s e r e s t r u t u r a d o com mals de um n.'f.vel, cada um do s q u a i s

6

um conjunto de informações c u j a s e n t r a d a s dão a l o c a l i z a ç ã o d a s Informações no nTvel h e d i a t a m e n t e a b a i - x o , O n I v e l mais baixo do í n d i c e

5

conhecido como "se

-

quence s e t " : e l e dá a l o c a l i z a ç ã o dos CINV's. 0 s r e g i s - t r o s dos n"íveis s u p e r i o r e s são c o l e t i v a m e n t e chamados de "index s e t " . No nzvel mais a l t o havera sempre um Único r e

-

g i ç t r o . No caço d e a r q u i v o s muito pequenos o f n d i e e pode t e r apenas um n h e l , o do p r ó p r i o "sequence s e t " .

A 2 i g u r a (2.2) i l u s t r a o s n l v e i s do k d i c e e a fnr

-

mação d a s á r e a s de c o n t r o l e . Uma e n t r a d a no "index s e t " contém o v a l o r mâximo que pode a p a r e c e r no seu nEvei ime

-

d i a t a m e n t e i n f e r i o r e um p o n t e i r o p a r a o p r i m e i r o v a l o r do conjunto ao q u a l e s t á a s s o c i a d o . Uma e n t r a d a no "se- quence s e t " contém a chave de maior v a l o r do CINV, acom- panhada de um p o n t e i r o p a r a o CINV. Cada r e g i s t r o do "'se

-

quente s e t " pode c o n t e r mais de uma e n t r a d a e o c o n j u n t o de C I N V apontado p o r e n t r a d a s de um mesmo r e g i s t r o do "-se

-

quente s e t " formam uma á r e a de c o n t r o l e (CA), i s t o

é,

o número d e e n t r a d a s e x i s t e n t e s em cada r e g i s t r o do "sequen

-

c e s e t " corresponde ao nfmero de CINV's e x i s t e n t e s na CA. O "sequence s e t " p o s s u i p o n t e i r o s h o r i z o n t a i s p a r a permi-

t i r o processamento s e q u e n c i a l .

(22)

--v--' sequence- s e t " C I N V ~

i

V / Índice

v

arquivo

CINV' intervalo de controle C A = á r e a de controle

= espaço livre

-* = ponteiros verticais c%, : ponteiros horizontais

(23)

uma á r e a de c o n t r o l e , que

é

geralmente armazenada em um c i l i n d r o . Desta forma, s e o s n5s do "sequence s e t " forem alocados j u n t o aos p r 6 p r i o s c i l 2 n d r o s , o s dados podem s e r acessados sem a c e s s o s e x t r a s ao d i s c o .

Outra c a r a c t e r 2 s t i c a do VSAIVI que aumenta o seu de- sempenho

6

o uso de t ' é c n i c a s de compressão. Tanto o s pon

-

t e i r o s quanto a s chaves são compactadbs. R e s s a l t e - s e que a compressão i m p l i c a em maior tempo de UCP.

. . .

3

-

O p e r a ç 6 ~ s

..

.

.

1

-

Busca

*

Um r e g i s t r o $ l o c a l i z a d o a t r a v é s do ~ n d i c e usando-se comparações do t i p o menor ou i g u a l em 'ca

-

da n f v e l , a t é e n c o n t r a r o CENV correspondente. Op- cionalmente o "Sequence s e t " e a t e n?hels mais a l - t o s do 'Indice podem s e r armazenados j u n t o 5 s t r i

-

l h a s v i s a n d o d i m i n u i r o tempo de acesso.

A busca ao pr6ximo

simples devido aos

p o n t e i r o s h o r i z o n t a i s do "sequence s e t " .

....

2

-

I n s e r ç ã o

Quando o arqul-vo t i p o VSAM

16

c r i a d o são d'ei

-

xados a l g u n s espaços l i v r e s p a r a f u t u r a s a d i ç 6 e s d e n t r o dos p r ó p r i o s C I N V ' s e tambgm CJNV's são

dei

-

xados l i v r e s .

E

d e f i n i d a uma percentagem d e ocupa- ções p a r a as CA1s e os CINV' S. Quando a s i n s e r ç õ e s

começam a s e r f e i t a s , obedecem ao s e g u i n t e p r o c e d i

-

mento :

1

-

L o c a l i z a - s e o C I N V no q u a l s r e g i s t r o deve s e r i n s e r i d o .

2

-

Se há espaco no CIW a i n s e r ç ã o

ê

f e i t a , man

-

tendo-se a ordem e n t r e o s r e g i s t r o s . Não há n e

-

(24)

17

c e s s i d a d e de a t u a l i z a ç 5 0 dos n h e i s s u p e r i o r e s do í n d l c e .

3

-

Se não h3 espaço no CIW v e r i f i c a - s e s e há a l - gum CINV l i v r e d e n t r o daquela CA.

4

-

Se há CINV l t v r e entáo:

a ) Os r e g 2 s t r o s do C I N V no q u a l d e v e r i a s e r r e i

-

t a a i n s e r c ã o são a i s t r i b ~ i l d o s meio a meio com o C I N V l l v r e , Fnclusive o novo r e g i s t r o , mantendo-se a ordem.

b ) A t u a l i z a - s e o "sequence s e t " d e s s a CA i n s e - rZndo-se uma nova e n t r a d a e a t u a l i z a n d o a c o r r e s p o n d e n t e ao C INV a s s i n a l a d o no in'ício do procedimento.

5

-

Se não

h5

C I N V l i v r e na CA e n t z o :

a ) Aloca-se uma nova CA e u m novo

p a r a o "Sequence s e t " ,

b ) D i s t r i b u i - s e meio a meio o s I - n t e r v a l o s de c o n t r o l e com a nova CA. A t u a l i z a - s e o "se

-

quence s e t l ' . c ) I n s e r e - s e uma nova e n t r a d a no n h e l do f n d i

-

c e s u p e r i o r ao "sequence s e t " p a r a o novo n6 d e s t e . d) I n s e r e - s e o r e g i s t r o segundo o passo 4.

.

.

.

.

3

-

Remocão Ouando r e g i s t r o s de um a r q u i v o VSAM, o r g a n i - zado segundo a sequência das c h a v e s , são removidos ou reduz?dos, o espaço l5berãdo p a s s a a s e r c o n s i - derado como disponTvel. Para que o s espaqos l i v r e s sejam c o n t í g u o s a l g u n s r e g ? s t r o s do i n t e r v a l o de c o n t r o l e sofrem deslocamentos, podendo i n c l u s i v e

(25)

um CENV f i c a r t o t a l m e n t e L i v r e ,

Melhores d e t a l h e s podem s e r encontrados na r e f e r h

-

tia onze (11) a s p á g i n a s 1 9 0 a 2 3 4 .

-

4

-

2

-

ARVORE

B

. .

.

1

-

Def i n i q ã o O r i g i n a l

Em 1970 Rudolf BAYER e Edward McCRELGHT desenvolveram uma

e s t r u t u r a p a r a organização e manutencão d e Tndices e x t e r n o s

,

p a r a a r q u i v o s com r e g i s t r o s de chave Unica, com c u s t o s de ope

-

yag5o r e l a t i v a m e n t e baixos, h a t i z a n d o a e s t r u t u r a usada como Árvore B. A e s t r u t u r a desenvolvida permite processamento s e -

qu-cial (seguindo a sequência e n t r e a s chaves) e d i r e t o (pe- l a p r o c u r a do r e g i s t r o correspondente

5

chave dada).

O c o n c e i t o de ã r v o r e - R f o i p o s t e r i o r m e n t e t r a b a l h a d o por o u t r o s a u t o r e s , surgindo algumas v a r i a c õ e s e e x t e n s õ e s da i'dê

-

i a o r i g i n a l . Não houve um consenso e n t r e o s a u t o r e s quanto a o s nomes dados

5s

v a r i a q õ e s e e x t e n s o e s do c o n c e i t o . Neste t r a % a

0 6

l h o vamos a d o t a r a nomenclatura u s a d a por COMER

,

que também c o n s t a t o u a m u l t i p l i c i . d a d e d e nomes usados na l i t e r a t u r a , p o r s e r a mais completa e r e c e n t e , com algumas modificacões p a r a aumentar a c l a r e z a .

DeE.: S e j a h 2 O um i n t e i r o , k u m número n a t u r a l .

Uma á r v o r e T e s t á na c l a s s e ~ ( k , h ) de á r v o r e s R s e T

é

~ a

-

z i a (h=O) ou tem a s s e g u i n t e s p r o p r i e d a d e s :

i)

Cada caminho da r a i z atE qualquer f o l h a tem o mesmo cóm

-

primento h , chamado a l t u r a da á r v o r e , i s t o

g ,

h = número de n8s do camlnho,

i i ) Cada nó e x c e t o a s f o l h a s e a r a i z tem no m"inimo k + l f i - l h o s . A r a i z ou

é

uma f o l h a ou têm no mhimo 2 f i l h o s .

(26)

E s t a

e

a d e f i n i ç ã o o r i g i n a l a p r e s e n t a d a p o r BAYER e

MCCREIGI-lTO

.

P o s t e r i o r m e n t e , K N U T ~ a p r e s e n t o u o u t r a d e f i- n i ç ã o (1) a c e i t a n d o que o f a t o r d e ocupação máximo d o s nós s e j a um número & p a r m - 1 .

O s nós s ã o u s u a l m e n t e chamados de p a g i n a s .

Dois p a r â m e t r o s determinam a á r v o r e B , i s t o

z ,

h , a a l - t u r a da á r v o r e e 2k, o tamanho do n 8 , onde k

é

d e p e n d e n t e do d i s p o s i t i v o u s a d o p a r a armazenamento do i n d i c e ( c a r a c t e r í s t i

-

tas f i s i c a s do d i s p o s i t i v o ) . A ordem d a á r v o r e dada p o r k. ~ Ó ~ i c a m e n t e um nó

é

o r g a n i z a d o da forma como m o s t r a a f i g u r a ( 2 . 3 )

.

/ / / / Po X1 al Pl X 2 a 2 P Z O * * sobca/de e s p a ç P j = p o n t e i r o s k

<

R 5 2ik

x

a = d u p l a d e informaçzo a s s o c i a d a i ' i ( c h a v e , a p o n t a d o r d e Tnformação) F i g u r a 2.3

-

Organf zasão d e

um n6

Cada

nó,

e x c e t o a r a i z , tem sempre ocupacão mínima d e

5 0 9 , i s t o

é,

contém k d u p l a s ( x i , a i ) . Uma a r v o r e B com 1 = 1 , h=3

é

m o s t r a d a na f i g u r a (2.4)

.

0 s números n a t u r a i s r e p r e s e n t a m a s c h a v e s , A p a r t e d e dados f o i o m i t i d a . (1) U m a á r v o r e B d e o r d e m m

2

uma á r v o r e q u e s a t i s f a z

à s

se- g u i n t e s p r o p r i e d a d e s : i C a d a n ó tem no máximo m f i l h o s . i i ) C a d a n ó , e x c e t o a r a i z e a s f o l h a s , t e m no m?nimo m / 2 f i l h o s . i i i ) A r a i z t e m ,no mTnimo 2 f i l h o s ( s a l v o q u a n d o é f o

-

l h a ) i v ) T o d a s a s f o l h a s a p a r e c e m no mesmo n l v e l e n a o c Q n t e m i n f o r m a 9 à o . v

>

U m n o n ã o f o l h a com k f i l h o s c o n t é m k - 1 c h a v e s ,

(27)

F i g u r a 2 . 4

O s p o n t e i r o s nos n6s f o l h a s s ã o d i s p e n s á v e i s e foram i n - t r o d u z i d o s p a r a d a r um f o r m a t o comum a t o d o s o s nós.

A o r g a n i z a ç ã o d e í n d i c e s t i p o á r v o r e B p e r m i t e a b u s c a

,

i n s e r ~ ã o e remoção d e c h a v e s em tempo p r o p o r c i o n a l a logk++

,

onde I

5

o tamanho do I n d i c e [ntirnero t o t a l d e r e g i s t r o s ) e k um numero n a t u r a l , d e p e n d e n t e do d i s p o s i t i v o , t a l que o des7em

-

penho aproxime-se do Õtimo.

I1

-

4

-

2

-

2

-

OPERACOES PERMITIDAS

A e s t r u t u r a d a á r v o r e B

é

t a l que o s métodos de i n s e r c ã o e remoção de c h a v e s sempre a mantém bal-anceada,

.

...

1

-

'Busca R 1

-

Comeqa-se l e n d o a p á g i n a r a i z , B 2

-

A chave p r o c u r a d a e s t a na p a g i n a . Fim do p r o c e s s o com s u c e s s o . R3

-

A chave não e s t á n a p á g i n a . Se a p á g i n a

é

uma f o l h a , e n t ã o o p r o c e s s o t e m i

-

n a com o i n s u c e s s o . R 4

-

A

é

um nó i n t e r n o e a chave não e s t á p r e

-

s e n t e n e l a :

a ) A chave

é

menor que a p r i m e i r a chave da

~

''-

ã

~

i

n a . O p r o c e s s o continu-a n a p á g i n a i n d i c a d a p e l o p o n t e i r o e s q u e r d o

â

p r i m e i r a chave d a p á g i n a .

(28)

2 1

b) A chave

5

m a i o r que a Ú l t i m a chave d a

p á g i -

na. O p r o c e s s o c o n t i n u a n a i n d i c a d a p e l o p o n t e i r o d i r e i t o

à

Ú l t i m a chave da pá- g i n a . c ) A chave tem v a l o r i n t e r m e d i ã r i o a d u a s c h a - v e s c o n t I g u a s d a p ã g i n a . O p r o c e s s o c o n t i n u a na ~ á ~ l n a i n d i c a d a p e l o p o n t e i r o que s e en- c o n t r a e n t r e a s d u a s c h a v e s c o n s i d e r a d a s , T o r n a r a B 2 ,

.

. . .

2 -' 'Bu's'c'a' ò' 'p'r~xxlmo P a r a a c e s s a r - s e a chave l o g i c a m e n t e s e g u i n t e a uma dada chave

é

n e c e s s á r i o que o a l g o r i t m o d e biis

-

c a a s s i n a l e a p á g i n a em que houver o s u c e s s o d a ope

-

r a s g o . Pode h a v e r n e c e s s i d a d e d e t r a b a l h a r com a s

A

p á g i n a s d o s n í v e i s s u p e r i o r e s e a melhor s o l u ç ã o e t e r r e g i s t r a d o o caminho p e r c o r r i d o n a e t a p a d a bus

-

c a ; e s t e pode e s t a r armazenado, p o r exemplo, numa p i l h a .

O a l g o r i t m o d e "busca o começa e n t ã o a p a r t i r da p á g i n a a s s i n a l a d a , havendo

t r ê s

possi'bi

-

1 i d a d e s :

a ) O a l g o r i t m o d e busca i n d i c a um v a l a r não e x

-

tremo d i r e i t o d e uma f o l h a . Então o próximo

o elemento que o sucede n a p r ó p r i a f o l h a . O a l g o r i t m o d e busca i n d i c a um v a l o r e x t r e - mo d i r e i t o d e uma f o l h a , Se na p á g i n a mãe há um v a l o r

%

d i r e i t a do p o n t e i r o que l e v a a p á g i n a a s s k a l a d a e s t e o próximo, c a s o c o n t r ã r i o a s s i n a l a - s e a p a g i n a

m ã e

e r e p e t e - s e o p r o c e s s o a t 6 s e r e n c o n t r a d o um v a l o r

%

(29)

d i r e l t a ou e n c o n t r a r - s e a r a i z e não haver v a l o r e s

3

d i - ~ e l t a .

c ) O a l g o r i t m o de busca i n d l c a um v a l o r de uma pági-na n5o f o l h a . EntZo o pr6xlmo

é

o pr?me3ro elemento da f o l h a extrema esquer- da da s u a r v o r e gerada p e l o p o n t e i r o d i r a e i

-

t o da chave.

Podemos a d o t a r procedi-mento semelhante p a r a " o b t e r o a n t e r i o r " .

. .

, 3

-

Tns-erç30

I1

-

Busca-se a chave que s e d e s e j a i n s e r i r . Esse procedimento v a i i n d i c a r qual a f o l h a em que deverá s e r E e l t a a i n s e r ç 8 0 .

I 2

-

vaga na f o l h a i n d i c a d a p a r a a i n s e r ç á o . A

chave

6

i n s e r i d a de forma a manter a ordem e- x i s t e n t e . Os n í v e i s s u p e r i o r e s da á r v o r e não

s5o af e t a d o s .

I3

-

NBo há vaga na f o l h a i n d i c a d a (já existem

2k

chaves). Procede-se a uma d i v i s ã o de pagina que obedece ao s e g u i n t e procedimento:

a ) Aloca-se uma nova p á g i n a e d i s t r i b u i - s e o conteiido da f o l h a a s s i n a l a d a meio a meio com a nova página. A chave f i c a na página adequada.

b ) A chave de v a l o r i n t e r m e d i ã r l o e n t r e a s p á

-

g i n a s c o n s i d e r a d a s

6

d e s l o c a d a p a r a o n í

-

v e l s u p e r i o r .

c ) O processo de i n s e r g ã o r e p e t e - s e agora no n%el s u p e r i o r com a chave que ascendeu. I 4

-

A chave que ascendeu deve s e r i - n s e r l d a na r a i z

(30)

e e s t a

j á

e s t á c h e i a . A d i v i s ã o da r a i z o c o r r e e a l o c a - s e uma nova página p a r a r e c e b e r e s s a chave, E s t a nova p a s s a a s e r a r a i z . Outra maneira de s e . £azer i n s e r ç ã o

e

usando a t é c n i c a de OVERFLON, que s e r á v i s t a na seção 1 1 - 4 - 2 - 4 - 1 . A f i g u r a (2.5) i l u s t r a a i n s e r ç ã o com d i v i s ã o de p á g i n a .

. . . .

4 -' Rem-o'g50

R 1

-

Busca-se a chave a s e r removida,

R 2

-

A chave a s e r removida e n c o n t r a - s e numa ~ á g i n a não f o l h a . Troca-se a chave com o seu s u c e s s o r

imediato, com i s s o a chave v a i p a r a r numa f o l h a e o processo de remoção c o n t i n u a .

R3

-

A chave a s e r removida e n c o n t r a - s e numa f o l h a . Então remove-se a chave.

R 4

-

Se a p k i n a e s t á com mais de k chaves o p r o c + e s

-

so e s t s c o n c l u I d o , senão v e r i f i c a - s e o número de chaves da p á g i n a v i z i n h a e prossegue-se com a t'écnica de concatenaqão de p á g i n a s ou r e d i s - t r i b u i ç ã o de chaves ("underflow").

C onCa.t enaçã o :

Empregada quando a soma com o número d e chaves da p á g i n a

irmã

v i z i n h a

é

menor que

2k.

C1

-

J u n t a - s e a s chaves d a s duas p á g i n a s , e a chave s e p a r a d o r a e n t r e ambas na pãgina mãe, numa Únlca p ã g i n a . Libera.-se a o u t r a p a g i

-

na.

C 2

-

V e r i f i c a - s e q u a n t a s chaves r e s t a r a m na

g i n a mãe e t o r n a - s e a R 4 .

(31)
(32)

c a t e n a d a s , e n t ã o a nova r a i z

é

a p â g i - na que recebeu a s chaves no p r o c e s s o de concatenação. L i b e r a - s e a p a g i n a que e r a r a i z .

~e'di's't'r-i'bu'JZ?~~ de' ch'aves (Underflow) :

Empregada quando a soma com o &me-

a

r o de chaves da página irmã v i z i n h a e maior ou i g u a l a 2k.

C o n s i s t e em r e d i s t r i b u i r a s chaves Cda p á g i n a considerada e da

irmã

v i z i n h a ) o mais e q u i t a t i v a m e n t e poss7vel e n t r e a s duas p á g i n a s . Nesta t e c n i c a apenas a c-ha

-

v e s e p a r a d o r a na psgina mãe modificada

nZo havendo propagacão p a r a o u t r o s n f v e i s da á r v o r e .

O a l g o r i t m o de remocão pode s e r cons

-

truTdo de forma a c o n s i d e r a r o "underflow" p e l o s d o i s l a d o s ( d i r e i t o e esquerdo) e a t é mesmo com a e s c o l h a de q u a l t e c n i c a dever5 s e r u s a d a , conforme a s i t u a c ã o das p á g i n a s

irmãs

a d j a c e n t e s . A implementação da opção de e s c o l h a p e r m i t e que h a j a uma s i n t o n i z a g ã o dinâmica do s i s t e m a .

A f i g u r a (2.6) i l u s t r a a r e m o ~ ã o f e i

-

t a com a s t é c n i c a s de concatenacão e "un- derflow".

1 1

-

4

-

2

-

3

-

CUSTOS DAS OPERACOES

Para v i s i t a r um nó numa á r v o r e B

é

n e c e s s á r i o f a z e r um a c e s s o ao d i s p o s i t 9 v o secund&io d e armazenamento

,

d e forma que o n h e r o de nós v i s i t a d o s d u r a n t e uma determinada opera-

(33)

Remoção da chave 9 5 1 1 16 21 usando concatenação

1

1 2 3 4 12 13 14 15 2 2 23 2 4 25 6 7 8 10 17 18 19 20

1

1 ~ e m o ~ õ o da chave 6

(34)

Ç ~ Of o r n e c e uma medida do seu c u s t o .

Antes de e n t r a r na a n á l i s e do c u s t o de cada operação

e m a x o niimero mhimo e máximo de n6s de uma á r v o r e T , p e r - t e n c e n t e a f a m ? l i a -r(k,h) de á r v o r e s B, Então:

N

-

-

' ( ( 2 k + l l h

-

1 )

max i = O

Então o número N(T) de nós de T E -r(k,h)

é

dado p o r :

N(T) = O s e T E -r(k,O) 2 i+E ( ( k + l ) h-1 -1)

<

N ( T ) 5

-

'1 ( ( 2 k + i l h

-

1 ) c a s o c o n t r ã - 2k r i o .

....

1

-

Custo da busca

Sendo h a a l t u r a da á r v o r e B , no p i o r dos ca- s o s h p á g i n a s p r e c i s a r ã o s e r c o n s u l t a d a s p a r a de

-

t e r m i n a r o ê x i t o ou f r a c a s s o da busca. O v a l o r de h

é

f a c i l m e n t e determinado em funqão do ncmero I de elementos do í n d i c e . Se considerarmos Imin e Imax o numero mínimo e máximo de chaves da á r v o r e T E -r(k,h) e n t ã o podemos £acilmente t i r a r d e 11-1 que: I = 1

+

k

( 2

( ( k * l ) h-1 - 1 ) ) = 2 ( k + l ) h-1 -1 min k A .a.l.tur a,

'h'

'd' a '~rvo'r^e' . R f i c a e n t ã o d e l i m i t a d a p o r :

(35)

h = O p a r a I = O

....

2

-

Custo da busca ao próximo

Vamos d e n o t a r por f (f ) o ntimero mhimo

min max

(máximo) de a c e s s a d a s na memória a u x i l i a r . No melhor dos c a s o s o a l g o r i t m o de busca as'si

-

n a l a uma f o l h a e o próximo n e l a mesmo s e e n c o n t r a , quando e n t z o teremos :

*min = O

No p i o r dos c a s o s h-1 p á g i n a s p r e c i s a r ã o s e r c o n s u l t a d a s , considerando-se que a pagina a s s i n a l a da p e l o a l g o r i t m o de busca

j á

e s t e j a numa á r e a de armazenamento na rnem6rla p ~ i n e i . p a l , n a r a se encon- t r a r o próximo ou c o n s t a t a r que e l e não f a z n a r t e do Tndrce, caso s ú l t i m o elemento d e s t e não e s t e j a a s s i n a l a d o como t a l .

No caso de haver h á r e a s de armazenamento po- demos g a r a n t i - r que nenhuma página s e j a acessada mais d.e uma v e z quando então teremos:

. .n,~m.e.r,o'

.ae

.,,.-&ina

-

-

-

-

'

-

N

*m'diO número de chaves 1

....

3

-

Custo da i n s e r ç ã o

Ii

A operacão de i n s e r ç ã o r e q u e r mais a c e s s o s a memõria auxi1ia.r que a s operacões de busca, mesmo

porque o p r o c e s s o poderá s e propagar n a r a o s n í v e i s s u p e r i o r e s da á r v o r e . Vamos d e n o t a r nor wmin (W

m

ax

1

o &mero mInimo (máximo) de p á g i n a s e s c r i t a s .

No melhor dos c a s o s , quando h a w e r vaga p a r a a i n s e r j ã o da c h s e na teremos:

(36)

f = h ,

w

= 1 min min No p i o r d o s c a s o s , quando houver p r o p a g a c ã o d a i n s e r ~ ã o a t é a r a i z , quando nova r a i z p r e c i s a r á s e r c r i a d a , teremos: f = h ,

w

max m ax = 2 h + l

....

4

-

C u s t o d a remocão

Como a opera-cão d e i n s e r q ã o , e s t a também node-

r ã

s e p r o p a g a r p a r a o s n l v e i s s u p e r i o r e s d a ã r v o r e , mantenao e s t r e i t a d e p e n d ê n c i a

à

s u a a l t u r a .

O melhor d o s c a s o s o c o r r e quando não h á n e c e s - s i d a d e d e t r a b a l h a r com a s p á g i n a s v i z i n h a s , i s t o

é,

a remoção da chave não a f e t a a e s t r u t u r a d a ã r v o r e .

O p i o r d o s c a s o s o c o s r e r z quando o p r o c e s s o d e concatenaçEo p r o p a g a r - s e p o r h-2 n l v e i s d a á r v o r e , o f i l h o da r a i z s o f r e r um "un'derflowl' e a p r Õ p r i a r a i z f o r r e e s c r i t a .

. . .

.

5

-

Conclusão Como podemos o b s e r v a r t o d o s o s c u s t o s s ã o e s

-

t r e i t a m e n t e d e p e n d e n t e s da a l t u r a h , f i c a n d o c l a r a a i m p o r t â n c i a da ordem k d a á r v o r e p a r a a r e d u q ã o d e s s e s c u s t o s . Contudo, e s s e f a t o r d e r a m i f i c a q ã o

k

é

l i m i t a d o p o r c a r a c t e r í s t i c a s f í s i c a s do s i s t e m a . o 2

BAYER e McCREIGHT fazem um e s t u d o p a r a a d e t e r m i - naç50 d e s s e p a r a m e t r o , que abordado p o r n ó s no a - nexo 2 .

I1

-

4

-

2

-

4

-

LIBERDADES DE IMPLEMENTACAO

(37)

e

empregado quando apÕs a operaqzo de i n s e r ç ã o r e s u l t a m m a i s d e 2k e l e m e n t o s na p á g i n a mas uma d a s p á g i n a s i r m ã s v i - z i n h a s não e s t ã t o t a l m e n t e c h e i a . Neste c a s o f a z - s e uma r e

-

d i s t r i b u i c z o d a s c h a v e s com a p a g i n a irmã v i z i n h a c o n s i d e r a - d a . A chave s e p a r a d o ~ a n a p á g i n a mãe

é

a t u a l i z a d a mas não há propagação p a r a o u t r o s n l v e i s .

A t é c n i c a d e "overflow" p o s s i b i l i t a uma melhor u t i l i z a - ç5o do e s p a ç o e em a r q u i v o s não s u j e i t o s a remocão consegue g a r a n t i r uma u t i l i z a ç ã o do espaço d e armazenamento d e a p r o x i

-

madamente 6 6 % .

A f i g u r a ( 2 . 7 ) i l u s t r a o u s o d e s s a t é c n i c a .

. . .

.

2

ré-paginação",

Quando da c r i a ç ã o do T n d i c e a p a r t i r d e um c o n j u n t o

J á

conhecido d e c h a v e s pode-se f a z e r uma p r é - p a g i n a ç z o e s e a s o p e r a ç õ e s p o s t e r i o r e s d e a t u a l i z a ç ã o forem f e i t a s em l o t e m a i s v a l e o r d e n á - l a s p o r s u a s c h a v e s , o que t o r n a r á o proc'es

-

samento m a i s e I ? c ? e n t e .

I 1

-

4

-

3

-

VARIAÇOES D E

ARVORE

B.

. ..

.

1

-

Tamanho d e p g g i n a v a r i á v e l com o nTvel

Como podemos o b s e r v a r n a d e f i n i c ã o o r i g i n a l d e

#

a r v o r e B , t o d o s o s nós t e r m i n a i s ( f o l h a s ) a p r e s e n - tam o s p o n t e i r o s i n d i c a d o r e s d e p á g i n a s d e s c e n d e n t e s com v a l o r , I , o que não o c o r r e n o s demais n í v e i s d a

".

a r v o r e . I s t o , no t o t a l , r e p r e s e n t a uma s i g n i f i c a t i - v a q u a n t i d a d e d e e s p a c o p e r d i d o . A e i i m i n a ç ã o d e s

-

SeS A ' S s u p s r f l u o s

e

d e g r a n d e i n t e r e s s e p o r r e s u l

-

t a r em ganho d e espaco consider"ave1, v i s t o que pode

-

mos r e d u z i r o nsmero de p á g i n a s do n i v e l i n f e r i o r

,

j u s t a m e n t e o n'ível eom m a i o r numero d e p á g i n a s da

4

1 4

(38)

pós a inserção d a chave 2

(39)

que s e u s e um d i f e r e n t e v a l o r de k p a r a o s nós t e r - m i n a i s , de forma que o espaço l i b e r a d o p e l o s p o n t e i

-

r o s s e j a usado p a r a o s r e g i s t r o s .

Uma g e n e r a l i z a ç ã o da i d é i a

é

c r i a r uma á r v o r e que tenha o s ki v a r i á v e i s conforme o n i v e l i em que a p á g i n a s e e n c o n t r a na ã r v o r e . Numa á r v o r e d e s s a forma

5

f á c i l aumentar a sua a b e r t u r a , bastando pa-

t

r a i s s o a t r i b u i r k s a l t o p a r a os p r i m e i r o s d v e i s ,

i:

r e s u l t a n d o em mais r a p i d e z p a r a a s operaçges de a-

t u a l i z a ç ã o do a r q u i v o . Uma ã r v o r e d e s s e t i p o t e r á o s nós da forma mostrada na f i g u r a (2.8). Observe que há n e c e s s i d a d e de d e f i n i r o ki p a r a cada p á g i n a . nó nào f o l h a n.6 f o l h a onde: ki = ordem do n6 P i = p o n t e i r o s

x

i ' i a = dupla de informaçao a s s o c i a d a F i g u r a 2.8

...

2

-

Aumento da ocupação m h i m a .

Como

j á

vimos, na operação de i n s e r ~ ã o numa á r v o r e R , s e a operação f o i f e i t a numa p á g i n a c h e i a há n e c e s s i d a d e de r e e s t r u t u r a r a á r v o r e após a i n s e r ç ã o . Se alguma das irmãs v i z i n h a s não e s t i v e r l o t a d a pode-se d i s t r i - b u i r a s chaves com a página irmã e s c o l h i d a , na t é c n i c a co

-

nhecida como "overflow': caso c o n t r á r i o , a p á g i n a que so-

(40)

f r e u duas dade

a i n s e r ç z o s e r á d i v i d i d a em d u a s . Assim, teremos p á g i n a s semi-ocupadas e n t r e duas p á g i n a s com cana.ci

-

e s g o t a d a . Com o o b j e t i v o de melhor d i s t r i b u i r a s

1 4

chaves e n t r e a s p a g i n a s KNUTH s u g e r e a d i v i s ã o d e duas p á g i n a s em tres.

Vamos c o n s i d e r a r p a r a e f e i t o de esquematização, que a d i v i s ã o s e j a f e i t a com a p á g i n a irmã

à

d i r e i t a p ' que e s t á com

Zk

chaves x i , i = 1,

...

2k. A i n s e r ç ã o f o i f e i

-

t a na p que e s t á com sua capacidade e s t o u r a d a por um. Na p á g i n a mãe e x i s t e uma chave

xf

que

é

o s e p a r a d o r

e n t r e p e p t

.

A d i v i s ã o de p e p ' em t r ê s p á g i n a s r e s u l t a r á em p á g i n a s com quase 2/3 de ocupacão, contendo r e s p e c t i v a

-

mente L 4 ~ / 3 ] , L ( 4 K + 1 ) / 3 1 e L ( 4 K + 2 ) / 3 1 .

Como consequência d e s s e p r o c e s s o de d i v i s ã o de duas ~ 5 g i n a s em três r e s u l t o u a á s v o r e B*.

(41)

. . .

2

-

i.

-

Arvore B*

Uma á r v o r e B* d i f e r e da á r v o r e B somente quanto ao f a t o r de ocupação das p á g i n a s simples e da r a i z . A s diTe

-

r e n ç a s

s80

e s t a s :

a ) Cada nó, exceto a r a i z , tem no máximo 2k+l f i l h o s .

b ) Cada nó, exceto a raTz, tem no mlnimo (4k+1)/3 f i l h o s . c ) A r a i z tem no mfnimo 2 e no máximo 2(4k/3)+1 f i l h o s .

A condição mais c a r a c t e r T s t i c a da á r v o r e B*

6

a b ,

que g a r a n t e que são u t i l i z a d o s no mínimo 2/3 do espaço d i s p o n í v e l por nó. A condiçzo a, l i m i t a d o r a do número

m á

-

ximo de elementos da r a i z g a r a n t e que quando a r a i z f o r d i v i d i d a teremos duas ~ á g i n a s com 2 / 3 de seu espaço ocu- pado.

...

2

-

2 Arvore B*"

O c o n c e i t o de á r v o r e B* f o i desenvolvido um pouco 1 7

mais p o r McCREIGHT

,

r e s u l t a n d o numa á r v o r e que a p r e - s e n t a ocupação d n i m a dos nós, s a l v o a r a i z , de 7 5 % . A r o t i n a de paglnação,no c a s o , t r a t a r i a d e e s c o l h e r a s t r ê s p á g i n a s irmãs v i z i n h a s que seriam r e d i s t r i b u i d a s em qua- t r o p á g i n a s .

.

. .

3

-

Chaves de tamanhos v a r i á v e i s

A s chaves podem tambem s e r de tamanho v a r i á v e l . 1 s

-

t o o c a s i o n a algumas modificações na e s t r u t u r a da á r v o r e que, no e n t a n t o , l h e dão maior f l e x i b i l i d a d e .

A p r i m e i r a modificação

é

na d e f i n i ç ã o do f a t o r de ocupação, que p a s s a a s e r considerado em função da p e r

-

centagem de espaço f I s i c o ocupado na p á g i n a e não mais p e l o n h e r o de chaves p r e s e n t e s n e s t a . A s s i m uma á r v o r e B

é

d e f i n i d a como a q u e l a c u j o s nós tem comprimento de p p a l a v r a s e pode c o n t e r r e g i s t r o s t a i s que a soma d e s e u s

Referências

Documentos relacionados

Outras possíveis causas de paralisia flácida, ataxia e desordens neuromusculares, (como a ação de hemoparasitas, toxoplasmose, neosporose e botulismo) foram descartadas,

Pensar a formação continuada como uma das possibilidades de desenvolvimento profissional e pessoal é refletir também sobre a diversidade encontrada diante

c.4) Não ocorrerá o cancelamento do contrato de seguro cujo prêmio tenha sido pago a vista, mediante financiamento obtido junto a instituições financeiras, no

Os candidatos reclassificados deverão cumprir os mesmos procedimentos estabelecidos nos subitens 5.1.1, 5.1.1.1, e 5.1.2 deste Edital, no período de 15 e 16 de junho de 2021,

A placa EXPRECIUM-II possui duas entradas de linhas telefônicas, uma entrada para uma bateria externa de 12 Volt DC e uma saída paralela para uma impressora escrava da placa, para

O relatório encontra-se dividido em 4 secções: a introdução, onde são explicitados os objetivos gerais; o corpo de trabalho, que consiste numa descrição sumária das

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

Entre as atividades, parte dos alunos é também conduzida a concertos entoados pela Orquestra Sinfônica de Santo André e OSESP (Orquestra Sinfônica do Estado de São