Вы находитесь на странице: 1из 110

CONTEDO

BANCO DE DADOS

08

Evoluo: o banco vai do mainframe ao cluster

31

Linguagens: SQL a lngua oficial

BANCO DE DADOS 08 > A aventura dos dados 15 > Sabe o que tupla? 24 > Planeje bem
o seu banco

31 > O banco fala SQLqus TESTES 34 > Um SQL Server


fcil de usar

36 > Oracle em verso light 38 >DB2 grtis com


tudo dentro

42 > O MySQL ganha msculos 47 > Misso crtica


para Postgre

50 > Firebird poupa


a mquina

54 > O Access entra 57


em reforma > Administrao tudo

38

Teste: reviramos o DB2 Express-C, da IBM

4 < COLEO INFO

CONTEDO

TUTORIAIS 62 > Tabelas sem mistrio 71 > Relatrio feito com views 75 > Crie pesquisas com
critrios

78 > O phpMyAdmin
doma o MySQL

83 > Atualizao com o Ajax 86 > Pesquise bem no Access 89 > O Exif vai para o banco 97 > E-mail falso no entra 100 > O Rails faz mais rpido 105 > Controle os seus livros CERTIFICAES 108 > Especialistas em dados 109 > Todo mundo
quer um OCP

89

Tutorial: dados Exif das fotos para o SQL Express

111 > Domine o DB2 em


seis etapas

113 > Craques em SQL Server

108

Certificao: laboratrio para especialistas

42

Teste: o MySQL 5.0 vem reforado

EQUIPE EDIO Lucia Reggiani EDITORA DE ARTE Iara Spina CAPA Crystian Cruz (arte) e Cellus (ilustrao) COLABORADORES Carlos Chernij, Fred Carbonare, Helio Silva, Nivaldo Foresti (texto) e Rita Del Monaco (reviso)

COLEO INFO > 5

Fundador: VICTOR CIVITA


(1907-1990)

Editor: Roberto Civita Conselho Editorial: Roberto Civita (Presidente), Thomaz Souto Corra (Vice-Presidente),

Jose Roberto Guzzo, Maurizio Mauro


Presidente Executivo: Maurizio Mauro Diretor Secretrio Editorial e de Relaes Institucionais: Sidnei Basile Vice-Presidente Comercial: Deborah Wright Diretora de Publicidade Corporativa: Thais Chede Soares B. Barreto

Diretor-Geral: Jairo Mendes Leal Diretor de Ncleo: Alexandre Caldini

Diretora de Redao: Sandra Carvalho Redatora-chefe: Dbora Fortes Diretor de Arte: Crystian Cruz Editores Seniores: Carlos Machado, Lucia Reggiani e Maurcio Grego Editores: Airton Lopes, Andr Cardozo e Eric Costa Reprter: Silvia Balieiro Estagirios: Danilo Gregrio 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 Estagirios: Bruno Roberti, Celso Rodrigues e Valdir Fumene Junior Info Online: Cristian Medeiros e Renata Verdasca (webmasteres) Atendimento ao leitor: Virglio Sousa www.info.abril.com.br
Apoio Editorial: Beatriz de Cssia Mendes, Carlos Grassetti Servios Editoriais: Wagner Barreira Depto. de Documentao e Abril Press: Grace de Souza Correspodente Internacional: Ruth de Aquino PUBLICIDADE CENTRALIZADA Diretores: Mariane Ortiz, Sandra Sampaio, Srgio R. Amaral Executivos de Negcio: Eliane Pinho, Letcia Di Lallo, Maria Luiza Marot, Marcelo Cavalheiro, Marcelo Dria, 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 Simes Gerente de Publicidade ncleo Tecnologia: Marcos Peregrina Gomez Executivos de Negcio: Andria Balsi, Emiliano Hansenn, Marcello Almeida e Renata Mioli MARKETING E CIRCULAO: Gerente de Produto: Ricardo Fernandes, Coordenadora de eventos: Carol Fioresi, Estgiario de marketing: Maurcio Simes Rodrigues Gerente de Circulao Avulsas: Maria Helena Couto Gerente de Circulao Assinaturas: Euvaldo Nadir Lima Junior Planejamento, Controle e Operaes: Diretor: Auro Iasi Gerente: Fbio Luis dos Santos Analista: Tales Bombicini Processos: Ricardo Carvalho ASSINATURAS: Diretora de Operaes de Atendimento ao Consumidor: Ana Dvalos Diretor de Vendas: Fernando Costa
Publicidade So Paulo www.publiabril.com.br, Classificados tel.0800-7012066, Grande So Paulo tel. 3037-2700 ESCRITRIOS E REPRESENTANTES DE PUBLICIDADE NO BRASIL: Central-SP tel. (11) 3037-6564 Bauru Gnottos Mdia Representaes Comerciais, tel. (14) 3227-0378, e-mail: gnottos@gnottosmidia.com.br Belm SRS Propaganda e Representaes 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 Representaes, tel. (47) 3329-3820, fax (47) 3329-6191 Braslia Escritrio: 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 Representaes, telefax (19) 3233-7175, e-mail: czpress@czpress.com.br Campo Grande Josimar Promoes Artsticas Ltda. tel. (67) 3382-2139 e-mail: jairo_galvao@hotmail.com Cuiab Fnix Propaganda Ltda., tels. (65) 9235-7446/9602-3419, e-mail: lucianooliveir@uol.com.br Curitiba Escritrio: tel. (41) 32508000/8030/8040/8050/8080, fax (41) 3252-7110; Representante: Via Mdia Projetos Editoriais Mkt. e Repres. Ltda., telefax (41) 3234-1224, e-mail: viamidia@viamidiapr.com.br Florianpolis Interao Publicidade Ltda. tel. (48) 3232-1617, fax (48) 3232-1782, e-mail: fgorgonio@interacaoabril.com.br Fortaleza Midiasolution Repres. e Negoc. em Meios de Comunicao, telefax (85) 3264-3939, e-mail: midiasolution@midiasolution.net Goinia Middle West Representaes Ltda., tels.(62) 3215-5158, fax (62) 3215-9007, e-mail: publicidade@middlewest.com.br Joinville Via Mdia Projetos Editoriais Mkt. e Repres. Ltda., telefax (47) 3433-2725, e-mail: viamidiajoinvillle@viamidiapr.com.br Manaus Paper Comunicaes, telefax (92) 3656-7588, e-mail: paper@internext.com.br Maring Atitude de Comunicao e Representao, telefax (44) 3028-6969, e-mail: m.atitude@uol.com.br Porto Alegre Escritrio: tel. (51) 3327-2850, fax (51) 3227-2855; Representante: Print Sul Veculos de Comunicao Ltda., telefax (51) 3328-1344/3823/4954, e-mail: ricardo@printsul.com.br ; Multimeios Representaes 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 Ribeiro Preto tel. (16) 3964-5516, fax (16) 632-0660, e-mail: achrisostomo@abril.com.br Rio de Janeiro pabx: (21) 2546-8282, fax (21) 2546-8253 Salvador AGMN Consultoria Public. e Representao, tel.(71) 3341-4992/1765/9824/9827, fax: (71) 3341-4996, e-mail: abrilagm@uol.com.br Vitria ZMR - Zambra Marketing Representaes, tel. (27) 3315-6952, e-mail: samuelzambrano@intervip.com.br Publicaes da Editora Abril: Veja: Veja, Veja So Paulo, Veja Rio, Vejas Regionais Negcios: Exame, Voc S/A A Consumo/Comportamento: Ncleo Consumo: Boa Forma, Elle, Estilo, Manequim Ncleo Comportamento: Claudia, Nova Ncleo Bem-Estar: : Bons Fluidos, Sade!, Vida Simples Turismo/Tecnologia: Ncleo Turismo: Guias Quatro Rodas, National Geographic, Viagem e Turismo Ncleo Homem: : Placar, Playboy, Quatro Rodas, Vip Ncleo Tecnologia: Info, Info Canal, Info Corporate Cultura/Jovem: Ncleo Jovem: Bizz, Capricho, Flashback, Mundo Estranho, Superinteressante, Supersurf Ncleo Infantil: Atividades, Disney, Recreio Ncleo Cultura: : Almanaque Abril, Guia do Estudante, Aventuras na Histria, Revista das Religies Casa/Semanais: Ncleo Casa e Construo: Arquitetura e Construo, Casa Claudia, Claudia Cozinha Ncleo Celebridades: Contigo! Ncleo Semanais: Ana Maria, Faa e Venda, Minha Novela, Tititi, Viva! Mais Fundao Victor Civita: Nova Escola 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 Intl Media Services Co. Ltd., Floor 11-14 no 46, Sec 2, Tun Hua South Road, Taipei, tel. (02) 707-5519, fax (02) 709-8348

COLEO BANCO DE DADOS, edio 27, uma publicao da Editora Abril S.A. Distribuda em todo o pas pela Dinap S.A. Distribuidora Nacional de Publicaes, So Paulo.
IMPRESSA NA DIVISO GRFICA DA EDITORA ABRIL S.A. Av. Otaviano Alves de Lima, 4400, CEP 02909-900 - Freguesia do - So Paulo - SP

Presidente do Conselho de Administrao: Roberto Civita Presidente Executivo: Maurizio Mauro Vice-Presidentes: Deborah Wright, Eliane Lustosa, Marcio Ogliara, Valter Pasquini www.abril.com.br

RECADO DA REDAO

D-LHE INFORMAO!
universo do software grande e abriga mundos muito peculiares, como o dos bancos de dados. De obscuros repositrios dos mainframes, esses programas passaram a estrelas de todo porte, organizando a exploso de informaes geradas pela vida digital de pessoas e empresas. Neles, tabelas so mais que colunas e linhas, os dados se agrupam em entidades e se relacionam abertamente, transacionam, disparam gatilhos e administram restries. Nesse mundinho, o e/AND no soma, diminui. E quem no sabe dessa e outras pegadinhas lgicas, perde tempo fazendo besteira. aqui que se encaixa este especial. Aos novatos, contamos a histria gloriosa dos bancos de dados e destrinchamos seus conceitos. De bandeja, vai um roteiro para escolher o sistema gerenciador, planejar e executar o banco da melhor forma pos-

svel. Testamos as novssimas verses gratuitas dos poderosos Oracle, DB2 e SQL Server 2005, dos livres MySQL, PostgreSQL e Firebird e do beta repaginado do Access 12. Entregamos o jeito profissional de montar tabelas e consultas, os segredos das interfaces de administrao e uma poro de tutoriais com os variados bancos. Voc vai saber como extrair as informaes Exif das fotos digitais para o banco, criar relatrios com views, controlar os livros emprestados, cadastrar e-mails vlidos e muito mais. E se a animao chegar ao ponto de devotar a carreira administrao dos bancos de dados, esto aqui os caminhos para as especializaes mais valorizadas da rea. Aproveite.
LUCIA REGGIANI EDITORA DE BANCO DE DADOS

INFO COLEO
Uma publicao mensal da Editora Abril Para contatar a redao: atleitorinfo@abril.com.br Para assinar a Coleo: (11) 3347.2121 Grande So Paulo 0800-701-2828 Demais localidades abril.assinaturas@abril.com.br

COLEO INFO > 7

HISTRIA

A AVENTURA DOS DADOS


DO MAINFRAME INTERNET, OS BANCOS DE DADOS TM MUITO PARA CONTAR
POR TAGIL OLIVEIRA RAMOS

rmazenar informaes organizadas e recuper-las sem faltar pedao sempre que necessrio. Dita assim, a misso dos ban-

cos de dados parece simples, trivial. No deixa de ser verdade para as tecnologias atuais, que disfaram a complexidade do processamento e do gerenciamento de dados com in ILUSTRAO PEPE CASALS

8 < COLEO INFO

HISTRIA

delos de bancos de dados foram desenvolvidos: o de rede (Codasyl) e o hierrquico (IMS). O acesso base de dados era complicadssimo, e os detalhes do armazenamento dependiam do tipo de dado a ser arquivado. Acrescentar um campo extra base requeria, muitas vezes, reescrever todo o esquema que sustentava a aplicao. A nfase, nesse caso, estava nos registros a serem processados, e no na estrutura do sistema. Para fazer qualquer modificao, um usurio precisaria conhecer a estrutura fsica da base de dados. Sistemas comerciais bemsucedidos, como o Sabre, da IBM e da American Airlines, utilizaram por muitos anos esse tipo de modelo. O MODELO DE CODD No incio dos anos 70, as coisas comeam a mudar. O pesquisador da IBM Edgar Frank Codd (1923-2003) prope o modelo relacional para a base de dados. Mais do que isso, ele introduz uma nova maneira de pensar a informao digital a ser gravada, recuperada e gerenciada, estabelecendo um jeito mais computacional de tratar o relacionamento entre os dados. Esse sistema virou padro e usado at hoje. O modelo abstrato de Codd a primeira abordagem completa para uma base de dados, o resgate das informaes, manipulao, integridade lgica, visualizao, atualizao e gerenciamento. Foi concebido para armazenar registros de daCOLEO INFO > 9

terfaces grficas e assistentes. Mas, no princpio, lidar com bases de dados era coisa cabeluda, encarada por mainframes. A histria dos modernos bancos de dados comea na dcada de 60, quando os computadores ampliaram a capacidade de armazenamento e se transformaram em possibilidade real para as empresas. No havia ainda o conceito elaborado de banco de dados o armazenamento de informao digital baseava-se em modelos de organizao do mundo fsico. No incio, dois mo-

HISTRIA

Esse tipo de sistema usa dos com estruturas relatiQUEL como linguagem de vamente simples e procespesquisa das bases de dasar transaes simples. dos. O segundo prottipo, A idia comeou a ser conhecido como System desenvolvida por Codd duR, foi desenvolvido pela rante seu doutorado na IBM em San Jose, CalifrUniversidade de Michigan. nia, e levou ao SQL/DS & Em sua tese, ele apresenDB2, da prpria empresa, tava uma espcie de auEdgar Codd: pai do seguido por Oracle e HP. to-reproduo feita em modelo relacional Nesse sistema, utilizaprogramas de computada a SEQUEL como linguagem de dores. O trabalho foi publicado em pesquisa de dados. Originalmente, 1967 no livro Cellular Automata, puas aplicaes foram desenvolvidas blicado pela Academic Press. A idia para os enormes mainframes. era to avanada que levou uma dcada para ser digerida. AS DOZE REGRAS Pelo menos dois prottipos prinO termo relao era usado por cipais de sistemas relacionais foram Codd de maneira estritamente madesenvolvidos entre 1974 e 1977, temtica, dentro de uma tabela com mostrando aplicaes prticas do linhas e colunas que trabalhavam que s existia na teoria. com propriedades especiais. EmboUm dos prottipos era o Ingres, ra isso parea bvio atualmente, no desenvolvido na Universidade era nada elementar nos anos 70. Berkeley, que seria seguido pela InTanto que Codd sentiu a necessidagres Corporation, Sybase, MS SQL de de estabelecer as 12 regras de Server e Britton-Lee, dentre outras. uma base de dados relacional, uma receita para extrair do modelo algo que funcionasse mesmo. Isso aconteceu em 1974 e foi expandido ao longo das dcadas. Em 1990, a lista cresceu para 333 requerimentos. Vistas com os olhos de hoje, as 12 Mapa de relacionamento: a teoria de Codd na prtica leis parecem brinca10 < C O L E O I N F O
FOTO DIVULGAO IBM

HISTRIA

deira. A primeira delas, conhecida como Lei da Informao, dizia simplesmente que todo dado deve ser apresentado ao usurio na forma de tabela. A segunda, ou Regra do Acesso Garantido, exige que dBase III: padro de banco de dados para PCs nos anos 80 todo dado seja acesSURGE O DBASE svel sem ambigidade e aconselha A evoluo natural dos bancos de que cada informao seja descrita dados passaria pelo estabelecimenpor uma combinao de nome da to de um padro no-terico: o dBatabela, chave primria e o nome do se, ao ser lanado no final dos anos campo. E assim por diante. 70, tornou-se uma referncia. Sua O mesmo Codd cunharia o nome origem encontra-se em meados dos OLAP (On-Line Analytical Procesanos 60. Seu antecessor era um sissing) para descrever uma ampla catema chamado Retrieve, vendido petegoria de produtos de software que la Tymshare Corporation. Naquela tinham as caractersticas de acesso poca, os computadores s eram aos dados propostas por ele. As 12 encontrados em grandes gabinetes, Regras de seu padro foram adotano ambiente do trabalho. das pela indstria de TI, forando O Retrieve era usado no Jet Promuitas empresas a revisar seus propulsion Laboratory (JPL), em Pasadutos para melhor se adequar aos dena, na Califrnia. Nos anos 60, critrios OLAP de Codd. Jeb Long, um programador desse Em 1976, outro avano viria das peslaboratrio, recebeu a tarefa de esquisas de Peter P. Chen. Ele prope o crever um programa que modelo Entidade-Relaciodesempenhasse as mesnamento (ER) para o design mas funes que o Retriede banco de dados, dando ve. Em 1973, ele se tornou um importante passo para engenheiro de software a modelagem de alto nvel do JPL. Ali ele desenvole permitindo ao desenvolveu um programa de gevedor concentrar-se mais renciamento de arquivos no uso das informaes do chamado JPLDIS (Jet Proque propriamente na estruPeter Chen: novo pulsion Laboratory Distura lgica que h por trs modelo de design play Information System), da tabela.
FOTO DIVULGAO

C O L E O I N F O > 11

HISTRIA

Spock, do filme Jornada escrito na linguagem Fornas Estrelas) e comeou tran para rodar num maina vend-lo por reembolframe Univac 1108. so postal. O JPLDIS foi, assim, a Mais tarde, Long assome da linguagem dBase, ciou-se a Ratliff e traduziu que passou a rodar em miaquela verso original do crocomputadores com o dBase II para rodar no IBM sistema CP/M. Criada por PC. Todo o trabalho foi feium jovem programador to em linguagem Asdo JPL, Wayne Ratliff, seu Wayne Ratliff: sembly. Jeb Long foi um grande sucesso baseavacriador do Vulcan dos fundadores da emprese na simplicidade. Os cosa Ashton-Tate, ficou conhecido com mandos seguiam a lgica das palaum dos gurus do dBase e como resvras inglesas: use, find, list etc. No ponsvel tambm pelas verses dBase, Ratliff partia de uma idia dBase III e dBase IV. tambm simples: desenvolver um programa de banco de dados para AS LINGUAGENS desktop baseado naquele que rodaEm 1984 surgiu o Clipper, linguagem va nos mainframes de seu trabalho. de programao compatvel com o Fez tudo isso num computador mondBase III Plus, com desempenho detado em sua casa. zenas de vezes mais rpido que o Foi um grande progresso para a dBase original. At meados da dpoca. No somente o programa cada de 90, o Clipper era o lder do criava tabelas e guardava dados, mercado de linguagens de desenmas tinha a capacidade de criar provolvimento para micros. A partir da, gramas ASCII (como arquivos batch as linguagens visuais, criadas para do DOS), que podiam ento exibir rodar no ambiente Windows, e imprimir as informaes requisicomeam a ganhar terreno. tadas. Ratliff batizou seu software Quando os bancos de dados relade Vulcan (em homenagem ao Sr. cionais estavam sendo desenvolvidos, foram criadas linguagens destinadas sua manipulao. O departamento de pesquisa da IBM desenvolveu a linguagem SQL (Structured FoxPro para DOS: gerenciador baseado em dBase Query Language) nos
12 < C O L E O I N F O
FOTO DIVULGAO RATLIFF SOFTWARE PRODUCTIONS

HISTRIA

anos 70. Somente em 1986 o American National Standards Institute (ANSI) publicou o SQL como um padro. A partir da, o SQL passou a ser usado pela maioria das empresas. Ao longo dos anos 80, a linguagem SQL torna-se praticamenDB2, da IBM: referncia em banco de dados corporativo te universal. Por sua Object Database Management vez, o DB2, da IBM, passou a ser o carSystems (ODBMS). ro-chefe da empresa nesse segmenO fenmeno da internet vem sacuto, que comea a experimentar exdir o ambiente de TI em meados dos pressivo crescimento. Ao mesmo temanos 90. Comea-se a exigir de mapo, as redes locais ganham espao neira frentica o acesso de compunas empresas, e o DB2 se mantm cotadores remotos aos dados guardamo uma das fortes referncias em dos nos sistemas legados. Na outra bancos de dados corporativos. ponta, os bancos de dados se adaptam para servir s demandas da web CHEGAM OS PCS o que significa acesso s informaCom a entrada dos PCs em cena, as es, de qualquer lugar, via browser. companhias de banco de dados tm No final dos anos 90, o intenso inum crescimento notvel. Novos novestimento das empresas na intermes dominam o cenrio do software, net abastece o mercado com centecomo RIM, RBase 5000, Paradox, nas de ferramentas para conectar dBase, FoxBase e FoxPro. A transios bancos de dados web. Crescem o para a dcada de 90 deixa pouas ofertas de novos produtos e nocas empresas da gerao anterior vas tecnologias. Com o passar do como sobreviventes. O modelo clientempo, destacam-se duas reas bte-servidor torna-se a norma para sicas: de um lado, as solues baas futuras decises de negcio, ao seadas na plataforma Java, da Sun. mesmo tempo em que se verifica o Empresas como a prpria Sun, alm estabelecimento das ferramentas de de IBM e Oracle, tm bancos de daprodutividade pessoal, como Excel dos ou ferramentas para desenvole Access. tambm um marco inivimento nessa rea. Do outro lado, cial para os prottipos dos bancos esto as empresas que oferecem de dados orientados a objeto, ou
C O L E O I N F O > 13

HISTRIA

banco de dados exigem gerenciadores capazes de dar respostas rpidas s empresas. Nessa rea, a Oracle se destaca como o maior fornecedor de bancos de dados corporativos. Desde 1985, o produto passou a tirar proveito da disseminao das redes locais, dando suporte ao modelo cliente-servidor. O Oracle 5, dessa poca, suportava consultas distribuAOS TERABYTES das. Em 1988, surgiu a verso 8, com Mas as tendncias apontam para suporte ao desenvolvimento oriensistemas de alto nvel de armazetado a objeto e aplicaes multimnamento (da ordem de terabytes) dia. Em 1999, sai a verso 8i i de que exigem rapidez e confiabiliinternet. O nmero atual 10g, sendade de processamento, manuseio do o g indicativo da capacidade de e anlise dos dados. Projetos granfuncionar num grid de servidores. diosos, como o Genoma, apontam O Oracle tambm foi o primeiro banpara esse tipo de demanda. Ao co de dados comercial a oferecer mesmo tempo, bases de dados uma verso para Linux. geolgicos, meteorolgicos e esFinalmente, deve-se prestar paciais requerem mais velocidaateno ao crescimento das platade e segurana. Tambm se torformas de cdigo aberto, notadanam comuns as aplicaes empremente o Linux. Junto com ele, dessariais de data mining, data warepontam bancos de dados como o house e data marts. Esses usos do MySQL, utilizado em aplicaes web. Essa mudana em direo ao software livre pode redefinir o perfil do mercado de banco de dados, em especial na faixa das aplicaes mdias e pequenas, a curto prazo, mas abarcando as grandes aplicaes, a Oracle 10g: gerenciador de bancos de dados para clusters longo prazo. produtos fundamentados nas tecnologias ASP e, mais recentemente, .Net, da Microsoft. No item especfico dos gerenciadores de bancos de dados, os grandes nomes so IBM, Oracle e Microsoft. Com a expanso da conectividade, os bancos de dados estendem as possibilidades de acesso at aos PDAs.
14 < C O L E O I N F O

CONCEITOS

SABE O QUE TUPLA?


ENTENDA OS CONCEITOS QUE FAZEM DO BANCO DE DADOS UM MUNDO PARTE NO UNIVERSO DO SOFTWARE
POR CELSO HENRIQUE PODEROSO DE OLIVEIRA

odo mundo que usa telefone possui uma agenda. Nela, cada amigo tem nome, endereo, nmero da linha, data de aniversrio e e-mail, cada dado anotado num espao especial. Quando precisamos ligar para algum contato, vamos letra inicial do nome e buscamos o nmero do telefone. Essa agendinha quase banal expressa

bem o que um banco de dados um armazm de informaes relevantes, organizadas de maneira coerente e lgica, que precisam ser recuperadas com freqncia. No universo dos bits e bytes, o banco de dados envolve conceitos importantes, que precisamos entender bem para torn-lo til e eficiente. disso que trataremos aqui, comeando pelo prprio.

Sistema gerenciador: coleo de programas que mantm as estruturas do banco

C O L E O I N F O > 15

CONCEITOS

acesso, redundncia e integridade, o compartilhamento de dados e o mecanismo de cpias de segurana. MODELAGEM DE DADOS Processo pelo qual trabalham-se os dados de uma empresa ou sistema para se obter estruturas de armazenamento estveis. O processo de anlise pode se dar por meio da criao do Modelo de Entidade X Relacionamento ou pela Normalizao de Dados. O objetivo da modelagem fazer com que as estruturas possam evoluir no tempo, sem prejudicar o desenvolvimento de sistemas. MODELO DE ENTIDADE X RELACIONAMENTO

Interface DB2: administrao grfica

BANCO DE DADOS Defini-lo como uma ou mais tabelas de dados relacionadas ou no possvel. Mas podemos acrescentar lista de componentes os ndices, vises (views), procedimentos (procedures), funes, gatilhos (triggers) etc. Tudo depende do tipo de banco de dados e do que se quer fazer com ele. Partindo-se desse princpio, podem ser considerados banco de dados os arquivos DBF que foram muito populares na dcada de 80 com a linguagem Clipper, um arquivo MDB do MS Access ou mesmo arquivos DAT, proprietrios de linguagens de terceira gerao como Pascal e Cobol. SISTEMA GERENCIADOR uma coleo de programas responsveis pela manuteno das estruturas e objetos de um banco de dados. H diversos produtos comerciais 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 tm como caractersticas principais os controles de
16 < C O L E O I N F O

Modelo: entidade x relacionamento

Modelo que contm as entidades de um sistema e o relacionamento entre elas. Deve ser entendido como uma representao da realidade. Como sempre possvel modificar a realidade de um sistema, deve ser prevista a evoluo do modelo. ENTIDADE Entende-se como um grupo de coisas semelhantes. Essas coisas podem ter uma existncia fsica (pessoa, carro, imvel), ser um documento (no-

CONCEITOS

Entidade: grupo de coisas semelhantes

lacional e em atributos ou propriedades no modelo orientado a objetos. Os atributos so colocados dentro do retngulo que representa a entidade e abaixo do nome da prpria. TUPLA Nada mais do que o conjunto de caractersticas do objeto que se quer representar, a estrutura de atributos relacionados e interdependentes. A tupla seria a linha ou o registro de uma tabela no modelo relacional e a instncia no modelo orientado a objetos. TABELA Estrutura composta por linhas e colunas que serve para armazenar os dados em um banco de dados relacional. A linha indica uma ocorrncia do objeto do mundo real, e a coluna serve para qualificar o objeto. Dessa forma, se imaginarmos uma tabela PESSOA, ela teria em cada linha uma pessoa e em cada coluna as informaes relevantes dessa pessoa, como nome, peso, altura, data de nascimento, documento de identificao, cor dos olhos, cor dos ca-

ta fiscal, pedido de compra, ordem de servio), um local (armazm, sede, filial) ou qualquer outro objeto do mundo real. Cada entidade deve possuir diversas instncias do objeto que representa. Vamos exemplificar com os automveis. A entidade o grupo carro. A instncia o objeto Honda Civic, Peugeot 206, VW Gol. Quando se transpe a entidade para um modelo fsico, tem-se a tabela (no modelo relacional) ou a classe (no modelo orientado a objeto). Uma entidade representada por um retngulo com o respectivo nome. ATRIBUTO Qualificador lgico de um objeto, serve para descrever ou caracterizar os elementos de uma entidade. Cada atributo deve conter apenas uma caracterstica do objeto. Esse ponto importante para no confundirmos atributo com entidade. Um objeto deve ter algumas caractersticas especficas. Cada uma delas ser um atributo do objeto. O inverso tambm verdadeiro: um atributo no pode ter subdivises. Se utilizar o exemplo da entidade carro, podemos ter atributos como nome, montadora, modelo etc. Quando se transpe para o modelo fsico, os atributos se transformam em colunas ou campos no modelo re-

Tabela: estrutura com linhas e colunas

C O L E O I N F O > 17

CONCEITOS

Chaves: qualificadores das entidades

belos etc. A idia central que as caractersticas do objeto permitam identificar uma nica pessoa em cada linha da tabela. CHAVE Um ou mais atributos que permitem identificar uma nica ocorrncia na entidade. um qualificador nico. No modelo fsico, a chave o campo ou a coluna que contm um valor exclusivo e com preenchimento obrigatrio. Assim, no poder haver o mesmo contedo da coluna em duas linhas diferentes. Imagine uma chave para PESSOA. Nome seria uma boa coluna para chave? Naturalmente no, pois h pessoas que tm nomes iguais. CPF seria uma boa chave? Em alguns casos sim, pois embora no tenha repetio e seja um documento obrigatrio para os adultos, no para os bebs. O que normalmente acontece em casos como esse criarmos uma coluna. Em alguns outros exemplos, a chave seria localizada com mais facilidade. Se analisarmos uma Nota Fis18 < C O L E O I N F O

cal, por exemplo, o nmero da nota no se repete e obrigatrio. Por isso poder ser candidato para a coluna chave. Uma chave geralmente est destacada por um smbolo (asterisco ou uma pequena chave) ao lado do atributo correspondente. Quando se analisa o modelo fsico, uma chave pode ser classificada como: s PRIMRIA: qualificador nico e obrigatrio. Deve haver uma nica chave primria em cada tabela. s ESTRANGEIRA: serve para relacionar duas tabelas. Vamos voltar ao exemplo da Nota Fiscal. Cada nota est relacionada a um cliente. Nota Fiscal uma tabela e cliente outra. Cada tabela tem a sua prpria chave primria. Para relacionar o cliente com a nota fiscal, deixamos uma referncia coluna chave do cliente na tabela nota fiscal (chave estrangeira). s SECUNDRIA classifica os dados nas tabelas. Geralmente, os ndices tm o objetivo de agilizar o processo de busca. RELACIONAMENTO Se uma entidade um conjunto de coisas semelhantes, natural que essas coisas guardem algum tipo de relacionamento que seja importante recuperar em algum momento. Quando dizemos que uma nota fiscal emitida contra um cliente, podemos entender que estamos tratando de duas entidades diferentes: Nota Fiscal e Cliente. H, entre

CONCEITOS

essas duas entidades, uma relao de interdependncia, ou seja, para se emitir uma Nota Fiscal, necessrio que haja um Cliente. A essa interdependncia damos o nome de relacionamento. Na prtica, sempre que uma ou mais tuplas de uma entidade guardarem alguma relao com uma ou mais tuplas de outra entidade teremos um relacionamento entre as entidades. Um relacionamento pode ser classificado de duas formas: opcionalidade e cardinalidade. A opcionalidade indica se obrigatria ou no a ocorrncia ou indicao de uma tupla de uma entidade na outra. Dessa forma, podemos dizer que obrigatria a presena de um Cliente em uma Nota Fiscal, mas opcional a existncia de uma Transportadora, por exemplo. De outro lado, o Cliente pode ou no estar vinculado a uma Nota Fiscal. O mesmo acontece com a Transportadora. A cardinalidade indica quantas ocorrncias de uma tupla se relacionam com a outra tupla. Sabemos que cada Cliente pode estar vinculado a zero, uma ou muitas Notas Fiscais, enquanto cada Nota Fiscal est relacionada a um nico Cliente. Como voc pode notar, a cardinalidade e a opcionalidade so sempre expressas de um e de outro lado do relacionamento. A cardinalidade pode ser: s 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 zero ou um a opcionalidade). Esse tipo de relacionamento no o mais comum, pois sempre se deve questionar a vantagem de manter os dados separados em duas entidades. Note que sempre h um custo vinculado criao e manuteno de uma tabela. Se o custo compensar, devese manter separado. Do contrrio, melhor unir as duas entidades. s UM PARA MUITOS (1:M): quando cada tupla de uma entidade est relacionada a zero, uma ou mais tuplas da outra entidade (no esquea que o zero ou um a opcionalidade). Este o relacionamento mais comum. s MUITOS PARA MUITOS (M:M): quando h ocorrncias de mltiplos relacionamentos entre as tuplas de duas entidades. Esse relacionamento, apesar de existir, no passvel de implementao em um banco de

