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

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

1 ARQUIVOS INDEXADOS POR CHAVES SECUNDÁRIAS. 2 CONCEITO Na maioria das organizações de arquivos, dada uma chave primária, recupera-se um registro. No.

Apresentações semelhantes


Apresentação em tema: "1 ARQUIVOS INDEXADOS POR CHAVES SECUNDÁRIAS. 2 CONCEITO Na maioria das organizações de arquivos, dada uma chave primária, recupera-se um registro. No."— Transcrição da apresentação:

1 1 ARQUIVOS INDEXADOS POR CHAVES SECUNDÁRIAS

2 2 CONCEITO Na maioria das organizações de arquivos, dada uma chave primária, recupera-se um registro. No processamento com chaves múltiplas, procura-se recuperar todos os registros, que possuam uma particular combinação de valores de atributos. Podem ocorrer vários registros com o mesmo valor de atributo (chave secundária). Um índice secundário indica uma lista de registros que possuem um dado valor de chave secundária. Estes índices permitem a consulta combinada utilizando interseção e união de conjuntos de listas.

3 3 CONCEITO (cont) Índices secundários permitem rápida recuperação de registros com certo valor de atributo. Contudo, índices ocupam espaços e exigem grande esforço de atualização. Deve-se estudar, caso a caso, a conveniência de adoção de índices secundários.

4 4 Arquivos com Listas Considere-se a associação de um ponteiro a cada chave secundária indexada. O ponteiro indica o próximo registro com o mesmo valor de chave secundária. O arquivo é "atravessado" por um grande número de listas, teias ou costuras.

5 5 Arquivos com Listas (cont.) O índice para um atributo contém uma entrada para cada valor desse atributo que ocorre no arquivo. Cada entrada do índice funciona como cabeça da lista, apontando um registro com esse valor de atributo

6 6 Composição de Índices Secundários Cabeçalho do Índice Listas do Índice Índice Secundário

7 7 Cabeçalho do Índice Listas do Índice Índice Secundário Cabeçalho de Índice Secundário Atributos do cabeçalho de Índice Secundário Valor do atributo chave secundária Comprimento da lista com esse valor de chave secundária Endereço do primeiro registro da lista com esse valor de chave secundária Endereço do último registro da lista com esse valor de chave secundária

8 8 Cabeçalho de Índice Secundário

9 9

10 10 Cabeçalho do Índice Listas do Índice Índice Secundário Listas de Índice Secundário Composição dos endereços Bucket (obrigatório) Slot (desejável) Arquivo (necessário caso o arquivo principal tenha trasbordamento em arquivo separado)

11 11 Listas de Índice Secundário (cont.)

12 12 Listas de Índice Secundário (cont.)

13 13 Exemplo Um arquivo de produtos de "software" contendo os atributos fornecedor, nome do produto, tipo, plataforma de utilização cuja chave primária é nome do produto, deve ser indexado pela chave secundária fornecedor. Solicita- se exibir a configuração do arquivo e do respectivo índice.

14 14 Cabeçalho do Índice Listas do Índice Índice Secundário Exemplo (cont.) Índice de fornecedor

15 15 Exemplo (cont.) Arquivo com índices (parte)

16 16 Tipos de Arquivos com Índices Secundários Arquivos Multilistas Arquivos Invertidos

17 17 Arquivos Multilistas

18 18 Arquivos Multilista Multilistas Nos arquivos com índice secundário a estrutura de índices possui uma entrada para o índice de uma lista no arquivo principal Pode-se considerar uma organização na qual a estrutura de índices contenha uma entrada para cada í-ésimo registro da lista com o mesmo valor de atributo. Diz-se que esta organização é uma organização multilista de tamanho controlado, i, de lista.

19 19 Arquivos Multilista (cont.) Os arquivos nos quais i = infinito são chamados simplesmente de "multilistas". Arquivos para os quais i = 1 são chamados invertidos. Os arquivos multilistas apresentam como vantagem a extrema simplicidade da estrutura de índices e como desvantagem o processamento lento e a inadequação para a aceitação de consultas complexas.

20 20 Arquivos Multilista Arquivo Principal Arquivo de índices Cabeçalho do Índice Listas do Índice

21 21 Listas de Índice Secundário Atributos do registro de Listas de Índice Secundário para Arquivos Multilista Endereço do próximo registro da lista com esse valor de chave secundária (no arquivo principal) Endereço do registro anterior da lista com esse valor de chave secundária (no arquivo principal)

22 22 Geração de Arquivo Multilista Arquivos multilistas são criados a partir de arquivos seqüenciais em um procedimento de seis passos O algoritmo a ser mostrado é creditado a Lefkowitz e utiliza a seguinte notação : ED = endereço de disco. Numeração dos registros em relação ao início do arquivo CP = chave primária dos registros do arquivo. CA = chave de acesso. Atributo chave secundária que criou o multilista. CL = comprimento de lista. Número de registros com o mesmo valor de chave de acesso. EC = endereço de cabeça. ED do primeiro registro com um dado valor de chave de acesso. INC = itens não chave. Atributos de registro que não influem no processamento de multilista. P = ponteiro para o sucessor na multilista da respectiva chave de acesso

