You are on page 1of 7

TPICOS ESPECIAIS EM ANLISE DE SISTEMAS

Organizao de arquivos
Por que ver sistema de arquivos?
O sistema de arquivos quem realmente se responsabiliza por guardar os dados que um aplicativo ou mesmo o banco de dados gerencia. No tarefa de um administrador de banco de dados escolher entre um ou outro esquema de organizao, mas o seu entendimento nos ajuda a compreender como os dados efetivamente so guardados. Alm disto, linguagens de desenvolvimento ainda bastante utilizadas como o Clipper no usam gerencador de banco de dados, mas acessam diretamente um arquivo guardado no disco. Veremos tambm que a escolha de um meio de armazenamento implica em uma organizao de arquivos especfica devido s suas limitaes. Dispositivos como fitas magnticas permitem apenas o uso seqencial enquanto discos rgidos por exemplo permitem acesso aleatrio (a qualquer parte do arquivo).

Meios de armazenamento
Como sabemos de IPD (Introduo ao Processamento de Dados), para que o processador possa trabalhar com alguma informao, ela precisa estar na memria do computador. Esta memria (RAM) um dispositivos que depende da alimentao do computador, ou seja, quando o computador desligado, o contedo desta memria apagado. Para guardar as informaes, portanto, devemos recorrer a um meio externo que independente de o computador estar ligado ou no elas permaneam armazenadas. Alguns aspectos devem ser considerados na hora de se escolher um dispositivo de armazenamento: Capacidade: total de dados que pode ser guardado. Portabilidade: permite o transporte para que os dados sejam guardados em um outro local. Mtodo de acesso: como os dados sero lidos do dispositivo. Taxa de transferncia: indica o quo rpido o computador troca informaes com o dispositivo. Compartilhamento: capacidade que o dispositivo tem de ser compartilhado. Dispositivos de acesso seqencial no so indicados para serem compartilhados. Fitas magnticas A fita magntica foi o primeiro meio externo de armazenamento a ser largamente utilizado e hoje ainda usado principalmente para backup e arquivamento de dados. Embora o preo de uma fita seja menor que o disco, o acesso aos dados muito mais lento pois as informaes so lidas seqencialmente desde o incio. Portanto o uso da fita no aconselhvel para o ambiente de processamento online. Disco flexvel (disquete) O disco flexvel um dispositivo externo ainda muito utilizado para backup e transferncia de arquivos entre computadores. um dispositivo muito barato que possui um acesso muito lento, tambm no recomendado para uso em produo. Com o advento de discos removveis de maior capacidade e taxas de transferncia maiores, o disquete est sendo deixado de lado sendo que em alguns computadores eles j foram abolidos.

Pgina: 1

TPICOS ESPECIAIS EM ANLISE DE SISTEMAS


Disco rgido (Winchester ou HD) O disco rgido um dispositivo externo que pode ser usado tanto online como offline. Devido sua grande capacidade, e taxa de transferncia alta, ele usado no ambiente de produo. Para se ter uma idia da importncia deste dispositivo os Sistemas Operacionais utilizam-no para armazenamento e tambm como uma extenso da memria principal do computador. Assim se um programa grande precisa ser executado, o SO pega parte da memria e guarda no HD liberando a memria principal para o programa. Este processo de troca entre memria e disco se chama swap. O processador pode se comunicar com o disco rgido atravs de duas interfaces: IDE ou SCSI. Os discos IDE so os mais comumente utilizados pelos computadores pessoais, pois oferece uma boa taxa de transferncia a um preo relativamente baixo. J a interface SCSI oferece maiores velocidades bem como a capacidade de ligar mais perifricos simultaneamente. Em servidores de banco de dados, onde o trabalho com informaes armazenadas em disco freqente, recomenda-se o uso de um disco SCSI. Discos ticos (CD, DVD) Os discos ticos tm grande capacidade de armazenamento, porm o tempo de acesso menor que o disco rgido. Eles so utilizados para armazenamento de informaes permanentes para o caso de mdias no gravveis (como CD-ROM) ou como dispositivos de backup para mdias regravveis (como CD-RW). Assim como os discos rgidos elas podem ser ligados tanto interface IDE como SCSI. Discos removveis (Zip drive, Jazz drive) Tambm tm uma grande capacidade de armazenamento e tempo de acesso pequeno, porm no to rpido como um HD. So timos dispositivos para backup e transferncia de arquivos entre computadores, sendo candidatos naturais substituio dos discos flexveis. A grande desvantagem est no preo que ainda muito salgado.

