A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo.

Apresentações semelhantes


Apresentação em tema: "Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo."— Transcrição da apresentação:

1 Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo é visto como um conjunto de registros indexados por chaves. Visão sequencial: o arquivo pode ser acessado sequencialmente, gerando registros ordenados por chaves.

2 Operações cosequenciais + operações indexadas ler um arquivo “inteiro” (menos seek) para, por exemplo, ordená-lo ler cada chave para acessar os registros Exemplo: Acesso Sequencial Indexado

3 Conjuntos de sequência de registros Objetivo: manter dinamicamente um conjunto de registros ordenados por chaves no disco Problema: ordenação do arquivo em disco é “cara”! Solução: organizar os registros em blocos  operações locais um bloco se torna a menor unidade endereçável nas operações de leitura e escrita no disco (é carregado todo na RAM).

4 Exemplo: Chaves = nomes 4 nomes/bloco (fator de bloco) Chaves: Adams Baird Bixby Boone Bynum Carson Cole Davis Denver Ellis

5 Adams Baird Bixby Boone bloco 1 Bynum Carson Cole Davis bloco 2 Denver Ellis bloco 3 Introduzir Carter : Cole Davis Adams Baird Bixby Boone bloco 1 Bynum Carson Carter bloco 2 Denver Ellis bloco 3 bloco 4 bloco 1 bloco 2 bloco 3 bloco 2 subdivisão (split) de bloco

6 Eliminar Davis : Cole Adams Baird Bixby Boone bloco 1 Bynum Carson Carter bloco 2 Denver Ellis bloco 3 bloco 4 bloco 1 bloco 2 bloco 3 bloco 2 underflow

7 Eliminar Davis : Cole Denver Adams Baird Bixby Boone bloco 1 Bynum Carson Carter bloco 2 Ellis bloco 3 bloco 4 bloco 1 bloco 2 bloco 3 bloco 2 disponível concatenação Conclusão: o arquivo inteiro pode ser mantido ordenado apenas pela ordenação de suas partes (blocos).

8 Problemas: A ordenação do arquivo pode exigir mais espaço em disco por conta de fragmentações internas. Neste caso, pode-se adotar estratégias que privilegiem a redistribuição de chaves. A ordem física dos registros só é garantida ao longo de um bloco e não entre-blocos. Qual deve ser o tamanho de um bloco? -Deve representar um compromisso entre tempo de acesso, memória RAM (buffer) disponível e as operações a serem executadas. O tamanho do bloco deve permitir o armazenamento de vários destes na memória. O tempo de leitura e escrita de um bloco não deve ser muito longo (para não perder o que se ganhou economizando-se em seeks).

9 Sequência de registros e indexação Objetivo: definir um método eficiente que possibilite o acesso a um bloco contendo uma chave (ou registro) procurada. Ideia: construir um índice de chaves (a partir do último registro de cada bloco, por exemplo), apontando para cada um destes blocos. Adams-Berne Bolen-Cage Camp-DuttonEmbry-EvansFaber-FolkFolks-Gaddis Sequência de blocos: 12 345 6

10 Adams-Berne Bolen-Cage Camp-DuttonEmbry-EvansFaber-FolkFolks-Gaddis 12 345 6 Chave Número do Bloco Berne1 Cage2 Dutton3 Evans4 Folk5 Gaddis6 Índices da sequência de blocos

11 Chaves delimitadoras Os índices servem apenas de guia na busca do bloco que contém a chave a ser acessada  delimitadores Menor delimitador possível (não-único)  economia de espaço (neste caso, teremos uma árvore B+ de prefixo simples) Adams-Berne Bolen-Cage Camp-DuttonEmbry-EvansFaber-FolkFolks-Gaddis 12 345 6 BO CAM E FFolks Delimitadores de blocos

12 Arquivo sequencial indexado e árvore B+ de prefixo simples E BO CAM F FOLKS Adams-Berne Bolen-Cage Camp-DuttonEmbry-EvansFaber-FolkFolks-Gaddis 12 345 6 conjunto de índices

