UM ESTUDO SOBRE A IMPLEMENTAÇÃO D E TNDICES
ATRAVES DE
ARVORES
N-ARIASE 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 1981TORRES, 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 1V 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 stravés
d e A r v o r e s N-Arias.iii
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 e5
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 .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 .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 .
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 4Anexo 1
-
C a r a c t e r í s t i c a s do Computador Hospedeiro Anexo 2-
Determinação do KAnexo 3
-
L i s t a g e n sO 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 sobreo 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 árvoreB. 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, edados 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
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,
jâ
utilizadas na ou em es- tudo. Na seção 111 apresentamos o sistema implementado, comtodos 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 quatroanexos: 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-
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. . .
, 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 oI1
-
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 s2s
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 rSI
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 al ó 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 u2
p a r t e , e p o r s isó
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 e0 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 doi
'
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. Quanto5
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 o5
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 ea 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 .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 os ó
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 informac8esUma 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 eO 4
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 ÍNDICESESTATICOS
-
ISAM. .
1-
~ e f i n i ç ã oD 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 .
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 opor 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
já
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-
índice de c i l i n d r o s índice
1:::;
1
de trilhas do 2000 2000 cilindro área de extensão 30cilindro I cilindro 2 cilindro 3
UM ARQUIVO ISAM
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 das 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 ã oA á 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 aum 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 ae
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
nú
-
mero onze (11)as
p a g i n a s 170-189.11
-
4-
INDICES
DINAMICOS
,, 1
-
VSAM
. .
.
1-
D e f i n i ç ã oO V i r t u a l S t o r a g e Access Method
(VSAM)
daIW,
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 dec 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
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 eUm 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 s6
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 e5
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 .
--v--' sequence- s e t " C I N V ~
i
V / Índicev
arquivoCINV' intervalo de controle C A = á r e a de controle
= espaço livre
-* = ponteiros verticais c%, : ponteiros horizontais
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 aosp 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 ç ã oQuando 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ãodei
-
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 scomeç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-
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ãoh5
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
nó
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 eum 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 lEm 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 % a0 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 .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 eMCCREIGI-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 2ikx
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 eum n6
Cada
nó,
e x c e t o a r a i z , tem sempre ocupacão mínima d e5 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 m2
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 ,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 I5
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 PERMITIDASA 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 .2 1
b) A chave
5
m a i o r que a Ú l t i m a chave d ap á 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 sA
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óximoo 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 am ã 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%
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ç30I1
-
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 . Achave
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ãos5o 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á existem2k
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 s6
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 ze 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 ç ã oe
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'g50R 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 rimediato, 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 que2k.
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 napá
g i n a mãe e t o r n a - s e a R 4 .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 modificadanZo 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 sirmã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 OPERACOESPara 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-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 201
1 ~ e m o ~ õ o da chave 6Ç ~ 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 buscaSendo 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 :h = O p a r a I = O
....
2-
Custo da busca ao próximoVamos 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 ç ã oIi
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
ax1
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:
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ãoComo 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 ã ok
é
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 2BAYER 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 IMPLEMENTACAOe
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 .
. . .
.
2ré-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 EARVORE
B.. ..
.
1-
Tamanho d e p g g i n a v a r i á v e l com o nTvelComo 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
pós a inserção d a chave 2
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 forma5
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-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 s1 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 á comZk
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 chavexf
queé
o s e p a r a d o re 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*.
. . .
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 ss80
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 sA 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