Mtodo de acesso
Um arquivo organizado em uma seqncia de registros os quais so mapeados em blocos no disco. Para acessar estes registros gravados no arquivo, podemos percorrer um a um desde o incio at encontrar o registro desejado, podemos acessar diretamente um registro especfico do arquivo e podemos tambm acessar um registro baseado em uma tabela auxiliar. Dessa forma podemos dividir os arquivos em: 1. Seqencial: os registros so todos percorridos desde o incio at que se encontre o registro desejado. 2. Direto: um determinado registro em qualquer posio do arquivo pode ser acessado diretamente. 3. Indexado: existe uma tabela auxiliar indice que contm as localizaes dos registros no arquivo principal. A escolha de um ou outro mtodo de acesso vai depender muito do tipo de consulta e processamento que queremos ter para os dados lidos do arquivo. Podemos efetuar consultas a um arquivo de dados de trs formas:

Consulta simples: um valor definido fornecido para consulta e o arquivo pesquisado para que este valor seja encontrado. Ex.: estado='GO'. Pgina: 2

TPICOS ESPECIAIS EM ANLISE DE SISTEMAS

Consulta por faixa de valores: fornecido uma faixa de valores para os quais o registro deve ser procurado. Ex.: data entre '01/01/2003' e '15/01/2003'

Consulta booleana: consiste de uma combinao de consultas simples, faixa ou de ambas. Ex.: estado='GO' e data entre '01/01/2003' e '15/01/2003'

A forma de processamento que queremos para os dados guardados em arquivo tambm influencia na escolha do modo de acesso. Processamentos do tipo online e tempo real requerem um tempo de resposta pequeno, o que implica na necessidade das informaes estarem disponveis o mais rpido possvel. Em um sistema de reservas de passagens a informao acerca da disponibilidade de lugares deve ser imediatamente vista e deve refletir a situao naquele exato momento. Um acesso seqencial contra-indicado neste tipo de processamento. Processamentos do tipo batch (em lote), onde os dados so processados em seqencia e no requerem tempo de resposta imediato, geralmente tem uma liberdade maior para estabelecer uma escolha entre os mtodos de acesso. Um relatrio de clientes para mala direta um processamento por natureza seqencial, pois todos os clientes devem ser processados. Podemos ter tambm uma mescla de processamento online e batch. Operaes bancrias so um exemplo. Durante o dia, os clientes movimentam sua conta efetuando depsitos, saques ou pagamentos. Estas transaes so feitas online, o que requer que elas estejam disponveis assim que executadas. O banco pode resolver este problema mantendo dois arquivos: um arquivo mestre contendo os lanamentos da conta e um arquivo de transaes o qual guarda as transaes do dia. O processamento do arquivo de transaes feito online e ao final do dia, as transaes so incorporadas ao arquivo mestre num processamento batch.

Arquivo seqencial
O mtodo de acesso seqencial o mais conhecido e mais freqentemente utilizado. Num arquivo seqencial, a ordem lgica e fsica dos registros armazenados a mesma. Como os registros so armazenados um aps o outro em seqencia, a leitura de um registro n requer que os n1 registros anteriores tambm sejam lidos. Historicamente o mtodo seqencial associado fita magntica devido natureza seqencial do meio de armazenamento, porm possvel gravar arquivos seqenciais em meios de acesso direto como discos. O principal uso dos arquivos seqenciais o processamento em srie ou seqencial de registros. Por exemplo um relatrio de produtos ou totalizao de contas, que requer a leitura de todo o arquivo em seqencia, pode ser beneficiado com o uso de arquivo seqencial. Em mdia metade do arquivo deve ser lida para encontrar um determinado valor. Um arquivo seqencial pode ser ordenado por um determinado valor. Num arquivo seqencial ordenado, cada registro tem um item de dado (campo) chave que serve para manter a ordenao do arquivo. Nos arquivos sem ordenao por uma chave, a ordem a de gravao, ou seja, eles esto armazenados na ordem em que foram adicionados no arquivo. Para adicionar registros em um arquivo seqencial sem chave, basta incluir o registro no final do arquivo. Quando o arquivo ordenado por uma chave, temos um problema: como manter a ordem do arquivo? A nica forma de inserir um registro e manter a ordenao fazer uma cpia do arquivo at o ponto de insero, inserir o novo registro e copiar o restante do arquivo. Devido ao grande overhead gerado por esta insero, geralmente os registros a serem inseridos so agrupados em lotes (ordenado) e depois feito um processamento no arquivo original para inserir todos os registros de uma s vez. Outra alternativa inserir os registros ao final do arquivo e depois classific-los na seqencia adequada. Pgina: 3

