É SOU - ISAM

ISAM (um acrônimo para método de acesso sequencial indexado ) é um método para criar, manter e manipular arquivos de dados de computador para que os registros possam ser recuperados sequencialmente ou aleatoriamente por uma ou mais chaves . Índices de campos-chave são mantidos para obter uma recuperação rápida dos registros de arquivo necessários em arquivos indexados . A IBM desenvolveu originalmente o ISAM para computadores mainframe , mas as implementações estão disponíveis para a maioria dos sistemas de computador.

O termo ISAM é usado para vários conceitos relacionados:

  • O produto IBM ISAM e o algoritmo que ele emprega.
  • Um sistema de banco de dados em que um desenvolvedor de aplicativos usa diretamente uma interface de programação de aplicativos para pesquisar índices a fim de localizar registros em arquivos de dados. Em contraste, um banco de dados relacional usa um otimizador de consulta que seleciona índices automaticamente.
  • Um algoritmo de indexação que permite acesso sequencial e com chave aos dados. A maioria dos bancos de dados usa alguma variação da árvore B para esse propósito, embora as implementações originais do IBM ISAM e VSAM não o fizessem.
  • Geralmente, qualquer índice de um banco de dados. Os índices são usados ​​por quase todos os bancos de dados.

Organização

Em um sistema ISAM, os dados são organizados em registros que são compostos de campos de comprimento fixo, originalmente armazenados sequencialmente na sequência de teclas. Conjunto (s) secundário (s) de registros, conhecidos como índices , contêm indicadores para a localização de cada registro, permitindo que registros individuais sejam recuperados sem ter que pesquisar todo o conjunto de dados. Isso difere dos bancos de dados de navegação contemporâneos , nos quais os ponteiros para outros registros eram armazenados dentro dos próprios registros. A principal melhoria no ISAM é que os índices são pequenos e podem ser pesquisados ​​rapidamente, possivelmente inteiramente na memória, permitindo que o banco de dados acesse apenas os registros de que precisa. Modificações adicionais nos dados não exigem mudanças em outros dados, apenas na tabela e nos índices em questão.

Quando um arquivo ISAM é criado, os nós de índice são fixos e seus ponteiros não mudam durante as inserções e exclusões que ocorrem posteriormente (apenas o conteúdo dos nós folha muda posteriormente). Como conseqüência disso, se as inserções em algum nó folha excederem a capacidade do nó, novos registros serão armazenados em cadeias de estouro. Se houver muito mais inserções do que exclusões de uma tabela, essas cadeias de estouro podem gradualmente se tornar muito grandes e isso afeta o tempo necessário para a recuperação de um registro.

Bancos de dados relacionais podem ser facilmente construídos em uma estrutura ISAM com a adição de lógica para manter a validade dos links entre as tabelas. Normalmente, o campo que está sendo usado como link, a chave estrangeira , será indexado para uma consulta rápida. Embora seja mais lento do que simplesmente armazenar o ponteiro para os dados relacionados diretamente nos registros, também significa que as alterações no layout físico dos dados não exigem nenhuma atualização dos ponteiros - a entrada ainda será válida.

O ISAM é simples de entender e implementar, pois consiste principalmente no acesso direto a um arquivo de banco de dados. A desvantagem é que cada máquina cliente deve gerenciar sua própria conexão para cada arquivo que acessa. Isso, por sua vez, leva à possibilidade de inserções conflitantes nesses arquivos, levando a um estado de banco de dados inconsistente. Para evitar isso, algumas implementações ISAM fornecem funcionalidade de bloqueio de registro individual ou de arquivo inteiro . O bloqueio de vários registros corre o risco de conflito, a menos que um esquema de prevenção de conflito seja estritamente seguido. Os problemas de bloqueio e conflito são normalmente resolvidos com a adição de uma estrutura cliente-servidor que empacota as solicitações do cliente e mantém os pedidos. Os sistemas de gerenciamento de transações ACID completos são fornecidos por algumas implementações cliente-servidor ISAM. Esses são os conceitos básicos por trás de um sistema de gerenciamento de banco de dados (DBMS), que é uma camada de cliente sobre o armazenamento de dados subjacente.

O ISAM foi substituído na IBM por uma metodologia chamada VSAM (método de acesso de armazenamento virtual). Ainda mais tarde, a IBM desenvolveu o SQL / DS e o DB2 que, a partir de 2004, a IBM promove como seu principal sistema de gerenciamento de banco de dados . VSAM é o método de acesso físico usado no DB2.

OpenVMS

O sistema operacional OpenVMS usa o sistema de arquivos Files-11 em conjunto com RMS ( Record Management Services ). O RMS fornece uma camada adicional entre o aplicativo e os arquivos no disco que fornece um método consistente de organização de dados e acesso em várias linguagens 3GL e 4GL. O RMS oferece quatro métodos diferentes de acesso a dados; acesso sequencial ao número de registro relativo, acesso ao endereço do arquivo de registro e acesso indexado.

O método de acesso indexado de leitura ou gravação de dados somente fornece o resultado desejado se de fato o arquivo for organizado como um arquivo ISAM com as chaves apropriadas previamente definidas. O acesso aos dados por meio da (s) tecla (s) previamente definidas é extremamente rápido. São suportadas várias chaves, chaves sobrepostas e compressão de chaves nas tabelas de hash. Um utilitário para definir / redefinir chaves em arquivos existentes é fornecido. Os registros podem ser excluídos, embora a "coleta de lixo" seja feita por meio de um utilitário separado.

Considerações de design

O ISAM foi desenvolvido em uma época em que a memória do computador era um recurso escasso. Conseqüentemente, a IBM projetou o sistema para usar uma quantidade mínima de memória. A compensação era que o canal de entrada / saída , a unidade de controle e o disco eram mantidos mais ocupados. Um arquivo ISAM consiste em uma coleção de registros de dados e dois ou três níveis de índice. O índice da trilha contém a chave mais alta para cada trilha do disco no cilindro que indexa. O índice do cilindro armazena a chave mais alta em um cilindro e o endereço do disco do índice de trilha correspondente. Um índice mestre opcional , geralmente usado apenas para arquivos grandes, contém a chave mais alta em uma trilha de índice de cilindro e o endereço de disco desse índice de cilindro. Depois que um arquivo é carregado, os registros de dados não são movidos; os registros inseridos são colocados em uma área de estouro separada . Para localizar um registro por chave, os índices no disco são pesquisados ​​por um programa de canal auto-modificador complexo . Isso aumentou o tempo ocupado do canal, unidade de controle e disco. Com o aumento dos tamanhos de memória física e virtual em sistemas posteriores, isso foi visto como ineficiente e o VSAM foi desenvolvido para alterar a compensação entre o uso da memória e a atividade do disco.

O uso de programas de canal auto-modificáveis ​​pelo ISAM posteriormente causou dificuldades para o suporte do CP-67 do OS / 360 , uma vez que o CP-67 copiou um programa de canal inteiro para a memória fixa quando a operação de E / S foi iniciada e converteu endereços virtuais em endereços reais.

Implementações de estilo ISAM

Veja também

Referências