2007-09-24

Sobre a definição de dados

Num qualuqer sistema de informação, talvez o contributo mais importante para o seu desempenho seja a definição das estruturas de dados que o vão suportar...

Após tantos anos decorridos da criação do modelo relacional, é ainda habitual criarem-se bases de dados não normalizadas e que a desculpa para a desnormalização das mesmas seja sempre a mesma: performance.
Este problema afecta em maior grau os chamados sistemas de OLTP, ou seja, bases de dados muito dinâmicas com grande percentagem de operações de alteração de dados em relação ao total de operações realizadas.

Embora haja casos específicos em que um pequeno grau de desnormalização traz alguma melhoria de performance, são situações que envolvem a replicação de dados em tabelas diferentes, o que obriga a um maior esforço dos programadores do sistema para que não existam dados incoerentes. Esta duplicação de dados vai aumentar o espaço necessário para guardar a base de dados e a complexidade das operações de alteração de dados.

Um outro problema que afecta a performance dos sistemas de informação é o tipo de dados com que se criam os diversos camposnas tabelas. Muitas vezes, ao tentar definir o tipo de dados que queremos atribuir a determinado campo deparamo-nos com a dificuldade de prever os valores que irão "povoar" esse campo e existe sempre a tendência de "usar o maior que se possa", ou seja, definir os campos de inteiros como BIGINT e os campos de caracteres como VARCHAR(2000) ou algo semelhante. Para além deste erro, existem outros que indicam desperdício de recursos, tais como usar dois campos DATETIME para guardar data e hora de entrada (um dos campos só tem datas e o outro só tem horas)...

Ao estruturar correctamente os dados, e criar código SQL eficiente estamos a contribuir de modo muito importante para que o sistema de informação tenha a maior performance possível.

No caso de ser necessário alterar ou expandir um esquema que tenha erros de concepção pode ser mais fácil redesenhar o sistema (ou a parte a intervencionar) do que tentar rodear os problemas, pois como diz o ditado popular: "O que nasce torto, tarde ou nunca se endireita".

2007-09-10

2007-09-04

BarCamp Portugal 2007

Decorreu no passado fim de semana (dias 1 e 2 de Setembro), mais uma edição do BarCamp Portugal 2007. Por razões pessoais só lá pude estar uma parte do domingo, mas, pelo que vi, gostei da iniciativa. Para quem quiser saber mais em promenor o que fez e o que se passou, visite BarCampPortugal2007. Aqui ficam apenas algumas fotos do evento, para terem uma ideia:

Início do segundo dia, discussão sobre a ordem de apresentações e actividades.

Em seguida começaram as apresentações, com a conversa sobre "Embrace the Flow" de Pedro Custódio:



A reunião prosseguiu no mesmo tom descontraído, e daí a pouco houve a "obrigatória" pausa para comes e bebes:




E pronto, assim se passou um alegre dia nas margens do mondego !

2007-09-03

Planetgeek

Boas,

Desde há algum tempo este blog encontra-se agregado ao PlanetGeek. Como manda a tradição, todos os meses há um tema para um post. Embora devido a algumas alterações recentes no agregador este post tenha saído curto e tardio, cá vai o tema do mês:

"Escrever em inglês ou português em blogues portugueses"

Pois bem, escrevam em que língua quiserem, mas escrevam bem, não tenho nada contra a lingua de Shakespeare desde que bem escrita, assim como não tenho nada contra a minha língua materna, desde que bem escrita. Muito mais irritante que ver um artigo escrito em inglês num blogue português é ver artigos escritos em mau {português, inglês}.