TPICOS ESPECIAIS EM ANLISE DE SISTEMAS


Remover um registro do arquivo (ordenado ou no) requer que os registros restantes sejam juntados para ocupar o espao do registro removido. Para fazer isto basta fazer uma cpia do arquivo sem os registros removidos. Uma alternativa para reduzir o overhead marcar os registros a serem removidos e posteriormente fazer uma cpia do arquivo removendo os registros marcados. A atualizao de um registro simples no arquivo sem chave: basta ler o registro, alter-lo e grav-lo novamente. J arquivos ordenados mais uma vez vo apresentar problemas. Se o valor da chave de ordenao for alterado, todos os registros adjacentes devem ser movidos para manter a classificao do arquivo. Assim como na insero, pode-se agrupar as atualizaes em lotes e depois em um nico processamento no arquivo original faz-se a atualizao de todos os registros alterados.

Arquivo de acesso direto


No mtodo de acesso direto, existe uma relao direta entre a chave de ordenao e o endereo no dispositivo de armazenamento. Os registros so lidos e atualizados atravs do uso desta relao. Arquivos com acesso direto permite a busca de registros individuais com um tempo de resposta bem melhor pois para um dado registro na posio n no necessrio ler os n-1 registros. Na verdade o ponteiro do arquivo movido para a posio onde o registro est armazenado e ento feita a leitura do registro. O endereo usado para localizar um registro pode ser absoluto ou relativo. O endereo absoluto significa o endereo real do registro no arquivo. Se indicarmos o endereo absoluto 4, isto significa que o quarto registro armazenado no arquivo o que ser processado. O endereo relativo, significa o deslocamento a partir da posio atual do arquivo. Se o ponteiro estiver no registro 4 e indicarmos um endereo +4, o ponteiro ser movido 4 posies adiante e assim o registro 8 ser processado. Se indicarmos um endereo -2, o ponteiro ser movido trs posies para trs e dessa forma o registro 3 ser processado.

Arquivo Indexado
Podemos fazer uma analogia de um arquivo com um livro. Logo no incio, existe um ndice onde esto relacionados os tpicos e a pgina onde cada tpico est localizado. A idia do arquivo indexado justamente esta: existe um arquivo auxiliar (ndice) que contm as chaves e o endereo do registro correspondente no arquivo principal (dados). Num banco de dados, para cada arquivo de dados, podemos ter um ou mais ndices, dependendo dos valores de chave para ser utilizados. Um arquivo de clientes poderia ser classificado por ordem alfabtica ou pelo nmero do CPF do cliente. Para satisfazer as duas chaves, seriam criados ento dois arquivos de ndices: um tendo o nome e o outro tendo o CPF como chave de classificao. O arquivo de ndice pode ser criado de duas formas:

ndice denso: existe um registro no arquivo de ndices para cada valor de chave no arquivo principal.

ndice esparso: registros de ndice so criados para apenas alguns registros. Outros valores de chave so procurados a partir do registro de ndice mais prximo.

O ndice denso consegue um tempo de resposta menor para localizar um valor de chave qualquer, porm o ndice esparso oferece a vantagem de ocupar menos espao e precisa de menos manuteno para incluses e excluses. Caso o arquivo de ndices seja pequeno o ideal que o mantenhamos na memria Pgina: 4

