Você está na página 1de 5

11/8/2010

Tpicos Organizao e Indexao de Dados em Memria Secundria


Bancos de dados e acesso a memria secundria Noes de organizao de dados em memria secundria Indexao
ndices primrios
Disciplina Bancos de Dados II

ndices de agrupamento (clustering) ndices secundrios

Prof. Renato Fileto INE/CTC/UFSC

ndices em mltiplos nveis


B-Trees e B+_Trees

Bibliografia e leituras recomendadas Lista de exerccios


1

Acesso a dados em um SGBD

A arquitetura interna de um SGBD


(figura adaptada de Korth & Silberchatz 1994)
usurios ingnuos programadores de aplicativos APIs para aplicativos usurios sofisticados consultas administrador do banco de dados esquema do banco de dados

Modelagem de Dados

Interface Processamento de Consultas Processamento de Transaes Acesso aos Dados


interfaces de aplicativos

pr-compilador DML cdigo objeto gerenciador do banco

processador de consultas compilador DDL SGBD

SGBD

gerenciador de acesso aos dados

Dados e estruturas de acesso

catlogo

Nveis de armazenamento de dados


Processador
Registradores Internos

Um disco simples

Cache do Processador
Memria Primria

Memria Principal Cache de Disco Disco Magntico


Memria Secundria

Fita

Memria Terciria

11/8/2010

Trilhas e setores

Pilha de discos

Alocao de disco

Regs. de tabela em pginas de disco

Cache de disco

Anlises de tempo de acesso


Consideram somente o nmero de pginas recuperadas para atender uma requisio Ignoram ganho no acesso a blocos previamente capturados e mantidos na cache de disco Fatores relevantes:
Nmero e tamanho dos registros de dados Nmero de registros armazenados por pgina de disco

Pginas disponveis em cache no precisam ser acessadas em disco Mas seus valores so perdidos se no gravados em disco antes de ocorrer uma falha

Nmero de pginas de disco ocupadas pelos dados e estruturas de acesso aos mesmos Tempo mdio para ler ou escrever uma pgina

11/8/2010

Exempo de anlise
Sejam:
NroRegs = 30.000 TamReg = 100 bytes TamPag = 1 Kbyte = 1024 bytes

Alternativas para organizao dos dados em memria secundria


Arquivos Heap: Melhor opo quando o acesso tipico um busca sequencial, sem ordem, recuperando todos registros.
Exemplo: um simples arquivo de registros de dados.

Pode-se calcular:
NroRegsPorPag = 1024 / 100 = 10 registros (24 bytes inutilizados por pgina) NroPagsOcupadas = 30.000 / 10 = 3.000 pginas

Arquivos Ordenados: Melhor opo se os registros devem ser recuperados em alguma ordem, ou quando somente uma poro contgua dos registros ordenados necessria.
Ex.: Arquivo de dados, possivelmente ordenado, alm de vrios ndices.

Arquivos Hashed: Melhor para selees de igualdade.


O arquivo de dados uma coleo de buckets. Bucket = uma pgina primria e possveis pginas de overflow. Funo de Hashing: h(K) = endereo do bucket contendo o(s) registro(s) com o valor de busca K. No adequado para acesso seqencial ordenado.

O tempo de acesso depende do tipo de requisio e da estrutura utilizada para a organizao e o acesso s pginas de dados

Indexao
Nome Ana Beto
Atrib. Busca Pont.

Tipos de ndices
Cidade Florianpolis Campinas : Recife Amparo Salvador : Florianpolis Estado . . . SC SP : PE SP BA : SC . Uberlndia
Pont. Atrib. Busca

. . . . . .

Amparo Braslia Campinas Florianpolis Recife Salvador

ndice primrio: ordenao, inclusive dos dados, pela chave primria


Esparso Mxima eficincia

: Carol Carmen Fernando : Paulo . . . Paulo Rita : Tereza

Ana Carmem :

. . :

ndice de agrupamento (clustering index): ordenao, inclusive dos dados, por atributo(s) no chave (que pode(m) ter valores repetidos)
Esparso Eficincia prxima do ndice primrio

Paulo

ndice esparo

ndices secundrios: ordenaes distintas (auxiliares)


Uberlndia Florianpolis : Braslia MG SC : DF

