SQL e Programação de Banco de Dados
Quero me apresentar a você e iniciar um contato periódico para tratarmos assuntos relacionados à linguagem SQL e à programação de banco de dados. Trabalho com banco de dados há algum tempo e sei o quanto é importante trocar experiências com outros profissionais. Ninguém é capaz de extrair o máximo de um banco de dados, mas, juntos, podemos realizar mais e de uma maneira cada vez melhor.
Minha experiência maior tem sido desenvolvida junto ao banco de dados Oracle, mas a padronização do comando SQL e pelo fato de os conceitos de programação de um banco de dados serem facilmente aplicados a qualquer outro banco de dados, faz com que possamos tratar destes assuntos quase que universalmente.
SQL
A linguagem SQL (Structured Query Language) é a base para utilização de bancos de dados relacionais. Com a utilização dos comandos básicos (INSERT, DELETE, UPDATE e SELECT) pode-se resolver a maior parte dos problemas relacionados a manutenção e extração de dados no banco de dados. Com o SQL é possível criar as estruturas básicas de armazenamento, como tabelas e índices. Também há comandos específicos da linguagem para o controle e segurança relacionado a um banco de dados. Em princípio, os comandos SQL são divididos em:
- DDL (Data Definition Language) ou Linguagem de definição de dados
- DML (Data Manipulation Language) ou Linguagem de manipulação de dados
- DQL (Data Query Language) ou Linguagem de recuperação de dados
- DCL (Data Control Language) ou Linguagem de controle de dados
O SQL tem sido aprimorado ao longo do tempo. Duas entidades (ANSI – American National Standards Institute e ISO – International Standards Organization) vêm, desde 1986, publicando padrões de especificação da linguagem SQL.
Vamos discutir como abordar e tirar o máximo de proveito desta linguagem que é extremamente importante para todos os profissionais de banco de dados. Os principais tópicos que serão de interesse envolvem:
- Fundamentos da linguagem SQL
- Extensões e particularidades de cada banco de dados
- Melhoria no desempenho de consultas
- Utilização de funções analíticas em banco de dados
- Tendências do uso da linguagem
Naturalmente a idéia é ter uma visão prática, com exemplos e com a abertura de uma discussão entre todos os leitores.
Programação de Banco de Dados
Os comandos da linguagem SQL são muito poderosos, mas normalmente consegue-se melhorar o desempenho das aplicações através da programação do banco de dados. Ao desenvolver módulos que sejam executados diretamente no servidor diminui-se o tráfego de informações na rede, esconde-se boa parte das estruturas das tabelas e agiliza-se o processamento e retorno das mensagens. Internamento o banco de dados possui mecanismos integrados que permitem unir as estruturas tradicionais de programação com os comandos SQL.
O banco de dados possui mecanismos próprios que podem ser utilizados em favor do desenvolvedor. Cada banco de dados possui um conjunto específico de comandos que definem a linguagem de programação do banco de dados. No caso do Oracle, a linguagem é o PL/SQL, o SQL Server possui o Transact-SQL, o DB2 possui sua própria linguagem de programação, o PostGreSQL possui diversas extensões que podem ser utilizadas como linguagem de programação e o MySQL lançou sua mais recente versão com a possibilidade de programar o servidor. Cada banco de dados é único sob este aspecto, mas todos trabalham sobre os mesmos conceitos. É possível criar módulos programáveis, como funções, procedimentos, objetos, pacotes, gatilhos, etc. Em todos os casos, há um engine responsável pela integração e execução dos módulos no servidor de banco de dados.
Desta forma, os tópicos que serão trabalhados serão:
- Fundamentos de programação de banco de dados
- Aspectos avançados da programação
- Desempenho dos módulos
- Programação aliada à extração de dados gerenciais
- Tendências em programação de banco de dados
Como se pode notar, os tópicos são quase os mesmos da linguagem SQL. Também teremos artigos que poderão ser implementados, testados e melhorados por todos os leitores.