Tamanho Do Banco De Dados - Teoria em Banco de Dados - Fórum WMO
Started By Marcos Cesar, 27/10/2009, 17:05
#1 Marcos Cesar
Posted 27/10/2009, 17:05
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..
Posted 27/10/2009, 21:31
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?
http://dev.mysql.com...quirements.html
http://msdn.microsof...y/ms187752.aspx
#3 Marcos Cesar
Posted 27/10/2009, 22:48
Falo do Oracle.
A simulação foi feita na base da "unha" mesmo, usando a tabela dos tipos de dados, e quantidade de informações contidas nelas, num prazo de uns 3 ou 5 anos.
Tipos seriam todos praticamente. Mas o que ta pegando é que vejo por ai BD grandes, mas nao entendo o motivo, pois as informações sao na base de bytes, que nem sempre chegam na casa dos milhoes!!
Posted 28/10/2009, 08:31
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.
#5 Marcos Cesar
Posted 28/10/2009, 12:59
Agradeço pelas explicações, esclareceu 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!
Posted 04/11/2009, 17:26
Não consegui li tudo que voce falou (entao pq eu vou responder? canalha!) mas acho que posso te ajudar...
Existem os bancos normatizados, que seguem normas e a redudância é "0". Poucos são os programadores de Bancos que fazer o processos completo para que o banco fique o mais normatizado possivel, falo por exemplo do modelo conceitual que ninguem faz...
Entao os mesmos dados acabam se repetindo no banco de dados, o que o faz ter varias vezes seu tamanho comum...