terça-feira, 10 de fevereiro de 2009

Dados duplicados? Não se preocupe! Eles vão ficar inconsistentes.

Existem regras do polegar para várias áreas e vários assuntos nesse mundo. Por exemplo:

Computação: O número de bugs de um programa é aproximadamente proporcional ao seu tamanho (em linhas de código).
Educação Física: Setenta calorias são queimadas por milha, não importa a velocidade.
Moda: Se uma pessoa está mau vestida, você percebe suas roupas. Se uma pessoa está impecavelmente bem vestida, você nota a pessoa.

Tem até site especializado nisso: http://www.rulesofthumb.org/.

Mas por que falei isso? Porque essa postagem traz mais uma dessas regras (pelo menos para mim). E que regra é essa? O título irônico dessa postagem é a regra propriamente dita, isto é:

"Se seus dados estão duplicados, eles ficarão inconsistentes em algum momento".

Naturalmente associamos essa regra à área da Computação. É normal. E uma das preocupações da sua sub-área, Banco de Dados, é justamente essa duplicação de dados versus inconsistência. Daí Banco de Dados nos beneficia com suas regras para remover essa duplicidade de dados (conhecida como regras de normalização).

Todavia tenho percebido que essa regra se faz verdade em muitas áreas da nossa vida. Quem nunca começou a escrever algo num caderno e terminou de escrever no computador, mas depois não sabia qual anotação era a mais atualizada? Quem nunca pensou em levar zilhões de documentos de identicação para um cadastro e chengando lá viu que seu nome, telefone ou endereço está um pouco diferente de documento para documento, por conta de um erro de digitação? Quantas vezes você combinou "uma saída" com duas pessoas e mais tarde essas duas pessoas combinaram outra coisa entre elas (embora incluindo você), e no final quando você vai convidar mais pessoas para sair, você ouve a seguinte frase: fulano já me falou disso, MAS não era bem assim que ele combinou comigo.

Um caso da vida real: certa vez uns amigos meus marcaram uma reunião e sairam espalhando para todo mundo o dia e hora. Até que chegou aos meus ouvidos o convite para o dia X e a hora Y. Acontece que, os que organizavam a reunião reagendaram a mesma para o dia Z e a hora W, mas não passaram a informação para os outros. Resultado me programei para o dia X e a hora Y. Ao se aproximar o dia X, tento confimar a data e hora do evento e vejo que se eu aparecesse nesse dia, o grilinho solitário iria cantar.

Enfim, duplicação de informação no nosso dia-a-dia é fatal para atrasarmos compromissos, perdermos eventos, fazermos trabalhos errados, etc. Será que dá para você e eu aplicarmos regras de normalização no nosso dia-a-dia? Acredito que sim! Se não me chamarem de louco eu posso até tentar.