23 23 Geração de Arquivo Multilista (cont.) Na hipótese de ocorrência de n atributos para os quais se quer multilistas são criados 4*n+1 arquivos temporários de trabalho, n arquivos de índices e um arquivo de saída. A composição de campos do arquivo original é a seguinte, lembrando que os campos sombreados são aqueles pelos quais o arquivo está classificado:

24 24 Geração de Arquivo Multilista (cont.) composição de campos do arquivo original composição de campos do arquivo multilista obtido

25 25 Geração de Arquivo Multilista (cont.) Haverá um arquivo de índices para cada chave de acesso. A composição de campos dos registros de cada um deles é a seguinte

26 26 Desenvolvimento do algoritmo Arquivo original : Arquivo A1 ( 1 arquivo)

27 27 1º passo : Atribuição dos endereços de disco Os itens não chave são descartados e cria-se um atributo endereço de disco que recebe numeração seqüencial. Arquivo resultante : A2 ( 1 arquivo)

28 28 2º passo : Geração das triplas ED, CP, CA O arquivo A2 é decomposto em tantos arquivos quantas são as chaves de acesso. Cada arquivo obtido conterá o endereço de disco, a chave primária e uma chave de acesso. Arquivos resultantes : A3 ( n arquivos)

29 29 3º passo : Classificação por chave de acesso Cada um dos arquivos A3 é classificado pela chave de acesso correspondente. Arquivos resultantes : A4 ( n arquivos)

30 30 4º passo : Geração dos índices e inserção dos ponteiros Cada um dos arquivos A4 é processado gerando dois arquivos : um arquivo de índices, A5, e um arquivo com endereço de disco, chave primária, chave de acesso e um ponteiro para o sucessor na multilista da respectiva chave de acesso. Arquivos resultantes : A5 ( n arquivos) A6 ( n arquivos)

31 31 5º passo : Classificação por chave primária Cada um dos arquivos A6 é classificado pela chave primária. Arquivos resultantes : A7 ( n arquivos)

32 32 6º passo : Montagem do arquivo de saída O arquivo de entrada A1 e todos os arquivos A7 sofrem um processo de junção e descarta-se o endereço de disco. Os arquivos de índices são os arquivos A5 gerados no 4 0 passo do algoritmo. Arquivos resultantes : A8 ( 1 arquivo)

33 33 Exemplo de Multilista Considere-se um arquivo tal como o que se segue, e que se deseja utilizar como entrada para obtenção de um arquivo multilista com chaves de acesso ENDEREÇO e PERÍODO. Pede-se esboçar a aplicação do algoritmo de Lefkowitz, sendo NÚMERO a chave primária

34 34 Exemplo de Multilista

35 35 1° passo - Atribuição dos ED

36 36 2° passo - Geração das triplas CA, ED, CP

37 37 2° passo - Geração das triplas CA, ED, CP (cont.)

38 38 3° passo - Classificação pela chave de acesso

39 39 3° passo - Classificação pela chave de acesso (cont.)

40 40 4° passo - Geração dos índices e dos arquivos

41 41 4° passo - Geração dos índices e dos arquivos (cont. índices)

42 42 4° passo - Geração dos índices e dos arquivos (cont. arquivos)

43 43 4° passo - Geração dos índices e dos arquivos (cont. arquivos 2)

44 44 5° passo - Classificação por chave primária

45 45 5° passo - Classificação por chave primária (cont.)

46 46 6 ° passo - Junção de A1 e de todos os A7

47 47 Arquivos Invertidos

48 48 Listas de Índice Secundário Atributos do registro de Listas de Índice Secundário para Arquivos Invertidos Endereço do registro da lista com esse valor de chave secundária (no arquivo principal) Valor da chave primária do registro apontado no arquivo principal (par poder classificar a lista) Endereço do próximo registro da lista com esse valor de chave secundária (no arquivo de listas) Endereço do registro anterior da lista com esse valor de chave secundária (no arquivo de listas)

49 49 Arquivos Invertidos Arquivo Principal Arquivo de índices Cabeçalho do Índice Listas do Índice

50 50 Arquivos Multilista Arquivo Principal Arquivo de índices Cabeçalho do Índice Listas do Índice

51 51 Arquivos Invertidos Arquivo Principal Arquivo de índices Cabeçalho do Índice Listas do Índice

