|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net |
Aproveite seu banco de dadosMuitos programadores não sabem, mas bancos de dados são muito mais que tabelas sem vida. Existe muita inteligência por trás delas esperando para serem usadas. Confira aqui um pouco sobre isso. Bancos de dados deixaram há muito de ser simplesmente um repositório de informações usados para, no máximo, organizar registros de tal forma que posteriormente pudessem ser indexados e/ou recuperados de alguma forma. Hoje eles são ferramentas poderosas nas tomadas de decisões dentro das empresas que, aproveitando-se da grande quantidade de dados lá existentes, extraem análises de vários tipos para executarem os próximos movimentos e ações em seus mercados.
Mas o banco de dados por sí não opera milagres. É necessária a presença de um profissional conhecedor de suas ferramentas e entranhas para tirar dele tudo aquilo que é possível. Este profissional normalmente conhecido por DBA (Database Administrator) é a peça fundamental neste processo. Por outro lado, os desenvolvedores de software mesmo não sendo especialistas em bancos de dados como os DBA's, podem (e devem) aproveitar um pouco do que é oferecido por estas ferramentas para criar aplicações mais rápidas, mais enxutas e mais “limpas”, aproveitando funções existentes mas que na maioria das vezes são esquecidas no momento do desenvolvimento. Sobre isso que vamos falar hoje: aproveitamento de funções de bancos de dados. Obs: neste artigo usarei exemplos com o banco de dados MySQL e a linguagem PHP. Entretanto com toda a certeza eles podem ser usados também com outras bases e linguagens de forma semelheante. Somando valores, e concatenando campos Com uma frequência impressionante, precisamos somar valores vindos de uma base de dados. Para fazer isso dentro do código do programa, podemos ter:
Mas, que tal assim:
Hmmm... de 5 linhas para duas? Mas como? O “segredo” está na função SUM usada na segunda instrução. Ela simplesmente soma os valores do campo e reduz um laço dentro do código. Com isso temos mais eficiência, velocidade e código limpo. Um outro exemplo interessante pode ser visto quando, por exemplo, precisamos concatenar (unir) dois campos. Para criar uma tabela no código, faríamos assim:
Mas também pode ser feito assim:
Observe que não temos redução de linhas mas de caracteres que deixam o código mais limpo e aproveitamos o processamento do banco ao invés do servidor web. A concatenação é feita pela função CONCAT no segundo exemplo e depois somente precisamos imprimir uma variável, ao invés de duas, evitando assim problemas de interpretação. Datas? Não se perca Muitas vezes o trabalho com datas é um pesadelo para o programador. Soma de dias, meses, em que dia da semana caiu tal data e assim por diante. Como para strings, bancos de dados também possuem um conjunto interessante de funções para a manipulação de datas. Vamos ver algumas. A data atual Já vi muito programador criar função para a inserção de datas dentro de registros em bases de dados. Acredito que isso seja por não conhecer uma pequena mas muito útil função chamada now(). Com ela, a data e/ou hora atual são armazenadas em campos que necessitam este valor.
Esta função simplesmente pega a informação de data e hora do servidor e insere no campo que deseja (neste exemplo, em data). Mas cuidado; se o servidor está com a data/hora erradas, o valor que será inserido também estará errado. Assim é interessante manter o servidor com horário sempre sincronizado com time servers existentes na Internet. Além disso, em alguns momentos precisamos saber em que semana estamos do ano ou ainda quantas semanas faltam para o fim do ano. Ao invés de complexos códigos de linguagem, podemos usar a base de dados para nos informar este resultado rapidamente. Por exemplo, em que semana do mês estamos agora?
Aqui foi usada a função WEEK que retorna o número da semana de uma determinada data. Neste caso, a data informada é “hoje” pois usamos como parâmetro de data a função now() que, como já apresentado anteriormente, é a data atual do servidor. Outra tarefa comum com datas é a soma de dias em uma data específica. Pode parecer simples mas como o formato de data é diferente de formatos numéricos e strings, muitas vezes o resultado está errado e não sabemos porquê. A forma mais simples é novamente deixar o banco de dados trabalhar por você. Então para acrescentar, por exemplo, dez dias à data atual, fazemos:
Com isso temos, em uma única linha, o valor que precisamos com a certeza que se trata de uma data válida, inclusive contando meses que possuem somente 28,29 ou 30 dias (experimente fazer a soma de 10 dias à data de 25/02/2006 e verá o resultado). Conclusão Pequenas e simples funções quando bem utilizadas facilitam a vida de qualquer desenvolvedor. Assim, antes de “quebrar a cabeça” com dezenas de linhas de código para resolver um problema ou demanda, procure saber se as ferramentas que está utilizando não dispõem de formas mais simples para a solução deste problema. Muitas vezes a solução mais simples está diante dos olhos e perdemos tempo tentando algo diferente. Estes exemplos são pequenos e simples se comparados a enorme gama de opções existentes nas bases de dados. Funções para data, strings, funções matemáticas e outras tantas estão disponíveis na maioria das bases de dados relacionais existentes hoje em dia. Para o MySQL, acesse http://dev.mysql.com/doc/refman/4.1/pt/functions.html. Já para o PostgreSQL, acesse http://www.postgresql.org/docs/8.1/static/functions.html Espero que tenha gostado e aprendido um pouco mais. Abraços! Obs: Os códigos deste artigo podem ser encontrados em http://www.michelazzo.com.br na seção de downloads. Copyright 2006 Paulino Michelazzo - http://www.michelazzo.com.br Obra licenciada sob Creative Commons Developing Nations 2.0
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 1 categoria relacionada + 1 Comentário sem rever
Manuais relacionados com este artigo Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em Linguagem SQLComentário sem rever
|
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |