Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mucananuca

[Resolvido] Tamanho do Banco de Dados

Recommended Posts

Boa tarde...

 

Procurei em algusn lugares sobre este assunto, mas tudo que encontrei foram fórmulas e métodos para se calcular o tamanho de um banco de dados, mas em nenhum destes artigos o motivo disto!

 

Gostaria de saber porque o tamanho dos HD's dos bancos de dados são grandes, várias vezes na casa do GB, se os dados em si sao pequenos, varias vezes menores do que 15MB. Digo isso porque fiz uma especie de simulação com uma empresa razoavelmente grande, com 800 funcionarios e valores altos, mas nao passou dos 10MB, somando-se todas as tabelas num prazo de armazenamento de dados em anos!

 

Entendo que varias vezes existem Softwares instalados nestes mesmos discos, mas nao vejo o porque de um BD tao grande pra tao pouco espaço ocupado (caso logicamente eu nao esteja errado sobre sa minhas afirmações)

 

Agradeço pelo esclarecimento..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, acho que já respondi sobre este assunto em outro fórum, mas vou compartilhar o que escrevi por lá aqui também. :)

 

A qual sistema de banco de dados você esta se referindo?

Como exatamente você fez esta simulação? Usou algum modelo físico? Quais tipos de dados?

 

Algumas sugestões de leitura:

http://dev.mysql.com/doc/refman/5.0/en/sto...quirements.html

http://msdn.microsoft.com/pt-br/library/ms187752.aspx

Bem, não estou conseguindo compreender exatamente o que você esta querendo dizer. Mesmo assim vou tentar escrever um pouco sobre o assunto e depois você diz se atingiu o objetivo ou tenta explicar melhor a sua dúvida, com exemplos mais práticos. Posso até instalar um Oracle XE para tentar entender melhor a sua dúvida.

 

O tamanho de uma base de dados vai depender diretamente do volume de informação e quão complexa é a aplicação. Cada tipo de dado consome uma quantidade específica, independente de todo este recurso estar realmente sendo consumido ou não.

 

Eu não encontrei na página do Oracle uma tabela de capacidades e utilização para cada tipo de dados, mas como estes tipos são bastante equivalentes entre os SGDBs, as tabelas apresentas no post anterior servem como referência. Como exemplo, vamos pegar o tipo NUMERIC, este tipo de dados, com precisão de 1 a 9 (SQL Server), consome 5 bytes, ou seja, independente de armazenar o valor 1, 100 ou 1000, vai usar 5 bytes.

 

Se você tem uma aplicação muito complexa, consequentemente você também vai ter um controle de dados mais complexo, isto aumenta o uso das tabelas de sistema, estas tabelas são responsáveis por gerenciar e controlar tudo o que acontece com os bancos de dados que estão sendo executados. Chaves primárias, integridades, dentre diversos outros controles acontecem nestas tabelas.

 

Um modelo de dados bem estruturado para os objetivos de uma aplicação qualquer define uma quantidade muito grande de tabelas e informações armazenadas, somando seus índices e, as vezes, algumas regras de negócios que são comuns, mas, muitas vezes, os programadores não criam índices a revelia, mesmo assim muitas vezes estes campos sem índices são utilizados como critérios de pesquisa. Como o banco de dados resolve este problema? Usando áreas temporárias, isto também precisa de espaço para executar. As áreas temporárias também são utilizadas para controle de transações e transformação de dados.

 

Também não podemos esquecer da área de Log. Todo banco de dados tem um Log respectivo, este pode ser, dependendo do caso, até maior que o próprio banco de dados. Vai variar de aplicação para aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mucananuca

 

Além das explicações do Prog gostaria de mencionar que uma base de dados trabalha com no mínimo dois arquivos, um de dados e outro de log. Esses arquivos aumentam de tamanho conforme o número de registros, índices e assim por diante. De modo que podemos "Alocar" espaço em disco, para que não fiquem crescendo desnecessariamente. Isso pode representar um tamanho em disco alto apesar desse "tamanho" não representar 100% de informações da empresa armazenadas na base de dados.

 