Relacionamento: muitos para muitos (acima); um para muitos (abaixo)

C O L E O I N F O > 19

CONCEITOS

dados relacional. Sempre que se identificar essa situao, deve-se criar uma entidade entre as duas entidades, classificadas como fundamentais. Essa nova entidade, classificada como entidade associativa, deve conter, pelo menos, as chaves das duas entidades fundamentais. Uma das formas de representar o relacionamento o p-de-galinha para indicar a cardinalidade muitos, um pequeno trao para indicar a cardinalidade um, o tracejado para indicar opcionalidade e o segmento de reta contnuo para indicar obrigatoriedade. Uma outra forma indicar a opcionalidade com um pequeno crculo antes do um ou muitos da cardinalidade. Lembre-se: so apenas convenes. O importante que o relacionamento esteja claro e esteja representado no modelo de dados. INTEGRIDADE REFERENCIAL Mecanismo utilizado pelos gerenciadores de bancos de dados para manter a consistncia das informaes armazenadas. Suponha que estamos cadastrando uma Nota Fiscal e indicamos um cdigo de cliente (que relaciona com a tabela Cliente) inexistente. Outra situao tentar excluir um Cliente que tenha diversas Notas Fiscais emitidas. Como iramos recuperar a informao, caso o banco de dados permitisse a excluso do Cliente? Simplesmente perderamos o elo entre as tabelas, e a informao armazenada estaria invlida.
20 < C O L E O I N F O

A principal forma de garantir a integridade entre tabelas se d por meio do vnculo entre a chave primria de uma tabela com a chave estrangeira da outra tabela. As colunas das duas tabelas armazenam as informaes que permitem estabelecer o relacionamento entre as linhas das tabelas. Assim, o cdigo de cliente 1 da tabela Cliente, cujo nome Joo, ser armazenado na coluna cdigo do cliente da tabela Nota Fiscal sempre que se quiser indicar que o Joo comprou determinados produtos. No ser possvel excluir Joo (cdigo do cliente 1) enquanto houver Notas Fiscais emitidas contra esse cliente. RESTRIES Utilizam-se as restries (constraints) para melhorar a qualidade da informao guardada nas tabelas do banco. As restries mais comuns so a chave primria e a estrangeira. Mas h outras restries bastante importantes: s NULOS: uma coluna que no tenha valor inicializado considerada uma coluna nula. Nem sempre adequado permitir que uma coluna no tenha valores atribudos. Imagine uma linha na tabela Cliente cujo nome seja nulo. Como podemos identificar o cliente? s EXCLUSIVOS: suponha que se tenha criado uma tabela Cliente cujo cdigo do cliente no seja um documento, como CPF ou RG. Mesmo

CONCEITOS

Restries: melhoram a qualidade da informao armazenada nas tabelas do banco

no sendo uma coluna chave, esses valores no podem ser duplicados em clientes (linhas) diferentes. Para isso definimos que sejam admitidos somente valores exclusivos. O que a difere de uma chave primria que esta ltima no pode assumir valores nulos. s PADRO: muito comum que, quando um valor no informado, o sistema assuma um valor-padro para a coluna (como data de emisso de uma Nota Fiscal ou quantidade de um determinado produto em uma Nota Fiscal). s DOMNIO: as vezes necessrio determinar um intervalo de valores possveis para uma determinada coluna. o caso do sexo, por exem-

plo, que pode assumir apenas os valores Masculino ou Feminino. TRANSAO Ocorre sempre que houver uma modificao no contedo das tabelas de um banco de dados. Dessa forma, uma incluso, alterao ou excluso geram uma transao. Em gerenciadores de banco de dados, o controle sobre o momento da efetiva gravao (COMMIT) dos dados ou abandono da operao (ROLLBACK) realizado pelo usurio do banco de dados ou pelo sistema. A transao representa um conjunto de operaes que so realizados na base de dados para produzir um resultado final.
C O L E O I N F O > 21

CONCEITOS

NORMALIZAO DE DADOS Processo pelo qual so aplicadas regras a um conjunto de dados e, no final, obtm-se uma base quase livre de redundncias. Ao atingir esse objetivo, possvel recuperar o dado em um nico lugar (tabela). Isso far, com certeza, que haja um aumento na quantidade de tabelas criadas no sistema, mas ajudar a aumentar a confiabilidade dos dados armazenados. Ao final do processo de normalizao, deve-se valid-lo com o Modelo de Entidade x Relacionamento. Esse processo pode ser feito em at seis fases, mas, geralmente, ao se chegar na terceira etapa (conhecida como 3 - Forma Normal), j possvel obter um modelo de dados estvel. Antes de iniciar o processo de normalizao, importante identificar o grupo de dados que se quer analisar. Esse grupo pode estar representado por um formulrio, um relatrio ou at mesmo uma tela do sistema. Pode tambm ser resultado de um levantamento sistemtico das necessidades de informao dos usurios. Com o grupo de dados definido, deve-se listar todos os dados disponveis, sem desprezar nenhum. Em seguida, deve-se dar um nome a esse grupo de dados. Aps o nome, estabelece-se um identificador nico (chave). Cumprida essa etapa, deve-se proceder ao processo de normalizao. Para explicar melhor, vamos adotar um formulrio de Nota Fiscal como exemplo.
22 < C O L E O I N F O

As trs fases da Normalizao de Dados so: s 1 - FORMA NORMAL (1FN): eliminar grupos de dados repetitivos da estrutura. Para isso, deve-se localizar os atributos multivalorados, os que tm mais de uma ocorrncia no formulrio. No caso da Nota Fiscal, temos produto, quantidade, valor unitrio e total como grupo de dados multivalorado. Deve-se separar esse grupo em uma nova entidade, dar um nome ao grupo, levar a chave da Nota Fiscal (para manter a relao entre as entidades) e estabelecer uma chave para o novo grupo. Essa chave pode ser composta pela chave da Nota Fiscal e por mais de um atributo existente. possvel, quando no se localizar um atributo adequado, cri-la. s 2 FORMA NORMAL (2FN): quando somente houver grupos de dados na 1 - Forma Normal (e jamais antes disso), deve-se localizar dados que no dependam nica e exclusivamente da chave da entidade. Veja: o Cliente est relacionado Nota Fiscal, mas no depende dela. O Cliente existe, mesmo que no exista a Nota Fiscal. Por esse motivo dizemos que o Cliente no depende da Nota Fiscal e, por isso, deve 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 independente). Feito isso, d-se um nome entidade e estabelece-se uma chave

CONCEITOS

para o novo grupo. Caso no haja um bom atributo para ser a chave, deve-se cri-lo. isso que foi feito com o Cliente e Produto. s 3 - FORMA NORMAL (3FN): depois que os grupos de dados estiverem na 2 - Forma Normal (e jamais antes disso), localizam-se atributos com dependncia transitiva. Calma! No to complicado. Dependncia transitiva ocorre quando um dado pode ser obtido por meio de outro, exceto a chave. Isso porque os atributos dependem da chave. At que voc se habitue, tente localizar campos que possam ser substitudos por frmulas matemticas. No exemplo, temos o atributo Valor Total no Item da Nota e o Valor Total da Nota Fiscal. Esses atributos devem ser excludos, pois podem ser obtidos por meio de um clculo realizado com outros atributos. Com os dados normalizados, possvel criar as tabelas.

PROCEDIMENTOS ARMAZENADOS So pequenos cdigos executados em um banco de dados que ficam guardados para posterior utilizao. Podem ser stored procedures (procedimentos armazenados), stored functions (funes armazenadas), trigger (gatilho) e package (pacote). Um procedimento um conjunto de comandos dentro de uma estrutura lgica, com o objetivo de realizar uma ao no banco de dados. A diferena entre procedimento e funo que esta ltima retorna valor. Gatilhos so procedimentos disparados por eventos do banco de dados (incluso, alterao ou excluso). Por fim, um pacote um conjunto de funes, procedimentos e outras estruturas que so armazenados em conjunto para facilitar a manuteno e a segurana da informao.

Procedimentos armazenados: cdigos que ficam armazenados para usar depois

C O L E O I N F O > 23

CRIAO

PLANEJE BEM O SEU BANCO


SIGA O ROTEIRO PARA CRIAR UM BANCO DE DADOS QUE ACOMPANHE AS TRANSFORMAES DA EMPRESA
POR CELSO HENRIQUE PODEROSO DE OLIVEIRA

criao de um banco de dados um processo que envolve uma srie de competncias. Houve tempo em que esse processo estava reduzido a identificar um ou mais objetos, escolher uma forma de armazenamento, algumas caractersticas desses objetos e pronto. Geralmente, a prpria estrutura do banco de dados era vinculada linguagem de programao. Com o passar do tempo, a tecnologia evoluiu e foi separada das linguagens de programao. Ambientes completos de administrao foram desenvolvidos e sua utilizao contribuiu para disseminar as informaes de maneira adequada e consistente. Atualmente, os produtos esto muito mais complexos e permitem ao profissional realizar um trabalho que pode contribuir para a melhor utilizao da informao. De simples local de armazenamento, o banco de dados evoluiu para um verdadeiro repositrio de informaes das empresas. o ambiente adequado para armazenar e recuperar dados ope-

racionais, alm de dar suporte tomada de deciso por parte da mdia e alta gerncia das corporaes. No se consegue atingir esse objetivo sem que se observem algumas regras. Por isso, trataremos aqui da estratgia para a criao de um banco de dados. PLANEJAMENTO E ESCOLHA Planejar e escolher o melhor banco de dados uma tarefa extremamente importante no processo de criao. A escolha certa evita frustraes nas operaes do dia-a-dia e na evoluo que o produto deve ter para acompanhar o crescimento da empresa. Planejar saber onde se quer chegar e estabelecer os meios adequados para estar l. necessrio olhar para frente e analisar como voc quer que as coisas estejam no futuro. antever situaes que podem definir o sucesso ou no do seu empreendimento. Portanto, antes de escolher o produto, pense onde voc quer chegar. Enxergue o banco de dados como um meio para atingir sua meta.

24 < C O L E O I N F O

CRIAO

Com isso, dependendo do caso, se a sua empresa desenvolve sistemas, a deciso poder ser totalmente diferente de uma construtora, por exemplo. Baseie-se em aspectos tcnicos e mercadolgicos para definir o produto com o qual voc ir con-

viver durante um bom tempo (tenha isso em mente: no se troca de banco de dados seno com alguma dificuldade). Veja na tabela abaixo algumas questes que podem ajudar na escolha do produto ideal para as suas necessidades.

GUIA PARA A ESCOLHA DO GERENCIADOR

> H uma empresa ou comunidade responsvel pelo produto? > Como est a sade financeira dessa empresa? Como a participao dos membros da comunidade? Qual > o compromisso tecnolgico da empresa? Houve evoluo
nos ltimos anos? (um ano de atraso em informtica pode ser fatal)

> Qual a participao de mercado do produto? (produtos com


pequena participao podem sumir ou ser absorvidos por outras empresas)

> Quanto tempo de vida tem o produto? > Qual tipo de empresa o utiliza? > Quando foi lanada a ltima verso? Como o fabricante resolve problemas de segurana (atualizaes e correes)? > O produto possui as caractersticas mnimas de um sistema
gerenciador de banco de dados (controle de transaes, integridade referencial, programao, backup e recuperao, segurana de acesso, compatibilidade)? o ambiente de administrao do banco de dados? H > Como possibilidade de administrao remota? vai precisar de um administrador de banco de dados (DBA) > Voc o tempo todo ou esse trabalho poder ser feito remotamente? profissionais qualificados no mercado para administrar o > H banco? Quanto custa a mo-de-obra? produtos (ERP, CRM, BI etc.) adequados para a sua empresa > H que utilizam o banco de dados? o volume mdio de transaes que voc vai realizar e como > Qual o produto se comporta com isso?
C O L E O I N F O > 25

CRIAO

Agora voc precisa saber quais so as informaes necessrias para sua empresa. Isso poder lhe ajudar a diminuir a lista. PROJETO LGICO Esta parte do processo deve acontecer em paralelo escolha do sistema gerenciador de banco de dados. Optar por um produto sem ter noo das necessidades de informao da empresa como dar um tiro no p. A maneira clssica de fazer isso envolve todos os conceitos de engenharia de software para levantamento de requisitos. Quando se pensa em informao, qualquer documento, tela de sistema ou relatrio til para identificar o que necessrio armazenar no banco de dados. Muitas vezes os usurios da informao esquecem alguns detalhes na fase de levantamento, por isso importante recolher o mximo de documentos possveis. Na maior parte dos casos, ter uma ferramenta de auxlio para o analista criar e modelar a estrutura do banco de dados desejvel. Essas ferramentas so conhecidas como CASE (Computer Aided Software Engineering). Entre elas esto ErWin, DbDesigner, MS Visio e Oracle Designer. Cada uma possui caractersticas que a torna mais ou menos adequada para cada situao, mas todas contribuem para o trabalho do analista. Depois de levantados os requisitos de informao, deve-se fazer um projeto lgico. Entende-se por projeto lgico a fase em que se realiza
26 < C O L E O I N F O

a modelagem lgica de dados, composta pela aplicao do modelo de entidade X relacionamento e pela normalizao de dados. Em um primeiro momento no deve haver preocupao com a estrutura fsica que ser criada, e sim com o atendimento dos requisitos dos usurios. PROJETO FSICO Uma vez estabelecido o projeto lgico, vamos ao projeto fsico. Nele, transforma-se o modelo de entidade X relacionamento para o modelo fsico, em geral, sem problemas. As estruturas relacionais (tabelas) so representaes bastante simples e adequadas para caracterizar coisas do mundo real. H uma troca natural de nomenclatura: entidades passam a se chamar tabelas, tuplas viram registros ou linhas, e atributos tornam-se colunas ou campos. A menos que haja alguma necessidade muito especfica, basta acrescentar o tipo de dado e o tamanho de cada um dos campos ou colunas, estabelecer chaves primrias e estrangeiras (normalmente as ferramentas CASE fazem esse trabalho por ns), definir regras de integridade, criao de vises (views), ndices e outros aspectos fsicos do projeto. Hora de criar as estruturas fsicas, com tabelas, relacionamentos, chaves e tudo a que temos direito. Normalmente, as ferramentas CASE tambm fazem a maior parte do trabalho. Algumas so capazes de se conectar ao banco e criar as estruturas.

CRIAO

Outras geram os scripts para serem executados no banco de dados. S que, para chegar aqui, necessrio ficar atento a alguns detalhes.

PADRONIZAO sempre importante manter um padro para o nome dos objetos, colunas e outros elementos. Mesmo que voc trabalhe sozinho em um projeto, bem provvel que no futuro outras pessoas tenham de atualizar aquilo que voc fez. A padronizao comea na documentao do projeto e continua em todo o processo fsico de criao do banco de dados. Toda equipe deve estar envolvida para definir o que e como ser esse padro. 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 atrs era comum utilizar nomes estranhos, muito mais vinculados aos programas que mantinham a entidade do que ao objetivo dela. Alguns analistas at se valiam desPADRONIZE AS COLUNAS se expediente para manterse no emprego quanto CLASSIFICAO OPO 1 OPO 2 mais obscuro, mais depenCOD CD CDIGO dncia do analista.
NMERO NUM DES NOM DAT VAL QTD SIG DOM NR DS NM DT VL QT SG DM

do sistema que mantm aquela estrutura. Em outros, acrescenta-se a estrutura departamental que realiza esse trabalho. Essa ltima opo a pior, visto que h mudanas freqentes nas funes departamentais de uma empresa moderna. Particularmente, creio que ambas situaes so desnecessrias, visto que atualmente uma classe destacada para essa funo. A classe normalmente tambm tem um nome claro e objetivo. Se h atributos importantes para serem mantidos, como cor, modelo, ano de fabricao, ano do modelo e montadora, deve-se colocar esses nomes nas colunas. Outro ponto importante, mas no determinante, especificar a classificao do dado junto com o nome. Assim, se a cor do veculo fizer referncia a uma tabela de cores e, portanto, eu for armazenar o cdigo da cor, comum utilizar-se CD ou COD antes do nome. O nome do campo ficaria CDCOR, por exemplo.

TABELAS E COLUNAS Se eu identifiquei um objeto que armazene as informaes de um veculo, devo dar-lhe o nome de VEICULO. Em certos casos, alguns analistas preferem indicar qual o mdulo

DESCRIO NOME DATA VALOR QUANTIDADE SIGLA DOMNIO

C O L E O I N F O > 27

CRIAO

Como no possvel utilizar espaos na definio do nome das colunas (ou mesmo objetos), utilizase o caractere sublinhado (_) para substituir o espao. A tabela ficaria como no exemplo da figura abaixo.

PROCESSO DE CRIAO DE BANCO DE DADOS


PROJETO LGICO DE DADOS Anlise e modelagem utilizando o Modelo de Entidade e Relacionamento e Normalizao de Dados Desenho com definio de tabelas, ndices, vises etc. Criao de scripts para execuo do gerenciador de banco de dados

PROJETO FSICO DE DADOS CRIAO DO BANCO DE DADOS

BANCO DE DADOS CRIADO

TIPOS DE DADOS A definio do tipo de dados tambm exige padronizao. Parece bvio que um dado que receber apenas contedo numrico deva ser definido como NUMBER, DECIMAL, INTEGER, FLOAT ou qualquer outro tipo que seja otimizado para este fim. O mesmo acontece com alfanumricos e datas, mas h algumas observaes a considerar nessa escolha. O tipo de dado numrico, de um modo geral, possui mecanismos que fazem com que as buscas sejam mais rpidas do que as que ocorrem em colunas alfanumricas. Ele tambm ocupa menos espao fsico para armazenamento. Por isso, chaves primrias (e con28 < C O L E O I N F O

seqentemente estrangeiras) so definidas por campos numricos. Colunas pesquisadas com freqncia, como CPF, tambm so definidas como numricas. A maioria dos gerenciadores de banco de dados trabalha com dois grupos de tipos de dados alfanumricos: CHAR e VARCHAR (ou VARCHAR2, no Oracle). O primeiro utiliza todo o espao especificado, enquanto que o segundo varivel, usando, no mximo, o espao predeterminado. Isso faz com que o segundo, por utilizar apenas o espao efetivamente ocupado pelo contedo, otimize o armazenamento e no deixe buracos nos contedos. DBAs experientes levam em considerao o volume de alteraes no contedo para essa definio. Isso porque, caso um contedo seja alterado com freqncia, a atualizao poder gerar uma fragmentao da informao quando includo, o contedo ocupou um espao e, depois de uma alterao para maior, quando no h espao na seqncia, ser colocado em outro espao fsico do disco. Campos que armazenam datas devem ser definidos dessa forma para facilitar operaes de busca e at mesmo operaes matemticas entre elas. O padro SQL possui uma srie de comandos especficos para calcular intervalo entre datas, extrair ano, dia, ms etc. Para contedos muito grandes, co-

CRIAO

mo arquivos XML, imagens, sons e textos extensos deve-se utilizar o LOB. Normalmente h uma separao para binrios (BLOB), adequados para armazenamento de imagens e sons, e alfanumricos (CLOB). No caso especfico de XML, possvel que o gerenciador de banco de dados tenha algum mecanismo melhor de armazenamento. PROGRAMAO Sempre que possvel, prefira criar os mdulos que utilizam e manipulam dados dentro do banco de dados. Apesar de atualmente haver uma grande difuso da necessidade de independncia de banco de dados por meio da utilizao de uma camada intermediria que assuma essa responsabilidade, inegvel que o gerenciador do banco de dados o ambiente mais adequado para manter e atualizar dados. Ao se programar em qualquer outra camada que no a de dados, o trfego de informaes pela re-