TPICOS ESPECIAIS EM ANLISE DE SISTEMAS


principal onde o acesso muito mais rpido que no disco. Assim, caso o arquivo de ndices cresca a ponto de no caber na memria, poderiamos trat-lo como um arquivo seqencial normal e construiramos um novo ndice esparso no arquivo de ndices. Dessa forma para pesquisar um valor de chave, procuramos no ndice externo que contm um apontador para um bloco do arquivo de ndices, lemos o bloco para encontrar o bloco no arquivo principal que contm a chave de busca.

ndice externo

ndice entrada

Blocos de dados

Indexao esparsa em dois nveis

Arquivo indexado em rvore B+


A organizao em arquivo seqencial indexado, apresenta uma queda de desempenho medida que o arquivo vai crescendo. claro que uma reindexao consegue resolver o problema, mas o custo bastante alto pois um processo que demanda tempo e o sistema deve estar parado para a reindexao. A estrutura em rvore B+ a mais utilizada pelos SGBD (Sistemas Gerenciadores de Banco de Dados) pois, apesar de perder eficincia nas incluses e excluses, no requer uma reindexao constante do arquivo. A rvore B+ uma rvore de pesquisa de caminho mltiplo e de crescimento restrito. Uma rvore B+ de ordem m deve satisfazer as seguintes propriedades: 1. Todo n tem no mximo m descendentes. 2. Todo n, exceto a raiz e os ns terminais tem no mnimo m/2 (arredondando para mais) descendentes. 3. A raiz tem pelo menos 2 descendentes a menos que seja n terminal. 4. Todos os ns terminais aprecem no mesmo nvel e no tem nenhuma informao. 5. Um n interno com k descendentes contm k-1 valores de chave. Aplicando as propriedades acima, temos que uma rvore B+ de ordem 5 deve ter entre 5/2=3 e 5 descendentes contendo 2, 3 ou 4 valores de chave. A raiz pode conter de 1 a 4 valores de chave. Os valores de chave de um n aparecem ordenados e o nmero de descendentes exatamente maior em uma unidade que o nmero de valores de chave do n. A pesquisa se inicia na raiz e uma busca feita nos seus valores de chave. Se a busca tiver xito, o valor localizado, seno existem dois valores de chave no n entre os quais o valor procurado est. Dessa forma a subrvore entre estes dois valores de chave pesquisada. O processo repetido a cada n e se chegar a um n terminal sem encontrar o valor de chave procurado, a Pgina: 5

TPICOS ESPECIAIS EM ANLISE DE SISTEMAS


pesquisa no teve xito. A atualizao na rvore B relativamente simples: cada n terminal corresponde a um lugar onde o novo valor de chave pode ser inserido. Se o n j contiver m valores de chave, ento ele fracionado em dois ns e o valor de chave Km/2 inserido no n pai. Se o n pai tambm estiver completo, ele dividido e assim sucessivamente at a raiz. Caso a raiz tenha que ser dividida, uma nova raiz criada contendo o valor de chave nico Km/2 . A rvore neste caso cresceu um nvel. Assim uma rvore B cresce para cima a partir do topo e no para baixo a partir da base. A retirada de um valor mais complicada que a insero. A retirada de um valor de um n pode deix-lo muito vazio (ocorre um underflow). Neste caso o irmo examinado e os valores de chave do irmo movido at os dois ns apresentarem aproximadamente o mesmo nmero de valores de chave. Este movimento no ocorre diretamente entre os irmos, mas o valor de chave anterior do no pai movido para o n em underflow e o valor da chave anterior do irmo movido para o pai. Embora estas operaes de incluso e excluso nas rvores B+ sejam complicadas, elas requerem relativamente poucas operaes. possvel demonstrar que o nmero de operaes para o pior caso de incluso ou excluso proporcional ao logaritmo do nmero de chaves de pesquisa. Esta velocidade faz com que esta tcnica de indexao seja freqentemente usada na implementao de banco de dados.