Agora uma curiosidade...como você identificou que uma base de dados possui 15MB de tamanho para uma empresa de 800 funcionários?

 

[]'s

 

Fernando Silveira

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço pelas explicações, esclareceram muita coisa, mas quanto a duvida (por talvez não ter me expressado bem), nao foi muito esclarecida..

 

Acontece que estou fazendo um trabalho para a faculdade sobre Análise de Sistemas, e nesta matéria nós entrevistamos um empresa real mas apenas pra simular uma coisa na vida real, dai com base nas informações obtidas, nós elaboramos um projeto fictício de um sistema para ela (completo), e dentre estas coisas, está a criação de um banco de dados para a nossa aplicação.

O nosso tema é "Avaliação de desempenho e treinamento", então nossa empresa (ficticia), terá dentro de seu sistema a opção de outras empresas que oferecem cursos, se cadastrarem de algumas formas, para dai quando interessados em fornecer algum curso para os funcionários, possa ser buscado nesta base de dados, enfim...o fato é que daqui 5 anos a empresa deverá ter 1000 funcionários cadastrados no sistema, 12 empresas fornecedoras de cursos, 20 instrutores e 50 cursos.

 

O problema é que ele não ensinou o sufuciente para fazer estes cálculos (e nem vai ensinar), dai to buscando em livros e etc, mas não ta ajudando muito..então baseado nas tabelas de campos do meu BD, que é o Oracle, meio que no chute fiz as contas na mão, somando os campos de bytes,multiplicando pelo tempo esperado. Independente de ter dado certo, aproximado ou errado, o fato é que nós colocamos um disco de 160GB, e de acordo com as contas aqui não vai nem PENSAR em chegar perto disso..porque então o povo poe grandes discos, se tao pouco é usado??

 

Tentei ser o mais claro possivel! E Prog, vou postar esta mesma coisa no outro Fórum, apenas pra constar la tambem, talvez sirva pra algum outro leitor :D

 

Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então o que você sugere? Colocar um HD de 100MB? :P

 

Isto vai muito além do "tamanho da base de dados", a industria cresce e você consome o que há disponível. O que sai mais em conta? Comprar um HD SATA de 250GB, um HD SCSI de 120GB ou um SSD de 32GB? Isto vai depender exclusivamente de quanto a sua empresa pode "investir" na solução. Todas as 3 opções são completamente diferentes em performance, disponibilidade e custo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hummm...to entendendo, tambem havia pensado nisso dai Prog, até porque comprar um HD um pouco menor não compensa muito, tendo em vista os preços de hoje em dia, onde a diferença é pouca, e sobrar um pouco de espaço até contribui na velocidade.

 

O probema é apenas este mesmo, porque eu chego la com um HD de 160GB (partindo do pressuposto que nossa empresa pode bancar isso sem problemas), dai o professor ou quem me contratou pergunta: "Porque um disco deste tamanho e não menor? Como você justifica a necessidade de ter este tamanho?" Dai complica, porque nos meus atuais conhecimentos não conseguiria justificar, só se eu disesse que rpecisa ser grande porque vão outros softwares instalados, como o próprio Oracle...isso seria uma boa justificativa, ou há uma mais "profissional" e técnica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um sistema de banco de dados, sendo executado em um ambiente operacional qualquer, vamos imaginar como seria o armazenamento:

 

- sistema operacional (3GB-12GB) - depende de versão, atualizações e sistema escolhido;

- área para memória virtual (1GB-4GB) - depende da quantidade de memória do sistema;

- instalação do SGDB (2GB-10GB) - depende do SGDB escolhido e quais recursos serão instalados;

- área para armazenamento dos dados (20GB) - vai depender exclusivamente da complexidade do sistema, isto inclui o log;

- área para backup temporário (40GB) - vai ter que ter, seja ela exclusiva para o backup ou compartilhada com outros recursos do sistema, tamanho esta diretamente relacionado com a área para armazenamento dos dados e com a confiabilidade que se deseja dar ao sistema;

- talvez haja a necessidade de um 2o. (RAID 1) ou até 3o. (RAID 5) disco, novamente relacionado com confiabilidade;

 

Provavelmente eu esqueci alguma coisa. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.