1 / 22

Método de Acesso Indexado Sequencial (ISAM)

Método de Acesso Indexado Sequencial (ISAM). AULA 11 Profa. Sandra de Amo GBC053 – BCC. Dados e Indices. Dados armazenados em arquivo de dados <a 1 ,a 2 , … , k ,…, a n > + rid Rid = (página i, slot j) – permite localizar o registro no disco Arquivos de indice estruturados em árvore

zeheb
Télécharger la présentation

Método de Acesso Indexado Sequencial (ISAM)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Método de Acesso Indexado Sequencial (ISAM) AULA 11 Profa. Sandra de Amo GBC053 – BCC

  2. Dados e Indices • Dados armazenados em arquivo de dados • <a1,a2, … , k,…, an> + rid Rid = (página i, slot j) – permite localizar o registro no disco • Arquivos de indice estruturados em árvore • Folhas : < k, (i,j) > • Contém os registros do arquivo de indices • Nós intermediários : <chave, pagId> • Contém registros que permitem chegar rápido na folha desejada • Objetivo : melhorar a busca de registros

  3. Dados e Indices • Inserção e deleções são feitas no arquivo de dados • A cada inserção ou deleção de um registro de dados, a estrutura do arquivo de indices deve ser ajustada. • O ajuste implica em inserção ou deleção de entradas (registros) no arquivo de indice mantendo a ordem do arquivo. • Como gerenciar inserções e deleções num arquivo de indice de modo a manter, de forma eficiente, o arquivo de indices sempre ordenado ? • Não queremos propagar « shifts » pelas páginas do arquivo de indice até o final do arquivo, a cada inserção ou deleção ! • A idéia é só executar « shifts » em poucas páginas !

  4. ISAM - Motivação Quais os empregados com salário > 2000 ? Busca binária no arquivo de índice até encontrar o primeiro salário > 2000 Escaneia o arquivo de índice a partir deste ponto e lê os registros correspondentes. Se o arquivo de índice é muito grande : busca binária pode ser dispendiosa.

  5. Idéia Criar um segundo arquivo com um registro para cada página do arquivo de indice original • <primeira chave da página, ponteiro da página> • Ordenado por chave

  6. Como são os nós internos da estrutura ISAM ? Pi = ponteiros que apontam para um núm. de página no nível imediatamente inferior Ki = valor do atributo chave do índice. Exemplo: se o atributo chave é idade então Ki é um valor de idade. P1 P2 P0 K1 K2 K3 ... Pi Ki+1 Pi+1 ... Km Pm K ≥ Ki+1 K < Ki+1 Valores K da chave nesta página são < Ki+1 Valores K da chave nesta página são ≥ Ki+1

  7. Idéia • Se quero buscar empregado com status > 7: • Não é preciso fazer busca binária nas páginas do arquivo de indice • Faz-se a busca binária no segundo arquivo, que é bem menor do que o primeiro arquivo 14 2* 5* 7* 12* 14* 17* 19* 22*

  8. Idéia (continuação) • Segundo arquivo menor que arquivo original • Busca binária no segundo arquivo mais rápida • Se segundo arquivo não cabe numa página • Repetir o processo : cria-se um terceiro arquivo com um registro para cada página do segundo arquivo • … Raiz cabe numa página

  9. Organização do índice em árvore Páginas auxiliares que permitem chegar rapidamente a uma folha Páginas do arquivo de índice Páginas do Arquivo de Dados

  10. Alocação de Páginas em ISAM • Páginas primárias do índice: são as folhas • Contém os registros do arquivo de índice • Páginas de overflow : contém os registros do arquivo de índice que não cabem na página onde deveriam ser inseridos

  11. Discussão • ISAM é uma estrutura estática • Na criação do arquivo • Páginas primárias (folhas) são alocadas • 20% de cada página é livre para posteriores inserções, tentando “adiar” ao máximo a criação de páginas de overflow • Páginas intermediárias são criadas. • Manutenção : • Páginas de overflow são alocadas à medida que as páginas primárias do índice ficam cheias em decorrência de inserções.

  12. Esquema Geral do Método ISAM Páginas dos arquivos de indices (a partir da 2a camada) Páginas primárias – as entradas do arquivo de índice da primeira camada Páginas de overflow

  13. Busca na estrutura ISAM Exemplo: Busca da chave 27 Em cada nível INTERNO da estrutura, os dados contidos nas páginas são : P0,K1,P1,K2,...,Km,Pm m chaves e m+1 ponteiros • Se 27 < K1: transfere a busca para a página apontada por P0 • Se 27 ≥ Km: transfere a busca para a página apontada por Pm • Caso contrário: busca binária na página para encontrar chaves K1, K2 tais que Ki ≤ 27 < Ki+1 • Transfere a busca para a página apontada por Pi

  14. Exemplo: Busca de um registro de dados Busca da chave 27 Raiz 40 51 63 20 33 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97*

  15. Inserção de um registro Inserção de 23*, 48*,41*,42* Raiz 40 51 63 20 33 10* 15* 20* 27* 33* 37* 40* 46* 51* 55* 63* 97* 23* 48* 41* Página de Overflow 42*

  16. Deleção de um registro Deleção de 42*, 51*,97* Procura 51* Raiz Nunca são alteradas !! 40 51 63 20 33 55* 10* 15* 20* 27* 33* 37* 40* 46* 51* 63* 97* 23* 48* 41* Pagina de Overflow 42*

  17. Discussão • Se um registro é removido de uma página de overflow e a página ficar vazia, a página é “removida” – retira-se o ponteiro que apontava para ela. • Se um registro é removido de uma página primária e a página ficar vazia: • ela fica do jeito como está: não é “removida” • eventuais registros contidos em páginas de overflow não são transferidos para páginas primárias vazias ! • estratégia mais simples, • evita perder muito tempo na manutenção do índice • dados que fossem transferidos para a página primária deveriam ser ordenados, o que demandaria tempo.

  18. ESTIMATIVAS DE CUSTOS

  19. Custoparachegaremumafolha • Número de I/O = número de níveis da árvore • Capacidade de cada página = F = número de ponteiros saindo de cada página • Total de páginas primárias = N • Número de níveis = logF N • Logo Custo I/O para chegar em uma folha = logF N

  20. Comparação de Custos Custo de uma busca A = a • Arquivo de 1 000 000 registros • 10 registros por página de dados : total de páginas = 100 000 • 100 ponteiros em cada página de índice (99 entradas (chave,pt) + ponteiro P0) • Arquivo não ordenado por A • Scan = 1000 000/10 = 100000I/0 • Arquivo ordenado por A • Busca binária = log2 100000 = 17 I/0 • Arquivo estruturado usando método ISAM • Arquivo de indice usa alternativa 1 (registro do indice = registro de dados) • Custo = log100 100000 = entre 2 e 3 I/0, pois 1002 < 100000 < 1003

  21. Vantagens de ISAM • ISAM é estático : • inserções e deleções afetam somente as folhas. • Nós internos não sofrem modificações após uma inserção ou deleção de registros do indice. • Logo, páginas internas podem ser manipuladas por outras transações sem problemas de bloqueios, já que nunca são alteradas.

  22. Desvantagens de ISAM • Possibilidade de cadeias de páginas overflow • Páginas overflow geralmente não são ordenadas, a fim de agilizar inserções. • Para aliviar este problema : • Árvore é criada com 20% de cada folha livre • Entretanto, uma vez preenchido este espaço, cadeias de overflow só podem ser eliminadas através de uma total reorganização da estrutura.

More Related