13 A partir dos índices na árvore B, podemos acessar um bloco da seguinte forma: 1. Se chave procurada < delimitador, então vá para a esquerda na árvore 2. se chave >= delimitador, então vá para a direita na árvore Lembrando: Árvore B+ de prefixo simples  os delimitadores são os menores possíveis na árvore B A busca

14 Operações sobre árvores B+ Supressão de registros sem originar concatenação e redistribuição  alterações apenas nos blocos de registros; o conjunto de índices não é alterado E BO CAM F FOLKS Adams-Berne Bolen-Cage Camp-DuttonEmbry-EvansFaber-FolkFolks-Gaddis 12 345 6 conjunto de índices Inserção sem subdivisão  idem

15 6 Apagar Embry e Folks E BO CAM F FOLKS Adams-Berne Bolen-Cage Camp-DuttonEmbry-EvansFaber-FolkFolks-Gaddis 12 345 E BO CAM F FOLKS Adams-Berne Bolen-Cage Camp-DuttonErvin-EvansFaber-FolkFrost-Gaddis 12 345 6

16 Inserção causando subdivisão  mudanças no número de blocos de registros  alteração no conjunto de índices através das regras aplicadas às árvores B. Supressão com redistribuição e/ou concatenação  idem

17 E BO CAMFFOLKS Adams-BerneBolen-CageCamp-DuttonErvin-EvansFaber-FolkFrost-Gaddis 12 3 45 6 Inserir Ayers Ayers (causa subdivisão do bloco 1 com criação do bloco 7) CAM AYF FOLKS Adams-Avery Bolen-CageCamp-DuttonErvin-EvansFaber-FolkFrost-Gaddis 12 345 6 BO E Ayers-Berne 7

18 Supressão com underflow  concatenação dos blocos de registros CAM AYF FOLKS Adams-Avery Bolen-CageCamp-DuttonErvin-EvansFaber-FolkFrost-Gaddis 12 34 5 6 BO E Ayers-Berne 7 remoções no bloco 2 causam underflow e subsequente concatenação com o bloco 3.

19 CAM AYF FOLKS Adams-Avery Bolen-CageCamp-DuttonErvin-EvansFaber-FolkFrost-Gaddis 12 345 6 BO E Ayers-Berne 7 concatenação AY F FOLKS Adams-Avery Ervin-EvansFaber-FolkFrost-Gaddis 1 45 6 BO E Ayers-Berne 7 Bolen-Dutton 2

20 Assim: Se blocos de registros são subdivididos  um novo delimitador é necessário ao conjunto de índices Se blocos são concatenados  um separador deve ser removido do conjunto de índices Se registros são redistribuídos entre blocos da sequência de registros  o delimitador no conjunto de índices deve ser atualizado

21 Blocos de Conjunto de Índices (delimitadores) Os índices podem ser armazenados em blocos, tal como os registros (de mesmo tamanho dos blocos dos registros) Os delimitadores podem ser de tamanho variável  grande número de delimitadores em um bloco de índice  árvore menos profunda. Uma busca binária pode ser feita sobre estes delimitadores armazenados em RAM

22 AsBsBroCChCraDeleEdlErrFaFle 00 02 04 07 08 10 13 17 20 23 25 delimitadores concatenados NRR dos delimitadores AsBsBroCChCraDeleEdlErrFaFle 00 02 04 07 08 10 13 17 20 23 25B00 B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 11 28 Número de delimitadores Tamanho total dos delimitadores delimitadores NRR dos delimitadoresNúmero relativo dos blocos Exemplo de estrutura de um bloco de índice

23 AsBsBroCChCraDeleEdlErrFaFle00 02 04 07 08 10 13 17 20 23 25B00 B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 11 28 Número de delimitadores Tamanho total dos delimitadores delimitadores NRR dos delimitadoresNúmero relativo dos blocos B00 As B01 Bs B02 Bro B03 C B04 Ch B05 Cra B06 Dele B07 Edi B08 Err B09 Fa B10 Fle B11 1 2 3 4 5 6 7 8 9 10 11 ordem dos delimitadores Nível conceitual:

