[Cascavel-pm] Dúvida em implementação de BD. Opiniões?

Luis Campos de Carvalho lechamps em terra.com.br
Quarta Março 10 09:20:55 CST 2004


Gabriel Vieira wrote:
> Luis,
> 
> como a solicitação é feita via mysql, não interfere a quantidade de colunas
> existentes, caso os campos a serem solicitados sejam especificados.
 >
> E a alteração de um campo na tabela não causa nenhuma falha na estrutura em
> si, pois o que interessa serão os campos solicitados, e tendo um campo que
> afirma se tal 'website' terá acesso ou não ao conteúdo é mais pratico não
> exigindo o uso de outras tabelas.
> Soluções melhores existem, mas creio que esta seja prática e funcional.

   Mais ou menos... o programa (teoricamente) não deveria armazenar 
informações na estrutura do banco de dados. Me refiro a ter colunas de 
uma tabela nomeadas com o identificador do website, ou coisa que o 
valha. Isto, a longo prazo, torna-se um pesadelo de manutenção, e 
influencia a perfomance do banco de dados, além de colocar um limite 
físico para a quantidade de websites que poderiam ser armazenados (igual 
ao número máximo de colunas que o MySQL suporta em uma só tabela).

   Exemplo:
   Imagine você se este controle precisar atender a 500 ou 750 
websites... teremos tabelas que apenas podem ser manipuladas 
programaticamente, em um banco de dados difícil de gerenciar e de baixa 
performance, com muito espaço alocado para pouca informação.

   Adicionalmente, extender a aplicação de qualquer forma pré-supõe 
conhecimento específico sobre as tabelas do banco de dados. A existência 
de uma tabela que não tem forma definida, mas cresce dinamicamente, 
torna-se um obstáculo a mais (todos os programas precisam conhecer a 
fundo a estrutura onde os dados são armazenados, o que nos deixa 
novamente na "idade da pedra" dos sistemas gerenciadores de bancos de 
dados, quando todos os programas sabiam como ler e escrever diretamente 
no banco de dados.

   Por outro lado, acrescentar um novo website é uma operação 
quadrativamente mais lenta a cada novo website, já que a alteração da 
estrutura de uma tabela cresce em O(n^2), enquanto a adição de uma linha 
é O(1), se eu não me engano... [onde 'n' é a quantidade de linhas da 
tabela alterada]

   Eu não acredito que as desvantagens superem quaisquer vantagens 
conseguidas com a violação do princípio de encapsulamento de dados pelo 
SGBD. Mas claro, esta é apenas a minha humilde opinião...

   Mas faça assim: apareça no nosso encontro, sexta (ou sábado?) e 
discutiremos isso em torno de alguns copos de chopp, que é a segunda ou 
terceira coisa mais prazeiroza do planeta, IMHO, novamente.

   Sem ressentimentos ;-)
   Putamplexos!
-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   Luis Campos de Carvalho is BSc in Comp Science,
   PerlMonk [SiteDocClan], Cascavel-pm Moderator,
   Unix Sys Admin && Certified Oracle DBA
   http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=




Mais detalhes sobre a lista de discussão Cascavel-pm