de aumentado. Se voc optar por colocar a camada de aplicao no mesmo servidor (ou servidores), poder comprometer seu desempenho pelo excesso de uso. Assim, prefira programar o banco de dados para rotinas que envolvam acesso e manipulao de dados. Os programas devem seguir a padronizao da empresa no que diz respeito aos mdulos: definio de variveis, letras maisculas e/ou minsculas para comandos etc. INTERFACES DE ADMINISTRAO To importante quanto criar estruturas estveis para suprir as necessidades de informao da empresa a tarefa de manter o banco de dados com um nvel aceitvel de tempo de resposta. Para isso, necessrio ter uma ateno especial na administrao. As interfaces de administrao tm evoludo bastante para simplificar o processo. Mesmo os gerenciadores de cdigo aberto possuem interfaces amigveis que permitem criar e manter todas as estruturas do banco rapidamente. Algumas podem ser acessadas remotamente, o que facilita o processo de manuteno e acompanhamento que o DBA faz no banco de dados. A tendncia que os gerenciadores sejam cada vez mais automatizados, em especial no que diz respeito ao desempenho. Os ajusC O L E O I N F O > 29

Programao: no SQL Server 2005 d para criar consultas sem escrever cdigo

CRIAO

tes (tuning) podem ser realizados sem a interferncia direta do DBA. O administrador supervisiona e valida o que foi feito e, em caso de problemas, adota outras medidas.

SEGURANA Nunca pouco lembrar que a criao de usurios e a rotina de backup seja planejada com coerncia. Usurios com superpoderes no so desejveis em bancos de dados. Deve haver poucos, de preferncia um nico DBA por banco. Deve ser objeto de estudo constante a verificao e a auditoria dos usurios e as transaes realizaCONCLUSO das. No basta confiar apenas no Com planejamento, padronizao e sistema para esse controle. Os gecontrole possvel fazer com que renciadores possuem interfaces de os dados da empresa possam ser administrao relativamente simacessados em segurana e rapidaples. Usurios genricos podem mente. Unir diversas tabelas no comprometer a segurana dos dacriar um banco. O processo comedos nessa situao. a com a escolha do gerenciador A rotina de backup deve ser tesadequado s necessidades e termitada inclusive com restauraes pena com a execuo de um plano roridicas, para determinar a exatido busto e completo para o que pree o conhecimento do processo. Norciso hoje e ser necessrio amanh. malmente, para backup, h algumas formas disponveis nos principais gerenciadores. As principais so: s CPIA COMPLETA DOS DADOS (OFF LINE): interrompese a execuo do banco de dados e copiam-se os arquivos de dados. Em caso de pane, pode-se restaurar todo o banco que retornar ao momenBI: ferramenta para necessidade atual e futura to em que foi feita a cpia.
30 < C O L E O I N F O

s CPIA COMPLETA DOS DADOS (ON LINE): as transaes que so efetuadas so armazenadas em local especfico para serem copiadas para um meio fsico. Em caso de pane no banco de dados, possvel retornar a um ponto no tempo, at o limite das transaes gravadas no disco. Isso faz com que a perda de dados seja consideravelmente menor. s SERVIDOR STANDBY: a cpia das transaes realizada em um servidor separado. Em caso de pane, o outro servidor assume a funo do servidor que falhou.

LINGUAGENS

O BANCO FALA SQLQUS


CONHEA O IDIOMA DOS BANCOS DE DADOS E AS LINGUAGENS DE ACESSO A ELES
POR ANDR CARDOZO

s programadores podem escolher a linguagem que quiserem para construir aplicativos que acessem o banco de dados. Mas no tm como escapar da SQL (Structured Query Language). Se o TCP/IP o idioma da internet, podemos dizer que a SQL tem a mesma funo nos bancos de dados. A linguagem foi desenvolvida na dcada de 70 pela IBM com uma ni-

ca finalidade: manipular bancos de dados. A SQL em muitos casos pronunciada como SEQUEL adotada por todos os sistemas gerenciadores mais utilizados no mercado, como Oracle, MySQL e Microsoft SQL Server. No nvel mais avanado, um programador precisa se dedicar para dominar a SQL, mesmo porque diversos bancos de dados possuem extenses proprietrias, funes mais
C O L E O I N F O > 31

ILUSTRAO PAVO

LINGUAGENS

avanadas que s funcionam naquele sistema. Os comandos bsicos so intuitivos e podem ser usados sem dificuldade por quem tem noo de programao. Veja alguns: CREATE: cria tabelas SELECT: seleciona dados INSERT: inclui dados em tabelas UPDATE: atualiza dados DELETE: apaga dados Alm das expresses principais, outros comandos muito usados so o where, que inclui a condio, e o order by, que ordena o resultado da consulta SQL. Veja como elas funcionam no exemplo abaixo: SELECT nome,endereco FROM clientes WHERE estado = sp ORDER BY nome Esse comando seleciona as colunas nome e endereco da tabela clientes em que o estado igual a sp (condio imposta pela expresso where). Portanto, somente os clientes de So Paulo. Os resultados so ordenados por nome. A tabela poderia conter outras colunas, como idade e sexo, mas nesse exemplo usamos s nome e endereco. Para selecionar todas as colunas, basta trocar nome,endereco por *, como abaixo: SELECT * FROM clientes WHERE estado = sp ORDER BY nome PL/SQL, A TURBINADA A linguagem PL/SQL uma extenso da SQL especializada no banco de dados Oracle. Ela combina a facilidade de
32 < C O L E O I N F O

manipulao de dados da SQL com as facilidades de programao de uma linguagem procedural. Permite criar objetos de esquema, como gatilhos, procedimentos armazenados e pacotes. A linguagem PL/SQL utiliza o conceito de bloco estruturado. Esses blocos so compostos por procedures e funes. Um bloco tem a estrutura bsica composta por trs partes: DECLARE: seo opcional, em que todos os objetos so declarados; BEGIN: em que os comandos PL/SQL so colocados; EXCEPTION: em que os erros so tratados. LINGUAGENS DE ACESSO Opes no faltam para os desenvolvedores de programas de acesso a banco de dados. As mais populares so ASP, Perl, PHP e Java. Cada uma dessas linguagens tem suas vantagens e desvantagens, e a escolha depende de uma srie de fatores, como compatibilidade, custo e portabilidade. Conhea essas opes. PHP, A POPULAR Uma soluo bastante popular entre os webmasters de sites dinmicos o PHP (Personal Home Page), criado pelo programador Rasmus Leedorf. A linguagem funciona tanto em Unix quanto em Windows e possui suporte para diversos bancos de dados, incluindo MySQL, Sybase, SQL e Oracle.

>

LINGUAGENS

A sintaxe possui alguns elementos derivados do Perl, mas bem mais simples e exige apenas noes bsicas de programao. Alm disso, h outra qualidade muito importante, que beneficia uma parte sensvel de todos ns: o bolso. O interpretador PHP (programa que processa as pginas feitas nesse formato) gratuito, e basta baixar e instalar no servidor para comear a criar um website dinmico. ASP, A OPO WINDOWS O ASP (Active Server Pages) no exatamente uma linguagem de programao, mas o que a Microsoft define como ambiente de execuo de scripts. Na maior parte das vezes, as instrues so escritas em VBScript, que derivado do Visual Basic, tambm filhote da Microsoft. A penetrao do Visual Basic no mercado contribui bastante para o crescimento do ASP. Como a quantidade de programadores VB grande, fica mais fcil para as empresas contratarem profissionais que desenvolvam aplicaes em VBScript. Aderir ao ASP significa quase sempre optar pelo mundo Windows, uma vez que as pginas ASP s rodam nativamente em servidores Windows com servidor web IIS (Internet Information Server), da Microsoft. possvel rodar pginas ASP em sistemas Unix por intermdio de solues comerciais, como o ChiliASP, ou usan-

do o OpenASP, no servidor web Apache. Mas a implementao desse tipo de soluo costuma ser problemtica para os webmasters. JAVA, A ECLTICA A linguagem Java a alternativa de programao criada pela Sun Microsystems. uma linguagem robusta, com funes complexas. Possui como principal vantagem, a portabilidade roda em qualquer plataforma, de palmtop a mainframe, de sistemas embarcados a programas srios de internet banking, por exemplo. Profissionais especializados em Java esto entre os mais disputados do mercado. PERL, A VETERANA A linguagem Perl (Practical Extraction and Reporting Language) foi criada em 1987 pelo programador Larry Wall para resolver tarefas de administrao em sistemas Unix. Wall divulgou a primeira verso de Perl nas listas de discusso da Usenet e logo programadores de todo o mundo comearam a dar sugestes para o aprimoramento da linguagem. Uma das vantagens de Perl a portabilidade. Os scripts podem ser transferidos do Unix para o Windows e vice-versa com pouca ou nenhuma modificao. A linguagem expandida pelo uso de mdulos.
C O L E O I N F O > 33

TESTE/SQL SERVER

UM SQL SERVER FCIL DE USAR


A VERSO GRTIS DO BANCO DE DADOS DA MICROSOFT TEM ASSISTENTE E MUITOS RECURSOS
POR NIVALDO FORESTI

servidor Pentium 4 de 2 GHz com 1 que no faz a concorrnGB de memria RAM. cia. Bastou os bancos de Seguindo o padro dos produtos dedados de cdigo aberto senvolvidos pela Microsoft, a instalacomearem a ganhar eso do Express extremamente simpao nas corporaes, os fabricantes ples e fcil de fazer. Um tradicionais passaram a oferecer verses graFIQUE LIGADO assistente leva o usurio pela mo por todas tuitas com a maioria Pequenas empresas as etapas do processo. dos recursos das vere desenvolvedores so Com alguns cliques de ses pagas e algumas o alvo do SQL Server mouse, voc instala restries. A Microsoft 2005 Express uma instncia do geinaugurou esse movi-

>

mento, lanando no final do ano passado o SQL Server 2005 Express e seus trs irmos pagos: Workgroup, Standard e Enterprise. Depois, vieram a Oracle e a IBM. Como as verses comerciais irms, o SQL Server 2005 Express vem integrado ao Visual Studio .Net, o que se traduz em facilidade para o desenvolvimento de aplicaes. O INFOLAB testou o programa num
Management Studio: sute de administrao e desenvolvimento

renciador de banco de dados. Mas nem tudo perfeito. A sute de administrao e desenvolvimento SQL Server Express Management Studio Community Technology Pre-

34 < C O L E O I N F O

TESTE/SQL SERVER

view (CTP) no acompanha a instalao. preciso fazer o download separadamente do CTP no endereo www.info.abril.com.br/download/ 4454.shtml. RECURSOS No espere que a Microsoft tenha dado tudo de bandeja nessa verso disponvel gratuitamente para voc. Faltam vrios recursos. Voc no encontrar o DTS (Data Transformation System), o que dar muita dor de cabea na hora de importar dados de outros formatos de arquivo para dentro do banco de dados. Tambm no ter a pesquisa em texto, os servios de notificao e os recursos de business intelligence que tornam a verso Enterprise bastante atraente para as empresas maiorzinhas. Outras restries importantes so o suporte a apenas um processador, somente 1 GB de memria RAM e at 4 GB de tamanho do banco de dados. Se bem que difcil uma pequena empresa bater nesses limites. FUNCIONALIDADES Nem tudo problema. O mecanismo de acesso a dados MSDE (Microsoft Desktop Engine), um SQL Server rudimentar para desktops, desapareceu com o advento do Express. E, com ele, sumiu a restrio de desempenho quando existiam mais de cinco conexes simultneas ao banco de dados. Toda a funcionalidade programtica est no Express, at mesmo o suporte a XML e a integrao da lin-

guagem CLR (Common Language Runtime) da .Net com a Transact-SQL, a linguagem de comandos SQL da Microsoft. O novo conjunto de objetos e a habilidade de agir como cliente na replicao de dados e nos cenrios de envio de mensagens no faltaram na verso gratuita. Em suma, d para aproveitar bastante at serem necessrias mais funcionalidades.

SQL SERVER 2005 EXPRESS


FABRICANTE PR CONTRAS Microsoft Fcil de usar e gerenciar Suporta apenas um processador, 1 GB de memria e bancos de at 4GB 8,5 Rpida, com verificao de pr-requisitos e primeiros passos 7,5 Possui administrao similar da verso Standard, mas faltam funcionalidades FERRAMENTAS 6,5 Fica devendo ferramentas como o DTS para a importao de dados 8,5 Traz todos os recursos das demais verses, inclusive suporte nativo a XML 8,0 Conta com criptografia baseada em chaves e replicao de dados via web 7,6 Gratuito

INSTALAO

GERENCIAMENTO

DESENVOLVIMENTO

SEGURANA

AVALIAO TCNICA (1) PREO CUSTO/BENEFCIO ONDE ENCONTRAR

www.info.abril.com.br/ download/4339.shtml

(1) Mdia ponderada considerando os seguintes itens e respectivos pesos: Instalao (10%), Gerenciamento (35%), Ferramentas (35%), Desenvolvimento (10%) e Segurana dos dados (10%). O SQL Server Express ganha 0,2 ponto na avaliao tcnica devido ao bom desempenho do seu fabricante na Pesquisa INFO de Marcas 2005.

C O L E O I N F O > 35

TESTE/ORACLE EXPRESS

ORACLE EM VERSO LIGHT


A EDIO GRATUITA DO PODEROSO BANCO DE DADOS CHEGA COM RECURSOS DE SOBRA
POR ERIC COSTA

A licena do Oracle Express baseguindo os rastros da tante aberta: possvel, sem pagar Microsoft, a Oracle pronada, distribuir e implantar o produziu uma verso magrama, alm de us-lo para desengra de seu poderoso volvimento de software. Nos testes banco de dados, a Oracle 10g Express da INFO, feitos com o sistema opeEdition, de olho nas pequenas emracional SUSE Linux 10.0, o Oracle presas. O software inclui os princiExpress Edition teve bom desempais recursos das verses comerciais penho, sendo instalado rapidamendo irmo robusto e gratuito. Em te num micro com processador Pencontrapartida, limita o tamanho mtium 4 de 2,4 GHz, com 512 MB de ximo da base de dados a 4 GB, alm memria RAM. A instalao basdo hardware usado. O gerenciador tante simples. Toda a de bancos de dados FIQUE LIGADO administrao do usa apenas um probanco de dados feicessador (caso o comLimitaes tornam ta pelo browser, o que putador tenha mais o Oracle 10g Express tambm facilita o de um) e, no mximo, indicado para as acesso remoto, para 1 GB de RAM, mesmo pequenas empresas e quem quer deixar o que o micro possua os desenvolvedores servidor afastado. mais memria.

>

Pgina principal: portal de acesso a funes e links com a comunidade Oracle

36 < C O L E O I N F O

TESTE/ORACLE EXPRESS

Browser: controle sobre cada objeto

Utilitrios: inclui importao de XML