24 Criação/inicialização sequencial da árvore B+ Problema: A criação aleatória da árvore ( com registros introduzidos não-ordenadamente à medida que chegam) envolve operações de subdivisão e redistribuição que são “caras” Ideia: Ordenar o conjunto dos registros que comporão a árvore, armazenando-os sucessivamente nos blocos  os registros são armazenados na ordem correta. Para cada bloco é definido o seu delimitador que, em seguida, é armazenado no bloco de índices (contido na memória até que o bloco esteja cheio)

25 ALWASPBET 00 03 06 Access-Also Always-AskAspect-Best Better-Cast Exemplo:

26 Catch-Check Novo bloco ALWASPBET 00 03 06 Access-Also Always-AskAspect-Best Better-Cast -1 -1 -1 00 -1 -1 CAT Catch-Check bloco sem delimitadores!

27 ALWASPBET 00 03 06 Access-Also Always-AskAspect-Best Better-Cast 00 -1 -1 CAT Catch-Check Class-Copy Novo bloco CL 00 -1 -1 Class-copy

28 ALWASPBET 00 03 06 Access-Also Always-AskAspect-Best Better-Cast 00 -1 -1 CAT Catch-Check CL 00 02 -1 Class-copy Cost-Damage Novo bloco Cost-Damage COS

29 DE ALWASPBET 00 03 06 Access-Also Always-AskAspect-Best Better-Cast 00 -1 -1 CAT Catch-Check CL00 02 05 Class-copyCost-Damage Delete-Dise Novo bloco COS Delete-Dise

30 DE ALWASPBET 00 03 06 Access-Also Always-AskAspect-Best Better-Cast 00 03 -1 CAT Catch-Check CL00 02 05 Class-copyCost-Damage COS Delete-Dise Drum-Editor Novo bloco Drum-Editor DR -1 -1 -1

31 Effort-Crow DE ALWASPBET 00 03 06 Access-Also Always-AskAspect-Best Better-Cast 00 03 -1 CAT Catch-Check CL00 02 05 Class-copyCost-Damage COS Delete-Dise Effort-Crow Novo bloco Drum-Editor DR 00 -1 -1EF

32 Effort-Crow DE ALWASPBET 00 03 06 Access-Also Always-AskAspect-Best Better-Cast 00 03 -1 CAT Catch-Check CL00 02 05 Class-copyCost-Damage COS Delete-Dise Drum-Editor DR 00 02 -1EFH Head-Ideal Novo bloco Head-Ideal

33 Effort-Crow DE ALWASPBET 00 03 06 Access-Also Always-AskAspect-Best Better-Cast 00 03 -1 CAT Catch-Check CL00 02 05 Class-copyCost-Damage COS Delete-Dise Drum-Editor DR 00 02 03EFHIG Ignore-Item Novo bloco Head-Ideal Ignore-Item

34 ALWAYSASPECTBETTER 00 06 12 Access-Also Always-AskAspect-Best Better-Cast Separadores Completos

35 Arquivos de índices e lista invertida

36 RANOMECURSODISCIPLINA 1Antônio T.ComputaçãoMC101 MC102 3Vera K.ComputaçãoMC902 8Antônio P.CivilMC326 MC420 10Beatriz Q.ElétricaMC101 MC326 5Caio V.MecânicaMC101 MC102 MC920 2Caio M.MecânicaMC202 MC326 4Tiago B.ComputaçãoMC101 9Zedna P.ComputaçãoMC202 MC920 7Mauro M.MecânicaMC102 MC202 6Nilo R.ElétricaMC202 Base de Dados Original Arquivos de Índices e Lista Invertida