Hashing
O princpio que baseia o hashing que embora tenhamos um conjunto grande (talvez infinito) de chaves de pesquisa possveis, o conjunto de chaves armazenadas no banco de dados muito menor, ou seja, apenas uma parte de todas as chaves possveis utilizada. Dessa forma, implementada uma funo de hashing que transforma os valores de chave em endereos. Um determinado endereo no representa um nico registro, mas um conjunto de registros nos quais a aplicao da funo de hash em suas chaves de pesquisa, resultam em um mesmo endereo. Os registros nesta situao (conflitantes) podem ser organizados em uma lista encadeada a partir do endereo obtido. A funo hash deve ser tal que os conflitos de endereos ocorram de forma balanceada, ou seja, cada endereo tenha aproximadamente a mesma quantidade de registros pendurados nele. A pior funo de hash mapeia todos os valores de chave para um nico endereo. Uma funo de hash ideal coloca um endereo para cada valor de chave. A insero bastante simples, basta aplicar a funo de hash para encontrar o endereo e se houver conflito, acrescenta o registro ao final da lista. A deleo tambm bem simples, bastando remover o registro de onde ele est armazenado. A funo de hash pode ser esttica ou dinmica. A funo esttica deve ser definida na criao do banco de dados e no pode ser alterada medida que dados so acrescentados ou removidos. Existem algumas formas de resolver este problema, mas nenhuma delas uma soluo satisfatria. A funo de hash dinmica muda com o tamanho do banco de dados, mas o seu problema a dificuldade na implementao.

Pgina: 6

TPICOS ESPECIAIS EM ANLISE DE SISTEMAS

Exerccios
1. Comente sobre a importncia do sistema de arquivos para o administrador de banco de dados 2. Na revista info de Fevereiro/2003, seo Tira Teima, tem uma comparao entre um CD-RW externo e um ZIP 750. Comente a reportagem e indique qual a melhor escolha para uma empresa de porte mdio que necessita de um sistema robusto, porm simples para efetuar backup, obviamente justificando sua indicao. 3. Alm dos dispositivos apresentados na apostila, existem outros interessante, como smart cards, e at dispositivos que se parecem com chaveiros. Faa uma pesquisa (internet, revistas, catlogos, lojas on-line, fabricantes) e cite as caractersticas (capacidade, velocidade, comunicao, preo) de alguns destes dispositivos (pelo menos 3). 4. Um problema que ocorre no sistema de arquivo a fragmentao. Pesquise porque ela acontece e como o sistema operacional gerencia um arquivo fragmentado. 5. Considere um sistema para registro de ponto, onde um funcionrio chega no computador e registra suas entradas e sadas dirias. Este sistema suporta um processamento seqencial? Justifique. 6. Considere agora um sistema para emisso de etiquetas de endereo (mala direta) ordenada por cidade. O processamento seqencial indicado? Explique. 7. Num supermercado, existe um depsito onde as mercadorias so armazenadas antes de ir para a prateleira. O estoque das prateleiras reposto uma vez durante o dia antes do incio do expediente e com quantidade suficiente para o dia inteiro de venda. Antes de abastecer porm as quantidades devem ser atualizadas e conferidas. Depois de abastecidas as prateleiras, o supermercado aberto e as vendas so realizadas durante todo o dia. Comente como seria o processamento (on-line, batch) de cada um destes processos (atualizao, conferncia, venda). 8. Explique o problema da incluso de registros em um arquivo de clientes seqencial em que os registros esto em ordem alfabtica. 9. Explique como um ndice denso pode melhorar a performance de resposta em pesquisas. 10.Explique por que o ndice esparso resulta em economia de espao. Para voc aprender mais: Considere um arquivo de produtos em que os registros tm a seguinte estrutura: registro produto inteiro: cdigo; string: descrio; inteiro: quantidade; real: preo; fim registro; Implemente um programa simples em Pascal (que todos viram) para manipular um arquivo seqencial que dever estar ordenado pela descrio do produto. No precisa enfeitar o programa com telas bonitinhas. Ele deve apenas ser capaz de incluir, alterar e remover registros do arquivo mantendo a ordenao. A cada modificao do arquivo, o programa dever mostrar na tela o contedo do arquivo (todos os registros). Bons estudos a todos Pgina: 7

You might also like