Apesar de ser relativamente simples, a interface web funciona bem, trazendo recursos suficientes para a criao e a manuteno de bancos 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 verso Express do Oracle em relao ao tambm gratuito MySQL est no suporte ao PL/SQL, a verso turbinada do SQL feita pela Oracle. Com ela, possvel acrescentar mais funcionalidade em stored procedures (ou rotinas armazenadas), o que pode diminuir a necessidade de manuteno futura dos programas que usem o banco de dados. Outra vantagem do Oracle Express a robustez do banco de dados, que traz a base do respeitado Oracle 10g. Para quem vai desenvolver software, a verso Express tem o mesmo suporte a linguagens de programao do Oracle 10g, integrando-se com Java, C++, PHP, com os principais dialetos da tecnologia .Net (como C# e VB.NET), entre outros. O suporte do Oracle Express feito pelos prprios usurios, que ajudam uns aos outros em um

grupo de discusso mediado por profissionais da Oracle. Ao baixar o Oracle Express, possvel cadastrar-se nesse grupo automaticamente.

ORACLE 10G EXPRESS EDITION


FABRICANTE PRS Oracle Dispensa hardware parrudo, traz recursos de primeira Limitaes ao tamanho do banco de dados, memria e CPU usadas 8,0 Roda em Windows e Linux (distribuies compatveis com pacotes RPM) 8,0 Instalao 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 construo de consultas 8,4 Gratuito

CONTRAS

COMPATIBILIDADE

INSTALAO

RECURSOS

FERRAMENTAS

AVALIAO TCNICA

PREO (R$) (1) CUSTO/BENEFCIO ONDE ENCONTRAR

www.info.abril.com.br/ download/4346.shtml

(1) Mdia ponderada considerando os seguintes itens e respectivos pesos: Compatibilidade (20%), Instalao (20%), Recursos (30%) e Ferramentas (30%). O Oracle Express ganha 0,2 ponto na Avaliao Tcnica devido ao bom desempenho do seu fabricante na Pesquisa INFO de Marcas 2005.

C O L E O I N F O > 37

TESTE/DB2 EXPRESS

DB2 GRTIS COM TUDO DENTRO


A VERSO DEGUSTAO DO BANCO DE DADOS DA IBM VEM REPLETA DE BOAS FERRAMENTAS
POR NIVALDO FORESTI

epois da Microsoft e da Oracle, foi a vez da IBM criar uma verso gratuita de seu robusto banco de dados DB2. Como as demais edies expressas dos concorrentes, o DB2 Express-C tem limitaes suporta at 4 GB de memria RAM , mas possui caractersticas que permitem seu uso em aplicaes comerciais e sensveis. Tem a vantagem de suportar tanto a plataforma Windows quanto a Linux e roda em mquinas com at dois processadores, enquanto as edies expressas do SQL Server e do Oracle s aceitam

um. Acompanhe a seguir o teste do INFOLAB, realizado num PC Pentium 4 de 2,8 MHz, com 512 MB de RAM e Windows 2003 Server Standard. INSTALAO O processo de instalao do DB2 Express-C rpido, mas fazer o download pela web pode ser torturante. O arquivo tem pouco mais de 450 MB e, mesmo numa conexo vitaminada, ir demorar mais de uma hora para baixar. Ler os pr-requisitos e as notas nos menus do instalador evitar problemas durante e aps a instalao. Por exemplo, um dos prrequisitos que na plataforma Windows se use o Windows XP Profissional. Durante a instalao, o prprio sistema coloca em ao as opes Java necessrias. Alm disso, permite testar imediatamente
Instalao: o assistente guia o usurio durante todo o processo

38 < C O L E O I N F O

TESTE/DB2 EXPRESS

Centro de Controle: d conta de todas as instncias em operao

seu funcionamento, criando ou carregando os bancos de dados de exemplo que o acompanham. Uma srie de caixas de dilogo e janelas de confirmao indicam o que fazer a cada passo da instalao em bom portugus. A atualizao para verses mais recentes fica a um clique de distncia no prprio instalador. Basta acionar Atualizar Verso para o programa verificar qual a verso em uso e executar o upgrade. Acessando o item Visualizar Introduo, o usurio encontra tutoriais e informaes detalhadas sobre o produto e outros assuntos de interesse, como a migrao de verses anteriores. Os outros primeiros passos disponveis criar banco de dados e acessar exemplos abrem a Central de Controle. FIQUE

todas elas. um utilitrio bastante rico em funcionalidade para criar e modificar tabelas, executar consultas (queries) e anlises complexas, monitorar o status dos bancos de dados, funes de importao e exportao de dados, dentre outras. Os usurios contam com uma interface bastante fcil de usar, similar nos sistemas operacionais Windows e Linux. Essa estratgia segue a da concorrente Oracle, que est usando os navegadores para manter interfaces semelhantes em todas as plataformas LIGADO que suporta. Na plataforma WinFcil de usar e cheio dows, a Central de NAS RDEAS de ferramentas, o DB2 Controle pode ser O Centro de Controle Express-C vai bem nas aberta a partir do me o ponto de partida pequenas empresas nu Iniciar ou clicande todas as operado-se com o boto dies, controles e adreito no cone do DB2 na bandeja de ministrao das bases de dados criasistema. Uma janela com uma lista das no DB2 Express-C. Como pode similar do Explorer, contendo banhaver mais de uma instncia opeco de dados e seus objetos, mosrando na mesma mquina, o Centrada ao abrir o programa. tro de Controle pode dar conta de

>

C O L E O I N F O > 39

TESTE/DB2 EXPRESS

maioria grficas, paA quantidade de ra assegurar que as utilitrios disponveis aplicaes no seno DB2 Express-C jam prejudicadas peimpressiona. H prolo mau uso dos regramas para monicursos. So vrias as toramento de meferramentas dispomria, de aplicativos, nveis: db2batch, que um Centro de Tareverifica o desempefas em que podem nho das queries em ser programadas tatempo real; Visual refas especficas paExplain, que analisa ra execuo em lograficamente as conte e a configurao Visual Explain: ferramenta sultas; Design Advido sistema. Para faespecial para a anlise grfica das consultas ao banco de dados sor, que sugere a cocilitar a vida do adlocao de ndices ministrador ou do em tabelas para diminuir o tempo programador, funes como criar ou de acesso baseado nas consultas exealterar banco de dados, backup e recutadas, e, finalmente, o Activity Mostore so controladas por assistentes. nitor, que gera relatrios do desempenho dos sistemas para anlise. DESEMPENHO Conseguir um desempenho timo DESENVOLVIMENTO das aplicaes com banco de dados O DB2 Express-C inclui os drivers e considerada uma combinao de a interface necessrios para o demagia negra e cincia. Na tentativa senvolvimento de aplicaes nas de se aproximar do timo, o DB2 Exlinguagens C/C++, Java e .Net, alm press-C oferece ferramentas em sua de PHP e Perl. Suporta linguagens no servidor para o desenvolvimento de stored procedures, triggers e funes. Elas podem ser escritas em C/C++, Cobol, Java (JDBC e
Desenvolvimento: stored procedures em ambiente grfico

40 < C O L E O I N F O

TESTE/DB2 EXPRESS

SQLJ), .Net (qualquer linguagem suportada pelo compilador CLR) e SQL PL (Procedure Language). A SQL PL considerada nativa e guardada no banco de dados como objeto DB2, reconhecida como um padro ANSI SQL. Uma ferramenta grfica, o Centro de Desenvolvimento, permite o gerenciamento, desenvolvimento, teste e implantao de stored procedures. A integrao e o desenvolvimento de aplicaes Java so pontos fortes do produto. Os mais conhecidos drivers esto includos no pacote. O ambiente Websphere Studio, da IBM, pode ser usado no desenvolvimento de aplicaes com o DB2 Express-C, da mesma forma que o Visual Studio 2003, da Microsoft. Um driver de acesso compatvel com o ambiente de desenvolvimento 1.1 est disponvel no produto. A documentao no to completa como deveria, mas o usurio consegue as informaes, em ingls, pesquisando no site da IBM. CONJUNTO No conjunto da obra, o DB2 ExpressC um banco de dados que vale a pena experimentar, principalmente por conta do Centro de Controle, que poderoso, fcil de usar e possui muitos utilitrios e ferramentas. Alm disso, no h limitao de nmero de usurios ou de tamanho para os bancos de dados nas aplicaes desenvolvidas para a plataforma. A nica restrio existente

o limite de 4GB para a memria RAM. Alguns recursos encontrados nas verses pagas, como ferramentas de datawarehouse e drivers para o banco de dados Informix, no acompanham o DB2 Express-C. Mas quando esses recursos forem necessrios, o usurio poder adotar uma verso paga do produto sem as dores e os custos de migrao.

DB2 EXPRESS-C 8.2


FABRICANTE PRS IBM Bons utilitrios, suporte a mquinas com dois processadores e replicaes complexas No tem ferramentas de datawarehouse e limita a capacidade de memria 8,4 Rpida, com verificao de pr-requisitos e primeiros passos 9,0 Permite gerenciar vrias instncias do programa, um ou mais bancos, projetos e diagnsticos 8,5 Replicao, central de tarefas, centro de funcionamento com alertas, centro de dados inteligentes DESENVOLVIMENTO 8,0 Em WebSphere Studio, Java, C, C++, Fortran, Rexx, Perl entre outras linguagens 7,5 Replicao de dados entre bancos, usando sistemas de mensagens 8,5 Gratuito

CONTRAS

INSTALAO

GERENCIAMENTO

FERRAMENTAS

SEGURANA

AVALIAO TCNICA (1) PREO (R$) CUSTO/BENEFCIO ONDE ENCONTRAR www.info.abril.com.br/ download/4435.shtml

(1) Mdia ponderada considerando os seguintes itens e respectivos pesos: Instalao (10%), Gerenciamento (35%), Ferramentas (35%), Desenvolvimento (10%) e Segurana dos dados (10%).

C O L E O I N F O > 41

TESTE/MYSQL

O MYSQL GANHA MSCULOS


PREFERIDO PELA TURMA DO LINUX, O BANCO DE DADOS INCORPORA NOVAS FUNES E CORTEJA O MERCADO CORPORATIVO
POR CARLOS MACHADO, COM LUIZ CRUZ

banco de dados de cdigo aberto MySQL teve um belo upgrade na verso 5.0, liberada no final de outubro de 2005. De alternativa rpida, eficaz e pouco sofisticada para sites simples, o produto passou categoria dos robustos. Com suporte a novas funes, como transaes e stored procedures, o banco de dados se prope a tarefas mais ambiciosas. Essas mudanas sinalizam que o MySQL est cultivando msculos para encarar o mercado corporativo. Produzido pela empresa sueca MySQL AB, o MySQL tem uma forma de licenciamento duplo. O usurio pode adot-lo como produto gratuito, segundo a licena GPL, mas tambm tem a opo de adquiri-lo comercialmente, com direito a suporte e outros benefcios. Parte fundamental do chamado padro LAMP sigla de um conjunto de produtos de cdigo aberto formado por Linux, Apache, MySQL, PHP/Perl/Python , o MySQL tem hoje uma enorme

MySQL Administrator: interface grfica de gerenciamento

base instalada. A MySQL AB comemorou a marca de mais de 1 milho de downloads nas trs primeiras semanas de lanamento da verso 5.0. O nmero sem dvida indicativo do grau de interesse em torno do banco de dados. MULTIPLATAFORMA Desde o incio, o MySQL se destacou pela velocidade, que permite seu uso em mquinas de recursos relativamente modestos. Isso o transformou no sistema preferido dos sites profissionais pequenos e mdios. Tambm contribui para o sucesso sua disponibilidade em

42 < C O L E O I N F O

TESTE/MYSQL

rios. A principal dequase todos os sisteFIQUE LIGADO l a s o s u p o r t e a mas operacionais transaes. Agora, o mais importantes. H Muito utilizado em gerenciador capaz verses do MySQL sites simples, o MySQL de processar transapara Windows, Linux, 5.0 j d conta de es do tipo ACID, Unix, Solaris, Mac OS aplicaes corportivas obrigatrias em apliX, FreeBSD, HP-UX, caes de misso crIBM AIX e outros. H tica. Uma transao, para os no tambm verses para plataformas iniciados, uma operao que s de hardware Intel e AMD, de 32 e faz sentido se todos os seus pas64 bits, alm dos chips Sparc, Alsos forem executados. Um exempha, PowerPC etc. INFO analisou a plo clssico a transferncia de verso 5.0.15 do MySQL para Linux dinheiro de uma conta bancria num servidor Pentium 4 de 3 GHz, para outra. H duas tarefas: debirodando a distribuio SUSE 10 de tar o valor numa conta e credit64 bits. Tambm instalamos o banlo na outra. Se apenas uma das taco de dados num computador com refas executada, o sistema se toro Windows XP. Nos dois casos, a na inconsistente. Nos bancos de instalao no ofereceu nenhuma dados profissionais, o processadificuldade especial. mento de transaes garante a inAlgumas das funes que estegridade de operaes desse titriam no MySQL 5.0 eram h muipo. Se, por exemplo, o hardware to tempo reclamadas pelos usu-

>

Controles: uma s interface para controlar usurios, montar rotinas e verificar carga
C O L E O I N F O > 43

TESTE/MYSQL

falha no meio de uma operao, ela completamente anulada. A primeira regra do modelo ACID exatamente esta: ou tudo ou nada. O MySQL 5.0 tambm suporta transaes distribudas, ou seja, transaes complexas envolvendo mltiplos bancos de dados localizados em diferentes ambientes. STORED PROCEDURES Outra novidade do MySQL 5.0 so as stored procedures. Uma stored procedure literalmente: rotina armazenada um programa, ou seqncia de comandos, guardado fisicamente no servidor. Uma srie de consultas complexas roda mais rpido como uma stored procedure do que uma lista de comandos, executados um a um, a partir de um computador cliente. As procedures tambm podem ser disparadas dentro de uma transao. Os novos recursos do MySQL j existem h muito tempo nos grandes gerenciadores de bancos de dados. A MySQL AB sempre negou que compete com Oracle, IBM e Microsoft. Mas, ao incorporar os novos recursos, a empresa d fortes indicaes de que est de olho no mercado corporativo. Outro sinal evidente disso est no MySQL Migration Toolkit, conjunto de ferramentas oferecido para incentivar a migrao dos bancos de dados concorrentes para o MySQL. Obviamente, o produto ainda no tem cacife, nem tcnico nem co44 < C O L E O I N F O

mercial, para encarar os gigantes do setor. Mas, como se diz, est tentando comer pelas beiradas. Um recurso importante que o produto ainda est devendo aos usurios o suporte a XML. O fabricante do MySQL tambm oferece o MySQL Administrator, uma ferramenta visual para gerenciar bancos de dados e usurios. O Administrator deve ser obtido num download parte. Essa ferramenta permite criar e alterar bancos de dados, montar stored procedures e verificar informaes de carga do sistema. Embora execute bem as funes a que se prope, ainda no aproveita bem os recursos da interface grfica.

MYSQL 5.0
FABRICANTE PR MySQL AB multiplataforma: tem verses para Windows, Linux, Unix No tem suporte a XML 8,6 Simples, no oferece nenhuma dificuldade especial 8,5 As novas funes aumentam muito o poder de ao do programa 7,5 O MySQL Administrator oferece poucos recursos grficos 8,3 Comparado com o JBoss, foi, em mdia, 3,6 vezes mais rpido no tempo de resposta Gratuito GPL

CONTRA INSTALAO

RECURSOS

FERRAMENTAS

AVALIAO TCNICA (1)

PREO LICENA CUSTO/BENEFCIO ONDE ENCONTRAR

www.info.abril.com.br/ download/3641.shtml

(1) Mdia ponderada considerando os seguintes itens: Instalao (30%), Recursos (50%), Ferramentas (20%).

TESTE/POSTGRESQL

MISSO CRTICA PARA POSTGRE


VERSO 8.1 CONTA COM DRIVERS E CAMADAS DE SOFTWARE QUE GARANTEM SUA CONECTIVIDADE
POR HELIO SILVA

verso 8.1, mais elho conhecido das corecente, logo se munidades de software percebe que islivre, o PostgreSQL deso no verdade. morou um pouco mais do A distribuio de que o MySQL para se popularizar, procdigos binrios do Postvavelmente por ser focado em aplicagreSQL 8.1 prontos para inses crticas. Muitos dos recursos que talar est disponvel apenas para Lio MySQL apresenta na verso 5.0, tais nux ou Windows. Para outras platacomo o suporte a gatilhos, stored proformas Unix, preciso baixar o cdicedures e transaes, j fazem parte go-fonte e compilar o sistema. do PostgreSQL h tempos. O impulso No Linux, o PostgreSQL vem como veio com a verso para Windows e a pacote binrio na maior parte das discolaborao de empresas como Sun, tribuies, mas para quem gosta de Fujitsu e Pervasive Software. Com exaventura e tem bastante tempo, poperincia no desenvolvimento e emde baixar o cdigo-fonte e compilar. pacotamento de verses comerciais No ambiente Windows, o prograafinadas com as necessidades das corporaes, elas esto colocando terno e gravata no produto. O PostgreSQL tambm foi vtima dos rtulos lento e pesado. Pode-se dizer que o logotipo do produto um elefante azul at reforce essa imagem. Mas, debruPostgreSQL: o pgAdmin faz a administrao do banco ando-se sobre a

C O L E O I N F O > 47

TESTE/POSTGRESQL

prprio PostgreSQL, que equivale ao PL/SQL da Oracle. Essa diversidade facilita a vida de quem j versado em uma dessas linguagens. Alm do pacote bsico, sempre bom dar uma checada em sites que mantm projetos ligados ao PostgreSQL. Um deles o site pgfoundry.org, onde podem ser encontrados utilitrios e at mesmo sistemas completos. Uma ausncia sentida o suporte nativo ao XML. Em aplicaes com trocas de dados entre sistemas heterogneos, como em operaes de transmisso eletrnica de pedidos e RECURSOS faturas entre empresas ou intercmO PostgreSQL 8.1 chega bem abastebio de dados bancrios, de se escido de drivers e camadas de softperar que existam diware que garantem FIQUE LIGADO ferentes bancos atuansua conectividade com do do outro lado, e o ferramentas de criao Recursos poderosos mercado aponta para e extrao de relatindicam o PostgreSQL o XML como melhor rios alm, claro, de lipara as aplicaes de forma de garantir esg-lo com as linguamisso crtica sa conversa. Quem gens de programao aderir ao PostgreSQL populares como Java, ter de escrever suas interfaces XML. Visual Basic e Delphi. A plataforma .Net da Microsoft tambm no fica de BOA HERANA fora, contando com o data provider Um velho dilema da crescente coNpgSQL. natural que o banco manmunidade de programadores que tenha conexes privilegiadas com seus trabalham com a abordagem da pares do software livre, como as linorientao a objeto (OOP) que eles guagens Phyton, Perl, TCL e PHP. raciocinam e projetam seus sistemas Se para escrever programas de pensando em objetos e, no entanto, front-end existem tantas opes, o tm de lidar com bancos de dados mesmo pode se dizer das linguagens relacionais na hora de depositar seus disponveis para desenvolver funes dados. Eles gostariam de ter bancos e processos que rodam dentro do de dados que entendessem um poubanco. As opes so: PL/Perl, co mais sua abordagem. O PostPL/TCL, PL/Java e o PL/pgSQL do ma pode ser instalado de duas formas: utilizando o ambiente Cygwin, que permite, com certas restries, utilizar os programas escritos para Linux, ou diretamente no Windows XP. O Cygwin mais indicado para quem tem experincia no uso do PostgreSQL em ambiente Linux. J a verso pronta para o Windows muito robusta, fcil e no decepciona. A instalao no Windows pode ser feita em portugus, mas, no final, o software de administrao pgAdmin se apresentar em ingls.

>

48 < C O L E O I N F O

TESTE/POSTGRESQL

greSQL faz um pequeno esforo nesse sentido, implementando uma das propriedades da orientao a objeto que a herana. Para compreender a aplicao da herana em um banco de dados, imagine o desenvolvimento de um sistema para uma loja de barcos. A primeira providncia criar a tabela Barcos com todas as caractersticas comuns a qualquer barco (cdigo, preo, descrio etc.). Em seguida, cria-se uma tabela filha que trata especificamente de veleiros e que herda as caractersticas de Barcos, acrescentando-se os atributos especficos de um veleiro como a altura do mastro e o tipo de vela. Por fim, cria-se uma tabela Lanchas, que tambm filha de Barcos, adicionando-se a ela atributos como potncia do motor. Alteraes em Barcos, como a criao do atributo Preo Promocional, por exemplo, automaticamente se refletem em Veleiros e Lanchas. SINCRONIZAO Usando-se um dos seus diversos sistemas de replicao, o PostgreSQL pode ser aplicado em empresas de pequeno e mdio porte que tm necessidade de sincronizao de dados entre matriz e filiais. Alm da sincronizao, o banco de dados tem evoludo em recursos para resistir a falhas e operar com mltiplos processadores, o que o torna uma boa opo para os projetos de misso crtica. Possui tambm a habilidade de lidar com enor-

mes bases com respostas em tempo aceitvel, requisito bsico para sistemas de datawarehouse, cujos bancos de dados podem chegar facilmente aos terabytes. Esse tipo de sistema est na ordem do dia das empresas graas reduo dos custos de processamento e armazenamento, alm, claro, da necessidade constante de buscar competitividade.

POSTGRESQL 8.1
FABRICANTE PRS PostgreSQL Global Development Group Inclui replicao de dados, processamento paralelo, suporte a 64 bits e a clusters Falta de suporte nativo ao padro XML 7,0 Fcil e rpida com pacotes binrios e instalador em portugus 8,5 O pgAdmin III d acesso a todos os recursos do banco, mas est s em ingls 8,5 Conta com ferramentas de geoprocessamento, administrao, tunning e datawarehouse na web 8,0 Pode ser feito em Java, Perl, PHP, TCL, C, C++ e qualquer linguagem com conectores de acesso como o .Net 8,5 Dispe de criptografia para proteger armazenamento, trfego, atributos e autenticao 8,3 Gratuito BSD

CONTRAS INSTALAO

GERENCIAMENTO

FERRAMENTAS

DESENVOLVIMENTO

SEGURANA

AVALIAO TCNICA (1) PREO LICENA CUSTO/BENEFCIO ONDE ENCONTRAR www.info.abril.com.br/ download/4119.shtml

(1) Mdia ponderada considerando os seguintes itens e respectivos pesos: Instalao (10%), Gerenciamento (35%), Ferramentas (35%), Desenvolvimento (10%) e Segurana dos dados (10%).

C O L E O I N F O > 49

TESTE/FIREBIRD

FIREBIRD POUPA A MQUINA


A VERSO 1.5.3 TEM RECURSOS PODEROSOS E DISPENSA EQUIPES DE MANUTENO
POR HELIO SILVA

banco de dados Firebird est cada vez melhor, acompanhando os avanos dos concorrentes de cdigo aberto MySQL e PostgreSQL. Nascido de uma iniciativa da Borland de abrir o cdigo do seu banco Interbase 6, o Firebird chegou verso 1.5.3 bem mudado, graas ao trabalho do IBPhoenix. Esse grupo de desenvolvedores j estabilizou a traduo do cdigo da linguagem C para a C++, o que deve permitir ao pro-

duto alar vos mais altos entre a srie de verses 1.5.x e a 2.0. No teste do INFOLAB, utilizamos o Firebird 1.5.3 Classic Server, a verso estvel mais recente, rodando num PC com processador Pentium HT de 1,3 GHz e 512 MB de memria RAM. INSTALAO A instalao fcil, mas no atualiza as outras verses previamente instaladas. Ao contrrio, pede a remoo de antigas edies de Inter-

EMS SQL Manager: interface grfica elegante para Firebird com jeito de Windows XP

50 < C O L E O I N F O

TESTE/FIREBIRD

IBExpert: traz recursos arrojados, como anlise de performance

base ou Firebird. Ao final do processo descobre-se que foram criados alguns textos dos manuais em arquivos texto e PDF e apenas um programa baseado no velho prompt de comando. Isso porque o pacote bsico no traz uma interface grfica que facilite a administrao do banco. Existe um projeto de interface grfica de cdigo aberto chamado FlameRobin (www.flamerobin.org), que no futuro deve fazer parte do pacote, mas seu desenvolvimento ainda est em estgio inicial.

br/download/4047.shtml), da H-K software, e a EMS SQL Manager ( www.info.abril.com.br/download/4453.shtml), da EMS Database Management Solutions. O gerenciador EMS SQL Manager empresta ao Firebird uma interface elegante e funcional, com aparncia bem prxima do Windows XP, usando o mesmo tipo de cones. Na verso gratuita, ele j proINTERFACES v todos os recursos necessrios De qualquer forma, o usurio no fiadministrao. J o brasileiro DBMaca desprovido de interface de gerennager tem como vantagem o suciamento. Pode escolher uma entre porte em portugus. as diversas disponveis no site do IBSe a inteno for adquirir uma Phoenix (www.ibphoenix.com ). ferramenta para ir alm das ativiA maior parte delas shareware dades normais de administrao, com verses livres sem algumas ento vale a pena dar uma boa olhafuncionalidades. da no IBExpert em sua verso coNo teste do INFOLAB, utilizamos mercial que, alm da interface mais trs interfaces de gecompleta para admiFIQUE LIGADO nistrao, conta com renciamento: a DBManager (www.info. recursos arrojados Feito para aplicaes abril.com.br/downcomo anlise de perde mdio porte, o Fireload/3682.shtml), da formance e at pesbird oferece baixo cusDBTools, a IBExpert quisas OLAP. Relemto de manuteno (www.info.abril.com. brando, por meio do

>

C O L E O I N F O > 51

TESTE/FIREBIRD

OLAP podem ser criadas vises multidimensionais do banco j agregadas, os famosos cubos. Esse tipo de viso facilita o desmembramento e a comparao de uma informao mensurvel, como o faturamento, por exemplo. Com um cubo de faturamento fica fcil estabelecer as vendas por tipo de produto, por tipo de consumidor e por regio de forma fcil e rpida.

DRIVERS Outra providncia necessria aps a instalao cuidar da interoperabilidade com linguagens, geradores de relatrio e outros bancos de dados. O site do IBPhoenix ajuda, indicando drivers ODBC e camadas de conectividade com Java e .NET. Nem todos so gratuitos e, mesmo os livres, requerem anlise do tipo de licena de uso. RECURSOS O esforo de instalao e implantao vale a pena. A exemplo do Interbase, o Firebird d conta de aplicaes de mdio porte. Seu diferencial rodar em plataformas Windows e em muitos sabores de Unix, alm de contar com recursos importantes, como suporte a transaes, gatilhos e stored procedures desde sua primeira verso, enquanto o MySQL s trouxe esses recursos na 5.0, a mais recente. O sistema de transaes do Firebird robusto e admite os aninhamentos (nested transactions), que permitem a aplicao de novas regras quando uma transao encontra um erro em um determinado ponto de seu processamento, dando alternativas concluso da transao sem que se torne necessrio desfazer toda a operao. As transaes aninhadas permitem a aplicao de regras complexas de negcio dentro do banco, eliminando a programao na interface. A transferncia de lgica de ne-

FIREBIRD 1.5.3 CLASSIC SERVER


FABRICANTE PRS FirebirdSQL Foundation Conta com recursos poderosos, como views, transaes concorrentes e gatilhos Depende de aplicativos de terceiros para a administrao 6,5 Bem traduzida, mas com longas explicaes que precisam ser lidas 6,5 No tem interface grfica de administrao, exigindo ferramentas auxiliares 8,5 Ferramentas CASE, de administrao e at OLAP podem ser encontradas na web 8,0 Muito bom para Delphi, com abertura para PHP, Perl, Java e .NET. 6,5 No tem criptografia AVALIAO TCNICA (1) PREO LICENA CUSTO/BENEFCIO ONDE ENCONTRAR www.info.abril.com.br/ download/2108. Gratuito IPL 7,4

CONTRA

INSTALAO

GERENCIAMENTO

FERRAMENTAS

DESENVOLVIMENTO

SEGURANA

(1) Mdia ponderada considerando os seguintes itens e respectivos pesos: Instalao (10%), Gerenciamento (35%), Ferramentas (35%), Desenvolvimento (10%) e Segurana dos dados (10%).

52 < C O L E O I N F O

TESTE/FIREBIRD

DBManager: produzida no Brasil, a interface d suporte ao Firebird em portugus

gcio para o banco de dados flexibiliza as opes de escolha de linguagens e ambientes de programao para interfacear com o banco, uma vez que simplifica a quantidade de regras que devem estar presentes no cdigo. Esse aspecto importante num mundo em que o banco tem de atender um servidor web, uma aplicao .Net e outras linguagens, mantendo sempre a coerncia dos dados que lhe so inseridos ou requisitados. Outro ponto forte do Firebird sua manuteno facilitada, praticamente dispensando a presena de um DBA dedicado a atividades de ajustes de desempenho do banco e controle de crescimento da base. A atividade de manuteno se resume ao backup e, eventualmente, uma recuperao de dados. Bancos

mais sofisticados como PostgreSQL, MS SQL Server, Oracle e DB2 entre outros demandam ajustes especializados durante seu ciclo de implantao, crescimento e produo. O baixo custo de manuteno torna o Firebird uma boa opo para empresas que no podem contar com uma equipe especializada para dar suporte a suas aplicaes. A portabilidade do banco de dados entre mltiplas plataformas o torna tambm indicado para aplicaes que operam com atualizaes de bases off line e que tenham necessidade de integrao centralizada. Quem pretende adotar o Firebird no Brasil, pode contar com o apoio de uma comunidade forte e colaborativa, que pode ser contatada pelo portal Firebase (www. firebase.com.br).
C O L E O I N F O > 53

TESTE/ACCESS

O ACCESS ENTRA EM REFORMA


UMA MUDANA DRSTICA NA INTERFACE COM O USURIO A PRINCIPAL NOVIDADE DO OFFICE 12, DA MICROSOFT
POR PAULO SILVESTRE

interface baseada em menus j to familiar aos usurios do Windows que pode parecer temerrio substitu-la por outra. Mas isso que a Microsoft est fazendo com o banco de dados Access e os demais integrantes do Office, seu pacote de aplicativos para escritrio. O Office 12, nova verso com lanamento previs-

to para o fim de 2006, leva adiante uma tendncia que j havia se esboado nos betas do Windows Vista. No primeiro beta do Office 12, analisado pelo INFOLAB, os menus despareceram e deram lugar a uma interface com o usurio radicalmente diferente. A promessa que, com isso, o software ficar mais fcil de usar. A avaliao do INFOLAB que a nova in-

Access 12: a interface substitui os vrios menus por um menu horizontal no alto

54 < C O L E O I N F O

TESTE/ACCESS

terface realmente mais prtica. Com ela, ser possvel realizar mais tarefas com menos cliques na tela. Mas os usurios vo estranhar bastante. FIM DOS MENUS O beta 1 do novo Office (o nome Office 12 no definitivo) traz os aplicativos Excel, Word, PowerPoint, Access e Outlook, alm de alguns programas auxiliares, como o InfoPath, usado para criar formulrios em XML. O que mais chama a ateno a nova organizao visual. A idia da Microsoft que, com mais e mais recursos embutidos em seus diferentes programas, estava difcil para os usurios do Office encontrar o que procuravam numa rvore de menus e submenus cada vez mais complexa. OPES NOS PAINIS O Office 12 tenta resolver o problema do excesso de comandos nos menus eliminando o mal pela raiz. H um nico menu horizontal no alto da tela. Quando o usurio clica num dos itens, em vez de se abrir um submenu, aparece um painel com botes, cones e outros elementos que acionam comandos ou acrescentam coisas ao documento. Est escrevendo um texto? O painel, com todos os comandos necessrios para a funo, aparece. Vai inserir uma imagem? Clique em Inserir na barra superior. Um painel que permite inserir no s a imagem, mas tambm planilhas, smbolos e qualquer outra coisa, exibido.

Note que o usurio no mais precisa chamar uma caixa de dilogo depois de passar por vrios menus. Basta alterar o que quer diretamente no painel, que fica na parte superior da tela e sempre muda para adequar-se tarefa sendo realizada. Coisas como formatao de texto e dimenses de figuras e links para pginas da web, por exemplo, podem ser definidas nesse painel superior. Em muitas situaes, o painel apropriado exibido automaticamente. Por exemplo, ao clicar num grfico, um painel de propriedades da imagem aparece. FORMATOS DA GALERIA O Access e os outros programas do Office passam a trabalhar extensamente com galerias. Trata-se de conjuntos predefinidos de formataes ou propriedades, como, por exemplo, o posicionamento de uma imagem em um texto. Os padres mais comuns ou freqentemente usados ficam disponveis para uso imediato. Basta o usurio clicar sobre a representao grfica do resultado para que o conjunto de parmetros seja aplicado. Mas as tradicionais caixas de dilogo continuam disponveis. OFFICE LIVE Como j acontecia nas verses anteriores, muitas das novidades do Office 12 so voltadas ao pblico empresarial. Uma delas a integrao com os servios online que a Microsoft vem chamando de Office Live. Quando esses servios estiverem disponveis, os
C O L E O I N F O > 55

TESTE/ACCESS

aplicativos podero interagir com eles via internet. H um pacote bsico de servios, que pode atender a uma pequena empresa, que estar includo na licena do Office. Ele oferece, por exemplo, 30 MB num servidor para a hospedagem de um site e cinco contas de e-mail com o domnio da empresa. Outros servios mais elaborados, como gerenciadores online de projetos e relatrios de despesas, estaro disponveis por assinatura. COLABORAO NA EQUIPE O Office 12 tambm traz melhorias nas ferramentas de colaborao. Os aplicativos permitem que usurios de um mesmo grupo realizem tarefas em conjunto. Alm de poder gravar localmente seus documentos, os aplicativos permitem armazen-los num servidor para acesso coletivo. As atualizaes feitas remotamente so sincronizadas com os arquivos locais, facilitando as revises. Quando o trabalho concludo, um dos autores pode encerrar o documento, que

passa a no aceitar mais alteraes. O Office 12 deve ainda ganhar recursos que permitam a transferncia de dados, conversas por udio e por vdeo entre usurios. Alm disso, podero trocar mensagens instantneas com colegas com comunicadores do MSN, da AOL e do Yahoo!. FORMATOS DE ARQUIVOS O Office 12 destaca a gravao de arquivos em XML com compresso no padro Zip. O objetivo facilitar a troca de dados com outros aplicativos, incluindo os que rodam em servidores corporativos. Os formatos de arquivos atualmente usados continuaro disponveis. Essas mudanas so muito bemvindas. At porque, o Access continua o mesmo h dois anos, desde quando foi lanado o Office 2003. Nessa verso, o banco de dados passou a permitir aos desenvolvedores a criao de solues mais sofisticadas em menor tempo. A integrao com a web foi privilegiada. O conceito de Office Developer Center permitiu o trabalho com tecnologias como XML e SQL Server. E o banco de dados passou a ter a capacidade de produzir backups.
Access 2003: verso atual permite incluir vdeo, foto e som

56 < C O L E O I N F O

TESTE/INTERFACES

ADMINISTRAO TUDO
MERGULHE NAS INTERFACES E DESCUBRA RECURSOS BACANAS DO DB2 E DO SQL SERVER 2005
POR NIVALDO FORESTI

m sistema de banco de dados no nada sem a sua parte de administrao. Sem ela, teriamos de voltar a ` poca em que comandos com mais de duas linhas precisavam ser digitados para criar um campo em uma tabela. Alm disso, controlar ndices, utilizao de campos e consumo de memria continuaria impensvel em

bancos de dados para pequenas e mdias empresas. Para a alegria geral dos usu arios, as verses Express gratuitas dos grandes competidoras dessa arena, Microsoft, Oracle e IBM, contm recursos to poderosos quanto os dos seus irmos pagos. Aqui vamos explorar o mundo administrativo de duas verses Express, a do DB2, da IBM, e a do SQL Server 2005, da Microsoft.

Centro de Controle: caixas de dilogo e assistentes conduzem o usu ario

C O L E O I N F O > 57

TESTE/INTERFACES

Centro de tarefas: permite executar programas em lote

DB2 EXPRESS-C Com uma interface extremamente simples e fcil de usar, o Centro de Controle programa de administrao do DB2 Express-C, encara de frente qualquer ferramenta paga. Clique em qualquer cone ou menu, e uma srie de caixas de dilogo e assistentes o levaro a concluir a tarefa desejada. Para criar suas prprias tabelas no banco de dados de exemplo, basta expandir a rvore de visualizao existente na janela Todos os Bancos de Dados, clicar na opo Tabelas com o boto direito do mouse e escolher a opo Criar Tabelas. Um assistente o levar pelos sete passos do processo. importante us-lo, pois recursos como criao de ndices, restries aos dados e multidimenses so tratadas com bastante clareza e na ordem correta de uso. Para adicionar uma coluna na ta58 < C O L E O I N F O

bela, basta clicar no boto Incluir. Uma janela permite criar campos do tipo INT (inteiro) com trs tipos diferentes, Char (Caracteres) com quatro tipos diferentes, binrios incluindo BLOB, quatro tipos de campos grficos, Data, Hora, TIMESTAMP, Decimal, Numrico, Real, ponto flutuante e Doubl. Caso voc deseje incluir vrios campos na tabela, clique em Aplicar em vez de OK, assim a janela permanece aberta para a incluso dos demais campos. O usurio pode definir valores-padro para os tipos CHAR, DATE, TIME e TIMESTAMP. Eles devem ser definidos dentro de aspas simples. Adicionalmente, possvel determinar uma frmula para o preenchimento do campo. No entanto, em nenhum lugar da documentao foram encontradas funes, tais como Hoje ou Agora, ou como construir essas frmulas para incluir nos campos. Os passos seguintes so os de escolher em que espao a tabela ser criada, a definio de que campos sero chaves, as dimenses e restries. Com as restries possvel controlar o lixo que ir popular a sua tabela. Voc pode impedir que valores acima de 10 ou menores que 5 sejam preenchidos em uma coluna ou que somente determinados textos existam nela. Uma palavra de aviso importan-

TESTE/INTERFACES

te aqui. Existe um debate intenso entre os especialistas para definir onde essas regras devem existir, se cadastradas nos campos das tabelas (restries), nos programas de validao das aplicaes ou em servidores especficos para regras de negcio. Para voc ter paz de esprito, aconselhvel usar as restries em campos, para que no futuro seus dados se mostrem inteis. Outro detalhe importante que a forma de cadastrar as restries no encontrada na documentao. Foi necessrio pesquisar exemplos na internet para descobrir como fazer. JANELA DE ERROS Finalmente, h alguns recursos e funcionalidades interessantes nesse processo. Primeiro, voc pode voltar a qualquer momento em qualquer passo e modificar opes. Segundo, ao final voc pode ver o cdigo SQL gerado e salv-lo para reutilizao, modific-lo ou simplesmente rever o que ser feito na criao da tabela. O melhor de tudo que o DB2 mostra uma janela apontando erros ou com a informao de sucesso durante a criao da tabela. Um trabalho importante realizado nas interfaces de administrao so as consultas (queries). O administrador ou programador precisa verificar informaes, exportar dados para outros programas e

modificar ou criar novos dados. O Centro de Controle permite escrever e verificar os resultados de uma consulta em SQL diretamente na janela Visualizar comandos. No entanto, melhor do que isso ter o programa guiando-o pelo rduo mundo dos comandos SQL. Basta clicar no cone SQL e um assistente facilitar a criao e execuo de sua consulta. Com mais um clique em Executar e Acessar Plano possvel determinar o custo desses comandos dentro do seu programa. Entenda-se por custo o tempo que cada pedao demora para ser executado. Assim, com algumas modificaes, um programa otimizado ser construdo ou problemas de desempenho detectados. Outro procedimento comum em interfaces de administrao so os backups. Com o Centro de Controle d para fazer backups manuais ou cronogramados de forma simples e prtica. Mais um assistente
Anlise de consulta: um clique em Anexar Plano diz o custo do comando

C O L E O I N F O > 59

TESTE/INTERFACES

SQL Express: todos os elementos disponiveis para criar tabelas

o leva pelo caminho certo. O DB2 Express-C conta ainda com um Controle de Replicao que ser muito til nas situaes em que voc quer manter seus sistemas em funcionamento, mesmo quando houver panes de energia ou outras catstrofes ou para ativar outros aplicativos quando determinados dados so modificados. Por fim, o Controle de Tarefas permite executar programas em lote tais como manutenes, exportaes de arquivo, importaes de dados de outras aplicaes etc. SQL SERVER 2005 EXPRESS O SQL Server 2005 Express veio substituir o MSDE (Microsoft SQL Server Desktop Engine). Essa mudana est fazendo bem a todos que usavam a verso Express anterior. Foi eliminado o Governor do MSDE, que tornava mais lenta a aplicao quando o programa tinha mais de cinco co60 < C O L E O I N F O

nexes simultneas, tornando o SQL Server Express muito mais usvel. Mas existem limitaes. A memria mxima suportada de 1GB de RAM e limitado a somente um processador. O tamanho mximo do banco de dados de 4GB. Alm disso, nem todos os recursos existentes nas verses pagas esto disponveis, o que inclui o servio de relatrios (que estar disponvel em uma verso avanada do Express), o servio de notificao, o servio de anlise, a pesquisa full text, DTS e as facilidades de OLAP (Online Analytical Processing). O SQL Management Server Studio Express CTP a sute de administrao e desenvolvimento do SQL Server Express Edition que substitui o Query Analyser e o Enterprise Manager da verso anterior, alm de trazer vrias facilidades. Embora complexa, a ferramenta nica e integrada para a realizao de todas as tarefas necessrias. Voc pode mudar a estrutura de uma base de dados, realizar consultas e outras tarefas importantes. Uma srie de assistentes e facilidades fazem do SQL Management Server Studio Express uma grande ferramenta para os administradores e programadores. Particularmente, a capacidade de usar e reusar scripts para a criao ou manuteno das bases de dados. Alm disso, as diver-

TESTE/INTERFACES

sas configuraes de visualizao permitem criar um ambiente nico para cada usurio. UM CLIQUE Criar tabelas e colunas trabalho para um clique no mouse. Todas as informaes se encontram disponveis, o banco de dados, a tabela, as colunas e as todas as propriedades envolvidas em cada um deles. Os campos suportam os mais variados tipos e alguns criados pelo prprio usurio para facilitar a padronizao por todo o sistema. Por exemplo, voc pode criar um campo chamado nome que tenha um tamanho especfico e pode ser escolhido em qualquer tabela criada. O DB2 tambm tem essa funo, mas ela est um pouco desorganizada e escondida na ferramenta de administrao. As consultas podem ser feitas como no QBE, selecionado-se tabelas, campos e opes de filtro, ou escrevendo-se o comando SQL diretamente. Nesse caso, o DB2 um pouco mais intuitivo para os iniciantes com o seu assistente. Em todas as janelas possvel se realizar filtros. Os filtros abrem janelas que permitem um acesso mais amigvel para os que esto comeando no trabalho de programao. Criar ndices fcil e intuitivo. Basta clicar no campo ou na pasta ndice da tabela e criar ndices, at mesmo em XML. Alm dis-

so, desse menu possvel reorganiza-los ou recria-los. O mesmo acontece com funes e stored procedures, todas a um clique do seu mouse. Outro recurso interessante o de monitorao. Uma janela especfica permite verificar quem ou que processos esto consumindo os recursos do servidor onde est o SQL Server Express 2005. Muito til para diagnosticar problemas de desempenho. No geral o programa de administrao bom de se utilizar. No entanto, alguns recursos esto faltando. Por exemplo, as tarefas de manuteno se resumem a um assistente para backup, pouco para suportar aplicaes robustas. Sentimos a falta tambm de importadores e exportadores de dados, o que dificulta aos novatos migrar dados de outros aplicativos. Essa funo existe, mas somente para importar dados previamente exportados de alguma tabela do SQL Express.
Monitora ao: verifica os processos que consomem recursos do servidor

C O L E O I N F O > 61

TUTORIAL/TABELAS

TABELAS SEM MISTRIO


UM ROTEIRO ESPERTO PARA ENTENDER CADA ITEM E CRIAR TABELAS COM TOQUE PROFISSIONAL
POR DANILO WITZEL

riar tabelas uma tarefa muito simples e at intuitiva. Mas s at certo ponto. Montar uma tabela de um modo que os seus dados sejam realmente teis e confiveis exige um bom conhecimento de detalhes, at porque as tabelas tm caractersticas peculiares. Assim, pensando em quem acaba de desembarcar no mundo dos bancos de dados, vamos tratar aqui de cada uma de suas propriedades relevantes. Usaremos o banco de dados Access como exemplo. Embora algumas caractersticas sejam prprias das tabelas do Access, a maioria se aplica a outros programas do gnero.

opes na coluna Tipo de Dados. Essas opes so comentadas a seguir. s TEXTO Armazena qualquer tipo de caractere. O limite de caracteres pode ser definido por quem est criando a tabela, mas s pode ir at 255. Para isso, basta informar o tamanho desejado na propriedade. s TAMANHO DO CAMPO Definir o limite aqui complicado. Voc pode, por exemplo, definir em 50 o tamanho de um campo que vai armazenar a razo social. Na prtica, o usurio quer cadastrar uma razo social que tem 55 caracteres, no vai conseguir e dir que seu programa tem um bug terrvel e chamar

TIPO DE DADOS O tipo de dados a propriedade mais importante da tabela. Quando se cria um campo, o Access oferece uma lista de
Tipo de Dados: cuidado na escolha da opo salva a tabela

62 < C O L E O I N F O

TUTORIAL/TABELAS

Campo com valores: as opes aparecem na caixa de combinao

voc para consert-lo somente por causa desses cinco caracteres. Para evitar problemas desse tipo, defina sempre um nmero grande no caso, pode ser 100. O Access no reserva espao para partes no utilizadas de um campo texto. Ou seja, mesmo que voc reserve 100, se o usurio s utilizar 30, o Access s consumir o espao correspondente a 30 caracteres. No estranhe essa observao: h bancos de dados que usam toda a capacidade do campo, mesmo que esteja vazio. s MEMORANDO idntico ao tipo de dados Texto, mas sua capacidade muito maior: at 65 535 caracteres. No tem a propriedade Tamanho do Campo. O campo memorando muito utilizado para armazenar observaes ou quando se quer guardar muitas informaes num campo s. s NMERO Destina-se a guardar nmeros, geralmente utilizados em clculos matemticos ou como cdigo de identificao. A proprieda-

de Tamanho do Campo para esse tipo de dado tambm muito importante. Veja na tabela O tamanho dos nmeros o quanto cada especificao numrica ocupa em cada caso. Com essa tabela, voc pode definir o tamanho correto para o campo, levando em conta a informao que voc quer guardar e o espao em disco que ela usar. No entanto, mais importante que o tamanho ocupado a capacidade do campo numrico. Se, por exemplo, voc escolher para um campo o tipo Nmero Inteiro, precisa saber de antemo que esse campo no poder armazenar nmeros, positivos ou negativos, at cerca de 32700. Seu sistema dar erro se o usurio tentar registrar no campo o valor 40000. s DATA/HORA Usado para guardar data e hora. Note que no data ou hora. O Access guarda esse tipo de dados em 8 bytes. Os limites de datas vo 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 hora zero (00:00:00) como complemento da data. Situao idntica acontece se voc informar apenas
C O L E O I N F O > 63

TUTORIAL/TABELAS

Assistente de Pesquisa: orientao sobre a origem do dado

as horas, s que a data gravada como 30/12/1899, o dia inicial do calendrio interno do Access e de outros programas do Office. Enfim, o Access grava as duas partes, data e hora, e voc utiliza a que desejar no campo que est criando. s MOEDA um tipo de dado numrico designado para armazenar valores monetrios. O tamanho ocupado em disco de 8 bytes, igual ao tipo de dados numrico com tamanho duplo. No entanto, s h quatro casas decimais e a parte inteira vai at 15 dgitos. s AUTONUMERAO um tipo numrico de dados que preenchido automaticamente pelo Access. muito utilizado como cdigo de identificao. Exemplo: cdigo do cliente, cdigo do pedido etc. Uma propriedade interessante desse tipo de dado Novos Valores, que pode ser Incremento ou Aleatrio. A primeira, Incremento, que o padro, gera nmeros seqenciais. A outra produz valores aleatrios, que
64 < C O L E O I N F O

podem ser negativos ou positivos. s SIM/NO Ocupa apenas 1 bit de espao em disco. utilizado para guardar informaes que voc tem certeza que s podem conter um entre dois valores. Exemplo: um campo que indica se a pessoa casada s pode ter o valor sim ou no. s OBJETO OLE Serve para guardar objetos como documentos do Word, planilhas do Excel, grficos, sons e outros. O objeto pode ser incorporado tabela ou vinculado. s HYPERLINK Utilizado para guardar endereos web, e-mails etc. Basta clicar no endereo e abre-se a pgina ou arquivo a que ele se refere. Esse tipo de dado se divide em trs partes: textodeexibio (o texto que aparece no campo ou controle); endereo (o caminho de um arquivo, ou URL); e subendereo (uma localizao dentro do arquivo ou pgina). Cada uma dessas partes pode ter at 2 048 caracteres. s ASSISTENTE DE PESQUISA Esse um tipo de dado interessante, que poucas pessoas conhecem. Na verdade no bem um tipo de dado, e sim uma opo que inicia um assistente para criar uma caixa de combinao, cuja lista de dados po-

TUTORIAL/TABELAS

de ser baseada em outra tabela, ou numa lista de valores que voc pode criar no prprio assistente. Aps executar essa opo, voc pode ver que as propriedades da guia Pesquisa do campo criado esto preenchidas conforme o que foi escolhido no assistente. ENTRADA DE DADOS Imagine que voc tem um campo que armazena o nmero do documento de identidade de seus clientes e que os usurios ora digitam de um jeito ora de outro. Portanto, voc no confiar nas informaes digitadas. Para evitar isso, a propriedade Mscara de Entrada define exatamente como deve ser digitado o RG, o CPF, o CEP e outros dados que voc queira padronizar. Para o caso do RG, voc coloca a seguinte mscara de entrada: 99.000.000C\->a;0;_ A mscara de entrada se divide em trs partes, separadas pelo ponto-e-vrgula: a primeira a prpria definio da entrada; a segunda, que pode ser 0 ou 1, indica se os caracteres literais, como o hfen do RG(-), devem ser gravados no campo ou no. A opo 0 grava esses
Assistente de mscara: guia para a digitao correta

caracteres; a terceira parte o caractere que deve ser mostrado quando um dgito no est preenchido. Voc pode colocar qualquer um o padro o sublinhado ( _ ). Para que serve cada caractere na mscara de entrada? A resposta voc tem na tabela Mscaras de Entrada, que mostra cada caractere e sua funo. Outro exemplo a mscara de entrada do telefone: "(0XX"99") "#999\-9999;0;_ Preenchido o campo, a mscara acima produz um resultado como: (0XX11) _867-9926. Uma opo interessante da propriedade Mscara de Entrada que ela pode ser definida como Senha. Basta voc digitar senha nessa propriedade e o que o usurio digitar nesse campo ser exibido como asterisco(*). O Access tem ainda um assistente para mscara de entrada. Clique no boto Construtor e o programa exibe exemplos de mscara que voc pode escolher e definir automaticamente para o seu campo. Outra

C O L E O I N F O > 65

TUTORIAL/TABELAS

nota importante: os controles de formulrio no herdam essa propriedade. Voc pode estabelecer uma mscara de entrada para o campo, porm o controle vinculado ao campo, no formulrio, pode ter outra mscara. Voc ento pergunta: ento para que eu vou definir uma mscara de entrada para o campo? Calma, a mscara definida no campo vai automaticamente para o controle. S que ela no obrigatria. Se quiser, voc pode definir outra. Mas o melhor de tudo que, definida uma vez na tabela, ela pode permanecer igual em outras situaes, o que ajuda na padronizao do sistema. A EXIBIO DOS DADOS Diferentemente da propriedade Mscara de Entrada, que define como os dados devem ser digitados, a propriedade Formato controla a sua exibio. Ou seja, voc at pode estabelecer uma mscara de entrada que informa a data completa (00/00/0099), mas voc quer que, no formulrio ou relatrio, ela aparea apenas com o ano e o ms, e nessa ordem (yyyy/mm). Assim como no caso da mscara de entrada, os controles do forConstrutor de campo: exemplos prontos com propriedades definidas

mulrio no herdam essa propriedade, ou seja, voc pode mudar o formato do controle vinculado ao campo, no formulrio, conforme a sua necessidade. A propriedade Formato a mais interessante. Ela possibilita obter muitos resultados: s TEXTO E MEMORANDO O formato para textos e memorandos envolve duas partes, separadas por ponto-e-vrgula. A primeira define o formato, se o dado for preenchido; e a segunda, se ele no for preenchido. Vamos esclarecer melhor com um exemplo. Imagine um campo de preenchimento no obrigatrio, como hobbies da pessoa. Pode-se definir o seguinte formato para esse campo: >[Preto];no informado[Vermelho]. Se os hobbies forem informados, o texto inserido ser exibido em maisculas e com a cor preta. Caso contrrio, aparecer a expresso no informado em vermelho. isso mesmo, pode testar vontade. Voc pode pesquisar na Ajuda do Access e descobrir

66 < C O L E O I N F O

TUTORIAL/TABELAS

ndice duplo: chave primria da tabela criada com dois campos

outras preciosidades sobre como exibir o texto quando ele digitado. s NMERO E MOEDA Segue o mesmo padro do tipo Texto e Memorando, porm com quatro partes. A primeira trata os positivos; a segunda, os negativos; a terceira, o zero; e a ltima, o nulo. Um campo que informa saldos financeiros pode ter o seguinte formato: R$#,00[Azul];R$#,00[Vermelho];Zero;no informado Se o saldo positivo, ele exibido em formato moeda e em cor azul; se negativo, aparece em vermelho; se zero, mostra Zero; e se no h informaes naquele campo, aparece a expresso no informado. s SIM/NO Esse formato se divide em trs partes. A primeira no afeta em nada os resultados, porm tem de existir. Portanto, o formato comea com ponto-e-vrgula (ou seja, o primeiro item fica em branco); a segunda o formato para valores verdadeiros; e a terceira para valores falsos. Um exemplo clssico: o campo Situao informa se o funcionrio est ativo ou no. Ento, ele pode ter o seguinte formato: ;Ativo[Vermelho]; Inativo [Preto]. Se o funcionrio est na ativa,

aparece Ativo, em vermelho; caso contrrio, Inativo, em preto. s DATA/HORA Esse formato no segue o mesmo padro dos anteriores: no dividido em partes. O mximo 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 informao digitada pelo usurio. Voc pode fazer vrias combinaes. Por exemplo: para exibir apenas o ms, o ano, a hora e os minutos, defina o formato assim: mm/ yyyy hh:nn (veja bem: as duas ltimas letras so enes, de navio, e no emes, de minuto, como se espera). Recomendo que voc veja na Ajuda as letras e caracteres que voc pode utilizar no formato de datas, pois tem algumas muito interessantes, como as que retornam o trimestre, a semana e outros. Quero aproveitar o assunto para mostrar como se deve definir o formato juntamente com a mscara de entrada para
C O L E O I N F O > 67

TUTORIAL/TABELAS

no deixar que seu campo caia no bug do ano 2000, que nada mais do que entrar com os quatro dgitos do ano e exibi-los. Deve-se definir para os campos que iro armazenar datas a seguinte mscara de entrada: 00/00/0099. E o seu formato deve ser: dd/mm/yyyy CONSISTNCIA DOS DADOS A propriedade Regra de Validao superimportante para obter dados mais seguros desde o momento de sua edio, no permitindo que o usurio digite qualquer coisa e acabe gerando erros no sistema. Imagine que o seu cadastro de funcionrios tem o campo Sexo, que deve ser preenchido com M ou F. Mas um usurio engraadinho resolve colocar H na ficha de um funcionrio. Numa parte qualquer do sistema, voc filtra homens num bloco e mulheres em outro. Por causa do usurio que resolveu fazer graa, o funcionrio em questo no aparecer em

nenhum dos filtros. Um sistema profissional no pode deixar que isso acontea. Para isso existe a regra de validao do campo. muito simples: para o caso mencionado, basta digitar a seguinte regra na propriedade Regra de Validao do campo Sexo: F Ou M. Pronto, o campo s aceitar F ou M como contedo. Uma nota quanto a essa regra imposta ao campo Sexo que o campo passa a ser de preenchimento obrigatrio. Ou seja, ele no aceitar nulo (vazio). Outro exemplo: num campo onde se deve cadastrar o salrio do funcionrio numa empresa cujo salrio mnimo 500 reais. A regra seria, ento, maior que 500. No entanto, pode-se no saber o salrio do funcionrio no momento em que ele cadastrado: o valor ser informado depois. Para dar incluir essa hiptese, a regra deve ser a seguinte: >500 Ou Nulo Ao contrrio das outras propriedades at aqui apresentadas, os controles vinculados ao campo com regra de validao herdam, no formulrio, a regra definida na tabela. Portanto, mesmo que voc mude a regra para o controle vinculado ao campo, o valor que o usurio digitar deve satisfazer
Regra de Validao: feita para garantir dados consistentes

68 < C O L E O I N F O

TUTORIAL/TABELAS

sempre regra definida na tabela. Se porventura voc definiu outra regra para o controle, o valor digitado ter que atender s duas regras, tanto a do campo na tabela quanto a do controle. A consistncia ainda pode ser feita no nvel do registro. Os exemplos do campo Sexo e do Salrio cuidam da consistncia no nvel do campo. A consistncia de registro funciona da seguinte forma: imagine uma tabela onde so cadastrados os produtos e a porcentagem de cada setor da empresa na participao das vendas. A tabela contm os campos Produto, SetorA, SetorB, SetorC. Como se trata de porcentagem, a soma das parcelas de todos os setores deve ser igual a 100. Para implementar essa regra, com a tabela aberta em modo Design, clique no boto Propriedades, na barra de ferramentas, a fim de exibir a folha

de propriedades da tabela. Na propriedade Regra de Validao, digite a seguinte regra: [SetorA]+[SetorB]+[SetorC]=100 Uma propriedade complementar Regra de Validao a Texto de Validao. Nessa propriedade voc insere um texto personalizado para ser mostrado, em vez da mensagem-padro do Access, quando o usurio digita um valor incorreto. INTEGRIDADE DOS DADOS Exemplo clssico: o nmero de CPF de uma pessoa nico ou seja, nenhuma outra pessoa pode ter um CPF igual ao de outra. Portanto, no pode haver em seu cadastro de clientes dois ou mais RGs iguais. Para evitar isso, basta selecionar, na propriedade Indexado do campo CPF, a opo Sim (Duplicao no autorizada). Voc pode querer uma integridade com dois campos. O nmero de um aluno na

MSCARAS DE ENTRADA
Caracteres utilizados na propriedade Mscaras de Entrada
CARACTERE DESCRIO CARACTERE DESCRIO

L0 9 #

Dgito (de 0 a 9, entrada obrigatria) Dgito ou espao (entrada no obrigatria) Dgito ou espao (entrada no obrigatria; os espaos so exibidos como vazios quando no modo Edio, mas os vazios so removidos quando os dados so salvos; sinais de adio e subtrao so permitidos) Letra (de A a Z, entrada obrigatria) Letra (de A a Z, entrada opcional) Letra ou dgito (entrada opcional) Letra ou dgito (entrada obrigatria) Qualquer caractere ou um espao (entrada obrigatria)

C ,,:;-/ < > !

Qualquer caractere ou um espao (entrada opcional) Marcador decimal e separadores de milhares, de data e de hora Converte todos os caracteres para letras minsculas Converte todos os caracteres para letras maisculas Define que a mscara de entrada seja exibida da direita para a esquerda, e no da esquerda para a direita Define que o caractere seguinte seja exibido como caractere literal (por exemplo, \A exibido simplesmente como A)

L ? a A &

C O L E O I N F O > 69

TUTORIAL/TABELAS

Valor-padro: no preciso digitar o item que se repete no campo

classe deve ser nico, porm esse nmero pode se repetir em outra classe. Logo, a chave deve ser o nmero da classe mais o nmero do aluno. Clique no boto ndices, na barra de ferramentas, e sero exibidos os ndices da tabela. Na coluna Nome do ndice d um nome sugestivo: ClasseAluno. Depois selecione os campos do nmero da classe e o do nmero do aluno. A propriedade Exclusivo do ndice deve conter o valor Sim. A figura 2 mostra como deve ficar a janela de ndice dessa tabela, que tem como ndice primrio o campo matrcula. VALOR-PADRO O Valor-padro de um campo tambm uma propriedade muito importante. Ele facilita para o usurio o trabalho de edio. Normalmente, define-se como valor-padro de um campo o valor de preenchimento mais freqente. Se a loja est localizada em So Paulo, bem provvel que a maioria dos clientes seja dessa cidade. Ento, os campos Cidade e Estado j de70 < C O L E O I N F O

vem aparecer preenchidos com os valores So Paulo, SP. Assim, o operador praticamente no precisar digitar. importante lembrar tambm que zero no nulo. Zero valor numrico alis, esse o valor-padro adotado pelo Access para os tipos de dados numricos. Nulo o valor de um campo no preenchido. Ou seja, nulo igual a vazio. Quanto ao relacionamento do valor-padro de um campo na tabela com o controle vinculado a ele num formulrio, fica valendo, primeiramente, o definido para o controle. Contudo, se voc no especificar um valorpadro para o controle, ser utilizado o definido para o campo. Neste tutorial voc tomou contato com todos os itens que envolvem a criao de tabelas de um modo bem profissional. Vale lembrar que o banco de dados Access ainda tem um assistente para construir campos. Para acion-lo, posicione o cursor na coluna Nome do Campo e clique no boto Construir, na barra de ferramentas. Ser exibida uma lista de exemplos de campos. Se voc selecionar um, o assistente j o definir por inteiro (ou seja, com todas as propriedades) na sua tabela.

TUTORIAL/ORACLE EXPRESS

RELATRIO FEITO COM VIEWS


APRENDA A CRIAR UMA TABELA VIRTUAL QUE FAA AS CONTAS NECESSRIAS PARA UM RELATRIO DE VENDAS
POR CARLOS CHERNIJ, COM FRED CARBONARE

ma das boas funcionalidades disponveis no gratuito Oracle 10g Express Edition ou Oracle XE so as views, tabelas virtuais que podem ser usadas para poupar trabalho do programador na hora de criar consultas no banco de dados. As views no existem fisicamente so geradas pelas consultas. Mas, depois de criadas, elas se comportam exatamente como uma tabela. Assim, as alteraes realizadas na view so repassadas para a tabela fsica envolvida.

As views so muito usadas em bancos de dados complexos com diversas tabelas que formam conjuntos de dados, relatrios etc. E no so privilgio do Oracle podem ser encontradas tambm em bancos de dados como PostgreSQL, MS SQL Server e MySQL 5.0. Neste tutorial, utilizaremos as views para gerar um relatrio de vendas. Detalhe importante: o Oracle XE ainda est em verso beta (no comeo de fevereiro de 2006, foi colocada disposio dos internautas a edio Release Candidate 3). Por conta disso, algumas funes podem apre-

Oracle XE: a criao da views e a administrao do banco de dados feita via web

C O L E O I N F O > 71

TUTORIAL/ORACLE EXPRESS

sentar problemas. No teste do INFOLAB, por exemplo, o upload de scripts no funcionou corretamente no navegador Firefox.

1. INSTALANDO
Faa o download do Oracle XE em www.info.abril.com.br/download/ 4346.shtml e execute o instalador. Apesar de o arquivo do programa possuir 200 MB, a instalao vai consumir cerca de 1 GB de espao no disco rgido. Um momento importante do processo a solicitao da senha para o usurio System, que tem os direitos administrativos. Vamos colocar a senha como sendo system, para facilitar. Aps a instalao, clique no atalho Goto database homepage, que ser criado dentro do grupo de programas Oracle Database 10g Express Edition. O atalho abrir uma janela de

browser com a pgina de login do mdulo de administrao tudo feito via web. A pgina pode ser acessada tambm por meio do endereo http://127.0.0.1:8080/htmldb/ htmldb na mquina em que o software foi instalado.

2. CARREGANDO OS SCRIPTS
Na pgina de login, entre com o nome de usurio System e a senha escolhida durante a instalao. Vamos agora criar as tabelas que sero usadas no tutorial. Faa o download dos arquivos de script em ftp://ftp.info. abril.com.br/bdoracle.zip. Depois de descompact-los, voc ter dois arquivos de script: Criar.sql e View.sql. Na tela inicial do mdulo de administrao, escolha a opo SQL. Clique ento em SQL Scripts. Acione o boto Upload. No campo File, clique em Procurar e informe a localizao do arquivo Criar.sql. No campo Script Name, digite Criar. Clique ento no boto Upload, na parte superior da tela. A partir de agora, o script vai aparecer como um cone sempre que se entrar na tela SQL Scripts.

Scripts: carregue e use o cone Criar

. 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 cdigo referente criao das tabelas. Clique no boto Run, que fica na parte superior da tela. Ser aberta a tela Run Script, onde necessrio confirmar a operao, clicando novamente no boto Run. Aps a

72 < C O L E O I N F O

TUTORIAL/ORACLE EXPRESS

Script Editor: um clique em Criar abre o cdigo de criao das tabelas

TB_CLIENTE e, depois, na aba Data para ver os dados iniciais que foram inseridos durante a criao das tabelas.

execuo do script, tero sido criadas as tabelas TB_CLIENTE, com informaes dos clientes, TB_PEDIDO, com dados dos pedidos, TB_PRODUTO, com informaes dos produtos, e TB_PEDIDO_PRODUTO, que relacionar os produtos aos pedidos.

4. VISUALIZANDO OS DADOS
A partir da tela inicial do mdulo de administrao, clique em Object Browser > Browse > Tables. esquerda da tela estar uma lista com todas as tabelas do sistema, a maioria referentes a controles internos do Oracle XE. No final da lista, voc ver as tabelas do tutorial. Clique em

. GERANDO O RELATRIO Vamos criar uma view que ir mostrar o total pedido por cliente do nosso banco de dados, gerando assim um relatrio de vendas. Volte para a pgina inicial e escolha a opo Object > Browser > Create > View. No campo View Name, digite vw_total_pedidos_cliente. Na janela Query, cole o contedo do arquivo View.sql. O cdigo o seguinte: SELECT sum(total_pedido) as total, cod_cliente, nom_cliente FROM ( SELECT tb_pedido.cod_pedido, tb_pedido.cod_cliente,

Visualize: clique na aba Data para ver dados inseridos durante a criao das tabelas

C O L E O I N F O > 73

TUTORIAL/ORACLE EXPRESS

tabela virtual, e todas as alteraes que forem feitas nela sero transmitidas para as tabelas que a compem. Para gerar um relatrio a partir da view que foi criada, basta usar o comando SELECT * FROM vw_total_pedidos_cliente.

CRIE SUA VIEW


Para criar uma view, deve ser observada a seguinte estrutura bsica 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 virtual na qual poder fazer consultas e atualizaes nos dados de forma mais simples. Uma das possibilidades de aplicao configurar permisses diferentes para as tabelas e para as views. Por exemplo, voc pode ter uma senha de usurio no banco de dados sendo usada apenas para os scripts da rea aberta do seu site. O internauta s ter acesso s views, o suficiente para fazer as pesquisas que deseja. Para acessar as tabelas originais, seria criado outro usurio, aplicando assim mais uma camada de segurana no banco de dados.

>

Relatrio: clique na aba Data

tb_pedido_produto.val_preco_ produto * tb_pedido_produto. qtd_produto as total_pedido, tb_cliente.nom_cliente FROM tb_pedido, tb_pedido_produto, tb_cliente WHERE tb_pedido.cod_pedido = tb_pedido_produto.cod_pedido AND tb_cliente.cod_cliente = tb_pedido.cod_cliente ) total GROUP BY cod_cliente, nom_cliente Clique em Next e confirme, acionando Create. Na tela de confirmao voc j poder ver o resultado, clicando na aba Data. Dessa forma, a view pode ser utilizada como se fosse uma
74 < C O L E O I N F O

TUTORIAL/CONSULTAS

CRIE PESQUISAS COM CRITRIOS


SIGA OS PASSOS PARA MONTAR DE CONSULTAS SIMPLES A BUSCAS COM PARMETROS VARIVEIS NO DB2
POR FRED CARBONARE

lguma vez voc criou consultas a banco de dados com critrio? bem provvel que sim. E uma consulta com o critrio OU em determinado campo, como Rio de Janeiro OU So Paulo? Provavelmente sim, tambm. Consultas com critrios so muito teis. Quando desejamos que essas consultas sejam mais flexveis, podemos substituir o critrio fixo por um critrio com parmetros. Exemplo: [Cidade1] OU [Cidade2] Para treinar as consultas com critrio, neste tutorial faremos um cadastro de clientes acessando o banco de dados DB2 Express-C.

No DB2: crie o banco de dados padro

seguida, localize o arquivo Criar.sql que voc descompactou e executeo. Ele ir criar uma tabela chamada Clientes com as seguintes colunas: id, nome, endereco, telefone, cidade, estado, datanasc e incluir alguns dados de exemplo.

. BAIXE OS COMANDOS Para facilitar a compreenso, primeiramente faa o download do arquivo db2.zip no endereo ftp://ftp.info. abril.com.br/ebd_db2.zip e descompacte-o. Nesse arquivo voc encontrar os comandos SQL necessrios para criar a tabela de exemplo. . CRIE A TABELA No DB2 Express-C, crie um banco de dados padro chamado Consulta. Em

Identificao: d o nome Consulta

Ao dar um duplo clique sobre a tabela Clientes, veremos o seu contedo. Como voc pode notar, trata-se de uma tabela simples, que armazena uma lista de clientes e as suas respectivas cidades.
C O L E O I N F O > 75

TUTORIAL/CONSULTAS

dor =, e, em Valor, escolha a opo Listar valores. Na nova janela de valores, d um duplo clique em So Bernardo. Basta clicar no boto > para adicionar o critrio. Clique em OK e em Resultados da Consulta para ver o resultado.

Tabela: clique duplo exibe contedo

3. NOVA CONSULTA
Como poderemos visualizar apenas os clientes localizados na cidade de So Bernardo do Campo? Criando, claro, uma consulta com critrio. Para isso, clique com o boto direito na tabela e escolha Consultar. Na janela Nova Consulta que se abriu, fique com a opo Selecionado > Assistente SQL. Ainda Na janela Nova Consulta, selecione Instruo SELECT > From e escolha a tabela Clientes.

. CRITRIO OU Quando abrimos o assistente SQL do DB2 Express-C, ele zera toda a programao feita antes. Assim, para saber quais so os clientes de So Bernardo OU So Paulo, necessrio criar novamente o critrio e adicionar um novo para a cidade de So Paulo, clicando no boto OR >.

Valores: adicione o novo critrio

6. VISUALIZANDO O SQL
Critrio: escolha a opo Where

4. O CRITRIO
Agora vamos colocar o critrio. Para isso, escolha a opo WHERE. Nessa janela Where, escolha a coluna CIDADE, (imagem 008) opera76 < C O L E O I N F O

Ao criarmos uma consulta no Assistente SQL, o programa, nos bastidores, cria uma instruo SQL para realizar a pesquisa solicitada. Veja como ficou no nosso primeiro exemplo: SELECT * FROM SQLJ.CLIENTES AS CLIENTES WHERE CLIENTES.CIDADE = So Bernardo

TUTORIAL/CONSULTAS

Como ficou: visualize o cdigo SQL

Quando adicionamos o critrio para as duas cidades, se voc observar a declarao SQL montada, vai notar que a clusula WHERE mudou para: WHERE CLIENTES.CIDADE = So Bernardo OR CLIENTES.CIDADE = So Paulo; Note que a diferena entre as duas instrues SQL a quantidade de parmetros contidos exatamente na clusula Where. Da mesma forma, a diferena da clusula Where entre uma consulta que possua o critrio: So Bernardo, e outra com o critrio: So Bernardo OU So Paulo, ser a quantidade de campos na clusula Where.

. RESTRINGINDO Vamos supor agora que voc quer visualizar os clientes de So Bernardo OU So Paulo, mas apenas os que nasceram em 1990. Para isso usaremos o mesmo sistema de critrios, mas adicionando um outro, do tipo AND. De volta ao Assistente SQL, escolha a coluna DATANASC e o operador BETWEEN. Em valor mnimo coloque 1990-01-01 e, em valor mximo, 1990-12-31. Clique em "AND >". Agora, clique em OK e execute o comando, acionando Resultados da Consulta. Pronto, agora voc pode usar o Assistente SQL para gerar comandos com critrios de acordo com a sua aplicao e extrair relatrios cada vez mais precisos do seu banco de dados. Esse exemplo, feito no DB2 Express-C, pode ser aplicado em qualquer outro banco de dados. A diferena vai ser mais visual do que conceitual, de acordo com o assistente do produto.

AND OU OR?
Dvidas sobre a utilizao dos critrios AND e OR costumam ser freqentes entre os iniciantes na arte de armazenar informao. Quando colocamos a instruo OR, acrescentamos registros ao resultado. Quando utilizamos AND, restringimos. Para exemplificar, ima-

>

gine um amigo procurando namorada. Ele prefere loiras de olhos azuis. Ento deve especificar loira AND olhos azuis. Agora, se para voc tanto faz se a moa loira ou morena, defina a consulta com loiras OR morenas. Suas possibilidades sero maiores.

C O L E O I N F O > 77

TUTORIAL/INTERFACE WEB

O PHPMYADMIN DOMA O MYSQL


APRENDA A USAR O PHPMYADMIN PARA CRIAR BANCOS DE DADOS SEM ESCREVER EM SQL
POR TONI CAVALHEIRO

opular por ser um gerenciador de bancos de dados confivel e gratuito, o MySQL fica devendo uma interface grfica para o desenvolvedor. Sem ela, o uso desse software fica restrito aos programadores que dominam a linguagem SQL. A MySQL AB, que produz o banco de dados, oferece o MySQL Administrator, uma ferramenta de gerenciamento, mas no to popular quanto o phpMyAdmin, que permite comandar o MySQL por meio de uma interface via web. Com ele, possvel criar e modificar bancos de dados sem escrever os comandos em SQL. O phpMyAdmin tambm timo para aprender SQL, uma vez que pode-se visualizar o cdigo gerado. Neste tutorial, vamos criar um banco de dados com o phpMyAdmin. Para isso, preciso ter um servidor Apache com PHP e MySQL, itens presentes em quase todas as distribuies do Linux. Se voc quiser instal-los no Windows, pode optar por um pacote como o Apache2Triad (www.info.abril.com.br/ download/3788.shtml), que rene os trs softwares. Vamos ao tutorial.

1. INSTALAO
O primeiro passo baixar o phpMyAdmin (www.info.abril.com.br/down load/3260.shtml) e descompactar os arquivos. Crie uma pasta no servidor Apache com o nome mysql e ponha os arquivos do software nela.

2. CONFIGURAO
Vamos configurar. Abra, no Bloco de Notas, o arquivo config.inc.php, que est na pasta mysql. Localize este trecho: $cfg[Servers][$i]['host] = localhost; // MySQL hostname or IP address $cfg[Servers][$i][port]= ; // MySQL port - leave blank for default Na primeira linha, altere o parmetro host para o nome ou o endereo IP do servidor. Se o phpMyAdmin estiver na mesma mquina que o MySQL, deixe localhost mesmo. Caso seu MySQL utilize alguma porta especial, indique-a na linha seguinte. Coloque o nmero da porta entre os apstrofos logo aps o sinal de igual. A porta-padro a 3306. Caso ocorra algum tipo de pro-

78 < C O L E O I N F O

TUTORIAL/INTERFACE WEB

blema, verifique se essa porta est liberada no firewall.

. AUTENTICAO Por padro, o phpMyAdmin usa a autenticao baseada no computador. Voc indica uma mquina cliente e ele s faz a conexo com ela. Vamos alterar isso para que a autenticao seja feita com base no nome de usurio. Para isso, localize a seguinte linha no arquivo config.inc.php: $cfg[Servers][$i][auth_type] = config; // Authentication method (config, http or cookie based)? Troque a palavra config por http, mantendo os apstrofos. Salve o arquivo e feche o Bloco de Notas. Depois disso, o phpMyAdmin estar pronto para ser usado. Abra o browser e digite a seguinte URL: http://localhost/mysql Voc ver uma tela de logon. Se a primeira vez que voc acessa o MySQL, digite root como nome de usurio e deixe a senha em branco.

linhas horizontais, que so chamadas, respectivamente, de campos e registros. Vamos criar um pequeno banco de dados com o cadastro de clientes de uma empresa qualquer. Para comear, na pgina inicial do phpMyAdmin, procure o campo Criar novo banco de dados. Digite a palavra empresa nele e clique no boto Criar. Todos os nomes dos bancos de dados devem ser grafados em letras minsculas.

. TABELAS O prximo passo ser criar uma tabela. O prprio phpMyAdmin j sugere essa operao. Digite o nome tb_agenda para a tabela. Como ela ter nove campos, coloque o nmero 9 em Campos e pressione o boto Executar. recomendvel iniciar o nome de cada tabela com as letras tb_. Com essa nomenclatura, voc poder encontrar as tabelas mais facilmente no cdigo-fonte do seu programa.

4. O BANCO DE
DADOS Um servidor como o MySQL pode conter vrios bancos de dados. Cada um formado por um certo nmero de tabelas. As tabelas so divididas em colunas e

Pgina inicial: ponto de partida do phpMyAdmin para a criao dos vrios bancos de dados que o MySQL comporta
C O L E O I N F O > 79

TUTORIAL/INTERFACE WEB

6. TIPOS DE CAMPO
As tabelas podem conter vrios tipos de campo. Vamos dar uma olhada nos principais. s VARCHAR Armazena seqncias de letras e nmeros. Valores armazenados nesse campo no podem ser usados para clculos matemticos (se voc somar 1 + 2, receber 12 como resultado, em vez de 3). s TEXT Usado para armazenar os textos. Se voc tiver um sistema de notcias online, por exemplo, ir guardar cada um dos artigos em um campo TEXT. s DATE Campo usado para datas. Est presente na maioria das tabelas. s INT um dos tipos de campo mais usados. Armazena nmeros inteiros, sejam eles negativos ou positivos. s DECIMAL Armazena nmeros decimais. Repare que, ao lado desse campo, aparece o item tamanho/definir. Esse valor indica a preciso do campo decimal que voc est criando. Se voc preencher com o valor 10,3, por exemplo, estar informando ao servidor que a preciso ser de dez dgitos e trs casas decimais. Se voc no especificar nenhum valor, o sistema assume 10,0 como formato-padro. s BLOB normalmente usado para armazenar imagens.

CAMPO cod nome telefone endereco cidade estado pais cep email

TIPO INT VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR

TAMANHO/DEFINIR

100 15 50 30 2 15 8 30

Esquea as demais especificaes do phpMyAdmin, como Atributos, Nulo e Padro. Esses itens no sero necessrios e devem ser deixados em branco. Procure evitar o uso de cedilha, acentuao ou caracteres especiais no nome dos campos. Isso pode criar problemas se voc resolver transportar a base de dados para outro servidor. Ao terminar, clique em Salvar.

8. CHAVE
Vamos definir a chave primria, uma referncia que ser usada como ndice para a tabela. Clique em Estrutura e, em seguida, no cone em forma de chave ao lado do campo cod da tabela. Uma tela de confirmao aparecer. Clique em OK. Agora ligue a numerao automtica do campo cod. Ainda na guia Estrutura, pressione o cone em forma de lpis que est ao lado desse campo e selecione a opo auto_increment, disponvel em Extra. Clique em Salvar.

7. DEFINIES
O phpMyAdmin mostra um formulrio que devemos preencher com as definies dos nove campos da nossa tabela. Complete o formulrio com os valores da tabela a seguir:
80 < C O L E O I N F O

9. INSERINDO DADOS
J podemos inserir dados na tabela. Primeiro, mostraremos como in-

TUTORIAL/INTERFACE WEB

10. DADOS NO
ATACADO A tcnica do passo anterior para inserir dados no muito prtica se voc precisar incluir muitos nomes. A melhor sada criar um arquivo de texto com os dados e importlo para o MySQL. Para isso, coloque os Campos: especifique o nome, o tipo e o tamanho dados de cada cliente numa linha, usando ponto-e-vrcluir dados da forma convencional gula como separador. Os campos e, em seguida, voc ver como mondevem estar na ordem especificatar o cadastro de clientes importanda na tabela, como neste exemplo: do dados de um arquivo de texto. ;Joo da Silva;(11) 6000-1010; Para incluir dados no MySQL, cliRua do Endereo, 100; que na guia Inserir, localizada na parSoPaulo;SP;Brasil; te superior da janela do phpMyAd01000000;mail@server.com min. O programa permite que voc ;Paulo da Silva;(21)1000-1212; inclua dois registros de cada vez, basRua do Teste, 200;Niteri; tando preencher o formulrio com inRJ;Brasil;10201000; formaes tais como nome, endereo e telefone dos clientes. Nesse momento, preencha apenas o item Valor. O item Funes permite que voc d um tratamento personalizado aos dados que est digitando, mas no vamos us-no neste tutorial. Caso voc queira incluir outros novos dados, Importar dados: faa um arquivo de texto e marque a opo Inimporte para o MySQL serir novo registro.
C O L E O I N F O > 81

TUTORIAL/INTERFACE WEB

outro@servidor.com.br ;Jorge Pinheiro;(609) 1000-1000;3rd Test Street; Adrian;MI;USA;11000123; mail@server.com Salve esse arquivo com o nome agenda.txt. De volta ao phpMyAdmin, clique em SQL e depois em Insere Arquivo Texto na Tabela. Clique em Browse, localize o arquivo que voc criou. Para concluir a entrada dos dados, clique em Submeter. Os dados sero incorporados ao cadastro de clientes. A montagem do nosso banco de dados est concluda. Nos prximos dois passos, damos dicas para quem est aprendendo SQL.

11. EXAMINANDO O CDIGO


Pode ser interessante dar uma olhada no cdigo em SQL gerado pelo phpMyAdmin. Clique em Exportar e gere um arquivo com a extenso SQL. Depois, abra esse arquivo no Bloco de Notas ou num editor de programas. Analise o cdigo e veja como o phpMyAdmin estruturou a tabela.

MySQL. Vamos ver exemplos das quatro operaes bsicas de bancos de dados consulta, incluso, edio e excluso em SQL. SELECT * from tb_dados WHERE cod = 10 ORDER BY nome; Esse comando seleciona e lista todos os campos da tabela tb_dados somente nas linhas que tiverem o cdigo 10. O parmetro ORDER BY determina as linhas em ordem alfabtica pelo campo nome. INSERT INTO tb_dados (endereco) VALUES (mail@mail.com); Esse cdigo insere o endereo mail@ mail.com no campo endereco da tabela tb_dados. UPDATE tb_dados SET nome = INFO WHERE cod = 10; Modifica o campo nome da tabela tb_dados para Info, mas s nas linhas que tiverem 10 no campo cod. DELETE FROM tb_dados WHERE nome like a%; Apaga linhas da tabela tb_dados que comearem com a letra a. O smbolo % usado como curinga.

12. COM O SQL


H certas operaes que no podem ser feitas apenas com o phpMyAdmin. Elas exigem a digitao de comandos em SQL. Isso feito na guia SQL, bastando digitar os comandos e pressionar o boto Executar para envi-los ao
82 < C O L E O I N F O

SQL: os comandos so enviados direto para o MySQL

TUTORIAL/DESENVOLVIMENTO

ATUALIZAO COM O AJAX


COMBINAO DE VRIAS TECNOLOGIAS, O AJAX AGILIZA OS APLICATIVOS QUE ACESSAM BANCOS DE DADOS ONLINE
POR CARLOS CHERNIJ

Ajax vem dando o que falar no mundo dos sites dinmicos. Essa tcnica de desenvolvimento usa HTML, JavaScript, XML e alguma linguagem para a web, como PHP, ColdFusion, Java ou C# e tem no Google um ilustre usurio. Quando algum distribui coraes para os amigos no orkut, por exemplo, a pgina atualiza os campos correspondentes sem recarregar todo o resto, agilizando a operao. Num formulrio normal da web, os dados fornecidos pelo internauta so enviados para o servidor,

que devolve uma nova pgina com o resultado. Para demonstrar como se programa em Ajax, vamos criar um servio de cadastro com PHP e HTML.

1. O SERVIDOR

Para executar nosso exemplo, preciso ter um servidor HTTP Apache 2.0 rodando PHP 4.4 no modo binrio CGI e o banco de dados MySQL 4.1 ou mais recente. Esses recursos esto disponveis na maioria dos planos de hospedagem de sites. Baixe o exemplo em www.info.abril.com.br/down load/4326.shtml e descompacte-o. Voc vai obter uma pasta chamada infoajax com vrios arquivos. Coloque essa pasta no diretrioraiz do servidor Apache (diretrio htdocs). Para criar nossa aplicao, usaremos uma biblioteca de classes em PHP, a Xajax (www.info.abril.com.br/ download/4327.shtml). Ela est includa no arquivo compactado, dentro da pasta includes, com o noFormulrio: cadastro de clientes feito com Ajax me xajax.inc.php.
C O L E O I N F O > 83

TUTORIAL/DESENVOLVIMENTO

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 software estiver instalado no servidor, digite o endereo correspondente para us-lo, como neste exemplo: http://www.nome. com.br/phpmyadmin. phpMyAdmin: criao do banco de dados xajax Na tela inicial, procure o campo Criar Novo Banco de Dasenha pelo nome de usurio e a sedos e digite xajax. Clique em Criar. nha que devero ser usados para

3. TABELAS
Vamos gerar tabelas para a nossa aplicao. No phpMyAdmin, acione o menu do lado esquerdo da tela e selecione o banco de dados xajax. Ative, ento, a aba MySQL. No campo Localizao do Arquivo Texto, clique em Procurar. Navegue at o arquivo bd.sql, na pasta infoajax, e selecione-o. Em Conjunto de Caracteres do Arquivo, escolha latin1. Clique em Executar para rodar o programa em SQL. Isso cria as tabelas.

acesso ao MySQL. Na linha de baixo, substitua meubanco por xajax.

. O APLICATIVO Para ver o aplicativo-exemplo funcionando, abra o browser e digite este endereo: http://www.nome. com.br/infoajax. No lugar de www.nome.com.br, coloque o endereo do seu site. Clique em Cadastrar e inclua dados de uma pessoa no banco. Depois, volte pgina anterior e faa uma consulta.

4. CONFIGURAES
Vamos editar o arquivo bd.inc.php que fica na pasta includes. Abra-o num editor de textos e procure: $conexao = mysql_connect (localhost,usurio,senha); mysql_select_db(meubanco, $conexao); Substitua as palavras usurio e
84 < C O L E O I N F O

6. EXAMINADO O CDIGO
Analisaremos a seguir o arquivo cadastro.php, que contm as rotinas para a incluso de registros. Abra o arquivo num editor de textos e, logo no comeo, observe a linha $xajax = new xajax();. Esse comando define o objeto xajax, que vai processar as aes de post do formulrio. Um dos mtodos

TUTORIAL/DESENVOLVIMENTO

o $xajax->registerFunction() , que permite agregar funes escritas em PHP que realizaro operaes com dados do formulrio de forma assncrona. Cada funo dessas deve possuir um objeto da classe xajaxResponse(), que conter os dados a atualizar.

$xajax->registerFunction (carregaCidades)

8. XAJAX
Aps a definio das funes, quando comea a seo de cdigo HTML do arquivo cadastro.php, preciso especificar que o xajax deve tomar para si os comandos de post do formulrio. Isso feito pelo comando $xajax->processRequests() Em seguida, devemos criar um evento que chamar a funo que registramos no objeto xajax. Isso feito na linha: <select id=ufname=uf onChange=javascript:aguarde(); xajax_carregaCidades(this. value);style=width: 50px;> Cada vez que o campo Estado mudar, a funo carregaCidades ser chamada e retornar a lista de cidades em cdigo XML. O xajax utilizar a lista num JavaScript, que, por sua vez, atualizar as cidades. Um mecanismo similar utilizado na pgina index.php, que contm o mdulo de consulta. Abra-a num editor de textos. A funo listaUsuarios utiliza como parmetro o texto da caixa de busca. Ao ser chamada, ela faz a consulta no banco e adiciona os resultados varivel $html para que sejam exibidos na pgina. Ao clicar em Buscar, a funo listaUsuarios passa um novo parmetro para a consulta. Ele enviado para o servidor pelo xajax, que recebe a resposta em XML e usa, ento, um programa em JavaScript para reescrever o cdigo HTML, que mostra os resultados.
C O L E O I N F O > 85

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. Para selecionar as cidades, h a funo carregaCidades. No arquivo cadastro.php, observe o cdigo dessa funo. Aps ler o valor selecionado no menu Estado, a funo realiza uma consulta na tabela para selecionar as cidades correspondentes. Cada registro encontrado adicionado ao objeto $objResponse, por meio do mtodo addAssign. No cdigo, temos esta linha: $objResponse->addAssig (cidades,innerHTML, $html) O item cidades a identificao da diviso da pgina onde ficar o menu com as cidades, e innerHTML especifica que o contedo da varivel $html vai substituir o cdigo html dentro da diviso. No final, chamado o mtodo getXML(), que retorna uma seo de cdigo XML ao objeto xajax. Aps implementar a funo, vamos incorporla ao xajax por meio do comando:

TUTORIAL/CONSULTAS

PESQUISE BEM NO ACCESS


MONTE CONSULTAS COM DUAS TABELAS E ESCAPE DAS PEGADINHAS NA LGICA DOS DADOS
POR CARLOS MACHADO

uem gosta de msica e organizao costuma no resistir a um banco de dados. Em geral, utiliza o Access, que j est ali mesmo no PC, no pacote Office. Vamos supor que voc tenha montado uma tabela no Access reunindo todos os seus arquivos de msica em MP3. Como tambm gosta de analisar as letras e decorar para cantar no chuveiro , criou uma tabela para elas. Nem todas as msicas tm sua letra no banco, e voc quer saber quais MP3 dispem de letras. A soluo pode ser encontrada no Access a um toque do mouse, sem programao. Ser preciso construir uma consulta simples, com o objetivo de identificar, em duas tabelas, quais registros contm as mesmas informaes em dois campos indicados: um em cada tabela. Essa soluo pode ser aplicada em muitas outras situaes. O problema pode ser representado por um diagrama que mostra dois conjuntos de dados, um para cada tabela. O xis da questo identificar a poro comum s duas tabelas corres-

pondente, no desenho, rea em que os dois conjuntos se superpem. Agora que j caracterizamos o problema, vamos soluo, passo a passo.

1. A TABELA DE MP3
Para acompanhar o exemplo, crie no Access uma tabela com os campos Intrprete e Ttulo, ambos do tipo Texto. Salve-a com o nome tabMP3. Essa tabela, claro, vai conter a lista das msicas.

Consulta 1 (no alto) e seus resultados: a base a tabLetras

86 < C O L E O I N F O

TUTORIAL/CONSULTAS

2. A TABELA DAS LETRAS


Crie outra tabela, com os campos Intrprete, Ttulo e Letra. Este ltimo deve ser do tipo Memorando, para abrigar a letra da msica. O campo do tipo Texto tem capacidade mxima para 255 caracteres. A letra no caberia nele. Por sua vez, o campo de memorando suporta at 65 536 caracteres. D segunda tabela o nome tabLetras. Tambm no haveria problema se o campo Ttulo, que o ponto comum entre as tabelas, tivesse nome diferente nas duas. No entanto, para facilitar a compreenso, mais cmodo usar o mesmo nome.

Consulta 2: o resultado (embaixo) no igual ao da consulta 1

3. CRIE A CONSULTA
Na janela Banco de Dados, clique na orelha Consulta. D um duplo clique no comando Criar Consulta no Modo Design para projetar um objeto desse tipo a partir do zero. O Access abre duas janelas: Mostrar Tabela e Consulta1. Selecione (mouse mais a tecla Ctrl) o nome das duas tabelas tabMP3 e tabLetras na primeira janela e clique no boto Adicionar.

bela no tem nenhum parentesco com seu homnimo na outra.

4. A LINHA NEGRA
Dois quadros com os campos das tabelas aparecem na rea superior de Consulta1. Se as duas tabelas tiverem chaves primrias chamadas Cdigo (nome-padro), o Access vai mostrar uma linha negra ligando esses dois campos. Clique nessa linha e acione a tecla Del para apag-la. Isso porque o valor Cdigo numa ta-

. O PULO-D0-GATO Com o mouse, clique no campo Ttulo 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 consulta deve procurar neles informaes iguais. Dica: o procedimento tambm funciona quando o nome dos dois campos no o mesmo. No quadro tabLetras, arraste para a linha Campo, embaixo, os campos Ttulo e Intrprete. Opcionalmente, indique que o campo Intrprete seja apresentado em ordem alfabtica. Para isso, na linha Classificao, escolha Crescente. Salve a consulta (com um nome amigvel, como cnsMP3comLetras1) e execute-a. Veja que ela exibe exaC O L E O I N F O > 87

TUTORIAL/CONSULTAS

tamente os ttulos comuns s duas tabelas. A soluo descrita acima aparentemente resolve o problema apresentado no incio deste tutorial.

. TESTE A CONSULTA Faa, agora, uma experincia importante. Inclua, na tabela MP3, uma msica cujo ttulo j existe em tabLetras, mas registre a outro intrprete. Escolha, de propsito, uma cano que no faz parte do ncleo comum entre as duas tabelas. Execute novamente a consulta. O que ocorre? A nova msica no aparece. Isso porque a consulta est sendo feita com base na tabela tabLetras. . MESMO TTULO Agora, na janela Banco de Dados, selecione a consulta cnsMP3comLetras1 e copie-a. Cole-a no mesmo lugar, com o nome de cnsMP3comLetras2. Selecione essa nova consulta e clique no boto Design. Na janela da consulta, linha Tabela, es-

colha, nos dois campos, tabMP3 em vez de tabLetras. Salve a consulta. Em outras palavras, estamos fazendo a mesma consulta, s que agora a outra tabela nosso ponto de partida. Execute essa consulta modificada. O que ocorre? A msica aparece, mas com outro intrprete. Para comparar, abra as duas. Ao trabalhar com bancos de dados, preciso pensar em coisas desse tipo. A questo que duas canes com o mesmo ttulo e cantores diferentes podem ser a mesma msica ou no. Assim, se voc quiser garantir a identidade de ttulo e intrprete, precisa construir uma consulta ligeiramente diferente.

8. OS INTRPRETES
Experimente mais. Copie a primeira consulta e cole-a como cnsMP3comLetras11. Abra-a em modo Design e arraste o campo Intrprete de uma tabela para o mesmo campo na outra. Com isso, estamos dizendo que tanto o ttulo como o intrprete devem coincidir nas duas tabelas. Agora, copie a tabela cnsMP3comLetras2 e cole-a como cnsMP3comLetras22. Arraste o campo Intrprete da mesma forma.

9. BUSCA DUPLA
Execute, lado a lado, as consultas 11 e 22. Embora se baseiem em tabelas diferentes, elas do os mesmssimos resultados. A diferena est na busca de dupla identidade: de ttulo e de intrprete.

Consultas 11 e 22: bases diferentes, mas com resultados iguais

88 < C O L E O I N F O

TUTORIAL/CADASTRO DE FOTOS

O EXIF VAI PARA O BANCO


APRENDA A CRIAR UMA BASE DE DADOS DE FOTOS NO SQL SERVER EXPRESS COM INFORMAES DA CMERA
POR NIVALDO FORESTI

ue tal criar um banco de dados de fotografias sem perder muito tempo na digitao dos detalhes? A idia boa e factvel, se usarmos as informaes Exif (Exchangeable Image File Format) que as c-

meras fotogrficas digitais, em sua maioria, gravam em cada imagem capturada por seus sensores. Entre essas informaes preciosas esto a data e a hora em que a foto foi tirada, a abertura do obturador, o tempo de exposio, o nome do fabri-

Banco de fotos: para criar um banco, selecione General na janela New Database

C O L E O I N F O > 89

TUTORIAL/CADASTRO DE FOTOS

MSQL >DATA. L estaro os arquivos fotos.mdf e fotos_log.ldf.

2. AS TABELAS
De volta ao SQL Server Management Studio Express, expanda o banco de dados Fotos, clicando no cone +. Agora vamos criar as trs tabelas: fotografos, pictures e clientes. Como definio, iremos dizer que um fotgrafo pode ter vrias fotos e que um cliente tambm pode ter vrias fotos. Primeiro, criamos a tabela fotografos. Com o boto direito, clique em Tables e selecione NEW TABLE. Na janela Properties, digite o nome da tabela, fotografos, no campo ObjectName. Agora vamos criar os campos dessa tabela. Aparece uma lista com as opes na janela Table dbo.table-1, o nome padro de tabela criada pelo SQL Management, contendo o nome da coluna (Column Name), tipo de dados (Data Type) e Allow Nulls?. O primeiro campo que vamos criar o da chave primria dessa tabela. de bom costume criar sempre uma chave primria para toda tabela. Nesse caso, ela ser chamada Id_fotografo. Digite esse nome no campo Column Name. A janela Column properties deve ser alterada para as caractersticas desejadas. Em primeiro lugar, va-

Checagem: verifique os arquivos que formam o banco de dados

cante e o modelo da mquina, alm da resoluo da imagem. Neste tutorial, vamos criar uma base de dados de fotos com informaes Exif no SQL Server 2005 Express, da Microsoft. Nosso banco ter trs tabelas: clientes, fotgrafos e pictures. Vamos aos passos.

1. A BASE DE DADOS
Abra a sute SQL Server Management Studio Express. Na interface principal, clique com o boto direito do mouse em Databases e selecione Criar New Database. Do lado esquerdo da janela New Database que se abre, selecione a opo General. No campo chamado database name, digite Fotos, que ser o nome do nosso banco de dados. Clique OK. O banco de dados Fotos est criado e se constitui de dois arquivos. Voc pode verificar isso acionando Programs > Microsoft SQL Server >
90 < C O L E O I N F O

TUTORIAL/CADASTRO DE FOTOS

mos determinar qual tipo de dados o campo ir suportar. Clique no campo Data Type e selecione int, pois esse campo ser uma identificao do fotgrafo e a chave primria dessa tabela. D TAB at abrir a prxima linha da janela Table dbo.table-1, nome provisrio da tabela.

4. CHAVE PRIMRIA
Vamos agora definir a nossa chave primria. Clique com o boto direito sobre o campo desejado e selecione Set Primary Key. Vamos fazer isso com o campo Id_fotografo. A chave primria identificada graficamente por uma pequena chave frente do nome do campo. Salvamos nossa tabela, acionando File > Salvar Fotografos. Pronto, a primeira tabela est criada na base de dados Fotos. Faa o mesmo para a tabela Clientes. Ela ter os campos Id_cliente, nome_cliente, endereo_cliente, cidade_cliente, estado_cliente, CEP_cliente como colunas. Como no queremos registros incompletos, todos eles tambm no permitiro campos no preenchidos ou nulos. Vamos fazer o ID_cliente como nossa chave primria dessa tabela. Salve a tabela Clientes clicando no cone de fechar tabela. Uma jaChave primria: pequena chave identifica o campo correspondente

. MAIS CAMPOS Vamos criar agora os campos Nome do fotgrafo, Endereo, Cidade, Estado. Todos eles sero do tipo varchar, que consumir somente o espao necessrio no disco para a quantidade 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 espao no disco rgido. Para cada um, defina no campo lenght o tamanho que voc deseja para ele. O ltimo campo ser o de CEP. Defina-o como um campo numrico de tamanho 8 (o tamanho do cep no Brasil). Preencha as opes Precision como 8 e scale 0 na janela Properties. No queremos que falte informao nessa tabela. Assim, desmarque a opo Allow Nulls de todos os campos. O prprio sistema de banco de dados no permitir que campos em branco sejam registrados.

C O L E O I N F O > 91

TUTORIAL/CADASTRO DE FOTOS

6. RELACIONAR
A tabela no est completa ainda. Voc precisa relacion-la aos fotgrafos e aos clientes. Lembre-se que, em um banco de dados relacional, essa relao importante para descobrir as fotos que pertencem a um fotgrafo ou que fotos so de quais clientes. Primeiro, vamos definir as chaves de pesquisa para os fotgrafos e clientes nessa tabela. Elas sero chamadas de id_fotografos e id_clientes, respectivamente. Crie como campos do tipo int. Agora, clique com o boto direito na janela de campos e escolha a opo indexes/Key. Clique no boto ADD. Selecione o ndice criado. Em Columns, escolha primeiro a coluna id_fotografos, abrindo a janela com a opo ".....". Na coluna Identity (name) d o nome desse ndice. Vamos cham-lo de indice_fotografos. Voc notar que existe uma coluna chamada is unique? Mantenha a opo NO. Por qu? Bem, queremos que esse valor se repita para cada foto que pertena a um fotgrafo. Caso selecionssemos a opo YES, o banco de dados evitaria que existisse registro contendo valores duplicados. Crie outro ndice igual para clientes que se chamar indice_clientes.

ndice: definindo a chave de pesquisa para os fotgrafos

nela aparecer perguntando se voc deseja salvar as alteraes nela. Clique YES.

. TABELA DE FOTOS Chegou a vez da tabela Pictures. Essa tabela ter informaes Exif sobre as fotos que voc deseja guardar. O padro Exif bastante completo, mas no queremos todas essas informaes. Como ilustrao, usaremos o fabricante da cmera, o seu modelo, a data e a hora da foto e a sua largura e altura. Defina todos os campos (exceto a chave primria) como varchar com o tamanho desejado. Defina uma chave primria chamada Id_Pictures. Nesse caso, devemos permitir nulls nos outros campos, pois voc pode no ter alguma das informaes. Normalmente, todas as cmeras tm, mas se voc desejar gravar uma foto avulsa ser possvel fazlo sem dispor de algumas delas.
92 < C O L E O I N F O

7. TABELA COM TABELA


Estamos prontos para relacionar as tabelas. Existem vrios modos de se

TUTORIAL/CADASTRO DE FOTOS

fazer isso. Vamos pelo mais fcil e visual. No banco de dados Fotos, clique com o boto direito em Database Diagrams na janela da esquerda. Clique em database diagrams. O sistema ir avisar que esse banco de dados no tem um ou mais objetos necessrios para utilizar o recurso de diagramas. Clique em YES. Selecione a opo New Database Diagram. Uma janela chamada Add Tables ser mostrada. Selecione uma tabela e clique no boto Add. Faa isso com todas elas. Ao final, clique em Close. Uma representao grfica das tabelas e seus relacionamentos mostrada. Selecione a coluna de chave no cliente (ID_cliente) com o mouse e arraste at a coluna id_clientes. A janela Table and Columns ser mostrada. Isso far com que o sistema gere uma relao entre a tabela clientes usando o campo id_clientes para a tabela Pictures. Essa relao de um para muitos, ou seja, de um cliente para vrias fotos. Sacou? Clique OK. Faa o mesmo para a tabela fotografos, usando a coluna id_fotografo, e para a tabela pictures usando a coluna Id_fotgrafos. Os relacionamentos esto feitos. A identificao de cada uma dessas relaes feita por uma linha que une os campos de ndices e cada lado contm a forma dessa relao,

um para um, um para muitos ou muitos para muitos. No nosso caso, voc ver uma chave de um dos lados da relao e um smbolo de infinito do outro lado, o que significa uma relao de um para muitos. Quando voc executar consultas que contenham as tabelas clientes e pictures ou fotografos e pictures, as informaes relacionadas de ambas sero trazidas automaticamente. Por exemplo, ao pesquisar um fotgrafo, voc encontrar todas as fotos que ele produziu. Salve o diagrama, clicando em SALVAR ou fechando a janela. D um nome para esse diagrama no nosso caso, diagrama.

8. IMPORTANDO DADOS
Neste ponto, j podemos utilizar essa base. Primeiro precisamos cadastrar alguns dados nela. Usamos um programa de extrao de dados Exif
Relacionamento completo: clientes, fotgrafos e pictures

C O L E O I N F O > 93

TUTORIAL/CADASTRO DE FOTOS

EasyExif: gerando informaes de fotografias em arquivos CSV

em lote para gerar as informaes das fotos, o EasyExif (www.info. abril.com.br/download/4457. shtml), de Kevin Hu. O programa gera arquivos CSV de cada imagem. Abra o programa e selecione a opo Save Directory as CSV Text no menu Save Exif. Uma janela-padro do Windows permitir selecionar o diretrio onde se encontram as imagens. O sistema ler as informaes de todas as fotos existentes e, para cada uma, gerar um arquivo no formato CSV (separado por vrgulas), em um diretrio chamado Exifdata dentro da pasta de suas fotos. Junte todos os arquivos gerados em um nico para importao na base de dados. Existem duas maneiras de se fazer isso. A primeira criar um programa de importao, j
94 < C O L E O I N F O

que o SQL Express no tem esse tipo de utilitrio. A outra conseguir algum pacote que execute essa funo. O EMS Data Import for SQL Server, da EMS Electronic Microsystems, permite importar dados do formato CSV para um banco de dados SQL Server. Faa o download da verso de teste em ( www.info.abril.com.br/down load/4458.shtml). Esse utilitrio tem um assistente que o leva passo a passo pelo processo. O primeiro a conexo com a base de dados. Isso depende da instalao que foi feita no SQL Express. No nosso caso, escolhemos Remote, preenchemos o nome da mquina e a autenticao configurada foi a do Windows. Clique no boto NEXT.
Data Import: conecta-se ao banco e importa as informaes

TUTORIAL/CADASTRO DE FOTOS

Importao: escolha o arquivo com os dados clicando em ADD FILE

No prximo passo escolhemos o arquivo com os dados, clicando no boto ADD FILE. Uma janela chamada Select Table mostrada. Selecione o banco de dados Fotos, e a tabela dbo.pictures. Clique OK e depois em NEXT. Agora mude o delimitador para vrgula no campo Delimiter. Na janela Field, selecione o campo CameraManufacture. Escolha na janela Columns a coluna que corresponde a esse campo no banco de dados. No nosso caso, a coluna 2. Faa o mesmo para os campos CameraModel, DateTime, Width e Lenght com as colunas 4, 16, 54 e 55 respectivamente. Clique em NEXT.

de ndice da tabela. Primeiro a chave primria (Id_pictures). Selecione-a no campo Field. No campo Generator Step na janela Field Tunning digite 1. Isso significa que para cada registro um novo ndice adicionado de um ser gerado. Como nossa base virgem, ele comear do 1, pois a soma de Generator Value que 0 mais o Generator Step que 1. Nas prximas vezes, voc ter que descobrir qual o prximo nmero a ser colocado em Generator Value para a importao acontecer com sucesso, pois a chave primria no pode ser duplicada.

. ID DO FOTGRAFO Vamos gerar o valor de id_fotografos. Temos dois registros e queremos que o primeiro seja do fotCampos de ndice: gerao automtica dos campos da tabela

10

9. CAMPOS
DE NDICE Vamos tratar da gerao automtica dos campos
C O L E O I N F O > 95

TUTORIAL/CADASTRO DE FOTOS

Resultado: data e hora de cada imagem

Clique NEXT nos prximos passos at o de nmero 10. Nesse ltimo, clique IMPORT. Os dois registros foram importados para nosso banco de dados Fotos.

12. A PESQUISA
grafo que est cadastrado em nossa base com o ndice 1 e o segundo do fotgrafo com ndice 2. Selecione id_fotografos na janela Fields e, em Fields Tunning, coloque Generator Value 0 e Generator Step 1. Isso far com que o primeiro registro seja do fotgrafo com ndice de nmero 1 (campo com o valor 1) e o segundo registro seja do fotgrafo 2 (campo com valor 2). Vamos verificar se nossas informaes esto corretas fazendo uma consulta. Na janela Object Explorer, clique com o boto direito do mouse no banco Fotos e selecione a opo New Query. Queremos primeiro descobrir todos as fotos do cliente 1. Clique com o boto direito na janela de Query e selecione Query Designer. Adicione as Tabelas Cliente e Pictures. Na coluna Column_Name, selecione Nome_Cliente da lista. Nas demais, selecione DateTime, CameraModel e Id_clientes. Em filter, na linha de id_clientes, digite 1. O prprio Query Designer gerou um comando SQL para ser executado. Clique no boto OK. O comando SQL gerado est pronto para execuo. Clique com o boto direito na janela Query novamente e escolha EXECUTE. Eis o resultado de sua pesquisa, a data e hora de cada foto e o modelo da cmera utilizado e para qual cliente isso foi feito.

11. DADOS DO CLIENTE


Agora vamos gerar as informaes de cliente. Queremos que todas as fotos pertenam ao mesmo cliente, o que tem ndice 1 em nossa tabela de clientes. Para tanto, selecione o campo id_clientes na janela Fields e digite o nmero 1 em Constant Values na janela Fields Tunning. Todos os registros tero o valor 1 no campo de ndice id_clientes pertencendo assim ao mesmo cliente. Clique no boto NEXT.
96 < C O L E O I N F O

TUTORIAL/POSTGRESQL

E-MAIL FALSO NO ENTRA


CONSTRUA UM CADASTRO DE ENDEREOS VLIDOS AUTOMATIZANDO O PEDIDO DE CONFIRMAO
POR HELIO SILVA

ada mais chato e inoportuno do que descobrir na sua caixa postal uma enxurrada de newsletters que voc no assinou. Tudo porque algum cadastrou seu e-mail por brincadeira ou mesmo por maldade. Para o webmaster, essa situao tambm desagradvel porque recebe reclamaes e taxado de spammer. A sada para o site criar um cadastro de emails vlidos, enviando ao candidato

a assinante da newsletter um pedido de confirmao na forma de um clique em um hyperlink. Quando esse hyperlink for acionado, o webmaster ter certeza de que quem solicitou a assinatura o dono do endereo. isso que faremos no tutorial a seguir. Para segui-lo, ser necessrio um servidor web com PHP 4.x, banco de dados PostgreSQL 8.1.2 e um provedor de acesso internet que aceite conexes SMTP para a transmisso de e-mails.

Tabela de e-mails: comando SQL cria a tabela de assinantes no PostgreSQL

C O L E O I N F O > 97

TUTORIAL/POSTGRESQL

1. A TABELA DE E-MAILS
O primeiro passo criar a tabela com os e-mails no PostgreSQL. Abra o pgAdmin, clique no boto SQL e crie a tabela com o comando: CREATE TABLE tb_assinantes ( email varchar(80) NOT NULL, ip_assinatura varchar(15), ip_confirmacao varchar(15), status varchar(10), data_assinatura timestamp, data_confirmacao timestamp, hash varchar(50) )

2. O FORMULRIO
Agora vamos criar o formulrio para o usurio se cadastrar. Para isso,

voc precisa primeiro fazer o download do arquivo newsletter.zip no endereo ftp://ftp.info.abril.com.br/ newsletter.zip e descompact-lo na pasta que o servidor web compartilha com a rede. Ao descompactar, voc ter os arquivos pega_email.php, grava_email.php e confirma_email.php. O pega_email.php basicamente um arquivo HTML com um formulrio para que o usurio entre com seus dados. Esse formulrio acionar nosso script em PHP, que gravar os dados preliminarmente e enviar um email para o provvel novo assinante. No nosso exemplo, o arquivo pega_ email.php recebe o endereo de email e repassa ao script seguinte, o grava_email.php.

Formulrio: HTML aciona script PHP que recebe o e-mail e repassa a outro script

98 < C O L E O I N F O

TUTORIAL/POSTGRESQL

Resultado: e-mails vlidos identificados com endereo IP e status de confirmao

. PEDIDO DE CONFIRMAO Nosso segundo script, o grava_ email.php, salva o endereo de email que est solicitando a assinatura da newsletter e tambm grava a data e o nmero IP usado na conexo. Caso haja algum fazendo o cadastramento indevido do usurio e este queira descobrir quem foi, esses dados sero de grande valia. importante lembrar que nesta fase do processo o status do assinante gravado como INATIVO. Enquanto permanecer assim, ele no deve ser importunado por nenhum outro tipo de mensagem que no seja o pedido de confirmao da assinatura. gerado e gravado tambm um cdigo adicional (hash) para identificar o usurio. Quando ele pedir a confirmao, esse cdigo impedir que uma pessoa confirme a assinatura de outra.

Por fim, o programa envia um email com um hyperlink para o nosso prximo script, o confirma_ email.php, para que o assinante confirme sua requisio. Como essa resposta s ser possvel porque a informao chegou ao assinante atravs do endereo de e-mail digitado inicialmente, fica claro que quem quer se inscrever o detentor da conta.

4. ATIVANDO O ASSINANTE
O confirma_email.php, acionado pelo clique do nosso futuro assinante, ir tomar as providncias finais. Primeiro, ele altera o status do assinante de INATIVO para ATIVO. Note que tambm gravamos o nmero IP e a data de confirmao da assinatura. Em caso de haver reclamaes, essas informaes tambm ajudaro a esclarecer dvidas.
C O L E O I N F O > 99

TUTORIAL/ATIVO FIXO

O RAILS FAZ MAIS RPIDO


ACELERE O DESENVOLVIMENTO, CRIANDO UM APLICATIVO DE CONTROLE DE PATRIMNIO COM O RUBY ON RAILS
POR TONI CAVALHEIRO

Aplicativo pronto: sistema de Ativo Fixo disponvel na intranet da empresa

Ruby On Rails vem dando o que falar entre os desenvolvedores para a web. Programadores experientes dizem que essa ferramenta permite acelerar o desenvolvimento em at dez vezes em comparao com linguagens mais tradicionais. Mesmo que haja exagero nessa afirmao, basta trabalhar um

pouco com o Rails para perceber que operaes corriqueiras em bancos de dados podem ser implementadas com incrvel rapidez. O Rails uma biblioteca, baseada na linguagem Ruby, que permite a criao de aplicaes para a web associadas a bancos de dados. Para mostrar como se desenvolve usando o Ruby on Rails, vamos criar um apli-

100 < C O L E O I N F O

TUTORIAL/ATIVO FIXO

cativo simples de gerenciamento de ativo fixo com banco de dados SQLite 3. As instrues so para Windows XP. Mas os programas usados tm tambm verses para Linux.

. INSTALAO DO RUBY Faa o download do instalador do Ruby on Rails no endereo www. info.abril.com.br/download/4357. shtml. Inicie a instalao e mantenha os padres sugeridos pelo programa. Selecione todos os itens opcionais. Mantenha tambm o diretrio padro, que o C:\Ruby. Para testar o software, abra o Prompt de Comando do Windows e digite esse comando (tecle Enter depois de cada comando): ruby v Deve aparecer uma mensagem com a verso do Ruby.

como o MySQL. Baixe o SQLite 3 no endereo www.info.abril.com.br/ download/4358.shtml. Depois de descompactar o arquivo zip, voc ter um programa executvel e uma DLL. Como o SQLite no tem instalador, tudo o que voc tem a fazer copiar esses dois arquivos para o diretrio Windows\System32.

3. RUBY ON RAILS
Agora, vamos instalar o Rails e a biblioteca que faz o acesso ao SQLite 3. O micro deve estar conectado internet para que o instalador faa o download de componentes adicionais. No Prompt de Comando do Windows, digite: gem install rails O passo seguinte instalar o suporte ao SQLite 3. Digite: gem install sqlite3-ruby

Instalao: marque todos os opcionais

. BANCO DE DADOS Vamos prosseguir instalando o SQLite. Esse gerenciador de bancos compacto til para testes e desenvolvimento. Para uso em produo, poderia ser escolhido outro software,

. AMBIENTE DA APLICAO Na hora de criar uma aplicao, preciso separar scripts, logs, configuraes e outros componentes numa estrutura de diretrios. O Rails faz isso de forma automtica. No Prompt de Comando, digite: rails c:\data\web\ativofixo\ Abra o Explorer e navegue at a pasta ativofixo que definimos. Voc ver a estrutura de diretrios criada pelo Rails. O diretrio app o local onde ficaro os arquivos do programa. O script a pasta que contm os arquivos de apoio. Os diretrios helpers e views servem, respectivamente, para armazenar
C O L E O I N F O > 101

TUTORIAL/ATIVO FIXO

Tela inicial: o Ruby instalado e pronto para usar

funes auxiliares e layouts para o site. Folhas de estilos CSS ficam na pasta public\stylesheets.

5. SERVIDOR WEB
O Ruby on Rails inclui um minisservidor web que pode ser usado no desenvolvimento. Para no conflitar com outros servidores que voc possa ter na mquina (como Apache ou IIS), ele vem configurado para funcionar na porta 3000. No Prompt de Comando, digite os seguintes comandos para rod-lo: cd c:\data\web\ativofixo ruby script\server Abra o browser e acesse o seguinte endereo: http://localhost:3000 Voc deve ver uma pgina com o ttulo Welcome Aboard e informaes sobre o Ruby on Rails.

campos e recursos. Essa aplicao usa as quatro operaes bsicas de um banco de dados: consulta, edio, incluso e excluso. A primeira 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);

. ATIVO FIXO Nos passos anteriores, especificamos uma aplicao chamada Ativo Fixo. uma verso simples do sistema de controle patrimonial de uma empresa. Depois que ela estiver pronta, voc pode adicionar outros
102 < C O L E O I N F O

. ACESSO AOS DADOS O prximo passo configurar o Rails para acessar esse banco de dados. No diretrio ativofixo, encontre a pasta config e, dentro dela, o arquivo database.yml. Abra-o num editor de textos e modifique suas configuraes 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 no ter utilidade em nosso tutorial. Na verdade, s usaremos o ambiente development,

TUTORIAL/ATIVO FIXO

uma vez que os dois outros bancos no foram criados ainda. Mas bom deixar o arquivo correto.

. MODELO E CONTROLADOR No Ruby on Rails, cada tabela descrita por um modelo. Vamos criar um modelo chamado af (iniciais de Ativo Fixo) que refletir a tabela que acabamos de definir. No Prompt de Comando do Windows, digite: ruby script\generate model af Em seguida, vamos criar um controlador para o modelo af. O controlador o mdulo bsico dos aplicativos do Rails. Este o comando: ruby script\generate controller afs Note que nosso modelo chamase af, mas o controlador chamado afs. Isso ocorre porque o Ruby on Rails trabalha com a lngua inglesa, colocando as palavras no plural. Se voc criar um modelo Person, por exemplo, ele ir procurar por uma tabela chamada People, plural de Person em ingls. . SCAFFOLDING O ltimo passo antes de colocar sua aplicao para funcionar associar um recurso chamado scaffold ao controlador. Ele adiciona funes de visualizao, edio, incluso e excluso de dados. Localize o arquivo afs_controller.rd. Abra-o num editor de textos e adicione o comando scaffold, assim: class AfsController < ApplicationController

scaffold :af end Vamos reiniciar o servidor. Clique no Prompt de Comando para mant-lo em foco no Windows e tecle Ctrl+C para parar o servidor. Em seguida, reinicie-o com o comando: ruby script\server Abra o navegador e v a este endereo: http://localhost:3000 Voc ver uma aplicao com recursos de consulta, edio, excluso e incluso. Note que usamos uma nica linha de cdigo (scaffold :af) para cri-la.

. PERSONALIZAO Vejamos como personalizar o layout da aplicao. Esse processo feito por meio de dois arquivos rhtml, um de visualizao (conhecido por view) e outro de layout. Alm disso, preciso fazer algumas modificaes no controlador principal para carregar os dados para uma varivel temporria. Vamos comear personalizando o controlador. Abra o arquivo afs num editor de texto e modifique-o para que fique assim:

10

Arquivo list.rhtml: cdigo modificado no editor de texto

C O L E O I N F O > 103

TUTORIAL/ATIVO FIXO

class AfsController < ApplicationController scaffold :af layout default def list @entries = Af.find_all nil, descricao end end

11. LAYOUT
Agora, na pasta app\views\layouts, crie um arquivo de texto chamado default.rhtml. Esse arquivo deve ter o seguinte contedo: <html> <head> <title>Ativo Fixo</title> </head> <body> <h1>Lista de patrimnio</h1> <%= @content_for_layout %> </body> </html>

12. VISUALIZAO
Vamos, agora, criar a visualizao, o cdigo-fonte que ir controlar a exibio dos dados. aqui que definimos a aparncia do site. V para a pasta \app\views\afs\ e crie um ar-

Aplicativo no ar: ainda sem a formatao definitiva

quivo chamado list.rhtml. Ele recebe esse nome de acordo com a definio no controlador, logo depois do comando def. Confira o cdigo: <table border=1 cellpadding =4 cellspacing="0 width =90%> <tr> <th>Descrio</th> <th>Valor de aquisio</th> <th>Tempo de depreciao</th> <th colspan=3>Aes</th> </tr> <% @entries.each do |entry| %> <tr> <td><%= entry.descricao %></td> <td><%= entry.valor_aquisicao %></td> <td><%= entry.tempo_depreciacao %></td> <td><%= link_to Exibir, :action => show, :id => entry.id %></td> <td><%= link_to Editar, :action => edit, :id => entry.id %></td> <td><%= link_to Excluir, :action => destroy, :id => entry.id %></td> </tr> <% end %> </table <p><%= link_to Novo, :action => new FF %></p> Isso tudo o que voc precisa fazer para adicionar uma exibio ao aplicativo. Ainda possvel incluir mais campos e aplicar uma formatao mais elaborada pgina, da mesma forma como fizemos na tela inicial deste tutorial.

104 < C O L E O I N F O

TUTORIAL/FIREBIRD

CONTROLE OS SEUS LIVROS


PROGRAMAS EM PHP DISCRIMINAM O STATUS DO TTULO, SE EMPRESTADO, DISPONVEL OU ENCOMENDADO
POR HELIO SILVA

uantas vezes voc emprestou um livro e se esqueceu para quem? E quantas vezes o amigo que tomou o livro emprestado se lembrou de devolver? Nesses casos em que a memria no passa de uma vaga lembrana, o jeito montar um banco de dados de sua biblioteca, com direito ao controle dos ttulos emprestados. o que faremos neste tutorial. Para acompanh-lo, voc 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 IBExpert (www.info.abril.com.br/down load/4047.shtml) como ferramen-

ta de administrao. Com apenas dois programas em PHP faremos a administrao das informaes.

1. O BANCO
Instalados os programas necessrios, abra o IBExpert e acione o menu Database > Create Database. Crie o banco de dados com o nome Biblioteca e clique no boto OK. Ser necessrio registrar o banco no IBExpert. Assim, no campo database alias, digite o nome Biblioteca e, em seguida, acione no boto Register. (Clique no cone do lado esquerdo da tela, onde aparece o nome de nosso banco de dados Biblioteca. Com o boto direito do mouse, escolha a opo Conect to database.

2. A TABELA
Agora que estamos conectados ao novo banco de dados, vamos criar a tabela do sistema. Tecle F12 paBiblioteca: crie o banco de dados com o IBExpert

C O L E O I N F O > 105

TUTORIAL/FIREBIRD

Gatilho: gerador automtico do cdigo de cada um dos livros

ra que se abra uma tela para a criao de consultas SQL. Dentro da tela de consulta, criaremos o banco de dados com o comando: CREATE TABLE TB_LIVROS ( CODIGO INTEGER NOT NULL, TITULO VARCHAR(50) NOT NULL, STATUS VARCHAR(20) NOT NULL, ASSOCIADO VARCHAR(40) CHARACTER SET NONE COLLATE NONE); Logo depois, determinaremos que o cdigo do livro ser a chave primria de acesso ao banco com o seguinte comando: ALTER TABLE TB_LIVROS ADD CONSTRAINT PK_TB_LIVROS PRIMARY KEY (CODIGO);

LIVROS ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.CODIGO IS NULL) THEN NEW.CODIGO = GEN_ID(TB_ LIVROS_CODIGO_GEN, 1); END Este gatilho ser acionado automaticamente a cada incluso para gerar o cdigo do livro.

4. SCRIPT EM PHP
Faa o download do arquivo biblioteca.zip no endereo ftp://ftp.info. abril.com.br/biblioteca.zip . Descompacte-o na pasta onde opera o seu servidor web e ter os arquivos index.php e processa.php. Nosso primeiro programa, o index.php, lista a quantidade de livros disponveis e em que status se encontram (Emprestado, Disponvel ou Encomendado). O script faz tambm uma pesquisa no banco de dados e monta uma lista do tipo combo com todos os livros disponveis. Por fim, apresenta uma srie de cinco botes para que voc possa escolher entre listar os livros disponveis e seu status, Incluir e Excluir livros. As outras duas opes so de registrar emprstimos e/ou devolues.

. O CDIGO DOS LIVROS Agora vamos aproveitar um dos recursos do Firebird e transportar para o banco a responsabilidade de criar sequencialmente o cdigo dos livros na medida em que forem inseridos. Ainda em nossa tela de consulta vamos inserir o seguinte comando: CREATE TRIGGER AI_TB_ LIVROS_ CODIGO FOR TB_
106 < C O L E O I N F O

TUTORIAL/FIREBIRD

. REQUISIES DO USURIO Nosso segundo programa, o processa.php, que far o trabalho todo. Ele um pouco extenso, mas no complexo. Em princpio, o segundo programa se caracteriza por uma rvore de deciso usando if e elseif, sendo que cada ao solicitada pelo usurio vai determinar um comportamento diferente. A primeira providncia do programa para atender qualquer que seja a necessidade do usurio abrir uma conexo com o banco de dados. Em seguida, ele registra qual a operao o usurio solicitou, e, por conta disso, determina se ele ter que ser executado mais uma vez ou se deve retornar ao index.php. O programa toma essa deciso ao definir qual ao deve ser acionada pelo formulrio, se executa o index.php ou ele mesmo (processa.php) com um novo parmetro de operao. A primeira ao do programa listar. Essa ao monta uma tabela com todos os livros do banco ordenados pelo ttulo. Quando acionado pelo boto Incluir do index.php, a ao desse programa abrir uma tela de forResultado: controle dos livros emprestados e dos disponveis

mulrio para que seja digitado o nome do novo livro do acervo e montar um combo para que seja definido qual o seu status (Disponvel, Emprestado, Encomendado). Quando o boto Excluir acionado h um livro selecionado no combo do index.php, o programa reage excluindo aquele ttulo selecionado. Para a operao de emprstimo, o programa abre um formulrio pedindo o nome do associado que est emprestando o livro. Na seqncia, faz a atualizao das informaes trocando o status do livro para Emprestado e registrando o nome do associado que retirou o livro. A operao final a devoluo do livro que, quando acionada, altera o status do livro para Disponvel e elimina o nome do associado. evidente que outras implementaes e validaes so necessrias, mas este exemplo j permite vislumbrar um pouco da eficincia do Firebird usado em combinao com o PHP.

C O L E O I N F O > 107

CERTIFICAO

ESPECIALISTAS EM DADOS
CONHEA AS CERTIFICAES IBM, ORACLE E MICROSOFT, AINDA AS MAIS VALORIZADAS

Laboratrio na IBM: treinamento presencial certifica especialistas em DB2

volume de dados gerado pelas empresas cresce quase que descontroladamente. Bom para os profissionais especializados em gerenciamento de bancos de dados. Quem contrata? As grandes corporaes. Elas s confiam o que tm de mais estratgico a um profissional certificado, especialmente para a funo de administrador (DBA). Quais os principais aspectos a considerar ao investir nesse tipo de for-

mao? Primeiro, a experincia pesa mais na hora da contratao. Segundo, nem sempre a certificao garante um aumento de salrio. Por isso, a escolha da soluo em banco de dados na qual vai se certificar tem de ser inteligente. Os especialistas recomendam tentar descobrir qual a tecnologia adotada pela empresa em que se quer trabalhar. As certificaes mais valorizadas continuam sendo as das lderes de mercado IBM, Oracle e Microsoft.
OMAR PAIXO

108 < C O L E O I N F O

CERTIFICAO/ORACLE

TODO MUNDO QUER UM OCP


CONQUISTAR O MAIS IMPORTANTE TTULO DA ORACLE PODE RENDER BOAS PROPOSTAS DE EMPREGO
POR ANA LCIA MOURA F

e acordo com levantamento do instituto de pesquisas Gartner, a Oracle detm a segunda posio no ranking de sistemas de gerenciamento de bancos de dados relacionais. Com 33% de participao (em receitas com vendas de licenas), a Oracle s perde espao para a IBM (36%) e deixa a Microsoft (19%) para trs. Esses nmeros ajudam a posicionar as certificaes da empresa entre as mais importantes do mercado. So as mais procuradas, diz Edson Aguilera, coordenador dos cursos de ps-graduao em Informtica da Universidade Santo Amaro (Unisa), de So Paulo. As empresas j no querem profissionais com intimidade apenas com uma plataforma tecnolgica. De 2003 para c, busca-se mais o especialista que, alm da implantao, entende todo o funcionamento do banco de dados, tornando-o simples, seguro e alinhado com as estratgias da empresa, diz Aguilera. Para os indecisos quanto marca, a dica relacionar as empresas ou segmentos nos quais se quer tra-

balhar e ver qual tecnologia adotam. Se no der, melhor comear pela Oracle, porque o produto robusto e tem uma estratgia de desenvolvimento que conta bastante hoje em dia, diz. APOSTA CERTA Foi o que fez Valter Jos de Aquino, matemtico de 42 anos, 20 de carreira. Em 2003, correu atrs da certificao em Oracle 8i. Encomendei livros estrangeiros e estudei sozinho, diz. No 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 alumnio Alcoa. Outro que decidiu apostar todas as fichas na Oracle foi o potiguar Josivan da Costa Santos, de 36 anos, DBA da prestadora de servios e fbrica de software CPM. A empresa pagou pelos exames e Santos conquistou os ttulos nas verses 8i e 9i. Com isso, ele passou a responder pela conta do Bradesco. Muitos DBAs no merecem o ttulo. No
C O L E O I N F O > 109

CERTIFICAES/ORACLE

basta fazer o curso. preciso entender o negcio da empresa, diz. O Brasil dispe atualmente de 802 profissionais certificados em bancos de dados Oracle. Levantamento feito pela empresa com seus parceiros indica que cerca de 7 mil profissionais so treinados anualmente nessa tecnologia. COMO CHEGAR L O roteiro de certificao em bancos de dados Oracle comea com a OCA (Oracle Certified Associates). O treinamento para se tornar um OCA em Oracle 9i custa 5 014,58 reais. Para a verso 10g, mais recente, que a empresa tem interesse em promover, o valor cai para 2 507,29 reais. A vantagem do ttulo OCA poder ser conquistado na metade do tempo do nvel seguinte, que o Oracle Certified Professional (OCP). Oferecido a desenvolvedores e DBAs, o OCP a carreira mais importante da Oracle. H ainda um terceiro ttulo, o Oracle Certified Master (COM). Destina-se a especialistas e gurus em produtos Oracle, diz Fernando Silva, diretor da Oracle University. Para ser um OCP, o profissional deve se submeter a quatro cursos ao preo total de 5 mil reais (Oracle 10g) a 10 mil reais (9i). Mas quem j tem experincia pode dispensar essa etapa e ir direto para os testes, diz Bernadete Sabino, gerente de treinamento da Apply Solutions, um centro oficial de trei110 < C O L E O I N F O

namento de Recife (PE). Ela ressalta um detalhe importante: quem fizer questo de receber o canudo oficial em ingls, usar a logomarca Oracle e constar das listas oficiais das certificadoras, tem de freqentar pelo menos um curso da grade. A Oracle mantm nas principais capitais do pas centros de treinamento nos quais o aluno participa dos cursos presenciais. A fornecedora tambm coloca disposio dos treinandos um CD de auto-estudo com o mesmo contedo do curso presencial. Os exames de certificao so realizados pela Prometric e tm validade internacional. Outra forma de adquirir a certificao fazer faculdade em instituies que mantm convnio com a Oracle.

OCP ORACLE DBA CERTIFIED PROFESSIONAL


PARA QUEM Analistas de sistemas, gerentes e profissionais de TI que desejam iniciar ou incrementar a carreira como administrador de bancos de dados (DBA) 4 cursos de 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)

TREINAMENTO NMERO DE EXAMES CUSTO DO TREINAMENTO COMPLETO (R$) CUSTO DOS EXAMES (R$) (1)

(1) Valor em dlar convertido pela taxa de 2,142 reais por dlar.

CERTIFICAO/IBM

DOMINE O DB2 EM SEIS ETAPAS


AT SE TORNAR ESPECIALISTA NO BANCO DE DADOS DA IBM, O PROFISSIONAL PASSA POR VRIAS PROVAS
POR ANA LCIA MOURA F

rande estrela dos bancos de dados da IBM o DB2 Universal Database. Sozinho, o produto responde por 34% de tudo o que vendido no mundo em termos de licenas para sistemas de gerenciamento de bancos de dados relacionais. A fatia da IBM a que mais cresce, segundo a consultoria Gartner. Luciano Dallolio, gerente tcnico de gerenciamento de informao da IBM, diz que isso estimula a contratao de profissionais. Empresas como a Microsiga conquistaram grande nmero de contratos que envolvem a compra de centenas de licenas para bancos de dados. Para tocar os projetos, elas bancam a certificao de um nmero considervel de profissionais, diz Dallolio. Para muita gente, ter ajuda da empresa que contrata o nico jeito de conquistar uma certificao IBM. No faz sentido investir 3 mil, 4 mil reais se no houver como recuperar o investimento ou praticar o que se aprendeu, diz Dallolio. O paulista Fbio Hasegawa, de 24 anos, consultor da C&C Computa-

o, parceira comercial da IBM, acumula 13 certificaes, trs delas da carreira de DB2. Algumas eu acabei pagando do meu prprio bolso, diz. Hasegawa tem orgulho dessa coleo. Cada uma equivale a uma faculdade de primeira linha. Formado em cincias da computao pela Fiap, Hasegawa obteve apoio da C&C para comprar livros e realizar os testes. Atualmente, ele ostenta o ttulo de Certified Advanced Database Administrator, o nvel mais alto da carreira de DBA da IBM. O canudo o habilita, entre outras coisas, a atuar na recuperao de desastres e administrao de ambiente VLDB (DataWarehouse-Multi Partitioning). Para quem vai comear, Hasegawa sugere estudar por conta. Se tivesse feito os cursos recomendados para as trs certificaes IBM que tenho, teria gasto, por baixo, cerca de 13 mil reais, diz. UMA CERTIFICAO, SEIS NVEIS A certificao oferecida pela IBM a especialistas de DB2 composta por seis carreiras, conhecidas pelas nuC O L E O I N F O > 111

CERTIFICAO/IBM

meraes dos seus respectivos exames: 700, 701, 702, 703, 704 e 705. O avano progressivo. A carreira 700 pr-requisito para os demais nveis, (menos a 705), e forma o Certified Database Associate (CDA). Para ostentar esse ttulo, o candidato deve antes passar por dois cursos, a um custo mdio de 1 300 reais cada, fora o teste (80 dlares). Com a certificao 700 em mos, o candidato escolhe se quer ser administrador ou desenvolvedor. Se a opo escolhida for a carreira de administrador de bancos de dados em plataformas Unix, Linux ou Windows, a certificao indicada a 701. Nesse caso, o candidato, alm de j ter o ttulo CDA (700), tambm deve freqentar um curso de quatro dias sobre administrao de bancos de dados Unix. O custo total do treinamento indicado, j includo o valor de exame, fica em torno de 2 630 reais. Se aprovado, o candidato pode exibir em seu carto de visitas o ttulo Certified Database Administrator UDB. A certificao 702 destinada a quem quer dominar bancos de dados na plataforma mainframe, ainda muito usada no setor bancrio. o nvel mais caro da carreira. Para ser Certified Database Administrator ZOS, preciso fazer os quatro cursos (cinco dias cada), alm de um exame, e investir 11 mil reais. O nvel seguinte, 703, para quem quer ser desenvolvedor de aplicaes para DB2. O ttulo Certified
112 < C O L E O I N F O

Application Developer, e requer trs cursos (de sete dias) e um exame, cujo custo soma, aproximadamente, 5 620 reais. Nos cursos, ele aprende sobre programao bsica, avanada e em Java. O profissional que conquista as certificaes 700 e 701 pode fazer o teste 704. Para essa carreira, denominada Certified Advanced Database Administrator, a IBM tambm oferece cursos para recuperao de desastres e administrao de ambiente VLDB (DataWarehouse-Multi Partitioning). Por fim, o teste 705 o passaporte para quem quer atuar em Business Intelligence. O ttulo o Certified Solution Designer DB2 BI, pelo qual o profissional paga 6 mil reais. So 12 dias de curso. Um suave alento: todos os treinamentos da IBM so complementados com tutoriais gratuitos.

DB2 UDB CERTIFIED DATABASE ADMINISTRATOR


PARA QUEM Analistas de sistemas, gerentes e profissional de TI que queiram iniciar ou incrementar carreira como administrador de bancos de dados (DBA) Depende da carreira 1 (cada carreira) De 2 900 a 11 000 (depende da carreira) 172 (cada exame)(1)

TREINAMENTO: NMERO DE EXAMES CUSTO DO TREINAMENTO COMPLETO (R$) CUSTO DOS EXAMES (R$)

(1) Valor em dlar convertido pela taxa de 2,142 reais por dlar.

CERTIFICAO/MICROSOFT

VOC VAI TER DE VENCER QUATRO PROVAS PARA SER ESPECIALISTA NO BANCO DE DADOS DA MICROSOFT
POR ANA LCIA MOURA F

CRAQUES EM SQL SERVER

MCDBA (Microsoft Certified Database Administrator), certificao de bancos de dados da Microsoft, chegou ao Brasil em 1998, no auge da demanda por administradores qualificados. uma das favoritas no programa de especializaes da Microsoft, que j titulou mais de 21 mil profissionais de TI brasileiros. A oferta de vagas para esses profissionais cresce porque muitas empresas que no dependiam de uma base de dados estruturados agora migram para SQL Server, e precisam de pessoas que se encaixem no trinmio confiabilidade, experincia e certificao, diz Edson Aguilera, coordenador dos cursos de ps-graduao em informtica da Universidade Santo Amaro (Unisa), em So Paulo. Para quem j escolheu se especializar em programas do mundo Microsoft, Aguilera sugere identificar segmentos que costumam adotar a tecnologia. Na rea de autopeas, por exemplo, prevalece a plataforma Microsoft.

MAPA DA MINA Em tese, quem carrega um canudo MCDBA est preparado para projetar, fsica e logicamente, bancos de dados SQL Server 7.0, que rodam sistemas de datawarehouse, comrcio eletrnico e aplicaes de computao mvel e corporativas. Para o profissional tentar uma certificao MCDBA, ele deve estar preparado com treinamentos presenciais, cursos online e livros, diz Adriana Cantamessa, gerente de certificaes da Micro-

MCDBA MICROSOFT CERTIFIED DATABASE ADMINISTRATOR


PARA QUEM 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)

TREINAMENTO NMERO DE EXAMES CUSTO DO TREINAMENTO COMPLETO (R$) CUSTO DOS EXAMES (R$)

(1) Valor em dlar convertido pela taxa de 2,142 reais por dlar.

C O L E O I N F O > 113

CERTIFICAES/MICROSOFT

soft. Os cursos presenciais para a certificao em SQL Server 2005 estaro disponveis a partir de maro de 2006. Os candidatos ao MCDBA devem ser aprovados em trs exames obrigatrios e um eletivo. A parte obrigatria consiste de um teste sobre administrao de bancos de dados, um outro sobre projetos e um terceiro teste a ser escolhido de uma grade sobre sistemas de rede (veja no quadro nesta pgina). OPES DO CANDIDATO Nos dois primeiros exames obrigatrios, o candidato pode optar pela especializao em SQL Server 7.0 ou SQL Server 2000 Enterprise Edition, dependendo da experincia ou objetivo. No terceiro exame obrigatrio, que preenche o requisito de sistemas de redes, o profissional deve escolher entre o Windows 2000 e o Windows Server 2003. Um detalhe importante que o ttulo obtido em SQL Server 2000 continua valendo mesmo se o seu detentor no fizer o teste para a verso 2003. Para finalmente ter direito credencial de MCDBA, o profissional precisa realizar um quarto exame, desta vez eletivo. So 12 opes de testes, cada um com uma mdia de trs cursos recomendados. Pelo menos a metade envolve desenvolvimento e implementao de aplicaes, de componentes de
114 < C O L E O I N F O

servidor e de servios baseados nas tecnologias Visual Basic.Net, Visual Studio .Net, Visual C# .Net e .Net Framework. A outra metade abrange desde desenvolvimento e implementao de aplicaes distribudas com Visual Basic 6.0, C++ 6.0 e FoxPro 6.0 at implementao 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. No so obrigatrios, mas reduzem riscos de reprovao. Para quem anda com o dinheiro curto, a dica acessar o site da Microsoft e fazer o download do kit de auto-estudo.

OPES DE EXAMES OBRIGATRIOS

> administrao de SQL Server 7.0 instalao, configurao e > > >

administrao de SQL Server 2000 Enterprise Edition projeto e implementao de banco de dados com SQL Server 7.0 gerenciamento e manuteno de ambiente Microsoft Windows Server

Вам также может понравиться