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

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

1 Organização básica de arquivos. 2 Tipos de arquivos Organização de arquivos Formas básicas de organização de arquivos – Seqüencial – Seqüencial Indexada.

Apresentações semelhantes


Apresentação em tema: "1 Organização básica de arquivos. 2 Tipos de arquivos Organização de arquivos Formas básicas de organização de arquivos – Seqüencial – Seqüencial Indexada."— Transcrição da apresentação:

1 1 Organização básica de arquivos

2 2 Tipos de arquivos Organização de arquivos Formas básicas de organização de arquivos – Seqüencial – Seqüencial Indexada – Indexada – Direta (Randômica) – Listas Invertidas

3 3 Organização básica de arquivos A organização de arquivo trata do arranjo ou a forma de distribuição dos registros dentro do arquivo, objetivando agilizar o processo de armazenamento e recuperação de dados. Um arquivo é organizado, logicamente, como uma seqüência de registros que são mapeados nos dispositivos de memória.

4 4 Organização básica de arquivos Os registros podem assumir tamanhos fixos e variáveis: – Tamanho fixo – todos os registros do arquivo possuem o mesmo comprimento em bytes; – Tamanho variável – os registros podem assumir um comprimento entre dois limites especificados, máximo e mínimo.

5 5 Registro de tamanho variável ABCD ABDEF01 F02 F03 Registro com campo de tamanho variável Registro com n° variável de ocorrências A – Código B – Nome C – Tamanho do campo D D – Endereço E – Ocorrências de F (1 a 10) F – Disciplinas 01 Pascal 02 Inglês 03 Análise

6 6 Formas básicas de organização de arquivos Seqüencial Seqüencial indexada Indexada Direta (Aleatória) Listas Invertidas

7 7 Organização seqüencial Operações Acesso a um registro O argumento de pesquisa é comparado com cada registro lido, de forma seqüencial. Inclusão de um registro Deve ser gerado um novo arquivo a partir do atual, intercalando o registo novo com base na chave primária. Inclusão

8 8 Organização seqüencial operações Exclusão de um registro Como na inclusão, deve ser gerado um novo arquivo a partir do atual, de forma a eliminar o registro desejado. Outra forma bastante utilizada principalmente para arquivos em disco, seria indicar (em um campo adicional) o estado de registro como excluído. Exclusão

9 9 Organização seqüencial operações Alteração de um registro Esta operação pode ser implementada da mesma forma que as de inclusão e exclusão. Em arquivos em disco, o registro pode ser recuperado, alterado e regravado na mesma posição, desde que não se altere a chave de ordenação. Alteração

10 10 Organização seqüencial operações 10 dd 16 dd 20 dd 21 dd 22 dd 25 dd 28 dd 30 dd 10 dd 16 dd 19 dd 20 dd 21 dd 25 dd 27 dd 28 dd 30 dd 19 Inc dd 22 Exc 27 Inc dd Atualização

11 11 Organização Seqüencial Forma mais simples de organização Apesar de sua simplicidade, a pesquisa seqüencial é o método mais eficiente para pesquisas em arquivos com até 25 registros (pesquisa seqüencial rápida)

12 12 Organização seqüencial indexada O arquivo seqüencial indexado é formado por um arquivo seqüencial e por um índice; Contém três áreas distintas: – Área de índices – Área de dados – Área de extensão (overflow) Possibilita tanto acesso seqüencial quanto randômico (através de índices) Índices Dados Extensão

13 13 Índices Um índice é formado pela chave e pelo endereço do registro; Cada entrada no índice corresponde a um grupo de registros (índice esparso) ao invés de uma entrada para cada registro (índice denso); Os índices podem ser estruturados em até três níveis.

14 14 Índices Índice Mestre – contém entradas com o maior valor de chave de cada trilha do índice de cilindro. Índice de Cilindros – contém entradas com o maior valor de chave contido em cada cilindro. Índice de Trilhas – contém entradas com o maior valor de chave contido em cada trilha do cilindro.

15 15 Índices Índice de Cilindro Índice Mestre C1 C5 C9 C2 C3C4 C6 C7 C8 CA CB CC T1 T3 T4 Cilindro C1 T2 10 dd40 dd46 dd 50 dd 60 dd 65 dd 72 dd 100 dd 104 dd 171 dd 111 dd 180 dd 130 dd 198 dd 150 dd 200 dd T0T1 T2 T0 T1 T2 T3 T4 T0 T1 T2 Índice de Trilha Trilhas de dados