Densos Menos eficientes que os anteriores, porm muito mais eficientes que busca seqencial

Arquivo de dados

ndice secundrio denso

ndice primrio
Codigo 1 2 Atrib. Busca 1 9 : 2049 Pont. . . : . 9 10 : 16 . . . 2049 2050 : 2056 Uberlndia Florianpolis : Braslia MG SC : DF Amparo Salvador : Florianpolis SP BA : SC : 8 Cidade Florianpolis Campinas : Recife Estado . . . SC SP : PE

ndice de agrupamento (clustering index)


Nome Ana Andr Atrib. Busca Ana Carol : Paulo . . : . Carol Fernando : Gisle . . . Paulo Rita : Tereza Uberlndia Florianpolis : Braslia MG SC : DF Amparo Salvador : Florianpolis SP BA : SC Pont. : Carol Cidade Florianpolis Campinas : Recife Estado . . . SC SP : PE

ndice esparso

ndice esparso

Arquivo de dados

Arquivo de dados

11/8/2010

ndice de agrupamento com blocos para cada valor de busca


Nome Ana Ana Atrib. Busca Ana : : Tereza . : : . Ana Ana : . . . Tereza Tereza : Tereza Uberlndia Florianpolis : Braslia MG SC : DF Amparo Salvador : SP BA : Pont. : Ana Cidade Florianpolis Campinas : Recife Estado . . . SC SP : PE

ndice secundrio
Nome Ana Beatriz : Carol Carmen Fernanda : Paula . . . Paula Rita : Tereza Uberlndia Florianpolis : Braslia MG SC : DF Cidade Florianpolis Campinas : Recife Amparo Salvador : Florianpolis Estado . . . SC SP : PE SP BA : SC . Uberlndia Pont. . . . . . . Atrib. Busca Amparo Braslia Campinas Florianpoli s Recife Salvador

ndice esparo

Arquivo de dados

Arquivo de dados

ndice denso

ndices com mltiplos nveis


1 129 : 1 513 : 1536 . . : . 513 641 : 769 . . . 1536 1792 : 1921 . . : . ... . . : . . . . 2037 2041 : 2045 . . : . 384 . . : . ... 1 5 : 29 . . . . . : . Cdigo 1 2 : 4 5 6 : 7 . . . 2045 2046 : 2048 Joo Andr : Ney Nome Camila Ftima : Nilza Pedro Carol : Beatriz

Estrutura de ndice em rvore


(figura extrada de Ramakrishnan 1998)

Pgs. no folha

Pgs. folha Pgina de overflow Pginas primrias

Arquivo de dados

B-Tree de ordem 3

Remoo na B-Tree

12 ^

X^

12 ^

^^ = endereo de registro de dado

11/8/2010

Possvel resultado da remoo

Insero na B-Tree

12 ^

12 ^

Possvel resultado da insero

B+_Tree
(figura extrada de Ramakrishnan 1998)

Raiz

12 ^

Especificao de ndices em SQL


CREATE INDEX IndicePorNome ON Pessoa WITH STRUCTURE = BTREE, KEY = (nome) CREATE INDEX IndicePorCidadeEstado ON Pessoa WITH STRUCTURE = BTREE, KEY = (cidade, estado) CREATE INDEX IndicePorEstadoCidade ON Pessoa WITH STRUCTURE = BTREE, KEY = (estado, cidade)

Leituras recomendadas
Elmasri, R.; Navathe, S.B. Fundamentals of database Systems. 2 ed., Benjamin Cummings, 1994.
Cap. 4 Armazenagem de Registros e Organizao de Arquivos Cap. 5 Estruturas de ndices para Arquivos

Ramakrishnan, R. Database management systems. McGraw-Hill, 1998.


Parte 3 Armazenagem e Indexao de Dados Cap. 7 Armazenando Dados: Discos e Arquivos Cap. 8 Organizao de Arquivos e ndices Cap. 9 Indexao baseada em Estruturas em Forma de rvore Cap. 10 Indexao baseada em Hashing

Abiteboul, S.; Buneman, P.; Suciu, D. Data on the Web from Relations to Semistructured Data and XML. Morgan Kaufmann, 2000.
Seo 8.2.2 Indexao

Você também pode gostar