Recebi da Editora Novatec um exemplar do livro
MySQL Guia do Programador, de André Milani, para análise. Talvez vocês até já tenham percebido o banner deste livro, que está publicado ali na barra lateral do BR-Linux desde a semana passada.
O banner está ali por cortesia, sem custo, porque a Novatec merece a divulgação - é uma empresa que sempre apoiou autores nacionais, especialmente no campo do software livre, e inclusive permitiu experiências inovadoras, como o lançamento simultâneo, pelo autor, de versões para download (gratuitas e sob licenças livres) do conteúdo de livros publicados por ela. E mesmo assim o livro vendeu bem, o que certamente leva a conclusões interessantes.
Levei cerca de 2 semanas para escrever a análise, porque fiz questão de realmente ler o livro inteiro e colocar em prática alguns dos exemplos. E minha conclusão foi francamente positiva.
Este livro não é útil apenas para programadores que usem o MySQL, ao contrário do que o título indica. É uma boa escolha para DBAs que estejam interessados em conhecer esta plataforma, para administradores de sistemas e até para aquele desenvolvedor ocasional, interessado em estender, otimizar ou complementar os plugins do seu software de blogs, por exemplo.
Veja abaixo a resenha completa e aguarde (para a semana que vem) o anúncio da
promoção que irá sortear 3 exemplares deste livro (oferecidos pela Novatec), 2 pen drives e mais um brinde que ainda é surpresa.
MySQL Guia do Programador
Autor: André Milani
Editora: Novatec
397 páginas, publicado em dezembro de 2006.
O MySQL é um banco de dados disponível como software livre que historicamente se destaca pela velocidade e baixo consumo de recursos nas situações de uso mais comuns em aplicações via web, o que o levou a ser figurinha carimbada em praticamente todos os provedores de hospedagem de sites e blogs, além de dar suporte a inúmeros aplicativos de colaboração e comunicação em intranets pelo mundo afora.
Conforme foi amadurecendo, o MySQL passou a oferecer um número maior das características existentes nos principais bancos de dados disponíveis no mercado. E o livro "MySQL Guia do Programador", que li e coloquei em prática nos últimos 15 dias, de fato indica ao leitor que já tenha conhecimento prévio, ainda que introdutório, de programação e interação com bancos de dados, todos os passos necessários para conhecer e utilizar o MySQL.
O autor adota uma abordagem pragmática, com exemplos em múltiplos ambientes operacionais (Fedora, Debian, Windows), exemplificando várias maneiras diferentes de realizar cada tarefa (via MySQL Client, via PHPMyAdmin, via MySQL Query Browser, etc.) e com capítulos dedicados a 4 plataformas de desenvolvimento bastante populares e correntes: PHP, Java/JSP, .Net e ASP.
Desde o primeiro momento, ficou claro para mim que o subtítulo "Guia do Programador" foi um exercício de modéstia: alguns capítulos são realmente específicos para desenvolvedores, mas boa parte deles mesclam tarefas típicas de DBAs e de administradores de sistemas. E alguns deles (como o de backups, o de uso do PHPMyAdmin e o de desenvolvimento em PHP) são interessantes até para as pessoas sem treinamento formal ou maior conhecimento em desenvolvimento, mas que de vez em quando sentem aquele ímpeto de dar um pitaco nos plugins dos seus aplicativos on-line, CMS ou gerenciadores de sites e blogs.
Muitas das tarefas são acompanhadas de ilustrações (em tons de cinza, mas bastante nítidas), e o autor se expressa com clareza, mesmo nos pontos em que o excesso de alternativas gera a necessidade de o texto se repetir várias vezes.
Faz algum tempo que já não atuo como desenvolvedor, mas ainda consigo reconhecer o valor e a praticidade dos exemplos e práticas apresentados no capítulo sobre otimização de consultas. Da mesma forma, mesmo nunca tendo sido DBA na vida, cheguei a sentir o impulso de instalar 2 servidores de teste apenas para poder testar os exemplos do capítulo sobre replicação - mas o capítulo sobre clusters de servidores MySQL fez a vontade passar ;-)
Para a futura segunda edição, fica a sugestão de abandonar a modéstia no título, reconhecendo que o livro não é apenas para programadores, e também de mudar a seqüência dos capítulos, agrupando-os por áreas de interesse de DBAs, de administradores e de desenvolvedores.
Detalhamento do conteúdo
Capítulo 1 - Leitura importante para quem está considerando o uso do MySQL como alternativa a outros sistemas, ou para quem não se atualiza há tempo sobre os novos recursos dele. Apresentação dos recursos básicos e diferenciais do MySQL, incluindo a resposta para grande parte das perguntas comuns: MySQL tem triggers? Suporta replicação? E transações distribuídas?
Capítulo 2 - Aqui tem início a abordagem prática, mãos na massa, pés no chão e outras figuras de linguagem que representam a atitude pragmática do autor ao longo de todo o livro. Ao tratar de como instalar o MySQL (servidor e cliente), assunto potencialmente espinhoso devido ao número de plataformas diferentes que o sistema suporta, ele escolheu 3 situações bastante representativas, e dividiu o capítulo de acordo com elas: distribuições baseadas em RPM, distribuições baseadas em DEB, e Windows. Claro que a instalação não termina no processo de cópia dos arquivos em si, e vemos exemplos claros e ilustrados sobre como inserir o MySQL para inicialização automática, como localizar o arquivo de configuração, etc.
Capítulo 3 - Com o SGBD instalado, é hora de criar e popular o primeiro banco de dados, e é isto que vemos neste capítulo. Como selecionar o método de acesso mais adequado (MyISAM, InnoDB, BDB, etc.) com suas vantagens, restrições e opções, e em seguida como realizar as operações básicas de criação de bancos, tabelas, índices e visões.
Capítulo 4 - Este é indispensável para quem usa o MySQL pré-instalado por um servidor de hospedagem de sites ou blogs, mas também pode ser uma boa pedida para quem administra seu próprio servidor MySQL, pois explica como usar o PHPMyAdmin, provavelmente a mais popular ferramenta de administração do MySQL e a escolha da maioria dos provedores de hospedagem. Além das instruções de instalação e configuração (desnecessárias para quem for usar as versões disponibilizadas por provedores), o autor explica e ilustra como usar o PHPMyAdmin para criar, manter, consultar, atualizar e até mesmo exportar e importar BDs.
Capítulo 5 - Aqui o autor aborda as questões de segurança do MySQL. Além dos aspectos obrigatórios em um livro sobre o SGBD em si (permissões de bancos, tabelas, colunas, gerenciamento de contas de usuários, etc.), ele dá um passo além e apresenta boas práticas de segurança em aplicações, em gestão de usuários e até mesmo em administração de servidores.
Capítulo 6 - Aqui surgem os aspectos avançados do SQL em si e do próprio MySQL. O autor explica o que são e como usar Stored Procedures, Functions, Triggers e Cursores, com exemplos de administração tanto a partir do MySQL Client quanto do MySQL Query Browser.
Capítulo 7 - Mais um capítulo de administração, sobre um aspecto que todos deveriam conhecer: como realizar e recuperar backups. A operação é descrita e ilustrada com detalhes usando tanto o mysqldump quanto o PHPMyAdmin. Ferramentas como o mybackup e o MySQLHotCopy também são mencionadas.
Capítulo 8 - Este capítulo trata de um tema raramente abordado de forma tão detalhada: como migrar para o MySQL a partir de outro SGBD. Os exemplos se baseiam no MySQL Migration Toolkit, e apresentam migrações completas de Access, MS SQL Server e Oracle.
Capítulos 9 e 10 - Estes serão pulados sem maiores cerimônias por quem usa o MySQL em um banco pessoal ou em um provedor de hospedagem comum, mas atrairão a atenção de DBAs e administradores de sistemas em busca de maximização do desempenho e disponibilidade: replicação e
clustering de servidores MySQL, com exemplos e até mesmo a explicação de conceitos (inclusive os que o MySQL ainda não suporta)
Capítulo 11 - Aqui retornamos aos domínios de interesse dos desenvolvedores: como realizar a otimização (tuning) de consultas. Vários casos de uso são apresentados, com os correspondentes métodos ideais de otimização. Ao final do capítulo, o autor apresenta opções de otimização que estão disponíveis apenas para o administrador.
Capítulos 12 a 15: aqui está a jóia da coroa para os desenvolvedores iniciando no MySQL: 4 capítulos apresentando de forma direta e detalhada como realizar as operações mais comuns de acesso a bancos de dados em 4 plataformas de desenvolvimento populares hoje: PHP, ASP, Java/JSP e .Net. Cada linguagem ganhou um capítulo, e nele é apresentado como criar um banco e as tabelas, como interagir via formulários, inserir dados, consultar, alterar e excluir.
Apêndice A: este apêndice é a apostila que faltava quando cursei introdução a bancos de dados. Conceitos gerais de bancos, arquitetura, normalização, gerenciamento, etc.
Apêndice B: uma concisa referência da linguagem SQL, conforme implementada no MySQL.
Apêndices C a F: referências de instalação do servidor web e PHP
Apêndige G: referência de tipos de dados.
Gostaria que houvessem mais obras, se é que existe alguma, ensinando e incentivando a desenvolver sistemas com independencia de banco de dados.
É triste ver tantos projetos bons, Wordpress, por exemplo, atrelado até a raiz no mySql e deixando quase que inviável usar outro SGBD.