16 16 Área de Extensão Na criação do arquivo seqüencial indexado os registros são armazenados na área de dados; Os novos registros incluídos no arquivo são armazenados fisicamente na ordem seqüencial de acordo com o valor de chave. Isto implica que registros com valores de chaves mais altos devam ser deslocados.

17 17 Área de Extensão Os registros que são deslocados ou forçados para fora da trilha original são colocados na área de extensão; Os registros na área de extensão originalmente pertencentes a mesma trilha são encadeados através de um elo de ligação e a entrada do índice de extensão aponta para o início da cadeia.

18 18 Entradas de índices Chave 1 – maior valor de chave de cada trilha do cilindro da área de dados. Endereço 1 – endereço da trilha. Chave 2 – maior valor de chave do registro, logicamente, associado com a trilha do cilindro da área de dados. Endereço 2 – endereço da trilha referente ao registro de maior valor de chave, logicamente, associado com a trilha de cilindro da área de dados. Chave1Endereço1Endereço2Chave2 Dados Extensão

19 19 Organização seqüencial indexada – operações Acesso a uma registro Os registro podem ser recuperados de forma seqüencial e aleatoriamente. Exclusão de um registro A exclusão de um registro pode ser implementada pela colocação de uma marca excluído em um campo adicional do registro. Programa

20 20 Organização seqüencial indexada – operações Alteração de um registro Se a alteração não envolver a chave do registro e não modificar o tamanho, seus campos podem ser alterados e o registro gravado novamente na mesma posição. Programa

21 21 Organização seqüencial indexada – operações Inclusão de um registro O registro será incluído na área de extensão se seu valor de chave for maior do que a do último registro. Caso contrário, o último registro da trilha na área de dados é deslocado para a área de extensão e o novo registro incluído na sua posição correta. Programa

22 22 Adições de registros T1 T1R0 T2 T3T4 T2R0 T3R0T4R0 114 dd115 dd118 dd 122 dd 125 dd 129 dd 130 dd 132 dd 133 dd 142 dd 136 dd 154 dd 137 dd 161 dd 140 dd 166 dd T1 T2 T3 T4 Trilhas de dados T5 T6 Trilhas de extensão Índice de dados Índice de exten. Inserir os registros de chaves 117, 135 e 155. Posição Inicial:

23 23 Adições de registros T1 T5R1 T2 T3T4 T2R0 T5R2T5R3 114 dd115 dd117 dd 118 dd 125 dd 129 dd 130 dd 132 dd 133 dd 142 dd 135 dd 154 dd 136 dd 155 dd 137 dd 161 dd T1 T2 T3 T4 Trilhas de dados T5 T6 Trilhas de extensão Índice de dados Índice de exten. Posição após inseridos os registros de chaves 117, 135 e T1R0140 T3R0 166 T4R0

24 114 dd115 dd117 dd118 dd 125 dd129 dd130 dd 132 dd 133 dd 142 dd 135 dd 154 dd 136 dd 155 dd 137 dd 161 dd T1 T2 T3 T4 Trilhas de dados T5 T6 Trilhas de extensão Índice de dados Índice de exten. Posição após inseridos os registros de chaves 117, 135 e 155: T1 T5R1 T2T3 T4 T2R0 T5R2T5R T1R0 T2R0 T3R0 Inserir os registros de chaves 117, 135 e 155. Posição Inicial: 114 dd115 dd118 dd122 dd 125 dd129 dd130 dd 132 dd 133 dd 142 dd 136 dd 154 dd 137 dd 161 dd 140 dd 166 dd T1 T2 T3 T4 Trilhas de dados T5 T6 Trilhas de extensão Índice de dados Índice de exten T1 T1R0 T2T3 T4 T2R0 T3R0T4R0

25 25 Reorganização do arquivo seqüencial indexado Os novos registros inseridos no arquivo são armazenados ou deslocam registros existentes para a área de extensão; O tempo de acesso para recuperar um registro da área de extensão é bem maior do que o tempo para ler um registro da área de dados; Em outras palavras, o desempenho vai diminuindo à medida que o arquivo cresce. No entanto, essa degeneração pode ser remediada através de reorganizações do arquivo.

26 26 Reorganização do arquivo seqüencial indexado A reorganização é realizada, usualmente, em duas etapas de processamento: – A versão existente é lida na seqüência de chaves e gravada em fita magnética, constituindo-se em backup. – A nova versão é criada a partir da fita, podendo ser eliminados, neste passo, os registros marcados como excluídos. BackupRestore

27 27 Organização Indexada Rapidez na inclusão (desde que não haja movimentação de registros dentro do arquivo, basta inserir registros sempre no final do arquivo) Rapidez na pesquisa (índice mantido na memória principal) Rapidez na atualização (devido ao índice) Uma pesquisa seqüencial, mesmo que parcial, não pode ser feita sem acesso ao índice.

28 28 Organização Indexada Uma base de dados indexada é composta por duas partes básicas: – Um arquivo de dados – Estrutura de índices associada OBS: A estrutura interna para implementar o índice pode variar muito, desde uma simples tabela, uma árvore de busca binária (desempenho satisfatório para arquivos de médio porte) ou estruturas de árvore mais complexas (para grandes arquivos).

29 29 Organização indexada

30 30 Árvore de Busca Binária Uma árvore binária de raiz R é denominada árvore de busca binária se: Todo elemento armazenado na sub-árvore esquerda é menor que R Nenhum elemento armazenado na sub- árvore direita é menor que R As sub-árvores (esq. e dir.) também são sub- árvores

31 31 Organização Randômica O arquivo é projetado com dois tipos de áreas de dados: Área principal e área de extensão; É caracterizado por uma relação estabelecida entre a chave de um registro e seu endereço no dispositivo de memória de acesso direto. Conhecido também como arquivo organizado randomicamente. Ao invés de um índice é usada uma função que calcula o endereço do registro a partir do argumento de pesquisa.

32 32 Função de Transformação de Chave Hashing é a função aplicada sobre a chave de pesquisa que irá gerar o endereço do registro Hashing Perfeito: Quando não há colisões de chave (sinônimos). Apenas um acesso físico ao arquivo para localizar o registro Hashing Perfeito Mínimo: Sem colisões e sem espaços vazios no arquivo

33 33 Cálculo do endereço É o estabelecimento da localização de um registro dentro do arquivo através de um algoritmo de randomização ou função com base na chave do registro. Há dois tipos de funções: – Determinística Um endereço para um único valor de chave; – Probabilística Um endereço para um ou mais valores de chaves.

34 34 Endereçamento Direto Cálculo para determinar o endereço: O valor da chave é dividido pela quantidade de registros que podem ser armazenados em uma trilha do disco. O quociente resulta no endereço relativo de trilha e o resto + 1, indica o número do registro na trilha.

35 35 Endereçamento Direto A pesquisa sobre os tipos de arquivos apresentados anteriormente são feitas com base na comparação de chaves. No endereçamento direto ou randômico é utilizado o método de transformação de chave, ou seja, a partir da chave de pesquisa aplica-se uma função de Hash que irá determinar o endereço do registro pesquisado.

36 36 Endereçamento Direto Exemplo de cálculo de Hash Considerar um arquivo contendo registros identificados pelas chaves de nºs 1 a e capaz de armazenar 10 registros por trilha. Para localizar o registro de chave 6.349: / 10 = 634 (resto: 9). Localização relativa: trilha 634 –> reg. 10 (9+1).

37 37 Endereçamento Indireto O cálculo do endereço para incluir um novo registro está sujeito à ocorrência de sinônimos, que são endereços idênticos produzidos a partir de chaves diferentes. Este método também pode deixar de utilizar determinados endereços de memória em função da chave e do algoritmo empregados.

38 38 Métodos de transformação de chaves (Randomização) Método do Resto da Divisão – Este método utiliza no cálculo como divisor o número primo mais próximo do número total de trilhas necessárias para armazenar o arquivo. Método da Análise de Dígitos – Efetua-se estatística, contando o número de vezes que cada uma dos dez algarismos ocorre em cada posição da chave, para identificar quais as posições em que os algarismos se encontram mais uniformemente distribuídos.

39 39 Métodos de transformação de chaves (Randomização) Método do Desdobramento – A chave é dividida em duas ou mais partes e adicionadas para formar o endereço. Método da Transformação da Base – A chave é convertida para outra base. Os dígitos resultantes de mais alta ordem são abandonados, se não forem necessários para compor o endereço.

40 40 Tratamento de sinônimos (colisões) Um sinônimo ou colisão ocorre quando se estabelece um mesmo endereço para valores diferentes de chaves de acesso. Na área principal cada bloco ou registro tem um campo indicador (pointer field) de extensão ou de overflow. Este campo se acha vazio se não existir sinônimos na área de extensão. Algumas técnicas para tratar colisões comuns são endereçamento aberto, encadeamento interior ou exterior.

41 41 Endereçamento Aberto Quando o número de registros a ser armazenado puder ser previamente estimado, então não haverá necessidade de usar apontadores para a área de extensão. Os registros poderão ser armazenados na própria área de dados (alocada previamente) nos lugares ainda vazios. O tratamento de sinônimos pode ser feito por métodos de endereçamento aberto

42 42 Endereçamento Aberto Tratamento de Sinônimos (colisões) Para escolher localizações alternativas para registros sinônimos, a maneira mais simples seria utilizar o hashing linear. Hashing Linear: Aplica-se a transformação de chave para localizar a posição do registro a ser inserido, caso a posição esteja ocupada, passa-se a próxima posição até encontrar uma vazia

43 43 Encadeamento Exterior Tratamento de Sinônimos (colisões) Usado quando o número de registros não é previamente conhecido Consiste em manter listas encadeadas, uma para cada possível endereço-base Um campo para o encadeamento deve ser acrescentado a cada nó

44 44 Encadeamento Interior Tratamento de Sinônimos (colisões) Usado quando o número de registros não é previamente conhecido Cada registro tem um campo a mais para o encadeamento Caso exista mais de um registro para um endereço-base, o primeiro que ocupa a base aponta para um registro no fim da tabela de dispersão e assim por diante

45 45 Operações Acesso a um registro – O acesso seqüencial diretamente sobre a área de dados, só é possível se a função de cálculo do endereço para o armazenamento preserva a ordem dos registros. Alteração de um registro – O registro é lido, modificado e regravado no mesmo endereço, desde que não seja modificado o valor da chave e o tamanho do registro.

46 46 Operações Exclusão de um registro – O registro é acessado e marcado como excluído em um campo adicional do registro. Inclusão de um registro – O registro é incluído na localização resultante da função de cálculo. Se o endereço calculado já contém um registro armazenado a rotina de overflow (tratamento de sinônimos) é ativada para estabelecer um novo endereço.

47 47 Lista Invertida Estrutura auxiliar ao arquivo de dados que permite o acesso rápido a um registro por um campo frequentemente utilizado para pesquisa Para campos que apresentam valores repetidos a lista invertida economiza espaço e torna a pesquisa mais eficiente

48 48 Listas Invertidas Considere o arquivo a seguir: EndMatrNomeCursoCidade 1007FredSistemas informaçãoArcos 2010GilDireitoBambuí 3012JoãoPsicologiaBH 4015AnaSistemas informaçãoArcos 5021MariaSistemas informaçãoLagoa da Prata 6034CéliaSistemas informaçãoBom Despacho 7042LúciaDireitoArcos

49 49 Listas Invertidas Lista invertida por curso: Direito 27 Psicologia 3 Sistemas informação 1456

50 50 Listas Invertidas Lista invertida por cidade: Arcos 14 Bambuí 2 BH 3 Bom Despacho 6 Lagoa da Prata 5

51 51 Exercícios Considerando o arquivo de dados a seguir: Crie um índice básico sobre o campo chave Crie um índice básico sobre o campo nome Crie a árvore de pesquisa binária sobre o campo chave Crie uma lista invertida sobre o campo curso Existe alguma vantagem em se criar uma lista invertida em vez de um índice básico?

52 52 Exercícios


Carregar ppt "1 Organização básica de arquivos. 2 Tipos de arquivos Organização de arquivos Formas básicas de organização de arquivos – Seqüencial – Seqüencial Indexada."

Apresentações semelhantes


Anúncios Google