37 Arquivo de índice primário após ordenação RA 1 2 3 4 5 6 7 8 9 10 Arquivo original RANOMECURSODISCIPLINA 1Antônio T.ComputaçãoMC101 MC102 3Vera K.ComputaçãoMC902 8Antônio P.CivilMC326 MC420 10Beatriz Q.ElétricaMC101 MC326 5Caio V.MecânicaMC101 MC102 MC920 2Caio M.MecânicaMC202 MC326 4Tiago B.ComputaçãoMC101 9Zedna P.ComputaçãoMC202 MC920 7Mauro M.MecânicaMC102 MC202 6Nilo R.ElétricaMC202

38 Arquivo de índice secundário : NOME NOME Antônio P. Antônio T. Beatriz Q. Caio M. Caio V. Mauro M. Nilo R. Tiago B. Vera K. Zedna P. Arquivo original RANOMECURSODISCIPLINA 1Antônio T.ComputaçãoMC101 MC102 3Vera K.ComputaçãoMC902 8Antônio P.CivilMC326 MC420 10Beatriz Q.ElétricaMC101 MC326 5Caio V.MecânicaMC101 MC102 MC920 2Caio M.MecânicaMC202 MC326 4Tiago B.ComputaçãoMC101 9Zedna P.ComputaçãoMC202 MC920 7Mauro M.MecânicaMC102 MC202 6Nilo R.ElétricaMC202

39 Arquivo de índice secundário (NOME) + índice de chave primária: NOMEChave Primária Antônio P.8 Antônio T.1 Beatriz Q.10 Caio M.2 Caio V.5 Mauro M.7 Nilo R.6 Tiago B.4 Vera K.3 Zedna P.9 Arquivo original RANOMECURSODISCIPLINA 1Antônio T.ComputaçãoMC101 MC102 3Vera K.ComputaçãoMC902 8Antônio P.CivilMC326 MC420 10Beatriz Q.ElétricaMC101 MC326 5Caio V.MecânicaMC101 MC102 MC920 2Caio M.MecânicaMC202 MC326 4Tiago B.ComputaçãoMC101 9Zedna P.ComputaçãoMC202 MC920 7Mauro M.MecânicaMC102 MC202 6Nilo R.ElétricaMC202 para a consulta, busco respectiva chave no arquivo de índice primário

40 Modelos de Consultas: -- Quem tem RA = 4 ? RA 1 2 3 4 5 6 7 8 9 10 Busca binária no arquivo de chaves primárias: RANOMECURSODISCIPLINA 1Antônio T.ComputaçãoMC101 MC102 3Vera K.ComputaçãoMC902 8Antônio P.CivilMC326 MC420 10Beatriz Q.ElétricaMC101 MC326 5Caio V.MecânicaMC101 MC102 MC920 2Caio M.MecânicaMC202 MC326 4Tiago B.ComputaçãoMC101 9Zedna P.ComputaçãoMC202 MC920 7Mauro M.MecânicaMC102 MC202 6Nilo R.ElétricaMC202

41 -- Quem faz Computação? Busca binária no arquivo de chaves secundárias CURSO + percorrer a lista invertida Curso Civil 2 Computação 7 Elétrica 9 Mecânica 8 1 30 8 10 5 24 41 96 75 63 Lista invertida 0 1 2 3 4 5 6 7 8 9

42 -- Quem está matriculado em MC202 ? Busca binária no arquivo de chaves secundárias DISCIPLINA + percorrer a lista invertida Disciplina MC10112 MC10215 MC20217 MC32611 MC4204 MC9022 MC92014 1 1 3 8 8 100 3 55 51 5 2 26 47 910 99 78 713 616 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Lista invertida

43 -- Quem faz Computação e está matriculado em MC202 ?  Busca binária no arquivo de chaves secundárias CURSO + percorrer lista invertida: Registros com chaves primárias: 9 4 3 1  Busca binária no arquivo de chaves secundárias MC202 + percorrer lista invertida: Registros com chaves primárias: 6 7 9 2 Resposta: Registro de chave primária 9 9Zedna P.ComputaçãoMC202 MC920


Carregar ppt "Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo."

Apresentações semelhantes


Anúncios Google