Prévia do material em texto
CONTEÚDO COLEÇÃO INFO > 5 CONTEÚDO BANCO DE DADOS EQUIPE EDIÇÃO Lucia Reggiani EDITORA DE ARTE Iara Spina CAPA Crystian Cruz (arte) e Cellus (ilustração) COLABORADORES Carlos Chernij, Fred Carbonare, Helio Silva, Nivaldo Foresti (texto) e Rita Del Monaco (revisão) 4 A aventura dos dados 15 > Sabe o que é tupla? 24 > Planeje bem o seu banco 31 > O banco fala SQLquês TESTES 34 > Um SQL Server fácil de usar 36 > Oracle em versão light 38 >DB2 grátis com tudo dentro 42 > O MySQL ganha músculos 47 > Missão crítica é para Postgre 50 > Firebird poupa a máquina 54 > O Access entra em reforma 57 > Administração é tudo TUTORIAIS 62 > Tabelas sem mistério 71 > Relatório feito com views 75 > Crie pesquisas com critérios 78 > O phpMyAdmin doma o MySQL 83 > Atualização é com o Ajax 86 > Pesquise bem no Access 89 > O Exif vai para o banco 97 > E-mail falso não entra 100 > O Rails faz mais rápido 105 > Controle os seus livros CERTIFICAÇÕES 108 > Especialistas em dados 109 > Todo mundo quer um OCP 111 > Domine o DB2 em seis etapas 113 > Craques em SQL Server 004_CONTEUDO1.qxd 25/02/2006 20:53 Page 4 CONTEÚDO COLEÇÃO INFO > 5 CONTEÚDO BANCO DE DADOS EQUIPE EDIÇÃO Lucia Reggiani EDITORA DE ARTE Iara Spina CAPA Crystian Cruz (arte) e Cellus (ilustração) COLABORADORES Carlos Chernij, Fred Carbonare, Helio Silva, Nivaldo Foresti (texto) e Rita Del Monaco (revisão) 4 A aventura dos dados 15 > Sabe o que é tupla? 24 > Planeje bem o seu banco 31 > O banco fala SQLquês TESTES 34 > Um SQL Server fácil de usar 36 > Oracle em versão light 38 >DB2 grátis com tudo dentro 42 > O MySQL ganha músculos 47 > Missão crítica é para Postgre 50 > Firebird poupa a máquina 54 > O Access entra em reforma 57 > Administração é tudo TUTORIAIS 62 > Tabelas sem mistério 71 > Relatório feito com views 75 > Crie pesquisas com critérios 78 > O phpMyAdmin doma o MySQL 83 > Atualização é com o Ajax 86 > Pesquise bem no Access 89 > O Exif vai para o banco 97 > E-mail falso não entra 100 > O Rails faz mais rápido 105 > Controle os seus livros CERTIFICAÇÕES 108 > Especialistas em dados 109 > Todo mundo quer um OCP 111 > Domine o DB2 em seis etapas 113 > Craques em SQL Server 004_CONTEUDO1.qxd 25/02/2006 20:53 Page 4 Fundador: VICTOR CIVITA (1907-1990) Diretora de Redação: Sandra Carvalho Redatora-chefe: Débora Fortes Diretor de Arte: Crystian Cruz Editores Seniores: Carlos Machado, Lucia Reggiani e Maurício Grego Editores: Airton Lopes, André Cardozo e Eric Costa Repórter: Silvia Balieiro Estagiários: Danilo Gregório e Paulo de Alencar Revisora: Marta Magnani Editor de Arte: Jefferson Barbato Designers: Catia Herreiro e Wagner Rodrigues Colaborador: Dagomir Marquezi Infolab: Osmar Lazarini (consultor de sistemas) Colaborador: Eduardo Kalnaitis Estagiários: Bruno Roberti, Celso Rodrigues e Valdir Fumene Junior Info Online: Cristian Medeiros e Renata Verdasca (webmasteres) Atendimento ao leitor: Virgílio Sousa www.info.abril.com.br Apoio Editorial: Beatriz de Cássia Mendes, Carlos Grassetti Serviços Editoriais: Wagner Barreira Depto. de Documentação e Abril Press: Grace de Souza Correspodente Internacional: Ruth de Aquino PUBLICIDADE CENTRALIZADA Diretores: Mariane Ortiz, Sandra Sampaio, Sérgio R. Amaral Executivos de Negócio: Eliane Pinho, Letícia Di Lallo, Maria Luiza Marot, Marcelo Cavalheiro, Marcelo Dória, Nilo Bastos, Pedro Bonaldi, Robson Monte, Rodrigo Toledo, Sueli Cozza, Vlamir Aderaldo, Wlamir Lino Publicidade Regional Diretor Jacques Baisi Ricardo Publicidade Rio de Janeiro: Diretor Paulo Renato Simões Gerente de Publicidade núcleo Tecnologia: Marcos Peregrina Gomez Executivos de Negócio: Andréia Balsi, Emiliano Hansenn, Marcello Almeida e Renata Mioli MARKETING E CIRCULAÇÃO: Gerente de Produto: Ricardo Fernandes, Coordenadora de eventos: Carol Fioresi, Estágiario de marketing: Maurício Simões Rodrigues Gerente de Circulação Avulsas: Maria Helena Couto Gerente de Circulação Assinaturas: Euvaldo Nadir Lima Junior Planejamento, Controle e Operações: Diretor: Auro Iasi Gerente: Fábio Luis dos Santos Analista: Tales Bombicini Processos: Ricardo Carvalho ASSINATURAS: Diretora de Operações de Atendimento ao Consumidor: Ana Dávalos Diretor de Vendas: Fernando Costa Editor: Roberto Civita Conselho Editorial: Roberto Civita (Presidente), Thomaz Souto Corrêa (Vice-Presidente), Jose Roberto Guzzo, Maurizio Mauro Presidente Executivo: Maurizio Mauro Diretor Secretário Editorial e de Relações Institucionais: Sidnei Basile Vice-Presidente Comercial: Deborah Wright Diretora de Publicidade Corporativa: Thais Chede Soares B. Barreto Diretor-Geral: Jairo Mendes Leal Diretor de Núcleo: Alexandre Caldini INTERNATIONAL ADVERTISING SALES REPRESENTATIVES Coordinator for International Advertising: Global Advertising, Inc., 218 Olive Hill Lane,Woodside, California 94062. UNITED STATES: CMP Worldwide Media Networks, 2800 Campus Drive, San Mateo, California 94403, tel. (650) 513 4200, fax (650) 513 4482. EUROPE: HZI International,Africa House, 64-78 Kingsway, London WC2B 6AH, tel. (20) 7242-6346, fax (20) 7404-4376. JAPAN: IMI Corporation, Matsuoka Bldg. 303, 18-25, Naka 1- chome, Kunitachi, Tokyo 186-0004, tel. (03) 3225-6866, fax (03) 3225-6877. TAIWAN: Lewis Int’l Media Services Co. Ltd., Floor 11-14 no 46, Sec 2, Tun Hua South Road, Taipei, tel. (02) 707-5519, fax (02) 709-8348 COLEÇÃO BANCO DE DADOS, edição 27, é uma publicação da Editora Abril S.A. Distribuída em todo o país pela Dinap S.A. Distribuidora Nacional de Publicações, São Paulo. Presidente do Conselho de Administração: Roberto Civita Presidente Executivo: Maurizio Mauro Vice-Presidentes: Deborah Wright, Eliane Lustosa, Marcio Ogliara, Valter Pasquini www.abril.com.br IMPRESSA NA DIVISÃO GRÁFICA DA EDITORA ABRIL S.A. Av. Otaviano Alves de Lima, 4400, CEP 02909-900 - Freguesia do Ó - São Paulo - SP Publicações da Editora Abril: Veja: Veja, Veja São Paulo, Veja Rio, Vejas Regionais Negócios: Exame, Você S/A A Consumo/Comportamento: Núcleo Consumo: Boa Forma, Elle, Estilo, Manequim Núcleo Comportamento: Claudia, Nova Núcleo Bem-Estar: : Bons Fluidos, Saúde!, Vida Simples Turismo/Tecnologia: Núcleo Turismo: Guias Quatro Rodas, National Geographic, Viagem e Turismo Núcleo Homem: : Placar, Playboy, Quatro Rodas, Vip Núcleo Tecnologia: Info, Info Canal, Info Corporate Cultura/Jovem: Núcleo Jovem: Bizz, Capricho, Flashback, Mundo Estranho, Superinteressante, Supersurf Núcleo Infantil: Atividades, Disney, Recreio Núcleo Cultura: : Almanaque Abril, Guia do Estudante, Aventuras na História, Revista das Religiões Casa/Semanais: Núcleo Casa e Construção: Arquitetura e Construção, Casa Claudia, Claudia Cozinha Núcleo Celebridades: Contigo! Núcleo Semanais: Ana Maria, Faça e Venda, Minha Novela, Tititi, Viva! Mais Fundação Victor Civita: Nova Escola Publicidade São Paulo www.publiabril.com.br, Classificados tel.0800-7012066, Grande São Paulo tel. 3037-2700 ESCRITÓRIOS E REPRESENTANTES DE PUBLI- CIDADE NO BRASIL: Central-SP tel. (11) 3037-6564 Bauru Gnottos Mídia Representações Comerciais, tel. (14) 3227-0378, e-mail: gnottos@gnottosmidia.com.br Belém SRS Propaganda e Representações Ltda, tel (91) 3272-8195, e-mail: tania.alves@veloxmail.com.br Belo Horizonte tel. (31) 3282-0630, fax (31) 3282-0632 Blumenau M. Marchi Representações, tel. (47) 3329-3820, fax (47) 3329-6191 Brasíliaantes de escolher o produto, pense onde vo- cê quer chegar. Enxergue o banco de dados como um meio para atin- gir sua meta. A Com isso, dependendo do caso, se a sua empresa desenvolve sistemas, a decisão poderá ser totalmente di- ferente de uma construtora, por exemplo. Baseie-se em aspectos téc- nicos e mercadológicos para definir o produto com o qual você irá con- viver durante um bom tempo (tenha isso em mente: não se troca de ban- co de dados senão com alguma di- ficuldade). Veja na tabela abaixo al- gumas questões que podem ajudar na escolha do produto ideal para as suas necessidades. GUIA PARA A ESCOLHA DO GERENCIADOR >Há uma empresa ou comunidade responsável pelo produto? > Como está a saúde financeira dessa empresa? Como é a participação dos membros da comunidade? >Qual o compromisso tecnológico da empresa? Houve evolução nos últimos anos? (um ano de atraso em informática pode ser fatal) >Qual a participação de mercado do produto? (produtos com pequena participação podem sumir ou ser absorvidos por outras empresas) >Quanto tempo de vida tem o produto? >Qual tipo de empresa o utiliza? >Quando foi lançada a última versão? Como o fabricante resolve problemas de segurança (atualizações e correções)? >O produto possui as características mínimas de um sistema gerenciador de banco de dados (controle de transações, integridade referencial, programação, backup e recuperação, segurança de acesso, compatibilidade)? > Como é o ambiente de administração do banco de dados? Há possibilidade de administração remota? >Você vai precisar de um administrador de banco de dados (DBA) o tempo todo ou esse trabalho poderá ser feito remotamente? >Há profissionais qualificados no mercado para administrar o banco? Quanto custa a mão-de-obra? >Há produtos (ERP, CRM, BI etc.) adequados para a sua empresa que utilizam o banco de dados? >Qual o volume médio de transações que você vai realizar e como o produto se comporta com isso? 024_CRIACAO 25/02/2006 21:56 Page 24 CRIAÇÃO COLEÇÃO INFO > 27 CRIAÇÃO 26 27 CRIAÇÃO 26o analis- ta criar e modelar a estrutura do ban- co de dados é desejável. Essas ferra- mentas são conhecidas como CASE (Computer Aided Software Engin- eering). Entre elas estão ErWin, DbDe- signer, MS Visio e Oracle Designer. Cada uma possui características que a torna mais ou menos adequada pa- ra cada situação, mas todas contri- buem para o trabalho do analista. Depois de levantados os requisi- tos de informação, deve-se fazer um projeto lógico. Entende-se por pro- jeto lógico a fase em que se realiza a modelagem lógica de dados, com- posta pela aplicação do modelo de entidade X relacionamento e pela normalização de dados. Em um pri- meiro momento não deve haver preocupação com a estrutura física que será criada, e sim com o aten- dimento dos requisitos dos usuários. PROJETO FÍSICO Uma vez estabelecido o projeto ló- gico, vamos ao projeto físico. Nele, transforma-se o modelo de entida- de X relacionamento para o mode- lo físico, em geral, sem problemas. As estruturas relacionais (tabelas) são representações bastante simples e adequadas para caracterizar coi- sas do mundo real. Há uma troca na- tural de nomenclatura: entidades passam a se chamar tabelas, tuplas viram registros ou linhas, e atribu- tos tornam-se colunas ou campos. A menos que haja alguma necessida- de muito específica, basta acrescen- tar o tipo de dado e o tamanho de cada um dos campos ou colunas, es- tabelecer chaves primárias e estran- geiras (normalmente as ferramen- tas CASE fazem esse trabalho por nós), definir regras de integridade, criação de visões (views), índices e outros aspectos físicos do projeto. Hora de criar as estruturas físicas, com tabelas, relacionamentos, cha- ves e tudo a que temos direito. Nor- malmente, as ferramentas CASE tam- bém fazem a maior parte do traba- lho. Algumas são capazes de se co- nectar ao banco e criar as estruturas. Outras geram os scripts para serem executados no banco de dados. Só que, para chegar aqui, é necessário ficar atento a alguns detalhes. PADRONIZAÇÃO É sempre importante manter um pa- drão para o nome dos objetos, colu- nas e outros elementos. Mesmo que você trabalhe sozinho em um proje- to, é bem provável que no futuro ou- tras pessoas tenham de atualizar aqui- lo que você fez. A padronização co- meça na documentação do projeto e continua em todo o processo físi- co de criação do banco de dados. Toda equipe deve estar envolvida para definir o que e como será esse padrão. Imagina-se que, quanto mais claro for o nome da entidade, por exemplo, melhor será para a pessoa entender o que está armazenado ali. Parece óbvio, mas algum tempo atrás era comum utilizar nomes estranhos, muito mais vinculados aos progra- mas que mantinham a entidade do que ao objetivo dela. Alguns analistas até se valiam des- se expediente para manter- se no emprego — quanto mais obscuro, mais depen- dência do analista. TABELAS E COLUNAS Se eu identifiquei um objeto que armazene as informações de um veículo, devo dar-lhe o nome de VEICULO. Em cer- tos casos, alguns analistas pre- ferem indicar qual o módulo CÓDIGO NÚMERO DESCRIÇÃO NOME DATA VALOR QUANTIDADE SIGLA DOMÍNIO PADRONIZE AS COLUNAS OPÇÃO 2 CD NR DS NM DT VL QT SG DM OPÇÃO 1 COD NUM DES NOM DAT VAL QTD SIG DOM do sistema que mantém aquela es- trutura. Em outros, acrescenta-se a estrutura departamental que realiza esse trabalho. Essa última opção é a pior, visto que há mudanças freqüen- tes nas funções departamentais de uma empresa moderna. Particular- mente, creio que ambas situações são desnecessárias, visto que atualmen- te uma classe é destacada para essa função. A classe normalmente tam- bém tem um nome claro e objetivo. Se há atributos importantes pa- ra serem mantidos, como cor, mo- delo, ano de fabricação, ano do mo- delo e montadora, deve-se colocar esses nomes nas colunas. Outro ponto importante, mas não determinante, é especificar a classifi- cação do dado junto com o nome. As- sim, se a cor do veículo fizer referên- cia a uma tabela de cores e, portan- to, eu for armazenar o código da cor, é comum utilizar-se CD ou COD antes do nome. O nome do campo ficaria CDCOR, por exemplo. CLASSIFICAÇÃO 024_CRIACAO 25/02/2006 21:57 Page 26 CRIAÇÃO COLEÇÃO INFO > 29 CRIAÇÃO 28aberto pos- suem interfaces amigáveis que per- mitem criar e manter todas as es- truturas do banco rapidamente. Al- gumas podem ser acessadas re- motamente, o que facilita o pro- cesso de manutenção e acompa- nhamento que o DBA faz no ban- co de dados. A tendência é que os gerencia- dores sejam cada vez mais auto- matizados, em especial no que diz respeito ao desempenho. Os ajus- PROJETO LÓGICO DE DADOS PROJETO FÍSICO DE DADOS CRIAÇÃO DO BANCO DE DADOS Análise e modelagem utilizando o Modelo de Entidade e Relacionamento e Normalização de Dados Desenho com definição de tabelas, índices, visões etc. Criação de scripts para execução do gerenciador de banco de dados BANCO DE DADOS CRIADO PROCESSO DE CRIAÇÃO DE BANCO DE DADOS Programação: no SQL Server 2005 dá para criar consultas sem escrever código 024_CRIACAO 25/02/2006 22:17 Page 28 CRIAÇÃO COLEÇÃO INFO > 29 CRIAÇÃO 28 31© ILUSTRAÇÃO PAVÃO s programadores podem escolher a linguagem que quiserem para construir aplicativos que acessem o banco de dados. Mas não têmcomo escapar da SQL (Structured Query Lan- guage). Se o TCP/IP é o idioma da in- ternet, podemos dizer que a SQL tem a mesma função nos bancos de da- dos. A linguagem foi desenvolvida na década de 70 pela IBM com uma úni- ca finalidade: manipular bancos de da- dos. A SQL — em muitos casos pro- nunciada como SEQUEL — é adotada por todos os sistemas gerenciadores mais utilizados no mercado, como Ora- cle, MySQL e Microsoft SQL Server. No nível mais avançado, um pro- gramador precisa se dedicar para dominar a SQL, mesmo porque di- versos bancos de dados possuem ex- tensões proprietárias, funções mais O 031_LINGUAGENS 25/02/2006 22:21 Page 31 LINGUAGENS COLEÇÃO INFO > 33 LINGUAGENS 32 LINGUAGENS DE ACESSO Opções não faltam para os desen- volvedores de programas de acesso a banco de dados. As mais popula- res são ASP, Perl, PHP e Java. Cada uma dessas linguagens tem suas van- tagens e desvantagens, e a escolha depende de uma série de fatores, co- mo compatibilidade, custo e porta- bilidade. Conheça essas opções. PHP, A POPULAR Uma solução bastante popular entre os web- masters de sites dinâmicos é o PHP (Personal Home Page), criado pelo programador Ras- mus Leedorf. A linguagem funcio- na tanto em Unix quanto em Win- dows e possui suporte para diver- sos bancos de dados, incluindo MySQL, Sybase, SQL e Oracle. A sintaxe possui alguns elemen- tos derivados do Perl, mas é bem mais simples e exige apenas noções básicas de programação. Além dis- so, há outra qualidade muito impor- tante, que beneficia uma parte sen- sível de todos nós: o bolso. O inter- pretador PHP (programa que pro- cessa as páginas feitas nesse for- mato) é gratuito, e basta baixar e instalar no servidor para começar a criar um website dinâmico. ASP, A OPÇÃO WINDOWS O ASP (Active Ser- ver Pages) não é exatamente uma linguagem de programação, mas o que a Microsoft define como “ambiente de execução de scripts”. Na maior parte das vezes, as instruções são escritas em VBScript, que é derivado do Visual Basic, tam- bém filhote da Microsoft. A penetração do Visual Basic no mercado contribui bastante para o crescimento do ASP. Como a quanti- dade de programadores VB é gran- de, fica mais fácil para as empresas contratarem profissionais que desen- volvam aplicações em VBScript. Aderir ao ASP significa quase sem- pre optar pelo mundo Windows, uma vez que as páginas ASP só rodam na- tivamente em servidores Windows com servidor web IIS (Internet Infor- mation Server), da Microsoft. É pos- sível rodar páginas ASP em sistemas Unix por intermédio de soluções co- merciais, como o ChiliASP, ou usan- do o OpenASP, no servidor web Apa- che. Mas a implementação desse ti- po de solução costuma ser problemá- tica para os webmasters. JAVA, A ECLÉTICA A linguagem Java é a al- ternativa de programa- ção criada pela Sun Mi- crosystems. É uma lin- guagem robusta, com funções complexas. Possui como principal vantagem, a portabilidade — roda em qualquer plataforma, de palmtop a main- frame, de sistemas embarcados a programas sérios de internet banking, por exemplo. Profissionais especializados em Java estão entre os mais disputados do mercado. PERL, A VETERANA A linguagem Perl (Practical Extraction and Reporting Lan- guage) foi criada em 1987 pelo progra- mador Larry Wall para resolver tare- fas de administração em sistemas Unix. Wall divulgou a primeira versão de Perl nas listas de discussão da Use- net e logo programadores de todo o mundo começaram a dar sugestões para o aprimoramento da linguagem. Uma das vantagens de Perl é a por- tabilidade. Os scripts podem ser trans- feridos do Unix para o Windows e vi- ce-versa com pouca ou nenhuma mo- dificação. A linguagem é expandida pelo uso de módulos. 031_LINGUAGENS 25/02/2006 22:22 Page 32 LINGUAGENS COLEÇÃO INFO > 33 LINGUAGENS 32 LINGUAGENS DE ACESSO Opções não faltam para os desen- volvedores de programas de acesso a banco de dados. As mais popula- res são ASP, Perl, PHP e Java. Cada uma dessas linguagens tem suas van- tagens e desvantagens, e a escolha depende de uma série de fatores, co- mo compatibilidade, custo e porta- bilidade. Conheça essas opções. PHP, A POPULAR Uma solução bastante popular entre os web- masters de sites dinâmicos é o PHP (Personal Home Page), criado pelo programador Ras- mus Leedorf. A linguagem funcio- na tanto em Unix quanto em Win- dows e possui suporte para diver- sos bancos de dados, incluindo MySQL, Sybase, SQL e Oracle. A sintaxe possui alguns elemen- tos derivados do Perl, mas é bem mais simples e exige apenas noções básicas de programação. Além dis- so,há outra qualidade muito impor- tante, que beneficia uma parte sen- sível de todos nós: o bolso. O inter- pretador PHP (programa que pro- cessa as páginas feitas nesse for- mato) é gratuito, e basta baixar e instalar no servidor para começar a criar um website dinâmico. ASP, A OPÇÃO WINDOWS O ASP (Active Ser- ver Pages) não é exatamente uma linguagem de programação, mas o que a Microsoft define como “ambiente de execução de scripts”. Na maior parte das vezes, as instruções são escritas em VBScript, que é derivado do Visual Basic, tam- bém filhote da Microsoft. A penetração do Visual Basic no mercado contribui bastante para o crescimento do ASP. Como a quanti- dade de programadores VB é gran- de, fica mais fácil para as empresas contratarem profissionais que desen- volvam aplicações em VBScript. Aderir ao ASP significa quase sem- pre optar pelo mundo Windows, uma vez que as páginas ASP só rodam na- tivamente em servidores Windows com servidor web IIS (Internet Infor- mation Server), da Microsoft. É pos- sível rodar páginas ASP em sistemas Unix por intermédio de soluções co- merciais, como o ChiliASP, ou usan- do o OpenASP, no servidor web Apa- che. Mas a implementação desse ti- po de solução costuma ser problemá- tica para os webmasters. JAVA, A ECLÉTICA A linguagem Java é a al- ternativa de programa- ção criada pela Sun Mi- crosystems. É uma lin- guagem robusta, com funções complexas. Possui como principal vantagem, a portabilidade — roda em qualquer plataforma, de palmtop a main- frame, de sistemas embarcados a programas sérios de internet banking, por exemplo. Profissionais especializados em Java estão entre os mais disputados do mercado. PERL, A VETERANA A linguagem Perl (Practical Extraction and Reporting Lan- guage) foi criada em 1987 pelo progra- mador Larry Wall para resolver tare- fas de administração em sistemas Unix. Wall divulgou a primeira versão de Perl nas listas de discussão da Use- net e logo programadores de todo o mundo começaram a dar sugestões para o aprimoramento da linguagem. Uma das vantagens de Perl é a por- tabilidade. Os scripts podem ser trans- feridos do Unix para o Windows e vi- ce-versa com pouca ou nenhuma mo- dificação. A linguagem é expandida pelo uso de módulos. 031_LINGUAGENS 25/02/2006 22:22 Page 32 UM SQL SERVER FÁCIL DE USAR A VERSÃO GRÁTIS DO BANCO DE DADOS DA MICROSOFT TEM ASSISTENTE E MUITOS RECURSOS POR NIVALDO FORESTI TESTE/SQL SERVER 34 Pequenas empresas e desenvolvedores são o alvo do SQL Server 2005 Express Management Studio: suíte de administração e desenvolvimento 034_SQL_SERVEREXPRESS 25/02/2006 23:01 Page 34 TESTE/SQL SERVER COLEÇÃO INFO > 35 SQL SERVER 2005 EXPRESS FABRICANTE PRÓ CONTRAS INSTALAÇÃO GERENCIAMENTO FERRAMENTAS DESENVOLVIMENTO SEGURANÇA AVALIAÇÃO TÉCNICA (1) PREÇO CUSTO/BENEFÍCIO ONDE ENCONTRAR Microsoft Fácil de usar e gerenciar Suporta apenas um processador, 1 GB de memória e bancos de até 4GB 8,5 Rápida, com verificação de pré-requisitos e primeiros passos 7,5 Possui administração similar à da versão Standard, mas faltam funcionalidades 6,5 Fica devendo ferramentas como o DTS para a importação de dados 8,5 Traz todos os recursos das demais versões, inclusive suporte nativo a XML 8,0 Conta com criptografia baseada em chaves e replicação de dados via web 7,6 Gratuito www.info.abril.com.br/ download/4339.shtml (1) Média ponderada considerando os seguintes itens e respectivos pesos: Instalação (10%), Gerenciamento (35%), Ferramentas (35%), Desenvolvimento (10%) e Segurança dos dados (10%). O SQL Server Express ganha 0,2 ponto na avaliação técnica devido ao bom desempenho do seu fabricante na Pesquisa INFO de Marcas 2005. view (CTP) não acompanha a instala- ção. É preciso fazer o download se- paradamente do CTP no endereço www.info.abril.com.br/download/ 4454.shtml. RECURSOS Não espere que a Microsoft tenha da- do tudo de bandeja nessa versão dis- ponível gratuitamente para você. Fal- tam vários recursos. Você não encon- trará o DTS (Data Transformation System), o que dará muita dor de ca- beça na hora de importar dados de outros formatos de arquivo para den- tro do banco de dados. Também não terá a pesquisa em texto, os serviços de notificação e os recursos de busi- ness intelligence que tornam a ver- são Enterprise bastante atraente pa- ra as empresas maiorzinhas. Outras restrições importantes são o suporte a apenas um processador, somente 1 GB de memória RAM e até 4 GB de tamanho do banco de dados. Se bem que é difícil uma pequena em- presa bater nesses limites. FUNCIONALIDADES Nem tudo é problema. O mecanismo de acesso a dados MSDE (Microsoft Desktop Engine), um SQL Server ru- dimentar para desktops, desapare- ceu com o advento do Express. E, com ele, sumiu a restrição de desempe- nho quando existiam mais de cinco conexões simultâneas ao banco de dados. Toda a funcionalidade progra- mática está no Express, até mesmo o suporte a XML e a integração da lin- guagem CLR (Common Language Runtime) da .Net com a Transact-SQL, a linguagem de comandos SQL da Mi- crosoft. O novo conjunto de objetos e a habilidade de agir como cliente na replicação de dados e nos cená- rios de envio de mensagens não fal- taram na versão gratuita. Em suma, dá para aproveitar bastante até serem necessárias mais funcionalidades. 034_SQL_SERVEREXPRESS 25/02/2006 22:28 Page 35 Utilitários: inclui importação de XML ORACLE EM VERSÃO LIGHT A EDIÇÃO GRATUITA DO PODEROSO BANCO DE DADOS CHEGA COM RECURSOS DE SOBRA POR ERIC COSTA TESTE/ORACLE EXPRESS 36 37 Apesar de ser relativamente sim- ples, a interface web funcionabem, trazendo recursos suficientes para a criação e a manutenção de ban- cos de dados. Ainda existe, claro, uma ferramenta para migrar um banco de dados do Oracle Express para o Oracle 10g pago. Uma grande vantagem da versão Express do Oracle em relação ao tam- bém gratuito MySQL está no supor- te ao PL/SQL, a versão turbinada do SQL feita pela Oracle. Com ela, é pos- sível acrescentar mais funcionalida- de em stored procedures (ou rotinas armazenadas), o que pode diminuir a necessidade de manutenção futu- ra dos programas que usem o ban- co de dados. Outra vantagem do Ora- cle Express é a robustez do banco de dados, que traz a base do respei- tado Oracle 10g. Para quem vai de- senvolver software, a versão Express tem o mesmo suporte a linguagens de programação do Oracle 10g, in- tegrando-se com Java, C++, PHP, com os principais dialetos da tecno- logia .Net (como C# e VB.NET), en- tre outros. O suporte do Oracle Ex- press é feito pelos próprios usuários, que ajudam uns aos outros em um Browser: controle sobre cada objeto ORACLE 10G EXPRESS EDITION FABRICANTE PRÓS CONTRAS COMPATIBILIDADE INSTALAÇÃO RECURSOS FERRAMENTAS AVALIAÇÃO TÉCNICA PREÇO (R$) (1) CUSTO/BENEFÍCIO ONDE ENCONTRAR Oracle Dispensa hardware parrudo, traz recursos de primeira Limitações ao tamanho do banco de dados, à memória e CPU usadas 8,0 Roda em Windows e Linux (distribuições compatíveis com pacotes RPM) 8,0 Instalação simples e direta tanto no Windows quanto no Linux 8,5 Suporte a PL/SQL, integra-se com Java, C++, VB.NET, entre outras linguagens 8,0 Gerenciamento pelo browser, com ferramenta de construção de consultas 8,4 Gratuito www.info.abril.com.br/ download/4346.shtml (1) Média ponderada considerando os seguintes itens e respectivos pesos: Compatibilidade (20%), Instalação (20%), Recursos (30%) e Ferramentas (30%). O Oracle Express ganha 0,2 ponto na Avaliação Técnica devido ao bom desempenho do seu fabricante na Pesquisa INFO de Marcas 2005. grupo de discussão mediado por pro- fissionais da Oracle. Ao baixar o Ora- cle Express, é possível cadastrar-se nesse grupo automaticamente. FIQUE LIGADO > Limitações tornam o Oracle 10g Express indicado para as pequenas empresas e os desenvolvedores 036_ORACLE_EXPRESS-8 25/02/2006 22:30 Page 36 Utilitários: inclui importação de XML ORACLE EM VERSÃO LIGHT A EDIÇÃO GRATUITA DO PODEROSO BANCO DE DADOS CHEGA COM RECURSOS DE SOBRA POR ERIC COSTA TESTE/ORACLE EXPRESS 36 37 Apesar de ser relativamente sim- ples, a interface web funciona bem, trazendo recursos suficientes para a criação e a manutenção de ban- cos de dados. Ainda existe, claro, uma ferramenta para migrar um banco de dados do Oracle Express para o Oracle 10g pago. Uma grande vantagem da versão Express do Oracle em relação ao tam- bém gratuito MySQL está no supor- te ao PL/SQL, a versão turbinada do SQL feita pela Oracle. Com ela, é pos- sível acrescentar mais funcionalida- de em stored procedures (ou rotinas armazenadas), o que pode diminuir a necessidade de manutenção futu- ra dos programas que usem o ban- co de dados. Outra vantagem do Ora- cle Express é a robustez do banco de dados, que traz a base do respei- tado Oracle 10g. Para quem vai de- senvolver software, a versão Express tem o mesmo suporte a linguagens de programação do Oracle 10g, in- tegrando-se com Java, C++, PHP, com os principais dialetos da tecno- logia .Net (como C# e VB.NET), en- tre outros. O suporte do Oracle Ex- press é feito pelos próprios usuários, que ajudam uns aos outros em um Browser: controle sobre cada objeto ORACLE 10G EXPRESS EDITION FABRICANTE PRÓS CONTRAS COMPATIBILIDADE INSTALAÇÃO RECURSOS FERRAMENTAS AVALIAÇÃO TÉCNICA PREÇO (R$) (1) CUSTO/BENEFÍCIO ONDE ENCONTRAR Oracle Dispensa hardware parrudo, traz recursos de primeira Limitações ao tamanho do banco de dados, à memória e CPU usadas 8,0 Roda em Windows e Linux (distribuições compatíveis com pacotes RPM) 8,0 Instalação simples e direta tanto no Windows quanto no Linux 8,5 Suporte a PL/SQL, integra-se com Java, C++, VB.NET, entre outras linguagens 8,0 Gerenciamento pelo browser, com ferramenta de construção de consultas 8,4 Gratuito www.info.abril.com.br/ download/4346.shtml (1) Média ponderada considerando os seguintes itens e respectivos pesos: Compatibilidade (20%), Instalação (20%), Recursos (30%) e Ferramentas (30%). O Oracle Express ganha 0,2 ponto na Avaliação Técnica devido ao bom desempenho do seu fabricante na Pesquisa INFO de Marcas 2005. grupo de discussão mediado por pro- fissionais da Oracle. Ao baixar o Ora- cle Express, é possível cadastrar-se nesse grupo automaticamente. FIQUE LIGADO > Limitações tornam o Oracle 10g Express indicado para as pequenas empresas e os desenvolvedores 036_ORACLE_EXPRESS-8 25/02/2006 22:30 Page 36 TESTE/DB2 EXPRESS COLEÇÃO INFO > 39 TESTE/DB2 EXPRESS 38abrem a Central de Controle. NAS RÉDEAS O Centro de Controle é o ponto de partida de todas as opera- ções, controles e ad- ministração das bases de dados cria- das no DB2 Express-C. Como pode haver mais de uma instância ope- rando na mesma máquina, o Cen- tro de Controle pode dar conta de todas elas. É um utilitário bastante rico em funcionalidade para criar e modificar tabelas, executar consul- tas (queries) e análises complexas, monitorar o status dos bancos de dados, funções de importação e ex- portação de dados, dentre outras. Os usuários contam com uma in- terface bastante fácil de usar, simi- lar nos sistemas operacionais Win- dows e Linux. Essa estratégia segue a da concorrente Oracle, que está usando os navegadores para man- ter interfaces semelhantes em to- das as plataformas que suporta. Na plataforma Win- dows, a Central de Controle pode ser aberta a partir do me- nu Iniciar ou clican- do-se com o botão di- reito no ícone do DB2 na bandeja de sistema. Uma janela com uma lista similar à do Explorer, contendo ban- co de dados e seus objetos, é mos- trada ao abrir o programa. DB2 GRÁTIS COM TUDO DENTRO A VERSÃO DEGUSTAÇÃO DO BANCO DE DADOS DA IBM VEM REPLETA DE BOAS FERRAMENTAS POR NIVALDO FORESTI Instalação: o assistente guia o usuário durante todo o processo Centro de Controle: dá conta de todas as instâncias em operação FIQUE LIGADO > Fácil de usar e cheio de ferramentas, o DB2 Express-C vai bem nas pequenas empresas 038_DB2_EXPRESS 25/02/2006 22:31 Page 38 TESTE/DB2 EXPRESS COLEÇÃO INFO > 39 TESTE/DB2 EXPRESS 38 Fácil de usar e cheio de ferramentas, o DB2 Express-C vai bem nas pequenas empresas 038_DB2_EXPRESS 25/02/2006 22:31 Page 38 TESTE/DB2 EXPRESS COLEÇÃO INFO > 41 TESTE/DB2 EXPRESS 40suporte a máquinas com dois processadores e replicações complexas Não tem ferramentas de datawarehouse e limita a capacidade de memória 8,4 Rápida, com verificação de pré-requisitos e primeiros passos 9,0 Permite gerenciar várias instâncias do programa, um ou mais bancos, projetos e diagnósticos 8,5 Replicação, central de tarefas, centro de funcionamento com alertas, centro de dados inteligentes 8,0 Em WebSphere Studio, Java, C, C++, Fortran, Rexx, Perl entre outras linguagens 7,5 Replicação de dados entre bancos, usando sistemas de mensagens 8,5 Gratuito www.info.abril.com.br/ download/4435.shtml (1) Média ponderada considerando os seguintes itens e respectivos pesos: Instalação (10%), Gerenciamento (35%), Ferramentas (35%), Desenvolvimento (10%) e Segurança dos dados (10%). Visual Explain: ferramenta especial para a análise gráfica das consultas ao banco de dados é o limite de 4GB para a memória RAM. Alguns recursos encontrados nas versões pagas, como ferramen- tas de datawarehouse e drivers pa- ra o banco de dados Informix, não acompanham o DB2 Express-C. Mas quando esses recursos forem ne- cessários, o usuário poderá adotar uma versão paga do produto sem as dores e os custos de migração. Desenvolvimento: stored procedures em ambiente gráfico 038_DB2_EXPRESS 25/02/2006 22:32 Page 40 TESTE/DB2 EXPRESS COLEÇÃO INFO > 41 TESTE/DB2 EXPRESS 40 43 quase todos os siste- mas operacionais mais importantes. Há versões do MySQL para Windows, Linux, Unix, Solaris, Mac OS X, FreeBSD, HP-UX, IBM AIX e outros. Há também versões para plataformas de hardware Intel e AMD, de 32 e 64 bits, além dos chips Sparc, Al- pha, PowerPC etc. INFO analisou a versão 5.0.15 do MySQL para Linux num servidor Pentium 4 de 3 GHz, rodando a distribuição SUSE 10 de 64 bits. Também instalamos o ban- co de dados num computador com o Windows XP. Nos dois casos, a instalação não ofereceu nenhuma dificuldade especial. Algumas das funções que es- tréiam no MySQL 5.0 eram há mui- to tempo reclamadas pelos usuá- rios. A principal de- las é o suporte a transações.Agora, o gerenciador é capaz de processar transa- ções do tipo ACID, obrigatórias em apli- cações de missão crí- tica. Uma transação, para os não iniciados, é uma operação que só faz sentido se todos os seus pas- sos forem executados. Um exem- plo clássico é a transferência de dinheiro de uma conta bancária para outra. Há duas tarefas: debi- tar o valor numa conta e creditá- lo na outra. Se apenas uma das ta- refas é executada, o sistema se tor- na inconsistente. Nos bancos de dados profissionais, o processa- mento de transações garante a in- tegridade de operações desse ti- po. Se, por exemplo, o hardware Controles: uma só interface para controlar usuários, montar rotinas e verificar carga MySQL Administrator: interface gráfica de gerenciamento FIQUE LIGADO >Muito utilizado em sites simples, o MySQL 5.0 já dá conta de aplicações corportivas 42_BANCO_SQL5-1 25/02/2006 22:33 Page 42 O MYSQL GANHA MÚSCULOS PREFERIDO PELA TURMA DO LINUX, O BANCO DE DADOS INCORPORA NOVAS FUNÇÕES E CORTEJA O MERCADO CORPORATIVO POR CARLOS MACHADO, COM LUIZ CRUZ TESTE/MYSQL 42 43 quase todos os siste- mas operacionais mais importantes. Há versões do MySQL para Windows, Linux, Unix, Solaris, Mac OS X, FreeBSD, HP-UX, IBM AIX e outros. Há também versões para plataformas de hardware Intel e AMD, de 32 e 64 bits, além dos chips Sparc, Al- pha, PowerPC etc. INFO analisou a versão 5.0.15 do MySQL para Linux num servidor Pentium 4 de 3 GHz, rodando a distribuição SUSE 10 de 64 bits. Também instalamos o ban- co de dados num computador com o Windows XP. Nos dois casos, a instalação não ofereceu nenhuma dificuldade especial. Algumas das funções que es- tréiam no MySQL 5.0 eram há mui- to tempo reclamadas pelos usuá- rios. A principal de- las é o suporte a transações. Agora, o gerenciador é capaz de processar transa- ções do tipo ACID, obrigatórias em apli- cações de missão crí- tica. Uma transação, para os não iniciados, é uma operação que só faz sentido se todos os seus pas- sos forem executados. Um exem- plo clássico é a transferência de dinheiro de uma conta bancária para outra. Há duas tarefas: debi- tar o valor numa conta e creditá- lo na outra. Se apenas uma das ta- refas é executada, o sistema se tor- na inconsistente. Nos bancos de dados profissionais, o processa- mento de transações garante a in- tegridade de operações desse ti- po. Se, por exemplo, o hardware Controles: uma só interface para controlar usuários, montar rotinas e verificar carga MySQL Administrator: interface gráfica de gerenciamento FIQUE LIGADO >Muito utilizado em sites simples, o MySQL 5.0 já dá conta de aplicações corportivas 42_BANCO_SQL5-1 25/02/2006 22:33 Page 42 TESTE/MYSQL 44 47 elho conhecido das co- munidades de software livre, o PostgreSQL de- morou um pouco mais do que o MySQL para se popularizar, pro- vavelmente por ser focado em aplica- ções críticas. Muitos dos recursos que o MySQL apresenta na versão 5.0, tais como o suporte a gatilhos, stored pro- cedures e transações, já fazem parte do PostgreSQL há tempos. O impulso veio com a versão para Windows e a colaboração de empresas como Sun, Fujitsu e Pervasive Software. Com ex- periência no desenvolvimento e em- pacotamento de versões comerciais afinadas com as necessidades das cor- porações, elas estão colocando terno e gravata no produto. O PostgreSQL também foi vítima dos rótulos lento e pesado. Pode-se di- zer que o logotipo do produto — um elefante azul — até reforce essa ima- gem. Mas, debru- çando-se sobre a versão 8.1, mais recente, logo se percebe que is- so não é verdade. A distribuição de códigos binários do Post- greSQL 8.1 prontos para ins- talar está disponível apenas para Li- nux ou Windows. Para outras plata- formas Unix, é preciso baixar o códi- go-fonte e compilar o sistema. No Linux, o PostgreSQL vem como pacote binário na maior parte das dis- tribuições, mas para quem gosta de aventura e tembastante tempo, po- de baixar o código-fonte e compilar. No ambiente Windows, o progra- V PostgreSQL: o pgAdmin faz a administração do banco VERSÃO 8.1 CONTA COM DRIVERS E CAMADAS DE SOFTWARE QUE GARANTEM SUA CONECTIVIDADE POR HELIO SILVA 047_POSTGRES 25/02/2006 22:39 Page 47 TESTE/POSTGRESQL COLEÇÃO INFO > 49 TESTE/POSTGRESQL 48 Recursos poderosos indicam o PostgreSQL para as aplicações de missão crítica mes bases com respostas em tempo aceitável, requisito básico para siste- mas de datawarehouse, cujos bancos de dados podem chegar facilmente aos terabytes. Esse tipo de sistema está na ordem do dia das empresas graças à redução dos custos de pro- cessamento e armazenamento, além, é claro, da necessidade constante de buscar competitividade. 047_POSTGRES 25/02/2006 22:39 Page 48 TESTE/POSTGRESQL COLEÇÃO INFO > 49 TESTE/POSTGRESQL 48Escritório: tels. (61) 3315-7554/55/56/57, fax (61) 3315-7558; Representante: Carvalhaw Marketing Ltda., tels (61) 3426-7342/ 3223-0736/ 3225-2946/ 3223-7778, fax (61) 3321-1943, e-mail: starmkt@uol.com.br Campinas CZ Press Com. e Representações, telefax (19) 3233-7175, e-mail: czpress@czpress.com.br Campo Grande Josimar Promoções Artísticas Ltda. tel. (67) 3382-2139 e-mail: jairo_gal- vao@hotmail.com Cuiabá Fênix Propaganda Ltda., tels. (65) 9235-7446/9602-3419, e-mail: lucianooliveir@uol.com.br Curitiba Escritório: tel. (41) 3250- 8000/8030/8040/8050/8080, fax (41) 3252-7110; Representante: Via Mídia Projetos Editoriais Mkt. e Repres. Ltda., telefax (41) 3234-1224, e-mail: viamidia@viamidi- apr.com.br Florianópolis Interação Publicidade Ltda. tel. (48) 3232-1617, fax (48) 3232-1782, e-mail: fgorgonio@interacaoabril.com.br Fortaleza Midiasolution Repres. e Negoc. em Meios de Comunicação, telefax (85) 3264-3939, e-mail: midiasolution@midiasolution.net Goiânia Middle West Representações Ltda., tels.(62) 3215-5158, fax (62) 3215-9007, e-mail: publicidade@middlewest.com.br Joinville Via Mídia Projetos Editoriais Mkt. e Repres. Ltda., telefax (47) 3433-2725, e-mail: viamidiajoinvil- lle@viamidiapr.com.br Manaus Paper Comunicações, telefax (92) 3656-7588, e-mail: paper@internext.com.br MaringáAtitude de Comunicação e Representação, tele- fax (44) 3028-6969, e-mail: m.atitude@uol.com.br Porto Alegre Escritório: tel. (51) 3327-2850, fax (51) 3227-2855; Representante: Print Sul Veículos de Comunicação Ltda., telefax (51) 3328-1344/3823/4954, e-mail: ricardo@printsul.com.br ; Multimeios Representações Comerciais, tel.(51) 3328-1271, e-mail: multimeiosrepco@uol.com.br Recife MultiRevistas Publicidade Ltda., telefax (81) 3327-1597, e-mail: multirevistas@uol.com.br Ribeirão Preto tel. (16) 3964-5516, fax (16) 632-0660, e-mail: achrisos- tomo@abril.com.br Rio de Janeiro pabx: (21) 2546-8282, fax (21) 2546-8253 SalvadorAGMN Consultoria Public. e Representação, tel.(71) 3341-4992/1765/9824/9827, fax: (71) 3341-4996, e-mail: abrilagm@uol.com.br Vitória ZMR - Zambra Marketing Representações, tel. (27) 3315-6952, e-mail: samuelzambrano@intervip.com.br BANCO DE DADOS_006.qxd 25/02/2006 21:02 Page 6 RECADO DA REDAÇÃO DÁ-LHE INFORMAÇÃO! universo do software é grande e abriga mundos muito peculiares, como o dos bancos de dados. De obscuros repositórios dos main- frames, esses programas passaram a estrelas de todo porte, organizan- do a explosão de informações gera- das pela vida digital de pessoas e empresas. Neles, tabelas são mais que colunas e linhas, os dados se agrupam em entidades e se relacio- nam abertamente, transacionam, disparam gatilhos e administram res- trições. Nesse mundinho, o e/AND não soma, diminui. E quem não sabe dessa e outras pegadinhas lógicas, perde tempo fazendo besteira. É aqui que se encaixa este especial. Aos novatos, contamos a história gloriosa dos bancos de dados e des- trinchamos seus conceitos. De ban- deja, vai um roteiro para escolher o sistema gerenciador, planejar e exe- cutar o banco da melhor forma pos- sível. Testamos as novíssimas ver- sões gratuitas dos poderosos Oracle, DB2 e SQL Server 2005, dos livres MySQL, PostgreSQL e Firebird e do beta repaginado do Access 12. Entre- gamos o jeito profissional de mon- tar tabelas e consultas, os segredos das interfaces de administração e uma porção de tutoriais com os variados bancos. Você vai saber como extrair as informações Exif das fotos digitais para o banco, criar rela- tórios com views, controlar os livros emprestados, cadastrar e-mails váli- dos e muito mais. E se a animação chegar ao ponto de devotar a carrei- ra à administração dos bancos de dados, estão aqui os caminhos para as especializações mais valorizadas da área. Aproveite. LUCIA REGGIANI EDITORA DE BANCO DE DADOS O INFO COLEÇÃO Uma publicação mensal da Editora Abril Para contatar a redação: atleitorinfo@abril.com.br Para assinar a Coleção: (11) 3347.2121 — Grande São Paulo 0800-701-2828 — Demais localidades abril.assinaturas@abril.com.br COLEÇÃO INFO > 7 BANCO_005i.qxd 25/02/2006 21:30 Page 7 HISTÓRIA COLEÇÃO INFO > 9 A AVENTURA DOS DADOS DO MAINFRAME À INTERNET, OS BANCOS DE DADOS TÊM MUITO PARA CONTAR POR TAGIL OLIVEIRA RAMOS HISTÓRIA 8 9 A AVENTURA DOS DADOS DO MAINFRAME À INTERNET, OS BANCOS DE DADOS TÊM MUITO PARA CONTAR POR TAGIL OLIVEIRA RAMOS HISTÓRIA 8dessas linguagens. Além do pacote básico, é sem- pre bom dar uma checada em si- tes que mantém projetos ligados ao PostgreSQL. Um deles é o site pgfoundry.org, onde podem ser encontrados utilitários e até mes- mo sistemas completos. Uma ausência sentida é o suporte nativo ao XML. Em aplicações com trocas de dados entre sistemas hete- rogêneos, como em operações de transmissão eletrônica de pedidos e faturas entre empresas ou intercâm- bio de dados bancários, é de se es- perar que existam di- ferentes bancos atuan- do do outro lado, e o mercado aponta para o XML como melhor forma de garantir es- sa conversa. Quem aderir ao PostgreSQL terá de escrever suas interfaces XML. BOA HERANÇA Um velho dilema da crescente co- munidade de programadores que trabalham com a abordagem da orientação a objeto (OOP) é que eles raciocinam e projetam seus sistemas pensando em objetos e, no entanto, têm de lidar com bancos de dados relacionais na hora de depositar seus dados. Eles gostariam de ter bancos de dados que entendessem um pou- co mais sua abordagem. O Post- greSQL faz um pequeno esforço nes- se sentido, implementando uma das propriedades da orientação a obje- to que é a herança. Para compreender a aplicação da herança em um banco de dados, ima- gine o desenvolvimento de um sis- tema para uma loja de barcos. A pri- meira providência é criar a tabela Barcos com todas as características comuns a qualquer barco (código, preço, descrição etc.). Em seguida, cria-se uma tabela filha que trata es- pecificamente de veleiros e que her- da as características de Barcos, acres- centando-se os atributos específicos de um veleiro como a altura do mas- tro e o tipo de vela. Por fim, cria-se uma tabela Lanchas, que também é filha de Barcos, adicionando-se a ela atributos como potência do motor. Alterações em Barcos, como a cria- ção do atributo Preço Promocional, por exemplo, automaticamente se refletem em Veleiros e Lanchas. SINCRONIZAÇÃO Usando-se um dos seus diversos sis- temas de replicação, o PostgreSQL pode ser aplicado em empresas de pequeno e médio porte que têm ne- cessidade de sincronização de dados entre matriz e filiais. Além da sincronização, o banco de dados tem evoluído em recursos para resistir a falhas e operar com múltiplos processadores, o que o torna uma boa opção para os pro- jetos de missão crítica. Possui tam- bém a habilidade de lidar com enor- FIQUE LIGADO >Recursos poderosos indicam o PostgreSQL para as aplicações de missão crítica mes bases com respostas em tempo aceitável, requisito básico para siste- mas de datawarehouse, cujos bancos de dados podem chegar facilmente aos terabytes. Esse tipo de sistema está na ordem do dia das empresas graças à redução dos custos de pro- cessamento e armazenamento, além, é claro, da necessidade constante de buscar competitividade. 047_POSTGRES 25/02/2006 22:39 Page 48 FIREBIRD POUPA A MÁQUINA A VERSÃO 1.5.3 TEM RECURSOS PODEROSOS E DISPENSA EQUIPES DE MANUTENÇÃO POR HELIO SILVA TESTE/FIREBIRD 50 51 base ou Firebird. Ao final do processo descobre-se que fo- ram criados alguns textos dos manuais em arquivos texto e PDF e apenas um programa baseado no velho prompt de comando. Isso porque o pacote básico não traz uma interface gráfica que facilite a administração do banco. Existe um projeto de interface gráfica de có- digo aberto chamado FlameRobin (www.flamerobin.org), que no fu- turo deve fazer parte do pacote, mas seu desenvolvimento ainda es- tá em estágio inicial. INTERFACES De qualquer forma, o usuário não fi- ca desprovido de interface de geren- ciamento. Pode escolher uma entre as diversas disponíveis no site do IB- Phoenix (www.ibphoenix.com). A maior parte delas é shareware com versões livres sem algumas funcionalidades. No teste do INFOLAB, utilizamos três interfaces de ge- renciamento: a DB- Manager (www.info. abril.com.br/down- load/3682.shtml), da DBTools, a IBExpert (www.info.abril.com. IBExpert: traz recursos arrojados, como análise de performance br/download/4047.shtml), da H-K software, e a EMS SQL Manager (www.info.abril.com.br/down- load/4453.shtml), da EMS Database Management Solutions. O gerenciador EMS SQL Manager empresta ao Firebird uma interfa- ce elegante e funcional, com apa- rência bem próxima do Windows XP, usando o mesmo tipo de íco- nes. Na versão gratuita, ele já pro- vê todos os recursos necessários à administração. Já o brasileiro DBMa- nager tem como vantagem o su- porte em português. Se a intenção for adquirir uma ferramenta para ir além das ativi- dades normais de administração, então vale a pena dar uma boa olha- da no IBExpert em sua versão co- mercial que, além da interface mais completa para admi- nistração, conta com recursos arrojados como análise de per- formance e até pes- quisas OLAP. Relem- brando, por meio do FIQUE LIGADO > Feito para aplicações de médio porte, o Fire- bird oferece baixo cus- to de manutenção 050_FIREBIRD 25/02/2006 22:43 Page 51 TESTE/FIREBIRD COLEÇÃO INFO > 53 TESTE/FIREBIRD 52seridos ou requisitados. Outro ponto forte do Firebird é sua manutenção facilitada, pratica- mente dispensando a presença de um DBA dedicado a atividades de ajustes de desempenho do banco e controle de crescimento da base. A atividade de manutenção se re- sume ao backup e, eventualmente, uma recuperação de dados. Bancos mais sofisticados como PostgreSQL, MS SQL Server, Oracle e DB2 entre outros demandam ajustes especia- lizados durante seu ciclo de implan- tação, crescimento e produção. O baixo custo de manutenção tor- na o Firebird uma boa opção para empresas que não podem contar com uma equipe especializada pa- ra dar suporte a suas aplicações. A portabilidade do banco de dados entre múltiplas plataformas o torna também indicado para aplicações que operam com atualizações de bases off line e que tenham neces- sidade de integração centralizada. Quem pretende adotar o Fire- bird no Brasil, pode contar com o apoio de uma comunidade forte e colaborativa, que pode ser conta- tada pelo portal Firebase (www. firebase.com.br). FIREBIRD 1.5.3 CLASSIC SERVER FABRICANTE PRÓS CONTRA INSTALAÇÃO GERENCIAMENTO FERRAMENTAS DESENVOLVIMENTO SEGURANÇA AVALIAÇÃO TÉCNICA (1) PREÇO LICENÇA CUSTO/BENEFÍCIO ONDE ENCONTRAR FirebirdSQL Foundation Conta com recursos poderosos, como views, transações concorrentes e gatilhos Depende de aplicativos de terceiros para a administração 6,5 Bem traduzida, mas com longas explicações que precisam ser lidas 6,5 Não tem interface gráfica de administração, exigindo ferramentas auxiliares 8,5 Ferramentas CASE, de administração e até OLAP podem ser encontradas na web 8,0 Muito bom para Delphi, com abertura para PHP, Perl, Java e .NET. 6,5 Não tem criptografia 7,4 Gratuito IPL www.info.abril.com.br/ download/2108. (1) Média ponderada considerando os seguintes itens e respectivos pesos: Instalação (10%), Gerenciamento (35%), Ferramentas (35%), Desenvolvimento (10%) e Segurança dos dados (10%). DBManager: produzida no Brasil, a interface dá suporte ao Firebird em português 050_FIREBIRD 25/02/2006 22:44 Page 52 TESTE/FIREBIRD COLEÇÃO INFO > 53 TESTE/FIREBIRD 52 55 TESTE/ACCESS 54o painel apropriado é exibi- do automaticamente. Por exemplo, ao clicar num gráfico, um painel de propriedades da imagem aparece. FORMATOS DA GALERIA O Access e os outros programas do Office passam a trabalhar extensa- mente com galerias. Trata-se de con- juntos predefinidos de formatações ou propriedades, como, por exemplo, o posicionamento de uma imagem em um texto. Os padrões mais co- muns ou freqüentemente usados fi- cam disponíveis para uso imediato. Basta o usuário clicar sobre a repre- sentação gráfica do resultado para que o conjunto de parâmetros seja aplicado. Mas as tradicionais caixas de diálogo continuam disponíveis. OFFICE LIVE Como já acontecia nas versões ante- riores, muitas das novidades do Offi- ce 12 são voltadas ao público empre- sarial. Uma delas é a integração com os serviços online que a Microsoft vem chamando de Office Live. Quando es- ses serviços estiverem disponíveis, os O ACCESS ENTRA EM REFORMA UMA MUDANÇA DRÁSTICA NA INTERFACE COM O USUÁRIO É A PRINCIPAL NOVIDADE DO OFFICE 12, DA MICROSOFT POR PAULO SILVESTRE interface baseada em menus já é tão familiar aos usuários do Windows que pode parecer teme- rário substituí-la por outra. Mas é is- so que a Microsoft está fazendo com o banco de dados Access e os demais integrantes do Office, seu pacote de aplicativos para escritório. O Office 12, nova versão com lançamento previs- to para o fim de 2006, leva adiante uma tendência que já havia se esbo- çado nos betas do Windows Vista. No primeiro beta do Office 12, analisado pelo INFOLAB, os menus desparece- ram e deram lugar a uma interface com o usuário radicalmente diferen- te. A promessa é que, com isso, o soft- ware ficará mais fácil de usar. A ava- liação do INFOLAB é que a nova in- A Access 12: a interface substitui os vários menus por um menu horizontal no alto 054_ACCESS 25/02/2006 23:04 Page 54 TESTE/ACCESS COLEÇÃO INFO > 55 TESTE/ACCESS 54 57 ADMINISTRAÇÃO É TUDO MERGULHE NAS INTERFACES E DESCUBRA RECURSOS BACANAS DO DB2 E DO SQL SERVER 2005 POR NIVALDO FORESTI m sistema de banco de dados não é nada sem a sua parte de administra- ção. Sem ela, teriamos de voltar ̀a época em que comandos com mais de duas linhas precisavam ser di- gitados para criar um campo em uma tabela. Além disso, controlar índices, utilização de campose consumo de memória continuaria impensável em bancos de dados para pequenas e mé- dias empresas. Para a alegria geral dos usuários, as versões Express gratuitas dos grandes competidoras dessa are- na, Microsoft, Oracle e IBM, contêm re- cursos tão poderosos quanto os dos seus irmãos pagos. Aqui vamos explo- rar o mundo administrativo de duas versões Express, a do DB2, da IBM, e a do SQL Server 2005, da Microsoft. U Centro de Controle: caixas de diálogo e assistentes conduzem o usuário 057_INTERF_ADMINIS 25/02/2006 23:06 Page 57 TESTE/INTERFACES COLEÇÃO INFO > 59 TESTE/INTERFACES 58 59 TESTE/INTERFACES 58ti- pos diferentes, Char (Ca- racteres) com quatro ti- pos diferentes, binários incluindo BLOB, quatro ti- pos de campos gráficos, Data, Hora, TIMESTAMP, Decimal, Numérico, Real, ponto flutuante e Doublé. Caso você deseje incluir vários cam- pos na tabela, clique em Aplicar em vez de OK, assim a janela permane- ce aberta para a inclusão dos demais campos. O usuário pode definir valores-pa- drão para os tipos CHAR, DATE, TIME e TIMESTAMP. Eles devem ser defi- nidos dentro de aspas simples. Adi- cionalmente, é possível determinar uma fórmula para o preenchimento do campo. No entanto, em nenhum lugar da documentação foram en- contradas funções, tais como Hoje ou Agora, ou como construir essas fór- mulas para incluir nos campos. Os passos seguintes são os de es- colher em que espaço a tabela se- rá criada, a definição de que cam- pos serão chaves, as dimensões e restrições. Com as restrições é pos- sível controlar o lixo que irá popu- lar a sua tabela. Você pode impe- dir que valores acima de 10 ou me- nores que 5 sejam preenchidos em uma coluna ou que somente deter- minados textos existam nela. Uma palavra de aviso é importan- Centro de tarefas: permite executar programas em lote Análise de consulta: um clique em Anexar Plano diz o custo do comando 057_INTERF_ADMINIS 25/02/2006 23:10 Page 58 TESTE/INTERFACES COLEÇÃO INFO > 61 TESTE/INTERFACES 60 61 TESTE/INTERFACES 60no mouse. Todas as in- formações se encontram disponíveis, o banco de dados, a tabela, as colu- nas e as todas as propriedades en- volvidas em cada um deles. Os cam- pos suportam os mais variados tipos e alguns criados pelo próprio usuá- rio para facilitar a padronização por todo o sistema. Por exemplo, você pode criar um campo chamado no- me que tenha um tamanho específi- co e pode ser escolhido em qualquer tabela criada. O DB2 também tem es- sa função, mas ela está um pouco de- sorganizada e escondida na ferra- menta de administração. As consultas podem ser feitas co- mo no QBE, selecionado-se tabelas, campos e opções de filtro, ou escre- vendo-se o comando SQL diretamen- te. Nesse caso, o DB2 é um pouco mais intuitivo para os iniciantes com o seu assistente. Em todas as ja- nelas é possível se realizar filtros. Os filtros abrem ja- nelas que permitem um acesso mais amigável pa- ra os que estão começan- do no trabalho de progra- mação. Criar índices é fácil e intuitivo. Basta clicar no campo ou na pasta índice da tabela e criar índices, até mesmo em XML. Além dis- so, desse menu é possível reorgani- za-los ou recria-los. O mesmo acon- tece com funções e stored procedu- res, todas a um clique do seu mouse. Outro recurso interessante é o de monitoração. Uma janela específica permite verificar quem ou que pro- cessos estão consumindo os recur- sos do servidor onde está o SQL Ser- ver Express 2005. Muito útil para diag- nosticar problemas de desempenho. No geral o programa de adminis- tração é bom de se utilizar. No en- tanto, alguns recursos estão faltan- do. Por exemplo, as tarefas de ma- nutenção se resumem a um assisten- te para backup, pouco para suportar aplicações robustas. Sentimos a fal- ta também de importadores e expor- tadores de dados, o que dificulta aos novatos migrar dados de outros apli- cativos. Essa função existe, mas so- mente para importar dados previa- mente exportados de alguma tabela do SQL Express. SQL Express: todos os elementos disponiveis para criar tabelas Monitoração: verifica os processos que consomem recursos do servidor 057_INTERF_ADMINIS 25/02/2006 23:11 Page 60 TUTORIAL/TABELAS COLEÇÃO INFO > 63 TABELAS SEM MISTÉRIO UM ROTEIRO ESPERTO PARA ENTENDER CADA ITEM E CRIAR TABELAS COM TOQUE PROFISSIONAL POR DANILO WITZEL TUTORIAL/TABELAS 62 63 TABELAS SEM MISTÉRIO UM ROTEIRO ESPERTO PARA ENTENDER CADA ITEM E CRIAR TABELAS COM TOQUE PROFISSIONAL POR DANILO WITZEL TUTORIAL/TABELAS 62guardar números, geralmente utilizados em cálculos matemáticos ou como có- digo de identificação. A proprieda- de Tamanho do Campo para esse ti- po de dado é tam- bém muito impor- tante. Veja na tabe- la “O tamanho dos números” o quanto cada especificação numérica ocupa em cada caso. Com essa tabela, você pode definir o tamanho correto pa- ra o campo, levando em conta a in- formação que você quer guardar e o espaço em disco que ela usará. No entanto, mais importante que o tamanho ocupado é a capacida- de do campo numérico. Se, por exemplo, você escolher para um campo o tipo Número Inteiro, pre- cisa saber de antemão que esse campo não poderá armazenar nú- meros, positivos ou negativos, até cerca de 32700. Seu sistema dará erro se o usuário tentar registrar no campo o valor 40000. ■ DATA/HORA Usado para guardar data e hora. Note que não é data ou hora. O Access guarda esse tipo de dados em 8 bytes. Os limites de datas vão de 1 de janeiro do ano 100 até 31 de dezembro de 9999. Quando você insere apenas a data neste campo, o Access grava a ho- ra zero (00:00:00) como comple- mento da data. Situação idêntica acontece se você informar apenas Tipo de Dados: cuidado na escolha da opção salva a tabela Campo com valores: as opções aparecem na caixa de combinação 062_GUIA_TAB_ACCESS 25/02/2006 23:15 Page 62 TUTORIAL/TABELAS COLEÇÃO INFO > 65 TUTORIAL/TABELAS 64 a;0;_ A máscara de entrada se divide em três partes, separadas pelo pon- to-e-vírgula: a primeira é a própria definição da entra- da; a segunda, que pode ser 0 ou 1, in- dica se os caracteres literais, como o hí- fen do RG(-), devem ser gravados no campo ou não. A op- ção 0 grava esses caracteres; a terceira parte é o ca- ractere que deve ser mostrado quando um dígito não está preen- chido. Você pode colocar qualquer um — o padrão é o sublinhado ( _ ). Para que serve cada caractere na máscara de entrada? A resposta vo- cê tem na tabela Máscaras de En- trada, que mostra cada caractere e sua função. Outro exemplo é a más- cara de entrada do telefone: "(0XX"99") "#999\-9999;0;_ Preenchido o campo, a máscara acima produz um resultado como: (0XX11) _867-9926. Uma opção in- teressante da propriedade Másca- ra de Entrada é que ela pode ser definida como Senha. Basta você digitar senha nessa propriedade e o que o usuário digitar nesse cam- po será exibido como asterisco(*). O Access tem ainda um assistente para máscara de entrada. Clique no botão Construtor e o programa exi- be exemplos de máscara que você pode escolher e definir automati- camente para o seu campo. Outra Assistente de Pesquisa: orientação sobre a origem do dado Assistente de máscara: guia para a digitação correta 062_GUIA_TAB_ACCESS 25/02/2006 23:19 Page 64 TUTORIAL/TABELAS COLEÇÃO INFO > 65 TUTORIAL/TABELAS 64você não confiará nas informações digitadas. Para evitar isso, a pro- priedade Máscara de Entrada defi- ne exatamente como deve ser digi- tado o RG, o CPF, o CEP e outros da- dos que você queira padronizar. Pa- ra o caso do RG, você coloca a se- guinte máscara de entrada: 99.000.000C\->a;0;_ A máscara de entrada se divide em três partes, separadas pelo pon- to-e-vírgula: a primeira é a própria definição da entra- da; a segunda, que pode ser 0 ou 1, in- dica se os caracteres literais, como o hí- fen do RG(-), devem ser gravados no campo ou não. A op- ção 0 grava esses caracteres; a terceira parte é o ca- ractere que deve ser mostrado quando um dígito não está preen- chido. Você pode colocar qualquer um — o padrão é o sublinhado ( _ ). Para que serve cada caractere na máscara de entrada? A resposta vo- cê tem na tabela Máscaras de En- trada, que mostra cada caractere e sua função. Outro exemplo é a más- cara de entrada do telefone: "(0XX"99") "#999\-9999;0;_ Preenchido o campo, a máscara acima produz um resultado como: (0XX11) _867-9926. Uma opção in- teressante da propriedade Másca- ra de Entrada é que ela pode ser definida como Senha. Basta você digitar senha nessa propriedade e o que o usuário digitar nesse cam- po será exibido como asterisco(*). O Access tem ainda um assistente para máscara de entrada. Clique no botão Construtor e o programa exi- be exemplos de máscara que você pode escolher e definir automati- camente para o seu campo. Outra Assistente de Pesquisa: orientação sobre a origem do dado Assistente de máscara: guia para a digitação correta 062_GUIA_TAB_ACCESS 25/02/2006 23:19 Page 64 TUTORIAL/TABELAS 66 [Preto];“não in- formado”[Vermelho]. Se os hobbies forem informados, o texto inserido será exibido em maiúsculas e com a cor preta. Caso contrário, apare- cerá a expressão “não informado” em vermelho. É isso mesmo, pode testar à vontade. Você pode pesqui- sar na Ajuda do Access e descobrir Construtor de campo: exemplos prontos com propriedades definidas 062_GUIA_TAB_ACCESS 25/02/2006 23:22 Page 66 TUTORIAL/TABELAS COLEÇÃO INFO > 67 outras preciosidades sobre como exibir o texto quando ele é digitado. ■ NÚMERO E MOEDA Segue o mesmo padrão do ti- po Texto e Memo- rando, porém com quatro partes. A pri- meira trata os positivos; a segunda, os negativos; a terceira, o zero; e a última, o nulo. Um campo que in- forma saldos financeiros pode ter o seguinte formato: “R$”#,00[Azul];“R$”#,00[Verme- lho];“Zero”;“não informado” Se o saldo é positivo, ele é exibi- do em formato moeda e em cor azul; se negativo, aparece em vermelho; se zero, mostra “Zero”; e se não há informações naquele campo, apa- rece a expressão “não informado”. ■ SIM/NÃO Esse formato se divi- de em três partes. A primeira não afeta em nada os resultados, porém tem de existir. Portanto, o formato começa com ponto-e-vírgula (ou se- ja, o primeiro item fica em branco); a segunda é o formato para valores verdadeiros; e a terceira para valo- res falsos. Um exemplo clássico: o campo Situação informa se o fun- cionário está ativo ou não. Então, ele pode ter o seguinte formato: ;“Ativo”[Vermelho]; “Inativo” [Pre- to]. Se o funcionário está na ativa, aparece “Ativo”, em vermelho; ca- so contrário, “Inativo”, em preto. ■ DATA/HORA Esse formato não segue o mesmo padrão dos anterio- res: não é dividido em partes. O má- ximo que você pode fazer é definir a cor do texto. Mas a propriedade do formato de um campo do tipo Data/Hora é muito importante, pois ele é que define o que será exibido da informação digitada pelo usuá- rio. Você pode fazer várias combi- nações. Por exemplo: para exibir apenas o mês, o ano, a hora e os mi- nutos, defina o formato assim: mm/ yyyy hh:nn (veja bem: as duas últi- mas letras são enes, de navio, e não emes, de minuto, como se espera). Recomendo que você veja na Aju- da as letras e caracteres que você pode utilizar no formato de datas, pois tem algumas muito interessan- tes, como as que retornam o trimes- tre, a semana e outros. Quero apro- veitar o assunto para mostrar como se deve definir o formato juntamen- te com a máscara de entrada para Índice duplo: chave primária da tabela criada com dois campos 062_GUIA_TAB_ACCESS 25/02/2006 23:23 Page 67 TUTORIAL/TABELAS COLEÇÃO INFO > 69 TUTORIAL/TABELAS 68 500 Ou Nulo Ao contrário das outras proprie- dades até aqui apresentadas, os con- troles vinculados ao campo com re- gra de validação her- dam, no formulário, a regra definida na tabela. Portanto, mesmo que você mude a regra para o controle vinculado ao campo, o valor que o usuário digi- tar deve satisfazer sempre à regra definida natabela. Se porventura você definiu outra regra para o controle, o valor digi- tado terá que atender às duas re- gras, tanto a do campo na tabela quanto a do controle. A consistên- cia ainda pode ser feita no nível do registro. Os exemplos do campo Se- xo e do Salário cuidam da consis- tência no nível do campo. A consistência de registro funcio- na da seguinte forma: imagine uma tabela onde são cadastrados os pro- dutos e a porcentagem de cada se- tor da empresa na participação das vendas. A tabela contém os cam- pos Produto, SetorA, SetorB, SetorC. Como se trata de porcentagem, a soma das parcelas de todos os se- tores deve ser igual a 100. Para im- plementar essa regra, com a tabe- la aberta em modo Design, clique no botão Propriedades, na barra de ferramentas, a fim de exibir a folha de propriedades da tabela. Na pro- priedade Regra de Validação, digi- te a seguinte regra: [SetorA]+[SetorB]+[SetorC]=100 Uma propriedade complementar à Regra de Validação é a Texto de Vali- dação. Nessa propriedade você inse- re um texto personalizado para ser mostrado, em vez da mensagem-pa- drão do Access, quando o usuário di- gita um valor incorreto. INTEGRIDADE DOS DADOS Exemplo clássico: o número de CPF de uma pessoa é único — ou seja, ne- nhuma outra pessoa pode ter um CPF igual ao de outra. Portanto, não pode haver em seu cadastro de clientes dois ou mais RGs iguais. Para evitar isso, basta selecionar, na propriedade In- dexado do campo CPF, a opção Sim (Duplicação não autorizada). Você po- de querer uma integridade com dois campos. O número de um aluno na Regra de Validação: feita para garantir dados consistentes CARACTERE L0 9 # L ? a A & CARACTERE C , , : ; - / ! \ DESCRIÇÃO Dígito (de 0 a 9, entrada obrigatória) Dígito ou espaço (entrada não obrigatória) Dígito ou espaço (entrada não obri- gatória; os espaços são exibidos como vazios quando no modo Edição, mas os vazios são removidos quando os dados são salvos; sinais de adição e subtração são permitidos) Letra (de A a Z, entrada obrigatória) Letra (de A a Z, entrada opcional) Letra ou dígito (entrada opcional) Letra ou dígito (entrada obrigatória) Qualquer caractere ou um espaço (entrada obrigatória) DESCRIÇÃO Qualquer caractere ou um espaço (entrada opcional) Marcador decimal e separadores de milhares, de data e de hora Converte todos os caracteres para letras minúsculas Converte todos os caracteres para letras maiúsculas Define que a máscara de entrada seja exibida da direita para a esquerda, e não da esquerda para a direita Define que o caractere seguinte seja exibido como caractere literal (por exemplo, \A é exibido simplesmente como A) MÁSCARAS DE ENTRADA Caracteres utilizados na propriedade Máscaras de Entrada 062_GUIA_TAB_ACCESS 25/02/2006 23:53 Page 68 TUTORIAL/TABELAS COLEÇÃO INFO > 69 TUTORIAL/TABELAS 68 500 Ou Nulo Ao contrário das outras proprie- dades até aqui apresentadas, os con- troles vinculados ao campo com re- gra de validação her- dam, no formulário, a regra definida na tabela. Portanto, mesmo que você mude a regra para o controle vinculado ao campo, o valor que o usuário digi- tar deve satisfazer sempre à regra definida na tabela. Se porventura você definiu outra regra para o controle, o valor digi- tado terá que atender às duas re- gras, tanto a do campo na tabela quanto a do controle. A consistên- cia ainda pode ser feita no nível do registro. Os exemplos do campo Se- xo e do Salário cuidam da consis- tência no nível do campo. A consistência de registro funcio- na da seguinte forma: imagine uma tabela onde são cadastrados os pro- dutos e a porcentagem de cada se- tor da empresa na participação das vendas. A tabela contém os cam- pos Produto, SetorA, SetorB, SetorC. Como se trata de porcentagem, a soma das parcelas de todos os se- tores deve ser igual a 100. Para im- plementar essa regra, com a tabe- la aberta em modo Design, clique no botão Propriedades, na barra de ferramentas, a fim de exibir a folha de propriedades da tabela. Na pro- priedade Regra de Validação, digi- te a seguinte regra: [SetorA]+[SetorB]+[SetorC]=100 Uma propriedade complementar à Regra de Validação é a Texto de Vali- dação. Nessa propriedade você inse- re um texto personalizado para ser mostrado, em vez da mensagem-pa- drão do Access, quando o usuário di- gita um valor incorreto. INTEGRIDADE DOS DADOS Exemplo clássico: o número de CPF de uma pessoa é único — ou seja, ne- nhuma outra pessoa pode ter um CPF igual ao de outra. Portanto, não pode haver em seu cadastro de clientes dois ou mais RGs iguais. Para evitar isso, basta selecionar, na propriedade In- dexado do campo CPF, a opção Sim (Duplicação não autorizada). Você po- de querer uma integridade com dois campos. O número de um aluno na Regra de Validação: feita para garantir dados consistentes CARACTERE L0 9 # L ? a A & CARACTERE C , , : ; - / ! \ DESCRIÇÃO Dígito (de 0 a 9, entrada obrigatória) Dígito ou espaço (entrada não obrigatória) Dígito ou espaço (entrada não obri- gatória; os espaços são exibidos como vazios quando no modo Edição, mas os vazios são removidos quando os dados são salvos; sinais de adição e subtração são permitidos) Letra (de A a Z, entrada obrigatória) Letra (de A a Z, entrada opcional) Letra ou dígito (entrada opcional) Letra ou dígito (entrada obrigatória) Qualquer caractere ou um espaço (entrada obrigatória) DESCRIÇÃO Qualquer caractere ou um espaço (entrada opcional) Marcador decimal e separadores de milhares, de data e de hora Converte todos os caracteres para letras minúsculas Converte todos os caracteres para letras maiúsculas Define que a máscara de entrada seja exibida da direita para a esquerda, e não da esquerda para a direita Define que o caractere seguinte seja exibido como caractere literal (por exemplo, \A é exibido simplesmente como A) MÁSCARAS DE ENTRADA Caracteres utilizados na propriedade Máscaras de Entrada 062_GUIA_TAB_ACCESS 25/02/2006 23:53 Page 68 TUTORIAL/TABELAS 70Depois selecione os campos do nú- mero da classe e o do número do alu- no. A propriedade Exclusivo do índi- ce deve conter o valor Sim. A figura 2 mostra como deve ficar a janela de ín- dice dessa tabela, que tem como ín- dice primário o campo matrícula. VALOR-PADRÃO O Valor-padrão de um campo tam- bém é uma propriedade muito im- portante. Ele facilita para o usuário o trabalho de edição. Normalmente, de- fine-se como valor-padrão de um cam- po o valor de preenchimento mais freqüente. Se a loja está localizada em São Paulo, é bem provável que a maio- ria dos clientes seja dessa cidade. En- tão, os campos Cidade e Estado já de- vem aparecer preen- chidos com os valo- res “São Paulo”, “SP”. Assim, o operador praticamente não precisará digitar. É im- portante lembrar também que zero não é nulo. Zero é valor numérico — aliás, esse é o valor-pa- drão adotado pelo Access para os ti- pos de dados numéricos. Nulo é o va- lor de um campo não preenchido. Ou seja, nulo é igual a vazio. Quanto ao relacionamento do va- lor-padrão de um campo na tabela com o controle vinculado a ele num formulário, fica valendo, primeiramen- te, o definido para o controle. Contu- do, se você não especificar um valor- padrão para o controle, será utiliza- do o definido para o campo. Neste tutorial você tomou contato com todos os itens que envolvem a criação de tabelas de um modo bem profissional. Vale lembrar que o ban- co de dados Access ainda tem um as- sistente para construir campos. Para acioná-lo, posicione o cursor na co- luna Nome do Campo e clique no bo- tão Construir, na barra de ferramen- tas. Será exibida uma lista de exem- plos de campos. Se você selecionar um, o assistente já o definirá por in- teiro (ou seja, com todas as proprie- dades) na sua tabela. Valor-padrão: não é preciso digitar o item que se repete no campo 062_GUIA_TAB_ACCESS 25/02/2006 23:31 Page 70 RELATÓRIO FEITO COM VIEWS APRENDA A CRIAR UMA TABELA VIRTUAL QUE FAÇA AS CONTAS NECESSÁRIAS PARA UM RELATÓRIO DE VENDAS POR CARLOS CHERNIJ, COM FRED CARBONARE TUTORIAL/ORACLE EXPRESS COLEÇÃO INFO > 71 Oracle XE: a criação da views e a administração do banco de dados é feita via web ma das boas funciona- lidades disponíveis no gratuito Oracle 10g Ex- press Edition — ou Ora- cle XE — são as views, tabelas vir- tuais que podem ser usadas para poupar trabalho do programador na hora de criar consultas no ban- co de dados. As views não existem fisicamente — são geradas pelas consultas. Mas, depois de criadas, elas se comportam exatamente co- mo uma tabela. Assim, as alterações realizadas na view são repassadas para a tabela física envolvida. U As views são muito usadas em ban- cos de dados complexos com diver- sas tabelas que formam conjuntos de dados, relatórios etc. E não são privi- légio do Oracle — podem ser encon- tradas também em bancos de dados como PostgreSQL, MS SQL Server e MySQL 5.0. Neste tutorial, utilizaremos as views para gerar um relatório de vendas. Detalhe importante: o Oracle XE ainda está em versão beta (no co- meço de fevereiro de 2006, foi colo- cada à disposição dos internautas a edição Release Candidate 3). Por con- ta disso, algumas funções podem apre- 071_RELA_VEND_ORACLE 25/02/2006 23:56 Page 71 TUTORIAL/ORACLE EXPRESS COLEÇÃO INFO > 73 TUTORIAL/ORACLE EXPRESS 72 SQL > SQL Scripts), clique no ícone do script Criar. Será aberta a janela do Script Editor com o código referente à cria- ção das tabelas. Clique no botão Run, que fica na parte superior da tela. Se- rá aberta a tela Run Script, onde é ne- cessário confirmar a operação, clican- do novamente no botão Run. Após a execução do script, terão sido criadas as tabelas TB_CLIENTE, com informa- ções dos clientes, TB_PEDIDO, com dados dos pedidos, TB_PRODUTO, com informações dos produtos, e TB_PE- DIDO_PRODUTO, que relacionará os produtos aos pedidos. 4. VISUALIZANDO OS DADOS A partir da tela inicial do módulo de administração, clique em Object Browser > Browse > Tables. À esquer- da da tela estará uma lista com to- das as tabelas do sistema, a maioria referentes a controles internos do Oracle XE. No final da lista, você ve- rá as tabelas do tutorial. Clique em TB_CLIENTE e, depois, na aba Data para ver os da- dos iniciais que foram inseridos durante a cria- ção das tabelas. 5. GERANDO O RELATÓRIO Vamos criar uma view que irá mos- trar o total pedido por cliente do nosso banco de dados, gerando as- sim um relatório de vendas. Volte para a página inicial e escolha a op- ção Object > Browser > Create > View. No campo View Name, digite vw_total_pedidos_cliente. Na jane- la Query, cole o conteúdo do arqui- vo View.sql. O código é o seguinte: SELECT sum(total_pedido) as total, cod_cliente, nom_cliente FROM ( SELECT tb_pedido.cod_pedido, tb_pedido.cod_cliente, Scripts: carregue e use o ícone Criar Visualize: clique na aba Data para ver dados inseridos durante a criação das tabelas Script Editor: um clique em Criar abre o código de criação das tabelas 071_RELA_VEND_ORACLE 25/02/2006 23:33 Page 72 TUTORIAL/ORACLE EXPRESS COLEÇÃO INFO > 73 TUTORIAL/ORACLE EXPRESS 72o Sabre, da IBM e da American Airlines, utilizaram por muitos anos esse tipo de modelo. O MODELO DE CODD No início dos anos 70, as coisas co- meçam a mudar. O pesquisador da IBM Edgar Frank Codd (1923-2003) propõe o modelo relacional para a base de dados. Mais do que isso, ele introduz uma nova maneira de pen- sar a informação digital a ser gra- vada, recuperada e gerenciada, es- tabelecendo um jeito mais compu- tacional de tratar o relacionamen- to entre os dados. Esse sistema vi- rou padrão e é usado até hoje. O modelo abstrato de Codd é a pri- meira abordagem completa para uma base de dados, o resgate das informações, manipulação, integri- dade lógica, visualização, atualiza- ção e gerenciamento. Foi concebi- do para armazenar registros de da- © ILUSTRAÇÃO PEPE CASALS 08_14_BANCO_HISTORIA1 25/02/2006 21:11 Page 8 HISTÓRIA COLEÇÃO INFO > 11 deira. A primeira de- las, conhecida como “Lei da Informação”, dizia simplesmente que todo dado deve ser apresentado ao usuário na forma de tabela. A segunda, ou “Regra do Acesso Ga- rantido”, exige que todo dado seja aces- sível sem ambigüidade e aconselha que cada informação seja descrita por uma combinação de nome da tabela, chave primária e o nome do campo. E assim por diante. O mesmo Codd cunharia o nome OLAP (On-Line Analytical Proces- sing) para descrever uma ampla ca- tegoria de produtos de software que tinham as características de acesso aos dados propostas por ele. As 12 Regras de seu padrão foram adota- das pela indústria de TI, forçando muitas empresas a revisar seus pro- dutos para melhor se adequar aos critérios OLAP de Codd. Em 1976, outro avanço viria das pes- quisas de Peter P. Chen. Ele propõe o modelo Entidade-Relacio- namento (ER) para o design de banco de dados, dando um importante passo para a modelagem de alto nível e permitindo ao desenvol- vedor concentrar-se mais no uso das informações do que propriamente na estru- tura lógica que há por trás da tabela. SURGE O DBASE A evolução natural dos bancos de dados passaria pelo estabelecimen- to de um padrão não-teórico: o dBa- se, ao ser lançado no final dos anos 70, tornou-se uma referência. Sua origem encontra-se em meados dos anos 60. Seu antecessor era um sis- tema chamado Retrieve, vendido pe- la Tymshare Corporation. Naquela época, os computadores só eram encontrados em grandes gabinetes, no ambiente do trabalho. O Retrieve era usado no Jet Pro- pulsion Laboratory (JPL), em Pasa- dena, na Califórnia. Nos anos 60, Jeb Long, um programador desse laboratório, recebeu a tarefa de es- crever um programa que desempenhasse as mes- mas funções que o Retrie- ve. Em 1973, ele se tornou engenheiro de software do JPL. Ali ele desenvol- veu um programa de ge- renciamento de arquivos chamado JPLDIS (Jet Pro- pulsion Laboratory Dis- play Information System), HISTÓRIA 10 11 deira. A primeira de- las, conhecida como “Lei da Informação”, dizia simplesmente que todo dado deve ser apresentado ao usuário na forma de tabela. A segunda, ou “Regra do Acesso Ga- rantido”, exige que todo dado seja aces- sível sem ambigüidade e aconselha que cada informação seja descrita por uma combinação de nome da tabela, chave primária e o nome do campo. E assim por diante. O mesmo Codd cunharia o nome OLAP (On-Line Analytical Proces- sing) para descrever uma ampla ca- tegoria de produtos de software que tinham as características de acesso aos dados propostas por ele. As 12 Regras de seu padrão foram adota- das pela indústria de TI, forçando muitas empresas a revisar seus pro- dutos para melhor se adequar aos critérios OLAP de Codd. Em 1976, outro avanço viria das pes- quisas de Peter P. Chen. Ele propõe o modelo Entidade-Relacio- namento (ER) para o design de banco de dados, dando um importante passo para a modelagem de alto nível e permitindo ao desenvol- vedor concentrar-se mais no uso das informações do que propriamente na estru- tura lógica que há por trás da tabela. SURGE O DBASE A evolução natural dos bancos de dados passaria pelo estabelecimen- to de um padrão não-teórico: o dBa- se, ao ser lançado no final dos anos 70, tornou-se uma referência. Sua origem encontra-se em meados dos anos 60. Seu antecessor era um sis- tema chamado Retrieve, vendido pe- la Tymshare Corporation. Naquela época, os computadores só eram encontrados em grandes gabinetes, no ambiente do trabalho. O Retrieve era usado no Jet Pro- pulsion Laboratory (JPL), em Pasa- dena, na Califórnia. Nos anos 60, Jeb Long, um programador desse laboratório, recebeu a tarefa de es- crever um programa que desempenhasse as mes- mas funções que o Retrie- ve. Em 1973, ele se tornou engenheiro de software do JPL. Ali ele desenvol- veu um programa de ge- renciamento de arquivos chamado JPLDIS (Jet Pro- pulsion Laboratory Dis- play Information System), HISTÓRIA 10dos arquivos de script em ftp://ftp.info. abril.com.br/bdoracle.zip. Depois de descompactá-los, você terá dois ar- quivos de script: Criar.sql e View.sql. Na tela inicial do módulo de admi- nistração, escolha a opção SQL. Cli- que então em SQL Scripts. Acione o botão Upload. No campo File, clique em Procurar e informe a localização do arquivo Criar.sql. No campo Script Name, digite Criar. Clique então no botão Upload, na parte superior da tela. A partir de agora, o script vai apa- recer como um ícone sempre que se entrar na tela SQL Scripts. 3. CRIANDO AS TABELAS Ainda na tela SQL Scripts (Home > SQL > SQL Scripts), clique no ícone do script Criar. Será aberta a janela do Script Editor com o código referente à cria- ção das tabelas. Clique no botão Run, que fica na parte superior da tela. Se- rá aberta a tela Run Script, onde é ne- cessário confirmar a operação, clican- do novamente no botão Run. Após a execução do script, terão sido criadas as tabelas TB_CLIENTE, com informa- ções dos clientes, TB_PEDIDO, com dados dos pedidos, TB_PRODUTO, com informações dos produtos, e TB_PE- DIDO_PRODUTO, que relacionará os produtos aos pedidos. 4. VISUALIZANDO OS DADOS A partir da tela inicial do módulo de administração, clique em Object Browser > Browse > Tables. À esquer- da da tela estará uma lista com to- das as tabelas do sistema, a maioria referentes a controles internos do Oracle XE. No final da lista, você ve- rá as tabelas do tutorial. Clique em TB_CLIENTE e, depois, na aba Data para ver os da- dos iniciais que foram inseridos durante a cria- ção das tabelas. 5. GERANDO O RELATÓRIO Vamos criar uma view que irá mos- trar o total pedido por cliente do nosso banco de dados, gerando as- sim um relatório de vendas. Volte para a página inicial e escolha a op- ção Object > Browser > Create > View. No campo View Name, digite vw_total_pedidos_cliente. Na jane- la Query, cole o conteúdo do arqui- vo View.sql. O código é o seguinte: SELECT sum(total_pedido) as total, cod_cliente, nom_cliente FROM ( SELECT tb_pedido.cod_pedido, tb_pedido.cod_cliente, Scripts: carregue e use o ícone Criar Visualize: clique na aba Data para ver dados inseridos durante a criação das tabelas Script Editor: um clique em Criar abre o código de criação das tabelas 071_RELA_VEND_ORACLE 25/02/2006 23:33 Page 72 TUTORIAL/ORACLE EXPRESS 74 Para criar uma view, deve ser observada a seguinte es- trutura básica de comando SQL: CREATE VIEW vw_nome AS SELECT colunas FROM tabela1, tabela2 WHERE tabela1.campo = tabela2.campo Dessa forma, você irá unir duas tabelas, criando uma tabela vir- tual na qual poderá fazer con- sultas e atualizações nos dados de forma mais simples. Uma das possibilidades de aplicação é configurar permissões diferen- tes para as tabelas e para as views. Por exemplo, você pode ter uma senha de usuário no banco de dados sendo usada apenas para os scripts da área aberta do seu site. O internau- ta só terá acesso às views, o su- ficiente para fazer as pesquisas que deseja. Para acessar as tabelas originais, seria criado outro usuário, aplicando assim mais uma camada de segurança no banco de dados. tabela virtual, e todas as alterações que forem feitas nela serão transmi- tidas para as tabelas que a compõem. Para gerar um relatório a partir da view que foi criada, basta usar o co- mando SELECT * FROM vw_total_pe- didos_cliente. 071_RELA_VEND_ORACLE 25/02/2006 23:35 Page 74 CRIE PESQUISAS COM CRITÉRIOS SIGA OS PASSOS PARA MONTAR DE CONSULTAS SIMPLES A BUSCAS COM PARÂMETROS VARIÁVEIS NO DB2 POR FRED CARBONARE TUTORIAL/CONSULTAS COLEÇÃO INFO > 75 lguma vez você criou con- sultas a banco de dados com critério? É bem pro- vável que sim. E uma con- sulta com o critério OU em determi- nado campo, como Rio de Janeiro OU São Paulo? Provavelmente sim, tam- bém. Consultas com critérios são mui- to úteis. Quando desejamos que es- sas consultas sejam mais flexíveis, po- demos substituir o critério fixo por um critério com parâmetros. Exemplo: [Cidade1] OU [Cidade2] Para treinar as consultas com crité- rio, neste tutorial faremos um cadas- tro de clientes acessando o banco de dados DB2 Express-C. 1. BAIXE OS COMANDOS Para facilitar a compreensão, primei- ramente faça o download do arquivo db2.zip no endereço ftp://ftp.info. abril.com.br/ebd_db2.zip e descom- pacte-o. Nesse arquivo você encon- trará os comandos SQL necessários para criar a tabela de exemplo. 2. CRIE A TABELA No DB2 Express-C, crie um banco de dados padrão chamado Consulta. Em A Identificação: dê o nome Consulta No DB2: crie o banco de dados padrão seguida, localize o arquivo Criar.sql que você descompactou e execute- o. Ele irá criar uma tabela chamada Clientes com as seguintes colunas: id, nome, endereco, telefone, cida- de, estado, datanasc e incluirá alguns dados de exemplo. Ao dar um duplo clique sobre a ta- bela Clientes, veremos o seu con- teúdo. Como você pode notar, tra- ta-se de uma tabela simples, que armazena uma lista de clientes e as suas respectivas cidades. 075_TUT GUIA DB2 25/02/2006 23:41 Page 75 TUTORIAL/CONSULTAS COLEÇÃO INFO > 77 TUTORIAL/CONSULTAS 76 Assistente SQL. Ainda Na janela Nova Consulta, sele- cione Instrução SELECT > From e es- colha a tabela Clientes. dor “=”, e, em Valor, escolha a op- ção Listar valores. Na nova janela de valores, dê um duplo clique em São Bernardo. Basta clicar no bo- tão > para adicionar o critério. Cli- que em OK e em Resultados da Con- sulta para ver o resultado. 5. CRITÉRIO OU Quando abrimos o assistente SQL do DB2 Express-C, ele zera toda a pro- gramação feita antes. Assim, para sa- ber quais são os clientes de São Ber- nardo OU São Paulo, é necessário criar novamente o critério e adicionar um novo para a cidade de São Paulo, cli- cando no botão OR >. 6. VISUALIZANDO O SQL Ao criarmos uma consulta no As- sistente SQL, o programa, nos bas- tidores, cria uma instrução SQL pa- ra realizar a pesquisa solicitada. Ve- ja como ficou no nosso primeiro exemplo: SELECT * FROM SQLJ.CLIENTES AS CLIENTES WHERE CLIENTES.CIDADE = ’São Bernardo’ 7. RESTRINGINDO Vamos supor agora que você quer visualizar os clientes de “São Ber- nardo” OU “São Paulo”, mas ape- nas os que nasceram em 1990. Pa- ra isso usaremos o mesmo siste- ma de critérios, mas adicionando um outro, do tipo AND. De volta ao Assistente SQL, es- colha a coluna DATANASC e o ope- rador BETWEEN. Em valor mínimo coloque ‘1990-01-01’ e, em valor máximo, ‘1990-12-31’. Clique em "AND >". Agora, clique em OK e execute o comando, acionando Re- sultados da Consulta. Pronto, agora você pode usar o Assistente SQL para gerar coman- dos com critérios de acordo com a sua aplicação e extrair relató- rios cada vez mais precisos do seu banco de dados. Esse exemplo, feito no DB2 Ex- press-C, pode ser aplicado em qual- quer outro banco de dados. A dife- rença vai ser mais visual do que con- ceitual, de acordo com o assisten- te do produto.Valores: adicione o novo critério Como ficou: visualize o código SQL Critério: escolha a opção Where 4. O CRITÉRIO Agora vamos colocar o critério. Pa- ra isso, escolha a opção WHERE. Nessa janela Where, escolha a co- luna CIDADE,(imagem 008) opera- Tabela: clique duplo exibe conteúdo AND OU OR? > Dúvidas sobre a utilização dos critérios AND e OR costumam ser freqüentes entre os iniciantes na arte de armazenar informação. Quando colocamos a instrução OR, acrescentamos registros ao resul- tado. Quando utilizamos AND, res- tringimos. Para exemplificar, ima- gine um amigo procurando na- morada. Ele prefere loiras de olhos azuis. Então deve especi- ficar loira AND olhos azuis. Ago- ra, se para você tanto faz se a mo- ça é loira ou morena, defina a con- sulta com loiras OR morenas. Suas possibilidades serão maiores. Quando adicionamos o critério para as duas cidades, se você observar a declaração SQL montada, vai notar que a cláusula WHERE mudou para: WHERE CLIENTES.CIDADE = ’São Bernardo’ OR CLIENTES.CIDADE = ’São Paulo’; Note que a diferença entre as duas instruções SQL é a quantida- de de parâmetros contidos exata- mente na cláusula Where. Da mes- ma forma, a diferença da cláusula Where entre uma consulta que pos- sua o critério: “São Bernardo”, e ou- tra com o critério: “São Bernardo” OU “São Paulo”, será a quantidade de campos na cláusula Where. 075_TUT GUIA DB2 25/02/2006 23:58 Page 76 TUTORIAL/CONSULTAS COLEÇÃO INFO > 77 TUTORIAL/CONSULTAS 76 Assistente SQL. Ainda Na janela Nova Consulta, sele- cione Instrução SELECT > From e es- colha a tabela Clientes. dor “=”, e, em Valor, escolha a op- ção Listar valores. Na nova janela de valores, dê um duplo clique em São Bernardo. Basta clicar no bo- tão > para adicionar o critério. Cli- que em OK e em Resultados da Con- sulta para ver o resultado. 5. CRITÉRIO OU Quando abrimos o assistente SQL do DB2 Express-C, ele zera toda a pro- gramação feita antes. Assim, para sa- ber quais são os clientes de São Ber- nardo OU São Paulo, é necessário criar novamente o critério e adicionar um novo para a cidade de São Paulo, cli- cando no botão OR >. 6. VISUALIZANDO O SQL Ao criarmos uma consulta no As- sistente SQL, o programa, nos bas- tidores, cria uma instrução SQL pa- ra realizar a pesquisa solicitada. Ve- ja como ficou no nosso primeiro exemplo: SELECT * FROM SQLJ.CLIENTES AS CLIENTES WHERE CLIENTES.CIDADE = ’São Bernardo’ 7. RESTRINGINDO Vamos supor agora que você quer visualizar os clientes de “São Ber- nardo” OU “São Paulo”, mas ape- nas os que nasceram em 1990. Pa- ra isso usaremos o mesmo siste- ma de critérios, mas adicionando um outro, do tipo AND. De volta ao Assistente SQL, es- colha a coluna DATANASC e o ope- rador BETWEEN. Em valor mínimo coloque ‘1990-01-01’ e, em valor máximo, ‘1990-12-31’. Clique em "AND >". Agora, clique em OK e execute o comando, acionando Re- sultados da Consulta. Pronto, agora você pode usar o Assistente SQL para gerar coman- dos com critérios de acordo com a sua aplicação e extrair relató- rios cada vez mais precisos do seu banco de dados. Esse exemplo, feito no DB2 Ex- press-C, pode ser aplicado em qual- quer outro banco de dados. A dife- rença vai ser mais visual do que con- ceitual, de acordo com o assisten- te do produto.Valores: adicione o novo critério Como ficou: visualize o código SQL Critério: escolha a opção Where 4. O CRITÉRIO Agora vamos colocar o critério. Pa- ra isso, escolha a opção WHERE. Nessa janela Where, escolha a co- luna CIDADE, (imagem 008) opera- Tabela: clique duplo exibe conteúdo AND OU OR? > Dúvidas sobre a utilização dos critérios AND e OR costumam ser freqüentes entre os iniciantes na arte de armazenar informação. Quando colocamos a instrução OR, acrescentamos registros ao resul- tado. Quando utilizamos AND, res- tringimos. Para exemplificar, ima- gine um amigo procurando na- morada. Ele prefere loiras de olhos azuis. Então deve especi- ficar loira AND olhos azuis. Ago- ra, se para você tanto faz se a mo- ça é loira ou morena, defina a con- sulta com loiras OR morenas. Suas possibilidades serão maiores. Quando adicionamos o critério para as duas cidades, se você observar a declaração SQL montada, vai notar que a cláusula WHERE mudou para: WHERE CLIENTES.CIDADE = ’São Bernardo’ OR CLIENTES.CIDADE = ’São Paulo’; Note que a diferença entre as duas instruções SQL é a quantida- de de parâmetros contidos exata- mente na cláusula Where. Da mes- ma forma, a diferença da cláusula Where entre uma consulta que pos- sua o critério: “São Bernardo”, e ou- tra com o critério: “São Bernardo” OU “São Paulo”, será a quantidade de campos na cláusula Where. 075_TUT GUIA DB2 25/02/2006 23:58 Page 76 TUTORIAL/INTERFACE WEB COLEÇÃO INFO > 79 O PHPMYADMIN DOMA O MYSQL APRENDA A USAR O PHPMYADMIN PARA CRIAR BANCOS DE DADOS SEM ESCREVER EM SQL POR TONI CAVALHEIRO TUTORIAL/INTERFACE WEB 78empresa qualquer. Para começar, na página inicial do phpMyAdmin, procure o campo “Criar novo banco de dados”. Digi- te a palavra empresa nele e clique no botão Criar. Todos os nomes dos bancos de dados devem ser grafa- dos em letras minúsculas. 5. TABELAS O próximo passo será criar uma tabe- la. O próprio phpMyAdmin já sugere essa operação. Digite o nome tb_agen- da para a tabela. Como ela terá nove campos, coloque o número 9 em Cam- pos e pressione o botão Executar. É re- comendável iniciar o nome de cada ta- bela com as letras “tb_”. Com essa no- menclatura, você poderá encontrar as tabelas mais facilmente no código-fon- te do seu programa. Página inicial: ponto de partida do phpMyAdmin para a criação dos vários bancos de dados que o MySQL comporta 078_MY_ADMIN1 26/02/2006 00:00 Page 78 TUTORIAL/INTERFACE WEB COLEÇÃO INFO > 79 O PHPMYADMIN DOMA O MYSQL APRENDA A USAR O PHPMYADMIN PARA CRIAR BANCOS DE DADOS SEM ESCREVER EM SQL POR TONI CAVALHEIRO TUTORIAL/INTERFACE WEB 78 81 6. TIPOS DE CAMPO As tabelas podem conter vários ti- pos de campo. Vamos dar uma olha- da nos principais. ■ VARCHAR Armazena seqüências de letras e números. Valores armaze- nados nesse campo não podem ser usados para cálculos matemáticos (se você somar “1” + “2”, receberá “12” como resultado, em vez de “3”). ■ TEXT Usado para armazenar os textos. Se você tiver um sistema de notícias online, por exemplo, irá guardar cada um dos artigos em um campo TEXT. ■ DATE Campo usado para datas. Es- tá presente na maioria das tabelas. ■ INT É um dos tipos de campo mais usados. Armazena números inteiros, sejam eles negativos ou positivos. ■ DECIMAL Armazena números de- cimais. Repare que, ao lado desse cam- po, aparece o item “tamanho/definir”. Esse valor indica a precisão do cam- po decimal que você está criando. Se você preencher com o valor 10,3, por exemplo, estará informando ao servi- dor que a precisão será de dez dígi- tos e três casas decimais. Se você não especificar nenhum valor, o sistema assume 10,0 como formato-padrão. ■ BLOB É normalmente usado para armazenar imagens. 7. DEFINIÇÕES O phpMyAdmin mostra um formu- lário que devemos preencher com as definições dos nove campos da nossa tabela. Complete o formulá- rio com os valores da tabela a seguir: 10. DADOS NO ATACADO A técnica do passo anterior para inserir dados não é muito prática se você pre- cisar incluir muitos nomes. A melhor saída é criar um ar- quivo de texto com os dados e importá- lo para o MySQL. Pa- ra isso, coloque os dados de cada clien- te numa linha, usando ponto-e-vír- gula como separador. Os campos devem estar na ordem especifica- da na tabela, como neste exemplo: ;“João da Silva”;“(11) 6000-1010”; “Rua do Endereço, 100”; “SãoPaulo”;“SP”;“Brasil”; “01000000”;“mail@server.com” ;“Paulo da Silva”;“(21)1000-1212”; “Rua do Teste, 200”;“Niterói”; “RJ”;“Brasil”;“10201000”; CAMPO cod nome telefone endereco cidade estado pais cep email TAMANHO/DEFINIR 100 15 50 30 2 15 8 30 TIPO INT VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR Campos: especifique o nome, o tipo e o tamanho cluir dados da forma convencionale, em seguida, você verá como mon- tar o cadastro de clientes importan- do dados de um arquivo de texto. Para incluir dados no MySQL, cli- que na guia Inserir, localizada na par- te superior da janela do phpMyAd- min. O programa permite que você inclua dois registros de cada vez, bas- tando preencher o formulário com in- formações tais como nome, endere- ço e telefone dos clientes. Nesse mo- mento, preencha ape- nas o item Valor. O item Funções permi- te que você dê um tratamento persona- lizado aos dados que está digitando, mas não vamos usá-no neste tutorial. Caso você queira incluir outros novos dados, marque a opção “In- serir novo registro”. Importar dados: faça um arquivo de texto e importe para o MySQL 078_MY_ADMIN1 26/02/2006 00:01 Page 80 Esqueça as demais especificações do phpMyAdmin, como Atributos, Nu- lo e Padrão. Esses itens não serão ne- cessários e devem ser deixados em branco. Procure evitar o uso de cedi- lha, acentuação ou caracteres espe- ciais no nome dos campos. Isso pode criar problemas se você resolver trans- portar a base de dados para outro ser- vidor. Ao terminar, clique em Salvar. 8. CHAVE Vamos definir a chave primária, uma referência que será usada como ín- dice para a tabela. Clique em Estru- tura e, em seguida, no ícone em for- ma de chave ao lado do campo cod da tabela. Uma tela de confirmação aparecerá. Clique em OK. Agora ligue a numeração automática do campo cod. Ainda na guia Estrutura, pres- sione o ícone em forma de lápis que está ao lado desse campo e selecio- ne a opção auto_increment, disponí- vel em Extra. Clique em Salvar. 9. INSERINDO DADOS Já podemos inserir dados na tabe- la. Primeiro, mostraremos como in- TUTORIAL/INTERFACE WEB 80 81 6. TIPOS DE CAMPO As tabelas podem conter vários ti- pos de campo. Vamos dar uma olha- da nos principais. ■ VARCHAR Armazena seqüências de letras e números. Valores armaze- nados nesse campo não podem ser usados para cálculos matemáticos (se você somar “1” + “2”, receberá “12” como resultado, em vez de “3”). ■ TEXT Usado para armazenar os textos. Se você tiver um sistema de notícias online, por exemplo, irá guardar cada um dos artigos em um campo TEXT. ■ DATE Campo usado para datas. Es- tá presente na maioria das tabelas. ■ INT É um dos tipos de campo mais usados. Armazena números inteiros, sejam eles negativos ou positivos. ■ DECIMAL Armazena números de- cimais. Repare que, ao lado desse cam- po, aparece o item “tamanho/definir”. Esse valor indica a precisão do cam- po decimal que você está criando. Se você preencher com o valor 10,3, por exemplo, estará informando ao servi- dor que a precisão será de dez dígi- tos e três casas decimais. Se você não especificar nenhum valor, o sistema assume 10,0 como formato-padrão. ■ BLOB É normalmente usado para armazenar imagens. 7. DEFINIÇÕES O phpMyAdmin mostra um formu- lário que devemos preencher com as definições dos nove campos da nossa tabela. Complete o formulá- rio com os valores da tabela a seguir: 10. DADOS NO ATACADO A técnica do passo anterior para inserir dados não é muito prática se você pre- cisar incluir muitos nomes. A melhor saída é criar um ar- quivo de texto com os dados e importá- lo para o MySQL. Pa- ra isso, coloque os dados de cada clien- te numa linha, usando ponto-e-vír- gula como separador. Os campos devem estar na ordem especifica- da na tabela, como neste exemplo: ;“João da Silva”;“(11) 6000-1010”; “Rua do Endereço, 100”; “SãoPaulo”;“SP”;“Brasil”; “01000000”;“mail@server.com” ;“Paulo da Silva”;“(21)1000-1212”; “Rua do Teste, 200”;“Niterói”; “RJ”;“Brasil”;“10201000”; CAMPO cod nome telefone endereco cidade estado pais cep email TAMANHO/DEFINIR 100 15 50 30 2 15 8 30 TIPO INT VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR Campos: especifique o nome, o tipo e o tamanho cluir dados da forma convencional e, em seguida, você verá como mon- tar o cadastro de clientes importan- do dados de um arquivo de texto. Para incluir dados no MySQL, cli- que na guia Inserir, localizada na par- te superior da janela do phpMyAd- min. O programa permite que você inclua dois registros de cada vez, bas- tando preencher o formulário com in- formações tais como nome, endere- ço e telefone dos clientes. Nesse mo- mento, preencha ape- nas o item Valor. O item Funções permi- te que você dê um tratamento persona- lizado aos dados que está digitando, mas não vamos usá-no neste tutorial. Caso você queira incluir outros novos dados, marque a opção “In- serir novo registro”. Importar dados: faça um arquivo de texto e importe para o MySQL 078_MY_ADMIN1 26/02/2006 00:01 Page 80 TUTORIAL/INTERFACE WEB 82 83 ATUALIZAÇÃO É COM O AJAX COMBINAÇÃO DE VÁRIAS TECNOLOGIAS, O AJAX AGILIZA OS APLICATIVOS QUE ACESSAM BANCOS DE DADOS ONLINE POR CARLOS CHERNIJ Ajax vem dando o que falar no mundo dos si- tes dinâmicos. Essa téc- nica de desenvolvimen- to usa HTML, JavaScript, XML e algu- ma linguagem para a web, como PHP, ColdFusion, Java ou C# e tem no Google um ilustre usuário. Quando al- guém distribui corações para os ami- gos no orkut, por exemplo, a página atualiza os campos correspondentes sem recarregar todo o resto, agilizando a operação. Num formulário normal da web, os dados fornecidos pelo in- ternauta são enviados para o servidor, que devolve uma nova página com o resultado. Para demonstrar como se programa em Ajax, vamos criar um serviço de cadastro com PHP e HTML. 1. O SERVIDOR Para executar nosso exemplo, é pre- ciso ter um servidor HTTP Apache 2.0 rodando PHP 4.4 no modo binário CGI e o banco de dados MySQL 4.1 ou mais recente. Esses recursos estão dispo- níveis na maioria dos planos de hos- pedagem de sites. Baixe o exemplo em www.info.abril.com.br/down load/4326.shtml e descompacte-o. Você vai obter uma pas- ta chamada infoajax com vários arquivos. Coloque essa pasta no diretório- raiz do servidor Apache (diretório htdocs). Para criarnossa aplicação, usa- remos uma biblioteca de classes em PHP, a Xajax (www.info.abril.com.br/ download/4327.shtml). Ela está incluída no arqui- vo compactado, dentro da pasta includes, com o no- me xajax.inc.php. O Formulário: cadastro de clientes feito com Ajax 083_084_AJAX 26/02/2006 00:20 Page 83 TUTORIAL/DESENVOLVIMENTO COLEÇÃO INFO > 85 TUTORIAL/DESENVOLVIMENTO 84 registerFunction(), que permite agregar funções es- critas em PHP que realizarão ope- rações com dados do formulário de forma assíncrona. Cada função dessas deve possuir um objeto da classe xajaxResponse(), que con- terá os dados a atualizar. 7. TELA DE CADASTRO Na tela de cadastro, o exemplo de uso do Ajax é composto dos menus com os dados de estado e cidade. A lista de cidades é atualizada de acordo com o estado escolhido. Pa- ra selecionar as cidades, há a fun- ção carregaCidades. No arquivo ca- dastro.php, observe o código des- sa função. Após ler o valor selecio- nado no menu Estado, a função rea- liza uma consulta na tabela para se- lecionar as cidades corresponden- tes. Cada registro encontrado é adi- cionado ao objeto $objResponse, por meio do método addAssign. No código, temos esta linha: $objResponse->addAssig (“cidades”,“innerHTML”, $html) O item “cidades” é a identificação da divisão da página onde ficará o menu com as cidades, e “in- nerHTML” especifica que o conteú- do da variável $html vai substituir o código html dentro da divisão. No final, é chamado o método getXML(), que retorna uma seção de código XML ao objeto xajax. Após imple- mentar a função, vamos incorporá- la ao xajax por meio do comando: $xajax->registerFunction (“carregaCidades”) 8. XAJAX Após a definição das funções, quan- do começa a seção de código HTML do arquivo cadastro.php, é preciso especificar que o xajax deve tomar para si os comandos de post do for- mulário. Isso é feito pelo comando $xajax->processRequests() Em se- guida, devemos criar um evento que chamará a função que registramos no objeto xajax. Isso é feito na linha: Cada vez que o campo Estado mu- dar, a função carregaCidades será chamada e retornará a lista de cida- des em código XML. O xajax utiliza- rá a lista num JavaScript, que, por sua vez, atualizará as cidades. Um mecanismo similar é utilizado na página index.php, que contém o módulo de consulta. Abra-a num edi- tor de textos. A função listaUsuarios utiliza como parâmetro o texto da caixa de busca. Ao ser chamada, ela faz a consulta no banco e adiciona os resultados à variável $html para que sejam exibidos na página. Ao clicar em Buscar, a função listaUsuarios pas- sa um novo parâmetro para a con- sulta. Ele é enviado para o servidor pelo xajax, que recebe a resposta em XML e usa, então, um programa em JavaScript para reescrever o código HTML, que mostra os resultados. 2. BASE DE DADOS Prepare a base de dados do aplicativo. O INFOLAB utilizou o phpMyAdmin (www.info.abril.com.br/ download/3260.shtml) nessa tarefa. Se esse soft- ware estiver instalado no servidor, digite o endere- ço correspondente para usá-lo, como neste exem- plo: http://www.nome. com.br/phpmyadmin. Na tela inicial, procure o campo Criar Novo Banco de Da- dos e digite xajax. Clique em Criar. 3. TABELAS Vamos gerar tabelas para a nossa aplicação. No phpMyAdmin, acione o menu do lado esquerdo da tela e selecione o banco de dados xajax. Ative, então, a aba MySQL. No cam- po Localização do Arquivo Texto, clique em Procurar. Navegue até o arquivo bd.sql, na pasta infoajax, e selecione-o. Em Conjunto de Carac- teres do Arquivo, escolha latin1. Cli- que em Executar para rodar o pro- grama em SQL. Isso cria as tabelas. 4. CONFIGURAÇÕES Vamos editar o arquivo bd.inc.php que fica na pasta includes. Abra-o num editor de textos e procure: $conexao = mysql_connect (“localhost”,“usuário”,“senha”); mysql_select_db(‘meubanco’, $conexao); Substitua as palavras “usuário” e phpMyAdmin: criação do banco de dados xajax “senha” pelo nome de usuário e a se- nha que deverão ser usados para acesso ao MySQL. Na linha de baixo, substitua “meubanco” por “xajax”. 5. O APLICATIVO Para ver o aplicativo-exemplo fun- cionando, abra o browser e digite este endereço: http://www.nome. com.br/infoajax. No lugar de “www.nome.com.br”, coloque o en- dereço do seu site. Clique em Ca- dastrar e inclua dados de uma pes- soa no banco. Depois, volte à pági- na anterior e faça uma consulta. 6. EXAMINADO O CÓDIGO Analisaremos a seguir o arquivo cadastro.php, que contém as roti- nas para a inclusão de registros. Abra o arquivo num editor de tex- tos e, logo no começo, observe a linha $xajax = new xajax();. Es- se comando define o objeto xajax, que vai processar as ações de post do formulário. Um dos métodos é 083_084_AJAX 26/02/2006 00:21 Page 84 TUTORIAL/DESENVOLVIMENTO COLEÇÃO INFO > 85 TUTORIAL/DESENVOLVIMENTO 84 registerFunction(), que permite agregar funções es- critas em PHP que realizarão ope- rações com dados do formulário de forma assíncrona. Cada função dessas deve possuir um objeto da classe xajaxResponse(), que con- terá os dados a atualizar. 7. TELA DE CADASTRO Na tela de cadastro, o exemplo de uso do Ajax é composto dos menus com os dados de estado e cidade. A lista de cidades é atualizada de acordo com o estado escolhido. Pa- ra selecionar as cidades, há a fun- ção carregaCidades. No arquivo ca- dastro.php, observe o código des- sa função. Após ler o valor selecio- nado no menu Estado, a função rea- liza uma consulta na tabela para se- lecionar as cidades corresponden- tes. Cada registro encontrado é adi- cionado ao objeto $objResponse, por meio do método addAssign. No código, temos esta linha: $objResponse->addAssig (“cidades”,“innerHTML”, $html) O item “cidades” é a identificação da divisão da página onde ficará o menu com as cidades, e “in- nerHTML” especifica que o conteú- do da variável $html vai substituir o código html dentro da divisão. No final, é chamado o método getXML(), que retorna uma seção de código XML ao objeto xajax. Após imple- mentar a função, vamos incorporá- la ao xajax por meio do comando: $xajax->registerFunction (“carregaCidades”) 8. XAJAX Após a definição das funções, quan- do começa a seção de código HTML do arquivo cadastro.php, é preciso especificar que o xajax deve tomar para si os comandos de post do for- mulário. Isso é feito pelo comando $xajax->processRequests() Em se- guida, devemos criar um evento que chamará a função que registramos no objeto xajax. Isso é feito na linha: Cada vez que o campo Estado mu- dar, a função carregaCidades será chamada e retornará a lista de cida- des em código XML. O xajax utiliza- rá a lista num JavaScript, que, por sua vez, atualizará as cidades. Um mecanismo similar é utilizado na página index.php, que contém o módulo de consulta. Abra-a num edi- tor de textos. A função listaUsuarios utiliza como parâmetro o texto da caixa de busca. Ao ser chamada, ela faz a consulta no banco e adiciona os resultados à variável $html para que sejam exibidos na página. Ao clicar em Buscar, a função listaUsuarios pas- sa um novo parâmetro para a con- sulta. Ele é enviado para o servidor pelo xajax, que recebe a resposta em XML e usa, então, um programa em JavaScript para reescrever o código HTML, que mostra os resultados. 2. BASE DE DADOS Prepare a base de dados do aplicativo. O INFOLAB utilizou o phpMyAdmin (www.info.abril.com.br/ download/3260.shtml) nessa tarefa. Se esse soft- ware estiver instalado no servidor, digite o endere- ço correspondente para usá-lo, como neste exem- plo: http://www.nome. com.br/phpmyadmin. Na tela inicial, procure o campo Criar Novo Banco de Da- dos e digite xajax. Clique em Criar. 3. TABELAS Vamos gerar tabelas para a nossa aplicação. No phpMyAdmin, acione o menu do lado esquerdo da telae selecione o banco de dados xajax. Ative, então, a aba MySQL. No cam- po Localização do Arquivo Texto, clique em Procurar. Navegue até o arquivo bd.sql, na pasta infoajax, e selecione-o. Em Conjunto de Carac- teres do Arquivo, escolha latin1. Cli- que em Executar para rodar o pro- grama em SQL. Isso cria as tabelas. 4. CONFIGURAÇÕES Vamos editar o arquivo bd.inc.php que fica na pasta includes. Abra-o num editor de textos e procure: $conexao = mysql_connect (“localhost”,“usuário”,“senha”); mysql_select_db(‘meubanco’, $conexao); Substitua as palavras “usuário” e phpMyAdmin: criação do banco de dados xajax “senha” pelo nome de usuário e a se- nha que deverão ser usados para acesso ao MySQL. Na linha de baixo, substitua “meubanco” por “xajax”. 5. O APLICATIVO Para ver o aplicativo-exemplo fun- cionando, abra o browser e digite este endereço: http://www.nome. com.br/infoajax. No lugar de “www.nome.com.br”, coloque o en- dereço do seu site. Clique em Ca- dastrar e inclua dados de uma pes- soa no banco. Depois, volte à pági- na anterior e faça uma consulta. 6. EXAMINADO O CÓDIGO Analisaremos a seguir o arquivo cadastro.php, que contém as roti- nas para a inclusão de registros. Abra o arquivo num editor de tex- tos e, logo no começo, observe a linha $xajax = new xajax();. Es- se comando define o objeto xajax, que vai processar as ações de post do formulário. Um dos métodos é 083_084_AJAX 26/02/2006 00:21 Page 84 TUTORIAL/CONSULTAS COLEÇÃO INFO > 87 PESQUISE BEM NO ACCESS MONTE CONSULTAS COM DUAS TABELAS E ESCAPE DAS PEGADINHAS NA LÓGICA DOS DADOS POR CARLOS MACHADO TUTORIAL/CONSULTAS 86 87 PESQUISE BEM NO ACCESS MONTE CONSULTAS COM DUAS TABELAS E ESCAPE DAS PEGADINHAS NA LÓGICA DOS DADOS POR CARLOS MACHADO TUTORIAL/CONSULTAS 86no campo Tí- tulo de uma tabela e arraste-o para o campo de mesmo nome na outra tabela. Uma linha passa a ligar os dois campos, indicando que a con- sulta deve procurar neles informa- ções iguais. Dica: o procedimento também funciona quando o nome dos dois campos não é o mesmo. No quadro tabLetras, arraste pa- ra a linha Campo, embaixo, os cam- pos Título e Intérprete. Opcional- mente, indique que o campo Intér- prete seja apresentado em ordem alfabética. Para isso, na linha Clas- sificação, escolha Crescente. Salve a consulta (com um nome amigável, como cnsMP3comLetras1) e execute-a. Veja que ela exibe exa- Consulta 1 (no alto) e seus resultados: a base é a tabLetras Consulta 2: o resultado (embaixo) não é igual ao da consulta 1 086_CONSULTA_TAB_ACCESS 26/02/2006 00:22 Page 86 TUTORIAL/CONSULTAS 88 89 TUTORIAL/CADASTRO DE FOTOS ue tal criar um banco de dados de fotografias sem perder muito tem- po na digitação dos de- talhes? A idéia é boa e factível, se usarmos as informações Exif (Exchan- geable Image File Format) que as câ- meras fotográficas digitais, em sua maioria, gravam em cada imagem capturada por seus sensores. Entre essas informações preciosas estão a data e a hora em que a foto foi tira- da, a abertura do obturador, o tem- po de exposição, o nome do fabri- Q Banco de fotos: para criar um banco, selecione General na janela New Database 089_CADASTROFOTO_EXIF 26/02/2006 00:24 Page 89 TUTORIAL/CADASTRO DE FOTOS COLEÇÃO INFO > 91 TUTORIAL/CADASTRO DE FOTOS 90 Microsoft SQL Server > MSQL >DATA. Lá estarão os arquivos fotos.mdf e fotos_log.ldf. 2. AS TABELAS De volta ao SQL Server Management Studio Ex- press, expanda o banco de dados Fotos, clicando no ícone +. Agora vamos criar as três tabelas: fo- tografos, pictures e clien- tes. Como definição, iremos dizer que um fotógrafo pode ter várias fotos e que um cliente também po- de ter várias fotos. Primeiro, criamos a tabela foto- grafos. Com o botão direito, clique em Tables e selecione NEW TABLE. Na janela Properties, digite o nome da tabela, fotografos, no campo Ob- jectName. Agora vamos criar os campos dessa tabela. Aparece uma lista com as opções na janela Table — dbo.ta- ble-1, o nome padrão de tabela cria- da pelo SQL Management, conten- do o nome da coluna (Column Na- me), tipo de dados (Data Type) e Allow Nulls?. O primeiro campo que vamos criar é o da chave primária dessa tabe- la. É de bom costume criar sempre uma chave primária para toda ta- bela. Nesse caso, ela será chamada Id_fotografo. Digite esse nome no campo Column Name. A janela Column properties deve ser alterada para as características desejadas. Em primeiro lugar, va- mos determinar qual tipo de dados o campo irá suportar. Clique no cam- po Data Type e selecione int, pois esse campo será uma identificação do fotógrafo e a chave primária des- sa tabela. Dê TAB até abrir a próxi- ma linha da janela Table — dbo.ta- ble-1, nome provisório da tabela. 3. MAIS CAMPOS Vamos criar agora os campos Nome do fotógrafo, Endereço, Cidade, Es- tado. Todos eles serão do tipo var- char, que consumirá somente o es- paço necessário no disco para a quan- tidade de caracteres armazenada. Assim, um nome que contenha 10 caracteres consumirá somente 10 bytes no banco de dados. No caso do campo do tipo char, um campo com tamanho de 50 caracteres sempre ocupará 50 bytes de espaço no dis- co rígido. Para cada um, defina no campo lenght o tamanho que vo- cê deseja para ele. O último campo será o de CEP. De- fina-o como um campo numérico de tamanho 8 (o tamanho do cep no Brasil). Preencha as opções Precision como 8 e scale 0 na janela Properties. Não queremos que fal- te informação nessa tabe- la. Assim, desmarque a opção Allow Nulls de to- dos os campos. O próprio sistema de banco de da- dos não permitirá que campos em branco sejam registrados. 4. CHAVE PRIMÁRIA Vamos agora definir a nossa chave primária. Clique com o botão direi- to sobre o campo desejado e sele- cione Set Primary Key. Vamos fazer isso com o campo Id_fotografo. A chave primária é identificada grafi- camente por uma pequena chave à frente do nome do campo. Salvamos nossa tabela, acionan- do File > Salvar Fotografos. Pronto, a primeira tabela está criada na ba- se de dados Fotos. Faça o mesmo para a tabela Clien- tes. Ela terá os campos Id_cliente, no- me_cliente, endereço_cliente, cida- de_cliente, estado_cliente, CEP_clien- te como colunas. Como não quere- mos registros incompletos, todos eles também não permitirão campos não preenchidos ou nulos. Vamos fazer o ID_cliente como nossa chave primária dessa tabe- la. Salve a tabela Clientes clicando no ícone de fechar tabela. Uma ja- Chave primária: pequena chave identifica o campo correspondente Checagem: verifique os arquivos que formam o banco de dados 089_CADASTROFOTO_EXIF 26/02/2006 00:24 Page 90 TUTORIAL/CADASTRO DE FOTOS COLEÇÃO INFO > 91 TUTORIAL/CADASTRO DE FOTOS90 Microsoft SQL Server > MSQL >DATA. Lá estarão os arquivos fotos.mdf e fotos_log.ldf. 2. AS TABELAS De volta ao SQL Server Management Studio Ex- press, expanda o banco de dados Fotos, clicando no ícone +. Agora vamos criar as três tabelas: fo- tografos, pictures e clien- tes. Como definição, iremos dizer que um fotógrafo pode ter várias fotos e que um cliente também po- de ter várias fotos. Primeiro, criamos a tabela foto- grafos. Com o botão direito, clique em Tables e selecione NEW TABLE. Na janela Properties, digite o nome da tabela, fotografos, no campo Ob- jectName. Agora vamos criar os campos dessa tabela. Aparece uma lista com as opções na janela Table — dbo.ta- ble-1, o nome padrão de tabela cria- da pelo SQL Management, conten- do o nome da coluna (Column Na- me), tipo de dados (Data Type) e Allow Nulls?. O primeiro campo que vamos criar é o da chave primária dessa tabe- la. É de bom costume criar sempre uma chave primária para toda ta- bela. Nesse caso, ela será chamada Id_fotografo. Digite esse nome no campo Column Name. A janela Column properties deve ser alterada para as características desejadas. Em primeiro lugar, va- mos determinar qual tipo de dados o campo irá suportar. Clique no cam- po Data Type e selecione int, pois esse campo será uma identificação do fotógrafo e a chave primária des- sa tabela. Dê TAB até abrir a próxi- ma linha da janela Table — dbo.ta- ble-1, nome provisório da tabela. 3. MAIS CAMPOS Vamos criar agora os campos Nome do fotógrafo, Endereço, Cidade, Es- tado. Todos eles serão do tipo var- char, que consumirá somente o es- paço necessário no disco para a quan- tidade de caracteres armazenada. Assim, um nome que contenha 10 caracteres consumirá somente 10 bytes no banco de dados. No caso do campo do tipo char, um campo com tamanho de 50 caracteres sempre ocupará 50 bytes de espaço no dis- co rígido. Para cada um, defina no campo lenght o tamanho que vo- cê deseja para ele. O último campo será o de CEP. De- fina-o como um campo numérico de tamanho 8 (o tamanho do cep no Brasil). Preencha as opções Precision como 8 e scale 0 na janela Properties. Não queremos que fal- te informação nessa tabe- la. Assim, desmarque a opção Allow Nulls de to- dos os campos. O próprio sistema de banco de da- dos não permitirá que campos em branco sejam registrados. 4. CHAVE PRIMÁRIA Vamos agora definir a nossa chave primária. Clique com o botão direi- to sobre o campo desejado e sele- cione Set Primary Key. Vamos fazer isso com o campo Id_fotografo. A chave primária é identificada grafi- camente por uma pequena chave à frente do nome do campo. Salvamos nossa tabela, acionan- do File > Salvar Fotografos. Pronto, a primeira tabela está criada na ba- se de dados Fotos. Faça o mesmo para a tabela Clien- tes. Ela terá os campos Id_cliente, no- me_cliente, endereço_cliente, cida- de_cliente, estado_cliente, CEP_clien- te como colunas. Como não quere- mos registros incompletos, todos eles também não permitirão campos não preenchidos ou nulos. Vamos fazer o ID_cliente como nossa chave primária dessa tabe- la. Salve a tabela Clientes clicando no ícone de fechar tabela. Uma ja- Chave primária: pequena chave identifica o campo correspondente Checagem: verifique os arquivos que formam o banco de dados 089_CADASTROFOTO_EXIF 26/02/2006 00:24 Page 90 TUTORIAL/CADASTRO DE FOTOS COLEÇÃO INFO > 93 TUTORIAL/CADASTRO DE FOTOS 92nosso caso, diagrama. 8. IMPORTANDO DADOS Neste ponto, já podemos utilizar es- sa base. Primeiro precisamos cadas- trar alguns dados nela. Usamos um programa de extração de dados Exif Índice: definindo a chave de pesquisa para os fotógrafos Relacionamento completo: clientes, fotógrafos e pictures 089_CADASTROFOTO_EXIF 26/02/2006 00:26 Page 92 TUTORIAL/CADASTRO DE FOTOS COLEÇÃO INFO > 93 TUTORIAL/CADASTRO DE FOTOS 92 95 TUTORIAL/CADASTRO DE FOTOS 94 95 TUTORIAL/CADASTRO DE FOTOS 94a op- ção Save Directory as CSV Text no me- nu Save Exif. Uma janela-padrão do Windows permitirá selecionar o dire- tório onde se encontram as imagens. O sistema lerá as informações de todas as fotos existentes e, pa- ra cada uma, gerará um arquivo no formato CSV (separa- do por vírgulas), em um diretório chamado Exif- data dentro da pasta de suas fotos. Junte todos os arquivos gerados em um único para importa- ção na base de dados. Existem duas manei- ras de se fazer isso. A pri- meira é criar um progra- ma de importação, já que o SQL Express não tem esse tipo de utilitá- rio. A outra é conseguir algum pacote que exe- cute essa função. O EMS Data Import for SQL Server, da EMS Electro- nic Microsystems, per- mite importar dados do formato CSV para um banco de dados SQL Server. Faça o download da versão de teste em (www.info.abril.com.br/down load/4458.shtml). Esse utilitário tem um assisten- te que o leva passo a passo pelo processo. O primeiro é a conexão com a base de dados. Isso depen- de da instalação que foi feita no SQL Express. No nosso caso, esco- lhemos Remote, preenchemos o nome da máquina e a autentica- ção configurada foi a do Windows. Clique no botão NEXT. No próximo passo escolhemos o arquivo com os dados, clicando no botão ADD FILE. Uma janela cha- mada Select Table é mostrada. Se- lecione o banco de dados Fotos, e a tabela dbo.pictures. Clique OK e depois em NEXT. Agora mude o delimitador para vírgula no campo Delimiter. Na ja- nela Field, selecione o campo Ca- meraManufacture. Escolha na jane- la Columns a coluna que correspon- de a esse campo no banco de da- dos. No nosso caso, a co- luna 2. Faça o mesmo pa- ra os campos CameraMo- del, DateTime, Width e Lenght com as colunas 4, 16, 54 e 55 respectiva- mente. Clique em NEXT. 9. CAMPOS DE ÍNDICE Vamos tratar da geração automática dos campos de índice da tabela. Pri- meiro a chave primária (Id_pictures). Selecione-a no campo Field. No cam- po Generator Step na ja- nela Field Tunning digite 1. Isso significa que para cada registro um novo ín- dice adicionado de um será gerado. Como nos- sa base é virgem, ele co- meçará do 1, pois é a so- ma de Generator Value que é 0 mais o Generator Step que é 1. Nas próximas vezes, você terá que descobrir qual é o próximo nú- mero a ser colocado em Generator Value para a importação acontecer com sucesso, pois a chave primária não pode ser duplicada. 10. ID DO FOTÓGRAFO Vamos gerar o valor de id_fotogra- fos. Temos dois registros e quere- mos que o primeiro seja do fotó- Campos de índice: geração automática dos campos da tabela Data Import: conecta-se ao banco e importa as informações EasyExif: gerando informações de fotografias em arquivos CSV Importação: escolha o arquivo com os dados clicando em ADD FILE 089_CADASTROFOTO_EXIF 26/02/2006 00:27 Page 94 TUTORIAL/CADASTRO DE FOTOS 96 97 ada mais chato e inopor- tuno do que descobrir na sua caixa postal uma en- xurrada de newsletters que você não assinou. Tudo porque al- guém cadastrou seu e-mail por brin- cadeira ou mesmo por maldade. Para o webmaster, essa situação também é desagradável porque recebe reclama- ções e é taxado de spammer. A saída para o site é criar um cadastro de e- mails válidos, enviando ao candidato a assinante da newsletter um pedido de confirmação na forma de um clique em um hyperlink. Quando esse hyper- link for acionado, o webmaster terá certeza de que quem solicitou a assi- natura é o dono do endereço. É isso que faremos no tutorial a seguir. Para segui-lo, será necessário um servidor web com PHP 4.x, banco de dados Post- greSQL 8.1.2 e um provedor de aces- so à internet que aceite conexões SMTP para a transmissão de e-mails. N Tabela de e-mails: comando SQL cria a tabela de assinantes no PostgreSQL 097_CLASSIFICADOSWEB_POSTGRES 26/02/2006 00:29 Page 97 TUTORIAL/POSTGRESQL 98 99 Por fim, o programa envia um e- mail com um hyperlink para o nos- so próximo script, o confirma_ email.php, para que o assinante con- firme sua requisição. Como essa resposta só será pos- sível porque a informação chegou ao assinante através do endereço de e-mail digitado inicialmente, fi- ca claro que quem quer se inscre- ver é o detentor da conta. 4. ATIVANDO O ASSINANTE O confirma_email.php, acionado pe- lo clique do nosso futuro assinante, irá tomar as providências finais. Pri- meiro, ele altera o status do assinan- te de INATIVO para ATIVO. Note que também gravamos o número IP e a data de confirmação da assinatura. Em caso de haver reclamações, essas informações também ajudarão a es- clarecer dúvidas. Resultado: e-mails válidos identificadosdesenvolvidas para os enormes mainframes. AS DOZE REGRAS O termo “relação” era usado por Codd de maneira estritamente ma- temática, dentro de uma tabela com linhas e colunas que trabalhavam com propriedades especiais. Embo- ra isso pareça óbvio atualmente, não era nada elementar nos anos 70. Tanto que Codd sentiu a necessida- de de estabelecer as 12 regras de uma base de dados relacional, uma re- ceita para extrair do modelo algo que funcionasse mesmo. Isso aconteceu em 1974 e foi expandido ao longo das déca- das. Em 1990, a lista cresceu para 333 re- querimentos. Vistas com os olhos de hoje, as 12 leis parecem brinca- Mapa de relacionamento: a teoria de Codd na prática dBase III: padrão de banco de dados para PCs nos anos 80 Edgar Codd: pai do modelo relacional Peter Chen: novo modelo de design © FOTO DIVULGAÇÃO IBM © FOTO DIVULGAÇÃO 08_14_BANCO_HISTORIA1 25/02/2006 21:15 Page 10 HISTÓRIA COLEÇÃO INFO > 13 HISTÓRIA 12 13 HISTÓRIA 12com endereço IP e status de confirmação 3. PEDIDO DE CONFIRMAÇÃO Nosso segundo script, o grava_ email.php, salva o endereço de e- mail que está solicitando a assinatu- ra da newsletter e também grava a data e o número IP usado na cone- xão. Caso haja alguém fazendo o ca- dastramento indevido do usuário e este queira descobrir quem foi, es- ses dados serão de grande valia. É importante lembrar que nesta fase do processo o status do assinan- te é gravado como INATIVO. Enquan- to permanecer assim, ele não deve ser importunado por nenhum outro tipo de mensagem que não seja o pe- dido de confirmação da assinatura. É gerado e gravado também um código adicional (hash) para iden- tificar o usuário. Quando ele pedir a confirmação, esse código impedi- rá que uma pessoa confirme a as- sinatura de outra. 097_CLASSIFICADOSWEB_POSTGRES 26/02/2006 00:31 Page 99 COLEÇÃO INFO > 101 TUTORIAL/ATIVO FIXO O RAILS FAZ MAIS RÁPIDO ACELERE O DESENVOLVIMENTO, CRIANDO UM APLICATIVO DE CONTROLE DE PATRIMÔNIO COM O RUBY ON RAILS POR TONI CAVALHEIRO TUTORIAL/ATIVO FIXO 100 101 TUTORIAL/ATIVO FIXO O RAILS FAZ MAIS RÁPIDO ACELERE O DESENVOLVIMENTO, CRIANDO UM APLICATIVO DE CONTROLE DE PATRIMÔNIO COM O RUBY ON RAILS POR TONI CAVALHEIRO TUTORIAL/ATIVO FIXO 100 103 TUTORIAL/ATIVO FIXOTUTORIAL/ATIVO FIXO 102e exclusão. A primei- ra coisa a fazer é criar o banco de dados no SQLite 3. No Prompt de Comando do Windows, digite: sqlite3 db\ativodev.db Depois que o prompt do SQLite 3 aparecer, digite: CREATE TABLE afs (id INTEGER NOT NULL PRIMARY KEY, descricao VARCHAR(100) NOT NULL, valor_aquisicao INT NOT NULL, fornecedor VARCHAR(255) NULL, comprador VARCHAR(30) NULL, tempo_depreciacao INT NULL); 7. ACESSO AOS DADOS O próximo passo é configurar o Rails para acessar esse banco de dados. No diretório ativofixo, encontre a pasta config e, dentro dela, o arqui- vo database.yml. Abra-o num editor de textos e modifique suas configu- rações para o seguinte: development: adapter:sqlite3 dbfile: db\ativodev.db test: adapter:sqlite3 dbfile: db\ativotest.db production: adapter:sqlite3 dbfile: db\ativoprod.db Todo o restante do arquivo pode ser apagado, já que não terá utilida- de em nosso tutorial. Na verdade, só usaremos o ambiente development, uma vez que os dois outros bancos não foram criados ainda. Mas é bom deixar o arquivo correto. 8. MODELO E CONTROLADOR No Ruby on Rails, cada tabela é descrita por um modelo. Vamos criar um modelo chamado af (ini- ciais de Ativo Fixo) que refletirá a tabela que acabamos de definir. No Prompt de Comando do Win- dows, digite: ruby script\generate model af Em seguida, vamos criar um con- trolador para o modelo af. O con- trolador é o módulo básico dos apli- cativos do Rails. Este é o comando: ruby script\generate controller afs Note que nosso modelo chama- se af, mas o controlador é chama- do afs. Isso ocorre porque o Ruby on Rails trabalha com a língua in- glesa, colocando as palavras no plu- ral. Se você criar um modelo Per- son, por exemplo, ele irá procurar por uma tabela chamada People, plural de Person em inglês. 9. SCAFFOLDING O último passo antes de colocar sua aplicação para funcionar é associar um recurso chamado scaffold ao controlador. Ele adiciona funções de visualização, edição, inclusão e exclusão de dados. Localize o ar- quivo afs_controller.rd. Abra-o num editor de textos e adicione o co- mando scaffold, assim: class AfsController 103 TUTORIAL/ATIVO FIXOTUTORIAL/ATIVO FIXO 102 Ativo Fixo Lista de patrimônio 12. VISUALIZAÇÃO Vamos, agora, criar a visualização, o código-fonte que irá controlar a exi- bição dos dados. É aqui que defini- mos a aparência do site. Vá para a pasta \app\views\afs\ e crie um ar- quivo chamado list.rhtml. Ele rece- be esse nome de acordo com a de-finição no controlador, logo depois do comando def. Confira o código: Descrição Valor de aquisição Tempo de depreciação Ações “show”, :id => entry.id %> “edit”, :id => entry.id %> “destroy”, :id => entry.id %> “new” FF %> Isso é tudo o que você precisa fazer para adicionar uma exibição ao aplica- tivo. Ainda é possível incluir mais cam- pos e aplicar uma formatação mais ela- borada à página, da mesma forma co- mo fizemos na tela inicial deste tutorial. Aplicativo no ar: ainda sem a formatação definitiva 100_RAILS 26/02/2006 00:41 Page 104 CONTROLE OS SEUS LIVROS PROGRAMAS EM PHP DISCRIMINAM O STATUS DO TÍTULO, SE EMPRESTADO, DISPONÍVEL OU ENCOMENDADO POR HELIO SILVA TUTORIAL/FIREBIRD COLEÇÃO INFO > 105 uantas vezes você em- prestou um livro e se es- queceu para quem? E quantas vezes o amigo que tomou o livro emprestado se lembrou de devolver? Nesses casos em que a memória não passa de uma vaga lembrança, o jeito é montar um banco de dados de sua biblioteca, com direito ao controle dos títulos emprestados. É o que faremos nes- te tutorial. Para acompanhá-lo, vo- cê vai precisar de servidor web com PHP 4.x, banco de dados Firebird 1.5.3 (www.info.abril.com.br/ download/2108.shtml) e o IBEx- pert (www.info.abril.com.br/down load/4047.shtml) como ferramen- ta de administração. Com apenas dois programas em PHP faremos a admi- nistração das informações. 1. O BANCO Instalados os programas necessários, abra o IBExpert e acione o menu Da- tabase > Create Database. Crie o ban- co de dados com o nome Biblioteca e clique no botão OK. Será necessário registrar o banco no IBExpert. Assim, no campo data- base alias, digite o nome Biblioteca e, em seguida, acione no botão Register. (Clique no ícone do lado esquerdo da tela, onde aparece o nome de nosso banco de dados Biblioteca. Com o botão direito do mouse, es- colha a opção Conect to database. 2. A TABELA Agora que estamos conectados ao novo banco de dados, va- mos criar a tabela do sistema. Tecle F12 pa- Q Biblioteca: crie o banco de dados com o IBExpert 105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 105 TUTORIAL/FIREBIRD COLEÇÃO INFO > 107 TUTORIAL/FIREBIRD 106 107 TUTORIAL/FIREBIRD 106do tipo combo com todos os livros disponíveis. Por fim, apresenta uma série de cin- co botões para que você possa esco- lher entre listar os livros disponíveis e seu status, Incluir e Excluir livros. As outras duas opções são de registrar empréstimos e/ou devoluções. 5. REQUISIÇÕES DO USUÁRIO Nosso segundo programa, o pro- cessa.php, é que fará o trabalho to- do. Ele é um pouco extenso, mas não é complexo. Em princípio, o segundo progra- ma se caracteriza por uma árvore de decisão usando if e elseif, sen- do que cada ação solicitada pelo usuário vai determinar um compor- tamento diferente. A primeira providência do pro- grama para atender qualquer que seja a necessidade do usuário é abrir uma conexão com o banco de dados. Em seguida, ele registra qual a operação o usuário solicitou, e, por conta disso, determina se ele terá que ser executado mais uma vez ou se deve retornar ao in- dex.php. O programa toma essa de- cisão ao definir qual ação deve ser acionada pelo formulário, se exe- cuta o index.php ou ele mesmo (processa.php) com um novo parâ- metro de operação. A primeira ação do programa é listar. Essa ação monta uma tabela com todos os livros do banco ordenados pelo título. Quando acionado pelo botão Incluir do index.php, a ação desse programa é abrir uma tela de for- mulário para que seja digitado o no- me do novo livro do acervo e mon- tar um combo para que seja defini- do qual o seu status (Disponível, Em- prestado, Encomendado). Quando o botão “Excluir” é aciona- do é há um livro selecionado no com- bo do index.php, o programa reage excluindo aquele título selecionado. Para a operação de empréstimo, o programa abre um formulário pe- dindo o nome do associado que es- tá emprestando o livro. Na seqüên- cia, faz a atualização das informa- ções trocando o status do livro pa- ra Emprestado e registrando o no- me do associado que retirou o livro. A operação final é a devolução do livro que, quando acionada, al- tera o status do livro para Disponí- vel e elimina o nome do associado. É evidente que outras imple- mentações e validações são ne- cessárias, mas este exemplo já per- mite vislumbrar um pouco da efi- ciência do Firebird usado em com- binação com o PHP. Gatilho: gerador automático do código de cada um dos livros Resultado: controle dos livros emprestados e dos disponíveis 105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 106 ESPECIALISTAS EM DADOS CONHEÇA AS CERTIFICAÇÕES IBM, ORACLE E MICROSOFT, AINDA AS MAIS VALORIZADAS CERTIFICAÇÃO 108 109 e acordo com levanta- mento do instituto de pesquisas Gartner, a Oracle detém a segun- da posição no ranking de sistemas de gerenciamento de bancos de da- dos relacionais. Com 33% de parti- cipação (em receitas com vendas de licenças), a Oracle só perde espaço para a IBM (36%) e deixa a Microsoft (19%) para trás. Esses números aju- dam a posicionar as certificações da empresa entre as mais importantes do mercado. “São as mais procura- das”, diz Edson Aguilera, coordena- dor dos cursos de pós-graduação em Informática da Universidade Santo Amaro (Unisa), de São Paulo. As empresas já não querem pro- fissionais com intimidade apenas com uma plataforma tecnológica. “De 2003 para cá, busca-se mais o especialista que, além da implanta- ção, entende todo o funcionamento do banco de dados, tornando-o sim- ples, seguro e alinhado com as es- tratégias da empresa”, diz Aguilera. Para os indecisos quanto à mar- ca, a dica é relacionar as empresas ou segmentos nos quais se quer tra- balhar e ver qual tecnologia ado- tam. “Se não der, é melhor começar pela Oracle, porque o produto é ro- busto e tem uma estratégia de de- senvolvimento que conta bastante hoje em dia”, diz. APOSTA CERTA Foi o que fez Valter José de Aquino, matemático de 42 anos, 20 de car- reira. Em 2003, correu atrás da cer- tificação em Oracle 8i. “Encomendei livros estrangeiros e estudei sozi- nho”, diz. “Não passei a ganhar mais, mas mudei de emprego”. Aquino foi fisgado pela consultoria Stefanini, concorrente do antigo empregador. Depois, passou a integrar a equipe de DBAs que cuidam dos bancos de dados da gigante do alumínio Alcoa. Outro que decidiu apostar todas as fichas na Oracle foi o potiguar Jo- sivan da Costa Santos, de 36 anos, DBA da prestadora de serviços e fá- brica de software CPM. A empresa pagou pelos exames e Santos con- quistou os títulos nas versões 8i e 9i. Com isso, ele passou a respon- der pela conta do Bradesco. “Mui- tos DBAs não merecem o título. Não D 109_CERTIF_ORACLE 26/02/2006 00:44 Page 109 CERTIFICAÇÕES/ORACLE 110de 30 horas cada 4 (2 para OCA e 2 para OCP) 10 029,16 (9i) 5 014,58 (10g) 996,03 (9i) 535,50 (10g) (1) Valor em dólar convertido pela taxa de 2,142 reais por dólar. OCP ORACLE DBA CERTIFIED PROFESSIONAL 109_CERTIF_ORACLE 26/02/2006 00:46 Page 110 DOMINE O DB2 EM SEIS ETAPAS ATÉ SE TORNAR ESPECIALISTA NO BANCO DE DADOS DA IBM, O PROFISSIONAL PASSA POR VÁRIAS PROVAS POR ANA LÚCIA MOURA FÉ CERTIFICAÇÃO/IBM COLEÇÃO INFO > 111 rande estrela dos ban- cos de dados da IBM é o DB2 Universal Data- base. Sozinho, o produ- to responde por 34% de tudo o que é vendido no mundo em termos de licenças para sistemas de gerencia- mento de bancos de dados relacio- nais. A fatia da IBM é a que mais cresce, segundo a consultoria Gart- ner. Luciano Dallolio, gerente técni- co de gerenciamento de informação da IBM, diz que isso estimula a con- tratação de profissionais. “Empre- sas como a Microsiga conquistaram grande número de contratos que envolvem a compra de centenas de licenças para bancos de dados. Pa- ra tocar os projetos, elas bancam a certificação de um número conside- rável de profissionais”, diz Dallolio. Para muita gente, ter ajuda da em- presa que contrata é o único jeito de conquistar uma certificação IBM. “Não faz sentido investir 3 mil, 4 mil reais se não houver como recupe- rar o investimento ou praticar o que se aprendeu”, diz Dallolio. O paulista Fábio Hasegawa, de 24 anos, consultor da C&C Computa- ção, parceira comercial da IBM, acu- mula 13 certificações, três delas da carreira de DB2. “Algumas eu aca- bei pagando do meu próprio bolso”, diz. Hasegawa tem orgulho dessa coleção. “Cada uma equivale a uma faculdade de primeira linha.” Formado em ciências da compu- tação pela Fiap, Hasegawa obteve apoio da C&C para comprar livros e realizar os testes. Atualmente, ele ostenta o título de Certified Advan- ced Database Administrator, o nível mais alto da carreira de DBA da IBM. O canudo o habilita, entre outras coisas, a atuar na recuperação de desastres e administração de am- biente VLDB (DataWarehouse-Mul- ti Partitioning). Para quem vai co- meçar, Hasegawa sugere estudar por conta. “Se tivesse feito os cursos re- comendados para as três certifica- ções IBM que tenho, teria gasto, por baixo, cerca de 13 mil reais”, diz. UMA CERTIFICAÇÃO, SEIS NÍVEIS A certificação oferecida pela IBM a especialistas de DB2 é composta por seis carreiras, conhecidas pelas nu- G 111_CERTIF_IBM 03/03/2006 10:25 Page 111 CERTIFICAÇÃO/IBM 112 113 MCDBA (Microsoft Cer- tified Database Admi- nistrator), certificação de bancos de dados da Microsoft, chegou ao Brasil em 1998, no auge da demanda por ad- ministradores qualificados. É uma das favoritas no programa de es- pecializações da Microsoft, que já titulou mais de 21 mil profissionais de TI brasileiros. “A oferta de vagas para esses profissionais cresce porque mui- tas empresas que não dependiam de uma base de dados estrutura- dos agora migram para SQL Ser- ver, e precisam de pessoas que se encaixem no trinômio confiabili- dade, experiência e certificação”, diz Edson Aguilera, coordenador dos cursos de pós-graduação em informática da Universidade San- to Amaro (Unisa), em São Paulo. Para quem já escolheu se espe- cializar em programas do mundo Microsoft, Aguilera sugere iden- tificar segmentos que costumam adotar a tecnologia. “Na área de autopeças, por exemplo, prevale- ce a plataforma Microsoft.” MAPA DA MINA Em tese, quem carrega um canu- do MCDBA está preparado para projetar, física e logicamente, ban- cos de dados SQL Server 7.0, que rodam sistemas de datawarehouse, comércio eletrônico e aplicações de computação móvel e corpora- tivas. “Para o profissional tentar uma certificação MCDBA, ele deve estar preparado com treinamen- tos presenciais, cursos online e livros”, diz Adriana Cantamessa, gerente de certificações da Micro- A CRAQUES EM SQL SERVER VOCÊ VAI TER DE VENCER QUATRO PROVAS PARA SER ESPECIALISTA NO BANCO DE DADOS DA MICROSOFT POR ANA LÚCIA MOURA FÉ PARA QUEM É TREINAMENTO NÚMERO DE EXAMES CUSTO DO TREINAMENTO COMPLETO (R$) CUSTO DOS EXAMES (R$) Analistas de sistemas, gerentes e profissionais de TI que desejam iniciar ou incrementar carreira como administrador de bancos de dados (DBA) De 160 horas a 240 horas (depende da carreira) 3 (1 para COM e 2 para MCDBA) 5 000 (inclui MCP) 172 (cada exame)(1) (1) Valor em dólar convertido pela taxa de 2,142 reais por dólar. MCDBA MICROSOFT CERTIFIED DATABASE ADMINISTRATOR 113_CERTIF_MICROSOFT 26/02/2006 00:53 Page 113 CERTIFICAÇÕES/MICROSOFT 114o profissional deve escolher entre o Windows 2000 e o Windows Server 2003. Um detalhe importante é que o título obtido em SQL Server 2000 continua valendo mesmo se o seu detentor não fizer o teste para a versão 2003. Para finalmente ter direito à cre- dencial de MCDBA, o profissional precisa realizar um quarto exame, desta vez eletivo. São 12 opções de testes, cada um com uma mé- dia de três cursos recomendados. Pelo menos a metade envolve de- senvolvimento e implementação de aplicações, de componentes de servidor e de serviços baseados nas tecnologias Visual Basic.Net, Visual Studio .Net, Visual C# .Net e .Net Framework. A outra meta- de abrange desde desenvolvimen- to e implementação de aplicações distribuídas com Visual Basic 6.0, C++ 6.0 e FoxPro 6.0 até imple- mentação de data warehouse com SQL Server 7.0. CURSOS OFICIAIS Os cursos da Microsoft podem ser realizados em 35 centros de treinamento oficiais espalhados pela Brasil. Não são obrigatórios, mas reduzem riscos de reprova- ção. Para quem anda com o di- nheiro curto, a dica é acessar o si- te da Microsoft e fazer o down- load do kit de auto-estudo. > administração de SQL Server 7.0 > instalação, configuração e administração de SQL Ser- ver 2000 Enterprise Edi- tion > projeto e implementação de banco de dados com SQL Server 7.0 > gerenciamento e manu- tenção de ambiente Mi- crosoft Windows Server OPÇÕES DE EXAMES OBRIGATÓRIOS 113_CERTIF_MICROSOFT 26/02/2006 00:49 Page 114 Coleção INFO Banco de Dados Índice Expediente Dá-lhe informação! A aventura dos dados Sabe o que é tupla? Planeje bem o seu banco O banco fala SQLquês Um SQL server fácil de usar Oracle em versão light DB2 grátis com tudo dentro O mySQL ganha músculos Missão crítica é para o Postgre Firebird poupa a máquina O Access entra em reforma Administração é tudo Tabelas sem mistério Relatório feito com views Crie pesquisas com critérios O phpMyAdmin doma o mySQL Atualização é com o Ajax Pesquise bem no Access O Exif vai para o banco E-mail falso não entra O Rails faz mais rápido Controle os seus livros Especialistas em dados Todo mundo quer um OCP Domine o DB2 em seis etapas Craques em SQL Server Coleção INFO - Redes Coleção INFO - Excel 2007 Coleção INFO - PDFpara as futuras decisões de negócio, ao mesmo tempo em que se verifica o estabelecimento das ferramentas de produtividade pessoal, como Excel e Access. É também um marco ini- cial para os protótipos dos bancos de dados orientados a objeto, ou Object Database Management Systems (ODBMS). O fenômeno da internet vem sacu- dir o ambiente de TI em meados dos anos 90. Começa-se a exigir de ma- neira frenética o acesso de compu- tadores remotos aos dados guarda- dos nos sistemas legados. Na outra ponta, os bancos de dados se adap- tam para servir às demandas da web — o que significa acesso às informa- ções, de qualquer lugar, via browser. No final dos anos 90, o intenso in- vestimento das empresas na inter- net abastece o mercado com cente- nas de ferramentas para conectar os bancos de dados à web. Crescem as ofertas de novos produtos e no- vas tecnologias. Com o passar do tempo, destacam-se duas áreas bá- sicas: de um lado, as soluções ba- seadas na plataforma Java, da Sun. Empresas como a própria Sun, além de IBM e Oracle, têm bancos de da- dos ou ferramentas para desenvol- vimento nessa área. Do outro lado, estão as empresas que oferecem FoxPro para DOS: gerenciador baseado em dBase DB2, da IBM: referência em banco de dados corporativo Wayne Ratliff: criador do Vulcan 08_14_BANCO_HISTORIA1 25/02/2006 21:26 Page 12 HISTÓRIA 14 15 odo mundo que usa te- lefone possui uma agen- da. Nela, cada amigo tem nome, endereço, número da linha, data de aniversá- rio e e-mail, cada dado anotado num espaço especial. Quando precisa- mos ligar para algum contato, va- mos à letra inicial do nome e bus- camos o número do telefone. Essa agendinha quase banal expressa bem o que é um banco de dados — um armazém de informações rele- vantes, organizadas de maneira coe- rente e lógica, que precisam ser re- cuperadas com freqüência. No universo dos bits e bytes, o banco de dados envolve conceitos importantes, que precisamos enten- der bem para torná-lo útil e eficien- te. É disso que trataremos aqui, co- meçando pelo próprio. T Sistema gerenciador: coleção de programas que mantêm as estruturas do banco 015_CONCEITOS 25/02/2006 21:31 Page 15 CONCEITOS COLEÇÃO INFO > 17 CONCEITOS 16foram muito popu- lares na década de 80 com a lingua- gem Clipper, um arquivo MDB do MS Access ou mesmo arquivos DAT, pro- prietários de linguagens de terceira geração como Pascal e Cobol. SISTEMA GERENCIADOR É uma coleção de programas res- ponsáveis pela manutenção das es- truturas e objetos de um banco de dados. Há diversos produtos comer- ciais e de uso livre. Entre os pagos destacam-se Oracle, IBM DB2 e MS SQL Server. Entre os livres, MySQL, Firebird e PostgreSQL. Os gerenciadores têm como carac- terísticas principais os controles de 015_CONCEITOS 25/02/2006 21:32 Page 16 CONCEITOS COLEÇÃO INFO > 17 CONCEITOS 16 19 essas duas entidades, uma relação de interdependência, ou seja, para se emitir uma Nota Fiscal, é neces- sário que haja um Cliente. A essa interdependência damos o nome de relacionamento. Na prática, sem- pre que uma ou mais tuplas de uma entidade guardarem alguma rela- ção com uma ou mais tuplas de ou- tra entidade teremos um relaciona- mento entre as entidades. Um relacionamento pode ser clas- sificado de duas formas: opcionali- dade e cardinalidade. A opcionalidade indica se é obri- gatória ou não a ocorrência ou in- dicação de uma tupla de uma en- tidade na outra. Dessa forma, po- demos dizer que é obrigatória a presença de um Cliente em uma Nota Fiscal, mas é opcional a exis- tência de uma Transportadora, por exemplo. De outro lado, o Cliente pode ou não estar vinculado a uma Nota Fiscal. O mesmo acontece com a Transportadora. A cardinalidade indica quantas ocorrências de uma tupla se rela- cionam com a outra tupla.Sabemos que cada Cliente pode estar vincu- lado a zero, uma ou muitas Notas Fiscais, enquanto cada Nota Fiscal está relacionada a um único Clien- te. Como você pode notar, a cardi- nalidade e a opcionalidade são sem- pre expressas de um e de outro la- do do relacionamento. A cardinalidade pode ser: ■ UM PARA UM (1:1): quando cada tupla de uma entidade está relacio- nada apenas a zero ou a uma tupla da outra entidade (lembre-se que ze- ro ou um é a opcionalidade). Esse ti- po de relacionamento não é o mais comum, pois sempre se deve ques- tionar a vantagem de manter os da- dos separados em duas entidades. Note que sempre há um custo vincu- lado à criação e manutenção de uma tabela. Se o custo compensar, deve- se manter separado. Do contrário, é melhor unir as duas entidades. ■ UM PARA MUITOS (1:M): quan- do cada tupla de uma entidade es- tá relacionada a zero, uma ou mais tuplas da outra entidade (não es- queça que o zero ou um é a opcio- nalidade). Este é o relacionamento mais comum. ■ MUITOS PARA MUITOS (M:M): quando há ocorrências de múltiplos relacionamentos entre as tuplas de duas entidades. Esse relacionamen- to, apesar de existir, não é passível de implementação em um banco de Relacionamento: muitos para muitos (acima); um para muitos (abaixo) 015_CONCEITOS 25/02/2006 21:34 Page 19 CONCEITOS COLEÇÃO INFO > 21 CONCEITOS 20 21 CONCEITOS 20sejam ad- mitidos somente valores exclusivos. O que a difere de uma chave pri- mária é que esta última não pode assumir valores nulos. ■ PADRÃO: É muito comum que, quando um valor não é informado, o sistema assuma um valor-padrão para a coluna (como data de emis- são de uma Nota Fiscal ou quanti- dade de um determinado produto em uma Nota Fiscal). ■ DOMÍNIO: as vezes é necessário determinar um intervalo de valores possíveis para uma determinada co- luna. É o caso do sexo, por exem- Restrições: melhoram a qualidade da informação armazenada nas tabelas do banco plo, que pode assumir apenas os valores Masculino ou Feminino. TRANSAÇÃO Ocorre sempre que houver uma mo- dificação no conteúdo das tabelas de um banco de dados. Dessa for- ma, uma inclusão, alteração ou ex- clusão geram uma transação. Em gerenciadores de banco de dados, o controle sobre o momento da efe- tiva gravação (COMMIT) dos dados ou abandono da operação (ROLL- BACK) é realizado pelo usuário do banco de dados ou pelo sistema. A transação representa um conjunto de operações que são realizados na base de dados para produzir um re- sultado final. 015_CONCEITOS 25/02/2006 21:43 Page 20 CONCEITOS COLEÇÃO INFO > 23 CONCEITOS 22 23 CONCEITOS 22de- la. O Cliente existe, mesmo que não exista a Nota Fiscal. Por esse moti- vo dizemos que o Cliente não de- pende da Nota Fiscal e, por isso, de- ve ter os dados separados em uma nova entidade. Ao se identificar o(s) grupo(s) independente(s), deve-se separá-los em uma nova entidade (uma para cada grupo independen- te). Feito isso, dá-se um nome à en- tidade e estabelece-se uma chave Procedimentos armazenados: códigos que ficam armazenados para usar depois para o novo grupo. Caso não haja um bom atributo para ser a chave, deve-se criá-lo. É isso que foi feito com o Cliente e Produto. ■ 3ª- FORMA NORMAL (3FN): depois que os grupos de dados estiverem na 2ª- Forma Normal (e jamais antes dis- so), localizam-se atributos com de- pendência transitiva. Calma! Não é tão complicado. Dependência transi- tiva ocorre quando um dado pode ser obtido por meio de outro, exceto a chave. Isso porque os atributos de- pendem da chave. Até que você se habitue, tente localizar campos que possam ser substituídos por fórmu- las matemáticas. No exemplo, temos o atributo Valor Total no Item da No- ta e o Valor Total da Nota Fiscal. Es- ses atributos devem ser excluídos, pois podem ser obtidos por meio de um cálculo realizado com outros atri- butos. Com os dados normalizados, é possível criar as tabelas. PROCEDIMENTOS ARMAZENADOS São pequenos códigos executados em um banco de dados que ficam guardados para posterior utiliza- ção. Podem ser stored procedures (procedimentos armazenados), stored functions (funções armaze- nadas), trigger (gatilho) e package (pacote). Um procedimento é um conjunto de comandos dentro de uma estrutura lógica, com o obje- tivo de realizar uma ação no ban- co de dados. A diferença entre pro- cedimento e função é que esta úl- tima retorna valor. Gatilhos são procedimentos dispa- rados por eventos do banco de da- dos (inclusão, alteração ou exclusão). Por fim, um pacote é um conjunto de funções, procedimentos e outras es- truturas que são armazenados em conjunto para facilitar a manutenção e a segurança da informação. 015_CONCEITOS 25/02/2006 21:54 Page 22 CRIAÇÃO COLEÇÃO INFO > 25 PLANEJE BEM O SEU BANCO SIGA O ROTEIRO PARA CRIAR UM BANCO DE DADOS QUE ACOMPANHE AS TRANSFORMAÇÕES DA EMPRESA POR CELSO HENRIQUE PODEROSO DE OLIVEIRA CRIAÇÃO 24 Há uma empresa ou comunidade responsável pelo produto? > Como está a saúde financeira dessa empresa? Como é a participação dos membros da comunidade? >Qual o compromisso tecnológico da empresa? Houve evolução nos últimos anos? (um ano de atraso em informática pode ser fatal) >Qual a participação de mercado do produto? (produtos com pequena participação podem sumir ou ser absorvidos por outras empresas) >Quanto tempo de vida tem o produto? >Qual tipo de empresa o utiliza? >Quando foi lançada a última versão? Como o fabricante resolve problemas de segurança (atualizações e correções)? >O produto possui as características mínimas de um sistema gerenciador de banco de dados (controle de transações, integridade referencial, programação, backup e recuperação, segurança de acesso, compatibilidade)? > Como é o ambiente de administração do banco de dados? Há possibilidade de administração remota? >Você vai precisar de um administrador de banco de dados (DBA) o tempo todo ou esse trabalho poderá ser feito remotamente? >Há profissionais qualificados no mercado para administrar o banco? Quanto custa a mão-de-obra? >Há produtos (ERP, CRM, BI etc.) adequados para a sua empresa que utilizam o banco de dados? >Qual o volume médio de transações que você vai realizar e como o produto se comporta com isso? 024_CRIACAO 25/02/2006 21:56 Page 24 CRIAÇÃO COLEÇÃO INFO > 25 PLANEJE BEM O SEU BANCO SIGA O ROTEIRO PARA CRIAR UM BANCO DE DADOS QUE ACOMPANHE AS TRANSFORMAÇÕES DA EMPRESA POR CELSO HENRIQUE PODEROSO DE OLIVEIRA CRIAÇÃO 24