52 52 Arquivos invertidos Arquivos Invertidos A organização invertida é baseada na mudança de papéis entre registro e atributos. Pode-se considerar que o arquivo é uma função que, dado um endereço, retorna os atributos do registro contido naquele endereço. arquivo(endereço) (atributo,valor), (atributo,valor), (atributo,valor),... Os arquivos de índice representam a inversa dessa função pois, dado um par, recupera-se uma lista de endereços de registros com o valor especificado do atributo, ou arquivo(atributo,valor) endereço, endereço,.... Um arquivo de índices que identifica cada registro com um dado valor de atributo é considerado um arquivo invertido pois funciona como a inversa da função "Arquivo Principal". A cada um dos valores de chave de acesso presente no arquivo é associada uma lista de identificação ou lista invertida. Na organização invertida, a cada valor de chave de acesso está associado não apenas um registro e sim um conjunto de registros que possui aquele valor de chave.

53 53 Inversões e Listas Invertidas O conjunto de listas invertidas associadas a um determinado atributo é chamado de inversão por aquele atributo. Um arquivo pode ter uma ou mais inversões. O número de listas invertidas em cada inversão é igual ao número de diferentes valores daquele atributo existente no arquivo. O arquivo de índices contém inversões, cada inversão contém diversas listas invertidas, cada lista invertida contém um "header" (que identifica o valor do atributo correspondente a esta lista e o comprimento da lista) e a lista dos endereços de registros que contém este valor de atributo

54 54 Grau de Inversão Chama-se grau de inversão de um arquivo a porcentagem de atributos indexados por inversão. Um arquivo com todos os atributos indexados tem 100% de grau de inversão. Os sistema de informação comerciais são sistemas de recuperação de referências (ou documentos).As referências são armazenadas junto com palavras chave indicadoras de seu conteúdo. Os usuários solicitam informações sob a forma de expressões "booleanas", do tipo : quais as referências existente sobre "tendinite" and ("teclado" or "terminal"). Praticamente todos esses sistemas utilizam arquivos invertidos.

55 55 Implementação das inversões As representações das listas invertidas são feitas pelos processos convencionais de representação de listas, ou seja, por contigüidade, por encadeamento e por mapa de bits.

56 56 Implementação das inversões por contigüidade

57 57 Implementação das inversões por encadeamento

58 58 Representação por Mapa de Bits Mapas de bits são arrays bidimensionais nos quais cada linha corresponde a um registro do arquivo principal e cada coluna corresponde a um dos valores do atributo que ocorrem no arquivo principal. Cada mapa de bits corresponde a um atributo, cada bit 1 indica que o registro correspondente pertence à lista de registro com o valor de atributo correspondente à coluna onde se encontra o bit 1.

59 59 Representação por Mapa de Bits

60 60 Mais uma maneira de implementar listas : Grafos Pode-se economizar espaço em estruturas encadeadas de índices combinados os elementos da lista que apontam para um mesmo registro do arquivo principal. Cada registro do arquivo principal é representado em uma inversão por um simples nó, que pode pertencer a tantas lista quantos são os atributos indexados, formando-se assim uma estrutura de grafo. Cada nó destes grafos conterá : - um ponteiro para o arquivo principal - para cada atributo indexado : um ponteiro para o nó proprietário da lista um ponteiro para o próximo nó com o mesmo valor de atributo

61 61 Mais uma maneira de implementar listas : Grafos

62 62 Mais uma maneira de implementar listas : Grafos Para exemplificar um nó genérico de um grafo que represente listas pode- se utilizar o exemplo de produtos de "software" do item 7.2. Do arquivo do exemplo são exibidos os nós que correspondem aos registros 1, 3 e 4, como se vê na figura 7.4.

63 63 Exemplo de Inversões

64 64 Inversão por Departamento usando encadeamento

65 65 Inversão por Profissão usando encadeamento

66 66 Inversão por Profissão usando Mapas de Bits

67 67 Inversão por Departamento usando Mapas de Bits

68 68 Algoritmo de implementação de Listas Invertidas O algoritmo do Livro mostra uma implementação de inversão de arquivos na qual se considera a inversão de um arquivo de acesso direto implementada por encadeamento, com as seguintes hipóteses: O arquivo de acesso direto possui área de transbordamento separada; O número de "buckets" na área primária do arquivo de acesso direto é igual a n_buckets; O número de "slots" de cada "bucket" na área primária é igual a n_slots; O tratamento de transbordamento é feito por encadeamento em área secundária; Os buckets da área secundária só possuem um "slot" cada; O registro a ser inserido na lista invertida está gravado no "slot" de posição slot_corrente do bucket de endereço bucket_corrente; O arquivo de inversões será implementado por listas duplamente encadeadas; O número de registros do arquivo de inversões é igual a n_regs_inversão; O número máximo previsto de distintos valores para a chave secundária é tamanho_header; O algoritmo de alocação de registros do arquivo de inversões utiliza preferencialmente registros reaproveitados de exclusões anteriores (mantidos em uma pilha). Não havendo possibilidade de utilização de registros reaproveitados, são alocados registros ainda não utilizados mantidos em uma fila.


Carregar ppt "1 ARQUIVOS INDEXADOS POR CHAVES SECUNDÁRIAS. 2 CONCEITO Na maioria das organizações de arquivos, dada uma chave primária, recupera-se um registro. No."

Apresentações semelhantes


Anúncios Google