Maravilha para quem é da área de confecção/ design de moda.
Quer a aprovação no vestibular? não deixe de baixar esse ótimo guia do enemDescrição completa
Descrição completa
apostila de banco de dados IIDescrição completa
modelagem
Descrição completa
Apostila Banco de Dados ESABDescrição completa
Modelagem de Dados - Normalização, conceitos e definições de TransaçõesFull description
Descrição completa
Formação Cientista de DadosDescrição completa
Apostila Banco de Dados UECEDescrição completa
Apostila de Banco de DadosDescrição completa
Descrição completa
CONTEÚDO
BANCO DE DADOS
08
Evolução: o banco vai do mainframe ao cluster
31
Linguagens: SQL é a língua oficial
38
Teste: reviramos o DB2 Express-C, da IBM
BANCO DE DADOS 08 > A aventura dos dados 15 > Sabe o que é tupla? 24 > Planeje bem 31
o seu banco > O banco fala SQLquês
TESTES 34 > Um SQL Server 36 38 42 47 50 54 57
fácil de usar > Oracle em versão light >DB2 grátis com tudo dentro > O MySQL ganha músculos > Missão crítica é para Postgre > Firebird poupa a máquina > O Access entra em reforma > Administração é tudo
CONTEÚDO
BANCO DE DADOS
08
Evolução: o banco vai do mainframe ao cluster
31
Linguagens: SQL é a língua oficial
38
Teste: reviramos o DB2 Express-C, da IBM
BANCO DE DADOS 08 > A aventura dos dados 15 > Sabe o que é tupla? 24 > Planeje bem 31
o seu banco > O banco fala SQLquês
TESTES 34 > Um SQL Server 36 38 42 47 50 54 57
fácil de usar > Oracle em versão light >DB2 grátis com tudo dentro > O MySQL ganha músculos > Missão crítica é para Postgre > Firebird poupa a máquina > O Access entra em reforma > Administração é tudo
CONTEÚDO
TUTORIAIS 62 > Tabelas sem mistério 71 > Relatório feito com views 75 > Crie pesquisas com critérios 78 > O phpMyAdmin doma o MySQL 83 > Atualização é com o Ajax 86 > Pesquise bem no Access 89 > O Exif vai para o banco 97 > E-mail falso não entra 100>> O Rails faz mais rápido 100 105 > Controle os seus livros
89
Tutorial: dados Exif das fotos para o SQL Express
108
Certificação: laboratório para especialistas
CERTIFICAÇÕES 108 > Especialistas em dados mund o 109 > Todo mundo 111 113
quer um OCP > Domine o DB2 em seis etapas > Craques em SQL Server
42
Teste: o MySQL 5.0 vem reforçado
EQUIPE EDIÇÃO Lucia Reggiani EDITORA DE ARTE Iara Spina CAPA Crystian Cruz (arte) e Cellus (ilustração) COLABORADORES Carlos Chernij, Fred Carbonare, Helio Silva, Nivaldo Foresti (texto) e Rita Del Monaco (revisão)
Diretor Secretário Editorial e de Relações Institucionais: Sidnei Basile Vice-Presidente Comercial: Deborah Wright Diretora de Publicidade Corporativa: Thais Chede Soares B. Barreto
Diretor-Geral: Jairo Mendes Leal Diretor de Núcleo: Alexandre Caldini
Diretora de Redação: Sandra Carvalho Redatora-chefe: Débora Fortes Diretor de Arte: Crystian Cruz Editores Seniores: Carlos Machado, Machado, Lucia Reggiani Reggiani e Maurício Grego Editores: Airton Lopes,André Cardozo e Eric Costa Repórter: Silvia Balieiro Estagiários: Danilo Gregório e Paulo de Alencar Revisora: Marta Magnani Editor de Arte: Jefferson Barbato Designers: Catia Herreiro e Wagner Rodrigues Colaborador: Dagomir Marquezi Infolab: Osmar Lazarini (consultor de sistemas) Colaborador: Eduardo Kalnaitis Estagiários: Bruno Roberti, Celso Rodrigues e Valdir Fumene Junior Info Online: Cristian Medeiros e Renata Verdasca (webmasteres) Atendimento ao leitor: Virgílio Sousa www.info.abril.com.br Grassetti Serviços Editoriais: Wagner Barreira Apoio Editorial: Beatriz de Cássia Mendes, Carlos Grassetti Depto. de Documentação e Abril Press: Grace de Souza Correspodente Internacional: Ruth de Aquino
PUBLICIDADE CENTRALIZADA Ortiz, Sandra Sampaio,Sérgio R. Amaral Diretores: Mariane Ortiz, Pinho, Letícia Di Lallo, o, Maria Luiza Marot, Marot, Marcelo Cavalheiro Cavalheiro,, Marcelo Dória, a, Executivos de Negócio: Eliane Pinho, Nilo Bastos, Bastos, Pedro Bonaldi, Bonaldi, Robson Monte, Monte, Rodrigo Toledo Toledo,, Sueli Cozza,Vlamir Aderaldo,Wlamir Aderaldo,Wlamir Lino Renato Simões Publicidade Regional Diretor Jacques Baisi Ricardo Publicidade Rio de Janeiro: Diretor Paulo Renato Gerente de Publicidade núcleo Tecnologia: Marcos Peregrina Gomez Executivos de Negócio: Andréia Balsi, Emiliano Hansenn, Hansenn, Marcello Almeida Almeida e Renata Mioli MARKETING E CIRCULAÇÃO: Gerente de Produto: Ricardo Fernandes, Coordenadora de eventos: Carol Fioresi, Estágiario de marketing: Maurício Simões Rodrigues Gerente de Circulação Avulsas: Maria Helena Couto Gerente de Circulação Assinaturas: Euvaldo Nadir Lima Junior Planejamento, Controle e Operações: Diretor: Auro Iasi Gerente: Fábio Luis dos Santos Analista: Tales Bombicini Processos: Ricardo Carvalho ASSINATURAS: Diretora de Operações de Atendimento ao Cons umidor: Ana Dávalos Diretor de Vendas: Fernando Costa www.publiabril.com.br,Classificados com.br,Classificados tel.0800-7012066,Grande São Paulo tel. 3037-2700 ESCRITÓRIOS E REPRESENTANTES DE PUBLIPublicidade São Paulo www.publiabril. CIDADE NO BRASIL: Central-SP tel.(11) 3037-6564 Bauru Gnottos Mídia Representações Comerciais , tel. (14) 3227-0378,e-mail: [email protected] Representações Ltda, tel (91) 3272-8195, e-mail: tania.alves@ [email protected]. veloxmail.com.br br Belo Horizonte tel. (31) 3282-0630,fax (31) 3282-0632 3282-0632 Belém SRS Propaganda e Representações Representações,tel. (47) 3329-3820,fax (47) 3329-6191 Brasília Escritório:tels. (61) 3315-7554/55/56/57,fax 3315-7554/55/56/57,fax (61) 3315-7558;Representante: Blumenau M. Marchi Representações,tel. Carvalhaw Marketing Marketing Ltda.,tels (61) 3426-7342/ 3223-0736/ 3225-2946/ 3223-7778, fax (61) 3321-1943,e-mail: [email protected] Campinas CZ Press Com. Com. e Representações, telefax (19) 3233-7175, e-mail: [email protected] Campo Grande Josimar Promoções Artísticas Ltda.tel. (67) 3382-2139 e-mail: [email protected] Cuiabá Fênix Propaganda Ltda., tels. (65) 9235-7446/ 9235-7446/9602-3419, 9602-3419, e-mail: [email protected][email protected] Curitiba Esc Escritór ritório: io: tel. (41) 325032508000/8030/8040/8050/8080, 8000/8030/8040/8050/ 8080, fax (41) 3252-7110; Representante:Via Mídia Projetos Editoriais Mkt. e Repres. Repres. Ltda., telefax (41) 3234-1224,e-mail: viamidia@via [email protected] Florianópolis Interação Publicidade Publicidade Ltda. tel.(48) 3232-1617, fax (48) 3232-1782, e-mail:fgorgonio@interac e-mail:[email protected]. aoabril.com.br br Fortaleza Midiasolution Repres. e Negoc. em Meios de Comunicação,telefax (85) 3264-3939,e-mail: midiasolution@midias [email protected] olution.net Goiânia Middle West Representações Ltda., tels.(62) 3215-5158, fax (62) 3215-9007,e-mail: publicidade@middle [email protected] west.com.br Joinville Via Mídia Projetos etos Editoriais Mkt.e Repres. Ltda., telefax (47) (47) 3433-2725, e-mail: [email protected] Manaus Paper Comunicações, Comunicações, telefax (92) 3656-7588,e-mail: [email protected]. [email protected] br Maringá Atitude de Comunicação e Representação,telefax (44) 3028-6969,e-mail: [email protected]. [email protected] br Porto Alegre Escritório:tel. (51) 3327-2850,fax (51) 3227-2855;Representante: Print Sul Veículos Veículos de Comunicação cação Ltda., telefax (51) 3328-1344/3823/4954, e-mail: [email protected] ;Multimeios Representações Comerciais, tel.(51) 3328-1271, e-mail: e-mail:[email protected][email protected] Recife MultiRev MultiRevistas istas Publicidad Publicidadee Ltda.,telefax(81) 3327-1597,e-mail:multirevistas 3327-1597,e-mail:[email protected]. @uol.com.br br Ribeirão Preto tel.(16) 3964-5516,fax (16) 632-0660, e-mail:[email protected] Rio de Janeiro pabx:(21) 2546-8282,fax (21) 2546-8253 Salvador AGMN Consultoria Public. e Representação, Representação, tel.(71) 3341-4992/1765/9824/9827, fax: (71) 3341-4996, e-mail:[email protected] Vitória ZMR - Zambra Marketing Marketing Representações, Representações, tel. (27) 3315-6952, e-mail:samuelzambrano@intervip. e-mail:[email protected] com.br Paulo, Veja Rio, Vejas Regionais Negócios: Exame Exame,, Você S/A A Consum Publicações Public ações da Editora Editora Abril: Abril: Veja Veja:: Veja, Veja São Paulo, Consumo/Comp o/Comportamen ortamento: to: Núcleo Forma, Ell Elle, e, Esti Estilo, lo, Man Manequi equim m Núcleo Comportamento: Cla Claudia udia,, Nov Novaa Núcleo Bem-Estar: : Bons Fluidos Fluidos,, Saú Saúde!, de!, Vid Vidaa Simples Simples Consumo: Boa Forma, Placar car,, Pla Playboy yboy,, Qua Quatro tro Roda Rodas, s, Vip Turismo/Tecnologia: Turismo/T ecnologia: Núcleo Turismo: Turismo: Guias Quatro Rodas, National Geographic, Viagem e Turismo Núcleo Homem: : Pla Corporate Cultura/Jovem: Núcleo Jovem: Bizz, Caprich Capricho, o, Flashb Flashback, ack, Mundo Estranho, Estranho, Superin Superinteressa teressante, nte, Supersu Supersurf rf Núcleo Tecnologia: Info,Info Canal, Info Corporate Atividad idades es,, Disn Disney, ey, Recr Recreio eio Núcleo Cultura: : Almanaque Abril, Guia do Estudante Estudante,, Aventuras na História, História, Revista das das Religiões Religiões Núcleo Infantil: Ativ Arquitetura tura e Construção, Casa Claudia, Claudia, Claud Claudia ia Cozinha Núcleo Celebridades: Contigo! Núcleo Casa/Semanais: Núcleo Casa e Construção: Arquite Semanais: Ana Maria, Faça e Venda,Minha Novela,Tititi,Viva! Mais Fundação Victor Civita: Nova Escola Advertising, Inc., 218 Olive Hill Lane,Woodside, Lane,Woodside, INTERNATIONAL ADVERTISING SALES REPRESENTATIVES INTERNATIONAL REPRESENTATIVES Coordinator for International Advertising: Advertising: Global Advertising, California 94062. 94062. UNITED STATES STATES:: CMP Worldwide de Media Networks, Networks, 2800 Campus Drive, Drive, San Mateo,California 94403,tel. (650) 513 4200,fax (650) 513 4482. EUROPE: HZI International,Africa International,Africa House,64-78 House,64-78 Kingsway, Kingsway, London WC2B 6AH,tel. (20) 7242-6346,fax 7242-6346,fax (20) 7404-4376. 7404-4376. JAPAN:IMI Corporation,Matsuoka Bldg.303, 18-25,Naka 1- chome, chome, Kunitachi,Tokyo 186-0004,tel. (03) 3225-6866, 3225-6866, fax (03) 3225-6877. 3225-6877. TAIW TAIWAN: AN: Lewis Int’l nt’l Media Services ces Co. Co. Ltd., Floor 11-14 no 46, Sec 2, 2, Tun Hua South Road,Taipei, tel. (02) 707-5519, 707-5519, fax (02) 709-8348
COLEÇÃO BANCO DE DADOS,edição 27, é uma publicação da Editora Abril S.A. S.A. Distribuída em todo o país pela Dinap S.A. Distribuidoraa Nacional de Publicações Distribuidor Publicações,, São Paulo. IMPRESSA NA DIVISÃO GRÁFICA DA EDITORA ABRIL S.A.
Av. Otaviano Alves de Lima, 4400, CEP 02909-900 - Freguesia do Ó - São Paulo - SP
Presidente do Conselho de Administração: Roberto Civita Presidente Executivo: Maurizio Mauro Vice-Presidentes: Deborah Wright, Eliane Lustosa, Marcio Ogliara, Valter Pasquini www.abril.com.br
RECADO DA REDAÇÃO
DÁ-LHE INFORMAÇÃO! universo do software é grande e abriga mundos muito peculiares, como o dos bancos de dados. De obscuros repositórios dos mainframes, esses programas passaram a estrelas de todo porte, organizando a explosão de informações geradas pela vida digital de pessoas e empresas. Neles, tabelas são mais que colunas e linhas, os dados se agrupam em entidades e se relacionam abertamente, transacionam, disparam gatilhos e administram restrições. Nesse mundinho, o e/AND não soma, diminui. E quem não sabe dessa e outras pegadinhas lógicas, perde tempo fazendo besteira. É aqui que se encaixa este especial. Aos novatos, contamos a história gloriosa dos bancos de dados e destrinchamos seus conceitos. De bandeja, vai um roteiro para escolher o sistema gerenciador, gerencia dor, planej planejar ar e executar o banco da melhor forma pos-
O
sível. Testamos as novíssimas versões 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 tabelas e consu consultas, ltas, os segredos segredos das interfaces de administração e uma porção de tutoriais com os variados bancos. Você vai saber como extrair as informações Exif das fotos digitais para o banco, criar relatórios com views, controlar os livros emprestados, cadastrar e-mails válidos e muito mais. E se a animação chegar ao ponto de devotar a carreira à administração dos bancos de dados, estão aqui os caminhos para as especializações mais valorizadas da áre área. a. Aprovei Aproveite. te. LUCIA REGGIANI EDITORA DE BANCO DE DADOS
(11) 3347.2121 — Grande São Paulo 0800-701-2828 — Demais localidades [email protected]
C OL O L E ÇÃ Ç Ã O I N FO FO > 7
HISTÓRIA
A AVENTURA DOS DADOS DO MAINFRAME À INTERNET, OS BANCOS DE DADOS TÊM MUITO PARA CONTAR POR TAGIL OLIVEIRA RAMOS
A
rmazenar informações organizadas e recuperá-las sem faltar pedaço sempre que necessário. Dita assim, a missão dos ban-
cos de dados parece simples, trivial. Não deixa de ser verdade para as tecnologias atuais, que disfarçam a complexidade do processamento e do gerenciamento de dados com in-
HISTÓRIA
delos de bancos de dados foram desenvolvidos: o de rede (Codasyl) e o hierárquico (IMS). O acesso à base de dados era complicadíssimo, 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 aplicação. A ênfase, nesse caso, estava nos registros a serem processados, e não na estrutura do sistema. Para fazer qualquer modificação, um usuário precisaria conhecer a estrutura física 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
terfaces gráficas e assistentes. Mas, no princípio, lidar com bases de dados era coisa cabeluda, encarada por mainframes. A história dos modernos bancos de dados começa na década de 60, quando os computadores ampliaram a capacidade de armazenamento e se transformaram em possibilidade real para as empresas. Não havia ainda o conceito elaborado de banco de dados — o armazenamento de informação digital baseava-se em modelos de organização do mundo físico. No início, dois mo-
No início dos anos 70, as coisas começam a mudar. O pesquisador da IBM Edgar Frank Codd (1923-2003) propõe o modelo relacional para a base de dados. Mais do que isso, ele introduz uma nova maneira de pensar a informação digital a ser gravada, recuperada e gerenciada, estabelecendo um jeito mais computacional de tratar o relacionamento entre os dados. Esse sistema virou padrão e é usado até hoje. O modelo abstrato de Codd é a primeira abordagem completa para uma base de dados, o resgate das informações, manipulação, integridade lógica, visualização, atualização e gerenciamento. Foi concebido para armazenar registros de da-
HISTÓRIA
dos com estruturas relatiEsse tipo de sistema usa vamente simples e procesQUEL como linguagem de sar transações simples. pesquisa das bases de daA idéia começou a ser dos. O segundo protótipo, desenvolvida por Codd duconhecido como System rante seu doutorado na R, foi desenvolvido pela Universidade de Michigan. IBM em San Jose, CalifórEm sua tese, ele apresennia, e levou ao SQL/DS & tava uma espécie de “auDB2, da própria empresa, Edgar Codd: pai do to-reprodução” feita em seguido por Oracle e HP. modelo relacional programas de computaNesse sistema, é utilizadores. O trabalho foi publicado em da a SEQUEL como linguagem de 1967 no livro Cellular Automata, pu- pesquisa de dados. Originalmente, blicado pela Academic Press. A idéia as aplicações foram desenvolvidas era tão avançada que levou uma dépara os enormes mainframes. cada para ser digerida. AS DOZE REGRAS Pelo menos dois protótipos principais de sistemas relacionais foram O termo “relação” era usado por desenvolvidos entre 1974 e 1977, Codd de maneira estritamente mamostrando aplicações práticas do temática, dentro de uma tabela com que só existia na teoria. linhas e colunas que trabalhavam com propriedades especiais. EmboUm dos protótipos era o Ingres, desenvolvido na Universidade ra isso pareça óbvio atualmente, não Berkeley, que seria seguido pela In- era nada elementar nos anos 70. gres Corporation, Sybase, MS SQL Tanto que Codd sentiu a necessidaServer e Britton-Lee, dentre outras. de de estabelecer as 12 regras de 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 décadas. Em 1990, a lista cresceu para 333 requerimentos. Vistas com os olhos de hoje, as 12 Mapa de relacionamento: a teoria de Codd na prática leis parecem brinca-
HISTÓRIA
deira. A primeira delas, conhecida como “Lei da Informação”, dizia simplesmente que todo dado deve ser apresentado ao usuário na forma de tabela. A segunda, ou “Regra do Acesso Garantido”, exige que dBase III: padrão de banco de dados para PCs nos anos 80 todo dado seja acessível sem ambigüidade e aconselha SURGE O DBASE que cada informação seja descrita A evolução natural dos bancos de por uma combinação de nome da dados passaria pelo estabelecimentabela, chave primária e o nome do to de um padrão não-teórico: o dBacampo. E assim por diante. se, ao ser lançado no final dos anos O mesmo Codd cunharia o nome 70, tornou-se uma referência. Sua OLAP (On-Line Analytical Proces- origem encontra-se em meados dos sing) para descrever uma ampla ca- anos 60. Seu antecessor era um sistegoria de produtos de software que tema chamado Retrieve, vendido petinham as características de acesso la Tymshare Corporation. Naquela época, os computadores só eram aos dados propostas por ele. As 12 Regras de seu padrão foram adotaencontrados em grandes gabinetes, das pela indústria de TI, forçando no ambiente do trabalho. muitas empresas a revisar seus proO Retrieve era usado no Jet Produtos para melhor se adequar aos pulsion Laboratory (JPL), em Pasadena, na Califórnia. Nos anos 60, critérios OLAP de Codd. Em 1976, outro avanço viria das pes- Jeb Long, um programador desse quisas de Peter P. Chen. Ele propõe o laboratório, recebeu a tarefa de esmodelo Entidade-Relaciocrever um programa que namento (ER) para o design desempenhasse as mesde banco de dados, dando mas funções que o Retrieum importante passo para ve. Em 1973, ele se tornou a modelagem de alto nível engenheiro de software e permitindo ao desenvoldo JPL. Ali ele desenvolvedor concentrar-se mais veu um programa de geno uso das informações do renciamento de arquivos que propriamente na estruchamado JPLDIS (Jet ProPeter Chen: novo tura lógica que há por trás pulsion Laboratory Dismodelo de design da tabela. play Information System),
HISTÓRIA
escrito na linguagem ForSpock, do filme Jornada tran para rodar num mainnas Estrelas) e começou frame Univac 1108. a vendê-lo por reembolO JPLDIS foi, assim, a so postal. mãe da linguagem dBase, Mais tarde, Long assoque passou a rodar em miciou-se a Ratliff e traduziu crocomputadores com o aquela versão original do dBase II para rodar no IBM sistema CP/M. Criada por um jovem programador PC. Todo o trabalho foi feido JPL, Wayne Ratliff, seu to em linguagem AsWayne Ratliff: grande sucesso baseavasembly. Jeb Long foi um criador do Vulcan se na simplicidade. Os codos fundadores da empremandos seguiam a lógica das pala- sa Ashton-Tate, ficou conhecido com vras inglesas: use, find, list etc. No um dos gurus do dBase e como resdBase, Ratliff partia de uma idéia ponsável também pelas versões também simples: desenvolver um dBase III e dBase IV. programa de banco de dados para desktop baseado naquele que roda- AS LINGUAGENS va nos mainframes de seu trabalho. Em 1984 surgiu o Clipper, linguagem Fez tudo isso num computador monde programação compatível com o tado em sua casa. dBase III Plus, com desempenho deFoi um grande progresso para a zenas de vezes mais rápido que o época. Não somente o programa dBase original. Até meados da décriava tabelas e guardava dados, cada de 90, o Clipper era o líder do mas tinha a capacidade de criar promercado de linguagens de desengramas ASCII (como arquivos batch volvimento para micros. A partir daí, do DOS), que podiam então exibir as linguagens visuais, criadas para e imprimir as informações requisirodar no ambiente Windows, tadas. Ratliff batizou seu software começam a ganhar terreno. de Vulcan (em homenagem ao Sr. Quando os bancos de dados relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação. O departamento de pesquisa da IBM desenvolveu a linguagem SQL (Structured FoxPro para DOS: gerenciador baseado em dBase Query Language) nos
HISTÓRIA
anos 70. Somente em 1986 o American National Standards Institute (ANSI) publicou o SQL como um padrão. 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: referência em banco de dados corporativo te universal. Por sua vez, o DB2, da IBM, passou a ser o carObject Database Management ro-chefe da empresa nesse segmen- Systems (ODBMS). to, que começa a experimentar exO fenômeno da internet vem sacupressivo crescimento. Ao mesmo tem- dir o ambiente de TI em meados dos po, as redes locais ganham espaço anos 90. Começa-se a exigir de manas empresas, e o DB2 se mantém coneira frenética o acesso de compumo uma das fortes referências em tadores remotos aos dados guardabancos de dados corporativos. dos nos sistemas legados. Na outra ponta, os bancos de dados se adapCHEGAM OS PCS tam para servir às demandas da web Com a entrada dos PCs em cena, as — o que significa acesso às informacompanhias de banco de dados têm ções, de qualquer lugar, via browser. um crescimento notável. Novos noNo final dos anos 90, o intenso inmes dominam o cenário do software, vestimento das empresas na intercomo RIM, RBase 5000, Paradox, net abastece o mercado com centedBase, FoxBase e FoxPro. A transinas de ferramentas para conectar ção para a década de 90 deixa pou- os bancos de dados à web. Crescem cas empresas da geração anterior as ofertas de novos produtos e novas tecnologias. Com o passar do como sobreviventes. O modelo cliente-servidor torna-se a norma para tempo, destacam-se duas áreas báas futuras decisões de negócio, ao sicas: de um lado, as soluções bamesmo tempo em que se verifica o seadas na plataforma Java, da Sun. estabelecimento das ferramentas de Empresas como a própria Sun, além produtividade pessoal, como Excel de IBM e Oracle, têm bancos de dae Access. É também um marco inidos ou ferramentas para desenvolcial para os protótipos dos bancos vimento nessa área. Do outro lado, de dados orientados a objeto, ou estão as empresas que oferecem
HISTÓRIA
banco de dados exigem gerenciadores capazes de dar respostas rápidas à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 disseminação das redes locais, dando suporte ao modelo cliente-servidor. O Oracle 5, dessa época, suportava consultas distribuíAOS TERABYTES das. Em 1988, surgiu a versão 8, com Mas as tendências apontam para suporte ao desenvolvimento oriensistemas de alto nível de armazetado a objeto e aplicações multimínamento (da ordem de terabytes) dia. Em 1999, sai a versão 8i — i de que exigem rapidez e confiabiliinternet. O número atual é 10g, sendade de processamento, manuseio do o g indicativo da capacidade de e análise dos dados. Projetos granfuncionar num grid de servidores. diosos, como o Genoma, apontam O Oracle também foi o primeiro banpara esse tipo de demanda. Ao co de dados comercial a oferecer mesmo tempo, bases de dados uma versão para Linux. geológicos, meteorológicos e esFinalmente, deve-se prestar paciais requerem mais velocidaatenção ao crescimento das platade e segurança. Também se torformas de código aberto, notadanam comuns as aplicações 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 aplicações web. Essa mudança em direção ao software livre pode redefinir o perfil do mercado de banco de dados, em especial na faixa das aplicações médias e pequenas, a curto prazo, mas abarcando as grandes aplicações, 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 específico dos gerenciadores de bancos de dados, os grandes nomes são IBM, Oracle e Microsoft. Com a expansão da conectividade, os bancos de dados estendem as possibilidades de acesso até aos PDAs.
14 < C OL EÇ ÃO I NF 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, endereço, número da linha, data de aniversário e e-mail, cada dado anotado num espaço especial. Quando precisamos ligar para algum contato, vamos à letra inicial do nome e buscamos o número do telefone. Essa agendinha quase banal expressa
T
bem o que é um banco de dados — um armazém de informações relevantes, organizadas de maneira coerente e lógica, que precisam ser recuperadas com freqüência. 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, começando pelo próprio.
Sistema gerenciador: coleção de programas que mantêm as estruturas do banco C OL E ÇÃ O I NF O > 15
CONCEITOS
acesso, redundância e integridade, o compartilhamento de dados e o mecanismo de cópias de segurança. MODELAGEM DE DADOS
Interface DB2:
administração gráfica
BANCO DE DADOS
Defini-lo como uma ou mais tabelas de dados relacionadas ou não é possível. Mas podemos acrescentar à lista de componentes os índices, visões (views), procedimentos (procedures), funções, gatilhos (triggers) etc. Tudo depende do tipo de banco de dados e do que se quer fazer com ele. Partindo-se desse princípio, podem ser considerados banco de dados os arquivos DBF que foram muito populares na década de 80 com a linguagem Clipper, um arquivo MDB do MS Access ou mesmo arquivos DAT, proprietários de linguagens de terceira geração como Pascal e Cobol. SISTEMA GERENCIADOR
É uma coleção de programas responsáveis pela manutenção 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 têm como características principais os controles de
Processo pelo qual trabalham-se os dados de uma empresa ou sistema para se obter estruturas de armazenamento estáveis. O processo de análise pode se dar por meio da criação do Modelo de Entidade X Relacionamento ou pela Normalização 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
Modelo: entidade x relacionamento
Modelo que contém as entidades de um sistema e o relacionamento entre elas. Deve ser entendido como uma representação da realidade. Como sempre é possível modificar a realidade de um sistema, deve ser prevista a evolução do modelo. ENTIDADE
Entende-se como um grupo de coisas semelhantes. Essas coisas podem ter uma existência física (pessoa, carro, imóvel), ser um documento (no-
CONCEITOS
Entidade: grupo
de coisas semelhantes
ta fiscal, pedido de compra, ordem de serviço), um local (armazém, sede, filial) ou qualquer outro objeto do mundo real. Cada entidade deve possuir diversas instâncias do objeto que representa. Vamos exemplificar com os automóveis. A entidade é o grupo carro. A instância é o objeto Honda Civic, Peugeot 206, VW Gol. Quando se transpõe a entidade para um modelo físico, tem-se a tabela (no modelo relacional) ou a classe (no modelo orientado a objeto). Uma entidade é representada por um retângulo com o respectivo nome. ATRIBUTO
Qualificador lógico de um objeto, serve para descrever ou caracterizar os elementos de uma entidade. Cada atributo deve conter apenas uma característica do objeto. Esse ponto é importante para não confundirmos atributo com entidade. Um objeto deve ter algumas características específicas. Cada uma delas será um atributo do objeto. O inverso é também verdadeiro: um atributo não pode ter subdivisões. Se utilizar o exemplo da entidade carro, podemos ter atributos como nome, montadora, modelo etc. Quando se transpõe para o modelo físico, os atributos se transformam em colunas ou campos no modelo re-
lacional e em atributos ou propriedades no modelo orientado a objetos. Os atributos são colocados dentro do retângulo que representa a entidade e abaixo do nome da própria. TUPLA
Nada mais é do que o conjunto de características 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 instância 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 ocorrência 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 informações relevantes dessa pessoa, como nome, peso, altura, data de nascimento, documento de identificação, cor dos olhos, cor dos ca-
Tabela:
estrutura com linhas e colunas
CONCEITOS
Chaves: qualificadores das entidades
belos etc. A idéia central é que as características do objeto permitam identificar uma única pessoa em cada linha da tabela. CHAVE
Um ou mais atributos que permitem identificar uma única ocorrência na entidade. É um qualificador único. No modelo físico, a chave é o campo ou a coluna que contém um valor exclusivo e com preenchimento obrigatório. Assim, não poderá haver o mesmo conteúdo da coluna em duas linhas diferentes. Imagine uma chave para PESSOA. Nome seria uma boa coluna para chave? Naturalmente não, pois há pessoas que têm nomes iguais. CPF seria uma boa chave? Em alguns casos sim, pois embora não tenha repetição e seja um documento obrigatório para os adultos, não é para os bebês. 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 OL EÇ Ã O I NF O
cal, por exemplo, o número da nota não se repete e é obrigatório. Por isso poderá ser candidato para a coluna chave. Uma chave geralmente está destacada por um símbolo (asterisco ou uma pequena chave) ao lado do atributo correspondente. Quando se analisa o modelo físico, uma chave pode ser classificada como: s PRIMÁRIA: qualificador único e obrigatório. Deve haver uma única chave primária 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 própria chave primária. Para relacionar o cliente com a nota fiscal, deixamos uma referência à coluna chave do cliente na tabela nota fiscal (chave estrangeira). s SECUNDÁRIA classifica os dados nas tabelas. Geralmente, os índices têm 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 relação de interdependência, ou seja, para se emitir uma Nota Fiscal, é necessário que haja um Cliente. A essa interdependência damos o nome de relacionamento. Na prática, sempre que uma ou mais tuplas de uma entidade guardarem alguma relação 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 é obrigatória ou não a ocorrência ou indicação de uma tupla de uma entidade na outra. Dessa forma, podemos dizer que é obrigatória a presença de um Cliente em uma Nota Fiscal, mas é opcional a existência de uma Transportadora, por exemplo. De outro lado, o Cliente pode ou não estar vinculado a uma Nota Fiscal. O mesmo acontece com a Transportadora. A cardinalidade indica quantas ocorrências de uma tupla se 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 são 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 não é 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 à criação e manutenção de uma tabela. Se o custo compensar, devese manter separado. Do contrário, é 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 (não esqueça que o zero ou um é a opcionalidade). Este é o relacionamento mais comum. s MUITOS PARA MUITOS (M:M):
quando há ocorrências de múltiplos relacionamentos entre as tuplas de duas entidades. Esse relacionamento, apesar de existir, não é passível de implementação em um banco de
Relacionamento: muitos
para muitos (acima); um para muitos (abaixo) C OL EÇ ÃO I NF O >
19
CONCEITOS
dados relacional. Sempre que se identificar essa situação, 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 traço para indicar a cardinalidade um, o trace jado para indicar opcionalidade e o segmento de reta contínuo para indicar obrigatoriedade. Uma outra forma é indicar a opcionalidade com um pequeno círculo antes do um ou muitos da cardinalidade. Lembre-se: são apenas convenções. 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 consistência das informações armazenadas. Suponha que estamos cadastrando uma Nota Fiscal e indicamos um código de cliente (que relaciona com a tabela Cliente) inexistente. Outra situação é tentar excluir um Cliente que tenha diversas Notas Fiscais emitidas. Como iríamos recuperar a informação, caso o banco de dados permitisse a exclusão do Cliente? Simplesmente perderíamos o elo entre as tabelas, e a informação armazenada estaria inválida.
A principal forma de garantir a integridade entre tabelas se dá por meio do vínculo entre a chave primária de uma tabela com a chave estrangeira da outra tabela. As colunas das duas tabelas armazenam as informações que permitem estabelecer o relacionamento entre as linhas das tabelas. Assim, o código de cliente 1 da tabela Cliente, cujo nome é João, será armazenado na coluna código do cliente da tabela Nota Fiscal sempre que se quiser indicar que o João comprou determinados produtos. Não será possível excluir João (código do cliente 1) enquanto houver Notas Fiscais emitidas contra esse cliente.
RESTRIÇÕES Utilizam-se as restrições (constraints) para melhorar a qualidade da informação guardada nas tabelas do banco. As restrições mais comuns são a chave primária e a estrangeira. Mas há outras restrições bastante importantes: s NULOS: uma coluna que não tenha valor inicializado é considerada uma coluna nula. Nem sempre é adequado permitir que uma coluna não tenha valores atribuídos. 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 código do cliente não seja um documento, como CPF ou RG. Mesmo
CONCEITOS
Restrições: melhoram a qualidade da informação armazenada nas tabelas do banco
não sendo uma coluna chave, esses valores não podem ser duplicados em clientes (linhas) diferentes. Para isso definimos que sejam admitidos somente valores exclusivos. O que a difere de uma chave primária é que esta última não pode assumir valores nulos. s PADRÃO: É muito comum que, quando um valor não é informado, o sistema assuma um valor-padrão para a coluna (como data de emissão de uma Nota Fiscal ou quantidade de um determinado produto em uma Nota Fiscal). s DOMÍNIO: as vezes é necessário determinar um intervalo de valores possíveis para uma determinada coluna. É o caso do sexo, por exem-
plo, que pode assumir apenas os valores Masculino ou Feminino.
TRANSAÇÃO Ocorre sempre que houver uma modificação no conteúdo das tabelas de um banco de dados. Dessa forma, uma inclusão, alteração ou exclusão geram uma transação. Em gerenciadores de banco de dados, o controle sobre o momento da efetiva gravação (COMMIT) dos dados ou abandono da operação (ROLLBACK) é realizado pelo usuário do banco de dados ou pelo sistema. A transação representa um conjunto de operações que são realizados na base de dados para produzir um resultado final.
CONCEITOS
NORMALIZAÇÃO DE DADOS Processo pelo qual são aplicadas regras a um conjunto de dados e, no final, obtém-se uma base quase livre de redundâncias. Ao atingir esse objetivo, é possível 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 normalização, 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á é possível obter um modelo de dados estável. Antes de iniciar o processo de normalização, é importante identificar o grupo de dados que se quer analisar. Esse grupo pode estar representado por um formulário, um relatório ou até mesmo uma tela do sistema. Pode também ser resultado de um levantamento sistemático das necessidades de informação dos usuários. Com o grupo de dados definido, deve-se listar todos os dados disponíveis, sem desprezar nenhum. Em seguida, deve-se dar um nome a esse grupo de dados. Após o nome, estabelece-se um identificador único (chave). Cumprida essa etapa, deve-se proceder ao processo de normalização. Para explicar melhor, vamos adotar um formulário de Nota Fiscal como exemplo.
As três fases da Normalização de Dados são: s 1ª - FORMA NORMAL (1FN): eliminar grupos de dados repetitivos da estrutura. Para isso, deve-se localizar os atributos multivalorados, os que têm mais de uma ocorrência no formulário. No caso da Nota Fiscal, temos produto, quantidade, valor unitário 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 relação 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. É possível, quando não 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 não dependam única e exclusivamente da chave da entidade. Veja: o Cliente está relacionado à Nota Fiscal, mas não depende dela. O Cliente existe, mesmo que não exista a Nota Fiscal. Por esse motivo dizemos que o Cliente não 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 não 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 dependência transitiva. Calma! Não é tão complicado. Dependência 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 substituídos por fórmulas matemáticas. No exemplo, temos o atributo Valor Total no Item da Nota e o Valor Total da Nota Fiscal. Esses atributos devem ser excluídos, pois podem ser obtidos por meio de um cálculo realizado com outros atributos. Com os dados normalizados, é possível criar as tabelas.
PROCEDIMENTOS ARMAZENADOS São pequenos códigos executados em um banco de dados que ficam guardados para posterior utilização. Podem ser stored procedures (procedimentos armazenados), stored functions (funções armazenadas), trigger (gatilho) e package (pacote). Um procedimento é um conjunto de comandos dentro de uma estrutura lógica, com o objetivo de realizar uma ação no banco de dados. A diferença entre procedimento e função é que esta última retorna valor. Gatilhos são procedimentos disparados por eventos do banco de dados (inclusão, alteração ou exclusão). Por fim, um pacote é um conjunto de funções, procedimentos e outras estruturas que são armazenados em conjunto para facilitar a manutenção e a segurança da informação.
Procedimentos armazenados: códigos que ficam armazenados para usar depois
CRIAÇÃO
PLANEJE BEM O SEU BANCO
SIGA O ROTEIRO PARA CRIAR UM BANCO DE DADOS QUE ACOMPANHE AS TRANSFORMAÇÕES DA EMPRESA POR CELSO HENRIQUE PODEROSO DE OLIVEIRA
criação de um banco de dados é um processo que envolve uma série de competências. Houve tempo em que esse processo estava reduzido a identificar um ou mais objetos, escolher uma forma de armazenamento, algumas características desses objetos e pronto. Geralmente, a própria estrutura do banco de dados era vinculada à linguagem de programação. Com o passar do tempo, a tecnologia evoluiu e foi separada das linguagens de programação. Ambientes completos de administração foram desenvolvidos e sua utilização contribuiu para disseminar as informações de maneira adequada e consistente. Atualmente, os produtos estão muito mais complexos e permitem ao profissional realizar um trabalho que pode contribuir para a melhor utilização da informação. De simples local de armazenamento, o banco de dados evoluiu para um verdadeiro repositório de informações das empresas. É o ambiente adequado para armazenar e recuperar dados ope-
A
racionais, além de dar suporte à tomada de decisão por parte da média e alta gerência das corporações. Não se consegue atingir esse objetivo sem que se observem algumas regras. Por isso, trataremos aqui da estratégia para a criação de um banco de dados.
PLANEJAMENTO E ESCOLHA Planejar e escolher o melhor banco de dados é uma tarefa extremamente importante no processo de criação. A escolha certa evita frustrações nas operações do dia-a-dia e na evolução 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á. É necessário olhar para frente e analisar como você quer que as coisas estejam no futuro. É antever situações que podem definir o sucesso ou não 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.
CRIAÇÃO
Com isso, dependendo do caso, se a sua empresa desenvolve sistemas, a decisão poderá ser totalmente diferente de uma construtora, por exemplo. Baseie-se em aspectos técnicos e mercadológicos para definir o produto com o qual você irá con-
viver durante um bom tempo (tenha isso em mente: não se troca de banco de dados senão com alguma dificuldade). Veja na tabela abaixo algumas questões que podem ajudar na escolha do produto ideal para as suas necessidades.
GUIA PARA A ESCOLHA DO GERENCIADOR
> Há uma empresa ou comunidade responsável pelo produto? está a saúde financeira dessa empresa? Como é a > Como participação dos membros da comunidade? o compromisso tecnológico da empresa? Houve evolução > Qual nos últimos anos? (um ano de atraso em informática pode ser fatal)
a participação de mercado do produto? (produtos com > Qual pequena participação podem sumir ou ser absorvidos por outras empresas)
> Quanto tempo de vida tem o produto? > Qual tipo de empresa o utiliza? foi lançada a última versão? Como o fabricante resolve > Quando problemas de segurança (atualizações e correções)? produto possui as características mínimas de um sistema > Ogerenciador de banco de dados (controle de transações, integridade referencial, programação, backup e recuperação, segurança de acesso, compatibilidade)?
é o ambiente de administração do banco de dados? Há > Como possibilidade de administração 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 mão-de-obra? produtos (ERP, CRM, BI etc.) adequados para a sua empresa > Há que utilizam o banco de dados? o volume médio de transações que você vai realizar e como > Qual o produto se comporta com isso?
CRIAÇÃO
Agora você precisa saber quais são as informações necessárias para sua empresa. Isso poderá lhe ajudar a diminuir a lista.
PROJETO LÓGICO Esta parte do processo deve acontecer em paralelo à escolha do sistema gerenciador de banco de dados. Optar por um produto sem ter noção das necessidades de informação da empresa é como dar um tiro no pé. A maneira clássica de fazer isso envolve todos os conceitos de engenharia de software para levantamento de requisitos. Quando se pensa em informação, qualquer documento, tela de sistema ou relatório é útil para identificar o que é necessário armazenar no banco de dados. Muitas vezes os usuários da informação esquecem alguns detalhes na fase de levantamento, por isso é importante recolher o máximo de documentos possíveis. Na maior parte dos casos, ter uma ferramenta de auxílio para o analista criar e modelar a estrutura do banco de dados é desejável. Essas ferramentas são conhecidas como CASE (Computer Aided Software Engineering). Entre elas estão ErWin, DbDesigner, MS Visio e Oracle Designer. Cada uma possui características que a torna mais ou menos adequada para cada situação, mas todas contribuem para o trabalho do analista. Depois de levantados os requisitos de informação, deve-se fazer um projeto lógico. Entende-se por pro jeto lógico a fase em que se realiza
a modelagem lógica de dados, composta pela aplicação do modelo de entidade X relacionamento e pela normalização de dados. Em um primeiro momento não deve haver preocupação com a estrutura física que será criada, e sim com o atendimento dos requisitos dos usuários.
PROJETO FÍSICO Uma vez estabelecido o projeto lógico, vamos ao projeto físico. Nele, transforma-se o modelo de entidade X relacionamento para o modelo físico, em geral, sem problemas. As estruturas relacionais (tabelas) são representações 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 específica, basta acrescentar o tipo de dado e o tamanho de cada um dos campos ou colunas, estabelecer chaves primárias e estrangeiras (normalmente as ferramentas CASE fazem esse trabalho por nós), definir regras de integridade, criação de visões (views), índices e outros aspectos físicos do projeto. Hora de criar as estruturas físicas, com tabelas, relacionamentos, chaves e tudo a que temos direito. Normalmente, as ferramentas CASE também fazem a maior parte do trabalho. Algumas são capazes de se conectar ao banco e criar as estruturas.
CRIAÇÃO
Outras geram os scripts para serem executados no banco de dados. Só que, para chegar aqui, é necessário ficar atento a alguns detalhes.
do sistema que mantém aquela estrutura. Em outros, acrescenta-se a estrutura departamental que realiza esse trabalho. Essa última opção é a pior, visto que há mudanças freqüentes nas funções departamentais de uma empresa moderna. Particularmente, creio que ambas situações são desnecessárias, visto que atualmente uma classe é destacada para essa função. A classe normalmente também tem um nome claro e objetivo. Se há atributos importantes para serem mantidos, como cor, modelo, ano de fabricação, ano do modelo e montadora, deve-se colocar esses nomes nas colunas. Outro ponto importante, mas não determinante, é especificar a classificação do dado junto com o nome. Assim, se a cor do veículo fizer referência a uma tabela de cores e, portanto, eu for armazenar o código da cor, é comum utilizar-se CD ou COD antes do nome. O nome do campo ficaria CDCOR, por exemplo.
PADRONIZAÇÃO É sempre importante manter um padrão para o nome dos objetos, colunas e outros elementos. Mesmo que você trabalhe sozinho em um projeto, é bem provável que no futuro outras pessoas tenham de atualizar aquilo que você fez. A padronização começa na documentação do projeto e continua em todo o processo físico de criação do banco de dados. Toda equipe deve estar envolvida para definir o que e como será esse padrão. Imagina-se que, quanto mais claro for o nome da entidade, por exemplo, melhor será para a pessoa entender o que está armazenado ali. Parece óbvio, mas algum tempo atrás era comum utilizar nomes estranhos, muito mais vinculados aos 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 CLASSIFICAÇÃO OPÇÃO 1 OPÇÃO 2 mais obscuro, mais depenCÓDIGO COD CD dência do analista. TABELAS E COLUNAS Se eu identifiquei um objeto que armazene as informações de um veículo, devo dar-lhe o nome de VEICULO. Em certos casos, alguns analistas preferem indicar qual o módulo
NÚMERO
NUM
NR
DESCRIÇÃO
DES
DS
NOME
NOM
NM
DATA
DAT
DT
VALOR
VAL
VL
QUANTIDADE
QTD
QT
SIGLA
SIG
SG
DOMÍNIO
DOM
DM
CRIAÇÃO
Como não é possível utilizar espaços na definição do nome das colunas (ou mesmo objetos), utilizase o caractere sublinhado (_) para substituir o espaço. A tabela ficaria como no exemplo da figura abaixo.
PROCESSO DE CRIAÇÃO DE BANCO DE DADOS PROJETO LÓGICO DE DADOS
Análise e modelagem utilizando o Modelo de Entidade e Relacionamento e Normalização de Dados
PROJETO FÍSICO DE DADOS
Desenho com definição de tabelas, índices, visões etc.
CRIAÇÃO DO BANCO DE DADOS
Criação de scripts para execução do gerenciador de banco de dados
BANCO DE DADOS CRIADO
TIPOS DE DADOS A definição do tipo de dados também exige padronização. Parece óbvio que um dado que receberá apenas conteúdo numérico deva ser definido como NUMBER, DECIMAL, INTEGER, FLOAT ou qualquer outro tipo que seja otimizado para este fim. O mesmo acontece com alfanuméricos e datas, mas há algumas observações a considerar nessa escolha. O tipo de dado numérico, de um modo geral, possui mecanismos que fazem com que as buscas se jam mais rápidas do que as que ocorrem em colunas alfanuméricas. Ele também ocupa menos espaço físico para armazenamento. Por isso, chaves primárias (e con-
seqüentemente estrangeiras) são definidas por campos numéricos. Colunas pesquisadas com freqüência, como CPF, também são definidas como numéricas. A maioria dos gerenciadores de banco de dados trabalha com dois grupos de tipos de dados alfanuméricos: CHAR e VARCHAR (ou VARCHAR2, no Oracle). O primeiro utiliza todo o espaço especificado, enquanto que o segundo é variável, usando, no máximo, o espaço predeterminado. Isso faz com que o segundo, por utilizar apenas o espaço efetivamente ocupado pelo conteúdo, otimize o armazenamento e não deixe buracos nos conteúdos. DBAs experientes levam em consideração o volume de alterações no conteúdo para essa definição. Isso porque, caso um conteúdo seja alterado com freqüência, a atualização poderá gerar uma fragmentação da informação — quando incluído, o conteúdo ocupou um espaço e, depois de uma alteração para maior, quando não há espaço na seqüência, será colocado em outro espaço físico do disco. Campos que armazenam datas devem ser definidos dessa forma para facilitar operações de busca e até mesmo operações matemáticas entre elas. O padrão SQL possui uma série de comandos específicos para calcular intervalo entre datas, extrair ano, dia, mês etc. Para conteúdos muito grandes, co-
CRIAÇÃO
mo arquivos XML, imagens, sons e textos extensos deve-se utilizar o LOB. Normalmente há uma separação para binários (BLOB), adequados para armazenamento de imagens e sons, e alfanuméricos (CLOB). No caso específico de XML, é possível que o gerenciador de banco de dados tenha algum mecanismo melhor de armazenamento.
PROGRAMAÇÃO Sempre que possível, prefira criar os módulos que utilizam e manipulam dados dentro do banco de dados. Apesar de atualmente haver uma grande difusão da necessidade de independência de banco de dados por meio da utilização de uma camada intermediária que assuma essa responsabilidade, é inegável que o gerenciador do banco de dados é o ambiente mais adequado para manter e atualizar dados. Ao se programar em qualquer outra camada que não a de dados, o tráfego de informações pela re-
Programação: no SQL Server 2005 dá para criar consultas sem escrever código
de é aumentado. Se você optar por colocar a camada de aplicação 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 manipulação de dados. Os programas devem seguir a padronização da empresa no que diz respeito aos módulos: definição de variáveis, letras maiúsculas e/ou minúsculas para comandos etc.
INTERFACES DE ADMINISTRAÇÃO Tão importante quanto criar estruturas estáveis para suprir as necessidades de informação da empresa é a tarefa de manter o banco de dados com um nível aceitável de tempo de resposta. Para isso, é necessário ter uma atenção especial na administração. As interfaces de administração têm evoluído bastante para simplificar o processo. Mesmo os gerenciadores de código aberto possuem interfaces amigáveis que permitem criar e manter todas as estruturas do banco rapidamente. Algumas podem ser acessadas remotamente, o que facilita o processo de manutenção e acompanhamento que o DBA faz no banco de dados. A tendência é que os gerenciadores sejam cada vez mais automatizados, em especial no que diz respeito ao desempenho. Os ajus-
CRIAÇÃO
tes (tuning) podem ser realizados sem a interferência direta do DBA. O administrador supervisiona e valida o que foi feito e, em caso de problemas, adota outras medidas.
SEGURANÇA Nunca é pouco lembrar que a criação de usuários e a rotina de backup seja planejada com coerência. Usuários com “superpoderes” não são desejáveis em bancos de dados. Deve haver poucos, de preferência um único DBA por banco. Deve ser objeto de estudo constante a verificação e a auditoria dos usuários e as transações realizadas. Não basta confiar apenas no sistema para esse controle. Os gerenciadores possuem interfaces de administração relativamente simples. Usuários genéricos podem comprometer a segurança dos dados nessa situação. A rotina de backup deve ser testada inclusive com restaurações periódicas, para determinar a exatidão e o conhecimento do processo. Normalmente, para backup, há algumas formas disponíveis nos principais gerenciadores. As principais são:
CÓPIA COMPLETA DOS DADOS (ON LINE): as transações que são efes
tuadas são armazenadas em local específico para serem copiadas para um meio físico. Em caso de pane no banco de dados, é possível retornar a um ponto no tempo, até o limite das transações gravadas no disco. Isso faz com que a perda de dados se ja consideravelmente menor. s SERVIDOR STANDBY: a cópia das transações é realizada em um servidor separado. Em caso de pane, o outro servidor assume a função do servidor que falhou.
CONCLUSÃO Com planejamento, padronização e controle é possível fazer com que os dados da empresa possam ser acessados em segurança e rapidamente. Unir diversas tabelas não é criar um banco. O processo começa com a escolha do gerenciador adequado às necessidades e termina com a execução de um plano robusto e completo para o que é preciso hoje e será necessário amanhã.
s CÓPIA COMPLETA DOS DA-
DOS (OFF LINE): interrompe-
se a execução do banco de dados e copiam-se os arquivos de dados. Em caso de pane, pode-se restaurar todo o banco que retornará ao momento em que foi feita a cópia. 30 < C O LE Ç ÃO I N FO
BI: ferramenta para necessidade atual e futura
LINGUAGENS
O BANCO FALA SQLQUÊS CONHEÇA O IDIOMA DOS BANCOS DE DADOS E AS LINGUAGENS DE ACESSO A ELES POR ANDRÉ CARDOZO
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 nível mais avançado, um programador precisa se dedicar para dominar a SQL, mesmo porque diversos bancos de dados possuem extensões proprietárias, funções mais C OL EÇ ÃO I NF O > 31
LINGUAGENS
avançadas que só funcionam naquele sistema. Os comandos básicos são intuitivos e podem ser usados sem dificuldade por quem tem noção de programação. Veja alguns: CREATE: cria tabelas SELECT: seleciona dados INSERT: inclui dados em tabelas UPDATE: atualiza dados DELETE: apaga dados Além das expressões principais, outros comandos muito usados são o “where”, que inclui a condição, 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” (condição imposta pela expressão “where”). Portanto, somente os clientes de São Paulo. Os resultados são 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 extensão da SQL especializada no banco de dados Oracle. Ela combina a facilidade de
manipulação de dados da SQL com as facilidades de programação de uma linguagem procedural. Permite criar ob jetos de esquema, como gatilhos, procedimentos armazenados e pacotes. A linguagem PL/SQL utiliza o conceito de bloco estruturado. Esses blocos são compostos por procedures e funções. Um bloco tem a estrutura básica composta por três partes: DECLARE: seção opcional, em que todos os objetos são declarados; BEGIN: em que os comandos PL/SQL são colocados; EXCEPTION: em que os erros são tratados.
LINGUAGENS DE ACESSO >Opções não faltam para os desenvolvedores de programas de acesso a banco de dados. As mais populares são ASP, Perl, PHP e Java. Cada uma dessas linguagens tem suas vantagens e desvantagens, e a escolha depende de uma série de fatores, como compatibilidade, custo e portabilidade. Conheça essas opções.
PHP, A POPULAR Uma solução bastante popular entre os webmasters de sites dinâmicos é 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 noções básicas de programação. Além disso, há outra qualidade muito importante, que beneficia uma parte sensível de todos nós: o bolso. O interpretador PHP (programa que processa as páginas feitas nesse formato) é gratuito, e basta baixar e instalar no servidor para começar a criar um website dinâmico.
ASP, A OPÇÃO WINDOWS O ASP (Active Server Pages) não é exatamente uma linguagem de programação, mas o que a Microsoft define como “ambiente de execução de scripts”. Na maior parte das vezes, as instruções são escritas em VBScript, que é derivado do Visual Basic, também filhote da Microsoft. A penetração do Visual Basic no mercado contribui bastante para o crescimento do ASP. Como a quantidade de programadores VB é grande, fica mais fácil para as empresas contratarem profissionais que desenvolvam aplicações em VBScript. Aderir ao ASP significa quase sempre optar pelo mundo Windows, uma vez que as páginas ASP só rodam nativamente em servidores Windows com servidor web IIS (Internet Information Server), da Microsoft. É possível rodar páginas ASP em sistemas Unix por intermédio de soluções comerciais, como o ChiliASP, ou usan-
do o OpenASP, no servidor web Apache. Mas a implementação desse tipo de solução costuma ser problemática para os webmasters.
JAVA, A ECLÉTICA A linguagem Java é a alternativa de programação criada pela Sun Microsystems. É uma linguagem robusta, com funções complexas. Possui como principal vantagem, a portabilidade — roda em qualquer plataforma, de palmtop a mainframe, de sistemas embarcados a programas sérios de internet banking, por exemplo. Profissionais especializados em Java estão entre os mais disputados do mercado. PERL, A VETERANA A linguagem Perl (Practical Extraction and Reporting Language) foi criada em 1987 pelo programador Larry Wall para resolver tarefas de administração em sistemas Unix. Wall divulgou a primeira versão de Perl nas listas de discussão da Usenet e logo programadores de todo o mundo começaram a dar sugestões 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 modificação. A linguagem é expandida pelo uso de módulos.
TESTE/SQL SERVER
UM SQL SERVER FÁCIL DE USAR
A VERSÃO GRÁTIS DO BANCO DE DADOS DA MICROSOFT TEM ASSISTENTE E MUITOS RECURSOS POR NIVALDO FORESTI
que não faz a concorrên- servidor Pentium 4 de 2 GHz com 1 cia. Bastou os bancos de GB de memória RAM. dados de código aberto Seguindo o padrão dos produtos decomeçarem a ganhar es- senvolvidos pela Microsoft, a instalapaço nas corporações, os fabricantes ção do Express é extremamente simtradicionais passaram ples e fácil de fazer. Um FIQUE LIGADO assistente leva o usuáa oferecer versões gratuitas com a maioria rio pela mão por todas Pequenas empresas dos recursos das veras etapas do processo. e desenvolvedores são sões pagas e algumas Com alguns cliques de o alvo do SQL Server restrições. A Microsoft mouse, você instala 2005 Express inaugurou esse moviuma instância do gemento, lançando no firenciador de banco de nal do ano passado o SQL Server 2005 dados. Mas nem tudo é perfeito. A suíExpress e seus três irmãos pagos: te de administração e desenvolvimenWorkgroup, Standard e Enterprise. De- to SQL Server Express Management pois, vieram a Oracle e a IBM. Studio — Community Technology PreComo as versões comerciais irmãs, o SQL Server 2005 Express vem integrado ao Visual Studio .Net, o que se traduz em facilidade para o desenvolvimento de aplicações. O INFOLAB testou o programa num
O
>
Management Studio: suíte de administração e desenvolvimento 34 < C OL EÇ Ã O I NF O
TESTE/SQL SERVER
view (CTP) não acompanha a instalação. É preciso fazer o download separadamente do CTP no endereço www.info.abril.com.br/download/ 4454.shtml.
RECURSOS Não espere que a Microsoft tenha dado tudo de bandeja nessa versão disponível gratuitamente para você. Faltam vários recursos. Você não encontrará o DTS (Data Transformation System), o que dará muita dor de cabeça na hora de importar dados de outros formatos de arquivo para dentro do banco de dados. Também não terá a pesquisa em texto, os serviços de notificação e os recursos de business intelligence que tornam a versão Enterprise bastante atraente para as empresas maiorzinhas. Outras restrições importantes são o suporte a apenas um processador, somente 1 GB de memória RAM e até 4 GB de tamanho do banco de dados. Se bem que é difícil uma pequena 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 restrição de desempenho quando existiam mais de cinco conexões simultâneas ao banco de dados. Toda a funcionalidade programática está no Express, até mesmo o suporte a XML e a integração da lin-
guagem CLR (Common Language Runtime) da .Net com a Transact-SQL, a linguagem de comandos SQL da Microsoft. O novo conjunto de objetos e a habilidade de agir como cliente na replicação de dados e nos cenários de envio de mensagens não faltaram na versão gratuita. Em suma, dá para aproveitar bastante até serem necessárias mais funcionalidades.
SQL SERVER 2005 EXPRESS FABRICANTE
Microsoft
PRÓ
Fácil de usar e gerenciar
CONTRAS
Suporta apenas um processador, 1 GB de memória e bancos de até 4GB
INSTALAÇÃO
8,5 Rápida, com verificação de pré-requisitos e primeiros passos
GERENCIAMENTO
Possui administração similar à da versão Standard, mas faltam funcionalidades
7,5
FERRAMENTAS
6,5 Fica devendo ferramentas como o DTS para a importação de dados
DESENVOLVIMENTO
8,5 Traz todos os recursos das demais versões, inclusive suporte nativo a XML
SEGURANÇA
8,0 Conta com criptografia baseada em chaves e replicação de dados via web
AVALIAÇÃO TÉCNICA (1) PREÇO
7,6 Gratuito
CUSTO/BENEFÍCIO ONDE ENCONTRAR
www.info.abril.com.br/ download/4339.shtml
(1) Média ponderada considerando os seguintes itens e respectivos pesos: Instalação (10%), Gerenciamento (35%), Ferramentas (35%), Desenvolvimento (10%) e Segurança dos dados (10%). O SQL Server Express ganha 0,2 ponto na avaliação técnica devido ao bom desempenho do seu fabricante na Pesquisa INFO de Marcas 2005.
C OL EÇ ÃO I NF O > 35
TESTE/ORACLE EXPRESS
ORACLE EM VERSÃO LIGHT
A EDIÇÃO GRATUITA DO PODEROSO BANCO DE DADOS CHEGA COM RECURSOS DE SOBRA POR ERIC COSTA
eguindo os rastros da A licença do Oracle Express é basMicrosoft, a Oracle pro- tante aberta: é possível, sem pagar duziu uma versão ma- nada, distribuir e implantar o progra de seu poderoso grama, além de usá-lo para desenbanco de dados, a Oracle 10g Express volvimento de software. Nos testes Edition, de olho nas pequenas emda INFO, feitos com o sistema operacional SUSE Linux 10.0, o Oracle presas. O software inclui os principais recursos das versões comerciais Express Edition teve bom desemdo irmão robusto e é gratuito. Em penho, sendo instalado rapidamencontrapartida, limita o tamanho má- te num micro com processador Penximo da base de dados a 4 GB, além tium 4 de 2,4 GHz, com 512 MB de do hardware usado. O gerenciador memória RAM. A instalação é basde bancos de dados tante simples. Toda a FIQUE LIGADO administração do usa apenas um processador (caso o combanco de dados é feiLimitações tornam putador tenha mais ta pelo browser, o que o Oracle 10g Express de um) e, no máximo, também facilita o indicado para as 1 GB de RAM, mesmo acesso remoto, para pequenas empresas e que o micro possua quem quer deixar o os desenvolvedores mais memória. servidor afastado.
S
>
Página principal: portal de acesso a funções e links com a comunidade Oracle
TESTE/ORACLE EXPRESS
Browser: controle sobre cada objeto
Apesar de ser relativamente simples, a interface web funciona bem, trazendo recursos suficientes para a criação e a manutenção 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 versão Express do Oracle em relação ao também gratuito MySQL está no suporte ao PL/SQL, a versão turbinada do SQL feita pela Oracle. Com ela, é possível acrescentar mais funcionalidade em stored procedures (ou rotinas armazenadas), o que pode diminuir a necessidade de manutenção 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 versão Express tem o mesmo suporte a linguagens de programação 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 próprios usuários, que ajudam uns aos outros em um
Utilitários: inclui importação de XML
grupo de discussão mediado por profissionais da Oracle. Ao baixar o Oracle Express, é possível cadastrar-se nesse grupo automaticamente.
ORACLE 10G EXPRESS EDITION FABRICANTE
Oracle
PRÓS
Dispensa hardware parrudo, traz recursos de primeira
CONTRAS
Limitações ao tamanho do banco de dados, à memória e CPU usadas
COMPATIBILIDADE
8,0 Roda em Windows e Linux (distribuições compatíveis com pacotes RPM)
INSTALAÇÃO
8,0 Instalação simples e direta tanto no Windows quanto no Linux
RECURSOS
FERRAMENTAS
8,5
Suporte a PL/SQL, integra-se com Java, C++, VB.NET, entre outras linguagens
8,0
Gerenciamento pelo browser, com ferramenta de construção de consultas
8,4
AVALIAÇÃO TÉCNICA
PREÇO (R$) (1)
Gratuito
CUSTO/BENEFÍCIO ONDE ENCONTRAR
www.info.abril.com.br/ download/4346.shtml
(1) Média ponderada considerando os seguintes itens e respectivos pesos: Compatibilidade (20%), Instalação (20%), Recursos (30%) e Ferramentas (30%). O Oracle Express ganha 0,2 ponto na Avaliação Técnica devido ao bom desempenho do seu fabricante na Pesquisa INFO de Marcas 2005.
TESTE/DB2 EXPRESS
DB2 GRÁTIS COM TUDO DENTRO A VERSÃO DEGUSTAÇÃO DO BANCO DE DADOS DA IBM VEM REPLETA DE BOAS FERRAMENTAS POR NIVALDO FORESTI
epois da Microsoft e da Oracle, foi a vez da IBM criar uma versão gratuita de seu robusto banco de dados DB2. Como as demais edições “expressas” dos concorrentes, o DB2 Express-C tem limitações — suporta até 4 GB de memória RAM —, mas possui características que permitem seu uso em aplicações comerciais e sensíveis. Tem a vantagem de suportar tanto a plataforma Windows quanto a Linux e roda em máquinas com até dois processadores, enquanto as edições expressas do SQL Server e do Oracle só aceitam
D
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.
INSTALAÇÃO O processo de instalação do DB2 Express-C é rápido, mas fazer o download pela web pode ser torturante. O arquivo tem pouco mais de 450 MB e, mesmo numa conexão vitaminada, irá demorar mais de uma hora para baixar. Ler os pré-requisitos e as notas nos menus do instalador evitará problemas durante e após a instalação. Por exemplo, um dos prérequisitos é que na plataforma Windows se use o Windows XP Profissional. Durante a instalação, o próprio sistema coloca em ação as opções Java necessárias. Além disso, permite testar imediatamente Instalação: o assistente guia o usuário durante todo o processo
TESTE/DB2 EXPRESS
Centro de Controle: dá conta de todas as instâncias em operação
seu funcionamento, criando ou carregando os bancos de dados de exemplo que o acompanham. Uma série de caixas de diálogo e janelas de confirmação indicam o que fazer a cada passo da instalação em bom português. A atualização para versões mais recentes fica a um clique de distância no próprio instalador. Basta acionar Atualizar Versão para o programa verificar qual é a versão em uso e executar o upgrade. Acessando o item Visualizar Introdução, o usuário encontra tutoriais e informações detalhadas sobre o produto e outros assuntos de interesse, como a migração de versões anteriores. Os outros primeiros passos disponíveis — criar banco de dados e acessar exemplos — abrem a Central de Controle. FIQUE
todas elas. É um utilitário bastante rico em funcionalidade para criar e modificar tabelas, executar consultas (queries) e análises complexas, monitorar o status dos bancos de dados, funções de importação e exportação de dados, dentre outras. Os usuários contam com uma interface bastante fácil de usar, similar nos sistemas operacionais Windows e Linux. Essa estratégia segue a da concorrente Oracle, que está usando os navegadores para manter interfaces semelhantes em todas as plataformas LIGADO que suporta. Na plataforma WinFácil de usar e cheio dows, a Central de NAS RÉDEAS de ferramentas, o DB2 O Centro de Controle Controle pode ser Express-C vai bem nas é o ponto de partida aberta a partir do mepequenas empresas de todas as operanu Iniciar ou clicanções, controles e addo-se com o botão diministração das bases de dados criareito no ícone do DB2 na bandeja de das no DB2 Express-C. Como pode sistema. Uma janela com uma lista haver mais de uma instância opesimilar à do Explorer, contendo banrando na mesma máquina, o Cenco de dados e seus objetos, é mostrada ao abrir o programa. tro de Controle pode dar conta de
>
TESTE/DB2 EXPRESS
A quantidade de maioria gráficas, pautilitários disponíveis ra assegurar que as no DB2 Express-C aplicações não seimpressiona. Há pro jam prejudicadas pegramas para monilo mau uso dos retoramento de mecursos. São várias as mória, de aplicativos, ferramentas dispoum Centro de Tareníveis: db2batch, que fas em que podem verifica o desempeser programadas tanho das queries em refas específicas patempo real; Visual ra execução em loExplain, que analisa te e a configuração graficamente as conVisual Explain: ferramenta do sistema. Para fa- especial para a análise gráfica das sultas; Design Advicilitar a vida do ad- consultas ao banco de dados sor, que sugere a coministrador ou do locação de índices programador, funções como criar ou em tabelas para diminuir o tempo alterar banco de dados, backup e rede acesso baseado nas consultas exestore são controladas por assistentes. cutadas, e, finalmente, o Activity Monitor, que gera relatórios do desemDESEMPENHO penho dos sistemas para análise. Conseguir um desempenho ótimo DESENVOLVIMENTO das aplicações com banco de dados é considerada uma combinação de O DB2 Express-C inclui os drivers e magia negra e ciência. Na tentativa a interface necessários para o dede se aproximar do ótimo, o DB2 Exsenvolvimento de aplicações nas linguagens C/C++, Java e .Net, além press-C oferece ferramentas em sua de PHP e Perl. Suporta linguagens no servidor para o desenvolvimento de stored procedures, triggers e funções. Elas podem ser escritas em C/C++, Cobol, Java (JDBC e Desenvolvimento: stored procedures em ambiente gráfico
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 padrão ANSI SQL. Uma ferramenta gráfica, o Centro de Desenvolvimento, permite o gerenciamento, desenvolvimento, teste e implantação de stored procedures. A integração e o desenvolvimento de aplicações Java são pontos fortes do produto. Os mais conhecidos drivers estão incluídos no pacote. O ambiente Websphere Studio, da IBM, pode ser usado no desenvolvimento de aplicações com o DB2 Express-C, da mesma forma que o Visual Studio 2003, da Microsoft. Um driver de acesso compatível com o ambiente de desenvolvimento 1.1 está disponível no produto. A documentação não é tão completa como deveria, mas o usuário consegue as informações, em inglês, pesquisando no site da IBM.
é o limite de 4GB para a memória RAM. Alguns recursos encontrados nas versões pagas, como ferramentas de datawarehouse e drivers para o banco de dados Informix, não acompanham o DB2 Express-C. Mas quando esses recursos forem necessários, o usuário poderá adotar uma versão paga do produto sem as dores e os custos de migração.
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, fácil de usar e possui muitos utilitários e ferramentas. Além disso, não há limitação de número de usuários ou de tamanho para os bancos de dados nas aplicações desenvolvidas para a plataforma. A única restrição existente
DESENVOLVIMENTO
8,0 Em WebSphere Studio, Java, C, C++, Fortran, Rexx, Perl entre outras linguagens
SEGURANÇA
7,5 Replicação de dados entre bancos, usando sistemas de mensagens
DB2 EXPRESS-C 8.2 FABRICANTE
IBM
PRÓS
Bons utilitários, suporte a máquinas com dois processadores e replicações complexas
CONTRAS
Não tem ferramentas de datawarehouse e limita a capacidade de memória
INSTALAÇÃO
8,4 Rápida, com verificação de pré-requisitos e primeiros passos
GERENCIAMENTO
9,0 Permite gerenciar várias instâncias do programa, um ou mais bancos, projetos e diagnósticos
FERRAMENTAS
Replicação, central de tarefas, centro de funcionamento com alertas, centro de dados inteligentes
AVALIAÇÃO TÉCNICA (1) PREÇO (R$)
8,5
8,5 Gratuito
CUSTO/BENEFÍCIO ONDE ENCONTRAR
www.info.abril.com.br/ download/4435.shtml
(1) Média ponderada considerando os seguintes itens e respectivos pesos: Instalação (10%), Gerenciamento (35%), Ferramentas (35%), Desenvolvimento (10%) e Segurança dos dados (10%).
TESTE/MYSQL
O MYSQL GANHA MÚSCULOS PREFERIDO PELA TURMA DO LINUX, O BANCO DE DADOS INCORPORA NOVAS FUNÇÕES E CORTEJA O MERCADO CORPORATIVO POR CARLOS MACHADO, COM LUIZ CRUZ
banco de dados de código aberto MySQL teve um belo upgrade na versão 5.0, liberada no final de outubro de 2005. De alternativa rápida, eficaz e pouco sofisticada para sites simples, o produto passou à categoria dos robustos. Com suporte a novas funções, como transações e stored procedures, o banco de dados se propõe a tarefas mais ambiciosas. Essas mudanças sinalizam que o MySQL está cultivando músculos para encarar o mercado corporativo. Produzido pela empresa sueca MySQL AB, o MySQL tem uma forma de licenciamento duplo. O usuário pode adotá-lo como produto gratuito, segundo a licença GPL, mas também tem a opção de adquiri-lo comercialmente, com direito a suporte e outros benefícios. Parte fundamental do chamado padrão LAMP — sigla de um conjunto de produtos de código aberto formado por Linux, Apache, MySQL, PHP/Perl/Python —, o MySQL tem hoje uma enorme
O
MySQL Administrator: interface gráfica de gerenciamento
base instalada. A MySQL AB comemorou a marca de mais de 1 milhão de downloads nas três primeiras semanas de lançamento da versão 5.0. O número é sem dúvida indicativo do grau de interesse em torno do banco de dados.
MULTIPLATAFORMA Desde o início, o MySQL se destacou pela velocidade, que permite seu uso em máquinas de recursos relativamente modestos. Isso o transformou no sistema preferido dos sites profissionais pequenos e médios. Também contribui para o sucesso sua disponibilidade em
TESTE/MYSQL
quase todos os sisterios. A principal deFIQUE LIGADO las é o suporte a mas operacionais mais importantes. Há transações. Agora, o Muito utilizado em versões do MySQL gerenciador é capaz sites simples, o MySQL para Windows, Linux, de processar transa5.0 já dá conta de Unix, Solaris, Mac OS ções do tipo ACID, aplicações corportivas X, FreeBSD, HP-UX, obrigatórias em apliIBM AIX e outros. Há cações de missão crítambém versões para plataformas tica. Uma transação, para os não de hardware Intel e AMD, de 32 e iniciados, é uma operação que só 64 bits, além dos chips Sparc, Alfaz sentido se todos os seus paspha, PowerPC etc. INFO analisou a sos forem executados. Um exemplo clássico é a transferência de versão 5.0.15 do MySQL para Linux num servidor Pentium 4 de 3 GHz, dinheiro de uma conta bancária rodando a distribuição SUSE 10 de para outra. Há duas tarefas: debi64 bits. Também instalamos o bantar o valor numa conta e creditáco de dados num computador com lo na outra. Se apenas uma das tarefas é executada, o sistema se toro Windows XP. Nos dois casos, a instalação não ofereceu nenhuma na inconsistente. Nos bancos de dificuldade especial. dados profissionais, o processaAlgumas das funções que esmento de transações garante a intréiam no MySQL 5.0 eram há muitegridade de operações desse tito tempo reclamadas pelos usuápo. Se, por exemplo, o hardware
>
Controles: uma só interface para controlar usuários, montar rotinas e verificar carga
TESTE/MYSQL
falha no meio de uma operação, ela é completamente anulada. A primeira regra do modelo ACID é exatamente esta: ou tudo ou nada. O MySQL 5.0 também suporta transações distribuídas, ou seja, transações complexas envolvendo múltiplos bancos de dados localizados em diferentes ambientes.
STORED PROCEDURES Outra novidade do MySQL 5.0 são as stored procedures. Uma stored procedure — literalmente: rotina armazenada — é um programa, ou seqüência de comandos, guardado fisicamente no servidor. Uma série de consultas complexas roda mais rápido como uma stored procedure do que uma lista de comandos, executados um a um, a partir de um computador cliente. As procedures também podem ser disparadas dentro de uma transação. 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 indicações de que está de olho no mercado corporativo. Outro sinal evidente disso está no MySQL Migration Toolkit, conjunto de ferramentas oferecido para incentivar a migração dos bancos de dados concorrentes para o MySQL. Obviamente, o produto ainda não tem cacife, nem técnico nem co44 < C OL E ÇÃ O I NF 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 usuários é o suporte a XML. O fabricante do MySQL também oferece o MySQL Administrator, uma ferramenta visual para gerenciar bancos de dados e usuários. O Administrator deve ser obtido num download à parte. Essa ferramenta permite criar e alterar bancos de dados, montar stored procedures e verificar informações de carga do sistema. Embora execute bem as funções a que se propõe, ainda não aproveita bem os recursos da interface gráfica.
MYSQL 5.0 FABRICANTE
MySQL AB
PRÓ
É multiplataforma: tem versões para Windows, Linux, Unix
CONTRA
Não tem suporte a XML
INSTALAÇÃO
8,6 Simples, não oferece nenhuma dificuldade especial
RECURSOS
8,5 As novas funções aumentam muito o poder de ação do programa
FERRAMENTAS
7,5 O MySQL Administrator oferece poucos recursos gráficos
AVALIAÇÃO TÉCNICA (1)
8,3 Comparado com o JBoss, foi, em média, 3,6 vezes mais rápido no tempo de resposta
PREÇO LICENÇA
Gratuito GPL
CUSTO/BENEFÍCIO ONDE ENCONTRAR
www.info.abril.com.br/ download/3641.shtml
(1) Média ponderada considerando os seguintes itens: Instalação (30%), Recursos (50%), Ferramentas (20%).
TESTE/POSTGRESQL
MISSÃO CRÍTICA É PARA POSTGRE VERSÃO 8.1 CONTA COM DRIVERS E CAMADAS DE SOFTWARE QUE GARANTEM SUA CONECTIVIDADE POR HELIO SILVA
elho conhecido das co- versão 8.1, mais munidades de software recente, logo se livre, o PostgreSQL de- percebe que ismorou um pouco mais do so não é verdade. que o MySQL para se popularizar, proA distribuição de vavelmente por ser focado em aplica- códigos binários do Postções críticas. Muitos dos recursos que greSQL 8.1 prontos para inso MySQL apresenta na versão 5.0, tais talar está disponível apenas para Licomo o suporte a gatilhos, stored pro- nux ou Windows. Para outras platacedures e transações, já fazem parte formas Unix, é preciso baixar o códido PostgreSQL há tempos. O impulso go-fonte e compilar o sistema. No Linux, o PostgreSQL vem como veio com a versão para Windows e a colaboração de empresas como Sun, pacote binário na maior parte das disFujitsu e Pervasive Software. Com ex- tribuições, mas para quem gosta de periência no desenvolvimento e em- aventura e tem bastante tempo, popacotamento de versões comerciais de baixar o código-fonte e compilar. afinadas com as necessidades das corNo ambiente Windows, o prograporações, elas estão colocando terno e gravata no produto. O PostgreSQL também foi vítima dos rótulos lento e pesado. Pode-se dizer que o logotipo do produto — um elefante azul — até reforce essa imagem. Mas, debruPostgreSQL: o pgAdmin faz a administração do banco çando-se sobre a
V
C OL EÇ ÃO I NF O > 47
TESTE/POSTGRESQL
ma pode ser instalado de duas formas: utilizando o ambiente Cygwin, que permite, com certas restrições, utilizar os programas escritos para Linux, ou diretamente no Windows XP. O Cygwin é mais indicado para quem tem experiência no uso do PostgreSQL em ambiente Linux. Já a versão pronta para o Windows é muito robusta, fácil e não decepciona. A instalação no Windows pode ser feita em português, mas, no final, o software de administração pgAdmin se apresentará em inglês.
próprio PostgreSQL, que equivale ao PL/SQL da Oracle. Essa diversidade facilita a vida de quem já é versado em uma dessas linguagens. Além do pacote básico, é sempre bom dar uma checada em sites que mantém projetos ligados ao PostgreSQL. Um deles é o site pgfoundry.org , onde podem ser encontrados utilitários e até mesmo sistemas completos. Uma ausência sentida é o suporte nativo ao XML. Em aplicações com trocas de dados entre sistemas heterogêneos, como em operações de transmissão eletrônica de pedidos e RECURSOS O PostgreSQL 8.1 chega bem abastefaturas entre empresas ou intercâmbio de dados bancários, é de se escido de drivers e camadas de software que garantem perar que existam diFIQUE LIGADO ferentes bancos atuansua conectividade com ferramentas de criação do do outro lado, e o Recursos poderosos e extração de relatómercado aponta para indicam o PostgreSQL rios além, é claro, de lio XML como melhor para as aplicações de gá-lo com as linguaforma de garantir esmissão crítica gens de programação sa conversa. Quem populares como Java, aderir ao PostgreSQL Visual Basic e Delphi. A plataforma terá de escrever suas interfaces XML. .Net da Microsoft também não fica de BOA HERANÇA fora, contando com o data provider Um velho dilema da crescente coNpgSQL. É natural que o banco mantenha conexões privilegiadas com seus munidade de programadores que pares do software livre, como as lintrabalham com a abordagem da guagens Phyton, Perl, TCL e PHP. orientação a objeto (OOP) é que eles Se para escrever programas de raciocinam e projetam seus sistemas pensando em objetos e, no entanto, front-end existem tantas opções, o mesmo pode se dizer das linguagens têm de lidar com bancos de dados disponíveis para desenvolver funções relacionais na hora de depositar seus e processos que rodam dentro do dados. Eles gostariam de ter bancos banco. As opções são: PL/Perl, de dados que entendessem um pouco mais sua abordagem. O PostPL/TCL, PL/Java e o PL/pgSQL do
>
TESTE/POSTGRESQL
greSQL faz um pequeno esforço nesse sentido, implementando uma das propriedades da orientação a objeto que é a herança. Para compreender a aplicação da herança em um banco de dados, imagine o desenvolvimento de um sistema para uma loja de barcos. A primeira providência é criar a tabela Barcos com todas as características comuns a qualquer barco (código, preço, descrição etc.). Em seguida, cria-se uma tabela filha que trata especificamente de veleiros e que herda as características de Barcos, acrescentando-se os atributos específicos de um veleiro como a altura do mastro e o tipo de vela. Por fim, cria-se uma tabela Lanchas, que também é filha de Barcos, adicionando-se a ela atributos como potência do motor. Alterações em Barcos, como a criação do atributo Preço Promocional, por exemplo, automaticamente se refletem em Veleiros e Lanchas.
SINCRONIZAÇÃO Usando-se um dos seus diversos sistemas de replicação, o PostgreSQL pode ser aplicado em empresas de pequeno e médio porte que têm necessidade de sincronização de dados entre matriz e filiais. Além da sincronização, o banco de dados tem evoluído em recursos para resistir a falhas e operar com múltiplos processadores, o que o torna uma boa opção para os pro jetos de missão crítica. Possui também a habilidade de lidar com enor-
mes bases com respostas em tempo aceitável, requisito básico para sistemas de datawarehouse, cujos bancos de dados podem chegar facilmente aos terabytes. Esse tipo de sistema está na ordem do dia das empresas graças à redução dos custos de processamento e armazenamento, além, é claro, da necessidade constante de buscar competitividade.
POSTGRESQL 8.1 FABRICANTE
PostgreSQL Global Development Group
PRÓS
Inclui replicação de dados, processamento paralelo, suporte a 64 bits e a clusters
CONTRAS
Falta de suporte nativo ao padrão XML
INSTALAÇÃO
7,0 Fácil e rápida com pacotes binários e instalador em português
GERENCIAMENTO
8,5 O pgAdmin III dá acesso a todos os recursos do banco, mas está só em inglês
FERRAMENTAS
8,5 Conta com ferramentas de geoprocessamento, administração, tunning e datawarehouse na web
DESENVOLVIMENTO
8,0 Pode ser feito em Java, Perl, PHP, TCL, C, C++ e qualquer linguagem com conectores de acesso como o .Net
SEGURANÇA
8,5 Dispõe de criptografia para proteger armazenamento, tráfego, atributos e autenticação
AVALIAÇÃO TÉCNICA (1) PREÇO LICENÇA
8,3 Gratuito BSD
CUSTO/BENEFÍCIO ONDE ENCONTRAR
www.info.abril.com.br/ download/4119.shtml
(1) Média ponderada considerando os seguintes itens e respectivos pesos: Instalação (10%), Gerenciamento (35%), Ferramentas (35%), Desenvolvimento (10%) e Segurança dos dados (10%).
TESTE/FIREBIRD
FIREBIRD POUPA A MÁQUINA
A VERSÃO 1.5.3 TEM RECURSOS PODEROSOS E DISPENSA EQUIPES DE MANUTENÇÃO POR HELIO SILVA
banco de dados Firebird está cada vez melhor, acompanhando os avanços dos concorrentes de código aberto MySQL e PostgreSQL. Nascido de uma iniciativa da Borland de abrir o código do seu banco Interbase 6, o Firebird chegou à versão 1.5.3 bem mudado, graças ao trabalho do IBPhoenix. Esse grupo de desenvolvedores já estabilizou a tradução do código da linguagem C para a C++, o que deve permitir ao pro-
O
duto alçar vôos mais altos entre a série de versões 1.5.x e a 2.0. No teste do INFOLAB, utilizamos o Firebird 1.5.3 Classic Server, a versão estável mais recente, rodando num PC com processador Pentium HT de 1,3 GHz e 512 MB de memória RAM.
INSTALAÇÃO A instalação é fácil, mas não atualiza as outras versões previamente instaladas. Ao contrário, pede a remoção de antigas edições de Inter-
EMS SQL Manager: interface gráfica elegante para Firebird com jeito de Windows XP 50 < C OL EÇ Ã O I NF O
TESTE/FIREBIRD
IBExpert: traz recursos
arrojados, como análise 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 básico não traz uma interface gráfica que facilite a administração do banco. Existe um projeto de interface gráfica de código aberto chamado FlameRobin (www.flamerobin.org ), que no futuro deve fazer parte do pacote, mas seu desenvolvimento ainda está em estágio 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 aparência bem próxima do Windows XP, usando o mesmo tipo de ícones. Na versão gratuita, ele já proINTERFACES vê todos os recursos necessários à De qualquer forma, o usuário não fiadministração. Já o brasileiro DBMaca desprovido de interface de gerennager tem como vantagem o suciamento. Pode escolher uma entre porte em português. as diversas disponíveis no site do IBSe a intenção for adquirir uma Phoenix (www.ibphoenix.com). ferramenta para ir além das ativiA maior parte delas é shareware dades normais de administração, com versões livres sem algumas então vale a pena dar uma boa olhafuncionalidades. da no IBExpert em sua versão coNo teste do INFOLAB, utilizamos mercial que, além da interface mais três interfaces de gecompleta para admiFIQUE LIGADO nistração, conta com renciamento: a DBManager (www.info. recursos arrojados Feito para aplicações como análise de perabril.com.br/downde médio porte, o Fireload/3682.shtml), da formance e até pesbird oferece baixo cusDBTools, a IBExpert quisas OLAP. Relemto de manutenção (www.info.abril.com. brando, por meio do
>
C OL E ÇÃ O I NF O > 51
TESTE/FIREBIRD
OLAP podem ser criadas visões multidimensionais do banco já agregadas, os famosos cubos. Esse tipo de visão facilita o desmembramento e a comparação de uma informação mensurável, como o faturamento, por exemplo. Com um cubo de faturamento fica fácil estabelecer as vendas por tipo de produto, por tipo de consumidor e por região de forma fácil e rápida.
DRIVERS Outra providência necessária após a instalação é cuidar da interoperabilidade com linguagens, geradores de relatório e outros bancos de dados. O site do IBPhoenix ajuda, indicando drivers ODBC e camadas de conectividade com Java e .NET. Nem todos são gratuitos e, mesmo os livres, requerem análise do tipo de licença de uso.
FIREBIRD 1.5.3 CLASSIC SERVER
RECURSOS O esforço de instalação e implantação vale a pena. A exemplo do Interbase, o Firebird dá conta de aplicações de médio porte. Seu diferencial é rodar em plataformas Windows e em muitos sabores de Unix, além de contar com recursos importantes, como suporte a transações, gatilhos e stored procedures desde sua primeira versão, enquanto o MySQL só trouxe esses recursos na 5.0, a mais recente. O sistema de transações do Firebird é robusto e admite os aninhamentos (nested transactions), que permitem a aplicação de novas regras quando uma transação encontra um erro em um determinado ponto de seu processamento, dando alternativas à conclusão da transação sem que se torne necessário desfazer toda a operação. As transações aninhadas permitem a aplicação de regras complexas de negócio dentro do banco, eliminando a programação na interface. A transferência de lógica de ne-
FABRICANTE
FirebirdSQL Foundation
PRÓS
Conta com recursos poderosos, como views, transações concorrentes e gatilhos
CONTRA
Depende de aplicativos de terceiros para a administração
INSTALAÇÃO
6,5 Bem traduzida, mas com longas explicações que precisam ser lidas
GERENCIAMENTO
6,5 Não tem interface gráfica de administração, exigindo ferramentas auxiliares
FERRAMENTAS
DESENVOLVIMENTO
SEGURANÇA
8,5
Ferramentas CASE, de administração e até OLAP podem ser encontradas na web
8,0 Muito bom para Delphi, com abertura para PHP, Perl, Java e .NET. Não tem criptografia
AVALIAÇÃO TÉCNICA (1) PREÇO LICENÇA
6,5 7,4
Gratuito IPL
CUSTO/BENEFÍCIO ONDE ENCONTRAR
www.info.abril.com.br/ download/2108.
(1) Média ponderada considerando os seguintes itens e respectivos pesos: Instalação (10%), Gerenciamento (35%), Ferramentas (35%), Desenvolvimento (10%) e Segurança dos dados (10%).
TESTE/FIREBIRD
DBManager: produzida no Brasil, a interface dá suporte ao Firebird em português
gócio para o banco de dados flexibiliza as opções de escolha de linguagens e ambientes de programação para interfacear com o banco, uma vez que simplifica a quantidade de regras que devem estar presentes no código. Esse aspecto é importante num mundo em que o banco tem de atender um servidor web, uma aplicação .Net e outras linguagens, mantendo sempre a coerência dos dados que lhe são inseridos ou requisitados. Outro ponto forte do Firebird é sua manutenção facilitada, praticamente dispensando a presença de um DBA dedicado a atividades de ajustes de desempenho do banco e controle de crescimento da base. A atividade de manutenção se resume ao backup e, eventualmente, uma recuperação de dados. Bancos
mais sofisticados como PostgreSQL, MS SQL Server, Oracle e DB2 entre outros demandam ajustes especializados durante seu ciclo de implantação, crescimento e produção. O baixo custo de manutenção torna o Firebird uma boa opção para empresas que não podem contar com uma equipe especializada para dar suporte a suas aplicações. A portabilidade do banco de dados entre múltiplas plataformas o torna também indicado para aplicações que operam com atualizações de bases off line e que tenham necessidade de integração 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 ).
TESTE/ACCESS
O ACCESS ENTRA EM REFORMA
UMA MUDANÇA DRÁSTICA NA INTERFACE COM O USUÁRIO É A PRINCIPAL NOVIDADE DO OFFICE 12, DA MICROSOFT POR PAULO SILVESTRE
interface baseada em menus já é tão familiar aos usuários do Windows que pode parecer temerário 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 escritório. O Office 12, nova versão com lançamento previs-
A
to para o fim de 2006, leva adiante uma tendência que já havia se esboçado nos betas do Windows Vista. No primeiro beta do Office 12, analisado pelo INFOLAB, os menus despareceram e deram lugar a uma interface com o usuário radicalmente diferente. A promessa é que, com isso, o software ficará mais fácil de usar. A avaliação do INFOLAB é que a nova in-
Access 12: a interface substitui os vários menus por um menu horizontal no alto
TESTE/ACCESS
terface é realmente mais prática. Com ela, será possível realizar mais tarefas com menos cliques na tela. Mas os usuários vão estranhar bastante.
FIM DOS MENUS O beta 1 do novo Office (o nome Office 12 não é definitivo) traz os aplicativos Excel, Word, PowerPoint, Access e Outlook, além de alguns programas auxiliares, como o InfoPath, usado para criar formulários em XML. O que mais chama a atenção é a nova organização visual. A idéia da Microsoft é que, com mais e mais recursos embutidos em seus diferentes programas, estava difícil para os usuários do Office encontrar o que procuravam numa árvore de menus e submenus cada vez mais complexa. OPÇÕES NOS PAINÉIS 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 usuário clica num dos itens, em vez de se abrir um submenu, aparece um painel com botões, ícones e outros elementos que acionam comandos ou acrescentam coisas ao documento. Está escrevendo um texto? O painel, com todos os comandos necessários para a função, aparece. Vai inserir uma imagem? Clique em Inserir na barra superior. Um painel que permite inserir não só a imagem, mas também planilhas, símbolos e qualquer outra coisa, é exibido.
Note que o usuário não mais precisa chamar uma caixa de diálogo depois de passar por vários 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 formatação de texto e dimensões de figuras e links para páginas da web, por exemplo, podem ser definidas nesse painel superior. Em muitas situações, o painel apropriado é exibido automaticamente. Por exemplo, ao clicar num gráfico, um painel de propriedades da imagem aparece.
FORMATOS DA GALERIA O Access e os outros programas do Office passam a trabalhar extensamente com galerias. Trata-se de con juntos predefinidos de formatações ou propriedades, como, por exemplo, o posicionamento de uma imagem em um texto. Os padrões mais comuns ou freqüentemente usados ficam disponíveis para uso imediato. Basta o usuário clicar sobre a representação gráfica do resultado para que o conjunto de parâmetros seja aplicado. Mas as tradicionais caixas de diálogo continuam disponíveis. OFFICE LIVE Como já acontecia nas versões anteriores, muitas das novidades do Office 12 são voltadas ao público empresarial. Uma delas é a integração com os serviços online que a Microsoft vem chamando de Office Live. Quando esses serviços estiverem disponíveis, os
TESTE/ACCESS
aplicativos poderão interagir com eles via internet. Há um pacote básico de serviços, que pode atender a uma pequena empresa, que estará incluído na licença do Office. Ele oferece, por exemplo, 30 MB num servidor para a hospedagem de um site e cinco contas de e-mail com o domínio da empresa. Outros serviços mais elaborados, como gerenciadores online de projetos e relatórios de despesas, estarão disponíveis por assinatura.
COLABORAÇÃO NA EQUIPE O Office 12 também traz melhorias nas ferramentas de colaboração. Os aplicativos permitem que usuários de um mesmo grupo realizem tarefas em conjunto. Além de poder gravar localmente seus documentos, os aplicativos permitem armazená-los num servidor para acesso coletivo. As atualizações feitas remotamente são sincronizadas com os arquivos locais, facilitando as revisões. Quando o trabalho é concluído, um dos autores pode “encerrar” o documento, que
passa a não aceitar mais alterações. O Office 12 deve ainda ganhar recursos que permitam a transferência de dados, conversas por áudio e por vídeo entre usuários. Além disso, poderão trocar mensagens instantâneas com colegas com comunicadores do MSN, da AOL e do Yahoo!.
FORMATOS DE ARQUIVOS O Office 12 destaca a gravação de arquivos em XML com compressão no padrão Zip. O objetivo é facilitar a troca de dados com outros aplicativos, incluindo os que rodam em servidores corporativos. Os formatos de arquivos atualmente usados continuarão disponíveis. Essas mudanças são muito bemvindas. Até porque, o Access continua o mesmo há dois anos, desde quando foi lançado o Office 2003. Nessa versão, o banco de dados passou a permitir aos desenvolvedores a criação de soluções mais sofisticadas em menor tempo. A integração 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: versão atual permite incluir vídeo, foto e som
56 < C OL E ÇÃ O I NF O
TESTE/INTERFACES
ADMINISTRAÇÃO É TUDO MERGULHE NAS INTERFACES E DESCUBRA RECURSOS BACANAS DO DB2 E DO SQL SERVER 2005 POR NIVALDO FORESTI
m sistema de banco de dados não é nada sem a sua parte de administração. Sem ela, teriamos de voltar a` época em que comandos com mais de duas linhas precisavam ser digitados para criar um campo em uma tabela. Além disso, controlar índices, utilização de campos e consumo de memória continuaria impensável em
U
Centro de Controle:
bancos de dados para pequenas e médias empresas. Para a alegria geral dos usu´arios, as versões Express gratuitas dos grandes competidoras dessa arena, Microsoft, Oracle e IBM, contêm recursos tão poderosos quanto os dos seus irmãos pagos. Aqui vamos explorar o mundo administrativo de duas versões Express, a do DB2, da IBM, e a do SQL Server 2005, da Microsoft.
caixas de diálogo e assistentes conduzem o usu´ario C OL EÇ ÃO I NF O > 57
TESTE/INTERFACES
permite executar programas em lote Centro de tarefas:
DB2 EXPRESS-C
Com uma interface extremamente simples e fácil de usar, o Centro de Controle programa de administração do DB2 Express-C, encara de frente qualquer ferramenta paga. Clique em qualquer ícone ou menu, e uma série de caixas de diálogo e assistentes o levarão a concluir a tarefa desejada. Para criar suas próprias tabelas no banco de dados de exemplo, basta expandir a árvore de visualização existente na janela Todos os Bancos de Dados, clicar na opção Tabelas com o botão direito do mouse e escolher a opção Criar Tabelas. Um assistente o levará pelos sete passos do processo. É importante usá-lo, pois recursos como criação de índices, restrições aos dados e multidimensões são tratadas com bastante clareza e na ordem correta de uso. Para adicionar uma coluna na ta-
bela, basta clicar no botão Incluir. Uma janela permite criar campos do tipo INT (inteiro) com três tipos diferentes, Char (Caracteres) com quatro tipos diferentes, binários incluindo BLOB, quatro tipos de campos gráficos, Data, Hora, TIMESTAMP, Decimal, Numérico, Real, ponto flutuante e Doublé. Caso você deseje incluir vários campos na tabela, clique em Aplicar em vez de OK, assim a janela permanece aberta para a inclusão dos demais campos. O usuário pode definir valores-padrão para os tipos CHAR, DATE, TIME e TIMESTAMP. Eles devem ser definidos dentro de aspas simples. Adicionalmente, é possível determinar uma fórmula para o preenchimento do campo. No entanto, em nenhum lugar da documentação foram encontradas funções, tais como Hoje ou Agora, ou como construir essas fórmulas para incluir nos campos. Os passos seguintes são os de escolher em que espaço a tabela será criada, a definição de que campos serão chaves, as dimensões e restrições. Com as restrições é possível 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 (restrições), nos programas de validação das aplicações ou em servidores específicos para regras de negócio. Para você ter paz de espírito, é aconselhável usar as restrições em campos, para que no futuro seus dados se mostrem inúteis. Outro detalhe importante é que a forma de cadastrar as restrições não é encontrada na documentação. Foi necessário 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 opções. Segundo, ao final você pode ver o código SQL gerado e salvá-lo para reutilização, modificá-lo ou simplesmente rever o que será feito na criação da tabela. O melhor de tudo é que o DB2 mostra uma janela apontando erros ou com a informação de sucesso durante a criação da tabela. Um trabalho importante realizado nas interfaces de administração são as consultas (queries). O administrador ou programador precisa verificar informações, 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 criação e execução de sua consulta. Com mais um clique em Executar e Acessar Plano é possível determinar o custo desses comandos dentro do seu programa. Entenda-se por custo o tempo que cada pedaço demora para ser executado. Assim, com algumas modificações, um programa otimizado será construído ou problemas de desempenho detectados. Outro procedimento comum em interfaces de administração são os backups. Com o Centro de Controle dá para fazer backups manuais ou cronogramados de forma simples e prática. Mais um assistente um clique em Anexar Plano diz o custo do comando Análise de consulta:
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 Replicação que será muito útil nas situações em que você quer manter seus sistemas em funcionamento, mesmo quando houver panes de energia ou outras catástrofes ou para ativar outros aplicativos quando determinados dados são modificados. Por fim, o Controle de Tarefas permite executar programas em lote tais como manutenções, exportações de arquivo, importações de dados de outras aplicações etc. SQL SERVER 2005 EXPRESS
O SQL Server 2005 Express veio substituir o MSDE (Microsoft SQL Server Desktop Engine). Essa mudança está fazendo bem a todos que usavam a versão Express anterior. Foi eliminado o Governor do MSDE, que tornava mais lenta a aplicação quando o programa tinha mais de cinco co-
nexões simultâneas, tornando o SQL Server Express muito mais usável. Mas existem limitações. A memória máxima suportada é de 1GB de RAM e limitado a somente um processador. O tamanho máximo do banco de dados é de 4GB. Além disso, nem todos os recursos existentes nas versões pagas estão disponíveis, o que inclui o serviço de relatórios (que estará disponível em uma versão avançada do Express), o serviço de notificação, o serviço de análise, a pesquisa full text, DTS e as facilidades de OLAP (Online Analytical Processing). O SQL Management Server Studio Express CTP é a suíte de administração e desenvolvimento do SQL Server Express Edition que substitui o Query Analyser e o Enterprise Manager da versão anterior, além de trazer várias facilidades. Embora complexa, a ferramenta é única e integrada para a realização de todas as tarefas necessárias. Você pode mudar a estrutura de uma base de dados, realizar consultas e outras tarefas importantes. Uma série 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 criação ou manutenção das bases de dados. Além disso, as diver-
TESTE/INTERFACES
sas configurações de visualização permitem criar um ambiente único para cada usuário. UM CLIQUE
Criar tabelas e colunas é trabalho para um clique no mouse. Todas as informações se encontram disponíveis, 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 próprio usuário para facilitar a padronização por todo o sistema. Por exemplo, você pode criar um campo chamado nome que tenha um tamanho específico e pode ser escolhido em qualquer tabela criada. O DB2 também tem essa função, mas ela está um pouco desorganizada e escondida na ferramenta de administração. As consultas podem ser feitas como no QBE, selecionado-se tabelas, campos e opções 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 é possível se realizar filtros. Os filtros abrem janelas que permitem um acesso mais amigável para os que estão começando no trabalho de programação. Criar índices é fácil e intuitivo. Basta clicar no campo ou na pasta índice da tabela e criar índices, até mesmo em XML. Além dis-
so, desse menu é possível reorganiza-los ou recria-los. O mesmo acontece com funções e stored procedures, todas a um clique do seu mouse. Outro recurso interessante é o de monitoração. Uma janela específica permite verificar quem ou que processos estão consumindo os recursos do servidor onde está o SQL Server Express 2005. Muito útil para diagnosticar problemas de desempenho. No geral o programa de administração é bom de se utilizar. No entanto, alguns recursos estão faltando. Por exemplo, as tarefas de manutenção se resumem a um assistente para backup, pouco para suportar aplicações robustas. Sentimos a falta também de importadores e exportadores de dados, o que dificulta aos novatos migrar dados de outros aplicativos. Essa função existe, mas somente para importar dados previamente exportados de alguma tabela do SQL Express. Monitoraç˜ao: verifica os processos
que consomem recursos do servidor
TUTORIAL/TABELAS
TABELAS SEM MISTÉRIO 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 confiáveis exige um bom conhecimento de detalhes, até porque as tabelas têm características 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 características sejam próprias das tabelas do Access, a maioria se aplica a outros programas do gênero.
C
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 opção salva a tabela
opções na coluna Tipo de Dados. Essas opções são 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 razão social. Na prática, o usuário quer cadastrar uma razão social que tem 55 caracteres, não vai conseguir e dirá que seu programa tem um bug terrível e chamar
TUTORIAL/TABELAS
Campo com valores:
as opções aparecem na caixa de combinação
você para consertá-lo somente por causa desses cinco caracteres. Para evitar problemas desse tipo, defina sempre um número grande — no caso, pode ser 100. O Access não reserva espaço para partes não utilizadas de um campo texto. Ou se ja, mesmo que você reserve 100, se o usuário só utilizar 30, o Access só consumirá o espaço correspondente a 30 caracteres. Não estranhe essa observação: há bancos de dados que usam toda a capacidade do campo, mesmo que esteja vazio. s MEMORANDO É idêntico ao tipo de dados Texto, mas sua capacidade é muito maior: até 65 535 caracteres. Não tem a propriedade Tamanho do Campo. O campo memorando é muito utilizado para armazenar observações ou quando se quer guardar muitas informações num campo só. s NÚMERO Destina-se a guardar números, geralmente utilizados em cálculos matemáticos ou como código de identificação. A proprieda-
de Tamanho do Campo para esse tipo de dado é também muito importante. Veja na tabela “O tamanho dos números” o quanto cada especificação numérica ocupa em cada caso. Com essa tabela, você pode definir o tamanho correto para o campo, levando em conta a informação que você quer guardar e o espaço em disco que ela usará. No entanto, mais importante que o tamanho ocupado é a capacidade do campo numérico. Se, por exemplo, você escolher para um campo o tipo Número Inteiro, precisa saber de antemão que esse campo não poderá armazenar números, positivos ou negativos, até cerca de 32700. Seu sistema dará erro se o usuário tentar registrar no campo o valor 40000. s DATA/HORA Usado para guardar data e hora. Note que não é data ou hora. O Access guarda esse tipo de dados em 8 bytes. Os limites de datas vão de 1 de janeiro do ano 100 até 31 de dezembro de 9999. Quando você insere apenas a data neste campo, o Access grava a hora zero (00:00:00) como complemento da data. Situação idêntica acontece se você informar apenas
TUTORIAL/TABELAS
Assistente de Pesquisa: orientação
sobre a origem do dado
as horas, só que a data é gravada como 30/12/1899, o dia inicial do calendário 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 numérico designado para armazenar valores monetários. O tamanho ocupado em disco é de 8 bytes, igual ao tipo de dados numérico com tamanho duplo. No entanto, só há quatro casas decimais e a parte inteira vai até 15 dígitos. s AUTONUMERAÇÃO É um tipo numérico de dados que é preenchido automaticamente pelo Access. É muito utilizado como código de identificação. Exemplo: código do cliente, código do pedido etc. Uma propriedade interessante desse tipo de dado é Novos Valores, que pode ser Incremento ou Aleatório. A primeira, Incremento, que é o padrão, gera números seqüenciais. A outra produz valores aleatórios, que
podem ser negativos ou positivos. s SIM/NÃO Ocupa apenas 1 bit de espaço em disco. É utilizado para guardar informações 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 não. s OBJETO OLE Serve para guardar objetos como documentos do Word, planilhas do Excel, gráficos, sons e outros. O objeto pode ser incorporado à tabela ou vinculado. s HYPERLINK Utilizado para guardar endereços web, e-mails etc. Basta clicar no endereço e abre-se a página ou arquivo a que ele se refere. Esse tipo de dado se divide em três partes: textodeexibição (o texto que aparece no campo ou controle); endereço (o caminho de um arquivo, ou URL); e subendereço (uma localização dentro do arquivo ou página). Cada uma dessas partes pode ter até 2048 caracteres. s ASSISTENTE DE PESQUISA Esse é um tipo de dado interessante, que poucas pessoas conhecem. Na verdade não é bem um tipo de dado, e sim uma opção que inicia um assistente para criar uma caixa de combinação, cuja lista de dados po-
TUTORIAL/TABELAS
de ser baseada em outra tabela, ou numa lista de valores que você pode criar no próprio assistente. Após executar essa opção, você pode ver que as propriedades da guia Pesquisa do campo criado estão preenchidas conforme o que foi escolhido no assistente. ENTRADA DE DADOS
Imagine que você tem um campo que armazena o número do documento de identidade de seus clientes e que os usuários ora digitam de um jeito ora de outro. Portanto, você não confiará nas informações digitadas. Para evitar isso, a propriedade Máscara 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 máscara de entrada: 99.000.000C\->a;0;_
A máscara de entrada se divide em três partes, separadas pelo ponto-e-vírgula: a primeira é a própria definição da entrada; a segunda, que pode ser 0 ou 1, indica se os caracteres literais, como o hífen do RG(-), devem ser gravados no campo ou não. A opção 0 grava esses Assistente de máscara: guia para a
digitação correta
caracteres; a terceira parte é o caractere que deve ser mostrado quando um dígito não está preenchido. Você pode colocar qualquer um — o padrão é o sublinhado ( _ ). Para que serve cada caractere na máscara de entrada? A resposta você tem na tabela Máscaras de Entrada, que mostra cada caractere e sua função. Outro exemplo é a máscara de entrada do telefone: "(0XX"99") "#999\-9999;0;_
Preenchido o campo, a máscara acima produz um resultado como: (0XX11) _867-9926. Uma opção interessante da propriedade Máscara de Entrada é que ela pode ser definida como Senha. Basta você digitar senha nessa propriedade e o que o usuário digitar nesse campo será exibido como asterisco(*). O Access tem ainda um assistente para máscara de entrada. Clique no botão Construtor e o programa exibe exemplos de máscara que você pode escolher e definir automaticamente para o seu campo. Outra
TUTORIAL/TABELAS
nota importante: os controles de formulário não herdam essa propriedade. Você pode estabelecer uma máscara de entrada para o campo, porém o controle vinculado ao campo, no formulário, pode ter outra máscara. Você então pergunta: então para que eu vou definir uma máscara de entrada para o campo? Calma, a máscara definida no campo vai automaticamente para o controle. Só que ela não é obrigatória. Se quiser, você pode definir outra. Mas o melhor de tudo é que, definida uma vez na tabela, ela pode permanecer igual em outras situações, o que ajuda na padronização do sistema.
A EXIBIÇÃO DOS DADOS Diferentemente da propriedade Máscara de Entrada, que define como os dados devem ser digitados, a propriedade Formato controla a sua exibição. Ou seja, você até pode estabelecer uma máscara de entrada que informa a data completa (00/00/0099), mas você quer que, no formulário ou relatório, ela apareça apenas com o ano e o mês, e nessa ordem (yyyy/mm). Assim como no caso da máscara de entrada, os controles do forConstrutor de campo: exemplos prontos com propriedades definidas 66 < C OL EÇ Ã O I NF O
mulário não herdam essa propriedade, ou seja, você pode mudar o formato do controle vinculado ao campo, no formulário, 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-vírgula. A primeira define o formato, se o dado for preenchido; e a segunda, se ele não for preenchido. Vamos esclarecer melhor com um exemplo. Imagine um campo de preenchimento não obrigatório, como hobbies da pessoa. Pode-se definir o seguinte formato para esse campo: >[Preto];“não informado”[Vermelho]. Se os hobbies forem informados, o texto inserido será exibido em maiúsculas e com a cor preta. Caso contrário, aparecerá a expressão “não informado” em vermelho. É isso mesmo, pode testar à vontade. Você pode pesquisar na Ajuda do Access e descobrir
TUTORIAL/TABELAS
Índice duplo: chave primária da tabela criada com dois campos
outras preciosidades sobre como exibir o texto quando ele é digitado. s NÚMERO E
MOEDA
Segue o mesmo padrão do tipo Texto e Memorando, porém 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”;“não 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 não há informações naquele campo, aparece a expressão “não informado”. s SIM/NÃO Esse formato se divide em três partes. A primeira não afeta em nada os resultados, porém tem de existir. Portanto, o formato começa com ponto-e-vírgula (ou se ja, o primeiro item fica em branco); a segunda é o formato para valores verdadeiros; e a terceira para valores falsos. Um exemplo clássico: o campo Situação informa se o funcionário está ativo ou não. Então, ele pode ter o seguinte formato: ;“Ativo”[Vermelho]; “Inativo” [Preto]. Se o funcionário está na ativa,
aparece “Ativo”, em vermelho; caso contrário, “Inativo”, em preto. s DATA/HORA Esse formato não segue o mesmo padrão dos anteriores: não é dividido em partes. O máximo que você pode fazer é definir a cor do texto. Mas a propriedade do formato de um campo do tipo Data/Hora é muito importante, pois ele é que define o que será exibido da informação digitada pelo usuário. Você pode fazer várias combinações. Por exemplo: para exibir apenas o mês, o ano, a hora e os minutos, defina o formato assim: mm/ yyyy hh:nn (veja bem: as duas últimas letras são enes, de navio, e não 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 máscara de entrada para C OL EÇ ÃO I NF O > 67
TUTORIAL/TABELAS
não deixar que seu campo caia no bug do ano 2000, que nada mais é do que entrar com os quatro dígitos do ano e exibi-los. Deve-se definir para os campos que irão armazenar datas a seguinte máscara de entrada: 00/00/0099. E o seu formato deve ser: dd/mm/yyyy
CONSISTÊNCIA DOS DADOS A propriedade Regra de Validação é superimportante para obter dados mais seguros desde o momento de sua edição, não permitindo que o usuário digite qualquer coisa e acabe gerando erros no sistema. Imagine que o seu cadastro de funcionários tem o campo Sexo, que deve ser preenchido com “M” ou “F”. Mas um usuário engraçadinho resolve colocar “H” na ficha de um funcionário. Numa parte qualquer do sistema, você filtra homens num bloco e mulheres em outro. Por causa do usuário que resolveu fazer graça, o funcionário em questão não aparecerá em
nenhum dos filtros. Um sistema profissional não pode deixar que isso aconteça. Para isso existe a regra de validação do campo. É muito simples: para o caso mencionado, basta digitar a seguinte regra na propriedade Regra de Validação do campo Sexo: “F” Ou “M”. Pronto, o campo só aceitará F ou M como conteúdo. Uma nota quanto a essa regra imposta ao campo Sexo é que o campo passa a ser de preenchimento obrigatório. Ou seja, ele não aceitará nulo (vazio). Outro exemplo: num campo onde se deve cadastrar o salário do funcionário numa empresa cujo salário mínimo é 500 reais. A regra seria, então, “maior que 500”. No entanto, pode-se não saber o salário do funcionário no momento em que ele é cadastrado: o valor será informado depois. Para dar incluir essa hipótese, a regra deve ser a seguinte: >500 Ou Nulo Ao contrário das outras propriedades até aqui apresentadas, os controles vinculados ao campo com regra de validação herdam, no formulário, a regra definida na tabela. Portanto, mesmo que você mude a regra para o controle vinculado ao campo, o valor que o usuário digitar deve satisfazer Regra de Validação: feita para garantir dados consistentes
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 consistência ainda pode ser feita no nível do registro. Os exemplos do campo Sexo e do Salário cuidam da consistência no nível do campo. A consistência de registro funciona da seguinte forma: imagine uma tabela onde são cadastrados os produtos e a porcentagem de cada setor da empresa na participação das vendas. A tabela contém 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 botão Propriedades, na barra de ferramentas, a fim de exibir a folha
de propriedades da tabela. Na propriedade Regra de Validação, digite a seguinte regra: [SetorA]+[SetorB]+[SetorC]=100 Uma propriedade complementar à Regra de Validação é a Texto de Validação. Nessa propriedade você insere um texto personalizado para ser mostrado, em vez da mensagem-padrão do Access, quando o usuário digita um valor incorreto.
INTEGRIDADE DOS DADOS Exemplo clássico: o número de CPF de uma pessoa é único — ou seja, nenhuma outra pessoa pode ter um CPF igual ao de outra. Portanto, não pode haver em seu cadastro de clientes dois ou mais RGs iguais. Para evitar isso, basta selecionar, na propriedade Indexado do campo CPF, a opção Sim (Duplicação não autorizada). Você pode querer uma integridade com dois campos. O número de um aluno na
MÁSCARAS DE ENTRADA
Caracteres utilizados na propriedade Máscaras de Entrada CARACTERE
DESCRIÇÃO
L0
Dígito (de 0 a 9, entrada obrigatória)
9
Dígito ou espaço (entrada não obrigatória)
#
Dígito ou espaço (entrada não obrigatória; os espaços são exibidos como vazios quando no modo Edição, mas os vazios são removidos quando os dados são salvos; sinais de adição e subtração são permitidos)
L
Letra (de A a Z, entrada obrigatória)
?
Letra (de A a Z, entrada opcional)
a
Letra ou dígito (entrada opcional)
A
Letra ou dígito (entrada obrigatória)
&
Qualquer caractere ou um espaço (entrada obrigatória)
CARACTERE
C ,,:;-/
DESCRIÇÃO
Qualquer caractere ou um espaço (entrada opcional) Marcador decimal e separadores de milhares, de data e de hora
<
Converte todos os caracteres para letras minúsculas
>
Converte todos os caracteres para letras maiúsculas
!
Define que a máscara de entrada seja exibida da direita para a esquerda, e não da esquerda para a direita
\
Define que o caractere seguinte seja exibido como caractere literal (por exemplo, \A é exibido simplesmente como A)
TUTORIAL/TABELAS
Valor-padrão: não é
preciso digitar o item que se repete no campo
classe deve ser único, porém esse número pode se repetir em outra classe. Logo, a chave deve ser o número da classe mais o número do aluno. Clique no botão Índices, na barra de ferramentas, e serão exibidos os índices da tabela. Na coluna Nome do Índice dê um nome sugestivo: ClasseAluno. Depois selecione os campos do número da classe e o do número 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 primário o campo matrícula. VALOR-PADRÃO O Valor-padrão de um campo também é uma propriedade muito importante. Ele facilita para o usuário o trabalho de edição. Normalmente, define-se como valor-padrão de um campo o valor de preenchimento mais freqüente. Se a loja está localizada em São Paulo, é bem provável que a maioria dos clientes seja dessa cidade. Então, os campos Cidade e Estado já de-
vem aparecer preenchidos com os valores “São Paulo”, “SP”. Assim, o operador praticamente não precisará digitar. É importante lembrar também que zero não é nulo. Zero é valor numérico — aliás, esse é o valor-padrão adotado pelo Access para os tipos de dados numéricos. Nulo é o valor de um campo não preenchido. Ou seja, nulo é igual a vazio. Quanto ao relacionamento do valor-padrão de um campo na tabela com o controle vinculado a ele num formulário, fica valendo, primeiramente, o definido para o controle. Contudo, se você não especificar um valorpadrão para o controle, será utilizado o definido para o campo. Neste tutorial você tomou contato com todos os itens que envolvem a criação de tabelas de um modo bem profissional. Vale lembrar que o 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 botão 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
RELATÓRIO FEITO COM VIEWS APRENDA A CRIAR UMA TABELA VIRTUAL QUE FAÇA AS CONTAS NECESSÁRIAS PARA UM RELATÓRIO DE VENDAS POR CARLOS CHERNIJ, COM FRED CARBONARE
ma das boas funcionalidades disponíveis no gratuito Oracle 10g Express Edition — ou Oracle XE — são as views, tabelas virtuais que podem ser usadas para poupar trabalho do programador na hora de criar consultas no banco de dados. As views não existem fisicamente — são geradas pelas consultas. Mas, depois de criadas, elas se comportam exatamente como uma tabela. Assim, as alterações realizadas na view são repassadas para a tabela física envolvida.
U
As views são muito usadas em bancos de dados complexos com diversas tabelas que formam conjuntos de dados, relatórios etc. E não são privilégio do Oracle — podem ser encontradas também em bancos de dados como PostgreSQL, MS SQL Server e MySQL 5.0. Neste tutorial, utilizaremos as views para gerar um relatório de vendas. Detalhe importante: o Oracle XE ainda está em versão beta (no começo de fevereiro de 2006, foi colocada à disposição dos internautas a edição Release Candidate 3). Por conta disso, algumas funções podem apre-
Oracle XE: a criação da views e a administração do banco de dados é feita via web C OL EÇ ÃO I NF O > 71
TUTORIAL/ORACLE EXPRESS
sentar problemas. No teste do INFOLAB, por exemplo, o upload de scripts não funcionou corretamente no navegador Firefox.
browser com a página de login do módulo de administração — é tudo feito via web. A página pode ser acessada também por meio do endereço
1. INSTALANDO
http://127.0.0.1:8080/htmldb/ htmldb na máquina em que o soft-
Faça o download do Oracle XE em
ware foi instalado.
www.info.abril.com.br/download/ 4346.shtml e execute o instalador.
2. CARREGANDO OS SCRIPTS
Apesar de o arquivo do programa possuir 200 MB, a instalação vai consumir cerca de 1 GB de espaço no disco rígido. Um momento importante do processo é a solicitação da senha para o usuário System, que tem os direitos administrativos. Vamos colocar a senha como sendo system, para facilitar. Após a instalação, 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
Na página de login, entre com o nome de usuário System e a senha escolhida durante a instalação. Vamos agora criar as tabelas que serão usadas no tutorial. Faça 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 módulo de administração, escolha a opção SQL. Clique então em SQL Scripts. Acione o botão Upload. No campo File, clique em Procurar e informe a localização do arquivo Criar.sql. No campo Script Name, digite Criar. Clique então no botão Upload, na parte superior da tela. A partir de agora, o script vai aparecer como um ícone sempre que se entrar na tela SQL Scripts.
3. CRIANDO AS TABELAS
Scripts: carregue e use o ícone Criar
Ainda na tela SQL Scripts (Home > SQL > SQL Scripts), clique no ícone do script Criar. Será aberta a janela do Script Editor com o código referente à criação das tabelas. Clique no botão Run, que fica na parte superior da tela. Será aberta a tela Run Script, onde é necessário confirmar a operação, clicando novamente no botão Run. Após a
TUTORIAL/ORACLE EXPRESS
Script Editor: um clique
em Criar abre o código de criação das tabelas
TB_CLIENTE e, depois, na aba Data para ver os dados iniciais que foram inseridos durante a criação das tabelas.
5. GERANDO O RELATÓRIO
execução do script, terão sido criadas as tabelas TB_CLIENTE, com informações dos clientes, TB_PEDIDO, com dados dos pedidos, TB_PRODUTO, com informações dos produtos, e TB_PEDIDO_PRODUTO, que relacionará os produtos aos pedidos.
4. VISUALIZANDO OS DADOS A partir da tela inicial do módulo de administração, clique em Object Browser > Browse > Tables. À 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
Vamos criar uma view que irá mostrar o total pedido por cliente do nosso banco de dados, gerando assim um relatório de vendas. Volte para a página inicial e escolha a opção Object > Browser > Create > View. No campo View Name, digite vw_total_pedidos_cliente . Na janela Query, cole o conteúdo do arquivo View.sql. O código é o seguinte: SELECT sum(total_pedido) as total, cod_cliente, nom_cliente FROM ( SELECT tb_pedido.cod_pedido, tb_pedido.cod_cliente,
Visualize: clique na aba Data para ver dados inseridos durante a criação das tabelas
TUTORIAL/ORACLE EXPRESS
tabela virtual, e todas as alterações que forem feitas nela serão transmitidas para as tabelas que a compõem. Para gerar um relatório 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 básica de comando SQL:
Relatório: 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 confirmação você já poderá ver o resultado, clicando na aba Data. Dessa forma, a view pode ser utilizada como se fosse uma 74 < C OL EÇ Ã O I NF O
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 atualizações nos dados de forma mais simples. Uma das possibilidades de aplicação é configurar permissões diferentes para as tabelas e para as views. Por exemplo, você pode ter uma senha de usuário no banco de dados sendo usada apenas para os scripts da área aberta do seu site. O internauta só terá acesso às views, o suficiente para fazer as pesquisas que deseja. Para acessar as tabelas originais, seria criado outro usuário, aplicando assim mais uma camada de segurança no banco de dados.
TUTORIAL/CONSULTAS
CRIE PESQUISAS COM CRITÉRIOS
SIGA OS PASSOS PARA MONTAR DE CONSULTAS SIMPLES A BUSCAS COM PARÂMETROS VARIÁVEIS NO DB2 POR FRED CARBONARE
lguma vez você criou consultas a banco de dados com critério? É bem provável que sim. E uma consulta com o critério OU em determinado campo, como Rio de Janeiro OU São Paulo? Provavelmente sim, também. Consultas com critérios são muito úteis. Quando desejamos que essas consultas sejam mais flexíveis, podemos substituir o critério fixo por um critério com parâmetros. Exemplo: [Cidade1] OU [Cidade2] Para treinar as consultas com critério, neste tutorial faremos um cadastro de clientes acessando o banco de dados DB2 Express-C.
A
No DB2: crie o banco de dados padrão
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.
1. BAIXE OS COMANDOS
Para facilitar a compreensão, primeiramente faça o download do arquivo db2.zip no endereço ftp://ftp.info. abril.com.br/ebd_db2.zip e descompacte-o. Nesse arquivo você encontrará os comandos SQL necessários para criar a tabela de exemplo.
2. CRIE A TABELA
No DB2 Express-C, crie um banco de dados padrão chamado Consulta. Em
Identificação: dê o nome Consulta
Ao dar um duplo clique sobre a tabela Clientes, veremos o seu conteúdo. Como você pode notar, trata-se de uma tabela simples, que armazena uma lista de clientes e as suas respectivas cidades. C OL EÇ ÃO I NF O > 75
TUTORIAL/CONSULTAS
dor “=”, e, em Valor, escolha a opção Listar valores. Na nova janela de valores, dê um duplo clique em São Bernardo. Basta clicar no botão > para adicionar o critério. Clique em OK e em Resultados da Consulta para ver o resultado.
5. CRITÉRIO OU Tabela: clique duplo exibe conteúdo
3. NOVA CONSULTA Como poderemos visualizar apenas os clientes localizados na cidade de São Bernardo do Campo? Criando, é claro, uma consulta com critério. Para isso, clique com o botão direito na tabela e escolha Consultar. Na janela Nova Consulta que se abriu, fique com a opção Selecionado > Assistente SQL. Ainda Na janela Nova Consulta, selecione Instrução SELECT > From e escolha a tabela Clientes.
Quando abrimos o assistente SQL do DB2 Express-C, ele zera toda a programação feita antes. Assim, para saber quais são os clientes de São Bernardo OU São Paulo, é necessário criar novamente o critério e adicionar um novo para a cidade de São Paulo, clicando no botão OR >.
Valores: adicione o novo critério
6. VISUALIZANDO O SQL Critério: escolha a opção Where
4. O CRITÉRIO Agora vamos colocar o critério. Para isso, escolha a opção WHERE. Nessa janela Where, escolha a coluna CIDADE, (imagem 008) opera-
Ao criarmos uma consulta no Assistente SQL, o programa, nos bastidores, cria uma instrução SQL para realizar a pesquisa solicitada. Ve ja como ficou no nosso primeiro exemplo: SELECT * FROM SQLJ.CLIENTES AS CLIENTES WHERE CLIENTES.CIDADE = ’São Bernardo’
TUTORIAL/CONSULTAS
7. RESTRINGINDO
Como ficou: visualize o código SQL
Quando adicionamos o critério para as duas cidades, se você observar a declaração SQL montada, vai notar que a cláusula WHERE mudou para: WHERE CLIENTES.CIDADE = ’São Bernardo’ OR CLIENTES.CIDADE = ’São Paulo’; Note que a diferença entre as duas instruções SQL é a quantidade de parâmetros contidos exatamente na cláusula Where. Da mesma forma, a diferença da cláusula Where entre uma consulta que possua o critério: “São Bernardo”, e outra com o critério: “São Bernardo” OU “São Paulo”, será a quantidade de campos na cláusula Where.
Vamos supor agora que você quer visualizar os clientes de “São Bernardo” OU “São Paulo”, mas apenas os que nasceram em 1990. Para isso usaremos o mesmo sistema de critérios, mas adicionando um outro, do tipo AND. De volta ao Assistente SQL, escolha a coluna DATANASC e o operador BETWEEN. Em valor mínimo coloque ‘1990-01-01’ e, em valor máximo, ‘1990-12-31’. Clique em "AND >". Agora, clique em OK e execute o comando, acionando Resultados da Consulta. Pronto, agora você pode usar o Assistente SQL para gerar comandos com critérios de acordo com a sua aplicação e extrair relatórios cada vez mais precisos do seu banco de dados. Esse exemplo, feito no DB2 Express-C, pode ser aplicado em qualquer outro banco de dados. A diferença vai ser mais visual do que conceitual, de acordo com o assistente do produto.
AND OU OR?
> Dúvidas sobre a utilização dos critérios AND e OR costumam ser freqüentes entre os iniciantes na arte de armazenar informação. Quando colocamos a instrução OR, acrescentamos registros ao resultado. Quando utilizamos AND, restringimos. Para exemplificar, ima-
gine um amigo procurando namorada. Ele prefere loiras de olhos azuis. Então deve especificar loira AND olhos azuis. Agora, se para você tanto faz se a moça é loira ou morena, defina a consulta com loiras OR morenas. Suas possibilidades serão maiores.
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 confiável e gratuito, o MySQL fica devendo uma interface gráfica 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 não é tão popular quanto o phpMyAdmin, que permite comandar o MySQL por meio de uma interface via web. Com ele, é possível criar e modificar bancos de dados sem escrever os comandos em SQL. O phpMyAdmin também é ótimo para aprender SQL, uma vez que pode-se visualizar o código 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 distribuições 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 reúne os três softwares. Vamos ao tutorial.
P
1. INSTALAÇÃO
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. CONFIGURAÇÃO
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 parâmetro host para o nome ou o endereço IP do servidor. Se o phpMyAdmin estiver na mesma máquina que o MySQL, deixe “localhost” mesmo. Caso seu MySQL utilize alguma porta especial, indique-a na linha seguinte. Coloque o número da porta entre os apóstrofos logo após o sinal de igual. A porta-padrão é a 3306. Caso ocorra algum tipo de pro-
TUTORIAL/INTERFACE WEB
blema, verifique se essa porta está liberada no firewall.
3. AUTENTICAÇÃO
Por padrão, o phpMyAdmin usa a autenticação baseada no computador. Você indica uma máquina cliente e ele só faz a conexão com ela. Vamos alterar isso para que a autenticação seja feita com base no nome de usuário. 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 apóstrofos. 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 usuário e deixe a senha em branco.
linhas horizontais, que são chamadas, respectivamente, de campos e registros. Vamos criar um pequeno banco de dados com o cadastro de clientes de uma empresa qualquer. Para começar, na página inicial do phpMyAdmin, procure o campo “Criar novo banco de dados”. Digite a palavra empresa nele e clique no botão Criar. Todos os nomes dos bancos de dados devem ser grafados em letras minúsculas.
5. TABELAS
O próximo passo será criar uma tabela. O próprio phpMyAdmin já sugere essa operação. Digite o nome tb_agenda para a tabela. Como ela terá nove campos, coloque o número 9 em Campos e pressione o botão Executar. É recomendável iniciar o nome de cada tabela com as letras “tb_”. Com essa nomenclatura, você poderá encontrar as tabelas mais facilmente no código-fonte do seu programa.
4. O BANCO DE
DADOS Um servidor como o MySQL pode conter vários bancos de dados. Cada um é formado por um certo número de tabelas. As tabelas são divididas em colunas e
Página inicial: ponto de partida do phpMyAdmin para a criação dos vários bancos de dados que o MySQL comporta
TUTORIAL/INTERFACE WEB
6. TIPOS DE CAMPO
As tabelas podem conter vários tipos de campo. Vamos dar uma olhada nos principais. s VARCHAR Armazena seqüências de letras e números. Valores armazenados nesse campo não podem ser usados para cálculos matemáticos (se você somar “1” + “2”, receberá “12” como resultado, em vez de “3”). s TEXT Usado para armazenar os textos. Se você tiver um sistema de notícias online, por exemplo, irá guardar cada um dos artigos em um campo TEXT. s DATE Campo usado para datas. Está presente na maioria das tabelas. s INT É um dos tipos de campo mais usados. Armazena números inteiros, sejam eles negativos ou positivos. s DECIMAL Armazena números decimais. Repare que, ao lado desse campo, aparece o item “tamanho/definir”. Esse valor indica a precisão do campo decimal que você está criando. Se você preencher com o valor 10,3, por exemplo, estará informando ao servidor que a precisão será de dez dígitos e três casas decimais. Se você não especificar nenhum valor, o sistema assume 10,0 como formato-padrão. s BLOB É normalmente usado para armazenar imagens.
7. DEFINIÇÕES
O phpMyAdmin mostra um formulário que devemos preencher com as definições dos nove campos da nossa tabela. Complete o formulário com os valores da tabela a seguir:
CAMPO
TIPO
TAMANHO/DEFINIR
cod
INT
nome
VARCHAR
100
telefone
VARCHAR
15
endereco
VARCHAR
50
cidade
VARCHAR
30
estado
VARCHAR
2
pais
VARCHAR
15
cep
VARCHAR
8
email
VARCHAR
30
Esqueça as demais especificações do phpMyAdmin, como Atributos, Nulo e Padrão. Esses itens não serão necessários e devem ser deixados em branco. Procure evitar o uso de cedilha, acentuação 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 primária, uma referência 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 confirmação aparecerá. Clique em OK. Agora ligue a numeração automática do campo cod. Ainda na guia Estrutura, pressione o ícone em forma de lápis que está ao lado desse campo e selecione a opção auto_increment, disponível em Extra. Clique em Salvar.
9. INSERINDO DADOS
Já podemos inserir dados na tabela. Primeiro, mostraremos como in-
TUTORIAL/INTERFACE WEB
10. DADOS NO
ATACADO A técnica do passo anterior para inserir dados não é muito prática se você precisar incluir muitos nomes. A melhor saída é criar um arquivo de texto com os dados e importálo para o MySQL. Para isso, coloque os Campos: especifique o nome, o tipo e o tamanho dados de cada cliencluir dados da forma convencional te numa linha, usando ponto-e-víre, em seguida, você verá como mongula como separador. Os campos tar o cadastro de clientes importandevem estar na ordem especificado dados de um arquivo de texto. da na tabela, como neste exemplo: Para incluir dados no MySQL, cli;“João da Silva”;“(11) 6000-1010”; “Rua do Endereço, 100”; que na guia Inserir, localizada na parte superior da janela do phpMyAd“SãoPaulo”;“SP”;“Brasil”; “01000000”;“[email protected]” min. O programa permite que você ;“Paulo da Silva”;“(21)1000-1212”; inclua dois registros de cada vez, bastando preencher o formulário com in“Rua do Teste, 200”;“Niterói”; “RJ”;“Brasil”;“10201000”; formações tais como nome, endereço e telefone dos clientes. Nesse momento, preencha apenas o item Valor. O item Funções permite que você dê um tratamento personalizado aos dados que está digitando, mas não vamos usá-no neste tutorial. Caso você queira incluir outros novos dados, marque a opção “In- Importar dados: faça um arquivo de texto e importe para o MySQL serir novo registro”.
TUTORIAL/INTERFACE WEB
“[email protected]” ;“Jorge Pinheiro”;“(609) 1000-1000”;“3rd Test Street”; “Adrian”;“MI”;“USA”;“11000123”; “[email protected]” 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 serão incorporados ao cadastro de clientes. A montagem do nosso banco de dados está concluída. Nos próximos dois passos, damos dicas para quem está aprendendo SQL.
11. EXAMINANDO O CÓDIGO Pode ser interessante dar uma olhada no código em SQL gerado pelo phpMyAdmin. Clique em Exportar e gere um arquivo com a extensão SQL. Depois, abra esse arquivo no Bloco de Notas ou num editor de programas. Analise o código e veja como o phpMyAdmin estruturou a tabela.
MySQL. Vamos ver exemplos das quatro operações básicas de bancos de dados — consulta, inclusão, edição e exclusão — 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 código 10. O parâmetro ORDER BY determina as linhas em ordem alfabética pelo campo nome. INSERT INTO tb_dados (endereco) VALUES (‘[email protected]’); Esse código insere o endereço 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 começarem com a letra a. O símbolo % é usado como curinga.
12. COM O SQL Há certas operações que não podem ser feitas apenas com o phpMyAdmin. Elas exigem a digitação de comandos em SQL. Isso é feito na guia SQL, bastando digitar os comandos e pressionar o botão Executar para enviá-los ao
SQL: os comandos são enviados direto para o MySQL
TUTORIAL/DESENVOLVIMENTO
ATUALIZAÇÃO É COM O AJAX
COMBINAÇÃO DE VÁRIAS TECNOLOGIAS, O AJAX AGILIZA OS APLICATIVOS QUE ACESSAM BANCOS DE DADOS ONLINE POR CARLOS CHERNIJ
Ajax vem dando o que falar no mundo dos sites dinâmicos. Essa técnica de desenvolvimento usa HTML, JavaScript, XML e alguma linguagem para a web, como PHP, ColdFusion, Java ou C# e tem no Google um ilustre usuário. Quando alguém distribui corações para os amigos no orkut, por exemplo, a página atualiza os campos correspondentes sem recarregar todo o resto, agilizando a operação. Num formulário normal da web, os dados fornecidos pelo internauta são enviados para o servidor,
O
que devolve uma nova página com o resultado. Para demonstrar como se programa em Ajax, vamos criar um serviço de cadastro com PHP e HTML.
1. O SERVIDOR
Para executar nosso exemplo, é preciso ter um servidor HTTP Apache 2.0 rodando PHP 4.4 no modo binário CGI e o banco de dados MySQL 4.1 ou mais recente. Esses recursos estão disponíveis 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 vários arquivos. Coloque essa pasta no diretórioraiz do servidor Apache (diretório htdocs). Para criar nossa aplicação, usaremos uma biblioteca de classes em PHP, a Xajax (www.info.abril.com.br/ download/4327.shtml). Ela está incluída no arquivo compactado, dentro da pasta includes, com o noFormulário: cadastro de clientes feito com Ajax me xajax.inc.php. C OL E ÇÃ O I NF 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 endereço correspondente para usá-lo, como neste exemplo: http://www.nome. com.br/phpmyadmin. phpMyAdmin: criação do banco de dados xajax Na tela inicial, procure o campo Criar Novo Banco de Da“senha” pelo nome de usuário e a sedos e digite xajax. Clique em Criar. nha que deverão ser usados para
3. TABELAS
Vamos gerar tabelas para a nossa aplicação. No phpMyAdmin, acione o menu do lado esquerdo da tela e selecione o banco de dados xajax. Ative, então, a aba MySQL. No campo Localização 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.
4. CONFIGURAÇÕES
Vamos editar o arquivo bd.inc.php que fica na pasta includes. Abra-o num editor de textos e procure: $conexao = mysql_connect (“localhost”,“usuário”,“senha”); mysql_select_db(‘meubanco’, $conexao); Substitua as palavras “usuário” e
acesso ao MySQL. Na linha de baixo, substitua “meubanco” por “xajax”.
5. O APLICATIVO
Para ver o aplicativo-exemplo funcionando, abra o browser e digite este endereço: http://www.nome. com.br/infoajax. No lugar de “www.nome.com.br”, coloque o endereço do seu site. Clique em Cadastrar e inclua dados de uma pessoa no banco. Depois, volte à página anterior e faça uma consulta.
6. EXAMINADO O CÓDIGO
Analisaremos a seguir o arquivo cadastro.php, que contém as rotinas para a inclusão de registros. Abra o arquivo num editor de textos e, logo no começo, observe a linha $xajax = new xajax();. Esse comando define o objeto xajax, que vai processar as ações de post do formulário. Um dos métodos é
TUTORIAL/DESENVOLVIMENTO
o $xajax->registerFunction(), que permite agregar funções escritas em PHP que realizarão operações com dados do formulário de forma assíncrona. Cada função dessas deve possuir um objeto da classe xajaxResponse(), que conterá os dados a atualizar.
7. TELA DE CADASTRO
Na tela de cadastro, o exemplo de uso do Ajax é composto dos menus com os dados de estado e cidade. A lista de cidades é atualizada de acordo com o estado escolhido. Para selecionar as cidades, há a função carregaCidades. No arquivo cadastro.php, observe o código dessa função. Após ler o valor selecionado no menu Estado, a função realiza uma consulta na tabela para selecionar as cidades correspondentes. Cada registro encontrado é adicionado ao objeto $objResponse, por meio do método addAssign. No código, temos esta linha: $objResponse->addAssig (“cidades”,“innerHTML”, $html) O item “cidades” é a identificação da divisão da página onde ficará o menu com as cidades, e “innerHTML” especifica que o conteúdo da variável $html vai substituir o código html dentro da divisão. No final, é chamado o método getXML(), que retorna uma seção de código XML ao objeto xajax. Após implementar a função, vamos incorporála ao xajax por meio do comando:
$xajax->registerFunction (“carregaCidades”)
8. XAJAX
Após a definição das funções, quando começa a seção de código HTML do arquivo cadastro.php, é preciso especificar que o xajax deve tomar para si os comandos de post do formulário. Isso é feito pelo comando $xajax->processRequests() Em seguida, devemos criar um evento que chamará a função que registramos no objeto xajax. Isso é feito na linha: