Upload
niccola-torres
View
851
Download
0
Embed Size (px)
Citation preview
CONTEÚDO
COLEÇÃO INFO > 5
CONTEÚDO
BANCO DE DADOS
EQUIPEEDIÇÃO Lucia ReggianiEDITORA DE ARTE Iara SpinaCAPA Crystian Cruz (arte) e Cellus (ilustração)COLABORADORES Carlos Chernij, Fred Carbonare, Helio Silva, Nivaldo Foresti (texto) e Rita Del Monaco (revisão)
4 < COLEÇÃO INFO
31 Linguagens: SQL é alíngua oficial08 Evolução: o banco vai do
mainframe ao cluster
38 Teste: reviramos o DB2 Express-C, da IBM
108 Certificação: laboratóriopara especialistas
89 Tutorial: dados Exif dasfotos para o SQL Express
42 Teste: o MySQL 5.0vem reforçado
BANCO DE DADOS08 > A aventura dos dados15 > Sabe o que é tupla?24 > Planeje bem
o seu banco31 > O banco fala SQLquês
TESTES34 > Um SQL Server
fácil de usar36 > Oracle em versão light38 >DB2 grátis com
tudo dentro42 > O MySQL ganha músculos47 > Missão crítica é
para Postgre 50 > Firebird poupa
a máquina54 > O Access entra
em reforma57 > Administração é tudo
TUTORIAIS62 > Tabelas sem mistério71 > Relatório feito com views75 > Crie pesquisas com
critérios78 > O phpMyAdmin
doma o MySQL83 > Atualização é com o Ajax86 > Pesquise bem no Access89 > O Exif vai para o banco97 > E-mail falso não entra100 > O Rails faz mais rápido105 > Controle os seus livros
CERTIFICAÇÕES108 > Especialistas em dados109 > Todo mundo
quer um OCP111 > Domine o DB2 em
seis etapas113 > Craques em SQL Server
004_CONTEUDO1.qxd 25/02/2006 20:53 Page 4
CONTEÚDO
COLEÇÃO INFO > 5
CONTEÚDO
BANCO DE DADOS
EQUIPEEDIÇÃO Lucia ReggianiEDITORA DE ARTE Iara SpinaCAPA Crystian Cruz (arte) e Cellus (ilustração)COLABORADORES Carlos Chernij, Fred Carbonare, Helio Silva, Nivaldo Foresti (texto) e Rita Del Monaco (revisão)
4 < COLEÇÃO INFO
31 Linguagens: SQL é alíngua oficial08 Evolução: o banco vai do
mainframe ao cluster
38 Teste: reviramos o DB2 Express-C, da IBM
108 Certificação: laboratóriopara especialistas
89 Tutorial: dados Exif dasfotos para o SQL Express
42 Teste: o MySQL 5.0vem reforçado
BANCO DE DADOS08 > A aventura dos dados15 > Sabe o que é tupla?24 > Planeje bem
o seu banco31 > O banco fala SQLquês
TESTES34 > Um SQL Server
fácil de usar36 > Oracle em versão light38 >DB2 grátis com
tudo dentro42 > O MySQL ganha músculos47 > Missão crítica é
para Postgre 50 > Firebird poupa
a máquina54 > O Access entra
em reforma57 > Administração é tudo
TUTORIAIS62 > Tabelas sem mistério71 > Relatório feito com views75 > Crie pesquisas com
critérios78 > O phpMyAdmin
doma o MySQL83 > Atualização é com o Ajax86 > Pesquise bem no Access89 > O Exif vai para o banco97 > E-mail falso não entra100 > O Rails faz mais rápido105 > Controle os seus livros
CERTIFICAÇÕES108 > Especialistas em dados109 > Todo mundo
quer um OCP111 > Domine o DB2 em
seis etapas113 > Craques em SQL Server
004_CONTEUDO1.qxd 25/02/2006 20:53 Page 4
Fundador: VICTOR CIVITA(1907-1990)
Diretora de Redação: Sandra CarvalhoRedatora-chefe: Débora Fortes Diretor de Arte: Crystian Cruz
Editores Seniores: Carlos Machado, Lucia Reggiani e Maurício GregoEditores: Airton Lopes, André Cardozo e Eric Costa
Repórter: Silvia Balieiro Estagiários: Danilo Gregório e Paulo de Alencar Revisora: Marta MagnaniEditor de Arte: Jefferson Barbato Designers: Catia Herreiro e Wagner RodriguesColaborador: Dagomir Marquezi Infolab: Osmar Lazarini (consultor de sistemas)
Colaborador: Eduardo Kalnaitis Estagiários: Bruno Roberti, Celso Rodrigues e Valdir Fumene Junior Info Online: Cristian Medeiros e Renata Verdasca (webmasteres)
Atendimento ao leitor: Virgílio Sousa www.info.abril.com.br
Apoio Editorial: Beatriz de Cássia Mendes, Carlos Grassetti Serviços Editoriais: Wagner BarreiraDepto. de Documentação e Abril Press: Grace de Souza Correspodente Internacional: Ruth de Aquino
PUBLICIDADE CENTRALIZADADiretores: Mariane Ortiz, Sandra Sampaio, Sérgio R. Amaral
Executivos de Negócio: Eliane Pinho, Letícia Di Lallo, Maria Luiza Marot, Marcelo Cavalheiro, Marcelo Dória,Nilo Bastos, Pedro Bonaldi, Robson Monte, Rodrigo Toledo, Sueli Cozza, Vlamir Aderaldo, Wlamir Lino
Publicidade Regional Diretor Jacques Baisi Ricardo Publicidade Rio de Janeiro: Diretor Paulo Renato Simões Gerente de Publicidade núcleo Tecnologia: Marcos Peregrina Gomez Executivos de Negócio: Andréia Balsi,
Emiliano Hansenn, Marcello Almeida e Renata Mioli MARKETING E CIRCULAÇÃO:
Gerente de Produto: Ricardo Fernandes, Coordenadora de eventos: Carol Fioresi, Estágiario de marketing: Maurício Simões RodriguesGerente 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 SantosAnalista: Tales Bombicini Processos: Ricardo Carvalho
ASSINATURAS:Diretora de Operações de Atendimento ao Consumidor: Ana Dávalos Diretor de Vendas: Fernando Costa
Editor: Roberto CivitaConselho Editorial: Roberto Civita (Presidente), Thomaz Souto Corrêa (Vice-Presidente),
Jose Roberto Guzzo, Maurizio Mauro
Presidente Executivo: Maurizio Mauro
Diretor Secretário Editorial e de Relações Institucionais: Sidnei BasileVice-Presidente Comercial: Deborah Wright
Diretora de Publicidade Corporativa: Thais Chede Soares B. Barreto
Diretor-Geral: Jairo Mendes LealDiretor de Núcleo: Alexandre Caldini
INTERNATIONAL ADVERTISING SALES REPRESENTATIVES Coordinator for International Advertising: Global Advertising, Inc., 218 Olive Hill Lane,Woodside,California 94062. UNITED STATES: CMP Worldwide Media Networks, 2800 Campus Drive, San Mateo, California 94403, tel. (650) 513 4200, fax (650) 513 4482. EUROPE:HZI International,Africa House, 64-78 Kingsway, London WC2B 6AH, tel. (20) 7242-6346, fax (20) 7404-4376. JAPAN: IMI Corporation, Matsuoka Bldg. 303, 18-25, Naka1- chome, Kunitachi, Tokyo 186-0004, tel. (03) 3225-6866, fax (03) 3225-6877. TAIWAN: Lewis Int’l Media Services Co. Ltd., Floor 11-14 no 46, Sec 2, Tun Hua SouthRoad, Taipei, tel. (02) 707-5519, fax (02) 709-8348
COLEÇÃO BANCO DE DADOS, edição 27, é uma publicação da Editora Abril S.A. Distribuída em todo o país pela Dinap S.A.Distribuidora Nacional de Publicações, São Paulo.
Presidente do Conselho de Administração: Roberto Civita
Presidente Executivo: Maurizio Mauro
Vice-Presidentes: Deborah Wright, Eliane Lustosa, Marcio Ogliara, Valter Pasquini
www.abril.com.br
IMPRESSA NA DIVISÃO GRÁFICA DA EDITORA ABRIL S.A.Av. Otaviano Alves de Lima, 4400, CEP 02909-900 - Freguesia do Ó - São Paulo - SP
Publicações da Editora Abril: Veja: Veja, Veja São Paulo, Veja Rio, Vejas Regionais Negócios: Exame, Você S/A A Consumo/Comportamento: NúcleoConsumo: Boa Forma, Elle, Estilo, Manequim Núcleo Comportamento: Claudia, Nova Núcleo Bem-Estar: : Bons Fluidos, Saúde!, Vida SimplesTurismo/Tecnologia: Núcleo Turismo: Guias Quatro Rodas, National Geographic, Viagem e Turismo Núcleo Homem: : Placar, Playboy, Quatro Rodas, VipNúcleo Tecnologia: Info, Info Canal, Info Corporate Cultura/Jovem: Núcleo Jovem: Bizz, Capricho, Flashback, Mundo Estranho, Superinteressante, SupersurfNúcleo Infantil: Atividades, Disney, Recreio Núcleo Cultura: : Almanaque Abril, Guia do Estudante, Aventuras na História, Revista das ReligiõesCasa/Semanais: Núcleo Casa e Construção: Arquitetura e Construção, Casa Claudia, Claudia Cozinha Núcleo Celebridades: Contigo! NúcleoSemanais: Ana Maria, Faça e Venda, Minha Novela, Tititi, Viva! Mais Fundação Victor Civita: Nova Escola
Publicidade São Paulo www.publiabril.com.br, Classificados tel.0800-7012066, Grande São Paulo tel. 3037-2700 ESCRITÓRIOS E REPRESENTANTES DE PUBLI-CIDADE NO BRASIL: Central-SP tel. (11) 3037-6564 Bauru Gnottos Mídia Representações Comerciais, tel. (14) 3227-0378, e-mail: [email protected]ém SRS Propaganda e Representações Ltda, tel (91) 3272-8195, e-mail: [email protected] Belo Horizonte tel. (31) 3282-0630, fax (31) 3282-0632Blumenau M. Marchi Representações, tel. (47) 3329-3820, fax (47) 3329-6191 Brasília Escritório: tels. (61) 3315-7554/55/56/57, fax (61) 3315-7558; Representante:Carvalhaw Marketing Ltda., tels (61) 3426-7342/ 3223-0736/ 3225-2946/ 3223-7778, fax (61) 3321-1943, e-mail: [email protected] Campinas CZ Press Com. eRepresentaçõ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/9602-3419, e-mail: [email protected] Curitiba Escritório: tel. (41) 3250-8000/8030/8040/8050/8080, fax (41) 3252-7110; Representante: Via Mídia Projetos Editoriais Mkt. e Repres. Ltda., telefax (41) 3234-1224, e-mail: [email protected] Florianópolis Interação Publicidade Ltda. tel. (48) 3232-1617, fax (48) 3232-1782, e-mail: [email protected] Fortaleza Midiasolution Repres.e Negoc. em Meios de Comunicação, telefax (85) 3264-3939, e-mail: [email protected] Goiânia Middle West Representações Ltda., tels.(62) 3215-5158,fax (62) 3215-9007, e-mail: [email protected] Joinville Via Mídia Projetos Editoriais Mkt. e Repres. Ltda., telefax (47) 3433-2725, e-mail: [email protected] Manaus Paper Comunicações, telefax (92) 3656-7588, e-mail: [email protected] MaringáAtitude de Comunicação e Representação, tele-fax (44) 3028-6969, e-mail: [email protected] Porto Alegre Escritório: tel. (51) 3327-2850, fax (51) 3227-2855; Representante: Print Sul Veículos de ComunicaçãoLtda., telefax (51) 3328-1344/3823/4954, e-mail: [email protected] ; Multimeios Representações Comerciais, tel.(51) 3328-1271, e-mail: [email protected] MultiRevistas Publicidade Ltda., telefax (81) 3327-1597, e-mail: [email protected] 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 SalvadorAGMN Consultoria Public. e Representação, tel.(71) 3341-4992/1765/9824/9827,fax: (71) 3341-4996, e-mail: [email protected] Vitória ZMR - Zambra Marketing Representações, tel. (27) 3315-6952, e-mail: [email protected]
BANCO DE DADOS_006.qxd 25/02/2006 21:02 Page 6
RECADO DA REDAÇÃO
DÁ-LHEINFORMAÇÃO!
universo do software égrande e abriga mundosmuito peculiares, comoo dos bancos de dados.
De obscuros repositórios dos main-frames, esses programas passarama estrelas de todo porte, organizan-do a explosão de informações gera-das pela vida digital de pessoas eempresas. Neles, tabelas são maisque colunas e linhas, os dados seagrupam em entidades e se relacio-nam abertamente, transacionam,disparam gatilhos e administram res-trições. Nesse mundinho, o e/ANDnão soma, diminui. E quem não sabedessa e outras pegadinhas lógicas,perde tempo fazendo besteira. Éaqui que se encaixa este especial.Aos novatos, contamos a históriagloriosa dos bancos de dados e des-trinchamos seus conceitos. De ban-deja, vai um roteiro para escolher osistema gerenciador, planejar e exe-cutar o banco da melhor forma pos-
sível. Testamos as novíssimas ver-sões gratuitas dos poderosos Oracle,DB2 e SQL Server 2005, dos livresMySQL, PostgreSQL e Firebird e dobeta repaginado do Access 12. Entre-gamos o jeito profissional de mon-tar tabelas e consultas, os segredosdas interfaces de administração euma porção de tutoriais com osvariados bancos. Você vai sabercomo extrair as informações Exif dasfotos digitais para o banco, criar rela-tórios com views, controlar os livrosemprestados, cadastrar e-mails váli-dos e muito mais. E se a animaçãochegar ao ponto de devotar a carrei-ra à administração dos bancos dedados, estão aquios caminhos paraas especializaçõesmais valorizadasda área. Aproveite.
LUCIA REGGIANIEDITORA DE BANCO DE DADOS
O
INFO COLEÇÃOUma publicação mensal da Editora Abril
Para contatar a redação:[email protected]
Para assinar a Coleção:(11) 3347.2121 — Grande São Paulo0800-701-2828 — Demais [email protected]
COLEÇÃO INFO > 7
BANCO_005i.qxd 25/02/2006 21:30 Page 7
HISTÓRIA
COLEÇÃO INFO > 9
A AVENTURA DOS DADOS
DO MAINFRAME À INTERNET, OS BANCOS DE DADOS TÊM MUITO PARA CONTAR
POR TAGIL OLIVEIRA RAMOS
HISTÓRIA
8 < COLEÇÃO INFO
rmazenar informaçõesorganizadas e recupe-rá-las sem faltar peda-ço sempre que neces-
sário. Dita assim, a missão dos ban-
cos de dados parece simples, trivial.Não deixa de ser verdade para astecnologias atuais, que disfarçam acomplexidade do processamento edo gerenciamento de dados com in-
A
terfaces gráficas e assistentes. Mas,no princípio, lidar com bases de da-dos era coisa cabeluda, encaradapor mainframes.
A história dos modernos bancosde dados começa na década de 60,quando os computadores amplia-ram a capacidade de armazenamen-to e se transformaram em possibi-lidade real para as empresas. Nãohavia ainda o conceito elaboradode banco de dados — o armazena-mento de informação digital basea-va-se em modelos de organizaçãodo mundo físico. No início, dois mo-
delos de bancos de dados foram de-senvolvidos: o de rede (Codasyl) eo hierárquico (IMS). O acesso à ba-se de dados era complicadíssimo, eos detalhes do armazenamento de-pendiam do tipo de dado a ser ar-quivado. Acrescentar um campo ex-tra à base requeria, muitas vezes,reescrever todo o esquema que sus-tentava a aplicação. A ênfase, nes-se caso, estava nos registros a se-rem processados, e não na estrutu-ra do sistema. Para fazer qualquermodificação, um usuário precisariaconhecer a estrutura física da basede dados. Sistemas comerciais bem-sucedidos, como o Sabre, da IBM eda American Airlines, utilizaram pormuitos anos esse tipo de modelo.
O MODELO DE CODDNo início dos anos 70, as coisas co-meçam a mudar. O pesquisador daIBM Edgar Frank Codd (1923-2003)propõe o modelo relacional para abase de dados. Mais do que isso, eleintroduz uma nova maneira de pen-sar a informação digital a ser gra-vada, recuperada e gerenciada, es-tabelecendo um jeito mais compu-tacional de tratar o relacionamen-to entre os dados. Esse sistema vi-rou padrão e é usado até hoje. O modelo abstrato de Codd é a pri-meira abordagem completa parauma base de dados, o resgate dasinformações, manipulação, integri-dade lógica, visualização, atualiza-ção e gerenciamento. Foi concebi-do para armazenar registros de da-
© ILUSTRAÇÃO PEPE CASALS
08_14_BANCO_HISTORIA1 25/02/2006 21:11 Page 8
HISTÓRIA
COLEÇÃO INFO > 9
A AVENTURA DOS DADOS
DO MAINFRAME À INTERNET, OS BANCOS DE DADOS TÊM MUITO PARA CONTAR
POR TAGIL OLIVEIRA RAMOS
HISTÓRIA
8 < COLEÇÃO INFO
rmazenar informaçõesorganizadas e recupe-rá-las sem faltar peda-ço sempre que neces-
sário. Dita assim, a missão dos ban-
cos de dados parece simples, trivial.Não deixa de ser verdade para astecnologias atuais, que disfarçam acomplexidade do processamento edo gerenciamento de dados com in-
A
terfaces gráficas e assistentes. Mas,no princípio, lidar com bases de da-dos era coisa cabeluda, encaradapor mainframes.
A história dos modernos bancosde dados começa na década de 60,quando os computadores amplia-ram a capacidade de armazenamen-to e se transformaram em possibi-lidade real para as empresas. Nãohavia ainda o conceito elaboradode banco de dados — o armazena-mento de informação digital basea-va-se em modelos de organizaçãodo mundo físico. No início, dois mo-
delos de bancos de dados foram de-senvolvidos: o de rede (Codasyl) eo hierárquico (IMS). O acesso à ba-se de dados era complicadíssimo, eos detalhes do armazenamento de-pendiam do tipo de dado a ser ar-quivado. Acrescentar um campo ex-tra à base requeria, muitas vezes,reescrever todo o esquema que sus-tentava a aplicação. A ênfase, nes-se caso, estava nos registros a se-rem processados, e não na estrutu-ra do sistema. Para fazer qualquermodificação, um usuário precisariaconhecer a estrutura física da basede dados. Sistemas comerciais bem-sucedidos, como o Sabre, da IBM eda American Airlines, utilizaram pormuitos anos esse tipo de modelo.
O MODELO DE CODDNo início dos anos 70, as coisas co-meçam a mudar. O pesquisador daIBM Edgar Frank Codd (1923-2003)propõe o modelo relacional para abase de dados. Mais do que isso, eleintroduz uma nova maneira de pen-sar a informação digital a ser gra-vada, recuperada e gerenciada, es-tabelecendo um jeito mais compu-tacional de tratar o relacionamen-to entre os dados. Esse sistema vi-rou padrão e é usado até hoje. O modelo abstrato de Codd é a pri-meira abordagem completa parauma base de dados, o resgate dasinformações, manipulação, integri-dade lógica, visualização, atualiza-ção e gerenciamento. Foi concebi-do para armazenar registros de da-
© ILUSTRAÇÃO PEPE CASALS
08_14_BANCO_HISTORIA1 25/02/2006 21:11 Page 8
HISTÓRIA
COLEÇÃO INFO > 11
deira. A primeira de-las, conhecida como“Lei da Informação”,dizia simplesmenteque todo dado deveser apresentado aousuário na forma detabela. A segunda, ou“Regra do Acesso Ga-rantido”, exige quetodo dado seja aces-sível sem ambigüidade e aconselhaque cada informação seja descritapor uma combinação de nome databela, chave primária e o nome docampo. E assim por diante.
O mesmo Codd cunharia o nomeOLAP (On-Line Analytical Proces-sing) para descrever uma ampla ca-tegoria de produtos de software quetinham as características de acessoaos dados propostas por ele. As 12Regras de seu padrão foram adota-das pela indústria de TI, forçandomuitas empresas a revisar seus pro-dutos para melhor se adequar aoscritérios OLAP de Codd.
Em 1976, outro avanço viria das pes-quisas de Peter P. Chen. Ele propõe omodelo Entidade-Relacio-namento (ER) para o designde banco de dados, dandoum importante passo paraa modelagem de alto nívele permitindo ao desenvol-vedor concentrar-se maisno uso das informações doque propriamente na estru-tura lógica que há por trásda tabela.
SURGE O DBASEA evolução natural dos bancos dedados passaria pelo estabelecimen-to de um padrão não-teórico: o dBa-se, ao ser lançado no final dos anos70, tornou-se uma referência. Suaorigem encontra-se em meados dosanos 60. Seu antecessor era um sis-tema chamado Retrieve, vendido pe-la Tymshare Corporation. Naquelaépoca, os computadores só eramencontrados em grandes gabinetes,no ambiente do trabalho.
O Retrieve era usado no Jet Pro-pulsion Laboratory (JPL), em Pasa-dena, na Califórnia. Nos anos 60,Jeb Long, um programador desselaboratório, recebeu a tarefa de es-
crever um programa quedesempenhasse as mes-mas funções que o Retrie-ve. Em 1973, ele se tornouengenheiro de softwaredo JPL. Ali ele desenvol-veu um programa de ge-renciamento de arquivoschamado JPLDIS (Jet Pro-pulsion Laboratory Dis-play Information System),
HISTÓRIA
10 < COLEÇÃO INFO
dos com estruturas relati-vamente simples e proces-sar transações simples.
A idéia começou a serdesenvolvida por Codd du-rante seu doutorado naUniversidade de Michigan.Em sua tese, ele apresen-tava uma espécie de “au-to-reprodução” feita emprogramas de computa-dores. O trabalho foi publicado em1967 no livro Cellular Automata, pu-blicado pela Academic Press. A idéiaera tão avançada que levou uma dé-cada para ser digerida.
Pelo menos dois protótipos prin-cipais de sistemas relacionais foramdesenvolvidos entre 1974 e 1977,mostrando aplicações práticas doque só existia na teoria.
Um dos protótipos era o Ingres,desenvolvido na UniversidadeBerkeley, que seria seguido pela In-gres Corporation, Sybase, MS SQLServer e Britton-Lee, dentre outras.
Esse tipo de sistema usaQUEL como linguagem depesquisa das bases de da-dos. O segundo protótipo,conhecido como SystemR, foi desenvolvido pelaIBM em San Jose, Califór-nia, e levou ao SQL/DS &DB2, da própria empresa,seguido por Oracle e HP.Nesse sistema, é utiliza-
da a SEQUEL como linguagem depesquisa de dados. Originalmente,as aplicações foram desenvolvidaspara os enormes mainframes.
AS DOZE REGRASO termo “relação” era usado porCodd de maneira estritamente ma-temática, dentro de uma tabela comlinhas e colunas que trabalhavamcom propriedades especiais. Embo-ra isso pareça óbvio atualmente, nãoera nada elementar nos anos 70.Tanto que Codd sentiu a necessida-de de estabelecer as 12 regras de
uma base de dadosrelacional, uma re-ceita para extrair domodelo algo quefuncionasse mesmo.Isso aconteceu em1974 e foi expandidoao longo das déca-das. Em 1990, a listacresceu para 333 re-querimentos.
Vistas com osolhos de hoje, as 12leis parecem brinca-
Mapa de relacionamento: a teoria de Codd na prática
dBase III: padrão de banco de dados para PCs nos anos 80Edgar Codd: pai domodelo relacional
Peter Chen: novomodelo de design
© FOTO DIVULGAÇÃO IBM © FOTO DIVULGAÇÃO
08_14_BANCO_HISTORIA1 25/02/2006 21:15 Page 10
HISTÓRIA
COLEÇÃO INFO > 11
deira. A primeira de-las, conhecida como“Lei da Informação”,dizia simplesmenteque todo dado deveser apresentado aousuário na forma detabela. A segunda, ou“Regra do Acesso Ga-rantido”, exige quetodo dado seja aces-sível sem ambigüidade e aconselhaque cada informação seja descritapor uma combinação de nome databela, chave primária e o nome docampo. E assim por diante.
O mesmo Codd cunharia o nomeOLAP (On-Line Analytical Proces-sing) para descrever uma ampla ca-tegoria de produtos de software quetinham as características de acessoaos dados propostas por ele. As 12Regras de seu padrão foram adota-das pela indústria de TI, forçandomuitas empresas a revisar seus pro-dutos para melhor se adequar aoscritérios OLAP de Codd.
Em 1976, outro avanço viria das pes-quisas de Peter P. Chen. Ele propõe omodelo Entidade-Relacio-namento (ER) para o designde banco de dados, dandoum importante passo paraa modelagem de alto nívele permitindo ao desenvol-vedor concentrar-se maisno uso das informações doque propriamente na estru-tura lógica que há por trásda tabela.
SURGE O DBASEA evolução natural dos bancos dedados passaria pelo estabelecimen-to de um padrão não-teórico: o dBa-se, ao ser lançado no final dos anos70, tornou-se uma referência. Suaorigem encontra-se em meados dosanos 60. Seu antecessor era um sis-tema chamado Retrieve, vendido pe-la Tymshare Corporation. Naquelaépoca, os computadores só eramencontrados em grandes gabinetes,no ambiente do trabalho.
O Retrieve era usado no Jet Pro-pulsion Laboratory (JPL), em Pasa-dena, na Califórnia. Nos anos 60,Jeb Long, um programador desselaboratório, recebeu a tarefa de es-
crever um programa quedesempenhasse as mes-mas funções que o Retrie-ve. Em 1973, ele se tornouengenheiro de softwaredo JPL. Ali ele desenvol-veu um programa de ge-renciamento de arquivoschamado JPLDIS (Jet Pro-pulsion Laboratory Dis-play Information System),
HISTÓRIA
10 < COLEÇÃO INFO
dos com estruturas relati-vamente simples e proces-sar transações simples.
A idéia começou a serdesenvolvida por Codd du-rante seu doutorado naUniversidade de Michigan.Em sua tese, ele apresen-tava uma espécie de “au-to-reprodução” feita emprogramas de computa-dores. O trabalho foi publicado em1967 no livro Cellular Automata, pu-blicado pela Academic Press. A idéiaera tão avançada que levou uma dé-cada para ser digerida.
Pelo menos dois protótipos prin-cipais de sistemas relacionais foramdesenvolvidos entre 1974 e 1977,mostrando aplicações práticas doque só existia na teoria.
Um dos protótipos era o Ingres,desenvolvido na UniversidadeBerkeley, que seria seguido pela In-gres Corporation, Sybase, MS SQLServer e Britton-Lee, dentre outras.
Esse tipo de sistema usaQUEL como linguagem depesquisa das bases de da-dos. O segundo protótipo,conhecido como SystemR, foi desenvolvido pelaIBM em San Jose, Califór-nia, e levou ao SQL/DS &DB2, da própria empresa,seguido por Oracle e HP.Nesse sistema, é utiliza-
da a SEQUEL como linguagem depesquisa de dados. Originalmente,as aplicações foram desenvolvidaspara os enormes mainframes.
AS DOZE REGRASO termo “relação” era usado porCodd de maneira estritamente ma-temática, dentro de uma tabela comlinhas e colunas que trabalhavamcom propriedades especiais. Embo-ra isso pareça óbvio atualmente, nãoera nada elementar nos anos 70.Tanto que Codd sentiu a necessida-de de estabelecer as 12 regras de
uma base de dadosrelacional, uma re-ceita para extrair domodelo algo quefuncionasse mesmo.Isso aconteceu em1974 e foi expandidoao longo das déca-das. Em 1990, a listacresceu para 333 re-querimentos.
Vistas com osolhos de hoje, as 12leis parecem brinca-
Mapa de relacionamento: a teoria de Codd na prática
dBase III: padrão de banco de dados para PCs nos anos 80Edgar Codd: pai domodelo relacional
Peter Chen: novomodelo de design
© FOTO DIVULGAÇÃO IBM © FOTO DIVULGAÇÃO
08_14_BANCO_HISTORIA1 25/02/2006 21:15 Page 10
HISTÓRIA
COLEÇÃO INFO > 13
HISTÓRIA
12 < COLEÇÃO INFO © FOTO DIVULGAÇÃO RATLIFF SOFTWARE PRODUCTIONS
escrito na linguagem For-tran para rodar num main-frame Univac 1108.
O JPLDIS foi, assim, amãe da linguagem dBase,que passou a rodar em mi-crocomputadores com osistema CP/M. Criada porum jovem programadordo JPL, Wayne Ratliff, seugrande sucesso baseava-se na simplicidade. Os co-mandos seguiam a lógica das pala-vras inglesas: use, find, list etc. NodBase, Ratliff partia de uma idéiatambém simples: desenvolver umprograma de banco de dados paradesktop baseado naquele que roda-va nos mainframes de seu trabalho.Fez tudo isso num computador mon-tado em sua casa.
Foi um grande progresso para aépoca. Não somente o programacriava tabelas e guardava dados,mas tinha a capacidade de criar pro-gramas ASCII (como arquivos batchdo DOS), que podiam então exibire imprimir as informações requisi-tadas. Ratliff batizou seu softwarede Vulcan (em homenagem ao Sr.
Spock, do filme Jornadanas Estrelas) e começoua vendê-lo por reembol-so postal.
Mais tarde, Long asso-ciou-se a Ratliff e traduziuaquela versão original dodBase II para rodar no IBMPC. Todo o trabalho foi fei-to em linguagem As-sembly. Jeb Long foi umdos fundadores da empre-
sa Ashton-Tate, ficou conhecido comum dos gurus do dBase e como res-ponsável também pelas versões dBase III e dBase IV.
AS LINGUAGENSEm 1984 surgiu o Clipper, linguagemde programação compatível com odBase III Plus, com desempenho de-zenas de vezes mais rápido que odBase original. Até meados da dé-cada de 90, o Clipper era o líder domercado de linguagens de desen-volvimento para micros. A partir daí,as linguagens visuais, criadas pararodar no ambiente Windows,começam a ganhar terreno.
Quando os bancos de dados rela-cionais estavam sen-do desenvolvidos, fo-ram criadas lingua-gens destinadas à suamanipulação. O de-partamento de pes-quisa da IBM desen-volveu a linguagemSQL (StructuredQuery Language) nos
anos 70. Somenteem 1986 o AmericanNational StandardsInstitute (ANSI) pu-blicou o SQL comoum padrão. A partirdaí, o SQL passou aser usado pela maio-ria das empresas.
Ao longo dos anos80, a linguagem SQLtorna-se praticamen-te universal. Por suavez, o DB2, da IBM, passou a ser o car-ro-chefe da empresa nesse segmen-to, que começa a experimentar ex-pressivo crescimento. Ao mesmo tem-po, as redes locais ganham espaçonas empresas, e o DB2 se mantém co-mo uma das fortes referências embancos de dados corporativos.
CHEGAM OS PCSCom a entrada dos PCs em cena, ascompanhias de banco de dados têmum crescimento notável. Novos no-mes dominam o cenário do software,como RIM, RBase 5000, Paradox,dBase, FoxBase e FoxPro. A transi-ção para a década de 90 deixa pou-cas empresas da geração anteriorcomo sobreviventes. O modelo clien-te-servidor torna-se a norma paraas futuras decisões de negócio, aomesmo tempo em que se verifica oestabelecimento das ferramentas deprodutividade pessoal, como Excele Access. É também um marco ini-cial para os protótipos dos bancosde dados orientados a objeto, ou
Object Database ManagementSystems (ODBMS).
O fenômeno da internet vem sacu-dir o ambiente de TI em meados dosanos 90. Começa-se a exigir de ma-neira frenética o acesso de compu-tadores remotos aos dados guarda-dos nos sistemas legados. Na outraponta, os bancos de dados se adap-tam para servir às demandas da web— o que significa acesso às informa-ções, de qualquer lugar, via browser.
No final dos anos 90, o intenso in-vestimento das empresas na inter-net abastece o mercado com cente-nas de ferramentas para conectaros bancos de dados à web. Crescemas ofertas de novos produtos e no-vas tecnologias. Com o passar dotempo, destacam-se duas áreas bá-sicas: de um lado, as soluções ba-seadas na plataforma Java, da Sun.Empresas como a própria Sun, alémde IBM e Oracle, têm bancos de da-dos ou ferramentas para desenvol-vimento nessa área. Do outro lado,estão as empresas que oferecem
FoxPro para DOS: gerenciador baseado em dBase
DB2, da IBM: referência em banco de dados corporativo
Wayne Ratliff:criador do Vulcan
08_14_BANCO_HISTORIA1 25/02/2006 21:26 Page 12
HISTÓRIA
COLEÇÃO INFO > 13
HISTÓRIA
12 < COLEÇÃO INFO © FOTO DIVULGAÇÃO RATLIFF SOFTWARE PRODUCTIONS
escrito na linguagem For-tran para rodar num main-frame Univac 1108.
O JPLDIS foi, assim, amãe da linguagem dBase,que passou a rodar em mi-crocomputadores com osistema CP/M. Criada porum jovem programadordo JPL, Wayne Ratliff, seugrande sucesso baseava-se na simplicidade. Os co-mandos seguiam a lógica das pala-vras inglesas: use, find, list etc. NodBase, Ratliff partia de uma idéiatambém simples: desenvolver umprograma de banco de dados paradesktop baseado naquele que roda-va nos mainframes de seu trabalho.Fez tudo isso num computador mon-tado em sua casa.
Foi um grande progresso para aépoca. Não somente o programacriava tabelas e guardava dados,mas tinha a capacidade de criar pro-gramas ASCII (como arquivos batchdo DOS), que podiam então exibire imprimir as informações requisi-tadas. Ratliff batizou seu softwarede Vulcan (em homenagem ao Sr.
Spock, do filme Jornadanas Estrelas) e começoua vendê-lo por reembol-so postal.
Mais tarde, Long asso-ciou-se a Ratliff e traduziuaquela versão original dodBase II para rodar no IBMPC. Todo o trabalho foi fei-to em linguagem As-sembly. Jeb Long foi umdos fundadores da empre-
sa Ashton-Tate, ficou conhecido comum dos gurus do dBase e como res-ponsável também pelas versões dBase III e dBase IV.
AS LINGUAGENSEm 1984 surgiu o Clipper, linguagemde programação compatível com odBase III Plus, com desempenho de-zenas de vezes mais rápido que odBase original. Até meados da dé-cada de 90, o Clipper era o líder domercado de linguagens de desen-volvimento para micros. A partir daí,as linguagens visuais, criadas pararodar no ambiente Windows,começam a ganhar terreno.
Quando os bancos de dados rela-cionais estavam sen-do desenvolvidos, fo-ram criadas lingua-gens destinadas à suamanipulação. O de-partamento de pes-quisa da IBM desen-volveu a linguagemSQL (StructuredQuery Language) nos
anos 70. Somenteem 1986 o AmericanNational StandardsInstitute (ANSI) pu-blicou o SQL comoum padrão. A partirdaí, o SQL passou aser usado pela maio-ria das empresas.
Ao longo dos anos80, a linguagem SQLtorna-se praticamen-te universal. Por suavez, o DB2, da IBM, passou a ser o car-ro-chefe da empresa nesse segmen-to, que começa a experimentar ex-pressivo crescimento. Ao mesmo tem-po, as redes locais ganham espaçonas empresas, e o DB2 se mantém co-mo uma das fortes referências embancos de dados corporativos.
CHEGAM OS PCSCom a entrada dos PCs em cena, ascompanhias de banco de dados têmum crescimento notável. Novos no-mes dominam o cenário do software,como RIM, RBase 5000, Paradox,dBase, FoxBase e FoxPro. A transi-ção para a década de 90 deixa pou-cas empresas da geração anteriorcomo sobreviventes. O modelo clien-te-servidor torna-se a norma paraas futuras decisões de negócio, aomesmo tempo em que se verifica oestabelecimento das ferramentas deprodutividade pessoal, como Excele Access. É também um marco ini-cial para os protótipos dos bancosde dados orientados a objeto, ou
Object Database ManagementSystems (ODBMS).
O fenômeno da internet vem sacu-dir o ambiente de TI em meados dosanos 90. Começa-se a exigir de ma-neira frenética o acesso de compu-tadores remotos aos dados guarda-dos nos sistemas legados. Na outraponta, os bancos de dados se adap-tam para servir às demandas da web— o que significa acesso às informa-ções, de qualquer lugar, via browser.
No final dos anos 90, o intenso in-vestimento das empresas na inter-net abastece o mercado com cente-nas de ferramentas para conectaros bancos de dados à web. Crescemas ofertas de novos produtos e no-vas tecnologias. Com o passar dotempo, destacam-se duas áreas bá-sicas: de um lado, as soluções ba-seadas na plataforma Java, da Sun.Empresas como a própria Sun, alémde IBM e Oracle, têm bancos de da-dos ou ferramentas para desenvol-vimento nessa área. Do outro lado,estão as empresas que oferecem
FoxPro para DOS: gerenciador baseado em dBase
DB2, da IBM: referência em banco de dados corporativo
Wayne Ratliff:criador do Vulcan
08_14_BANCO_HISTORIA1 25/02/2006 21:26 Page 12
HISTÓRIA
14 < COLEÇÃO INFO
produtos fundamentados nas tec-nologias ASP e, mais recentemen-te, .Net, da Microsoft. No item es-pecífico dos gerenciadores de ban-cos de dados, os grandes nomes sãoIBM, Oracle e Microsoft. Com a ex-pansão da conectividade, os ban-cos de dados estendem as possibi-lidades de acesso até aos PDAs.
AOS TERABYTESMas as tendências apontam parasistemas de alto nível de armaze-namento (da ordem de terabytes)que exigem rapidez e confiabili-dade de processamento, manuseioe análise dos dados. Projetos gran-diosos, como o Genoma, apontampara esse tipo de demanda. Aomesmo tempo, bases de dadosgeológicos, meteorológicos e es-paciais requerem mais velocida-de e segurança. Também se tor-nam comuns as aplicações empre-sariais de data mining, data ware-house e data marts. Esses usos do
banco de dados exigem gerencia-dores capazes de dar respostas rá-pidas às empresas.
Nessa área, a Oracle se destacacomo o maior fornecedor de ban-cos de dados corporativos. Desde1985, o produto passou a tirar pro-veito da disseminação das redes lo-cais, dando suporte ao modelo clien-te-servidor. O Oracle 5, dessa épo-ca, suportava consultas distribuí-das. Em 1988, surgiu a versão 8, comsuporte ao desenvolvimento orien-tado a objeto e aplicações multimí-dia. Em 1999, sai a versão 8i — i deinternet. O número atual é 10g, sen-do o g indicativo da capacidade defuncionar num grid de servidores.O Oracle também foi o primeiro ban-co de dados comercial a ofereceruma versão para Linux.
Finalmente, deve-se prestaratenção ao crescimento das plata-formas de código aberto, notada-mente o Linux. Junto com ele, des-pontam bancos de dados como o
MySQL, utilizado emaplicações web. Es-sa mudança em di-reção ao software li-vre pode redefinir operfil do mercadode banco de dados,em especial na fai-xa das aplicaçõesmédias e pequenas,a curto prazo, masabarcando as gran-des aplicações, alongo prazo.
Oracle 10g: gerenciador de bancos de dados para clusters
08_14_BANCO_HISTORIA1 25/02/2006 21:50 Page 14
SABE O QUEÉ TUPLA?
ENTENDA OS CONCEITOS QUE FAZEM DO BANCO DE DADOSUM MUNDO À PARTE NO UNIVERSO DO SOFTWARE
POR CELSO HENRIQUE PODEROSO DE OLIVEIRA
CONCEITOS
COLEÇÃO INFO > 15
odo mundo que usa te-lefone possui uma agen-da. Nela, cada amigotem nome, endereço,
número da linha, data de aniversá-rio e e-mail, cada dado anotado numespaço especial. Quando precisa-mos ligar para algum contato, va-mos à letra inicial do nome e bus-camos o número do telefone. Essaagendinha quase banal expressa
bem o que é um banco de dados —um armazém de informações rele-vantes, organizadas de maneira coe-rente e lógica, que precisam ser re-cuperadas com freqüência.
No universo dos bits e bytes, obanco de dados envolve conceitosimportantes, que precisamos enten-der bem para torná-lo útil e eficien-te. É disso que trataremos aqui, co-meçando pelo próprio.
T
Sistema gerenciador: coleção de programas que mantêm as estruturas do banco
015_CONCEITOS 25/02/2006 21:31 Page 15
CONCEITOS
COLEÇÃO INFO > 17
CONCEITOS
16 < COLEÇÃO INFO
acesso, redundância e integridade, ocompartilhamento de dados e o me-canismo de cópias de segurança.
MODELAGEM DE DADOSProcesso pelo qual trabalham-se osdados de uma empresa ou sistemapara se obter estruturas de armaze-namento estáveis. O processo de aná-lise pode se dar por meio da criaçãodo Modelo de Entidade X Relaciona-mento ou pela Normalização de Da-dos. O objetivo da modelagem é fa-zer com que as estruturas possamevoluir no tempo, sem prejudicar odesenvolvimento de sistemas.
MODELO DE ENTIDADEX RELACIONAMENTO
Modelo que contém as entidades deum sistema e o relacionamento en-tre elas. Deve ser entendido comouma representação da realidade. Co-mo sempre é possível modificar arealidade de um sistema, deve serprevista a evolução do modelo.
ENTIDADEEntende-se como um grupo de coi-sas semelhantes. Essas coisas podemter uma existência física (pessoa, car-ro, imóvel), ser um documento (no-
ta fiscal, pedido de compra, ordemde serviço), um local (armazém, se-de, filial) ou qualquer outro objeto domundo real. Cada entidade deve pos-suir diversas instâncias do objeto querepresenta. Vamos exemplificar comos automóveis. A entidade é o gru-po carro. A instância é o objeto Hon-da Civic, Peugeot 206, VW Gol.
Quando se transpõe a entidade pa-ra um modelo físico, tem-se a tabe-la (no modelo relacional) ou a classe(no modelo orientado a objeto). Umaentidade é representada por um re-tângulo com o respectivo nome.
ATRIBUTOQualificador lógico de um objeto, ser-ve para descrever ou caracterizar oselementos de uma entidade. Cada atri-buto deve conter apenas uma carac-terística do objeto. Esse ponto é im-portante para não confundirmos atri-buto com entidade.
Um objeto deve ter algumas carac-terísticas específicas. Cada uma delasserá um atributo do objeto. O inver-so é também verdadeiro: um atribu-to não pode ter subdivisões. Se utili-zar o exemplo da entidade carro, po-demos ter atributos como nome, mon-tadora, modelo etc.
Quando se transpõe para o mode-lo físico, os atributos se transformamem colunas ou campos no modelo re-
lacional e em atributos ou proprieda-des no modelo orientado a objetos.Os atributos são colocados dentro doretângulo que representa a entidadee abaixo do nome da própria.
TUPLANada mais é do que o conjunto de ca-racterísticas do objeto que se quer re-presentar, a estrutura de atributos re-lacionados e interdependentes. A tu-pla seria a linha ou o registro de umatabela no modelo relacional e a ins-tância no modelo orientado a objetos.
TABELAEstrutura composta por linhas e co-lunas que serve para armazenar osdados em um banco de dados rela-cional. A linha indica uma ocorrên-cia do objeto do mundo real, e a co-luna serve para qualificar o objeto.Dessa forma, se imaginarmos umatabela PESSOA, ela teria em cada li-nha uma pessoa e em cada colunaas informações relevantes dessa pes-soa, como nome, peso, altura, datade nascimento, documento de iden-tificação, cor dos olhos, cor dos ca-
Interface DB2: administração gráfica
Modelo: entidade x relacionamento
Entidade: grupo de coisas semelhantes
Tabela: estrutura com linhas e colunas
BANCO DE DADOSDefini-lo como uma ou mais tabelasde dados relacionadas ou não é pos-sível. Mas podemos acrescentar à lis-ta de componentes os índices, visões(views), procedimentos (procedures),funções, gatilhos (triggers) etc. Tudodepende do tipo de banco de dadose do que se quer fazer com ele. Par-tindo-se desse princípio, podem serconsiderados banco de dados os ar-quivos DBF que foram muito popu-lares na década de 80 com a lingua-gem Clipper, um arquivo MDB do MSAccess ou mesmo arquivos DAT, pro-prietários de linguagens de terceirageração como Pascal e Cobol.
SISTEMA GERENCIADORÉ uma coleção de programas res-ponsáveis pela manutenção das es-truturas e objetos de um banco dedados. Há diversos produtos comer-ciais e de uso livre. Entre os pagosdestacam-se Oracle, IBM DB2 e MSSQL Server. Entre os livres, MySQL,Firebird e PostgreSQL.
Os gerenciadores têm como carac-terísticas principais os controles de
015_CONCEITOS 25/02/2006 21:32 Page 16
CONCEITOS
COLEÇÃO INFO > 17
CONCEITOS
16 < COLEÇÃO INFO
acesso, redundância e integridade, ocompartilhamento de dados e o me-canismo de cópias de segurança.
MODELAGEM DE DADOSProcesso pelo qual trabalham-se osdados de uma empresa ou sistemapara se obter estruturas de armaze-namento estáveis. O processo de aná-lise pode se dar por meio da criaçãodo Modelo de Entidade X Relaciona-mento ou pela Normalização de Da-dos. O objetivo da modelagem é fa-zer com que as estruturas possamevoluir no tempo, sem prejudicar odesenvolvimento de sistemas.
MODELO DE ENTIDADEX RELACIONAMENTO
Modelo que contém as entidades deum sistema e o relacionamento en-tre elas. Deve ser entendido comouma representação da realidade. Co-mo sempre é possível modificar arealidade de um sistema, deve serprevista a evolução do modelo.
ENTIDADEEntende-se como um grupo de coi-sas semelhantes. Essas coisas podemter uma existência física (pessoa, car-ro, imóvel), ser um documento (no-
ta fiscal, pedido de compra, ordemde serviço), um local (armazém, se-de, filial) ou qualquer outro objeto domundo real. Cada entidade deve pos-suir diversas instâncias do objeto querepresenta. Vamos exemplificar comos automóveis. A entidade é o gru-po carro. A instância é o objeto Hon-da Civic, Peugeot 206, VW Gol.
Quando se transpõe a entidade pa-ra um modelo físico, tem-se a tabe-la (no modelo relacional) ou a classe(no modelo orientado a objeto). Umaentidade é representada por um re-tângulo com o respectivo nome.
ATRIBUTOQualificador lógico de um objeto, ser-ve para descrever ou caracterizar oselementos de uma entidade. Cada atri-buto deve conter apenas uma carac-terística do objeto. Esse ponto é im-portante para não confundirmos atri-buto com entidade.
Um objeto deve ter algumas carac-terísticas específicas. Cada uma delasserá um atributo do objeto. O inver-so é também verdadeiro: um atribu-to não pode ter subdivisões. Se utili-zar o exemplo da entidade carro, po-demos ter atributos como nome, mon-tadora, modelo etc.
Quando se transpõe para o mode-lo físico, os atributos se transformamem colunas ou campos no modelo re-
lacional e em atributos ou proprieda-des no modelo orientado a objetos.Os atributos são colocados dentro doretângulo que representa a entidadee abaixo do nome da própria.
TUPLANada mais é do que o conjunto de ca-racterísticas do objeto que se quer re-presentar, a estrutura de atributos re-lacionados e interdependentes. A tu-pla seria a linha ou o registro de umatabela no modelo relacional e a ins-tância no modelo orientado a objetos.
TABELAEstrutura composta por linhas e co-lunas que serve para armazenar osdados em um banco de dados rela-cional. A linha indica uma ocorrên-cia do objeto do mundo real, e a co-luna serve para qualificar o objeto.Dessa forma, se imaginarmos umatabela PESSOA, ela teria em cada li-nha uma pessoa e em cada colunaas informações relevantes dessa pes-soa, como nome, peso, altura, datade nascimento, documento de iden-tificação, cor dos olhos, cor dos ca-
Interface DB2: administração gráfica
Modelo: entidade x relacionamento
Entidade: grupo de coisas semelhantes
Tabela: estrutura com linhas e colunas
BANCO DE DADOSDefini-lo como uma ou mais tabelasde dados relacionadas ou não é pos-sível. Mas podemos acrescentar à lis-ta de componentes os índices, visões(views), procedimentos (procedures),funções, gatilhos (triggers) etc. Tudodepende do tipo de banco de dadose do que se quer fazer com ele. Par-tindo-se desse princípio, podem serconsiderados banco de dados os ar-quivos DBF que foram muito popu-lares na década de 80 com a lingua-gem Clipper, um arquivo MDB do MSAccess ou mesmo arquivos DAT, pro-prietários de linguagens de terceirageração como Pascal e Cobol.
SISTEMA GERENCIADORÉ uma coleção de programas res-ponsáveis pela manutenção das es-truturas e objetos de um banco dedados. Há diversos produtos comer-ciais e de uso livre. Entre os pagosdestacam-se Oracle, IBM DB2 e MSSQL Server. Entre os livres, MySQL,Firebird e PostgreSQL.
Os gerenciadores têm como carac-terísticas principais os controles de
015_CONCEITOS 25/02/2006 21:32 Page 16
CONCEITOS
18 < COLEÇÃO INFO
cal, por exemplo, o número da no-ta não se repete e é obrigatório. Porisso poderá ser candidato para a co-luna chave. Uma chave geralmenteestá destacada por um símbolo (as-terisco ou uma pequena chave) aolado do atributo correspondente.
Quando se analisa o modelo físi-co, uma chave pode ser classifica-da como:■ PRIMÁRIA: qualificador único eobrigatório. Deve haver uma únicachave primária em cada tabela.■ ESTRANGEIRA: serve para rela-cionar duas tabelas. Vamos voltarao exemplo da Nota Fiscal. Cada no-ta está relacionada a um cliente. No-ta Fiscal é uma tabela e cliente ou-tra. Cada tabela tem a sua própriachave primária. Para relacionar ocliente com a nota fiscal, deixamosuma referência à coluna chave docliente na tabela nota fiscal (chaveestrangeira).■ SECUNDÁRIA classifica os dadosnas tabelas. Geralmente, os índicestêm o objetivo de agilizar o proces-so de busca.
RELACIONAMENTOSe uma entidade é um conjunto decoisas semelhantes, é natural queessas coisas guardem algum tipode relacionamento que seja impor-tante recuperar em algum momen-to. Quando dizemos que uma notafiscal é emitida contra um cliente,podemos entender que estamos tra-tando de duas entidades diferen-tes: Nota Fiscal e Cliente. Há, entre
Chaves: qualificadores das entidades
belos etc. A idéia central é que as ca-racterísticas do objeto permitam iden-tificar uma única pessoa em cada li-nha da tabela.
CHAVEUm ou mais atributos que permi-tem identificar uma única ocorrên-cia na entidade. É um qualificadorúnico. No modelo físico, a chave éo campo ou a coluna que contémum valor exclusivo e com preenchi-mento obrigatório. Assim, não po-derá haver o mesmo conteúdo dacoluna em duas linhas diferentes.
Imagine uma chave para PESSOA.Nome seria uma boa coluna parachave? Naturalmente não, pois hápessoas que têm nomes iguais. CPFseria uma boa chave? Em alguns ca-sos sim, pois embora não tenha re-petição e seja um documento obri-gatório para os adultos, não é paraos bebês. O que normalmente acon-tece em casos como esse é criar-mos uma coluna.
Em alguns outros exemplos, a cha-ve seria localizada com mais facili-dade. Se analisarmos uma Nota Fis-
015_CONCEITOS 25/02/2006 21:33 Page 18
CONCEITOS
COLEÇÃO INFO > 19
essas duas entidades, uma relaçãode interdependência, ou seja, parase emitir uma Nota Fiscal, é neces-sário que haja um Cliente. A essainterdependência damos o nomede relacionamento. Na prática, sem-pre que uma ou mais tuplas de umaentidade guardarem alguma rela-ção com uma ou mais tuplas de ou-tra entidade teremos um relaciona-mento entre as entidades.
Um relacionamento pode ser clas-sificado de duas formas: opcionali-dade e cardinalidade.
A opcionalidade indica se é obri-gatória ou não a ocorrência ou in-dicação de uma tupla de uma en-tidade na outra. Dessa forma, po-demos dizer que é obrigatória apresença de um Cliente em umaNota Fiscal, mas é opcional a exis-tência de uma Transportadora, porexemplo. De outro lado, o Clientepode ou não estar vinculado a umaNota Fiscal. O mesmo acontece coma Transportadora.
A cardinalidade indica quantasocorrências de uma tupla se rela-cionam com a outra tupla. Sabemosque cada Cliente pode estar vincu-lado a zero, uma ou muitas NotasFiscais, enquanto cada Nota Fiscalestá relacionada a um único Clien-te. Como você pode notar, a cardi-nalidade e a opcionalidade são sem-pre expressas de um e de outro la-do do relacionamento.
A cardinalidade pode ser:■ UM PARA UM (1:1): quando cadatupla de uma entidade está relacio-
nada apenas a zero ou a uma tuplada outra entidade (lembre-se que ze-ro ou um é a opcionalidade). Esse ti-po de relacionamento não é o maiscomum, pois sempre se deve ques-tionar a vantagem de manter os da-dos separados em duas entidades.Note que sempre há um custo vincu-lado à criação e manutenção de umatabela. Se o custo compensar, deve-se manter separado. Do contrário, émelhor unir as duas entidades.■ UM PARA MUITOS (1:M): quan-do cada tupla de uma entidade es-tá relacionada a zero, uma ou maistuplas da outra entidade (não es-queça que o zero ou um é a opcio-nalidade). Este é o relacionamentomais comum.■ MUITOS PARA MUITOS (M:M):quando há ocorrências de múltiplosrelacionamentos entre as tuplas deduas entidades. Esse relacionamen-to, apesar de existir, não é passívelde implementação em um banco de
Relacionamento: muitos para muitos(acima); um para muitos (abaixo)
015_CONCEITOS 25/02/2006 21:34 Page 19
CONCEITOS
COLEÇÃO INFO > 21
CONCEITOS
20 < COLEÇÃO INFO
dados relacional. Sempre que seidentificar essa situação, deve-secriar uma entidade entre as duasentidades, classificadas como fun-damentais. Essa nova entidade, clas-sificada como entidade associativa,deve conter, pelo menos, as chavesdas duas entidades fundamentais.
Uma das formas de representaro relacionamento é o “pé-de-gali-nha” para indicar a cardinalidademuitos, um pequeno traço para in-dicar a cardinalidade um, o trace-jado para indicar opcionalidade e osegmento de reta contínuo para in-dicar obrigatoriedade. Uma outraforma é indicar a opcionalidade comum pequeno círculo antes do umou muitos da cardinalidade. Lem-bre-se: são apenas convenções. Oimportante é que o relacionamen-to esteja claro e esteja representa-do no modelo de dados.
INTEGRIDADE REFERENCIALMecanismo utilizado pelos gerencia-dores de bancos de dados para man-ter a consistência das informaçõesarmazenadas. Suponha que estamoscadastrando uma Nota Fiscal e indi-camos um código de cliente (que re-laciona com a tabela Cliente) inexis-tente. Outra situação é tentar excluirum Cliente que tenha diversas No-tas Fiscais emitidas. Como iríamosrecuperar a informação, caso o ban-co de dados permitisse a exclusãodo Cliente? Simplesmente perdería-mos o elo entre as tabelas, e a infor-mação armazenada estaria inválida.
A principal forma de garantir aintegridade entre tabelas se dá pormeio do vínculo entre a chave pri-mária de uma tabela com a chaveestrangeira da outra tabela. As co-lunas das duas tabelas armazenamas informações que permitem es-tabelecer o relacionamento entreas linhas das tabelas. Assim, o có-digo de cliente 1 da tabela Clien-te, cujo nome é João, será arma-zenado na coluna código do clien-te da tabela Nota Fiscal sempreque se quiser indicar que o Joãocomprou determinados produtos.Não será possível excluir João (có-digo do cliente 1) enquanto hou-ver Notas Fiscais emitidas contraesse cliente.
RESTRIÇÕESUtilizam-se as restrições (constraints)para melhorar a qualidade da infor-mação guardada nas tabelas do ban-co. As restrições mais comuns sãoa chave primária e a estrangeira.Mas há outras restrições bastanteimportantes:■ NULOS: uma coluna que não te-nha valor inicializado é considera-da uma coluna nula. Nem sempreé adequado permitir que uma co-luna não tenha valores atribuídos.Imagine uma linha na tabela Clien-te cujo nome seja nulo. Como po-demos identificar o cliente?■ EXCLUSIVOS: suponha que se te-nha criado uma tabela Cliente cujocódigo do cliente não seja um do-cumento, como CPF ou RG. Mesmo
não sendo uma coluna chave, es-ses valores não podem ser duplica-dos em clientes (linhas) diferentes.Para isso definimos que sejam ad-mitidos somente valores exclusivos.O que a difere de uma chave pri-mária é que esta última não podeassumir valores nulos.■ PADRÃO: É muito comum que,quando um valor não é informado,o sistema assuma um valor-padrãopara a coluna (como data de emis-são de uma Nota Fiscal ou quanti-dade de um determinado produtoem uma Nota Fiscal).■ DOMÍNIO: as vezes é necessáriodeterminar um intervalo de valorespossíveis para uma determinada co-luna. É o caso do sexo, por exem-
Restrições: melhoram a qualidade da informação armazenada nas tabelas do banco
plo, que pode assumir apenas osvalores Masculino ou Feminino.
TRANSAÇÃOOcorre sempre que houver uma mo-dificação no conteúdo das tabelasde um banco de dados. Dessa for-ma, uma inclusão, alteração ou ex-clusão geram uma transação. Emgerenciadores de banco de dados,o controle sobre o momento da efe-tiva gravação (COMMIT) dos dadosou abandono da operação (ROLL-BACK) é realizado pelo usuário dobanco de dados ou pelo sistema. Atransação representa um conjuntode operações que são realizados nabase de dados para produzir um re-sultado final.
015_CONCEITOS 25/02/2006 21:43 Page 20
CONCEITOS
COLEÇÃO INFO > 21
CONCEITOS
20 < COLEÇÃO INFO
dados relacional. Sempre que seidentificar essa situação, deve-secriar uma entidade entre as duasentidades, classificadas como fun-damentais. Essa nova entidade, clas-sificada como entidade associativa,deve conter, pelo menos, as chavesdas duas entidades fundamentais.
Uma das formas de representaro relacionamento é o “pé-de-gali-nha” para indicar a cardinalidademuitos, um pequeno traço para in-dicar a cardinalidade um, o trace-jado para indicar opcionalidade e osegmento de reta contínuo para in-dicar obrigatoriedade. Uma outraforma é indicar a opcionalidade comum pequeno círculo antes do umou muitos da cardinalidade. Lem-bre-se: são apenas convenções. Oimportante é que o relacionamen-to esteja claro e esteja representa-do no modelo de dados.
INTEGRIDADE REFERENCIALMecanismo utilizado pelos gerencia-dores de bancos de dados para man-ter a consistência das informaçõesarmazenadas. Suponha que estamoscadastrando uma Nota Fiscal e indi-camos um código de cliente (que re-laciona com a tabela Cliente) inexis-tente. Outra situação é tentar excluirum Cliente que tenha diversas No-tas Fiscais emitidas. Como iríamosrecuperar a informação, caso o ban-co de dados permitisse a exclusãodo Cliente? Simplesmente perdería-mos o elo entre as tabelas, e a infor-mação armazenada estaria inválida.
A principal forma de garantir aintegridade entre tabelas se dá pormeio do vínculo entre a chave pri-mária de uma tabela com a chaveestrangeira da outra tabela. As co-lunas das duas tabelas armazenamas informações que permitem es-tabelecer o relacionamento entreas linhas das tabelas. Assim, o có-digo de cliente 1 da tabela Clien-te, cujo nome é João, será arma-zenado na coluna código do clien-te da tabela Nota Fiscal sempreque se quiser indicar que o Joãocomprou determinados produtos.Não será possível excluir João (có-digo do cliente 1) enquanto hou-ver Notas Fiscais emitidas contraesse cliente.
RESTRIÇÕESUtilizam-se as restrições (constraints)para melhorar a qualidade da infor-mação guardada nas tabelas do ban-co. As restrições mais comuns sãoa chave primária e a estrangeira.Mas há outras restrições bastanteimportantes:■ NULOS: uma coluna que não te-nha valor inicializado é considera-da uma coluna nula. Nem sempreé adequado permitir que uma co-luna não tenha valores atribuídos.Imagine uma linha na tabela Clien-te cujo nome seja nulo. Como po-demos identificar o cliente?■ EXCLUSIVOS: suponha que se te-nha criado uma tabela Cliente cujocódigo do cliente não seja um do-cumento, como CPF ou RG. Mesmo
não sendo uma coluna chave, es-ses valores não podem ser duplica-dos em clientes (linhas) diferentes.Para isso definimos que sejam ad-mitidos somente valores exclusivos.O que a difere de uma chave pri-mária é que esta última não podeassumir valores nulos.■ PADRÃO: É muito comum que,quando um valor não é informado,o sistema assuma um valor-padrãopara a coluna (como data de emis-são de uma Nota Fiscal ou quanti-dade de um determinado produtoem uma Nota Fiscal).■ DOMÍNIO: as vezes é necessáriodeterminar um intervalo de valorespossíveis para uma determinada co-luna. É o caso do sexo, por exem-
Restrições: melhoram a qualidade da informação armazenada nas tabelas do banco
plo, que pode assumir apenas osvalores Masculino ou Feminino.
TRANSAÇÃOOcorre sempre que houver uma mo-dificação no conteúdo das tabelasde um banco de dados. Dessa for-ma, uma inclusão, alteração ou ex-clusão geram uma transação. Emgerenciadores de banco de dados,o controle sobre o momento da efe-tiva gravação (COMMIT) dos dadosou abandono da operação (ROLL-BACK) é realizado pelo usuário dobanco de dados ou pelo sistema. Atransação representa um conjuntode operações que são realizados nabase de dados para produzir um re-sultado final.
015_CONCEITOS 25/02/2006 21:43 Page 20
CONCEITOS
COLEÇÃO INFO > 23
CONCEITOS
22 < COLEÇÃO INFO
NORMALIZAÇÃO DE DADOSProcesso pelo qual são aplicadasregras a um conjunto de dados e,no final, obtém-se uma base quaselivre de redundâncias. Ao atingir es-se objetivo, é possível recuperar odado em um único lugar (tabela).Isso fará, com certeza, que haja umaumento na quantidade de tabelascriadas no sistema, mas ajudará aaumentar a confiabilidade dos da-dos armazenados. Ao final do pro-cesso de normalização, deve-se va-lidá-lo com o Modelo de Entidadex Relacionamento.
Esse processo pode ser feito em atéseis fases, mas, geralmente, ao se che-gar na terceira etapa (conhecida co-mo 3ª- Forma Normal), já é possívelobter um modelo de dados estável.
Antes de iniciar o processo de nor-malização, é importante identificar ogrupo de dados que se quer analisar.Esse grupo pode estar representadopor um formulário, um relatório ouaté mesmo uma tela do sistema. Po-de também ser resultado de um le-vantamento sistemático das neces-sidades de informação dos usuários.Com o grupo de dados definido, de-ve-se listar todos os dados disponí-veis, sem desprezar nenhum. Em se-guida, deve-se dar um nome a essegrupo de dados. Após o nome, esta-belece-se um identificador único (cha-ve). Cumprida essa etapa, deve-seproceder ao processo de normaliza-ção. Para explicar melhor, vamos ado-tar um formulário de Nota Fiscal co-mo exemplo.
As três fases da Normalização deDados são:■ 1ª- FORMA NORMAL (1FN): elimi-nar grupos de dados repetitivos daestrutura. Para isso, deve-se locali-zar os atributos multivalorados, osque têm mais de uma ocorrência noformulário. No caso da Nota Fiscal,temos produto, quantidade, valorunitário e total como grupo de da-dos multivalorado. Deve-se separaresse grupo em uma nova entidade,dar um nome ao grupo, levar a cha-ve da Nota Fiscal (para manter a re-lação entre as entidades) e estabe-lecer uma chave para o novo gru-po. Essa chave pode ser compostapela chave da Nota Fiscal e por maisde um atributo existente. É possível,quando não se localizar um atribu-to adequado, criá-la.■ 2ª- FORMA NORMAL (2FN): quan-do somente houver grupos de da-dos na 1ª- Forma Normal (e jamaisantes disso), deve-se localizar da-dos que não dependam única e ex-clusivamente da chave da entida-de. Veja: o Cliente está relacionadoà Nota Fiscal, mas não depende de-la. O Cliente existe, mesmo que nãoexista a Nota Fiscal. Por esse moti-vo dizemos que o Cliente não de-pende da Nota Fiscal e, por isso, de-ve ter os dados separados em umanova entidade. Ao se identificar o(s)grupo(s) independente(s), deve-sesepará-los em uma nova entidade(uma para cada grupo independen-te). Feito isso, dá-se um nome à en-tidade e estabelece-se uma chave
Procedimentos armazenados: códigos que ficam armazenados para usar depois
para o novo grupo. Caso não hajaum bom atributo para ser a chave,deve-se criá-lo. É isso que foi feitocom o Cliente e Produto.■ 3ª- FORMA NORMAL (3FN): depoisque os grupos de dados estiverem na2ª- Forma Normal (e jamais antes dis-so), localizam-se atributos com de-pendência transitiva. Calma! Não étão complicado. Dependência transi-tiva ocorre quando um dado pode serobtido por meio de outro, exceto achave. Isso porque os atributos de-pendem da chave. Até que você sehabitue, tente localizar campos quepossam ser substituídos por fórmu-las matemáticas. No exemplo, temoso atributo Valor Total no Item da No-ta e o Valor Total da Nota Fiscal. Es-ses atributos devem ser excluídos,pois podem ser obtidos por meio deum cálculo realizado com outros atri-butos. Com os dados normalizados,é possível criar as tabelas.
PROCEDIMENTOS ARMAZENADOSSão pequenos códigos executadosem um banco de dados que ficamguardados para posterior utiliza-ção. Podem ser stored procedures(procedimentos armazenados),stored functions (funções armaze-nadas), trigger (gatilho) e package(pacote). Um procedimento é umconjunto de comandos dentro deuma estrutura lógica, com o obje-tivo de realizar uma ação no ban-co de dados. A diferença entre pro-cedimento e função é que esta úl-tima retorna valor.
Gatilhos são procedimentos dispa-rados por eventos do banco de da-dos (inclusão, alteração ou exclusão).Por fim, um pacote é um conjunto defunções, procedimentos e outras es-truturas que são armazenados emconjunto para facilitar a manutençãoe a segurança da informação.
015_CONCEITOS 25/02/2006 21:54 Page 22
CONCEITOS
COLEÇÃO INFO > 23
CONCEITOS
22 < COLEÇÃO INFO
NORMALIZAÇÃO DE DADOSProcesso pelo qual são aplicadasregras a um conjunto de dados e,no final, obtém-se uma base quaselivre de redundâncias. Ao atingir es-se objetivo, é possível recuperar odado em um único lugar (tabela).Isso fará, com certeza, que haja umaumento na quantidade de tabelascriadas no sistema, mas ajudará aaumentar a confiabilidade dos da-dos armazenados. Ao final do pro-cesso de normalização, deve-se va-lidá-lo com o Modelo de Entidadex Relacionamento.
Esse processo pode ser feito em atéseis fases, mas, geralmente, ao se che-gar na terceira etapa (conhecida co-mo 3ª- Forma Normal), já é possívelobter um modelo de dados estável.
Antes de iniciar o processo de nor-malização, é importante identificar ogrupo de dados que se quer analisar.Esse grupo pode estar representadopor um formulário, um relatório ouaté mesmo uma tela do sistema. Po-de também ser resultado de um le-vantamento sistemático das neces-sidades de informação dos usuários.Com o grupo de dados definido, de-ve-se listar todos os dados disponí-veis, sem desprezar nenhum. Em se-guida, deve-se dar um nome a essegrupo de dados. Após o nome, esta-belece-se um identificador único (cha-ve). Cumprida essa etapa, deve-seproceder ao processo de normaliza-ção. Para explicar melhor, vamos ado-tar um formulário de Nota Fiscal co-mo exemplo.
As três fases da Normalização deDados são:■ 1ª- FORMA NORMAL (1FN): elimi-nar grupos de dados repetitivos daestrutura. Para isso, deve-se locali-zar os atributos multivalorados, osque têm mais de uma ocorrência noformulário. No caso da Nota Fiscal,temos produto, quantidade, valorunitário e total como grupo de da-dos multivalorado. Deve-se separaresse grupo em uma nova entidade,dar um nome ao grupo, levar a cha-ve da Nota Fiscal (para manter a re-lação entre as entidades) e estabe-lecer uma chave para o novo gru-po. Essa chave pode ser compostapela chave da Nota Fiscal e por maisde um atributo existente. É possível,quando não se localizar um atribu-to adequado, criá-la.■ 2ª- FORMA NORMAL (2FN): quan-do somente houver grupos de da-dos na 1ª- Forma Normal (e jamaisantes disso), deve-se localizar da-dos que não dependam única e ex-clusivamente da chave da entida-de. Veja: o Cliente está relacionadoà Nota Fiscal, mas não depende de-la. O Cliente existe, mesmo que nãoexista a Nota Fiscal. Por esse moti-vo dizemos que o Cliente não de-pende da Nota Fiscal e, por isso, de-ve ter os dados separados em umanova entidade. Ao se identificar o(s)grupo(s) independente(s), deve-sesepará-los em uma nova entidade(uma para cada grupo independen-te). Feito isso, dá-se um nome à en-tidade e estabelece-se uma chave
Procedimentos armazenados: códigos que ficam armazenados para usar depois
para o novo grupo. Caso não hajaum bom atributo para ser a chave,deve-se criá-lo. É isso que foi feitocom o Cliente e Produto.■ 3ª- FORMA NORMAL (3FN): depoisque os grupos de dados estiverem na2ª- Forma Normal (e jamais antes dis-so), localizam-se atributos com de-pendência transitiva. Calma! Não étão complicado. Dependência transi-tiva ocorre quando um dado pode serobtido por meio de outro, exceto achave. Isso porque os atributos de-pendem da chave. Até que você sehabitue, tente localizar campos quepossam ser substituídos por fórmu-las matemáticas. No exemplo, temoso atributo Valor Total no Item da No-ta e o Valor Total da Nota Fiscal. Es-ses atributos devem ser excluídos,pois podem ser obtidos por meio deum cálculo realizado com outros atri-butos. Com os dados normalizados,é possível criar as tabelas.
PROCEDIMENTOS ARMAZENADOSSão pequenos códigos executadosem um banco de dados que ficamguardados para posterior utiliza-ção. Podem ser stored procedures(procedimentos armazenados),stored functions (funções armaze-nadas), trigger (gatilho) e package(pacote). Um procedimento é umconjunto de comandos dentro deuma estrutura lógica, com o obje-tivo de realizar uma ação no ban-co de dados. A diferença entre pro-cedimento e função é que esta úl-tima retorna valor.
Gatilhos são procedimentos dispa-rados por eventos do banco de da-dos (inclusão, alteração ou exclusão).Por fim, um pacote é um conjunto defunções, procedimentos e outras es-truturas que são armazenados emconjunto para facilitar a manutençãoe a segurança da informação.
015_CONCEITOS 25/02/2006 21:54 Page 22
CRIAÇÃO
COLEÇÃO INFO > 25
PLANEJE BEM OSEU BANCO
SIGA O ROTEIRO PARA CRIAR UM BANCO DE DADOS QUEACOMPANHE AS TRANSFORMAÇÕES DA EMPRESA
POR CELSO HENRIQUE PODEROSO DE OLIVEIRA
CRIAÇÃO
24 < COLEÇÃO INFO
criação de um banco dedados é um processoque envolve uma sériede competências. Hou-
ve tempo em que esse processo es-tava reduzido a identificar um oumais objetos, escolher uma formade armazenamento, algumas carac-terísticas desses objetos e pronto.Geralmente, a própria estrutura dobanco de dados era vinculada à lin-guagem de programação.
Com o passar do tempo, a tecno-logia evoluiu e foi separada das lin-guagens de programação. Ambien-tes completos de administração fo-ram desenvolvidos e sua utilizaçãocontribuiu para disseminar as in-formações de maneira adequada econsistente.
Atualmente, os produtos estãomuito mais complexos e permitemao profissional realizar um trabalhoque pode contribuir para a melhorutilização da informação. De simpleslocal de armazenamento, o banco dedados evoluiu para um verdadeirorepositório de informações das em-presas. É o ambiente adequado pa-ra armazenar e recuperar dados ope-
racionais, além de dar suporte à to-mada de decisão por parte da mé-dia e alta gerência das corporações.Não se consegue atingir esse obje-tivo sem que se observem algumasregras. Por isso, trataremos aqui daestratégia para a criação de umbanco de dados.
PLANEJAMENTO E ESCOLHAPlanejar e escolher o melhor bancode dados é uma tarefa extremamen-te importante no processo de criação.A escolha certa evita frustrações nasoperações do dia-a-dia e na evoluçãoque o produto deve ter para acom-panhar o crescimento da empresa.
Planejar é saber onde se quer che-gar e estabelecer os meios adequa-dos para estar lá. É necessário olharpara frente e analisar como vocêquer que as coisas estejam no futu-ro. É antever situações que podemdefinir o sucesso ou não do seu em-preendimento. Portanto, antes deescolher o produto, pense onde vo-cê quer chegar. Enxergue o bancode dados como um meio para atin-gir sua meta.
A
Com isso, dependendo do caso, sea sua empresa desenvolve sistemas,a decisão poderá ser totalmente di-ferente de uma construtora, porexemplo. Baseie-se em aspectos téc-nicos e mercadológicos para definiro produto com o qual você irá con-
viver durante um bom tempo (tenhaisso em mente: não se troca de ban-co de dados senão com alguma di-ficuldade). Veja na tabela abaixo al-gumas questões que podem ajudarna escolha do produto ideal para assuas necessidades.
GUIA PARA A ESCOLHA DO GERENCIADOR
>Há uma empresa ou comunidade responsável pelo produto?
> Como está a saúde financeira dessa empresa? Como é aparticipação dos membros da comunidade?
>Qual o compromisso tecnológico da empresa? Houve evoluçãonos últimos anos? (um ano de atraso em informática pode ser fatal)
>Qual a participação de mercado do produto? (produtos com pequena participação podem sumir ou ser absorvidos por outras empresas)
>Quanto tempo de vida tem o produto?
>Qual tipo de empresa o utiliza?
>Quando foi lançada a última versão? Como o fabricante resolve problemas de segurança (atualizações e correções)?
>O produto possui as características mínimas de um sistema gerenciador de banco de dados (controle de transações, integridade referencial, programação, backup e recuperação, segurança de acesso, compatibilidade)?
> Como é o ambiente de administração do banco de dados? Há possibilidade de administração remota?
>Você vai precisar de um administrador de banco de dados (DBA)o tempo todo ou esse trabalho poderá ser feito remotamente?
>Há profissionais qualificados no mercado para administrar o banco? Quanto custa a mão-de-obra?
>Há produtos (ERP, CRM, BI etc.) adequados para a sua empresa que utilizam o banco de dados?
>Qual o volume médio de transações que você vai realizar e como o produto se comporta com isso?
024_CRIACAO 25/02/2006 21:56 Page 24
CRIAÇÃO
COLEÇÃO INFO > 25
PLANEJE BEM OSEU BANCO
SIGA O ROTEIRO PARA CRIAR UM BANCO DE DADOS QUEACOMPANHE AS TRANSFORMAÇÕES DA EMPRESA
POR CELSO HENRIQUE PODEROSO DE OLIVEIRA
CRIAÇÃO
24 < COLEÇÃO INFO
criação de um banco dedados é um processoque envolve uma sériede competências. Hou-
ve tempo em que esse processo es-tava reduzido a identificar um oumais objetos, escolher uma formade armazenamento, algumas carac-terísticas desses objetos e pronto.Geralmente, a própria estrutura dobanco de dados era vinculada à lin-guagem de programação.
Com o passar do tempo, a tecno-logia evoluiu e foi separada das lin-guagens de programação. Ambien-tes completos de administração fo-ram desenvolvidos e sua utilizaçãocontribuiu para disseminar as in-formações de maneira adequada econsistente.
Atualmente, os produtos estãomuito mais complexos e permitemao profissional realizar um trabalhoque pode contribuir para a melhorutilização da informação. De simpleslocal de armazenamento, o banco dedados evoluiu para um verdadeirorepositório de informações das em-presas. É o ambiente adequado pa-ra armazenar e recuperar dados ope-
racionais, além de dar suporte à to-mada de decisão por parte da mé-dia e alta gerência das corporações.Não se consegue atingir esse obje-tivo sem que se observem algumasregras. Por isso, trataremos aqui daestratégia para a criação de umbanco de dados.
PLANEJAMENTO E ESCOLHAPlanejar e escolher o melhor bancode dados é uma tarefa extremamen-te importante no processo de criação.A escolha certa evita frustrações nasoperações do dia-a-dia e na evoluçãoque o produto deve ter para acom-panhar o crescimento da empresa.
Planejar é saber onde se quer che-gar e estabelecer os meios adequa-dos para estar lá. É necessário olharpara frente e analisar como vocêquer que as coisas estejam no futu-ro. É antever situações que podemdefinir o sucesso ou não do seu em-preendimento. Portanto, antes deescolher o produto, pense onde vo-cê quer chegar. Enxergue o bancode dados como um meio para atin-gir sua meta.
A
Com isso, dependendo do caso, sea sua empresa desenvolve sistemas,a decisão poderá ser totalmente di-ferente de uma construtora, porexemplo. Baseie-se em aspectos téc-nicos e mercadológicos para definiro produto com o qual você irá con-
viver durante um bom tempo (tenhaisso em mente: não se troca de ban-co de dados senão com alguma di-ficuldade). Veja na tabela abaixo al-gumas questões que podem ajudarna escolha do produto ideal para assuas necessidades.
GUIA PARA A ESCOLHA DO GERENCIADOR
>Há uma empresa ou comunidade responsável pelo produto?
> Como está a saúde financeira dessa empresa? Como é aparticipação dos membros da comunidade?
>Qual o compromisso tecnológico da empresa? Houve evoluçãonos últimos anos? (um ano de atraso em informática pode ser fatal)
>Qual a participação de mercado do produto? (produtos com pequena participação podem sumir ou ser absorvidos por outras empresas)
>Quanto tempo de vida tem o produto?
>Qual tipo de empresa o utiliza?
>Quando foi lançada a última versão? Como o fabricante resolve problemas de segurança (atualizações e correções)?
>O produto possui as características mínimas de um sistema gerenciador de banco de dados (controle de transações, integridade referencial, programação, backup e recuperação, segurança de acesso, compatibilidade)?
> Como é o ambiente de administração do banco de dados? Há possibilidade de administração remota?
>Você vai precisar de um administrador de banco de dados (DBA)o tempo todo ou esse trabalho poderá ser feito remotamente?
>Há profissionais qualificados no mercado para administrar o banco? Quanto custa a mão-de-obra?
>Há produtos (ERP, CRM, BI etc.) adequados para a sua empresa que utilizam o banco de dados?
>Qual o volume médio de transações que você vai realizar e como o produto se comporta com isso?
024_CRIACAO 25/02/2006 21:56 Page 24
CRIAÇÃO
COLEÇÃO INFO > 27
CRIAÇÃO
26 < COLEÇÃO INFO
Agora você precisa saber quaissão as informações necessárias pa-ra sua empresa. Isso poderá lheajudar a diminuir a lista.
PROJETO LÓGICOEsta parte do processo deve aconte-cer em paralelo à escolha do siste-ma gerenciador de banco de dados.Optar por um produto sem ter noçãodas necessidades de informação daempresa é como dar um tiro no pé.
A maneira clássica de fazer isso en-volve todos os conceitos de engenha-ria de software para levantamento derequisitos. Quando se pensa em infor-mação, qualquer documento, tela desistema ou relatório é útil para iden-tificar o que é necessário armazenarno banco de dados. Muitas vezes osusuários da informação esquecem al-guns detalhes na fase de levantamen-to, por isso é importante recolher omáximo de documentos possíveis.
Na maior parte dos casos, ter umaferramenta de auxílio para o analis-ta criar e modelar a estrutura do ban-co de dados é desejável. Essas ferra-mentas são conhecidas como CASE(Computer Aided Software Engin-eering). Entre elas estão ErWin, DbDe-signer, MS Visio e Oracle Designer.Cada uma possui características quea torna mais ou menos adequada pa-ra cada situação, mas todas contri-buem para o trabalho do analista.
Depois de levantados os requisi-tos de informação, deve-se fazer umprojeto lógico. Entende-se por pro-jeto lógico a fase em que se realiza
a modelagem lógica de dados, com-posta pela aplicação do modelo deentidade X relacionamento e pelanormalização de dados. Em um pri-meiro momento não deve haverpreocupação com a estrutura físicaque será criada, e sim com o aten-dimento dos requisitos dos usuários.
PROJETO FÍSICOUma vez estabelecido o projeto ló-gico, vamos ao projeto físico. Nele,transforma-se o modelo de entida-de X relacionamento para o mode-lo físico, em geral, sem problemas.As estruturas relacionais (tabelas)são representações bastante simplese adequadas para caracterizar coi-sas do mundo real. Há uma troca na-tural de nomenclatura: entidadespassam a se chamar tabelas, tuplasviram registros ou linhas, e atribu-tos tornam-se colunas ou campos. Amenos que haja alguma necessida-de muito específica, basta acrescen-tar o tipo de dado e o tamanho decada um dos campos ou colunas, es-tabelecer chaves primárias e estran-geiras (normalmente as ferramen-tas CASE fazem esse trabalho pornós), definir regras de integridade,criação de visões (views), índices eoutros aspectos físicos do projeto.
Hora de criar as estruturas físicas,com tabelas, relacionamentos, cha-ves e tudo a que temos direito. Nor-malmente, as ferramentas CASE tam-bém fazem a maior parte do traba-lho. Algumas são capazes de se co-nectar ao banco e criar as estruturas.
Outras geram os scripts para seremexecutados no banco de dados. Sóque, para chegar aqui, é necessárioficar atento a alguns detalhes.
PADRONIZAÇÃOÉ sempre importante manter um pa-drão para o nome dos objetos, colu-nas e outros elementos. Mesmo quevocê trabalhe sozinho em um proje-to, é bem provável que no futuro ou-tras pessoas tenham de atualizar aqui-lo que você fez. A padronização co-meça na documentação do projetoe continua em todo o processo físi-co de criação do banco de dados.
Toda equipe deve estar envolvidapara definir o que e como será essepadrão. Imagina-se que, quanto maisclaro for o nome da entidade, porexemplo, melhor será para a pessoaentender o que está armazenado ali.Parece óbvio, mas algum tempo atrásera comum utilizar nomes estranhos,muito mais vinculados aos progra-mas que mantinham a entidade doque ao objetivo dela. Algunsanalistas até se valiam des-se expediente para manter-se no emprego — quantomais obscuro, mais depen-dência do analista.
TABELAS E COLUNASSe eu identifiquei um objetoque armazene as informaçõesde um veículo, devo dar-lheo nome de VEICULO. Em cer-tos casos, alguns analistas pre-ferem indicar qual o módulo
CÓDIGO
NÚMERO
DESCRIÇÃO
NOME
DATA
VALOR
QUANTIDADE
SIGLA
DOMÍNIO
PADRONIZE AS COLUNAS
OPÇÃO 2
CD
NR
DS
NM
DT
VL
QT
SG
DM
OPÇÃO 1
COD
NUM
DES
NOM
DAT
VAL
QTD
SIG
DOM
do sistema que mantém aquela es-trutura. Em outros, acrescenta-se aestrutura departamental que realizaesse trabalho. Essa última opção é apior, visto que há mudanças freqüen-tes nas funções departamentais deuma empresa moderna. Particular-mente, creio que ambas situações sãodesnecessárias, visto que atualmen-te uma classe é destacada para essafunção. A classe normalmente tam-bém tem um nome claro e objetivo.
Se há atributos importantes pa-ra serem mantidos, como cor, mo-delo, ano de fabricação, ano do mo-delo e montadora, deve-se colocaresses nomes nas colunas.
Outro ponto importante, mas nãodeterminante, é especificar a classifi-cação do dado junto com o nome. As-sim, se a cor do veículo fizer referên-cia a uma tabela de cores e, portan-to, eu for armazenar o código da cor,é comum utilizar-se CD ou COD antesdo nome. O nome do campo ficariaCDCOR, por exemplo.
CLASSIFICAÇÃO
024_CRIACAO 25/02/2006 21:57 Page 26
CRIAÇÃO
COLEÇÃO INFO > 27
CRIAÇÃO
26 < COLEÇÃO INFO
Agora você precisa saber quaissão as informações necessárias pa-ra sua empresa. Isso poderá lheajudar a diminuir a lista.
PROJETO LÓGICOEsta parte do processo deve aconte-cer em paralelo à escolha do siste-ma gerenciador de banco de dados.Optar por um produto sem ter noçãodas necessidades de informação daempresa é como dar um tiro no pé.
A maneira clássica de fazer isso en-volve todos os conceitos de engenha-ria de software para levantamento derequisitos. Quando se pensa em infor-mação, qualquer documento, tela desistema ou relatório é útil para iden-tificar o que é necessário armazenarno banco de dados. Muitas vezes osusuários da informação esquecem al-guns detalhes na fase de levantamen-to, por isso é importante recolher omáximo de documentos possíveis.
Na maior parte dos casos, ter umaferramenta de auxílio para o analis-ta criar e modelar a estrutura do ban-co de dados é desejável. Essas ferra-mentas são conhecidas como CASE(Computer Aided Software Engin-eering). Entre elas estão ErWin, DbDe-signer, MS Visio e Oracle Designer.Cada uma possui características quea torna mais ou menos adequada pa-ra cada situação, mas todas contri-buem para o trabalho do analista.
Depois de levantados os requisi-tos de informação, deve-se fazer umprojeto lógico. Entende-se por pro-jeto lógico a fase em que se realiza
a modelagem lógica de dados, com-posta pela aplicação do modelo deentidade X relacionamento e pelanormalização de dados. Em um pri-meiro momento não deve haverpreocupação com a estrutura físicaque será criada, e sim com o aten-dimento dos requisitos dos usuários.
PROJETO FÍSICOUma vez estabelecido o projeto ló-gico, vamos ao projeto físico. Nele,transforma-se o modelo de entida-de X relacionamento para o mode-lo físico, em geral, sem problemas.As estruturas relacionais (tabelas)são representações bastante simplese adequadas para caracterizar coi-sas do mundo real. Há uma troca na-tural de nomenclatura: entidadespassam a se chamar tabelas, tuplasviram registros ou linhas, e atribu-tos tornam-se colunas ou campos. Amenos que haja alguma necessida-de muito específica, basta acrescen-tar o tipo de dado e o tamanho decada um dos campos ou colunas, es-tabelecer chaves primárias e estran-geiras (normalmente as ferramen-tas CASE fazem esse trabalho pornós), definir regras de integridade,criação de visões (views), índices eoutros aspectos físicos do projeto.
Hora de criar as estruturas físicas,com tabelas, relacionamentos, cha-ves e tudo a que temos direito. Nor-malmente, as ferramentas CASE tam-bém fazem a maior parte do traba-lho. Algumas são capazes de se co-nectar ao banco e criar as estruturas.
Outras geram os scripts para seremexecutados no banco de dados. Sóque, para chegar aqui, é necessárioficar atento a alguns detalhes.
PADRONIZAÇÃOÉ sempre importante manter um pa-drão para o nome dos objetos, colu-nas e outros elementos. Mesmo quevocê trabalhe sozinho em um proje-to, é bem provável que no futuro ou-tras pessoas tenham de atualizar aqui-lo que você fez. A padronização co-meça na documentação do projetoe continua em todo o processo físi-co de criação do banco de dados.
Toda equipe deve estar envolvidapara definir o que e como será essepadrão. Imagina-se que, quanto maisclaro for o nome da entidade, porexemplo, melhor será para a pessoaentender o que está armazenado ali.Parece óbvio, mas algum tempo atrásera comum utilizar nomes estranhos,muito mais vinculados aos progra-mas que mantinham a entidade doque ao objetivo dela. Algunsanalistas até se valiam des-se expediente para manter-se no emprego — quantomais obscuro, mais depen-dência do analista.
TABELAS E COLUNASSe eu identifiquei um objetoque armazene as informaçõesde um veículo, devo dar-lheo nome de VEICULO. Em cer-tos casos, alguns analistas pre-ferem indicar qual o módulo
CÓDIGO
NÚMERO
DESCRIÇÃO
NOME
DATA
VALOR
QUANTIDADE
SIGLA
DOMÍNIO
PADRONIZE AS COLUNAS
OPÇÃO 2
CD
NR
DS
NM
DT
VL
QT
SG
DM
OPÇÃO 1
COD
NUM
DES
NOM
DAT
VAL
QTD
SIG
DOM
do sistema que mantém aquela es-trutura. Em outros, acrescenta-se aestrutura departamental que realizaesse trabalho. Essa última opção é apior, visto que há mudanças freqüen-tes nas funções departamentais deuma empresa moderna. Particular-mente, creio que ambas situações sãodesnecessárias, visto que atualmen-te uma classe é destacada para essafunção. A classe normalmente tam-bém tem um nome claro e objetivo.
Se há atributos importantes pa-ra serem mantidos, como cor, mo-delo, ano de fabricação, ano do mo-delo e montadora, deve-se colocaresses nomes nas colunas.
Outro ponto importante, mas nãodeterminante, é especificar a classifi-cação do dado junto com o nome. As-sim, se a cor do veículo fizer referên-cia a uma tabela de cores e, portan-to, eu for armazenar o código da cor,é comum utilizar-se CD ou COD antesdo nome. O nome do campo ficariaCDCOR, por exemplo.
CLASSIFICAÇÃO
024_CRIACAO 25/02/2006 21:57 Page 26
CRIAÇÃO
COLEÇÃO INFO > 29
CRIAÇÃO
28 < COLEÇÃO INFO
Como não é possível utilizar es-paços na definição do nome das co-lunas (ou mesmo objetos), utiliza-se o caractere sublinhado (_) parasubstituir o espaço. A tabela ficariacomo no exemplo da figura abaixo.
TIPOS DE DADOSA definição do tipo de dados tam-bém exige padronização. Pareceóbvio que um dado que receberáapenas conteúdo numérico devaser definido como NUMBER, DECI-MAL, INTEGER, FLOAT ou qualqueroutro tipo que seja otimizado pa-ra este fim. O mesmo acontece comalfanuméricos e datas, mas há al-gumas observações a considerarnessa escolha.
O tipo de dado numérico, de ummodo geral, possui mecanismosque fazem com que as buscas se-jam mais rápidas do que as queocorrem em colunas alfanuméri-cas. Ele também ocupa menos es-paço físico para armazenamento.Por isso, chaves primárias (e con-
seqüentemente estrangeiras) sãodefinidas por campos numéricos.Colunas pesquisadas com freqüên-cia, como CPF, também são defi-nidas como numéricas.
A maioria dos gerenciadores debanco de dados trabalha com doisgrupos de tipos de dados alfanu-méricos: CHAR e VARCHAR (ouVARCHAR2, no Oracle). O primei-ro utiliza todo o espaço especifi-cado, enquanto que o segundo évariável, usando, no máximo, o es-paço predeterminado. Isso faz comque o segundo, por utilizar apenaso espaço efetivamente ocupadopelo conteúdo, otimize o armaze-namento e não deixe buracos nosconteúdos. DBAs experientes le-vam em consideração o volume dealterações no conteúdo para essadefinição. Isso porque, caso umconteúdo seja alterado com fre-qüência, a atualização poderá ge-rar uma fragmentação da informa-ção — quando incluído, o conteú-do ocupou um espaço e, depois deuma alteração para maior, quan-do não há espaço na seqüência,será colocado em outro espaço fí-sico do disco.
Campos que armazenam datasdevem ser definidos dessa formapara facilitar operações de buscae até mesmo operações matemá-ticas entre elas. O padrão SQL pos-sui uma série de comandos espe-cíficos para calcular intervalo en-tre datas, extrair ano, dia, mês etc.Para conteúdos muito grandes, co-
mo arquivos XML, imagens, sons etextos extensos deve-se utilizar oLOB. Normalmente há uma separa-ção para binários (BLOB), adequa-dos para armazenamento de ima-gens e sons, e alfanuméricos (CLOB).No caso específico de XML, é pos-sível que o gerenciador de bancode dados tenha algum mecanismomelhor de armazenamento.
PROGRAMAÇÃOSempre que possível, prefira criaros módulos que utilizam e manipu-lam dados dentro do banco de da-dos. Apesar de atualmente haveruma grande difusão da necessida-de de independência de banco dedados por meio da utilização de umacamada intermediária que assumaessa responsabilidade, é inegávelque o gerenciador do banco de da-dos é o ambiente mais adequadopara manter e atualizar dados.
Ao se programar em qualqueroutra camada que não a de dados,o tráfego de informações pela re-
de é aumentado. Se você optar porcolocar a camada de aplicação nomesmo servidor (ou servidores),poderá comprometer seu desem-penho pelo excesso de uso.
Assim, prefira programar o ban-co de dados para rotinas que en-volvam acesso e manipulação dedados. Os programas devem seguira padronização da empresa no quediz respeito aos módulos: definiçãode variáveis, letras maiúsculas e/ouminúsculas para comandos etc.
INTERFACES DE ADMINISTRAÇÃOTão importante quanto criar estru-turas estáveis para suprir as ne-cessidades de informação da em-presa é a tarefa de manter o ban-co de dados com um nível aceitá-vel de tempo de resposta. Para is-so, é necessário ter uma atençãoespecial na administração.
As interfaces de administraçãotêm evoluído bastante para sim-plificar o processo. Mesmo os ge-renciadores de código aberto pos-suem interfaces amigáveis que per-mitem criar e manter todas as es-truturas do banco rapidamente. Al-gumas podem ser acessadas re-motamente, o que facilita o pro-cesso de manutenção e acompa-nhamento que o DBA faz no ban-co de dados.
A tendência é que os gerencia-dores sejam cada vez mais auto-matizados, em especial no que dizrespeito ao desempenho. Os ajus-
PROJETO LÓGICO DE DADOS
PROJETO FÍSICO DE DADOS
CRIAÇÃO DO BANCO DE DADOS
Análise e modelagemutilizando o Modelo deEntidade eRelacionamento eNormalização de Dados
Desenho com definiçãode tabelas, índices,visões etc.
Criação de scripts paraexecução do gerenciadorde banco de dados
BANCO DE DADOS CRIADO
PROCESSO DE CRIAÇÃO DE BANCODE DADOS
Programação: no SQL Server 2005 dápara criar consultas sem escrever código
024_CRIACAO 25/02/2006 22:17 Page 28
CRIAÇÃO
COLEÇÃO INFO > 29
CRIAÇÃO
28 < COLEÇÃO INFO
Como não é possível utilizar es-paços na definição do nome das co-lunas (ou mesmo objetos), utiliza-se o caractere sublinhado (_) parasubstituir o espaço. A tabela ficariacomo no exemplo da figura abaixo.
TIPOS DE DADOSA definição do tipo de dados tam-bém exige padronização. Pareceóbvio que um dado que receberáapenas conteúdo numérico devaser definido como NUMBER, DECI-MAL, INTEGER, FLOAT ou qualqueroutro tipo que seja otimizado pa-ra este fim. O mesmo acontece comalfanuméricos e datas, mas há al-gumas observações a considerarnessa escolha.
O tipo de dado numérico, de ummodo geral, possui mecanismosque fazem com que as buscas se-jam mais rápidas do que as queocorrem em colunas alfanuméri-cas. Ele também ocupa menos es-paço físico para armazenamento.Por isso, chaves primárias (e con-
seqüentemente estrangeiras) sãodefinidas por campos numéricos.Colunas pesquisadas com freqüên-cia, como CPF, também são defi-nidas como numéricas.
A maioria dos gerenciadores debanco de dados trabalha com doisgrupos de tipos de dados alfanu-méricos: CHAR e VARCHAR (ouVARCHAR2, no Oracle). O primei-ro utiliza todo o espaço especifi-cado, enquanto que o segundo évariável, usando, no máximo, o es-paço predeterminado. Isso faz comque o segundo, por utilizar apenaso espaço efetivamente ocupadopelo conteúdo, otimize o armaze-namento e não deixe buracos nosconteúdos. DBAs experientes le-vam em consideração o volume dealterações no conteúdo para essadefinição. Isso porque, caso umconteúdo seja alterado com fre-qüência, a atualização poderá ge-rar uma fragmentação da informa-ção — quando incluído, o conteú-do ocupou um espaço e, depois deuma alteração para maior, quan-do não há espaço na seqüência,será colocado em outro espaço fí-sico do disco.
Campos que armazenam datasdevem ser definidos dessa formapara facilitar operações de buscae até mesmo operações matemá-ticas entre elas. O padrão SQL pos-sui uma série de comandos espe-cíficos para calcular intervalo en-tre datas, extrair ano, dia, mês etc.Para conteúdos muito grandes, co-
mo arquivos XML, imagens, sons etextos extensos deve-se utilizar oLOB. Normalmente há uma separa-ção para binários (BLOB), adequa-dos para armazenamento de ima-gens e sons, e alfanuméricos (CLOB).No caso específico de XML, é pos-sível que o gerenciador de bancode dados tenha algum mecanismomelhor de armazenamento.
PROGRAMAÇÃOSempre que possível, prefira criaros módulos que utilizam e manipu-lam dados dentro do banco de da-dos. Apesar de atualmente haveruma grande difusão da necessida-de de independência de banco dedados por meio da utilização de umacamada intermediária que assumaessa responsabilidade, é inegávelque o gerenciador do banco de da-dos é o ambiente mais adequadopara manter e atualizar dados.
Ao se programar em qualqueroutra camada que não a de dados,o tráfego de informações pela re-
de é aumentado. Se você optar porcolocar a camada de aplicação nomesmo servidor (ou servidores),poderá comprometer seu desem-penho pelo excesso de uso.
Assim, prefira programar o ban-co de dados para rotinas que en-volvam acesso e manipulação dedados. Os programas devem seguira padronização da empresa no quediz respeito aos módulos: definiçãode variáveis, letras maiúsculas e/ouminúsculas para comandos etc.
INTERFACES DE ADMINISTRAÇÃOTão importante quanto criar estru-turas estáveis para suprir as ne-cessidades de informação da em-presa é a tarefa de manter o ban-co de dados com um nível aceitá-vel de tempo de resposta. Para is-so, é necessário ter uma atençãoespecial na administração.
As interfaces de administraçãotêm evoluído bastante para sim-plificar o processo. Mesmo os ge-renciadores de código aberto pos-suem interfaces amigáveis que per-mitem criar e manter todas as es-truturas do banco rapidamente. Al-gumas podem ser acessadas re-motamente, o que facilita o pro-cesso de manutenção e acompa-nhamento que o DBA faz no ban-co de dados.
A tendência é que os gerencia-dores sejam cada vez mais auto-matizados, em especial no que dizrespeito ao desempenho. Os ajus-
PROJETO LÓGICO DE DADOS
PROJETO FÍSICO DE DADOS
CRIAÇÃO DO BANCO DE DADOS
Análise e modelagemutilizando o Modelo deEntidade eRelacionamento eNormalização de Dados
Desenho com definiçãode tabelas, índices,visões etc.
Criação de scripts paraexecução do gerenciadorde banco de dados
BANCO DE DADOS CRIADO
PROCESSO DE CRIAÇÃO DE BANCODE DADOS
Programação: no SQL Server 2005 dápara criar consultas sem escrever código
024_CRIACAO 25/02/2006 22:17 Page 28
CRIAÇÃO
30 < COLEÇÃO INFO
tes (tuning) podem ser realizadossem a interferência direta do DBA.O administrador supervisiona e va-lida o que foi feito e, em caso deproblemas, adota outras medidas.
SEGURANÇANunca é pouco lembrar que acriação de usuários e a rotina debackup seja planejada com coe-rência. Usuários com “superpode-res” não são desejáveis em bancosde dados. Deve haver poucos, depreferência um único DBA por ban-co. Deve ser objeto de estudo cons-tante a verificação e a auditoria dosusuários e as transações realiza-das. Não basta confiar apenas nosistema para esse controle. Os ge-renciadores possuem interfaces deadministração relativamente sim-ples. Usuários genéricos podemcomprometer a segurança dos da-dos nessa situação.
A rotina de backup deve ser tes-tada inclusive com restaurações pe-riódicas, para determinar a exatidãoe o conhecimento do processo. Nor-malmente, para backup, há al-gumas formas disponíveis nosprincipais gerenciadores. Asprincipais são:■ CÓPIA COMPLETA DOS DA-DOS (OFF LINE): interrompe-se a execução do banco de da-dos e copiam-se os arquivosde dados. Em caso de pane,pode-se restaurar todo o ban-co que retornará ao momen-to em que foi feita a cópia.
■ CÓPIA COMPLETA DOS DADOS(ON LINE): as transações que são efe-tuadas são armazenadas em local es-pecífico para serem copiadas paraum meio físico. Em caso de pane nobanco de dados, é possível retornara um ponto no tempo, até o limitedas transações gravadas no disco. Is-so faz com que a perda de dados se-ja consideravelmente menor.■ SERVIDOR STANDBY: a cópia dastransações é realizada em um ser-vidor separado. Em caso de pane,o outro servidor assume a funçãodo servidor que falhou.
CONCLUSÃOCom planejamento, padronização econtrole é possível fazer com queos dados da empresa possam seracessados em segurança e rapida-mente. Unir diversas tabelas não écriar um banco. O processo come-ça com a escolha do gerenciadoradequado às necessidades e termi-na com a execução de um plano ro-busto e completo para o que é pre-ciso hoje e será necessário amanhã.
BI: ferramenta para necessidade atual e futura
024_CRIACAO 25/02/2006 22:18 Page 30
O BANCO FALASQLQUÊS
CONHEÇA O IDIOMA DOS BANCOS DE DADOS E ASLINGUAGENS DE ACESSO A ELES
POR ANDRÉ CARDOZO
LINGUAGENS
COLEÇÃO INFO > 31© ILUSTRAÇÃO PAVÃO
s programadores podemescolher a linguagem quequiserem para construiraplicativos que acessem
o banco de dados. Mas não têm comoescapar da SQL (Structured Query Lan-guage). Se o TCP/IP é o idioma da in-ternet, podemos dizer que a SQL tema mesma função nos bancos de da-dos. A linguagem foi desenvolvida nadécada de 70 pela IBM com uma úni-
ca finalidade: manipular bancos de da-dos. A SQL — em muitos casos pro-nunciada como SEQUEL — é adotadapor todos os sistemas gerenciadoresmais utilizados no mercado, como Ora-cle, MySQL e Microsoft SQL Server.
No nível mais avançado, um pro-gramador precisa se dedicar paradominar a SQL, mesmo porque di-versos bancos de dados possuem ex-tensões proprietárias, funções mais
O
031_LINGUAGENS 25/02/2006 22:21 Page 31
LINGUAGENS
COLEÇÃO INFO > 33
LINGUAGENS
32 < COLEÇÃO INFO
avançadas que só funcionam naque-le sistema. Os comandos básicos sãointuitivos e podem ser usados semdificuldade por quem tem noção deprogramação. Veja alguns:CREATE: cria tabelasSELECT: seleciona dadosINSERT: inclui dados em tabelasUPDATE: atualiza dadosDELETE: apaga dados
Além das expressões principais,outros comandos muito usados sãoo “where”, que inclui a condição, eo “order by”, que ordena o resulta-do da consulta SQL. Veja como elasfuncionam no exemplo abaixo:“SELECT nome,endereco FROMclientes WHERE estado = ‘sp’ORDER BY nome”
Esse comando seleciona as colu-nas “nome” e “endereco” da tabela“clientes” em que o estado é iguala “sp” (condição imposta pela ex-pressão “where”). Portanto, somen-te os clientes de São Paulo. Os re-sultados são ordenados por “nome”.A tabela poderia conter outras co-lunas, como “idade” e “sexo”, masnesse exemplo usamos só “nome”e “endereco”. Para selecionar todasas colunas, basta trocar “nome,en-dereco” por *, como abaixo:“SELECT * FROM clientesWHERE estado = ‘sp’ ORDERBY nome”
PL/SQL, A TURBINADAA linguagem PL/SQL é uma extensãoda SQL especializada no banco de da-dos Oracle. Ela combina a facilidade de
manipulação de dados da SQL com asfacilidades de programação de uma lin-guagem procedural. Permite criar ob-jetos de esquema, como gatilhos, pro-cedimentos armazenados e pacotes.
A linguagem PL/SQL utiliza o con-ceito de bloco estruturado. Esses blo-cos são compostos por procedures efunções. Um bloco tem a estruturabásica composta por três partes:DECLARE: seção opcional, em quetodos os objetos são declarados; BEGIN: em que os comandosPL/SQL são colocados;EXCEPTION: em que os erros sãotratados.
> LINGUAGENS DE ACESSOOpções não faltam para os desen-volvedores de programas de acessoa banco de dados. As mais popula-res são ASP, Perl, PHP e Java. Cadauma dessas linguagens tem suas van-tagens e desvantagens, e a escolhadepende de uma série de fatores, co-mo compatibilidade, custo e porta-bilidade. Conheça essas opções.
PHP, A POPULARUma soluçãobastante popularentre os web-masters de sites
dinâmicos é o PHP (Personal HomePage), criado pelo programador Ras-mus Leedorf. A linguagem funcio-na tanto em Unix quanto em Win-dows e possui suporte para diver-sos bancos de dados, incluindoMySQL, Sybase, SQL e Oracle.
A sintaxe possui alguns elemen-tos derivados do Perl, mas é bemmais simples e exige apenas noçõesbásicas de programação. Além dis-so, há outra qualidade muito impor-tante, que beneficia uma parte sen-sível de todos nós: o bolso. O inter-pretador PHP (programa que pro-cessa as páginas feitas nesse for-mato) é gratuito, e basta baixar einstalar no servidor para começara criar um website dinâmico.
ASP, A OPÇÃO WINDOWS O ASP (Active Ser-ver Pages) não éexatamente umalinguagem de
programação, mas o que a Microsoftdefine como “ambiente de execuçãode scripts”. Na maior parte das vezes,as instruções são escritas em VBScript,que é derivado do Visual Basic, tam-bém filhote da Microsoft.
A penetração do Visual Basic nomercado contribui bastante para ocrescimento do ASP. Como a quanti-dade de programadores VB é gran-de, fica mais fácil para as empresascontratarem profissionais que desen-volvam aplicações em VBScript.
Aderir ao ASP significa quase sem-pre optar pelo mundo Windows, umavez que as páginas ASP só rodam na-tivamente em servidores Windowscom servidor web IIS (Internet Infor-mation Server), da Microsoft. É pos-sível rodar páginas ASP em sistemasUnix por intermédio de soluções co-merciais, como o ChiliASP, ou usan-
do o OpenASP, no servidor web Apa-che. Mas a implementação desse ti-po de solução costuma ser problemá-tica para os webmasters.
JAVA, A ECLÉTICAA linguagem Java é a al-ternativa de programa-ção criada pela Sun Mi-crosystems. É uma lin-guagem robusta, comfunções complexas.
Possui como principal vantagem, aportabilidade — roda em qualquerplataforma, de palmtop a main-frame, de sistemas embarcados aprogramas sérios de internetbanking, por exemplo. Profissionaisespecializados em Java estão entreos mais disputados do mercado.
PERL, A VETERANAA linguagem Perl(Practical Extractionand Reporting Lan-guage) foi criada em1987 pelo progra-
mador Larry Wall para resolver tare-fas de administração em sistemas Unix.Wall divulgou a primeira versão dePerl nas listas de discussão da Use-net e logo programadores de todo omundo começaram a dar sugestõespara o aprimoramento da linguagem.Uma das vantagens de Perl é a por-tabilidade. Os scripts podem ser trans-feridos do Unix para o Windows e vi-ce-versa com pouca ou nenhuma mo-dificação. A linguagem é expandidapelo uso de módulos.
031_LINGUAGENS 25/02/2006 22:22 Page 32
LINGUAGENS
COLEÇÃO INFO > 33
LINGUAGENS
32 < COLEÇÃO INFO
avançadas que só funcionam naque-le sistema. Os comandos básicos sãointuitivos e podem ser usados semdificuldade por quem tem noção deprogramação. Veja alguns:CREATE: cria tabelasSELECT: seleciona dadosINSERT: inclui dados em tabelasUPDATE: atualiza dadosDELETE: apaga dados
Além das expressões principais,outros comandos muito usados sãoo “where”, que inclui a condição, eo “order by”, que ordena o resulta-do da consulta SQL. Veja como elasfuncionam no exemplo abaixo:“SELECT nome,endereco FROMclientes WHERE estado = ‘sp’ORDER BY nome”
Esse comando seleciona as colu-nas “nome” e “endereco” da tabela“clientes” em que o estado é iguala “sp” (condição imposta pela ex-pressão “where”). Portanto, somen-te os clientes de São Paulo. Os re-sultados são ordenados por “nome”.A tabela poderia conter outras co-lunas, como “idade” e “sexo”, masnesse exemplo usamos só “nome”e “endereco”. Para selecionar todasas colunas, basta trocar “nome,en-dereco” por *, como abaixo:“SELECT * FROM clientesWHERE estado = ‘sp’ ORDERBY nome”
PL/SQL, A TURBINADAA linguagem PL/SQL é uma extensãoda SQL especializada no banco de da-dos Oracle. Ela combina a facilidade de
manipulação de dados da SQL com asfacilidades de programação de uma lin-guagem procedural. Permite criar ob-jetos de esquema, como gatilhos, pro-cedimentos armazenados e pacotes.
A linguagem PL/SQL utiliza o con-ceito de bloco estruturado. Esses blo-cos são compostos por procedures efunções. Um bloco tem a estruturabásica composta por três partes:DECLARE: seção opcional, em quetodos os objetos são declarados; BEGIN: em que os comandosPL/SQL são colocados;EXCEPTION: em que os erros sãotratados.
> LINGUAGENS DE ACESSOOpções não faltam para os desen-volvedores de programas de acessoa banco de dados. As mais popula-res são ASP, Perl, PHP e Java. Cadauma dessas linguagens tem suas van-tagens e desvantagens, e a escolhadepende de uma série de fatores, co-mo compatibilidade, custo e porta-bilidade. Conheça essas opções.
PHP, A POPULARUma soluçãobastante popularentre os web-masters de sites
dinâmicos é o PHP (Personal HomePage), criado pelo programador Ras-mus Leedorf. A linguagem funcio-na tanto em Unix quanto em Win-dows e possui suporte para diver-sos bancos de dados, incluindoMySQL, Sybase, SQL e Oracle.
A sintaxe possui alguns elemen-tos derivados do Perl, mas é bemmais simples e exige apenas noçõesbásicas de programação. Além dis-so, há outra qualidade muito impor-tante, que beneficia uma parte sen-sível de todos nós: o bolso. O inter-pretador PHP (programa que pro-cessa as páginas feitas nesse for-mato) é gratuito, e basta baixar einstalar no servidor para começara criar um website dinâmico.
ASP, A OPÇÃO WINDOWS O ASP (Active Ser-ver Pages) não éexatamente umalinguagem de
programação, mas o que a Microsoftdefine como “ambiente de execuçãode scripts”. Na maior parte das vezes,as instruções são escritas em VBScript,que é derivado do Visual Basic, tam-bém filhote da Microsoft.
A penetração do Visual Basic nomercado contribui bastante para ocrescimento do ASP. Como a quanti-dade de programadores VB é gran-de, fica mais fácil para as empresascontratarem profissionais que desen-volvam aplicações em VBScript.
Aderir ao ASP significa quase sem-pre optar pelo mundo Windows, umavez que as páginas ASP só rodam na-tivamente em servidores Windowscom servidor web IIS (Internet Infor-mation Server), da Microsoft. É pos-sível rodar páginas ASP em sistemasUnix por intermédio de soluções co-merciais, como o ChiliASP, ou usan-
do o OpenASP, no servidor web Apa-che. Mas a implementação desse ti-po de solução costuma ser problemá-tica para os webmasters.
JAVA, A ECLÉTICAA linguagem Java é a al-ternativa de programa-ção criada pela Sun Mi-crosystems. É uma lin-guagem robusta, comfunções complexas.
Possui como principal vantagem, aportabilidade — roda em qualquerplataforma, de palmtop a main-frame, de sistemas embarcados aprogramas sérios de internetbanking, por exemplo. Profissionaisespecializados em Java estão entreos mais disputados do mercado.
PERL, A VETERANAA linguagem Perl(Practical Extractionand Reporting Lan-guage) foi criada em1987 pelo progra-
mador Larry Wall para resolver tare-fas de administração em sistemas Unix.Wall divulgou a primeira versão dePerl nas listas de discussão da Use-net e logo programadores de todo omundo começaram a dar sugestõespara o aprimoramento da linguagem.Uma das vantagens de Perl é a por-tabilidade. Os scripts podem ser trans-feridos do Unix para o Windows e vi-ce-versa com pouca ou nenhuma mo-dificação. A linguagem é expandidapelo uso de módulos.
031_LINGUAGENS 25/02/2006 22:22 Page 32
UM SQL SERVERFÁCIL DE USAR
A VERSÃO GRÁTIS DO BANCO DE DADOS DA MICROSOFTTEM ASSISTENTE E MUITOS RECURSOS
POR NIVALDO FORESTI
TESTE/SQL SERVER
34 < COLEÇÃO INFO
que não faz a concorrên-cia. Bastou os bancos dedados de código abertocomeçarem a ganhar es-
paço nas corporações, os fabricantestradicionais passarama oferecer versões gra-tuitas com a maioriados recursos das ver-sões pagas e algumasrestrições. A Microsoftinaugurou esse movi-mento, lançando no fi-nal do ano passado o SQL Server 2005Express e seus três irmãos pagos:Workgroup, Standard e Enterprise. De-pois, vieram a Oracle e a IBM.
Como as versõescomerciais irmãs, oSQL Server 2005 Ex-press vem integradoao Visual Studio .Net,o que se traduz em fa-cilidade para o desen-volvimento de aplica-ções. O INFOLAB tes-tou o programa num
servidor Pentium 4 de 2 GHz com 1GB de memória RAM.
Seguindo o padrão dos produtos de-senvolvidos pela Microsoft, a instala-ção do Express é extremamente sim-
ples e fácil de fazer. Umassistente leva o usuá-rio pela mão por todasas etapas do processo.Com alguns cliques demouse, você instalauma instância do ge-renciador de banco de
dados. Mas nem tudo é perfeito. A suí-te de administração e desenvolvimen-to SQL Server Express ManagementStudio — Community Technology Pre-
OFIQUE LIGADO
>Pequenas empresase desenvolvedores sãoo alvo do SQL Server2005 Express
Management Studio:suíte de administraçãoe desenvolvimento
034_SQL_SERVEREXPRESS 25/02/2006 23:01 Page 34
TESTE/SQL SERVER
COLEÇÃO INFO > 35
SQL SERVER 2005 EXPRESSFABRICANTE
PRÓ
CONTRAS
INSTALAÇÃO
GERENCIAMENTO
FERRAMENTAS
DESENVOLVIMENTO
SEGURANÇA
AVALIAÇÃO TÉCNICA (1)
PREÇO
CUSTO/BENEFÍCIO
ONDE ENCONTRAR
Microsoft
Fácil de usar e gerenciar
Suporta apenas umprocessador, 1 GB dememória e bancos de até 4GB
8,5Rápida, com verificaçãode pré-requisitos eprimeiros passos
7,5Possui administraçãosimilar à da versãoStandard, mas faltamfuncionalidades
6,5Fica devendo ferramentascomo o DTS para aimportação de dados
8,5Traz todos os recursos dasdemais versões, inclusivesuporte nativo a XML
8,0Conta com criptografiabaseada em chaves e replicação de dados via web
7,6
Gratuito
www.info.abril.com.br/download/4339.shtml
(1) Média ponderada considerando os seguintes itens e respectivos pesos:Instalação (10%), Gerenciamento (35%), Ferramentas (35%),Desenvolvimento (10%) e Segurança dos dados (10%). O SQL ServerExpress ganha 0,2 ponto na avaliação técnica devido ao bom desempenhodo seu fabricante na Pesquisa INFO de Marcas 2005.
view (CTP) não acompanha a instala-ção. É preciso fazer o download se-paradamente do CTP no endereçowww.info.abril.com.br/download/4454.shtml.
RECURSOSNão espere que a Microsoft tenha da-do tudo de bandeja nessa versão dis-ponível gratuitamente para você. Fal-tam vários recursos. Você não encon-trará o DTS (Data TransformationSystem), o que dará muita dor de ca-beça na hora de importar dados deoutros formatos de arquivo para den-tro do banco de dados. Também nãoterá a pesquisa em texto, os serviçosde notificação e os recursos de busi-ness intelligence que tornam a ver-são Enterprise bastante atraente pa-ra as empresas maiorzinhas.
Outras restrições importantes sãoo suporte a apenas um processador,somente 1 GB de memória RAM e até4 GB de tamanho do banco de dados.Se bem que é difícil uma pequena em-presa bater nesses limites.
FUNCIONALIDADESNem tudo é problema. O mecanismode acesso a dados MSDE (MicrosoftDesktop Engine), um SQL Server ru-dimentar para desktops, desapare-ceu com o advento do Express. E, comele, sumiu a restrição de desempe-nho quando existiam mais de cincoconexões simultâneas ao banco dedados. Toda a funcionalidade progra-mática está no Express, até mesmo osuporte a XML e a integração da lin-
guagem CLR (Common LanguageRuntime) da .Net com a Transact-SQL,a linguagem de comandos SQL da Mi-crosoft. O novo conjunto de objetose a habilidade de agir como clientena replicação de dados e nos cená-rios de envio de mensagens não fal-taram na versão gratuita. Em suma,dá para aproveitar bastante até seremnecessárias mais funcionalidades.
034_SQL_SERVEREXPRESS 25/02/2006 22:28 Page 35
Utilitários: inclui importação de XML
ORACLE EMVERSÃO LIGHT
A EDIÇÃO GRATUITA DO PODEROSO BANCO DE DADOSCHEGA COM RECURSOS DE SOBRA
POR ERIC COSTA
TESTE/ORACLE EXPRESS
36 < COLEÇÃO INFO
Página principal: portal de acesso a funções e links com a comunidade Oracle
eguindo os rastros daMicrosoft, a Oracle pro-duziu uma versão ma-gra de seu poderoso
banco de dados, a Oracle 10g ExpressEdition, de olho nas pequenas em-presas. O software inclui os princi-pais recursos das versões comerciaisdo irmão robusto e é gratuito. Emcontrapartida, limita o tamanho má-ximo da base de dados a 4 GB, alémdo hardware usado. O gerenciadorde bancos de dadosusa apenas um pro-cessador (caso o com-putador tenha maisde um) e, no máximo,1 GB de RAM, mesmoque o micro possuamais memória.
A licença do Oracle Express é bas-tante aberta: é possível, sem pagarnada, distribuir e implantar o pro-grama, além de usá-lo para desen-volvimento de software. Nos testesda INFO, feitos com o sistema ope-racional SUSE Linux 10.0, o OracleExpress Edition teve bom desem-penho, sendo instalado rapidamen-te num micro com processador Pen-tium 4 de 2,4 GHz, com 512 MB dememória RAM. A instalação é bas-
tante simples. Toda aadministração dobanco de dados é fei-ta pelo browser, o quetambém facilita oacesso remoto, paraquem quer deixar oservidor afastado.
S
TESTE/ORACLE EXPRESS
COLEÇÃO INFO > 37
Apesar de ser relativamente sim-ples, a interface web funciona bem,trazendo recursos suficientes paraa criação e a manutenção de ban-cos de dados. Ainda existe, claro,uma ferramenta para migrar umbanco de dados do Oracle Expresspara o Oracle 10g pago.
Uma grande vantagem da versãoExpress do Oracle em relação ao tam-bém gratuito MySQL está no supor-te ao PL/SQL, a versão turbinada doSQL feita pela Oracle. Com ela, é pos-sível acrescentar mais funcionalida-de em stored procedures (ou rotinasarmazenadas), o que pode diminuira necessidade de manutenção futu-ra dos programas que usem o ban-co de dados. Outra vantagem do Ora-cle Express é a robustez do bancode dados, que traz a base do respei-tado Oracle 10g. Para quem vai de-senvolver software, a versão Expresstem o mesmo suporte a linguagensde programação do Oracle 10g, in-tegrando-se com Java, C++, PHP,com os principais dialetos da tecno-logia .Net (como C# e VB.NET), en-tre outros. O suporte do Oracle Ex-press é feito pelos próprios usuários,que ajudam uns aos outros em um
Browser: controle sobre cada objeto
ORACLE 10G EXPRESS EDITION
FABRICANTE
PRÓS
CONTRAS
COMPATIBILIDADE
INSTALAÇÃO
RECURSOS
FERRAMENTAS
AVALIAÇÃO TÉCNICA
PREÇO (R$) (1)
CUSTO/BENEFÍCIO
ONDE ENCONTRAR
Oracle
Dispensa hardwareparrudo, traz recursos de primeira
Limitações ao tamanho dobanco de dados, àmemória e CPU usadas
8,0Roda em Windows e Linux(distribuições compatíveiscom pacotes RPM)
8,0Instalação simples e diretatanto no Windows quantono Linux
8,5Suporte a PL/SQL, integra-se com Java, C++,VB.NET, entre outras linguagens
8,0Gerenciamento pelobrowser, com ferramentade construção de consultas
8,4
Gratuito
www.info.abril.com.br/download/4346.shtml
(1) Média ponderada considerando os seguintes itens e respectivos pesos:Compatibilidade (20%), Instalação (20%), Recursos (30%) e Ferramentas(30%). O Oracle Express ganha 0,2 ponto na Avaliação Técnica devido aobom desempenho do seu fabricante na Pesquisa INFO de Marcas 2005.
grupo de discussão mediado por pro-fissionais da Oracle. Ao baixar o Ora-cle Express, é possível cadastrar-senesse grupo automaticamente.
FIQUE LIGADO
> Limitações tornamo Oracle 10g Expressindicado para aspequenas empresas eos desenvolvedores
036_ORACLE_EXPRESS-8 25/02/2006 22:30 Page 36
Utilitários: inclui importação de XML
ORACLE EMVERSÃO LIGHT
A EDIÇÃO GRATUITA DO PODEROSO BANCO DE DADOSCHEGA COM RECURSOS DE SOBRA
POR ERIC COSTA
TESTE/ORACLE EXPRESS
36 < COLEÇÃO INFO
Página principal: portal de acesso a funções e links com a comunidade Oracle
eguindo os rastros daMicrosoft, a Oracle pro-duziu uma versão ma-gra de seu poderoso
banco de dados, a Oracle 10g ExpressEdition, de olho nas pequenas em-presas. O software inclui os princi-pais recursos das versões comerciaisdo irmão robusto e é gratuito. Emcontrapartida, limita o tamanho má-ximo da base de dados a 4 GB, alémdo hardware usado. O gerenciadorde bancos de dadosusa apenas um pro-cessador (caso o com-putador tenha maisde um) e, no máximo,1 GB de RAM, mesmoque o micro possuamais memória.
A licença do Oracle Express é bas-tante aberta: é possível, sem pagarnada, distribuir e implantar o pro-grama, além de usá-lo para desen-volvimento de software. Nos testesda INFO, feitos com o sistema ope-racional SUSE Linux 10.0, o OracleExpress Edition teve bom desem-penho, sendo instalado rapidamen-te num micro com processador Pen-tium 4 de 2,4 GHz, com 512 MB dememória RAM. A instalação é bas-
tante simples. Toda aadministração dobanco de dados é fei-ta pelo browser, o quetambém facilita oacesso remoto, paraquem quer deixar oservidor afastado.
S
TESTE/ORACLE EXPRESS
COLEÇÃO INFO > 37
Apesar de ser relativamente sim-ples, a interface web funciona bem,trazendo recursos suficientes paraa criação e a manutenção de ban-cos de dados. Ainda existe, claro,uma ferramenta para migrar umbanco de dados do Oracle Expresspara o Oracle 10g pago.
Uma grande vantagem da versãoExpress do Oracle em relação ao tam-bém gratuito MySQL está no supor-te ao PL/SQL, a versão turbinada doSQL feita pela Oracle. Com ela, é pos-sível acrescentar mais funcionalida-de em stored procedures (ou rotinasarmazenadas), o que pode diminuira necessidade de manutenção futu-ra dos programas que usem o ban-co de dados. Outra vantagem do Ora-cle Express é a robustez do bancode dados, que traz a base do respei-tado Oracle 10g. Para quem vai de-senvolver software, a versão Expresstem o mesmo suporte a linguagensde programação do Oracle 10g, in-tegrando-se com Java, C++, PHP,com os principais dialetos da tecno-logia .Net (como C# e VB.NET), en-tre outros. O suporte do Oracle Ex-press é feito pelos próprios usuários,que ajudam uns aos outros em um
Browser: controle sobre cada objeto
ORACLE 10G EXPRESS EDITION
FABRICANTE
PRÓS
CONTRAS
COMPATIBILIDADE
INSTALAÇÃO
RECURSOS
FERRAMENTAS
AVALIAÇÃO TÉCNICA
PREÇO (R$) (1)
CUSTO/BENEFÍCIO
ONDE ENCONTRAR
Oracle
Dispensa hardwareparrudo, traz recursos de primeira
Limitações ao tamanho dobanco de dados, àmemória e CPU usadas
8,0Roda em Windows e Linux(distribuições compatíveiscom pacotes RPM)
8,0Instalação simples e diretatanto no Windows quantono Linux
8,5Suporte a PL/SQL, integra-se com Java, C++,VB.NET, entre outras linguagens
8,0Gerenciamento pelobrowser, com ferramentade construção de consultas
8,4
Gratuito
www.info.abril.com.br/download/4346.shtml
(1) Média ponderada considerando os seguintes itens e respectivos pesos:Compatibilidade (20%), Instalação (20%), Recursos (30%) e Ferramentas(30%). O Oracle Express ganha 0,2 ponto na Avaliação Técnica devido aobom desempenho do seu fabricante na Pesquisa INFO de Marcas 2005.
grupo de discussão mediado por pro-fissionais da Oracle. Ao baixar o Ora-cle Express, é possível cadastrar-senesse grupo automaticamente.
FIQUE LIGADO
> Limitações tornamo Oracle 10g Expressindicado para aspequenas empresas eos desenvolvedores
036_ORACLE_EXPRESS-8 25/02/2006 22:30 Page 36
TESTE/DB2 EXPRESS
COLEÇÃO INFO > 39
TESTE/DB2 EXPRESS
38 < COLEÇÃO INFO
epois da Microsoft e daOracle, foi a vez da IBMcriar uma versão gratui-ta de seu robusto ban-
co de dados DB2. Como as demaisedições “expressas” dos concorren-tes, o DB2 Express-C tem limitações— suporta até 4 GB de memóriaRAM —, mas possui característicasque permitem seu uso em aplicaçõescomerciais e sensíveis. Tem a vanta-gem de suportar tanto a plataformaWindows quanto a Linux e roda emmáquinas com até dois processado-res, enquanto as edições expressasdo SQL Server e do Oracle só aceitam
um. Acompanhe a seguir o teste doINFOLAB, realizado num PC Pentium4 de 2,8 MHz, com 512 MB de RAM eWindows 2003 Server Standard.
INSTALAÇÃOO processo de instalação do DB2 Ex-press-C é rápido, mas fazer o down-load pela web pode ser torturante.O arquivo tem pouco mais de 450MB e, mesmo numa conexão vitami-nada, irá demorar mais de uma ho-ra para baixar. Ler os pré-requisitose as notas nos menus do instaladorevitará problemas durante e após ainstalação. Por exemplo, um dos pré-
requisitos é que naplataforma Windowsse use o Windows XPProfissional.
Durante a instala-ção, o próprio sistemacoloca em ação as op-ções Java necessárias.Além disso, permitetestar imediatamente
D
seu funcionamento,criando ou carregan-do os bancos de da-dos de exemplo queo acompanham. Umasérie de caixas de diá-logo e janelas de con-firmação indicam oque fazer a cada pas-so da instalação em bom português.
A atualização para versões maisrecentes fica a um clique de distân-cia no próprio instalador. Basta acio-nar Atualizar Versão para o progra-ma verificar qual é a versão em usoe executar o upgrade. Acessando oitem Visualizar Introdução, o usuá-rio encontra tutoriais e informaçõesdetalhadas sobre o produto e ou-tros assuntos de interesse, como amigração de versões anteriores. Osoutros primeiros passos disponíveis— criar banco de dados e acessarexemplos — abrem aCentral de Controle.
NAS RÉDEASO Centro de Controleé o ponto de partidade todas as opera-ções, controles e ad-ministração das bases de dados cria-das no DB2 Express-C. Como podehaver mais de uma instância ope-rando na mesma máquina, o Cen-tro de Controle pode dar conta de
todas elas. É um utilitário bastanterico em funcionalidade para criar emodificar tabelas, executar consul-tas (queries) e análises complexas,monitorar o status dos bancos dedados, funções de importação e ex-portação de dados, dentre outras.
Os usuários contam com uma in-terface bastante fácil de usar, simi-lar nos sistemas operacionais Win-dows e Linux. Essa estratégia seguea da concorrente Oracle, que estáusando os navegadores para man-ter interfaces semelhantes em to-
das as plataformasque suporta.
Na plataforma Win-dows, a Central deControle pode seraberta a partir do me-nu Iniciar ou clican-do-se com o botão di-
reito no ícone do DB2 na bandeja desistema. Uma janela com uma listasimilar à do Explorer, contendo ban-co de dados e seus objetos, é mos-trada ao abrir o programa.
DB2 GRÁTIS COMTUDO DENTRO
A VERSÃO DEGUSTAÇÃO DO BANCO DE DADOS DA IBMVEM REPLETA DE BOAS FERRAMENTAS
POR NIVALDO FORESTI
Instalação: o assistenteguia o usuário durantetodo o processo
Centro de Controle: dáconta de todas asinstâncias em operação
FIQUE LIGADO
> Fácil de usar e cheiode ferramentas, o DB2Express-C vai bem naspequenas empresas
038_DB2_EXPRESS 25/02/2006 22:31 Page 38
TESTE/DB2 EXPRESS
COLEÇÃO INFO > 39
TESTE/DB2 EXPRESS
38 < COLEÇÃO INFO
epois da Microsoft e daOracle, foi a vez da IBMcriar uma versão gratui-ta de seu robusto ban-
co de dados DB2. Como as demaisedições “expressas” dos concorren-tes, o DB2 Express-C tem limitações— suporta até 4 GB de memóriaRAM —, mas possui característicasque permitem seu uso em aplicaçõescomerciais e sensíveis. Tem a vanta-gem de suportar tanto a plataformaWindows quanto a Linux e roda emmáquinas com até dois processado-res, enquanto as edições expressasdo SQL Server e do Oracle só aceitam
um. Acompanhe a seguir o teste doINFOLAB, realizado num PC Pentium4 de 2,8 MHz, com 512 MB de RAM eWindows 2003 Server Standard.
INSTALAÇÃOO processo de instalação do DB2 Ex-press-C é rápido, mas fazer o down-load pela web pode ser torturante.O arquivo tem pouco mais de 450MB e, mesmo numa conexão vitami-nada, irá demorar mais de uma ho-ra para baixar. Ler os pré-requisitose as notas nos menus do instaladorevitará problemas durante e após ainstalação. Por exemplo, um dos pré-
requisitos é que naplataforma Windowsse use o Windows XPProfissional.
Durante a instala-ção, o próprio sistemacoloca em ação as op-ções Java necessárias.Além disso, permitetestar imediatamente
D
seu funcionamento,criando ou carregan-do os bancos de da-dos de exemplo queo acompanham. Umasérie de caixas de diá-logo e janelas de con-firmação indicam oque fazer a cada pas-so da instalação em bom português.
A atualização para versões maisrecentes fica a um clique de distân-cia no próprio instalador. Basta acio-nar Atualizar Versão para o progra-ma verificar qual é a versão em usoe executar o upgrade. Acessando oitem Visualizar Introdução, o usuá-rio encontra tutoriais e informaçõesdetalhadas sobre o produto e ou-tros assuntos de interesse, como amigração de versões anteriores. Osoutros primeiros passos disponíveis— criar banco de dados e acessarexemplos — abrem aCentral de Controle.
NAS RÉDEASO Centro de Controleé o ponto de partidade todas as opera-ções, controles e ad-ministração das bases de dados cria-das no DB2 Express-C. Como podehaver mais de uma instância ope-rando na mesma máquina, o Cen-tro de Controle pode dar conta de
todas elas. É um utilitário bastanterico em funcionalidade para criar emodificar tabelas, executar consul-tas (queries) e análises complexas,monitorar o status dos bancos dedados, funções de importação e ex-portação de dados, dentre outras.
Os usuários contam com uma in-terface bastante fácil de usar, simi-lar nos sistemas operacionais Win-dows e Linux. Essa estratégia seguea da concorrente Oracle, que estáusando os navegadores para man-ter interfaces semelhantes em to-
das as plataformasque suporta.
Na plataforma Win-dows, a Central deControle pode seraberta a partir do me-nu Iniciar ou clican-do-se com o botão di-
reito no ícone do DB2 na bandeja desistema. Uma janela com uma listasimilar à do Explorer, contendo ban-co de dados e seus objetos, é mos-trada ao abrir o programa.
DB2 GRÁTIS COMTUDO DENTRO
A VERSÃO DEGUSTAÇÃO DO BANCO DE DADOS DA IBMVEM REPLETA DE BOAS FERRAMENTAS
POR NIVALDO FORESTI
Instalação: o assistenteguia o usuário durantetodo o processo
Centro de Controle: dáconta de todas asinstâncias em operação
FIQUE LIGADO
> Fácil de usar e cheiode ferramentas, o DB2Express-C vai bem naspequenas empresas
038_DB2_EXPRESS 25/02/2006 22:31 Page 38
TESTE/DB2 EXPRESS
COLEÇÃO INFO > 41
TESTE/DB2 EXPRESS
40 < COLEÇÃO INFO
A quantidade deutilitários disponíveisno DB2 Express-Cimpressiona. Há pro-gramas para moni-toramento de me-mória, de aplicativos,um Centro de Tare-fas em que podemser programadas ta-refas específicas pa-ra execução em lo-te e a configuraçãodo sistema. Para fa-cilitar a vida do ad-ministrador ou doprogramador, funções como criar oualterar banco de dados, backup e re-store são controladas por assistentes.
DESEMPENHOConseguir um desempenho ótimodas aplicações com banco de dadosé considerada uma combinação demagia negra e ciência. Na tentativade se aproximar do ótimo, o DB2 Ex-press-C oferece ferramentas em sua
maioria gráficas, pa-ra assegurar que asaplicações não se-jam prejudicadas pe-lo mau uso dos re-cursos. São várias asferramentas dispo-níveis: db2batch, queverifica o desempe-nho das queries emtempo real; VisualExplain, que analisagraficamente as con-sultas; Design Advi-sor, que sugere a co-locação de índices
em tabelas para diminuir o tempode acesso baseado nas consultas exe-cutadas, e, finalmente, o Activity Mo-nitor, que gera relatórios do desem-penho dos sistemas para análise.
DESENVOLVIMENTOO DB2 Express-C inclui os drivers ea interface necessários para o de-senvolvimento de aplicações naslinguagens C/C++, Java e .Net, além
de PHP e Perl. Su-porta linguagens noservidor para o de-senvolvimento destored procedures,triggers e funções.Elas podem ser es-critas em C/C++, Co-bol, Java (JDBC e
SQLJ), .Net (qualquer linguagem su-portada pelo compilador CLR) e SQLPL (Procedure Language). A SQL PLé considerada nativa e guardadano banco de dados como objetoDB2, reconhecida como um padrãoANSI SQL. Uma ferramenta gráfi-ca, o Centro de Desenvolvimento,permite o gerenciamento, desen-volvimento, teste e implantação destored procedures.
A integração e o desenvolvimen-to de aplicações Java são pontosfortes do produto. Os mais conhe-cidos drivers estão incluídos no pa-cote. O ambiente Websphere Stu-dio, da IBM, pode ser usado no de-senvolvimento de aplicações como DB2 Express-C, da mesma formaque o Visual Studio 2003, da Micro-soft. Um driver de acesso compatí-vel com o ambiente de desenvolvi-mento 1.1 está disponível no produ-to. A documentação não é tão com-pleta como deveria, mas o usuárioconsegue as informações, em in-glês, pesquisando no site da IBM.
CONJUNTONo conjunto da obra, o DB2 Express-C é um banco de dados que vale apena experimentar, principalmen-te por conta do Centro de Contro-le, que é poderoso, fácil de usar epossui muitos utilitários e ferramen-tas. Além disso, não há limitação denúmero de usuários ou de tamanhopara os bancos de dados nas apli-cações desenvolvidas para a plata-forma. A única restrição existente
DB2 EXPRESS-C 8.2
FABRICANTE
PRÓS
CONTRAS
INSTALAÇÃO
GERENCIAMENTO
FERRAMENTAS
DESENVOLVIMENTO
SEGURANÇA
AVALIAÇÃO TÉCNICA (1)
PREÇO (R$)
CUSTO/BENEFÍCIO
ONDE ENCONTRAR
IBM
Bons utilitários, suporte a máquinas com doisprocessadores ereplicações complexas
Não tem ferramentas de datawarehouse e limita a capacidade dememória
8,4Rápida, com verificaçãode pré-requisitos eprimeiros passos
9,0Permite gerenciar váriasinstâncias do programa,um ou mais bancos,projetos e diagnósticos
8,5Replicação, central detarefas, centro defuncionamento comalertas, centro de dados inteligentes
8,0Em WebSphere Studio,Java, C, C++, Fortran,Rexx, Perl entre outraslinguagens
7,5Replicação de dados entrebancos, usando sistemasde mensagens
8,5
Gratuito
www.info.abril.com.br/download/4435.shtml
(1) Média ponderada considerando os seguintes itens e respectivos pesos:Instalação (10%), Gerenciamento (35%), Ferramentas (35%),Desenvolvimento (10%) e Segurança dos dados (10%).
Visual Explain: ferramentaespecial para a análise gráfica dasconsultas ao banco de dados
é o limite de 4GB para a memóriaRAM. Alguns recursos encontradosnas versões pagas, como ferramen-tas de datawarehouse e drivers pa-ra o banco de dados Informix, nãoacompanham o DB2 Express-C. Masquando esses recursos forem ne-cessários, o usuário poderá adotaruma versão paga do produto semas dores e os custos de migração.
Desenvolvimento:stored procedures emambiente gráfico
038_DB2_EXPRESS 25/02/2006 22:32 Page 40
TESTE/DB2 EXPRESS
COLEÇÃO INFO > 41
TESTE/DB2 EXPRESS
40 < COLEÇÃO INFO
A quantidade deutilitários disponíveisno DB2 Express-Cimpressiona. Há pro-gramas para moni-toramento de me-mória, de aplicativos,um Centro de Tare-fas em que podemser programadas ta-refas específicas pa-ra execução em lo-te e a configuraçãodo sistema. Para fa-cilitar a vida do ad-ministrador ou doprogramador, funções como criar oualterar banco de dados, backup e re-store são controladas por assistentes.
DESEMPENHOConseguir um desempenho ótimodas aplicações com banco de dadosé considerada uma combinação demagia negra e ciência. Na tentativade se aproximar do ótimo, o DB2 Ex-press-C oferece ferramentas em sua
maioria gráficas, pa-ra assegurar que asaplicações não se-jam prejudicadas pe-lo mau uso dos re-cursos. São várias asferramentas dispo-níveis: db2batch, queverifica o desempe-nho das queries emtempo real; VisualExplain, que analisagraficamente as con-sultas; Design Advi-sor, que sugere a co-locação de índices
em tabelas para diminuir o tempode acesso baseado nas consultas exe-cutadas, e, finalmente, o Activity Mo-nitor, que gera relatórios do desem-penho dos sistemas para análise.
DESENVOLVIMENTOO DB2 Express-C inclui os drivers ea interface necessários para o de-senvolvimento de aplicações naslinguagens C/C++, Java e .Net, além
de PHP e Perl. Su-porta linguagens noservidor para o de-senvolvimento destored procedures,triggers e funções.Elas podem ser es-critas em C/C++, Co-bol, Java (JDBC e
SQLJ), .Net (qualquer linguagem su-portada pelo compilador CLR) e SQLPL (Procedure Language). A SQL PLé considerada nativa e guardadano banco de dados como objetoDB2, reconhecida como um padrãoANSI SQL. Uma ferramenta gráfi-ca, o Centro de Desenvolvimento,permite o gerenciamento, desen-volvimento, teste e implantação destored procedures.
A integração e o desenvolvimen-to de aplicações Java são pontosfortes do produto. Os mais conhe-cidos drivers estão incluídos no pa-cote. O ambiente Websphere Stu-dio, da IBM, pode ser usado no de-senvolvimento de aplicações como DB2 Express-C, da mesma formaque o Visual Studio 2003, da Micro-soft. Um driver de acesso compatí-vel com o ambiente de desenvolvi-mento 1.1 está disponível no produ-to. A documentação não é tão com-pleta como deveria, mas o usuárioconsegue as informações, em in-glês, pesquisando no site da IBM.
CONJUNTONo conjunto da obra, o DB2 Express-C é um banco de dados que vale apena experimentar, principalmen-te por conta do Centro de Contro-le, que é poderoso, fácil de usar epossui muitos utilitários e ferramen-tas. Além disso, não há limitação denúmero de usuários ou de tamanhopara os bancos de dados nas apli-cações desenvolvidas para a plata-forma. A única restrição existente
DB2 EXPRESS-C 8.2
FABRICANTE
PRÓS
CONTRAS
INSTALAÇÃO
GERENCIAMENTO
FERRAMENTAS
DESENVOLVIMENTO
SEGURANÇA
AVALIAÇÃO TÉCNICA (1)
PREÇO (R$)
CUSTO/BENEFÍCIO
ONDE ENCONTRAR
IBM
Bons utilitários, suporte a máquinas com doisprocessadores ereplicações complexas
Não tem ferramentas de datawarehouse e limita a capacidade dememória
8,4Rápida, com verificaçãode pré-requisitos eprimeiros passos
9,0Permite gerenciar váriasinstâncias do programa,um ou mais bancos,projetos e diagnósticos
8,5Replicação, central detarefas, centro defuncionamento comalertas, centro de dados inteligentes
8,0Em WebSphere Studio,Java, C, C++, Fortran,Rexx, Perl entre outraslinguagens
7,5Replicação de dados entrebancos, usando sistemasde mensagens
8,5
Gratuito
www.info.abril.com.br/download/4435.shtml
(1) Média ponderada considerando os seguintes itens e respectivos pesos:Instalação (10%), Gerenciamento (35%), Ferramentas (35%),Desenvolvimento (10%) e Segurança dos dados (10%).
Visual Explain: ferramentaespecial para a análise gráfica dasconsultas ao banco de dados
é o limite de 4GB para a memóriaRAM. Alguns recursos encontradosnas versões pagas, como ferramen-tas de datawarehouse e drivers pa-ra o banco de dados Informix, nãoacompanham o DB2 Express-C. Masquando esses recursos forem ne-cessários, o usuário poderá adotaruma versão paga do produto semas dores e os custos de migração.
Desenvolvimento:stored procedures emambiente gráfico
038_DB2_EXPRESS 25/02/2006 22:32 Page 40
O MYSQL GANHAMÚSCULOS
PREFERIDO PELA TURMA DO LINUX, O BANCODE DADOS INCORPORA NOVAS FUNÇÕES E CORTEJA
O MERCADO CORPORATIVOPOR CARLOS MACHADO, COM LUIZ CRUZ
TESTE/MYSQL
42 < COLEÇÃO INFO
banco de dados de có-digo aberto MySQL te-ve um belo upgrade naversão 5.0, liberada no
final de outubro de 2005. De alter-nativa rápida, eficaz e pouco sofis-ticada para sites simples, o produ-to passou à categoria dos robustos.Com suporte a novas funções, co-mo transações e stored procedures,o banco de dados se propõe a ta-refas mais ambiciosas. Essas mu-danças sinalizam que o MySQL es-tá cultivando músculos para enca-rar o mercado corporativo.
Produzido pela empresa suecaMySQL AB, o MySQL tem uma for-ma de licenciamento duplo. Ousuário pode adotá-lo como pro-duto gratuito, segundo a licençaGPL, mas também tem a opção deadquiri-lo comercialmente, comdireito a suporte e outros benefí-cios. Parte fundamental do cha-mado padrão LAMP — sigla de umconjunto de produtos de códigoaberto formado por Linux, Apa-che, MySQL, PHP/Perl/Python —,o MySQL tem hoje uma enorme
base instalada. A MySQL AB come-morou a marca de mais de 1 mi-lhão de downloads nas três pri-meiras semanas de lançamento daversão 5.0. O número é sem dúvi-da indicativo do grau de interes-se em torno do banco de dados.
MULTIPLATAFORMADesde o início, o MySQL se des-
tacou pela velocidade, que permi-te seu uso em máquinas de recur-sos relativamente modestos. Isso otransformou no sistema preferidodos sites profissionais pequenos emédios. Também contribui para osucesso sua disponibilidade em
O
TESTE/MYSQL
COLEÇÃO INFO > 43
quase todos os siste-mas operacionaismais importantes. Háversões do MySQLpara Windows, Linux,Unix, Solaris, Mac OSX, FreeBSD, HP-UX,IBM AIX e outros. Hátambém versões para plataformasde hardware Intel e AMD, de 32 e64 bits, além dos chips Sparc, Al-pha, PowerPC etc. INFO analisou aversão 5.0.15 do MySQL para Linuxnum servidor Pentium 4 de 3 GHz,rodando a distribuição SUSE 10 de64 bits. Também instalamos o ban-co de dados num computador como Windows XP. Nos dois casos, ainstalação não ofereceu nenhumadificuldade especial.
Algumas das funções que es-tréiam no MySQL 5.0 eram há mui-to tempo reclamadas pelos usuá-
rios. A principal de-las é o suporte atransações. Agora, ogerenciador é capazde processar transa-ções do tipo ACID,obrigatórias em apli-cações de missão crí-
tica. Uma transação, para os nãoiniciados, é uma operação que sófaz sentido se todos os seus pas-sos forem executados. Um exem-plo clássico é a transferência dedinheiro de uma conta bancáriapara outra. Há duas tarefas: debi-tar o valor numa conta e creditá-lo na outra. Se apenas uma das ta-refas é executada, o sistema se tor-na inconsistente. Nos bancos dedados profissionais, o processa-mento de transações garante a in-tegridade de operações desse ti-po. Se, por exemplo, o hardware
Controles: uma só interface para controlar usuários, montar rotinas e verificar carga
MySQL Administrator: interfacegráfica de gerenciamento
FIQUE LIGADO
>Muito utilizado emsites simples, o MySQL5.0 já dá conta deaplicações corportivas
42_BANCO_SQL5-1 25/02/2006 22:33 Page 42
O MYSQL GANHAMÚSCULOS
PREFERIDO PELA TURMA DO LINUX, O BANCODE DADOS INCORPORA NOVAS FUNÇÕES E CORTEJA
O MERCADO CORPORATIVOPOR CARLOS MACHADO, COM LUIZ CRUZ
TESTE/MYSQL
42 < COLEÇÃO INFO
banco de dados de có-digo aberto MySQL te-ve um belo upgrade naversão 5.0, liberada no
final de outubro de 2005. De alter-nativa rápida, eficaz e pouco sofis-ticada para sites simples, o produ-to passou à categoria dos robustos.Com suporte a novas funções, co-mo transações e stored procedures,o banco de dados se propõe a ta-refas mais ambiciosas. Essas mu-danças sinalizam que o MySQL es-tá cultivando músculos para enca-rar o mercado corporativo.
Produzido pela empresa suecaMySQL AB, o MySQL tem uma for-ma de licenciamento duplo. Ousuário pode adotá-lo como pro-duto gratuito, segundo a licençaGPL, mas também tem a opção deadquiri-lo comercialmente, comdireito a suporte e outros benefí-cios. Parte fundamental do cha-mado padrão LAMP — sigla de umconjunto de produtos de códigoaberto formado por Linux, Apa-che, MySQL, PHP/Perl/Python —,o MySQL tem hoje uma enorme
base instalada. A MySQL AB come-morou a marca de mais de 1 mi-lhão de downloads nas três pri-meiras semanas de lançamento daversão 5.0. O número é sem dúvi-da indicativo do grau de interes-se em torno do banco de dados.
MULTIPLATAFORMADesde o início, o MySQL se des-
tacou pela velocidade, que permi-te seu uso em máquinas de recur-sos relativamente modestos. Isso otransformou no sistema preferidodos sites profissionais pequenos emédios. Também contribui para osucesso sua disponibilidade em
O
TESTE/MYSQL
COLEÇÃO INFO > 43
quase todos os siste-mas operacionaismais importantes. Háversões do MySQLpara Windows, Linux,Unix, Solaris, Mac OSX, FreeBSD, HP-UX,IBM AIX e outros. Hátambém versões para plataformasde hardware Intel e AMD, de 32 e64 bits, além dos chips Sparc, Al-pha, PowerPC etc. INFO analisou aversão 5.0.15 do MySQL para Linuxnum servidor Pentium 4 de 3 GHz,rodando a distribuição SUSE 10 de64 bits. Também instalamos o ban-co de dados num computador como Windows XP. Nos dois casos, ainstalação não ofereceu nenhumadificuldade especial.
Algumas das funções que es-tréiam no MySQL 5.0 eram há mui-to tempo reclamadas pelos usuá-
rios. A principal de-las é o suporte atransações. Agora, ogerenciador é capazde processar transa-ções do tipo ACID,obrigatórias em apli-cações de missão crí-
tica. Uma transação, para os nãoiniciados, é uma operação que sófaz sentido se todos os seus pas-sos forem executados. Um exem-plo clássico é a transferência dedinheiro de uma conta bancáriapara outra. Há duas tarefas: debi-tar o valor numa conta e creditá-lo na outra. Se apenas uma das ta-refas é executada, o sistema se tor-na inconsistente. Nos bancos dedados profissionais, o processa-mento de transações garante a in-tegridade de operações desse ti-po. Se, por exemplo, o hardware
Controles: uma só interface para controlar usuários, montar rotinas e verificar carga
MySQL Administrator: interfacegráfica de gerenciamento
FIQUE LIGADO
>Muito utilizado emsites simples, o MySQL5.0 já dá conta deaplicações corportivas
42_BANCO_SQL5-1 25/02/2006 22:33 Page 42
TESTE/MYSQL
44 < COLEÇÃO INFO
falha no meio de uma operação,ela é completamente anulada. Aprimeira regra do modelo ACID éexatamente esta: ou tudo ou na-da. O MySQL 5.0 também suportatransações distribuídas, ou seja,transações complexas envolvendomúltiplos bancos de dados locali-zados em diferentes ambientes.
STORED PROCEDURESOutra novidade do MySQL 5.0 sãoas stored procedures. Uma storedprocedure — literalmente: rotinaarmazenada — é um programa, ouseqüência de comandos, guardadofisicamente no servidor. Uma sériede consultas complexas roda maisrápido como uma stored proced-ure do que uma lista de comandos,executados um a um, a partir deum computador cliente. As proced-ures também podem ser dispara-das dentro de uma transação.
Os novos recursos do MySQL jáexistem há muito tempo nos gran-des gerenciadores de bancos dedados. A MySQL AB sempre negouque compete com Oracle, IBM eMicrosoft. Mas, ao incorporar osnovos recursos, a empresa dá for-tes indicações de que está de olhono mercado corporativo. Outro si-nal evidente disso está no MySQLMigration Toolkit, conjunto de fer-ramentas oferecido para incenti-var a migração dos bancos de da-dos concorrentes para o MySQL.Obviamente, o produto ainda nãotem cacife, nem técnico nem co-
MYSQL 5.0FABRICANTE
PRÓ
CONTRA
INSTALAÇÃO
RECURSOS
FERRAMENTAS
AVALIAÇÃO TÉCNICA (1)
PREÇO LICENÇA
CUSTO/BENEFÍCIO
ONDE ENCONTRAR
MySQL AB
É multiplataforma: temversões para Windows,Linux, Unix
Não tem suporte a XML
8,6Simples, não oferece nenhumadificuldade especial
8,5As novas funções aumentam muito o poderde ação do programa
7,5O MySQL Administratoroferece poucos recursosgráficos
8,3Comparado com o JBoss,foi, em média, 3,6 vezesmais rápido no tempo deresposta
GratuitoGPL
www.info.abril.com.br/download/3641.shtml
(1) Média ponderada considerando os seguintes itens: Instalação (30%), Recursos (50%), Ferramentas (20%).
mercial, para encarar os gigantesdo setor. Mas, como se diz, estátentando comer pelas beiradas. Umrecurso importante que o produ-to ainda está devendo aos usuáriosé o suporte a XML.
O fabricante do MySQL tambémoferece o MySQL Administrator, umaferramenta visual para gerenciar ban-cos de dados e usuários. O Adminis-trator deve ser obtido num downloadà parte. Essa ferramenta permite criare alterar bancos de dados, montarstored procedures e verificar infor-mações de carga do sistema. Embo-ra execute bem as funções a que sepropõe, ainda não aproveita bem osrecursos da interface gráfica.
42_BANCO_SQL5-1 25/02/2006 22:34 Page 44
MISSÃO CRÍTICA ÉPARA POSTGRE
TESTE/POSTGRESQL
COLEÇÃO INFO > 47
elho conhecido das co-munidades de softwarelivre, o PostgreSQL de-morou um pouco mais do
que o MySQL para se popularizar, pro-vavelmente por ser focado em aplica-ções críticas. Muitos dos recursos queo MySQL apresenta na versão 5.0, taiscomo o suporte a gatilhos, stored pro-cedures e transações, já fazem partedo PostgreSQL há tempos. O impulsoveio com a versão para Windows e acolaboração de empresas como Sun,Fujitsu e Pervasive Software. Com ex-periência no desenvolvimento e em-pacotamento de versões comerciaisafinadas com as necessidades das cor-porações, elas estãocolocando terno egravata no produto.
O PostgreSQLtambém foi vítimados rótulos lento epesado. Pode-se di-zer que o logotipodo produto — umelefante azul — atéreforce essa ima-gem. Mas, debru-çando-se sobre a
versão 8.1, maisrecente, logo sepercebe que is-so não é verdade.
A distribuição decódigos binários do Post-greSQL 8.1 prontos para ins-talar está disponível apenas para Li-nux ou Windows. Para outras plata-formas Unix, é preciso baixar o códi-go-fonte e compilar o sistema.
No Linux, o PostgreSQL vem comopacote binário na maior parte das dis-tribuições, mas para quem gosta deaventura e tem bastante tempo, po-de baixar o código-fonte e compilar.
No ambiente Windows, o progra-
V
PostgreSQL: o pgAdmin faz a administração do banco
VERSÃO 8.1 CONTA COM DRIVERS E CAMADAS DE SOFTWARE QUE GARANTEM SUA CONECTIVIDADE
POR HELIO SILVA
047_POSTGRES 25/02/2006 22:39 Page 47
TESTE/POSTGRESQL
COLEÇÃO INFO > 49
TESTE/POSTGRESQL
48 < COLEÇÃO INFO
POSTGRESQL 8.1FABRICANTE
PRÓS
CONTRAS
INSTALAÇÃO
GERENCIAMENTO
FERRAMENTAS
DESENVOLVIMENTO
SEGURANÇA
AVALIAÇÃO TÉCNICA (1)
PREÇO LICENÇA
CUSTO/BENEFÍCIO
ONDE ENCONTRAR
PostgreSQL Global Development Group
Inclui replicação de dados,processamento paralelo,suporte a 64 bits e aclusters
Falta de suporte nativo aopadrão XML
7,0Fácil e rápida com pacotesbinários e instalador emportuguês
8,5O pgAdmin III dá acesso atodos os recursos dobanco, mas está só eminglês
8,5Conta com ferramentas degeoprocessamento,administração, tunning edatawarehouse na web
8,0Pode ser feito em Java,Perl, PHP, TCL, C, C++ equalquer linguagem comconectores de acessocomo o .Net
8,5Dispõe de criptografiapara protegerarmazenamento, tráfego,atributos e autenticação
8,3
GratuitoBSD
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%).
ma pode ser instalado de duas for-mas: utilizando o ambiente Cygwin,que permite, com certas restrições,utilizar os programas escritos paraLinux, ou diretamente no WindowsXP. O Cygwin é mais indicado paraquem tem experiência no uso doPostgreSQL em ambiente Linux. Jáa versão pronta para o Windows émuito robusta, fácil e não decepcio-na. A instalação no Windows podeser feita em português, mas, no fi-nal, o software de administraçãopgAdmin se apresentará em inglês.
RECURSOSO PostgreSQL 8.1 chega bem abaste-cido de drivers e camadas de soft-ware que garantemsua conectividade comferramentas de criaçãoe extração de relató-rios além, é claro, de li-gá-lo com as lingua-gens de programaçãopopulares como Java,Visual Basic e Delphi. A plataforma.Net da Microsoft também não fica defora, contando com o data providerNpgSQL. É natural que o banco man-tenha conexões privilegiadas com seuspares do software livre, como as lin-guagens Phyton, Perl, TCL e PHP.
Se para escrever programas defront-end existem tantas opções, omesmo pode se dizer das linguagensdisponíveis para desenvolver funçõese processos que rodam dentro dobanco. As opções são: PL/Perl,PL/TCL, PL/Java e o PL/pgSQL do
próprio PostgreSQL, que equivale aoPL/SQL da Oracle. Essa diversidadefacilita a vida de quem já é versadoem uma dessas linguagens.
Além do pacote básico, é sem-pre bom dar uma checada em si-tes que mantém projetos ligadosao PostgreSQL. Um deles é o sitepgfoundry.org, onde podem serencontrados utilitários e até mes-mo sistemas completos.
Uma ausência sentida é o suportenativo ao XML. Em aplicações comtrocas de dados entre sistemas hete-rogêneos, como em operações detransmissão eletrônica de pedidos efaturas entre empresas ou intercâm-bio de dados bancários, é de se es-
perar que existam di-ferentes bancos atuan-do do outro lado, e omercado aponta parao XML como melhorforma de garantir es-sa conversa. Quemaderir ao PostgreSQL
terá de escrever suas interfaces XML.
BOA HERANÇAUm velho dilema da crescente co-munidade de programadores quetrabalham com a abordagem daorientação a objeto (OOP) é que elesraciocinam e projetam seus sistemaspensando em objetos e, no entanto,têm de lidar com bancos de dadosrelacionais na hora de depositar seusdados. Eles gostariam de ter bancosde dados que entendessem um pou-co mais sua abordagem. O Post-
greSQL faz um pequeno esforço nes-se sentido, implementando uma daspropriedades da orientação a obje-to que é a herança.
Para compreender a aplicação daherança em um banco de dados, ima-gine o desenvolvimento de um sis-tema para uma loja de barcos. A pri-meira providência é criar a tabelaBarcos com todas as característicascomuns a qualquer barco (código,preço, descrição etc.). Em seguida,cria-se uma tabela filha que trata es-pecificamente de veleiros e que her-da as características de Barcos, acres-centando-se os atributos específicosde um veleiro como a altura do mas-tro e o tipo de vela. Por fim, cria-seuma tabela Lanchas, que também éfilha de Barcos, adicionando-se a elaatributos como potência do motor.Alterações em Barcos, como a cria-ção do atributo Preço Promocional,por exemplo, automaticamente serefletem em Veleiros e Lanchas.
SINCRONIZAÇÃOUsando-se um dos seus diversos sis-temas de replicação, o PostgreSQLpode ser aplicado em empresas depequeno e médio porte que têm ne-cessidade de sincronização de dadosentre matriz e filiais.
Além da sincronização, o bancode dados tem evoluído em recursospara resistir a falhas e operar commúltiplos processadores, o que otorna uma boa opção para os pro-jetos de missão crítica. Possui tam-bém a habilidade de lidar com enor-
FIQUE LIGADO
>Recursos poderososindicam o PostgreSQLpara as aplicações demissão crítica
mes bases com respostas em tempoaceitável, requisito básico para siste-mas de datawarehouse, cujos bancosde dados podem chegar facilmenteaos terabytes. Esse tipo de sistemaestá na ordem do dia das empresasgraças à redução dos custos de pro-cessamento e armazenamento, além,é claro, da necessidade constante debuscar competitividade.
047_POSTGRES 25/02/2006 22:39 Page 48
TESTE/POSTGRESQL
COLEÇÃO INFO > 49
TESTE/POSTGRESQL
48 < COLEÇÃO INFO
POSTGRESQL 8.1FABRICANTE
PRÓS
CONTRAS
INSTALAÇÃO
GERENCIAMENTO
FERRAMENTAS
DESENVOLVIMENTO
SEGURANÇA
AVALIAÇÃO TÉCNICA (1)
PREÇO LICENÇA
CUSTO/BENEFÍCIO
ONDE ENCONTRAR
PostgreSQL Global Development Group
Inclui replicação de dados,processamento paralelo,suporte a 64 bits e aclusters
Falta de suporte nativo aopadrão XML
7,0Fácil e rápida com pacotesbinários e instalador emportuguês
8,5O pgAdmin III dá acesso atodos os recursos dobanco, mas está só eminglês
8,5Conta com ferramentas degeoprocessamento,administração, tunning edatawarehouse na web
8,0Pode ser feito em Java,Perl, PHP, TCL, C, C++ equalquer linguagem comconectores de acessocomo o .Net
8,5Dispõe de criptografiapara protegerarmazenamento, tráfego,atributos e autenticação
8,3
GratuitoBSD
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%).
ma pode ser instalado de duas for-mas: utilizando o ambiente Cygwin,que permite, com certas restrições,utilizar os programas escritos paraLinux, ou diretamente no WindowsXP. O Cygwin é mais indicado paraquem tem experiência no uso doPostgreSQL em ambiente Linux. Jáa versão pronta para o Windows émuito robusta, fácil e não decepcio-na. A instalação no Windows podeser feita em português, mas, no fi-nal, o software de administraçãopgAdmin se apresentará em inglês.
RECURSOSO PostgreSQL 8.1 chega bem abaste-cido de drivers e camadas de soft-ware que garantemsua conectividade comferramentas de criaçãoe extração de relató-rios além, é claro, de li-gá-lo com as lingua-gens de programaçãopopulares como Java,Visual Basic e Delphi. A plataforma.Net da Microsoft também não fica defora, contando com o data providerNpgSQL. É natural que o banco man-tenha conexões privilegiadas com seuspares do software livre, como as lin-guagens Phyton, Perl, TCL e PHP.
Se para escrever programas defront-end existem tantas opções, omesmo pode se dizer das linguagensdisponíveis para desenvolver funçõese processos que rodam dentro dobanco. As opções são: PL/Perl,PL/TCL, PL/Java e o PL/pgSQL do
próprio PostgreSQL, que equivale aoPL/SQL da Oracle. Essa diversidadefacilita a vida de quem já é versadoem uma dessas linguagens.
Além do pacote básico, é sem-pre bom dar uma checada em si-tes que mantém projetos ligadosao PostgreSQL. Um deles é o sitepgfoundry.org, onde podem serencontrados utilitários e até mes-mo sistemas completos.
Uma ausência sentida é o suportenativo ao XML. Em aplicações comtrocas de dados entre sistemas hete-rogêneos, como em operações detransmissão eletrônica de pedidos efaturas entre empresas ou intercâm-bio de dados bancários, é de se es-
perar que existam di-ferentes bancos atuan-do do outro lado, e omercado aponta parao XML como melhorforma de garantir es-sa conversa. Quemaderir ao PostgreSQL
terá de escrever suas interfaces XML.
BOA HERANÇAUm velho dilema da crescente co-munidade de programadores quetrabalham com a abordagem daorientação a objeto (OOP) é que elesraciocinam e projetam seus sistemaspensando em objetos e, no entanto,têm de lidar com bancos de dadosrelacionais na hora de depositar seusdados. Eles gostariam de ter bancosde dados que entendessem um pou-co mais sua abordagem. O Post-
greSQL faz um pequeno esforço nes-se sentido, implementando uma daspropriedades da orientação a obje-to que é a herança.
Para compreender a aplicação daherança em um banco de dados, ima-gine o desenvolvimento de um sis-tema para uma loja de barcos. A pri-meira providência é criar a tabelaBarcos com todas as característicascomuns a qualquer barco (código,preço, descrição etc.). Em seguida,cria-se uma tabela filha que trata es-pecificamente de veleiros e que her-da as características de Barcos, acres-centando-se os atributos específicosde um veleiro como a altura do mas-tro e o tipo de vela. Por fim, cria-seuma tabela Lanchas, que também éfilha de Barcos, adicionando-se a elaatributos como potência do motor.Alterações em Barcos, como a cria-ção do atributo Preço Promocional,por exemplo, automaticamente serefletem em Veleiros e Lanchas.
SINCRONIZAÇÃOUsando-se um dos seus diversos sis-temas de replicação, o PostgreSQLpode ser aplicado em empresas depequeno e médio porte que têm ne-cessidade de sincronização de dadosentre matriz e filiais.
Além da sincronização, o bancode dados tem evoluído em recursospara resistir a falhas e operar commúltiplos processadores, o que otorna uma boa opção para os pro-jetos de missão crítica. Possui tam-bém a habilidade de lidar com enor-
FIQUE LIGADO
>Recursos poderososindicam o PostgreSQLpara as aplicações demissão crítica
mes bases com respostas em tempoaceitável, requisito básico para siste-mas de datawarehouse, cujos bancosde dados podem chegar facilmenteaos terabytes. Esse tipo de sistemaestá na ordem do dia das empresasgraças à redução dos custos de pro-cessamento e armazenamento, além,é claro, da necessidade constante debuscar competitividade.
047_POSTGRES 25/02/2006 22:39 Page 48
FIREBIRD POUPAA MÁQUINA
A VERSÃO 1.5.3 TEM RECURSOS PODEROSOS E DISPENSAEQUIPES DE MANUTENÇÃO
POR HELIO SILVA
TESTE/FIREBIRD
50 < COLEÇÃO INFO
banco de dados Firebirdestá cada vez melhor,acompanhando os avan-ços dos concorrentes de
código aberto MySQL e PostgreSQL.Nascido de uma iniciativa da Borlandde abrir o código do seu banco In-terbase 6, o Firebird chegou à ver-são 1.5.3 bem mudado, graças ao tra-balho do IBPhoenix. Esse grupo dedesenvolvedores já estabilizou a tra-dução do código da linguagem C pa-ra a C++, o que deve permitir ao pro-
duto alçar vôos mais altos entre asérie de versões 1.5.x e a 2.0.
No teste do INFOLAB, utilizamos oFirebird 1.5.3 Classic Server, a versãoestável mais recente, rodando numPC com processador Pentium HT de1,3 GHz e 512 MB de memória RAM.
INSTALAÇÃOA instalação é fácil, mas não atuali-za as outras versões previamenteinstaladas. Ao contrário, pede a re-moção de antigas edições de Inter-
O
EMS SQL Manager: interface gráfica elegante para Firebird com jeito de Windows XP
050_FIREBIRD 25/02/2006 22:41 Page 50
TESTE/FIREBIRD
COLEÇÃO INFO > 51
base ou Firebird. Aofinal do processodescobre-se que fo-ram criados algunstextos dos manuaisem arquivos texto ePDF e apenas umprograma baseadono velho prompt de comando. Issoporque o pacote básico não trazuma interface gráfica que facilite aadministração do banco. Existe umprojeto de interface gráfica de có-digo aberto chamado FlameRobin(www.flamerobin.org), que no fu-turo deve fazer parte do pacote,mas seu desenvolvimento ainda es-tá em estágio inicial.
INTERFACESDe qualquer forma, o usuário não fi-ca desprovido de interface de geren-ciamento. Pode escolher uma entreas diversas disponíveis no site do IB-Phoenix (www.ibphoenix.com).A maior parte delas é sharewarecom versões livres sem algumasfuncionalidades.
No teste do INFOLAB, utilizamostrês interfaces de ge-renciamento: a DB-Manager (www.info.abril.com.br/down-load/3682.shtml), daDBTools, a IBExpert(www.info.abril.com.
IBExpert: traz recursosarrojados, como análisede performance
br/download/4047.shtml), da H-Ksoftware, e a EMS SQL Manager(www.info.abril.com.br/down-load/4453.shtml), da EMS DatabaseManagement Solutions.
O gerenciador EMS SQL Managerempresta ao Firebird uma interfa-ce elegante e funcional, com apa-rência bem próxima do WindowsXP, usando o mesmo tipo de íco-nes. Na versão gratuita, ele já pro-vê todos os recursos necessários àadministração. Já o brasileiro DBMa-nager tem como vantagem o su-porte em português.
Se a intenção for adquirir umaferramenta para ir além das ativi-dades normais de administração,então vale a pena dar uma boa olha-da no IBExpert em sua versão co-mercial que, além da interface mais
completa para admi-nistração, conta comrecursos arrojadoscomo análise de per-formance e até pes-quisas OLAP. Relem-brando, por meio do
FIQUE LIGADO
> Feito para aplicaçõesde médio porte, o Fire-bird oferece baixo cus-to de manutenção
050_FIREBIRD 25/02/2006 22:43 Page 51
TESTE/FIREBIRD
COLEÇÃO INFO > 53
TESTE/FIREBIRD
52 < COLEÇÃO INFO
OLAP podem ser criadas visões mul-tidimensionais do banco já agrega-das, os famosos cubos. Esse tipo devisão facilita o desmembramento ea comparação de uma informaçãomensurável, como o faturamento,por exemplo. Com um cubo de fa-turamento fica fácil estabelecer asvendas por tipo de produto, por ti-po de consumidor e por região deforma fácil e rápida.
DRIVERSOutra providência necessária apósa instalação é cuidar da interope-rabilidade com linguagens, gerado-res de relatório e outros bancos dedados. O site do IBPhoenix ajuda,indicando drivers ODBC e camadasde conectividade com Java e .NET.Nem todos são gratuitos e, mesmoos livres, requerem análise do tipode licença de uso.
RECURSOSO esforço de instalação e implanta-ção vale a pena. A exemplo do In-terbase, o Firebird dá conta de apli-cações de médio porte. Seu dife-rencial é rodar em plataformas Win-dows e em muitos sabores de Unix,além de contar com recursos im-portantes, como suporte a transa-ções, gatilhos e stored proceduresdesde sua primeira versão, enquan-to o MySQL só trouxe esses recur-sos na 5.0, a mais recente.
O sistema de transações do Fire-bird é robusto e admite os aninha-mentos (nested transactions), quepermitem a aplicação de novas re-gras quando uma transação encon-tra um erro em um determinadoponto de seu processamento, dan-do alternativas à conclusão da tran-sação sem que se torne necessáriodesfazer toda a operação. As tran-sações aninhadas permitem a apli-cação de regras complexas de ne-gócio dentro do banco, eliminandoa programação na interface.
A transferência de lógica de ne-
gócio para o banco de dados flexi-biliza as opções de escolha de lin-guagens e ambientes de programa-ção para interfacear com o banco,uma vez que simplifica a quantida-de de regras que devem estar pre-sentes no código. Esse aspecto éimportante num mundo em que obanco tem de atender um servidorweb, uma aplicação .Net e outraslinguagens, mantendo sempre acoerência dos dados que lhe são in-seridos ou requisitados.
Outro ponto forte do Firebird ésua manutenção facilitada, pratica-mente dispensando a presença deum DBA dedicado a atividades deajustes de desempenho do bancoe controle de crescimento da base.A atividade de manutenção se re-sume ao backup e, eventualmente,uma recuperação de dados. Bancos
mais sofisticados como PostgreSQL,MS SQL Server, Oracle e DB2 entreoutros demandam ajustes especia-lizados durante seu ciclo de implan-tação, crescimento e produção.
O baixo custo de manutenção tor-na o Firebird uma boa opção paraempresas que não podem contarcom uma equipe especializada pa-ra dar suporte a suas aplicações. Aportabilidade do banco de dadosentre múltiplas plataformas o tornatambém indicado para aplicaçõesque operam com atualizações debases off line e que tenham neces-sidade de integração centralizada.
Quem pretende adotar o Fire-bird no Brasil, pode contar com oapoio de uma comunidade forte ecolaborativa, que pode ser conta-tada pelo portal Firebase (www.firebase.com.br).
FIREBIRD 1.5.3 CLASSIC SERVERFABRICANTE
PRÓS
CONTRA
INSTALAÇÃO
GERENCIAMENTO
FERRAMENTAS
DESENVOLVIMENTO
SEGURANÇA
AVALIAÇÃO TÉCNICA (1)
PREÇOLICENÇA
CUSTO/BENEFÍCIO
ONDE ENCONTRAR
FirebirdSQL Foundation
Conta com recursospoderosos, como views,transações concorrentes e gatilhos
Depende de aplicativos deterceiros para aadministração
6,5Bem traduzida, mas comlongas explicações queprecisam ser lidas
6,5Não tem interface gráficade administração,exigindo ferramentasauxiliares
8,5Ferramentas CASE, deadministração e até OLAPpodem ser encontradasna web
8,0Muito bom para Delphi,com abertura para PHP,Perl, Java e .NET.
6,5Não tem criptografia
7,4
GratuitoIPL
www.info.abril.com.br/download/2108.
(1) Média ponderada considerando os seguintes itens e respectivos pesos: Instalação (10%), Gerenciamento (35%), Ferramentas (35%),Desenvolvimento (10%) e Segurança dos dados (10%).
DBManager: produzida no Brasil, a interface dá suporte ao Firebird em português
050_FIREBIRD 25/02/2006 22:44 Page 52
TESTE/FIREBIRD
COLEÇÃO INFO > 53
TESTE/FIREBIRD
52 < COLEÇÃO INFO
OLAP podem ser criadas visões mul-tidimensionais do banco já agrega-das, os famosos cubos. Esse tipo devisão facilita o desmembramento ea comparação de uma informaçãomensurável, como o faturamento,por exemplo. Com um cubo de fa-turamento fica fácil estabelecer asvendas por tipo de produto, por ti-po de consumidor e por região deforma fácil e rápida.
DRIVERSOutra providência necessária apósa instalação é cuidar da interope-rabilidade com linguagens, gerado-res de relatório e outros bancos dedados. O site do IBPhoenix ajuda,indicando drivers ODBC e camadasde conectividade com Java e .NET.Nem todos são gratuitos e, mesmoos livres, requerem análise do tipode licença de uso.
RECURSOSO esforço de instalação e implanta-ção vale a pena. A exemplo do In-terbase, o Firebird dá conta de apli-cações de médio porte. Seu dife-rencial é rodar em plataformas Win-dows e em muitos sabores de Unix,além de contar com recursos im-portantes, como suporte a transa-ções, gatilhos e stored proceduresdesde sua primeira versão, enquan-to o MySQL só trouxe esses recur-sos na 5.0, a mais recente.
O sistema de transações do Fire-bird é robusto e admite os aninha-mentos (nested transactions), quepermitem a aplicação de novas re-gras quando uma transação encon-tra um erro em um determinadoponto de seu processamento, dan-do alternativas à conclusão da tran-sação sem que se torne necessáriodesfazer toda a operação. As tran-sações aninhadas permitem a apli-cação de regras complexas de ne-gócio dentro do banco, eliminandoa programação na interface.
A transferência de lógica de ne-
gócio para o banco de dados flexi-biliza as opções de escolha de lin-guagens e ambientes de programa-ção para interfacear com o banco,uma vez que simplifica a quantida-de de regras que devem estar pre-sentes no código. Esse aspecto éimportante num mundo em que obanco tem de atender um servidorweb, uma aplicação .Net e outraslinguagens, mantendo sempre acoerência dos dados que lhe são in-seridos ou requisitados.
Outro ponto forte do Firebird ésua manutenção facilitada, pratica-mente dispensando a presença deum DBA dedicado a atividades deajustes de desempenho do bancoe controle de crescimento da base.A atividade de manutenção se re-sume ao backup e, eventualmente,uma recuperação de dados. Bancos
mais sofisticados como PostgreSQL,MS SQL Server, Oracle e DB2 entreoutros demandam ajustes especia-lizados durante seu ciclo de implan-tação, crescimento e produção.
O baixo custo de manutenção tor-na o Firebird uma boa opção paraempresas que não podem contarcom uma equipe especializada pa-ra dar suporte a suas aplicações. Aportabilidade do banco de dadosentre múltiplas plataformas o tornatambém indicado para aplicaçõesque operam com atualizações debases off line e que tenham neces-sidade de integração centralizada.
Quem pretende adotar o Fire-bird no Brasil, pode contar com oapoio de uma comunidade forte ecolaborativa, que pode ser conta-tada pelo portal Firebase (www.firebase.com.br).
FIREBIRD 1.5.3 CLASSIC SERVERFABRICANTE
PRÓS
CONTRA
INSTALAÇÃO
GERENCIAMENTO
FERRAMENTAS
DESENVOLVIMENTO
SEGURANÇA
AVALIAÇÃO TÉCNICA (1)
PREÇOLICENÇA
CUSTO/BENEFÍCIO
ONDE ENCONTRAR
FirebirdSQL Foundation
Conta com recursospoderosos, como views,transações concorrentes e gatilhos
Depende de aplicativos deterceiros para aadministração
6,5Bem traduzida, mas comlongas explicações queprecisam ser lidas
6,5Não tem interface gráficade administração,exigindo ferramentasauxiliares
8,5Ferramentas CASE, deadministração e até OLAPpodem ser encontradasna web
8,0Muito bom para Delphi,com abertura para PHP,Perl, Java e .NET.
6,5Não tem criptografia
7,4
GratuitoIPL
www.info.abril.com.br/download/2108.
(1) Média ponderada considerando os seguintes itens e respectivos pesos: Instalação (10%), Gerenciamento (35%), Ferramentas (35%),Desenvolvimento (10%) e Segurança dos dados (10%).
DBManager: produzida no Brasil, a interface dá suporte ao Firebird em português
050_FIREBIRD 25/02/2006 22:44 Page 52
TESTE/ACCESS
COLEÇÃO INFO > 55
TESTE/ACCESS
54 < COLEÇÃO INFO
terface é realmente mais prática. Comela, será possível realizar mais tare-fas com menos cliques na tela. Masos usuários vão estranhar bastante.
FIM DOS MENUSO beta 1 do novo Office (o nome Of-fice 12 não é definitivo) traz os apli-cativos Excel, Word, PowerPoint, Ac-cess e Outlook, além de alguns pro-gramas auxiliares, como o InfoPath,usado para criar formulários emXML. O que mais chama a atençãoé a nova organização visual.
A idéia da Microsoft é que, commais e mais recursos embutidos emseus diferentes programas, estavadifícil para os usuários do Office en-contrar o que procuravam numa ár-vore de menus e submenus cadavez mais complexa.
OPÇÕES NOS PAINÉISO Office 12 tenta resolver o problemado excesso de comandos nos menuseliminando o mal pela raiz. Há um úni-co menu horizontal no alto da tela.Quando o usuário clica num dos itens,em vez de se abrir um submenu, apa-rece um painel com botões, ícones eoutros elementos que acionam co-mandos ou acrescentam coisas ao do-cumento. Está escrevendo um texto?O painel, com todos os comandos ne-cessários para a função, aparece. Vaiinserir uma imagem? Clique em Inse-rir na barra superior. Um painel quepermite inserir não só a imagem, mastambém planilhas, símbolos e qual-quer outra coisa, é exibido.
Note que o usuário não mais pre-cisa chamar uma caixa de diálogo de-pois de passar por vários menus. Bas-ta alterar o que quer diretamente nopainel, que fica na parte superior datela e sempre muda para adequar-seà tarefa sendo realizada. Coisas co-mo formatação de texto e dimensõesde figuras e links para páginas da web,por exemplo, podem ser definidasnesse painel superior. Em muitas si-tuações, o painel apropriado é exibi-do automaticamente. Por exemplo,ao clicar num gráfico, um painel depropriedades da imagem aparece.
FORMATOS DA GALERIAO Access e os outros programas doOffice passam a trabalhar extensa-mente com galerias. Trata-se de con-juntos predefinidos de formataçõesou propriedades, como, por exemplo,o posicionamento de uma imagemem um texto. Os padrões mais co-muns ou freqüentemente usados fi-cam disponíveis para uso imediato.Basta o usuário clicar sobre a repre-sentação gráfica do resultado paraque o conjunto de parâmetros sejaaplicado. Mas as tradicionais caixasde diálogo continuam disponíveis.
OFFICE LIVEComo já acontecia nas versões ante-riores, muitas das novidades do Offi-ce 12 são voltadas ao público empre-sarial. Uma delas é a integração comos serviços online que a Microsoft vemchamando de Office Live. Quando es-ses serviços estiverem disponíveis, os
O ACCESS ENTRAEM 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 emmenus já é tão familiaraos usuários do Windowsque pode parecer teme-
rário substituí-la por outra. Mas é is-so que a Microsoft está fazendo como banco de dados Access e os demaisintegrantes do Office, seu pacote deaplicativos para escritório. O Office 12,nova versão com lançamento previs-
to para o fim de 2006, leva adianteuma tendência que já havia se esbo-çado nos betas do Windows Vista. Noprimeiro beta do Office 12, analisadopelo INFOLAB, os menus desparece-ram e deram lugar a uma interfacecom o usuário radicalmente diferen-te. A promessa é que, com isso, o soft-ware ficará mais fácil de usar. A ava-liação do INFOLAB é que a nova in-
A
Access 12: a interface substitui os vários menus por um menu horizontal no alto
054_ACCESS 25/02/2006 23:04 Page 54
TESTE/ACCESS
COLEÇÃO INFO > 55
TESTE/ACCESS
54 < COLEÇÃO INFO
terface é realmente mais prática. Comela, será possível realizar mais tare-fas com menos cliques na tela. Masos usuários vão estranhar bastante.
FIM DOS MENUSO beta 1 do novo Office (o nome Of-fice 12 não é definitivo) traz os apli-cativos Excel, Word, PowerPoint, Ac-cess e Outlook, além de alguns pro-gramas auxiliares, como o InfoPath,usado para criar formulários emXML. O que mais chama a atençãoé a nova organização visual.
A idéia da Microsoft é que, commais e mais recursos embutidos emseus diferentes programas, estavadifícil para os usuários do Office en-contrar o que procuravam numa ár-vore de menus e submenus cadavez mais complexa.
OPÇÕES NOS PAINÉISO Office 12 tenta resolver o problemado excesso de comandos nos menuseliminando o mal pela raiz. Há um úni-co menu horizontal no alto da tela.Quando o usuário clica num dos itens,em vez de se abrir um submenu, apa-rece um painel com botões, ícones eoutros elementos que acionam co-mandos ou acrescentam coisas ao do-cumento. Está escrevendo um texto?O painel, com todos os comandos ne-cessários para a função, aparece. Vaiinserir uma imagem? Clique em Inse-rir na barra superior. Um painel quepermite inserir não só a imagem, mastambém planilhas, símbolos e qual-quer outra coisa, é exibido.
Note que o usuário não mais pre-cisa chamar uma caixa de diálogo de-pois de passar por vários menus. Bas-ta alterar o que quer diretamente nopainel, que fica na parte superior datela e sempre muda para adequar-seà tarefa sendo realizada. Coisas co-mo formatação de texto e dimensõesde figuras e links para páginas da web,por exemplo, podem ser definidasnesse painel superior. Em muitas si-tuações, o painel apropriado é exibi-do automaticamente. Por exemplo,ao clicar num gráfico, um painel depropriedades da imagem aparece.
FORMATOS DA GALERIAO Access e os outros programas doOffice passam a trabalhar extensa-mente com galerias. Trata-se de con-juntos predefinidos de formataçõesou propriedades, como, por exemplo,o posicionamento de uma imagemem um texto. Os padrões mais co-muns ou freqüentemente usados fi-cam disponíveis para uso imediato.Basta o usuário clicar sobre a repre-sentação gráfica do resultado paraque o conjunto de parâmetros sejaaplicado. Mas as tradicionais caixasde diálogo continuam disponíveis.
OFFICE LIVEComo já acontecia nas versões ante-riores, muitas das novidades do Offi-ce 12 são voltadas ao público empre-sarial. Uma delas é a integração comos serviços online que a Microsoft vemchamando de Office Live. Quando es-ses serviços estiverem disponíveis, os
O ACCESS ENTRAEM 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 emmenus já é tão familiaraos usuários do Windowsque pode parecer teme-
rário substituí-la por outra. Mas é is-so que a Microsoft está fazendo como banco de dados Access e os demaisintegrantes do Office, seu pacote deaplicativos para escritório. O Office 12,nova versão com lançamento previs-
to para o fim de 2006, leva adianteuma tendência que já havia se esbo-çado nos betas do Windows Vista. Noprimeiro beta do Office 12, analisadopelo INFOLAB, os menus desparece-ram e deram lugar a uma interfacecom o usuário radicalmente diferen-te. A promessa é que, com isso, o soft-ware ficará mais fácil de usar. A ava-liação do INFOLAB é que a nova in-
A
Access 12: a interface substitui os vários menus por um menu horizontal no alto
054_ACCESS 25/02/2006 23:04 Page 54
TESTE/ACCESS
56 < COLEÇÃO INFO
passa a não aceitar mais alterações.O Office 12 deve ainda ganhar recur-sos que permitam a transferência dedados, conversas por áudio e por ví-deo entre usuários. Além disso, po-derão trocar mensagens instantâ-neas com colegas com comunicado-res do MSN, da AOL e do Yahoo!.
FORMATOS DE ARQUIVOSO Office 12 destaca a gravação dearquivos em XML com compressãono padrão Zip. O objetivo é facilitara troca de dados com outros apli-cativos, incluindo os que rodam emservidores corporativos. Os forma-tos de arquivos atualmente usadoscontinuarão disponíveis.
Essas mudanças são muito bem-vindas. Até porque, o Access conti-nua o mesmo há dois anos, desdequando foi lançado o Office 2003.Nessa versão, o banco de dados pas-sou a permitir aos desenvolvedo-res a criação de soluções mais so-fisticadas em menor tempo. A inte-gração com a web foi privilegiada.
O conceito de OfficeDeveloper Centerpermitiu o trabalhocom tecnologias co-mo XML e SQL Ser-ver. E o banco de da-dos passou a ter acapacidade de pro-duzir backups.
Access 2003: versãoatual permite incluirvídeo, foto e som
aplicativos poderão interagir com elesvia internet. Há um pacote básico deserviços, que pode atender a uma pe-quena empresa, que estará incluídona licença do Office. Ele oferece, porexemplo, 30 MB num servidor para ahospedagem de um site e cinco con-tas de e-mail com o domínio da em-presa. Outros serviços mais elabora-dos, como gerenciadores online deprojetos e relatórios de despesas, es-tarão disponíveis por assinatura.
COLABORAÇÃO NA EQUIPEO Office 12 também traz melhoriasnas ferramentas de colaboração. Osaplicativos permitem que usuários deum mesmo grupo realizem tarefasem conjunto. Além de poder gravarlocalmente seus documentos, os apli-cativos permitem armazená-los numservidor para acesso coletivo. As atua-lizações feitas remotamente são sin-cronizadas com os arquivos locais, fa-cilitando as revisões. Quando o tra-balho é concluído, um dos autorespode “encerrar” o documento, que
054_ACCESS 25/02/2006 23:05 Page 56
TESTE/INTERFACES
COLEÇÃO INFO > 57
ADMINISTRAÇÃOÉ TUDO
MERGULHE NAS INTERFACES E DESCUBRA RECURSOS BACANAS DO DB2 E DO SQL SERVER 2005
POR NIVALDO FORESTI
m sistema de banco dedados não é nada sem asua parte de administra-ção. Sem ela, teriamos de
voltar a época em que comandos commais de duas linhas precisavam ser di-gitados para criar um campo em umatabela. Além disso, controlar índices,utilização de campos e consumo dememória continuaria impensável em
bancos de dados para pequenas e mé-dias empresas. Para a alegria geral dosusuarios, as versões Express gratuitasdos grandes competidoras dessa are-na, Microsoft, Oracle e IBM, contêm re-cursos tão poderosos quanto os dosseus irmãos pagos. Aqui vamos explo-rar o mundo administrativo de duasversões Express, a do DB2, da IBM, e ado SQL Server 2005, da Microsoft.
U
Centro de Controle: caixas de diálogo e assistentes conduzem o usuario
057_INTERF_ADMINIS 25/02/2006 23:06 Page 57
TESTE/INTERFACES
COLEÇÃO INFO > 59
TESTE/INTERFACES
58 < COLEÇÃO INFO
te aqui. Existe um debate intenso en-tre os especialistas para definir on-de essas regras devem existir, se ca-dastradas nos campos das tabelas(restrições), nos programas de vali-dação das aplicações ou em servido-res específicos para regras de negó-cio. Para você ter paz de espírito, éaconselhável usar as restrições emcampos, para que no futuro seus da-dos se mostrem inúteis. Outro deta-lhe importante é que a forma de ca-dastrar as restrições não é encontra-da na documentação. Foi necessáriopesquisar exemplos na internet pa-ra descobrir como fazer.
JANELA DE ERROSFinalmente, há alguns recursos e fun-cionalidades interessantes nesse pro-cesso. Primeiro, você pode voltar aqualquer momento em qualquer pas-so e modificar opções. Segundo, aofinal você pode ver o código SQL ge-rado e salvá-lo para reutilização, mo-dificá-lo ou simplesmente rever oque será feito na criação da tabela.O melhor de tudo é que o DB2 mos-tra uma janela apontandoerros ou com a informa-ção de sucesso durante acriação da tabela.
Um trabalho importan-te realizado nas interfacesde administração são asconsultas (queries). O ad-ministrador ou programa-dor precisa verificar infor-mações, exportar dadospara outros programas e
modificar ou criar novos dados. OCentro de Controle permite escrevere verificar os resultados de uma con-sulta em SQL diretamente na janelaVisualizar comandos. No entanto, me-lhor do que isso é ter o programaguiando-o pelo árduo mundo dos co-mandos SQL. Basta clicar no íconeSQL e um assistente facilitará a cria-ção e execução de sua consulta.
Com mais um clique em Executare Acessar Plano é possível determi-nar o custo desses comandos dentrodo seu programa. Entenda-se porcusto o tempo que cada pedaço de-mora para ser executado. Assim, comalgumas modificações, um progra-ma otimizado será construído ou pro-blemas de desempenho detectados.
Outro procedimento comum eminterfaces de administração são osbackups. Com o Centro de Contro-le dá para fazer backups manuaisou cronogramados de forma sim-ples e prática. Mais um assistente
DB2 EXPRESS-CCom uma interface extremamentesimples e fácil de usar, o Centro deControle programa de administra-ção do DB2 Express-C, encara defrente qualquer ferramenta paga.Clique em qualquer ícone ou me-nu, e uma série de caixas de diálo-go e assistentes o levarão a concluira tarefa desejada.
Para criar suas próprias tabelasno banco de dados de exemplo,basta expandir a árvore de visua-lização existente na janela Todosos Bancos de Dados, clicar na op-ção Tabelas com o botão direito domouse e escolher a opção Criar Ta-belas. Um assistente o levará pe-los sete passos do processo. É im-portante usá-lo, pois recursos co-mo criação de índices, restriçõesaos dados e multidimensões sãotratadas com bastante clareza e naordem correta de uso.
Para adicionar uma coluna na ta-
bela, basta clicar no bo-tão Incluir. Uma janela per-mite criar campos do tipoINT (inteiro) com três ti-pos diferentes, Char (Ca-racteres) com quatro ti-pos diferentes, bináriosincluindo BLOB, quatro ti-pos de campos gráficos,Data, Hora, TIMESTAMP,Decimal, Numérico, Real,ponto flutuante e Doublé.
Caso você deseje incluir vários cam-pos na tabela, clique em Aplicar emvez de OK, assim a janela permane-ce aberta para a inclusão dos demaiscampos.
O usuário pode definir valores-pa-drão para os tipos CHAR, DATE, TIMEe TIMESTAMP. Eles devem ser defi-nidos dentro de aspas simples. Adi-cionalmente, é possível determinaruma fórmula para o preenchimentodo campo. No entanto, em nenhumlugar da documentação foram en-contradas funções, tais como Hoje ouAgora, ou como construir essas fór-mulas para incluir nos campos.
Os passos seguintes são os de es-colher em que espaço a tabela se-rá criada, a definição de que cam-pos serão chaves, as dimensões erestrições. Com as restrições é pos-sível controlar o lixo que irá popu-lar a sua tabela. Você pode impe-dir que valores acima de 10 ou me-nores que 5 sejam preenchidos emuma coluna ou que somente deter-minados textos existam nela.
Uma palavra de aviso é importan-
Centro de tarefas: permiteexecutar programas em lote
Análise de consulta: um clique emAnexar Plano diz o custo do comando
057_INTERF_ADMINIS 25/02/2006 23:10 Page 58
TESTE/INTERFACES
COLEÇÃO INFO > 59
TESTE/INTERFACES
58 < COLEÇÃO INFO
te aqui. Existe um debate intenso en-tre os especialistas para definir on-de essas regras devem existir, se ca-dastradas nos campos das tabelas(restrições), nos programas de vali-dação das aplicações ou em servido-res específicos para regras de negó-cio. Para você ter paz de espírito, éaconselhável usar as restrições emcampos, para que no futuro seus da-dos se mostrem inúteis. Outro deta-lhe importante é que a forma de ca-dastrar as restrições não é encontra-da na documentação. Foi necessáriopesquisar exemplos na internet pa-ra descobrir como fazer.
JANELA DE ERROSFinalmente, há alguns recursos e fun-cionalidades interessantes nesse pro-cesso. Primeiro, você pode voltar aqualquer momento em qualquer pas-so e modificar opções. Segundo, aofinal você pode ver o código SQL ge-rado e salvá-lo para reutilização, mo-dificá-lo ou simplesmente rever oque será feito na criação da tabela.O melhor de tudo é que o DB2 mos-tra uma janela apontandoerros ou com a informa-ção de sucesso durante acriação da tabela.
Um trabalho importan-te realizado nas interfacesde administração são asconsultas (queries). O ad-ministrador ou programa-dor precisa verificar infor-mações, exportar dadospara outros programas e
modificar ou criar novos dados. OCentro de Controle permite escrevere verificar os resultados de uma con-sulta em SQL diretamente na janelaVisualizar comandos. No entanto, me-lhor do que isso é ter o programaguiando-o pelo árduo mundo dos co-mandos SQL. Basta clicar no íconeSQL e um assistente facilitará a cria-ção e execução de sua consulta.
Com mais um clique em Executare Acessar Plano é possível determi-nar o custo desses comandos dentrodo seu programa. Entenda-se porcusto o tempo que cada pedaço de-mora para ser executado. Assim, comalgumas modificações, um progra-ma otimizado será construído ou pro-blemas de desempenho detectados.
Outro procedimento comum eminterfaces de administração são osbackups. Com o Centro de Contro-le dá para fazer backups manuaisou cronogramados de forma sim-ples e prática. Mais um assistente
DB2 EXPRESS-CCom uma interface extremamentesimples e fácil de usar, o Centro deControle programa de administra-ção do DB2 Express-C, encara defrente qualquer ferramenta paga.Clique em qualquer ícone ou me-nu, e uma série de caixas de diálo-go e assistentes o levarão a concluira tarefa desejada.
Para criar suas próprias tabelasno banco de dados de exemplo,basta expandir a árvore de visua-lização existente na janela Todosos Bancos de Dados, clicar na op-ção Tabelas com o botão direito domouse e escolher a opção Criar Ta-belas. Um assistente o levará pe-los sete passos do processo. É im-portante usá-lo, pois recursos co-mo criação de índices, restriçõesaos dados e multidimensões sãotratadas com bastante clareza e naordem correta de uso.
Para adicionar uma coluna na ta-
bela, basta clicar no bo-tão Incluir. Uma janela per-mite criar campos do tipoINT (inteiro) com três ti-pos diferentes, Char (Ca-racteres) com quatro ti-pos diferentes, bináriosincluindo BLOB, quatro ti-pos de campos gráficos,Data, Hora, TIMESTAMP,Decimal, Numérico, Real,ponto flutuante e Doublé.
Caso você deseje incluir vários cam-pos na tabela, clique em Aplicar emvez de OK, assim a janela permane-ce aberta para a inclusão dos demaiscampos.
O usuário pode definir valores-pa-drão para os tipos CHAR, DATE, TIMEe TIMESTAMP. Eles devem ser defi-nidos dentro de aspas simples. Adi-cionalmente, é possível determinaruma fórmula para o preenchimentodo campo. No entanto, em nenhumlugar da documentação foram en-contradas funções, tais como Hoje ouAgora, ou como construir essas fór-mulas para incluir nos campos.
Os passos seguintes são os de es-colher em que espaço a tabela se-rá criada, a definição de que cam-pos serão chaves, as dimensões erestrições. Com as restrições é pos-sível controlar o lixo que irá popu-lar a sua tabela. Você pode impe-dir que valores acima de 10 ou me-nores que 5 sejam preenchidos emuma coluna ou que somente deter-minados textos existam nela.
Uma palavra de aviso é importan-
Centro de tarefas: permiteexecutar programas em lote
Análise de consulta: um clique emAnexar Plano diz o custo do comando
057_INTERF_ADMINIS 25/02/2006 23:10 Page 58
TESTE/INTERFACES
COLEÇÃO INFO > 61
TESTE/INTERFACES
60 < COLEÇÃO INFO
o leva pelo caminho certo. O DB2Express-C conta ainda com um Con-trole de Replicação que será mui-to útil nas situações em que vocêquer manter seus sistemas em fun-cionamento, mesmo quando hou-ver panes de energia ou outras ca-tástrofes ou para ativar outros apli-cativos quando determinados da-dos são modificados.
Por fim, o Controle de Tarefas per-mite executar programas em lote taiscomo manutenções, exportações dearquivo, importações de dados deoutras aplicações etc.
SQL SERVER 2005 EXPRESSO SQL Server 2005 Express veio subs-tituir o MSDE (Microsoft SQL ServerDesktop Engine). Essa mudança es-tá fazendo bem a todos que usavama versão Express anterior. Foi elimi-nado o Governor do MSDE, que tor-nava mais lenta a aplicação quandoo programa tinha mais de cinco co-
nexões simultâneas, tor-nando o SQL Server Ex-press muito mais usável. Mas existem limitações. Amemória máxima supor-tada é de 1GB de RAM elimitado a somente umprocessador. O tamanhomáximo do banco de da-dos é de 4GB. Além disso,nem todos os recursosexistentes nas versões pa-
gas estão disponíveis, o que inclui oserviço de relatórios (que estará dis-ponível em uma versão avançada doExpress), o serviço de notificação, oserviço de análise, a pesquisa full text,DTS e as facilidades de OLAP (Onli-ne Analytical Processing).
O SQL Management Server Stu-dio Express CTP é a suíte de admi-nistração e desenvolvimento do SQLServer Express Edition que substi-tui o Query Analyser e o EnterpriseManager da versão anterior, alémde trazer várias facilidades. Embo-ra complexa, a ferramenta é únicae integrada para a realização de to-das as tarefas necessárias. Você po-de mudar a estrutura de uma basede dados, realizar consultas e ou-tras tarefas importantes.
Uma série de assistentes e facili-dades fazem do SQL ManagementServer Studio Express uma grandeferramenta para os administradorese programadores. Particularmente,a capacidade de usar e reusar scriptspara a criação ou manutenção dasbases de dados. Além disso, as diver-
sas configurações de visualização per-mitem criar um ambiente único pa-ra cada usuário.
UM CLIQUECriar tabelas e colunas é trabalho pa-ra um clique no mouse. Todas as in-formações se encontram disponíveis,o banco de dados, a tabela, as colu-nas e as todas as propriedades en-volvidas em cada um deles. Os cam-pos suportam os mais variados tipose alguns criados pelo próprio usuá-rio para facilitar a padronização portodo o sistema. Por exemplo, vocêpode criar um campo chamado no-me que tenha um tamanho específi-co e pode ser escolhido em qualquertabela criada. O DB2 também tem es-sa função, mas ela está um pouco de-sorganizada e escondida na ferra-menta de administração.
As consultas podem ser feitas co-mo no QBE, selecionado-se tabelas,campos e opções de filtro, ou escre-vendo-se o comando SQL diretamen-te. Nesse caso, o DB2 é um pouco maisintuitivo para os iniciantes com o seuassistente. Em todas as ja-nelas é possível se realizarfiltros. Os filtros abrem ja-nelas que permitem umacesso mais amigável pa-ra os que estão começan-do no trabalho de progra-mação. Criar índices é fácile intuitivo. Basta clicar nocampo ou na pasta índiceda tabela e criar índices, atémesmo em XML. Além dis-
so, desse menu é possível reorgani-za-los ou recria-los. O mesmo acon-tece com funções e stored procedu-res, todas a um clique do seu mouse.
Outro recurso interessante é o demonitoração. Uma janela específicapermite verificar quem ou que pro-cessos estão consumindo os recur-sos do servidor onde está o SQL Ser-ver Express 2005. Muito útil para diag-nosticar problemas de desempenho.
No geral o programa de adminis-tração é bom de se utilizar. No en-tanto, alguns recursos estão faltan-do. Por exemplo, as tarefas de ma-nutenção se resumem a um assisten-te para backup, pouco para suportaraplicações robustas. Sentimos a fal-ta também de importadores e expor-tadores de dados, o que dificulta aosnovatos migrar dados de outros apli-cativos. Essa função existe, mas so-mente para importar dados previa-mente exportados de alguma tabelado SQL Express.
SQL Express: todos os elementosdisponiveis para criar tabelas
Monitoraçao: verifica os processosque consomem recursos do servidor
057_INTERF_ADMINIS 25/02/2006 23:11 Page 60
TESTE/INTERFACES
COLEÇÃO INFO > 61
TESTE/INTERFACES
60 < COLEÇÃO INFO
o leva pelo caminho certo. O DB2Express-C conta ainda com um Con-trole de Replicação que será mui-to útil nas situações em que vocêquer manter seus sistemas em fun-cionamento, mesmo quando hou-ver panes de energia ou outras ca-tástrofes ou para ativar outros apli-cativos quando determinados da-dos são modificados.
Por fim, o Controle de Tarefas per-mite executar programas em lote taiscomo manutenções, exportações dearquivo, importações de dados deoutras aplicações etc.
SQL SERVER 2005 EXPRESSO SQL Server 2005 Express veio subs-tituir o MSDE (Microsoft SQL ServerDesktop Engine). Essa mudança es-tá fazendo bem a todos que usavama versão Express anterior. Foi elimi-nado o Governor do MSDE, que tor-nava mais lenta a aplicação quandoo programa tinha mais de cinco co-
nexões simultâneas, tor-nando o SQL Server Ex-press muito mais usável. Mas existem limitações. Amemória máxima supor-tada é de 1GB de RAM elimitado a somente umprocessador. O tamanhomáximo do banco de da-dos é de 4GB. Além disso,nem todos os recursosexistentes nas versões pa-
gas estão disponíveis, o que inclui oserviço de relatórios (que estará dis-ponível em uma versão avançada doExpress), o serviço de notificação, oserviço de análise, a pesquisa full text,DTS e as facilidades de OLAP (Onli-ne Analytical Processing).
O SQL Management Server Stu-dio Express CTP é a suíte de admi-nistração e desenvolvimento do SQLServer Express Edition que substi-tui o Query Analyser e o EnterpriseManager da versão anterior, alémde trazer várias facilidades. Embo-ra complexa, a ferramenta é únicae integrada para a realização de to-das as tarefas necessárias. Você po-de mudar a estrutura de uma basede dados, realizar consultas e ou-tras tarefas importantes.
Uma série de assistentes e facili-dades fazem do SQL ManagementServer Studio Express uma grandeferramenta para os administradorese programadores. Particularmente,a capacidade de usar e reusar scriptspara a criação ou manutenção dasbases de dados. Além disso, as diver-
sas configurações de visualização per-mitem criar um ambiente único pa-ra cada usuário.
UM CLIQUECriar tabelas e colunas é trabalho pa-ra um clique no mouse. Todas as in-formações se encontram disponíveis,o banco de dados, a tabela, as colu-nas e as todas as propriedades en-volvidas em cada um deles. Os cam-pos suportam os mais variados tipose alguns criados pelo próprio usuá-rio para facilitar a padronização portodo o sistema. Por exemplo, vocêpode criar um campo chamado no-me que tenha um tamanho específi-co e pode ser escolhido em qualquertabela criada. O DB2 também tem es-sa função, mas ela está um pouco de-sorganizada e escondida na ferra-menta de administração.
As consultas podem ser feitas co-mo no QBE, selecionado-se tabelas,campos e opções de filtro, ou escre-vendo-se o comando SQL diretamen-te. Nesse caso, o DB2 é um pouco maisintuitivo para os iniciantes com o seuassistente. Em todas as ja-nelas é possível se realizarfiltros. Os filtros abrem ja-nelas que permitem umacesso mais amigável pa-ra os que estão começan-do no trabalho de progra-mação. Criar índices é fácile intuitivo. Basta clicar nocampo ou na pasta índiceda tabela e criar índices, atémesmo em XML. Além dis-
so, desse menu é possível reorgani-za-los ou recria-los. O mesmo acon-tece com funções e stored procedu-res, todas a um clique do seu mouse.
Outro recurso interessante é o demonitoração. Uma janela específicapermite verificar quem ou que pro-cessos estão consumindo os recur-sos do servidor onde está o SQL Ser-ver Express 2005. Muito útil para diag-nosticar problemas de desempenho.
No geral o programa de adminis-tração é bom de se utilizar. No en-tanto, alguns recursos estão faltan-do. Por exemplo, as tarefas de ma-nutenção se resumem a um assisten-te para backup, pouco para suportaraplicações robustas. Sentimos a fal-ta também de importadores e expor-tadores de dados, o que dificulta aosnovatos migrar dados de outros apli-cativos. Essa função existe, mas so-mente para importar dados previa-mente exportados de alguma tabelado SQL Express.
SQL Express: todos os elementosdisponiveis para criar tabelas
Monitoraçao: verifica os processosque consomem recursos do servidor
057_INTERF_ADMINIS 25/02/2006 23:11 Page 60
TUTORIAL/TABELAS
COLEÇÃO INFO > 63
TABELAS SEMMISTÉRIO
UM ROTEIRO ESPERTO PARA ENTENDER CADA ITEM E CRIAR TABELAS COM TOQUE PROFISSIONAL
POR DANILO WITZEL
TUTORIAL/TABELAS
62 < COLEÇÃO INFO
riar tabelas é uma tare-fa muito simples e atéintuitiva. Mas só até cer-to ponto. Montar uma
tabela de um modo que os seus da-dos sejam realmente úteis e confiá-veis exige um bom conhecimentode detalhes, até porque as tabelastêm características peculiares. As-sim, pensando em quem acaba dedesembarcar no mundo dos bancosde dados, vamos tratar aqui de ca-da uma de suas propriedades rele-vantes. Usaremos o banco de dadosAccess como exemplo. Embora al-gumas características sejam própriasdas tabelas do Access, a maioria seaplica a outros pro-gramas do gênero.
TIPO DE DADOS O tipo de dados é apropriedade maisimportante da tabe-la. Quando se criaum campo, o Accessoferece uma lista de
opções na coluna Tipo de Dados. Es-sas opções são comentadas a seguir.■ TEXTO Armazena qualquer tipode caractere. O limite de caracterespode ser definido por quem estácriando a tabela, mas só pode ir até255. Para isso, basta informar o ta-manho desejado na propriedade.■ TAMANHO DO CAMPO Definir olimite aqui é complicado. Você po-de, por exemplo, definir em 50 o ta-manho de um campo que vai arma-zenar a razão social. Na prática, ousuário quer cadastrar uma razãosocial que tem 55 caracteres, nãovai conseguir e dirá que seu progra-ma tem um bug terrível e chamar
Cvocê para consertá-lo somente porcausa desses cinco caracteres. Pa-ra evitar problemas desse tipo, de-fina sempre um número grande —no caso, pode ser 100. O Access nãoreserva espaço para partes não uti-lizadas de um campo texto. Ou se-ja, mesmo que você reserve 100, seo usuário só utilizar 30, o Access sóconsumirá o espaço corresponden-te a 30 caracteres. Não estranhe es-sa observação: há bancos de dadosque usam toda a capacidade docampo, mesmo que esteja vazio. ■ MEMORANDO É idêntico ao tipode dados Texto, mas sua capacida-de é muito maior: até 65 535 carac-teres. Não tem a propriedade Ta-manho do Campo. O campo memo-rando é muito utilizado para arma-zenar observações ou quando sequer guardar muitas informaçõesnum campo só. ■ NÚMERO Destina-se a guardarnúmeros, geralmente utilizados emcálculos matemáticos ou como có-digo de identificação. A proprieda-
de Tamanho doCampo para esse ti-po de dado é tam-bém muito impor-tante. Veja na tabe-la “O tamanho dosnúmeros” o quantocada especificaçãonumérica ocupa em
cada caso. Com essa tabela, vocêpode definir o tamanho correto pa-ra o campo, levando em conta a in-formação que você quer guardar eo espaço em disco que ela usará.
No entanto, mais importante queo tamanho ocupado é a capacida-de do campo numérico. Se, porexemplo, você escolher para umcampo o tipo Número Inteiro, pre-cisa saber de antemão que essecampo não poderá armazenar nú-meros, positivos ou negativos, atécerca de 32700. Seu sistema daráerro se o usuário tentar registrar nocampo o valor 40000. ■ DATA/HORA Usado para guardardata e hora. Note que não é dataou hora. O Access guarda esse tipode dados em 8 bytes. Os limites dedatas vão de 1 de janeiro do ano100 até 31 de dezembro de 9999.Quando você insere apenas a dataneste campo, o Access grava a ho-ra zero (00:00:00) como comple-mento da data. Situação idênticaacontece se você informar apenas
Tipo de Dados:cuidado na escolha daopção salva a tabela
Campo com valores:as opções aparecem nacaixa de combinação
062_GUIA_TAB_ACCESS 25/02/2006 23:15 Page 62
TUTORIAL/TABELAS
COLEÇÃO INFO > 63
TABELAS SEMMISTÉRIO
UM ROTEIRO ESPERTO PARA ENTENDER CADA ITEM E CRIAR TABELAS COM TOQUE PROFISSIONAL
POR DANILO WITZEL
TUTORIAL/TABELAS
62 < COLEÇÃO INFO
riar tabelas é uma tare-fa muito simples e atéintuitiva. Mas só até cer-to ponto. Montar uma
tabela de um modo que os seus da-dos sejam realmente úteis e confiá-veis exige um bom conhecimentode detalhes, até porque as tabelastêm características peculiares. As-sim, pensando em quem acaba dedesembarcar no mundo dos bancosde dados, vamos tratar aqui de ca-da uma de suas propriedades rele-vantes. Usaremos o banco de dadosAccess como exemplo. Embora al-gumas características sejam própriasdas tabelas do Access, a maioria seaplica a outros pro-gramas do gênero.
TIPO DE DADOS O tipo de dados é apropriedade maisimportante da tabe-la. Quando se criaum campo, o Accessoferece uma lista de
opções na coluna Tipo de Dados. Es-sas opções são comentadas a seguir.■ TEXTO Armazena qualquer tipode caractere. O limite de caracterespode ser definido por quem estácriando a tabela, mas só pode ir até255. Para isso, basta informar o ta-manho desejado na propriedade.■ TAMANHO DO CAMPO Definir olimite aqui é complicado. Você po-de, por exemplo, definir em 50 o ta-manho de um campo que vai arma-zenar a razão social. Na prática, ousuário quer cadastrar uma razãosocial que tem 55 caracteres, nãovai conseguir e dirá que seu progra-ma tem um bug terrível e chamar
Cvocê para consertá-lo somente porcausa desses cinco caracteres. Pa-ra evitar problemas desse tipo, de-fina sempre um número grande —no caso, pode ser 100. O Access nãoreserva espaço para partes não uti-lizadas de um campo texto. Ou se-ja, mesmo que você reserve 100, seo usuário só utilizar 30, o Access sóconsumirá o espaço corresponden-te a 30 caracteres. Não estranhe es-sa observação: há bancos de dadosque usam toda a capacidade docampo, mesmo que esteja vazio. ■ MEMORANDO É idêntico ao tipode dados Texto, mas sua capacida-de é muito maior: até 65 535 carac-teres. Não tem a propriedade Ta-manho do Campo. O campo memo-rando é muito utilizado para arma-zenar observações ou quando sequer guardar muitas informaçõesnum campo só. ■ NÚMERO Destina-se a guardarnúmeros, geralmente utilizados emcálculos matemáticos ou como có-digo de identificação. A proprieda-
de Tamanho doCampo para esse ti-po de dado é tam-bém muito impor-tante. Veja na tabe-la “O tamanho dosnúmeros” o quantocada especificaçãonumérica ocupa em
cada caso. Com essa tabela, vocêpode definir o tamanho correto pa-ra o campo, levando em conta a in-formação que você quer guardar eo espaço em disco que ela usará.
No entanto, mais importante queo tamanho ocupado é a capacida-de do campo numérico. Se, porexemplo, você escolher para umcampo o tipo Número Inteiro, pre-cisa saber de antemão que essecampo não poderá armazenar nú-meros, positivos ou negativos, atécerca de 32700. Seu sistema daráerro se o usuário tentar registrar nocampo o valor 40000. ■ DATA/HORA Usado para guardardata e hora. Note que não é dataou hora. O Access guarda esse tipode dados em 8 bytes. Os limites dedatas vão de 1 de janeiro do ano100 até 31 de dezembro de 9999.Quando você insere apenas a dataneste campo, o Access grava a ho-ra zero (00:00:00) como comple-mento da data. Situação idênticaacontece se você informar apenas
Tipo de Dados:cuidado na escolha daopção salva a tabela
Campo com valores:as opções aparecem nacaixa de combinação
062_GUIA_TAB_ACCESS 25/02/2006 23:15 Page 62
TUTORIAL/TABELAS
COLEÇÃO INFO > 65
TUTORIAL/TABELAS
64 < COLEÇÃO INFO
as horas, só que a data é gravadacomo 30/12/1899, o dia inicial docalendário interno do Access e deoutros programas do Office. Enfim,o Access grava as duas partes, da-ta e hora, e você utiliza a que de-sejar no campo que está criando. ■ MOEDA É um tipo de dado nu-mérico designado para armazenarvalores monetários. O tamanho ocu-pado em disco é de 8 bytes, igualao tipo de dados numérico com ta-manho duplo. No entanto, só háquatro casas decimais e a parte in-teira vai até 15 dígitos. ■AUTONUMERAÇÃO É um tipo nu-mérico de dados que é preenchidoautomaticamente pelo Access. Émuito utilizado como código deidentificação. Exemplo: código docliente, código do pedido etc. Umapropriedade interessante desse ti-po de dado é Novos Valores, quepode ser Incremento ou Aleatório.A primeira, Incremento, que é o pa-drão, gera números seqüenciais. Aoutra produz valores aleatórios, que
podem ser negativosou positivos. ■ SIM/NÃO Ocupaapenas 1 bit de es-paço em disco. É uti-lizado para guardarinformações que vo-cê tem certeza quesó podem conter um
entre dois valores. Exemplo: umcampo que indica se a pessoa é ca-sada só pode ter o valor sim ou não.■ OBJETO OLE Serve para guardarobjetos como documentos do Word,planilhas do Excel, gráficos, sons eoutros. O objeto pode ser incorpo-rado à tabela ou vinculado. ■ HYPERLINK Utilizado para guar-dar endereços web, e-mails etc. Bas-ta clicar no endereço e abre-se apágina ou arquivo a que ele se re-fere. Esse tipo de dado se divide emtrês partes: textodeexibição (o tex-to que aparece no campo ou con-trole); endereço (o caminho de umarquivo, ou URL); e subendereço(uma localização dentro do arqui-vo ou página). Cada uma dessas par-tes pode ter até 2048 caracteres. ■ ASSISTENTE DE PESQUISA Esseé um tipo de dado interessante, quepoucas pessoas conhecem. Na ver-dade não é bem um tipo de dado,e sim uma opção que inicia um as-sistente para criar uma caixa decombinação, cuja lista de dados po-
de ser baseada em outra tabela, ounuma lista de valores que você po-de criar no próprio assistente. Apósexecutar essa opção, você pode verque as propriedades da guia Pes-quisa do campo criado estão preen-chidas conforme o que foi escolhi-do no assistente.
ENTRADA DE DADOS Imagine que você tem um campoque armazena o número do docu-mento de identidade de seus clien-tes e que os usuários ora digitamde um jeito ora de outro. Portanto,você não confiará nas informaçõesdigitadas. Para evitar isso, a pro-priedade Máscara de Entrada defi-ne exatamente como deve ser digi-tado o RG, o CPF, o CEP e outros da-dos que você queira padronizar. Pa-ra o caso do RG, você coloca a se-guinte máscara de entrada: 99.000.000C\->a;0;_
A máscara de entrada se divideem três partes, separadas pelo pon-to-e-vírgula: a primeira é a própriadefinição da entra-da; a segunda, quepode ser 0 ou 1, in-dica se os caracteresliterais, como o hí-fen do RG(-), devemser gravados nocampo ou não. A op-ção 0 grava esses
caracteres; a terceira parte é o ca-ractere que deve ser mostradoquando um dígito não está preen-chido. Você pode colocar qualquerum — o padrão é o sublinhado ( _ ).Para que serve cada caractere namáscara de entrada? A resposta vo-cê tem na tabela Máscaras de En-trada, que mostra cada caractere esua função. Outro exemplo é a más-cara de entrada do telefone: "(0XX"99") "#999\-9999;0;_
Preenchido o campo, a máscaraacima produz um resultado como:(0XX11) _867-9926. Uma opção in-teressante da propriedade Másca-ra de Entrada é que ela pode serdefinida como Senha. Basta vocêdigitar senha nessa propriedade eo que o usuário digitar nesse cam-po será exibido como asterisco(*). O Access tem ainda um assistentepara máscara de entrada. Clique nobotão Construtor e o programa exi-be exemplos de máscara que vocêpode escolher e definir automati-camente para o seu campo. Outra
Assistente dePesquisa: orientaçãosobre a origem do dado
Assistente demáscara: guia para adigitação correta
062_GUIA_TAB_ACCESS 25/02/2006 23:19 Page 64
TUTORIAL/TABELAS
COLEÇÃO INFO > 65
TUTORIAL/TABELAS
64 < COLEÇÃO INFO
as horas, só que a data é gravadacomo 30/12/1899, o dia inicial docalendário interno do Access e deoutros programas do Office. Enfim,o Access grava as duas partes, da-ta e hora, e você utiliza a que de-sejar no campo que está criando. ■ MOEDA É um tipo de dado nu-mérico designado para armazenarvalores monetários. O tamanho ocu-pado em disco é de 8 bytes, igualao tipo de dados numérico com ta-manho duplo. No entanto, só háquatro casas decimais e a parte in-teira vai até 15 dígitos. ■AUTONUMERAÇÃO É um tipo nu-mérico de dados que é preenchidoautomaticamente pelo Access. Émuito utilizado como código deidentificação. Exemplo: código docliente, código do pedido etc. Umapropriedade interessante desse ti-po de dado é Novos Valores, quepode ser Incremento ou Aleatório.A primeira, Incremento, que é o pa-drão, gera números seqüenciais. Aoutra produz valores aleatórios, que
podem ser negativosou positivos. ■ SIM/NÃO Ocupaapenas 1 bit de es-paço em disco. É uti-lizado para guardarinformações que vo-cê tem certeza quesó podem conter um
entre dois valores. Exemplo: umcampo que indica se a pessoa é ca-sada só pode ter o valor sim ou não.■ OBJETO OLE Serve para guardarobjetos como documentos do Word,planilhas do Excel, gráficos, sons eoutros. O objeto pode ser incorpo-rado à tabela ou vinculado. ■ HYPERLINK Utilizado para guar-dar endereços web, e-mails etc. Bas-ta clicar no endereço e abre-se apágina ou arquivo a que ele se re-fere. Esse tipo de dado se divide emtrês partes: textodeexibição (o tex-to que aparece no campo ou con-trole); endereço (o caminho de umarquivo, ou URL); e subendereço(uma localização dentro do arqui-vo ou página). Cada uma dessas par-tes pode ter até 2048 caracteres. ■ ASSISTENTE DE PESQUISA Esseé um tipo de dado interessante, quepoucas pessoas conhecem. Na ver-dade não é bem um tipo de dado,e sim uma opção que inicia um as-sistente para criar uma caixa decombinação, cuja lista de dados po-
de ser baseada em outra tabela, ounuma lista de valores que você po-de criar no próprio assistente. Apósexecutar essa opção, você pode verque as propriedades da guia Pes-quisa do campo criado estão preen-chidas conforme o que foi escolhi-do no assistente.
ENTRADA DE DADOS Imagine que você tem um campoque armazena o número do docu-mento de identidade de seus clien-tes e que os usuários ora digitamde um jeito ora de outro. Portanto,você não confiará nas informaçõesdigitadas. Para evitar isso, a pro-priedade Máscara de Entrada defi-ne exatamente como deve ser digi-tado o RG, o CPF, o CEP e outros da-dos que você queira padronizar. Pa-ra o caso do RG, você coloca a se-guinte máscara de entrada: 99.000.000C\->a;0;_
A máscara de entrada se divideem três partes, separadas pelo pon-to-e-vírgula: a primeira é a própriadefinição da entra-da; a segunda, quepode ser 0 ou 1, in-dica se os caracteresliterais, como o hí-fen do RG(-), devemser gravados nocampo ou não. A op-ção 0 grava esses
caracteres; a terceira parte é o ca-ractere que deve ser mostradoquando um dígito não está preen-chido. Você pode colocar qualquerum — o padrão é o sublinhado ( _ ).Para que serve cada caractere namáscara de entrada? A resposta vo-cê tem na tabela Máscaras de En-trada, que mostra cada caractere esua função. Outro exemplo é a más-cara de entrada do telefone: "(0XX"99") "#999\-9999;0;_
Preenchido o campo, a máscaraacima produz um resultado como:(0XX11) _867-9926. Uma opção in-teressante da propriedade Másca-ra de Entrada é que ela pode serdefinida como Senha. Basta vocêdigitar senha nessa propriedade eo que o usuário digitar nesse cam-po será exibido como asterisco(*). O Access tem ainda um assistentepara máscara de entrada. Clique nobotão Construtor e o programa exi-be exemplos de máscara que vocêpode escolher e definir automati-camente para o seu campo. Outra
Assistente dePesquisa: orientaçãosobre a origem do dado
Assistente demáscara: guia para adigitação correta
062_GUIA_TAB_ACCESS 25/02/2006 23:19 Page 64
TUTORIAL/TABELAS
66 < COLEÇÃO INFO
nota importante: os controles deformulário não herdam essa pro-priedade. Você pode estabeleceruma máscara de entrada para ocampo, porém o controle vincula-do ao campo, no formulário, podeter outra máscara. Você então per-gunta: então para que eu vou defi-nir uma máscara de entrada para ocampo? Calma, a máscara definidano campo vai automaticamente pa-ra o controle. Só que ela não é obri-gatória. Se quiser, você pode defi-nir outra. Mas o melhor de tudo éque, definida uma vez na tabela, elapode permanecer igual em outrassituações, o que ajuda na padroni-zação do sistema.
A EXIBIÇÃO DOS DADOS Diferentemente da propriedadeMáscara de Entrada, que define co-mo os dados devem ser digitados,a propriedade Formato controla asua exibição. Ou seja, você até po-de estabelecer uma máscara de en-trada que informa a data completa(00/00/0099), masvocê quer que, noformulário ou rela-tório, ela apareçaapenas com o ano eo mês, e nessa or-dem (yyyy/mm). As-sim como no caso damáscara de entrada,os controles do for-
mulário não herdam essa proprie-dade, ou seja, você pode mudar oformato do controle vinculado aocampo, no formulário, conforme asua necessidade. A propriedade For-mato é a mais interessante. Ela pos-sibilita obter muitos resultados: ■ TEXTO E MEMORANDO O forma-to para textos e memorandos en-volve duas partes, separadas porponto-e-vírgula. A primeira defineo formato, se o dado for preenchi-do; e a segunda, se ele não forpreenchido. Vamos esclarecer me-lhor com um exemplo. Imagine umcampo de preenchimento não obri-gatório, como hobbies da pessoa.Pode-se definir o seguinte formatopara esse campo: >[Preto];“não in-formado”[Vermelho]. Se os hobbiesforem informados, o texto inseridoserá exibido em maiúsculas e coma cor preta. Caso contrário, apare-cerá a expressão “não informado”em vermelho. É isso mesmo, podetestar à vontade. Você pode pesqui-sar na Ajuda do Access e descobrir
Construtor de campo:exemplos prontos compropriedades definidas
062_GUIA_TAB_ACCESS 25/02/2006 23:22 Page 66
TUTORIAL/TABELAS
COLEÇÃO INFO > 67
outras preciosidadessobre como exibir otexto quando ele édigitado. ■ NÚMERO EMOEDA Segue omesmo padrão do ti-po Texto e Memo-rando, porém comquatro partes. A pri-meira trata os positivos; a segunda,os negativos; a terceira, o zero; e aúltima, o nulo. Um campo que in-forma saldos financeiros pode tero seguinte formato: “R$”#,00[Azul];“R$”#,00[Verme-lho];“Zero”;“não informado”
Se o saldo é positivo, ele é exibi-do em formato moeda e em cor azul;se negativo, aparece em vermelho;se zero, mostra “Zero”; e se não háinformações naquele campo, apa-rece a expressão “não informado”. ■ SIM/NÃO Esse formato se divi-de em três partes. A primeira nãoafeta em nada os resultados, porémtem de existir. Portanto, o formatocomeça com ponto-e-vírgula (ou se-ja, o primeiro item fica em branco);a segunda é o formato para valoresverdadeiros; e a terceira para valo-res falsos. Um exemplo clássico: ocampo Situação informa se o fun-cionário está ativo ou não. Então,ele pode ter o seguinte formato:;“Ativo”[Vermelho]; “Inativo” [Pre-to]. Se o funcionário está na ativa,
aparece “Ativo”, em vermelho; ca-so contrário, “Inativo”, em preto. ■ DATA/HORA Esse formato nãosegue o mesmo padrão dos anterio-res: não é dividido em partes. O má-ximo que você pode fazer é definira cor do texto. Mas a propriedadedo formato de um campo do tipoData/Hora é muito importante, poisele é que define o que será exibidoda informação digitada pelo usuá-rio. Você pode fazer várias combi-nações. Por exemplo: para exibirapenas o mês, o ano, a hora e os mi-nutos, defina o formato assim: mm/yyyy hh:nn (veja bem: as duas últi-mas letras são enes, de navio, e nãoemes, de minuto, como se espera).Recomendo que você veja na Aju-da as letras e caracteres que vocêpode utilizar no formato de datas,pois tem algumas muito interessan-tes, como as que retornam o trimes-tre, a semana e outros. Quero apro-veitar o assunto para mostrar comose deve definir o formato juntamen-te com a máscara de entrada para
Índice duplo: chaveprimária da tabelacriada com dois campos
062_GUIA_TAB_ACCESS 25/02/2006 23:23 Page 67
TUTORIAL/TABELAS
COLEÇÃO INFO > 69
TUTORIAL/TABELAS
68 < COLEÇÃO INFO
não deixar que seu campo caia nobug do ano 2000, que nada mais édo que entrar com os quatro dígi-tos do ano e exibi-los. Deve-se de-finir para os campos que irão arma-zenar datas a seguinte máscara deentrada: 00/00/0099. E o seu for-mato deve ser: dd/mm/yyyy
CONSISTÊNCIA DOS DADOS A propriedade Regra de Validação ésuperimportante para obter dadosmais seguros desde o momento desua edição, não permitindo que ousuário digite qualquer coisa e aca-be gerando erros no sistema. Imagi-ne que o seu cadastro de funcioná-rios tem o campo Sexo, que deve serpreenchido com “M” ou “F”. Mas umusuário engraçadinho resolve colo-car “H” na ficha de um funcionário.Numa parte qualquer do sistema, vo-cê filtra homens num bloco e mulhe-res em outro. Por causa do usuárioque resolveu fazer graça, o funcio-nário em questão não aparecerá em
nenhum dos filtros. Um sistema pro-fissional não pode deixar que issoaconteça. Para isso existe a regra devalidação do campo. É muito simples:para o caso mencionado, basta digi-tar a seguinte regra na propriedadeRegra de Validação do campo Sexo:“F” Ou “M”. Pronto, o campo só acei-tará F ou M como conteúdo.
Uma nota quanto a essa regra im-posta ao campo Sexo é que o cam-po passa a ser de preenchimento obri-gatório. Ou seja, ele não aceitará nu-lo (vazio). Outro exemplo: num cam-po onde se deve cadastrar o saláriodo funcionário numa empresa cujosalário mínimo é 500 reais. A regraseria, então, “maior que 500”. No en-tanto, pode-se não saber o salário dofuncionário no momento em que eleé cadastrado: o valor será informa-do depois. Para dar incluir essa hipó-tese, a regra deve ser a seguinte: >500 Ou Nulo
Ao contrário das outras proprie-dades até aqui apresentadas, os con-troles vinculados ao campo com re-
gra de validação her-dam, no formulário,a regra definida natabela. Portanto,mesmo que vocêmude a regra para ocontrole vinculadoao campo, o valorque o usuário digi-tar deve satisfazer
sempre à regra definida na tabela.Se porventura você definiu outraregra para o controle, o valor digi-tado terá que atender às duas re-gras, tanto a do campo na tabelaquanto a do controle. A consistên-cia ainda pode ser feita no nível doregistro. Os exemplos do campo Se-xo e do Salário cuidam da consis-tência no nível do campo.
A consistência de registro funcio-na da seguinte forma: imagine umatabela onde são cadastrados os pro-dutos e a porcentagem de cada se-tor da empresa na participação dasvendas. A tabela contém os cam-pos Produto, SetorA, SetorB, SetorC.Como se trata de porcentagem, asoma das parcelas de todos os se-tores deve ser igual a 100. Para im-plementar essa regra, com a tabe-la aberta em modo Design, cliqueno botão Propriedades, na barra deferramentas, a fim de exibir a folha
de propriedades da tabela. Na pro-priedade Regra de Validação, digi-te a seguinte regra: [SetorA]+[SetorB]+[SetorC]=100
Uma propriedade complementar àRegra de Validação é a Texto de Vali-dação. Nessa propriedade você inse-re um texto personalizado para sermostrado, em vez da mensagem-pa-drão do Access, quando o usuário di-gita um valor incorreto.
INTEGRIDADE DOS DADOS Exemplo clássico: o número de CPFde uma pessoa é único — ou seja, ne-nhuma outra pessoa pode ter um CPFigual ao de outra. Portanto, não podehaver em seu cadastro de clientes doisou mais RGs iguais. Para evitar isso,basta selecionar, na propriedade In-dexado do campo CPF, a opção Sim(Duplicação não autorizada). Você po-de querer uma integridade com doiscampos. O número de um aluno na
Regra de Validação:feita para garantirdados consistentes
CARACTERE
L0
9
#
L
?
a
A
&
CARACTERE
C
, , : ; - /
<
>
!
\
DESCRIÇÃO
Dígito (de 0 a 9, entrada obrigatória)
Dígito ou espaço (entrada não obrigatória)
Dígito ou espaço (entrada não obri-gatória; os espaços são exibidos comovazios quando no modo Edição, mas osvazios são removidos quando os dadossão salvos; sinais de adição e subtraçãosão permitidos)
Letra (de A a Z, entrada obrigatória)
Letra (de A a Z, entrada opcional)
Letra ou dígito (entrada opcional)
Letra ou dígito (entrada obrigatória)
Qualquer caractere ou um espaço(entrada obrigatória)
DESCRIÇÃO
Qualquer caractere ou um espaço (entrada opcional)
Marcador decimal e separadoresde milhares, de data e de hora
Converte todos os caracterespara letras minúsculas
Converte todos os caracterespara letras maiúsculas
Define que a máscara de entradaseja exibida da direita para aesquerda, e não da esquerdapara a direita
Define que o caractere seguinteseja exibido como caractereliteral (por exemplo, \A é exibidosimplesmente como A)
MÁSCARAS DE ENTRADACaracteres utilizados na propriedade Máscaras de Entrada
062_GUIA_TAB_ACCESS 25/02/2006 23:53 Page 68
TUTORIAL/TABELAS
COLEÇÃO INFO > 69
TUTORIAL/TABELAS
68 < COLEÇÃO INFO
não deixar que seu campo caia nobug do ano 2000, que nada mais édo que entrar com os quatro dígi-tos do ano e exibi-los. Deve-se de-finir para os campos que irão arma-zenar datas a seguinte máscara deentrada: 00/00/0099. E o seu for-mato deve ser: dd/mm/yyyy
CONSISTÊNCIA DOS DADOS A propriedade Regra de Validação ésuperimportante para obter dadosmais seguros desde o momento desua edição, não permitindo que ousuário digite qualquer coisa e aca-be gerando erros no sistema. Imagi-ne que o seu cadastro de funcioná-rios tem o campo Sexo, que deve serpreenchido com “M” ou “F”. Mas umusuário engraçadinho resolve colo-car “H” na ficha de um funcionário.Numa parte qualquer do sistema, vo-cê filtra homens num bloco e mulhe-res em outro. Por causa do usuárioque resolveu fazer graça, o funcio-nário em questão não aparecerá em
nenhum dos filtros. Um sistema pro-fissional não pode deixar que issoaconteça. Para isso existe a regra devalidação do campo. É muito simples:para o caso mencionado, basta digi-tar a seguinte regra na propriedadeRegra de Validação do campo Sexo:“F” Ou “M”. Pronto, o campo só acei-tará F ou M como conteúdo.
Uma nota quanto a essa regra im-posta ao campo Sexo é que o cam-po passa a ser de preenchimento obri-gatório. Ou seja, ele não aceitará nu-lo (vazio). Outro exemplo: num cam-po onde se deve cadastrar o saláriodo funcionário numa empresa cujosalário mínimo é 500 reais. A regraseria, então, “maior que 500”. No en-tanto, pode-se não saber o salário dofuncionário no momento em que eleé cadastrado: o valor será informa-do depois. Para dar incluir essa hipó-tese, a regra deve ser a seguinte: >500 Ou Nulo
Ao contrário das outras proprie-dades até aqui apresentadas, os con-troles vinculados ao campo com re-
gra de validação her-dam, no formulário,a regra definida natabela. Portanto,mesmo que vocêmude a regra para ocontrole vinculadoao campo, o valorque o usuário digi-tar deve satisfazer
sempre à regra definida na tabela.Se porventura você definiu outraregra para o controle, o valor digi-tado terá que atender às duas re-gras, tanto a do campo na tabelaquanto a do controle. A consistên-cia ainda pode ser feita no nível doregistro. Os exemplos do campo Se-xo e do Salário cuidam da consis-tência no nível do campo.
A consistência de registro funcio-na da seguinte forma: imagine umatabela onde são cadastrados os pro-dutos e a porcentagem de cada se-tor da empresa na participação dasvendas. A tabela contém os cam-pos Produto, SetorA, SetorB, SetorC.Como se trata de porcentagem, asoma das parcelas de todos os se-tores deve ser igual a 100. Para im-plementar essa regra, com a tabe-la aberta em modo Design, cliqueno botão Propriedades, na barra deferramentas, a fim de exibir a folha
de propriedades da tabela. Na pro-priedade Regra de Validação, digi-te a seguinte regra: [SetorA]+[SetorB]+[SetorC]=100
Uma propriedade complementar àRegra de Validação é a Texto de Vali-dação. Nessa propriedade você inse-re um texto personalizado para sermostrado, em vez da mensagem-pa-drão do Access, quando o usuário di-gita um valor incorreto.
INTEGRIDADE DOS DADOS Exemplo clássico: o número de CPFde uma pessoa é único — ou seja, ne-nhuma outra pessoa pode ter um CPFigual ao de outra. Portanto, não podehaver em seu cadastro de clientes doisou mais RGs iguais. Para evitar isso,basta selecionar, na propriedade In-dexado do campo CPF, a opção Sim(Duplicação não autorizada). Você po-de querer uma integridade com doiscampos. O número de um aluno na
Regra de Validação:feita para garantirdados consistentes
CARACTERE
L0
9
#
L
?
a
A
&
CARACTERE
C
, , : ; - /
<
>
!
\
DESCRIÇÃO
Dígito (de 0 a 9, entrada obrigatória)
Dígito ou espaço (entrada não obrigatória)
Dígito ou espaço (entrada não obri-gatória; os espaços são exibidos comovazios quando no modo Edição, mas osvazios são removidos quando os dadossão salvos; sinais de adição e subtraçãosão permitidos)
Letra (de A a Z, entrada obrigatória)
Letra (de A a Z, entrada opcional)
Letra ou dígito (entrada opcional)
Letra ou dígito (entrada obrigatória)
Qualquer caractere ou um espaço(entrada obrigatória)
DESCRIÇÃO
Qualquer caractere ou um espaço (entrada opcional)
Marcador decimal e separadoresde milhares, de data e de hora
Converte todos os caracterespara letras minúsculas
Converte todos os caracterespara letras maiúsculas
Define que a máscara de entradaseja exibida da direita para aesquerda, e não da esquerdapara a direita
Define que o caractere seguinteseja exibido como caractereliteral (por exemplo, \A é exibidosimplesmente como A)
MÁSCARAS DE ENTRADACaracteres utilizados na propriedade Máscaras de Entrada
062_GUIA_TAB_ACCESS 25/02/2006 23:53 Page 68
TUTORIAL/TABELAS
70 < COLEÇÃO INFO
classe deve ser único, porém esse nú-mero pode se repetir em outra clas-se. Logo, a chave deve ser o númeroda classe mais o número do aluno. Cli-que no botão Índices, na barra de fer-ramentas, e serão exibidos os índicesda tabela. Na coluna Nome do Índicedê um nome sugestivo: ClasseAluno.Depois selecione os campos do nú-mero da classe e o do número do alu-no. A propriedade Exclusivo do índi-ce deve conter o valor Sim. A figura 2mostra como deve ficar a janela de ín-dice dessa tabela, que tem como ín-dice primário o campo matrícula.
VALOR-PADRÃOO Valor-padrão de um campo tam-bém é uma propriedade muito im-portante. Ele facilita para o usuário otrabalho de edição. Normalmente, de-fine-se como valor-padrão de um cam-po o valor de preenchimento maisfreqüente. Se a loja está localizada emSão Paulo, é bem provável que a maio-ria dos clientes seja dessa cidade. En-tão, os campos Cidade e Estado já de-
vem aparecer preen-chidos com os valo-res “São Paulo”, “SP”.Assim, o operadorpraticamente nãoprecisará digitar. É im-portante lembrartambém que zero nãoé nulo. Zero é valor
numérico — aliás, esse é o valor-pa-drão adotado pelo Access para os ti-pos de dados numéricos. Nulo é o va-lor de um campo não preenchido. Ouseja, nulo é igual a vazio.
Quanto ao relacionamento do va-lor-padrão de um campo na tabelacom o controle vinculado a ele numformulário, fica valendo, primeiramen-te, o definido para o controle. Contu-do, se você não especificar um valor-padrão para o controle, será utiliza-do o definido para o campo.
Neste tutorial você tomou contatocom todos os itens que envolvem acriação de tabelas de um modo bemprofissional. Vale lembrar que o ban-co de dados Access ainda tem um as-sistente para construir campos. Paraacioná-lo, posicione o cursor na co-luna Nome do Campo e clique no bo-tão Construir, na barra de ferramen-tas. Será exibida uma lista de exem-plos de campos. Se você selecionarum, o assistente já o definirá por in-teiro (ou seja, com todas as proprie-dades) na sua tabela.
Valor-padrão: não épreciso digitar o itemque se repete no campo
062_GUIA_TAB_ACCESS 25/02/2006 23:31 Page 70
RELATÓRIO FEITOCOM VIEWS
APRENDA A CRIAR UMA TABELA VIRTUAL QUE FAÇA ASCONTAS NECESSÁRIAS PARA UM RELATÓRIO DE VENDAS
POR CARLOS CHERNIJ, COM FRED CARBONARE
TUTORIAL/ORACLE EXPRESS
COLEÇÃO INFO > 71
Oracle XE: a criação da views e a administração do banco de dados é feita via web
ma das boas funciona-lidades disponíveis nogratuito Oracle 10g Ex-press Edition — ou Ora-
cle XE — são as views, tabelas vir-tuais que podem ser usadas parapoupar trabalho do programadorna hora de criar consultas no ban-co de dados. As views não existemfisicamente — são geradas pelasconsultas. Mas, depois de criadas,elas se comportam exatamente co-mo uma tabela. Assim, as alteraçõesrealizadas na view são repassadaspara a tabela física envolvida.
UAs views são muito usadas em ban-
cos de dados complexos com diver-sas tabelas que formam conjuntos dedados, relatórios etc. E não são privi-légio do Oracle — podem ser encon-tradas também em bancos de dadoscomo PostgreSQL, MS SQL Server eMySQL 5.0. Neste tutorial, utilizaremosas views para gerar um relatório devendas. Detalhe importante: o OracleXE ainda está em versão beta (no co-meço de fevereiro de 2006, foi colo-cada à disposição dos internautas aedição Release Candidate 3). Por con-ta disso, algumas funções podem apre-
071_RELA_VEND_ORACLE 25/02/2006 23:56 Page 71
TUTORIAL/ORACLE EXPRESS
COLEÇÃO INFO > 73
TUTORIAL/ORACLE EXPRESS
72 < COLEÇÃO INFO
sentar problemas. No teste do INFO-LAB, por exemplo, o upload de scriptsnão funcionou corretamente no na-vegador Firefox.
1. INSTALANDOFaça o download do Oracle XE emwww.info.abril.com.br/download/4346.shtml e execute o instalador.Apesar de o arquivo do programa pos-suir 200 MB, a instalação vai consu-mir cerca de 1 GB de espaço no discorígido. Um momento importante doprocesso é a solicitação da senha pa-ra o usuário System, que tem os di-reitos administrativos. Vamos colocara senha como sendo system, para fa-cilitar. Após a instalação, clique no ata-lho Goto database homepage, que se-rá criado dentro do grupo de progra-mas Oracle Database 10g Express Edi-tion. O atalho abrirá uma janela de
browser com a página de login do mó-dulo de administração — é tudo feitovia web. A página pode ser acessadatambém por meio do endereçohttp://127.0.0.1:8080/htmldb/htmldb na máquina em que o soft-ware foi instalado.
2. CARREGANDO OS SCRIPTSNa página de login, entre com o no-me de usuário System e a senha es-colhida durante a instalação. Vamosagora criar as tabelas que serão usa-das no tutorial. Faça o download dosarquivos de script em ftp://ftp.info.abril.com.br/bdoracle.zip. Depois dedescompactá-los, você terá dois ar-quivos de script: Criar.sql e View.sql.
Na tela inicial do módulo de admi-nistração, escolha a opção SQL. Cli-que então em SQL Scripts. Acione obotão Upload. No campo File, cliqueem Procurar e informe a localizaçãodo arquivo Criar.sql. No campo ScriptName, digite Criar. Clique então nobotão Upload, na parte superior datela. A partir de agora, o script vai apa-recer como um ícone sempre que seentrar na tela SQL Scripts.
3. CRIANDO AS TABELASAinda na tela SQL Scripts (Home > SQL> SQL Scripts), clique no ícone do scriptCriar. Será aberta a janela do ScriptEditor com o código referente à cria-ção das tabelas. Clique no botão Run,que fica na parte superior da tela. Se-rá aberta a tela Run Script, onde é ne-cessário confirmar a operação, clican-do novamente no botão Run. Após a
execução do script, terão sido criadasas tabelas TB_CLIENTE, com informa-ções dos clientes, TB_PEDIDO, comdados dos pedidos, TB_PRODUTO, cominformações dos produtos, e TB_PE-DIDO_PRODUTO, que relacionará osprodutos aos pedidos.
4. VISUALIZANDO OS DADOSA partir da tela inicial do módulo deadministração, clique em ObjectBrowser > Browse > Tables. À esquer-da da tela estará uma lista com to-das as tabelas do sistema, a maioriareferentes a controles internos doOracle XE. No final da lista, você ve-rá as tabelas do tutorial. Clique em
TB_CLIENTE e, depois, naaba Data para ver os da-dos iniciais que foraminseridos durante a cria-ção das tabelas.
5. GERANDO O RELATÓRIO
Vamos criar uma view que irá mos-trar o total pedido por cliente donosso banco de dados, gerando as-sim um relatório de vendas. Voltepara a página inicial e escolha a op-ção Object > Browser > Create >View. No campo View Name, digitevw_total_pedidos_cliente. Na jane-la Query, cole o conteúdo do arqui-vo View.sql. O código é o seguinte:SELECT sum(total_pedido) astotal, cod_cliente, nom_clienteFROM (SELECT tb_pedido.cod_pedido,tb_pedido.cod_cliente,
Scripts: carregue e use o ícone Criar Visualize: clique na aba Data para ver dados inseridos durante a criação das tabelas
Script Editor: um cliqueem Criar abre o códigode criação das tabelas
071_RELA_VEND_ORACLE 25/02/2006 23:33 Page 72
TUTORIAL/ORACLE EXPRESS
COLEÇÃO INFO > 73
TUTORIAL/ORACLE EXPRESS
72 < COLEÇÃO INFO
sentar problemas. No teste do INFO-LAB, por exemplo, o upload de scriptsnão funcionou corretamente no na-vegador Firefox.
1. INSTALANDOFaça o download do Oracle XE emwww.info.abril.com.br/download/4346.shtml e execute o instalador.Apesar de o arquivo do programa pos-suir 200 MB, a instalação vai consu-mir cerca de 1 GB de espaço no discorígido. Um momento importante doprocesso é a solicitação da senha pa-ra o usuário System, que tem os di-reitos administrativos. Vamos colocara senha como sendo system, para fa-cilitar. Após a instalação, clique no ata-lho Goto database homepage, que se-rá criado dentro do grupo de progra-mas Oracle Database 10g Express Edi-tion. O atalho abrirá uma janela de
browser com a página de login do mó-dulo de administração — é tudo feitovia web. A página pode ser acessadatambém por meio do endereçohttp://127.0.0.1:8080/htmldb/htmldb na máquina em que o soft-ware foi instalado.
2. CARREGANDO OS SCRIPTSNa página de login, entre com o no-me de usuário System e a senha es-colhida durante a instalação. Vamosagora criar as tabelas que serão usa-das no tutorial. Faça o download dosarquivos de script em ftp://ftp.info.abril.com.br/bdoracle.zip. Depois dedescompactá-los, você terá dois ar-quivos de script: Criar.sql e View.sql.
Na tela inicial do módulo de admi-nistração, escolha a opção SQL. Cli-que então em SQL Scripts. Acione obotão Upload. No campo File, cliqueem Procurar e informe a localizaçãodo arquivo Criar.sql. No campo ScriptName, digite Criar. Clique então nobotão Upload, na parte superior datela. A partir de agora, o script vai apa-recer como um ícone sempre que seentrar na tela SQL Scripts.
3. CRIANDO AS TABELASAinda na tela SQL Scripts (Home > SQL> SQL Scripts), clique no ícone do scriptCriar. Será aberta a janela do ScriptEditor com o código referente à cria-ção das tabelas. Clique no botão Run,que fica na parte superior da tela. Se-rá aberta a tela Run Script, onde é ne-cessário confirmar a operação, clican-do novamente no botão Run. Após a
execução do script, terão sido criadasas tabelas TB_CLIENTE, com informa-ções dos clientes, TB_PEDIDO, comdados dos pedidos, TB_PRODUTO, cominformações dos produtos, e TB_PE-DIDO_PRODUTO, que relacionará osprodutos aos pedidos.
4. VISUALIZANDO OS DADOSA partir da tela inicial do módulo deadministração, clique em ObjectBrowser > Browse > Tables. À esquer-da da tela estará uma lista com to-das as tabelas do sistema, a maioriareferentes a controles internos doOracle XE. No final da lista, você ve-rá as tabelas do tutorial. Clique em
TB_CLIENTE e, depois, naaba Data para ver os da-dos iniciais que foraminseridos durante a cria-ção das tabelas.
5. GERANDO O RELATÓRIO
Vamos criar uma view que irá mos-trar o total pedido por cliente donosso banco de dados, gerando as-sim um relatório de vendas. Voltepara a página inicial e escolha a op-ção Object > Browser > Create >View. No campo View Name, digitevw_total_pedidos_cliente. Na jane-la Query, cole o conteúdo do arqui-vo View.sql. O código é o seguinte:SELECT sum(total_pedido) astotal, cod_cliente, nom_clienteFROM (SELECT tb_pedido.cod_pedido,tb_pedido.cod_cliente,
Scripts: carregue e use o ícone Criar Visualize: clique na aba Data para ver dados inseridos durante a criação das tabelas
Script Editor: um cliqueem Criar abre o códigode criação das tabelas
071_RELA_VEND_ORACLE 25/02/2006 23:33 Page 72
TUTORIAL/ORACLE EXPRESS
74 < COLEÇÃO INFO
tb_pedido_produto.val_preco_produto * tb_pedido_produto.qtd_produto as total_pedido, tb_cliente.nom_clienteFROM tb_pedido, tb_pedido_produto,tb_clienteWHEREtb_pedido.cod_pedido = tb_pe-dido_produto.cod_pedido ANDtb_cliente.cod_cliente = tb_pe-dido.cod_cliente) totalGROUP BY cod_cliente,nom_cliente
Clique em Next e confirme, acio-nando Create. Na tela de confirmaçãovocê já poderá ver o resultado, clican-do na aba Data. Dessa forma, a viewpode ser utilizada como se fosse uma
Relatório: clique na aba Data
CRIE SUA VIEW
> Para criar uma view, deveser observada a seguinte es-trutura básica de comando SQL:CREATE VIEW vw_nome ASSELECT colunasFROM tabela1, tabela2WHERE tabela1.campo =tabela2.campoDessa forma, você irá unir duastabelas, criando uma tabela vir-tual na qual poderá fazer con-sultas e atualizações nos dadosde forma mais simples. Uma daspossibilidades de aplicação éconfigurar permissões diferen-tes para as tabelas e para asviews. Por exemplo, você podeter uma senha de usuário nobanco de dados sendo usadaapenas para os scripts da áreaaberta do seu site. O internau-ta só terá acesso às views, o su-ficiente para fazer as pesquisasque deseja. Para acessar astabelas originais, seria criadooutro usuário, aplicando assimmais uma camada de segurançano banco de dados.
tabela virtual, e todas as alteraçõesque forem feitas nela serão transmi-tidas para as tabelas que a compõem.Para gerar um relatório a partir daview que foi criada, basta usar o co-mando SELECT * FROM vw_total_pe-didos_cliente.
071_RELA_VEND_ORACLE 25/02/2006 23:35 Page 74
CRIE PESQUISASCOM CRITÉRIOS
SIGA OS PASSOS PARA MONTAR DE CONSULTAS SIMPLES ABUSCAS COM PARÂMETROS VARIÁVEIS NO DB2
POR FRED CARBONARE
TUTORIAL/CONSULTAS
COLEÇÃO INFO > 75
lguma vez você criou con-sultas a banco de dadoscom critério? É bem pro-vável que sim. E uma con-
sulta com o critério OU em determi-nado campo, como Rio de Janeiro OUSão Paulo? Provavelmente sim, tam-bém. Consultas com critérios são mui-to úteis. Quando desejamos que es-sas consultas sejam mais flexíveis, po-demos substituir o critério fixo por umcritério com parâmetros. Exemplo:[Cidade1] OU [Cidade2]
Para treinar as consultas com crité-rio, neste tutorial faremos um cadas-tro de clientes acessando o banco dedados DB2 Express-C.
1. BAIXE OS COMANDOSPara facilitar a compreensão, primei-ramente faça o download do arquivodb2.zip no endereço ftp://ftp.info.abril.com.br/ebd_db2.zip e descom-pacte-o. Nesse arquivo você encon-trará os comandos SQL necessáriospara criar a tabela de exemplo.
2. CRIE A TABELA No DB2 Express-C, crie um banco dedados padrão chamado Consulta. Em
A
Identificação: dê o nome Consulta
No DB2: crie o banco de dados padrão
seguida, localize o arquivo Criar.sqlque você descompactou e execute-o. Ele irá criar uma tabela chamadaClientes com as seguintes colunas:id, nome, endereco, telefone, cida-de, estado, datanasc e incluirá algunsdados de exemplo.
Ao dar um duplo clique sobre a ta-bela Clientes, veremos o seu con-teúdo. Como você pode notar, tra-ta-se de uma tabela simples, quearmazena uma lista de clientes e assuas respectivas cidades.
075_TUT GUIA DB2 25/02/2006 23:41 Page 75
TUTORIAL/CONSULTAS
COLEÇÃO INFO > 77
TUTORIAL/CONSULTAS
76 < COLEÇÃO INFO
3. NOVA CONSULTAComo poderemos visualizar apenasos clientes localizados na cidade deSão Bernardo do Campo? Criando, éclaro, uma consulta com critério. Pa-ra isso, clique com o botão direito natabela e escolha Consultar. Na janelaNova Consulta que se abriu, fique coma opção Selecionado > Assistente SQL.Ainda Na janela Nova Consulta, sele-cione Instrução SELECT > From e es-colha a tabela Clientes.
dor “=”, e, em Valor, escolha a op-ção Listar valores. Na nova janelade valores, dê um duplo clique emSão Bernardo. Basta clicar no bo-tão > para adicionar o critério. Cli-que em OK e em Resultados da Con-sulta para ver o resultado.
5. CRITÉRIO OUQuando abrimos o assistente SQL doDB2 Express-C, ele zera toda a pro-gramação feita antes. Assim, para sa-ber quais são os clientes de São Ber-nardo OU São Paulo, é necessário criarnovamente o critério e adicionar umnovo para a cidade de São Paulo, cli-cando no botão OR >.
6. VISUALIZANDO O SQL Ao criarmos uma consulta no As-sistente SQL, o programa, nos bas-tidores, cria uma instrução SQL pa-ra realizar a pesquisa solicitada. Ve-ja como ficou no nosso primeiroexemplo:SELECT * FROM SQLJ.CLIENTES AS CLIENTESWHERE CLIENTES.CIDADE = ’SãoBernardo’
7. RESTRINGINDOVamos supor agora que você quervisualizar os clientes de “São Ber-nardo” OU “São Paulo”, mas ape-nas os que nasceram em 1990. Pa-ra isso usaremos o mesmo siste-ma de critérios, mas adicionandoum outro, do tipo AND.
De volta ao Assistente SQL, es-colha a coluna DATANASC e o ope-rador BETWEEN. Em valor mínimocoloque ‘1990-01-01’ e, em valormáximo, ‘1990-12-31’. Clique em"AND >". Agora, clique em OK eexecute o comando, acionando Re-sultados da Consulta.
Pronto, agora você pode usar oAssistente SQL para gerar coman-dos com critérios de acordo coma sua aplicação e extrair relató-rios cada vez mais precisos do seubanco de dados.
Esse exemplo, feito no DB2 Ex-press-C, pode ser aplicado em qual-quer outro banco de dados. A dife-rença vai ser mais visual do que con-ceitual, de acordo com o assisten-te do produto.Valores: adicione o novo critério
Como ficou: visualize o código SQL
Critério: escolha a opção Where
4. O CRITÉRIOAgora vamos colocar o critério. Pa-ra isso, escolha a opção WHERE.Nessa janela Where, escolha a co-luna CIDADE, (imagem 008) opera-
Tabela: clique duplo exibe conteúdo
AND OU OR?
> Dúvidas sobre a utilização doscritérios AND e OR costumam serfreqüentes entre os iniciantes naarte de armazenar informação.Quando colocamos a instrução OR,acrescentamos registros ao resul-tado. Quando utilizamos AND, res-tringimos. Para exemplificar, ima-
gine um amigo procurando na-morada. Ele prefere loiras deolhos azuis. Então deve especi-ficar loira AND olhos azuis. Ago-ra, se para você tanto faz se a mo-ça é loira ou morena, defina a con-sulta com loiras OR morenas. Suaspossibilidades serão maiores.
Quando adicionamos o critério paraas duas cidades, se você observar adeclaração SQL montada, vai notarque a cláusula WHERE mudou para:WHERE CLIENTES.CIDADE = ’SãoBernardo’ OR CLIENTES.CIDADE =’São Paulo’;
Note que a diferença entre asduas instruções SQL é a quantida-de de parâmetros contidos exata-mente na cláusula Where. Da mes-ma forma, a diferença da cláusulaWhere entre uma consulta que pos-sua o critério: “São Bernardo”, e ou-tra com o critério: “São Bernardo”OU “São Paulo”, será a quantidadede campos na cláusula Where.
075_TUT GUIA DB2 25/02/2006 23:58 Page 76
TUTORIAL/CONSULTAS
COLEÇÃO INFO > 77
TUTORIAL/CONSULTAS
76 < COLEÇÃO INFO
3. NOVA CONSULTAComo poderemos visualizar apenasos clientes localizados na cidade deSão Bernardo do Campo? Criando, éclaro, uma consulta com critério. Pa-ra isso, clique com o botão direito natabela e escolha Consultar. Na janelaNova Consulta que se abriu, fique coma opção Selecionado > Assistente SQL.Ainda Na janela Nova Consulta, sele-cione Instrução SELECT > From e es-colha a tabela Clientes.
dor “=”, e, em Valor, escolha a op-ção Listar valores. Na nova janelade valores, dê um duplo clique emSão Bernardo. Basta clicar no bo-tão > para adicionar o critério. Cli-que em OK e em Resultados da Con-sulta para ver o resultado.
5. CRITÉRIO OUQuando abrimos o assistente SQL doDB2 Express-C, ele zera toda a pro-gramação feita antes. Assim, para sa-ber quais são os clientes de São Ber-nardo OU São Paulo, é necessário criarnovamente o critério e adicionar umnovo para a cidade de São Paulo, cli-cando no botão OR >.
6. VISUALIZANDO O SQL Ao criarmos uma consulta no As-sistente SQL, o programa, nos bas-tidores, cria uma instrução SQL pa-ra realizar a pesquisa solicitada. Ve-ja como ficou no nosso primeiroexemplo:SELECT * FROM SQLJ.CLIENTES AS CLIENTESWHERE CLIENTES.CIDADE = ’SãoBernardo’
7. RESTRINGINDOVamos supor agora que você quervisualizar os clientes de “São Ber-nardo” OU “São Paulo”, mas ape-nas os que nasceram em 1990. Pa-ra isso usaremos o mesmo siste-ma de critérios, mas adicionandoum outro, do tipo AND.
De volta ao Assistente SQL, es-colha a coluna DATANASC e o ope-rador BETWEEN. Em valor mínimocoloque ‘1990-01-01’ e, em valormáximo, ‘1990-12-31’. Clique em"AND >". Agora, clique em OK eexecute o comando, acionando Re-sultados da Consulta.
Pronto, agora você pode usar oAssistente SQL para gerar coman-dos com critérios de acordo coma sua aplicação e extrair relató-rios cada vez mais precisos do seubanco de dados.
Esse exemplo, feito no DB2 Ex-press-C, pode ser aplicado em qual-quer outro banco de dados. A dife-rença vai ser mais visual do que con-ceitual, de acordo com o assisten-te do produto.Valores: adicione o novo critério
Como ficou: visualize o código SQL
Critério: escolha a opção Where
4. O CRITÉRIOAgora vamos colocar o critério. Pa-ra isso, escolha a opção WHERE.Nessa janela Where, escolha a co-luna CIDADE, (imagem 008) opera-
Tabela: clique duplo exibe conteúdo
AND OU OR?
> Dúvidas sobre a utilização doscritérios AND e OR costumam serfreqüentes entre os iniciantes naarte de armazenar informação.Quando colocamos a instrução OR,acrescentamos registros ao resul-tado. Quando utilizamos AND, res-tringimos. Para exemplificar, ima-
gine um amigo procurando na-morada. Ele prefere loiras deolhos azuis. Então deve especi-ficar loira AND olhos azuis. Ago-ra, se para você tanto faz se a mo-ça é loira ou morena, defina a con-sulta com loiras OR morenas. Suaspossibilidades serão maiores.
Quando adicionamos o critério paraas duas cidades, se você observar adeclaração SQL montada, vai notarque a cláusula WHERE mudou para:WHERE CLIENTES.CIDADE = ’SãoBernardo’ OR CLIENTES.CIDADE =’São Paulo’;
Note que a diferença entre asduas instruções SQL é a quantida-de de parâmetros contidos exata-mente na cláusula Where. Da mes-ma forma, a diferença da cláusulaWhere entre uma consulta que pos-sua o critério: “São Bernardo”, e ou-tra com o critério: “São Bernardo”OU “São Paulo”, será a quantidadede campos na cláusula Where.
075_TUT GUIA DB2 25/02/2006 23:58 Page 76
TUTORIAL/INTERFACE WEB
COLEÇÃO INFO > 79
O PHPMYADMINDOMA O MYSQL
APRENDA A USAR O PHPMYADMIN PARA CRIAR BANCOS DE DADOS SEM ESCREVER EM SQL
POR TONI CAVALHEIRO
TUTORIAL/INTERFACE WEB
78 < COLEÇÃO INFO
opular por ser um geren-ciador de bancos de da-dos confiável e gratuito,o MySQL fica devendo
uma interface gráfica para o desenvol-vedor. Sem ela, o uso desse softwarefica restrito aos programadores quedominam a linguagem SQL. A MySQLAB, que produz o banco de dados, ofe-rece o MySQL Administrator, uma fer-ramenta de gerenciamento, mas nãoé tão popular quanto o phpMyAdmin,que permite comandar o MySQL pormeio de uma interface via web. Comele, é possível criar e modificar bancosde dados sem escrever os comandosem SQL. O phpMyAdmin também é óti-mo para aprender SQL, uma vez quepode-se visualizar o código gerado.Neste tutorial, vamos criar um bancode dados com o phpMyAdmin. Paraisso, é preciso ter um servidor Apachecom PHP e MySQL, itens presentes emquase todas as distribuições do Linux.Se você quiser instalá-los no Windows,pode optar por um pacote como oApache2Triad (www.info.abril.com.br/download/3788.shtml), que reúneos três softwares. Vamos ao tutorial.
1. INSTALAÇÃOO primeiro passo é baixar o phpMyAd-min (www.info.abril.com.br/download/3260.shtml) e descompactar osarquivos. Crie uma pasta no servidorApache com o nome mysql e ponhaos arquivos do software nela.
2. CONFIGURAÇÃOVamos configurar. Abra, no Bloco deNotas, o arquivo config.inc.php, que es-tá na pasta mysql. Localize este trecho:$cfg[‘Servers’][$i]['host’] = ‘localhost’; // MySQL hostname orIP address$cfg[‘Servers’][$i][‘port’]= “; //MySQL port - leave blank for default Na primeira linha, altere o parâme-tro host para o nome ou o endere-ço IP do servidor. Se o phpMyAdminestiver na mesma máquina que oMySQL, deixe “localhost” mesmo.Caso seu MySQL utilize alguma por-ta especial, indique-a na linha se-guinte. Coloque o número da portaentre os apóstrofos logo após o si-nal de igual. A porta-padrão é a3306. Caso ocorra algum tipo de pro-
P
blema, verifique se essa porta estáliberada no firewall.
3. AUTENTICAÇÃOPor padrão, o phpMyAdmin usa aautenticação baseada no computa-dor. Você indica uma máquina clien-te e ele só faz a conexão com ela.Vamos alterar isso para que a au-tenticação seja feita com base nonome de usuário. Para isso, loca-lize a seguinte linha no arquivoconfig.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. Sal-ve o arquivo e feche o Bloco de No-tas. Depois disso, o phpMyAdmin es-tará pronto para ser usado. Abra obrowser e digite a seguinte URL:http://localhost/mysql
Você verá uma tela de logon. Se éa primeira vez que você acessa oMySQL, digite rootcomo nome de usuá-rio e deixe a senhaem branco.
4. O BANCO DEDADOSUm servidor como oMySQL pode contervários bancos de da-dos. Cada um é for-mado por um certonúmero de tabelas.As tabelas são divi-didas em colunas e
linhas horizontais, que são chama-das, respectivamente, de campos eregistros. Vamos criar um pequenobanco de dados com o cadastro declientes de uma empresa qualquer.Para começar, na página inicial dophpMyAdmin, procure o campo“Criar novo banco de dados”. Digi-te a palavra empresa nele e cliqueno botão Criar. Todos os nomes dosbancos de dados devem ser grafa-dos em letras minúsculas.
5. TABELASO próximo passo será criar uma tabe-la. O próprio phpMyAdmin já sugereessa operação. Digite o nome tb_agen-da para a tabela. Como ela terá novecampos, coloque o número 9 em Cam-pos e pressione o botão Executar. É re-comendável iniciar o nome de cada ta-bela com as letras “tb_”. Com essa no-menclatura, você poderá encontrar astabelas mais facilmente no código-fon-te do seu programa.
Página inicial: ponto de partida do phpMyAdmin para acriação dos vários bancos de dados que o MySQL comporta
078_MY_ADMIN1 26/02/2006 00:00 Page 78
TUTORIAL/INTERFACE WEB
COLEÇÃO INFO > 79
O PHPMYADMINDOMA O MYSQL
APRENDA A USAR O PHPMYADMIN PARA CRIAR BANCOS DE DADOS SEM ESCREVER EM SQL
POR TONI CAVALHEIRO
TUTORIAL/INTERFACE WEB
78 < COLEÇÃO INFO
opular por ser um geren-ciador de bancos de da-dos confiável e gratuito,o MySQL fica devendo
uma interface gráfica para o desenvol-vedor. Sem ela, o uso desse softwarefica restrito aos programadores quedominam a linguagem SQL. A MySQLAB, que produz o banco de dados, ofe-rece o MySQL Administrator, uma fer-ramenta de gerenciamento, mas nãoé tão popular quanto o phpMyAdmin,que permite comandar o MySQL pormeio de uma interface via web. Comele, é possível criar e modificar bancosde dados sem escrever os comandosem SQL. O phpMyAdmin também é óti-mo para aprender SQL, uma vez quepode-se visualizar o código gerado.Neste tutorial, vamos criar um bancode dados com o phpMyAdmin. Paraisso, é preciso ter um servidor Apachecom PHP e MySQL, itens presentes emquase todas as distribuições do Linux.Se você quiser instalá-los no Windows,pode optar por um pacote como oApache2Triad (www.info.abril.com.br/download/3788.shtml), que reúneos três softwares. Vamos ao tutorial.
1. INSTALAÇÃOO primeiro passo é baixar o phpMyAd-min (www.info.abril.com.br/download/3260.shtml) e descompactar osarquivos. Crie uma pasta no servidorApache com o nome mysql e ponhaos arquivos do software nela.
2. CONFIGURAÇÃOVamos configurar. Abra, no Bloco deNotas, o arquivo config.inc.php, que es-tá na pasta mysql. Localize este trecho:$cfg[‘Servers’][$i]['host’] = ‘localhost’; // MySQL hostname orIP address$cfg[‘Servers’][$i][‘port’]= “; //MySQL port - leave blank for default Na primeira linha, altere o parâme-tro host para o nome ou o endere-ço IP do servidor. Se o phpMyAdminestiver na mesma máquina que oMySQL, deixe “localhost” mesmo.Caso seu MySQL utilize alguma por-ta especial, indique-a na linha se-guinte. Coloque o número da portaentre os apóstrofos logo após o si-nal de igual. A porta-padrão é a3306. Caso ocorra algum tipo de pro-
P
blema, verifique se essa porta estáliberada no firewall.
3. AUTENTICAÇÃOPor padrão, o phpMyAdmin usa aautenticação baseada no computa-dor. Você indica uma máquina clien-te e ele só faz a conexão com ela.Vamos alterar isso para que a au-tenticação seja feita com base nonome de usuário. Para isso, loca-lize a seguinte linha no arquivoconfig.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. Sal-ve o arquivo e feche o Bloco de No-tas. Depois disso, o phpMyAdmin es-tará pronto para ser usado. Abra obrowser e digite a seguinte URL:http://localhost/mysql
Você verá uma tela de logon. Se éa primeira vez que você acessa oMySQL, digite rootcomo nome de usuá-rio e deixe a senhaem branco.
4. O BANCO DEDADOSUm servidor como oMySQL pode contervários bancos de da-dos. Cada um é for-mado por um certonúmero de tabelas.As tabelas são divi-didas em colunas e
linhas horizontais, que são chama-das, respectivamente, de campos eregistros. Vamos criar um pequenobanco de dados com o cadastro declientes de uma empresa qualquer.Para começar, na página inicial dophpMyAdmin, procure o campo“Criar novo banco de dados”. Digi-te a palavra empresa nele e cliqueno botão Criar. Todos os nomes dosbancos de dados devem ser grafa-dos em letras minúsculas.
5. TABELASO próximo passo será criar uma tabe-la. O próprio phpMyAdmin já sugereessa operação. Digite o nome tb_agen-da para a tabela. Como ela terá novecampos, coloque o número 9 em Cam-pos e pressione o botão Executar. É re-comendável iniciar o nome de cada ta-bela com as letras “tb_”. Com essa no-menclatura, você poderá encontrar astabelas mais facilmente no código-fon-te do seu programa.
Página inicial: ponto de partida do phpMyAdmin para acriação dos vários bancos de dados que o MySQL comporta
078_MY_ADMIN1 26/02/2006 00:00 Page 78
Esqueça as demais especificaçõesdo phpMyAdmin, como Atributos, Nu-lo e Padrão. Esses itens não serão ne-cessários e devem ser deixados embranco. Procure evitar o uso de cedi-lha, acentuação ou caracteres espe-ciais no nome dos campos. Isso podecriar problemas se você resolver trans-portar a base de dados para outro ser-vidor. Ao terminar, clique em Salvar.
8. CHAVEVamos definir a chave primária, umareferência que será usada como ín-dice para a tabela. Clique em Estru-tura e, em seguida, no ícone em for-ma de chave ao lado do campo codda tabela. Uma tela de confirmaçãoaparecerá. Clique em OK. Agora liguea numeração automática do campocod. Ainda na guia Estrutura, pres-sione o ícone em forma de lápis queestá ao lado desse campo e selecio-ne a opção auto_increment, disponí-vel em Extra. Clique em Salvar.
9. INSERINDO DADOSJá podemos inserir dados na tabe-la. Primeiro, mostraremos como in-
TUTORIAL/INTERFACE WEB
80 < COLEÇÃO INFO
TUTORIAL/INTERFACE WEB
COLEÇÃO INFO > 81
6. TIPOS DE CAMPOAs tabelas podem conter vários ti-pos de campo. Vamos dar uma olha-da nos principais.■ VARCHAR Armazena seqüênciasde letras e números. Valores armaze-nados nesse campo não podem serusados para cálculos matemáticos (sevocê somar “1” + “2”, receberá “12”como resultado, em vez de “3”).■ TEXT Usado para armazenar ostextos. Se você tiver um sistema denotícias online, por exemplo, iráguardar cada um dos artigos em umcampo TEXT.■ DATE Campo usado para datas. Es-tá presente na maioria das tabelas.■ INT É um dos tipos de campo maisusados. Armazena números inteiros,sejam eles negativos ou positivos. ■ DECIMAL Armazena números de-cimais. Repare que, ao lado desse cam-po, aparece o item “tamanho/definir”.Esse valor indica a precisão do cam-po decimal que você está criando. Sevocê preencher com o valor 10,3, porexemplo, estará informando ao servi-dor que a precisão será de dez dígi-tos e três casas decimais. Se você nãoespecificar nenhum valor, o sistemaassume 10,0 como formato-padrão.■ BLOB É normalmente usado paraarmazenar imagens.
7. DEFINIÇÕESO phpMyAdmin mostra um formu-lário que devemos preencher comas definições dos nove campos danossa tabela. Complete o formulá-rio com os valores da tabela a seguir:
10. DADOS NOATACADOA técnica do passoanterior para inserirdados não é muitoprática se você pre-cisar incluir muitosnomes. A melhorsaída é criar um ar-quivo de texto comos dados e importá-lo para o MySQL. Pa-ra isso, coloque osdados de cada clien-
te numa linha, usando ponto-e-vír-gula como separador. Os camposdevem estar na ordem especifica-da na tabela, como neste exemplo: ;“João da Silva”;“(11) 6000-1010”;“Rua do Endereço, 100”; “SãoPaulo”;“SP”;“Brasil”;“01000000”;“[email protected]”;“Paulo da Silva”;“(21)1000-1212”;“Rua do Teste, 200”;“Niterói”;“RJ”;“Brasil”;“10201000”;
CAMPO
cod
nome
telefone
endereco
cidade
estado
pais
cep
TAMANHO/DEFINIR
100
15
50
30
2
15
8
30
TIPO
INT
VARCHAR
VARCHAR
VARCHAR
VARCHAR
VARCHAR
VARCHAR
VARCHAR
VARCHAR
Campos: especifique o nome, o tipo e o tamanho
cluir dados da forma convencionale, em seguida, você verá como mon-tar o cadastro de clientes importan-do dados de um arquivo de texto.
Para incluir dados no MySQL, cli-que na guia Inserir, localizada na par-te superior da janela do phpMyAd-min. O programa permite que vocêinclua dois registros de cada vez, bas-tando preencher o formulário com in-formações tais como nome, endere-ço e telefone dosclientes. Nesse mo-mento, preencha ape-nas o item Valor. Oitem Funções permi-te que você dê umtratamento persona-lizado aos dados queestá digitando, masnão vamos usá-noneste tutorial. Casovocê queira incluiroutros novos dados,marque a opção “In-serir novo registro”.
Importar dados: faça um arquivo de texto e importe para o MySQL
078_MY_ADMIN1 26/02/2006 00:01 Page 80
Esqueça as demais especificaçõesdo phpMyAdmin, como Atributos, Nu-lo e Padrão. Esses itens não serão ne-cessários e devem ser deixados embranco. Procure evitar o uso de cedi-lha, acentuação ou caracteres espe-ciais no nome dos campos. Isso podecriar problemas se você resolver trans-portar a base de dados para outro ser-vidor. Ao terminar, clique em Salvar.
8. CHAVEVamos definir a chave primária, umareferência que será usada como ín-dice para a tabela. Clique em Estru-tura e, em seguida, no ícone em for-ma de chave ao lado do campo codda tabela. Uma tela de confirmaçãoaparecerá. Clique em OK. Agora liguea numeração automática do campocod. Ainda na guia Estrutura, pres-sione o ícone em forma de lápis queestá ao lado desse campo e selecio-ne a opção auto_increment, disponí-vel em Extra. Clique em Salvar.
9. INSERINDO DADOSJá podemos inserir dados na tabe-la. Primeiro, mostraremos como in-
TUTORIAL/INTERFACE WEB
80 < COLEÇÃO INFO
TUTORIAL/INTERFACE WEB
COLEÇÃO INFO > 81
6. TIPOS DE CAMPOAs tabelas podem conter vários ti-pos de campo. Vamos dar uma olha-da nos principais.■ VARCHAR Armazena seqüênciasde letras e números. Valores armaze-nados nesse campo não podem serusados para cálculos matemáticos (sevocê somar “1” + “2”, receberá “12”como resultado, em vez de “3”).■ TEXT Usado para armazenar ostextos. Se você tiver um sistema denotícias online, por exemplo, iráguardar cada um dos artigos em umcampo TEXT.■ DATE Campo usado para datas. Es-tá presente na maioria das tabelas.■ INT É um dos tipos de campo maisusados. Armazena números inteiros,sejam eles negativos ou positivos. ■ DECIMAL Armazena números de-cimais. Repare que, ao lado desse cam-po, aparece o item “tamanho/definir”.Esse valor indica a precisão do cam-po decimal que você está criando. Sevocê preencher com o valor 10,3, porexemplo, estará informando ao servi-dor que a precisão será de dez dígi-tos e três casas decimais. Se você nãoespecificar nenhum valor, o sistemaassume 10,0 como formato-padrão.■ BLOB É normalmente usado paraarmazenar imagens.
7. DEFINIÇÕESO phpMyAdmin mostra um formu-lário que devemos preencher comas definições dos nove campos danossa tabela. Complete o formulá-rio com os valores da tabela a seguir:
10. DADOS NOATACADOA técnica do passoanterior para inserirdados não é muitoprática se você pre-cisar incluir muitosnomes. A melhorsaída é criar um ar-quivo de texto comos dados e importá-lo para o MySQL. Pa-ra isso, coloque osdados de cada clien-
te numa linha, usando ponto-e-vír-gula como separador. Os camposdevem estar na ordem especifica-da na tabela, como neste exemplo: ;“João da Silva”;“(11) 6000-1010”;“Rua do Endereço, 100”; “SãoPaulo”;“SP”;“Brasil”;“01000000”;“[email protected]”;“Paulo da Silva”;“(21)1000-1212”;“Rua do Teste, 200”;“Niterói”;“RJ”;“Brasil”;“10201000”;
CAMPO
cod
nome
telefone
endereco
cidade
estado
pais
cep
TAMANHO/DEFINIR
100
15
50
30
2
15
8
30
TIPO
INT
VARCHAR
VARCHAR
VARCHAR
VARCHAR
VARCHAR
VARCHAR
VARCHAR
VARCHAR
Campos: especifique o nome, o tipo e o tamanho
cluir dados da forma convencionale, em seguida, você verá como mon-tar o cadastro de clientes importan-do dados de um arquivo de texto.
Para incluir dados no MySQL, cli-que na guia Inserir, localizada na par-te superior da janela do phpMyAd-min. O programa permite que vocêinclua dois registros de cada vez, bas-tando preencher o formulário com in-formações tais como nome, endere-ço e telefone dosclientes. Nesse mo-mento, preencha ape-nas o item Valor. Oitem Funções permi-te que você dê umtratamento persona-lizado aos dados queestá digitando, masnão vamos usá-noneste tutorial. Casovocê queira incluiroutros novos dados,marque a opção “In-serir novo registro”.
Importar dados: faça um arquivo de texto e importe para o MySQL
078_MY_ADMIN1 26/02/2006 00:01 Page 80
TUTORIAL/INTERFACE WEB
82 < COLEÇÃO INFO
“[email protected]”;“Jorge Pinheiro”;“(609) 1000-1000”;“3rd Test Street”;“Adrian”;“MI”;“USA”;“11000123”;“[email protected]”
Salve esse arquivo com o nomeagenda.txt. De volta ao phpMyAdmin,clique em SQL e depois em Insere Ar-quivo Texto na Tabela. Clique emBrowse, localize o arquivo que vocêcriou. Para concluir a entrada dos da-dos, clique em Submeter. Os dadosserão incorporados ao cadastro declientes. A montagem do nosso ban-co de dados está concluída. Nos pró-ximos dois passos, damos dicas pa-ra quem está aprendendo SQL.
11. EXAMINANDO O CÓDIGOPode ser interessante dar uma olha-da no código em SQL gerado pelophpMyAdmin. Clique em Exportar egere um arquivo com a extensão SQL.Depois, abra esse arquivo no Blocode Notas ou num editor de progra-mas. Analise o código e veja como ophpMyAdmin estruturou a tabela.
12. COM O SQLHá certas operaçõesque não podem serfeitas apenas com ophpMyAdmin. Elasexigem a digitação decomandos em SQL. Is-so é feito na guia SQL,bastando digitar oscomandos e pressio-nar o botão Executarpara enviá-los ao
MySQL. Vamos ver exemplos das qua-tro operações básicas de bancos dedados — consulta, inclusão, edição eexclusão — em SQL.SELECT * from tb_dados WHEREcod = ‘10’ ORDER BY nome;Esse comando seleciona e lista to-dos os campos da tabela tb_dadossomente nas linhas que tiverem ocódigo 10. O parâmetro ORDER BYdetermina as linhas em ordem alfa-bética pelo campo nome.INSERT INTO tb_dados (endereco)VALUES (‘[email protected]’);Esse código insere o endereço [email protected] no campo endereco da ta-bela tb_dados.UPDATE tb_dados SET nome =‘INFO’ WHERE cod = ‘10’;Modifica o campo nome da tabelatb_dados para Info, mas só nas linhasque tiverem 10 no campo cod.DELETE FROM tb_dados WHEREnome like ‘a%’;Apaga linhas da tabela tb_dados quecomeçarem com a letra a. O símbolo% é usado como curinga.
SQL: os comandos são enviados direto para o MySQL
078_MY_ADMIN1 26/02/2006 00:01 Page 82
TUTORIAL/DESENVOLVIMENTO
COLEÇÃO INFO > 83
ATUALIZAÇÃO ÉCOM O AJAX
COMBINAÇÃO DE VÁRIAS TECNOLOGIAS, O AJAX AGILIZAOS APLICATIVOS QUE ACESSAM BANCOS DE DADOS ONLINE
POR CARLOS CHERNIJ
Ajax vem dando o quefalar no mundo dos si-tes dinâmicos. Essa téc-nica de desenvolvimen-
to usa HTML, JavaScript, XML e algu-ma linguagem para a web, como PHP,ColdFusion, Java ou C# e tem noGoogle um ilustre usuário. Quando al-guém distribui corações para os ami-gos no orkut, por exemplo, a páginaatualiza os campos correspondentessem recarregar todo o resto, agilizandoa operação. Num formulário normalda web, os dados fornecidos pelo in-ternauta são enviados para o servidor,
que devolve uma nova página com oresultado. Para demonstrar como seprograma em Ajax, vamos criar umserviço de cadastro com PHP e HTML.
1. O SERVIDOR Para executar nosso exemplo, é pre-ciso ter um servidor HTTP Apache 2.0rodando PHP 4.4 no modo binário CGIe o banco de dados MySQL 4.1 ou maisrecente. Esses recursos estão dispo-níveis na maioria dos planos de hos-pedagem de sites. Baixe o exemploem www.info.abril.com.br/download/4326.shtml e descompacte-o.
Você vai obter uma pas-ta chamada infoajax comvários arquivos. Coloqueessa pasta no diretório-raiz do servidor Apache(diretório htdocs). Paracriar nossa aplicação, usa-remos uma biblioteca declasses em PHP, a Xajax(www.info.abril.com.br/download/4327.shtml).Ela está incluída no arqui-vo compactado, dentro dapasta includes, com o no-me xajax.inc.php.
O
Formulário: cadastro de clientes feito com Ajax
083_084_AJAX 26/02/2006 00:20 Page 83
TUTORIAL/DESENVOLVIMENTO
COLEÇÃO INFO > 85
TUTORIAL/DESENVOLVIMENTO
84 < COLEÇÃO INFO
o $xajax->registerFunction(),que permite agregar funções es-critas em PHP que realizarão ope-rações com dados do formuláriode forma assíncrona. Cada funçãodessas deve possuir um objeto daclasse xajaxResponse(), que con-terá os dados a atualizar.
7. TELA DE CADASTRONa tela de cadastro, o exemplo deuso do Ajax é composto dos menuscom os dados de estado e cidade.A lista de cidades é atualizada deacordo com o estado escolhido. Pa-ra selecionar as cidades, há a fun-ção carregaCidades. No arquivo ca-dastro.php, observe o código des-sa função. Após ler o valor selecio-nado no menu Estado, a função rea-liza uma consulta na tabela para se-lecionar as cidades corresponden-tes. Cada registro encontrado é adi-cionado ao objeto $objResponse,por meio do método addAssign. Nocódigo, temos esta linha: $objResponse->addAssig(“cidades”,“innerHTML”,$html)
O item “cidades” é a identificaçãoda divisão da página onde ficará omenu com as cidades, e “in-nerHTML” especifica que o conteú-do da variável $html vai substituiro código html dentro da divisão. Nofinal, é chamado o método getXML(),que retorna uma seção de códigoXML ao objeto xajax. Após imple-mentar a função, vamos incorporá-la ao xajax por meio do comando:
$xajax->registerFunction(“carregaCidades”)
8. XAJAXApós a definição das funções, quan-do começa a seção de código HTMLdo arquivo cadastro.php, é precisoespecificar que o xajax deve tomarpara si os comandos de post do for-mulário. Isso é feito pelo comando$xajax->processRequests() Em se-guida, devemos criar um evento quechamará a função que registramosno objeto xajax. Isso é feito na linha:<select id=“uf”name=“uf”onChange=“javascript:aguarde();xajax_carregaCidades(this.value);”style=“width: 50px;”>Cada vez que o campo Estado mu-dar, a função carregaCidades seráchamada e retornará a lista de cida-des em código XML. O xajax utiliza-rá a lista num JavaScript, que, por suavez, atualizará as cidades.
Um mecanismo similar é utilizadona página index.php, que contém omódulo de consulta. Abra-a num edi-tor de textos. A função listaUsuariosutiliza como parâmetro o texto dacaixa de busca. Ao ser chamada, elafaz a consulta no banco e adiciona osresultados à variável $html para quesejam exibidos na página. Ao clicarem Buscar, a função listaUsuarios pas-sa um novo parâmetro para a con-sulta. Ele é enviado para o servidorpelo xajax, que recebe a resposta emXML e usa, então, um programa emJavaScript para reescrever o códigoHTML, que mostra os resultados.
2. BASE DE DADOSPrepare a base de dadosdo aplicativo. O INFOLAButilizou o phpMyAdmin(www.info.abril.com.br/download/3260.shtml)nessa tarefa. Se esse soft-ware estiver instalado noservidor, digite o endere-ço correspondente parausá-lo, como neste exem-plo: http://www.nome.com.br/phpmyadmin.Na tela inicial, procureo campo Criar Novo Banco de Da-dos e digite xajax. Clique em Criar.
3. TABELASVamos gerar tabelas para a nossaaplicação. No phpMyAdmin, acioneo menu do lado esquerdo da tela eselecione o banco de dados xajax.Ative, então, a aba MySQL. No cam-po Localização do Arquivo Texto,clique em Procurar. Navegue até oarquivo bd.sql, na pasta infoajax, eselecione-o. Em Conjunto de Carac-teres do Arquivo, escolha latin1. Cli-que em Executar para rodar o pro-grama em SQL. Isso cria as tabelas.
4. CONFIGURAÇÕES Vamos editar o arquivo bd.inc.phpque fica na pasta includes. Abra-onum editor de textos e procure: $conexao = mysql_connect (“localhost”,“usuário”,“senha”);mysql_select_db(‘meubanco’,$conexao);
Substitua as palavras “usuário” e
phpMyAdmin: criação do banco de dados xajax
“senha” pelo nome de usuário e a se-nha que deverão ser usados paraacesso ao MySQL. Na linha de baixo,substitua “meubanco” por “xajax”.
5. O APLICATIVO Para ver o aplicativo-exemplo fun-cionando, abra o browser e digiteeste endereço: http://www.nome.com.br/infoajax. No lugar de“www.nome.com.br”, coloque o en-dereço do seu site. Clique em Ca-dastrar e inclua dados de uma pes-soa no banco. Depois, volte à pági-na anterior e faça uma consulta.
6. EXAMINADO O CÓDIGOAnalisaremos a seguir o arquivocadastro.php, que contém as roti-nas para a inclusão de registros.Abra o arquivo num editor de tex-tos e, logo no começo, observe alinha $xajax = new xajax();. Es-se comando define o objeto xajax,que vai processar as ações de postdo formulário. Um dos métodos é
083_084_AJAX 26/02/2006 00:21 Page 84
TUTORIAL/DESENVOLVIMENTO
COLEÇÃO INFO > 85
TUTORIAL/DESENVOLVIMENTO
84 < COLEÇÃO INFO
o $xajax->registerFunction(),que permite agregar funções es-critas em PHP que realizarão ope-rações com dados do formuláriode forma assíncrona. Cada funçãodessas deve possuir um objeto daclasse xajaxResponse(), que con-terá os dados a atualizar.
7. TELA DE CADASTRONa tela de cadastro, o exemplo deuso do Ajax é composto dos menuscom os dados de estado e cidade.A lista de cidades é atualizada deacordo com o estado escolhido. Pa-ra selecionar as cidades, há a fun-ção carregaCidades. No arquivo ca-dastro.php, observe o código des-sa função. Após ler o valor selecio-nado no menu Estado, a função rea-liza uma consulta na tabela para se-lecionar as cidades corresponden-tes. Cada registro encontrado é adi-cionado ao objeto $objResponse,por meio do método addAssign. Nocódigo, temos esta linha: $objResponse->addAssig(“cidades”,“innerHTML”,$html)
O item “cidades” é a identificaçãoda divisão da página onde ficará omenu com as cidades, e “in-nerHTML” especifica que o conteú-do da variável $html vai substituiro código html dentro da divisão. Nofinal, é chamado o método getXML(),que retorna uma seção de códigoXML ao objeto xajax. Após imple-mentar a função, vamos incorporá-la ao xajax por meio do comando:
$xajax->registerFunction(“carregaCidades”)
8. XAJAXApós a definição das funções, quan-do começa a seção de código HTMLdo arquivo cadastro.php, é precisoespecificar que o xajax deve tomarpara si os comandos de post do for-mulário. Isso é feito pelo comando$xajax->processRequests() Em se-guida, devemos criar um evento quechamará a função que registramosno objeto xajax. Isso é feito na linha:<select id=“uf”name=“uf”onChange=“javascript:aguarde();xajax_carregaCidades(this.value);”style=“width: 50px;”>Cada vez que o campo Estado mu-dar, a função carregaCidades seráchamada e retornará a lista de cida-des em código XML. O xajax utiliza-rá a lista num JavaScript, que, por suavez, atualizará as cidades.
Um mecanismo similar é utilizadona página index.php, que contém omódulo de consulta. Abra-a num edi-tor de textos. A função listaUsuariosutiliza como parâmetro o texto dacaixa de busca. Ao ser chamada, elafaz a consulta no banco e adiciona osresultados à variável $html para quesejam exibidos na página. Ao clicarem Buscar, a função listaUsuarios pas-sa um novo parâmetro para a con-sulta. Ele é enviado para o servidorpelo xajax, que recebe a resposta emXML e usa, então, um programa emJavaScript para reescrever o códigoHTML, que mostra os resultados.
2. BASE DE DADOSPrepare a base de dadosdo aplicativo. O INFOLAButilizou o phpMyAdmin(www.info.abril.com.br/download/3260.shtml)nessa tarefa. Se esse soft-ware estiver instalado noservidor, digite o endere-ço correspondente parausá-lo, como neste exem-plo: http://www.nome.com.br/phpmyadmin.Na tela inicial, procureo campo Criar Novo Banco de Da-dos e digite xajax. Clique em Criar.
3. TABELASVamos gerar tabelas para a nossaaplicação. No phpMyAdmin, acioneo menu do lado esquerdo da tela eselecione o banco de dados xajax.Ative, então, a aba MySQL. No cam-po Localização do Arquivo Texto,clique em Procurar. Navegue até oarquivo bd.sql, na pasta infoajax, eselecione-o. Em Conjunto de Carac-teres do Arquivo, escolha latin1. Cli-que em Executar para rodar o pro-grama em SQL. Isso cria as tabelas.
4. CONFIGURAÇÕES Vamos editar o arquivo bd.inc.phpque fica na pasta includes. Abra-onum editor de textos e procure: $conexao = mysql_connect (“localhost”,“usuário”,“senha”);mysql_select_db(‘meubanco’,$conexao);
Substitua as palavras “usuário” e
phpMyAdmin: criação do banco de dados xajax
“senha” pelo nome de usuário e a se-nha que deverão ser usados paraacesso ao MySQL. Na linha de baixo,substitua “meubanco” por “xajax”.
5. O APLICATIVO Para ver o aplicativo-exemplo fun-cionando, abra o browser e digiteeste endereço: http://www.nome.com.br/infoajax. No lugar de“www.nome.com.br”, coloque o en-dereço do seu site. Clique em Ca-dastrar e inclua dados de uma pes-soa no banco. Depois, volte à pági-na anterior e faça uma consulta.
6. EXAMINADO O CÓDIGOAnalisaremos a seguir o arquivocadastro.php, que contém as roti-nas para a inclusão de registros.Abra o arquivo num editor de tex-tos e, logo no começo, observe alinha $xajax = new xajax();. Es-se comando define o objeto xajax,que vai processar as ações de postdo formulário. Um dos métodos é
083_084_AJAX 26/02/2006 00:21 Page 84
TUTORIAL/CONSULTAS
COLEÇÃO INFO > 87
PESQUISE BEMNO ACCESS
MONTE CONSULTAS COM DUAS TABELAS E ESCAPE DAS PEGADINHAS NA LÓGICA DOS DADOS
POR CARLOS MACHADO
TUTORIAL/CONSULTAS
86 < COLEÇÃO INFO
uem gosta de música eorganização costumanão resistir a um bancode dados. Em geral, uti-
liza o Access, que já está ali mesmono PC, no pacote Office. Vamos su-por que você tenha montado umatabela no Access reunindo todos osseus arquivos de música em MP3.Como também gosta de analisar asletras — e decorar para cantar nochuveiro —, criou uma tabela paraelas. Nem todas as músicas têm sualetra no banco, e você quer saberquais MP3 dispõem de letras.
A solução pode ser encontrada noAccess a um toque do mouse, semprogramação. Será preciso construiruma consulta simples, com o objetivode identificar, em duas tabelas, quaisregistros contêm as mesmas informa-ções em dois campos indicados: umem cada tabela. Essa solução pode seraplicada em muitas outras situações.
O problema pode ser representadopor um diagrama que mostra dois con-juntos de dados, um para cada tabe-la. O xis da questão é identificar a por-ção comum às duas tabelas — corres-
pondente, no desenho, à área em queos dois conjuntos se superpõem. Ago-ra que já caracterizamos o problema,vamos à solução, passo a passo.
1. A TABELA DE MP3Para acompanhar o exemplo, crieno Access uma tabela com os cam-pos Intérprete e Título, ambos do ti-po Texto. Salve-a com o nometabMP3. Essa tabela, claro, vai con-ter a lista das músicas.
Q
2. A TABELA DAS LETRASCrie outra tabela, com os camposIntérprete, Título e Letra. Este últi-mo deve ser do tipo Memorando,para abrigar a letra da música. Ocampo do tipo Texto tem capacida-de máxima para 255 caracteres. Aletra não caberia nele. Por sua vez,o campo de memorando suportaaté 65 536 caracteres. Dê à segun-da tabela o nome tabLetras. Tam-bém não haveria problema se ocampo Título, que é o ponto comumentre as tabelas, tivesse nome dife-rente nas duas. No entanto, para fa-cilitar a compreensão, é mais cô-modo usar o mesmo nome.
3. CRIE A CONSULTANa janela Banco de Dados, clique naorelha Consulta. Dê um duplo cliqueno comando Criar Consulta no ModoDesign para projetar um objeto des-se tipo a partir do zero. O Access abreduas janelas: Mostrar Tabela e Con-sulta1. Selecione (mouse mais a te-cla Ctrl) o nome das duas tabelas —tabMP3 e tabLetras — na primeira ja-nela e clique no botão Adicionar.
4. A LINHA NEGRADois quadros com os campos dastabelas aparecem na área superiorde Consulta1. Se as duas tabelas ti-verem chaves primárias chamadasCódigo (nome-padrão), o Access vaimostrar uma linha negra ligando es-ses dois campos. Clique nessa linhae acione a tecla Del para apagá-la.Isso porque o valor Código numa ta-
bela não tem nenhum parentescocom seu homônimo na outra.
5. O PULO-D0-GATOCom o mouse, clique no campo Tí-tulo de uma tabela e arraste-o parao campo de mesmo nome na outratabela. Uma linha passa a ligar osdois campos, indicando que a con-sulta deve procurar neles informa-ções iguais. Dica: o procedimentotambém funciona quando o nomedos dois campos não é o mesmo.
No quadro tabLetras, arraste pa-ra a linha Campo, embaixo, os cam-pos Título e Intérprete. Opcional-mente, indique que o campo Intér-prete seja apresentado em ordemalfabética. Para isso, na linha Clas-sificação, escolha Crescente.
Salve a consulta (com um nomeamigável, como cnsMP3comLetras1)e execute-a. Veja que ela exibe exa-
Consulta 1 (no alto) e seusresultados: a base é a tabLetras
Consulta 2: o resultado (embaixo) nãoé igual ao da consulta 1
086_CONSULTA_TAB_ACCESS 26/02/2006 00:22 Page 86
TUTORIAL/CONSULTAS
COLEÇÃO INFO > 87
PESQUISE BEMNO ACCESS
MONTE CONSULTAS COM DUAS TABELAS E ESCAPE DAS PEGADINHAS NA LÓGICA DOS DADOS
POR CARLOS MACHADO
TUTORIAL/CONSULTAS
86 < COLEÇÃO INFO
uem gosta de música eorganização costumanão resistir a um bancode dados. Em geral, uti-
liza o Access, que já está ali mesmono PC, no pacote Office. Vamos su-por que você tenha montado umatabela no Access reunindo todos osseus arquivos de música em MP3.Como também gosta de analisar asletras — e decorar para cantar nochuveiro —, criou uma tabela paraelas. Nem todas as músicas têm sualetra no banco, e você quer saberquais MP3 dispõem de letras.
A solução pode ser encontrada noAccess a um toque do mouse, semprogramação. Será preciso construiruma consulta simples, com o objetivode identificar, em duas tabelas, quaisregistros contêm as mesmas informa-ções em dois campos indicados: umem cada tabela. Essa solução pode seraplicada em muitas outras situações.
O problema pode ser representadopor um diagrama que mostra dois con-juntos de dados, um para cada tabe-la. O xis da questão é identificar a por-ção comum às duas tabelas — corres-
pondente, no desenho, à área em queos dois conjuntos se superpõem. Ago-ra que já caracterizamos o problema,vamos à solução, passo a passo.
1. A TABELA DE MP3Para acompanhar o exemplo, crieno Access uma tabela com os cam-pos Intérprete e Título, ambos do ti-po Texto. Salve-a com o nometabMP3. Essa tabela, claro, vai con-ter a lista das músicas.
Q
2. A TABELA DAS LETRASCrie outra tabela, com os camposIntérprete, Título e Letra. Este últi-mo deve ser do tipo Memorando,para abrigar a letra da música. Ocampo do tipo Texto tem capacida-de máxima para 255 caracteres. Aletra não caberia nele. Por sua vez,o campo de memorando suportaaté 65 536 caracteres. Dê à segun-da tabela o nome tabLetras. Tam-bém não haveria problema se ocampo Título, que é o ponto comumentre as tabelas, tivesse nome dife-rente nas duas. No entanto, para fa-cilitar a compreensão, é mais cô-modo usar o mesmo nome.
3. CRIE A CONSULTANa janela Banco de Dados, clique naorelha Consulta. Dê um duplo cliqueno comando Criar Consulta no ModoDesign para projetar um objeto des-se tipo a partir do zero. O Access abreduas janelas: Mostrar Tabela e Con-sulta1. Selecione (mouse mais a te-cla Ctrl) o nome das duas tabelas —tabMP3 e tabLetras — na primeira ja-nela e clique no botão Adicionar.
4. A LINHA NEGRADois quadros com os campos dastabelas aparecem na área superiorde Consulta1. Se as duas tabelas ti-verem chaves primárias chamadasCódigo (nome-padrão), o Access vaimostrar uma linha negra ligando es-ses dois campos. Clique nessa linhae acione a tecla Del para apagá-la.Isso porque o valor Código numa ta-
bela não tem nenhum parentescocom seu homônimo na outra.
5. O PULO-D0-GATOCom o mouse, clique no campo Tí-tulo de uma tabela e arraste-o parao campo de mesmo nome na outratabela. Uma linha passa a ligar osdois campos, indicando que a con-sulta deve procurar neles informa-ções iguais. Dica: o procedimentotambém funciona quando o nomedos dois campos não é o mesmo.
No quadro tabLetras, arraste pa-ra a linha Campo, embaixo, os cam-pos Título e Intérprete. Opcional-mente, indique que o campo Intér-prete seja apresentado em ordemalfabética. Para isso, na linha Clas-sificação, escolha Crescente.
Salve a consulta (com um nomeamigável, como cnsMP3comLetras1)e execute-a. Veja que ela exibe exa-
Consulta 1 (no alto) e seusresultados: a base é a tabLetras
Consulta 2: o resultado (embaixo) nãoé igual ao da consulta 1
086_CONSULTA_TAB_ACCESS 26/02/2006 00:22 Page 86
TUTORIAL/CONSULTAS
88 < COLEÇÃO INFO
tamente os títulos comuns às duas ta-belas. A solução descrita acima apa-rentemente resolve o problema apre-sentado no início deste tutorial.
6. TESTE A CONSULTAFaça, agora, uma experiência impor-tante. Inclua, na tabela MP3, umamúsica cujo título já existe em tabLe-tras, mas registre aí outro intérpre-te. Escolha, de propósito, uma can-ção que não faz parte do núcleo co-mum entre as duas tabelas. Execu-te novamente a consulta. O que ocor-re? A nova música não aparece. Is-so porque a consulta está sendo fei-ta com base na tabela tabLetras.
7. MESMO TÍTULOAgora, na janela Banco de Dados,selecione a consulta cnsMP3com-Letras1 e copie-a. Cole-a no mesmolugar, com o nome de cnsMP3com-Letras2. Selecione essa nova con-sulta e clique no botão Design. Najanela da consulta, linha Tabela, es-
colha, nos dois campos, tabMP3 emvez de tabLetras. Salve a consulta.Em outras palavras, estamos fazen-do a mesma consulta, só que ago-ra a outra tabela é nosso ponto departida. Execute essa consulta mo-dificada. O que ocorre? A músicaaparece, mas com outro intérpre-te. Para comparar, abra as duas.
Ao trabalhar com bancos de da-dos, é preciso pensar em coisas des-se tipo. A questão é que duas can-ções com o mesmo título e cantoresdiferentes podem ser a mesma mú-sica ou não. Assim, se você quisergarantir a identidade de título e in-térprete, precisa construir uma con-sulta ligeiramente diferente.
8. OS INTÉRPRETESExperimente mais. Copie a pri-meira consulta e cole-a comocnsMP3comLetras11. Abra-a em mo-do Design e arraste o campo Intér-prete de uma tabela para o mesmocampo na outra. Com isso, estamosdizendo que tanto o título como ointérprete devem coincidir nas duastabelas. Agora, copie a tabelacnsMP3comLetras2 e cole-a comocnsMP3comLetras22. Arraste o cam-po Intérprete da mesma forma.
9. BUSCA DUPLAExecute, lado a lado, as consultas11 e 22. Embora se baseiem em ta-belas diferentes, elas dão os mes-míssimos resultados. A diferençaestá na busca de dupla identidade:de título e de intérprete.
Consultas 11 e 22: bases diferentes,mas com resultados iguais
086_CONSULTA_TAB_ACCESS 26/02/2006 00:23 Page 88
O EXIF VAI PARA O BANCO
APRENDA A CRIAR UMA BASE DE DADOS DE FOTOS NO SQLSERVER EXPRESS COM INFORMAÇÕES DA CÂMERA
POR NIVALDO FORESTI
COLEÇÃO INFO > 89
TUTORIAL/CADASTRO DE FOTOS
ue tal criar um banco dedados de fotografiassem perder muito tem-po na digitação dos de-
talhes? A idéia é boa e factível, seusarmos as informações Exif (Exchan-geable Image File Format) que as câ-
meras fotográficas digitais, em suamaioria, gravam em cada imagemcapturada por seus sensores. Entreessas informações preciosas estão adata e a hora em que a foto foi tira-da, a abertura do obturador, o tem-po de exposição, o nome do fabri-
Q
Banco de fotos: para criar um banco, selecione General na janela New Database
089_CADASTROFOTO_EXIF 26/02/2006 00:24 Page 89
TUTORIAL/CADASTRO DE FOTOS
COLEÇÃO INFO > 91
TUTORIAL/CADASTRO DE FOTOS
90 < COLEÇÃO INFO
cante e o modelo da máquina, alémda resolução da imagem. Neste tu-torial, vamos criar uma base de da-dos de fotos com informações Exifno SQL Server 2005 Express, da Mi-crosoft. Nosso banco terá três tabe-las: clientes, fotógrafos e pictures.Vamos aos passos.
1. A BASE DE DADOSAbra a suíte SQL Server Manage-ment Studio Express. Na interfaceprincipal, clique com o botão direi-to do mouse em Databases e sele-cione Criar New Database.
Do lado esquerdo da janela NewDatabase que se abre, selecione aopção General. No campo chama-do database name, digite Fotos,que será o nome do nosso bancode dados. Clique OK.
O banco de dados Fotos está cria-do e se constitui de dois arquivos.Você pode verificar isso acionandoPrograms > Microsoft SQL Server >
MSQL >DATA. Lá estarãoos arquivos fotos.mdf efotos_log.ldf.
2. AS TABELASDe volta ao SQL ServerManagement Studio Ex-press, expanda o bancode dados Fotos, clicandono ícone +. Agora vamoscriar as três tabelas: fo-tografos, pictures e clien-
tes. Como definição, iremos dizerque um fotógrafo pode ter váriasfotos e que um cliente também po-de ter várias fotos.
Primeiro, criamos a tabela foto-grafos. Com o botão direito, cliqueem Tables e selecione NEW TABLE.Na janela Properties, digite o nomeda tabela, fotografos, no campo Ob-jectName.
Agora vamos criar os camposdessa tabela. Aparece uma lista comas opções na janela Table — dbo.ta-ble-1, o nome padrão de tabela cria-da pelo SQL Management, conten-do o nome da coluna (Column Na-me), tipo de dados (Data Type) eAllow Nulls?. O primeiro campo que vamos criaré o da chave primária dessa tabe-la. É de bom costume criar sempreuma chave primária para toda ta-bela. Nesse caso, ela será chamadaId_fotografo. Digite esse nome nocampo Column Name. A janela Column properties deveser alterada para as característicasdesejadas. Em primeiro lugar, va-
mos determinar qual tipo de dadoso campo irá suportar. Clique no cam-po Data Type e selecione int, poisesse campo será uma identificaçãodo fotógrafo e a chave primária des-sa tabela. Dê TAB até abrir a próxi-ma linha da janela Table — dbo.ta-ble-1, nome provisório da tabela.
3. MAIS CAMPOSVamos criar agora os campos Nomedo fotógrafo, Endereço, Cidade, Es-tado. Todos eles serão do tipo var-char, que consumirá somente o es-paço necessário no disco para a quan-tidade de caracteres armazenada.
Assim, um nome que contenha 10caracteres consumirá somente 10bytes no banco de dados. No caso docampo do tipo char, um campo comtamanho de 50 caracteres sempreocupará 50 bytes de espaço no dis-co rígido. Para cada um, defina nocampo lenght o tamanho que vo-cê deseja para ele.
O último campo será o de CEP. De-fina-o como um campo numérico detamanho 8 (o tamanho do cep noBrasil). Preencha as opçõesPrecision como 8 e scale0 na janela Properties.
Não queremos que fal-te informação nessa tabe-la. Assim, desmarque aopção Allow Nulls de to-dos os campos. O própriosistema de banco de da-dos não permitirá quecampos em branco sejamregistrados.
4. CHAVE PRIMÁRIAVamos agora definir a nossa chaveprimária. Clique com o botão direi-to sobre o campo desejado e sele-cione Set Primary Key. Vamos fazerisso com o campo Id_fotografo. Achave primária é identificada grafi-camente por uma pequena chave àfrente do nome do campo.
Salvamos nossa tabela, acionan-do File > Salvar Fotografos. Pronto,a primeira tabela está criada na ba-se de dados Fotos.
Faça o mesmo para a tabela Clien-tes. Ela terá os campos Id_cliente, no-me_cliente, endereço_cliente, cida-de_cliente, estado_cliente, CEP_clien-te como colunas. Como não quere-mos registros incompletos, todos elestambém não permitirão campos nãopreenchidos ou nulos.
Vamos fazer o ID_cliente comonossa chave primária dessa tabe-la. Salve a tabela Clientes clicandono ícone de fechar tabela. Uma ja-
Chave primária: pequena chaveidentifica o campo correspondente
Checagem: verifique os arquivosque formam o banco de dados
089_CADASTROFOTO_EXIF 26/02/2006 00:24 Page 90
TUTORIAL/CADASTRO DE FOTOS
COLEÇÃO INFO > 91
TUTORIAL/CADASTRO DE FOTOS
90 < COLEÇÃO INFO
cante e o modelo da máquina, alémda resolução da imagem. Neste tu-torial, vamos criar uma base de da-dos de fotos com informações Exifno SQL Server 2005 Express, da Mi-crosoft. Nosso banco terá três tabe-las: clientes, fotógrafos e pictures.Vamos aos passos.
1. A BASE DE DADOSAbra a suíte SQL Server Manage-ment Studio Express. Na interfaceprincipal, clique com o botão direi-to do mouse em Databases e sele-cione Criar New Database.
Do lado esquerdo da janela NewDatabase que se abre, selecione aopção General. No campo chama-do database name, digite Fotos,que será o nome do nosso bancode dados. Clique OK.
O banco de dados Fotos está cria-do e se constitui de dois arquivos.Você pode verificar isso acionandoPrograms > Microsoft SQL Server >
MSQL >DATA. Lá estarãoos arquivos fotos.mdf efotos_log.ldf.
2. AS TABELASDe volta ao SQL ServerManagement Studio Ex-press, expanda o bancode dados Fotos, clicandono ícone +. Agora vamoscriar as três tabelas: fo-tografos, pictures e clien-
tes. Como definição, iremos dizerque um fotógrafo pode ter váriasfotos e que um cliente também po-de ter várias fotos.
Primeiro, criamos a tabela foto-grafos. Com o botão direito, cliqueem Tables e selecione NEW TABLE.Na janela Properties, digite o nomeda tabela, fotografos, no campo Ob-jectName.
Agora vamos criar os camposdessa tabela. Aparece uma lista comas opções na janela Table — dbo.ta-ble-1, o nome padrão de tabela cria-da pelo SQL Management, conten-do o nome da coluna (Column Na-me), tipo de dados (Data Type) eAllow Nulls?. O primeiro campo que vamos criaré o da chave primária dessa tabe-la. É de bom costume criar sempreuma chave primária para toda ta-bela. Nesse caso, ela será chamadaId_fotografo. Digite esse nome nocampo Column Name. A janela Column properties deveser alterada para as característicasdesejadas. Em primeiro lugar, va-
mos determinar qual tipo de dadoso campo irá suportar. Clique no cam-po Data Type e selecione int, poisesse campo será uma identificaçãodo fotógrafo e a chave primária des-sa tabela. Dê TAB até abrir a próxi-ma linha da janela Table — dbo.ta-ble-1, nome provisório da tabela.
3. MAIS CAMPOSVamos criar agora os campos Nomedo fotógrafo, Endereço, Cidade, Es-tado. Todos eles serão do tipo var-char, que consumirá somente o es-paço necessário no disco para a quan-tidade de caracteres armazenada.
Assim, um nome que contenha 10caracteres consumirá somente 10bytes no banco de dados. No caso docampo do tipo char, um campo comtamanho de 50 caracteres sempreocupará 50 bytes de espaço no dis-co rígido. Para cada um, defina nocampo lenght o tamanho que vo-cê deseja para ele.
O último campo será o de CEP. De-fina-o como um campo numérico detamanho 8 (o tamanho do cep noBrasil). Preencha as opçõesPrecision como 8 e scale0 na janela Properties.
Não queremos que fal-te informação nessa tabe-la. Assim, desmarque aopção Allow Nulls de to-dos os campos. O própriosistema de banco de da-dos não permitirá quecampos em branco sejamregistrados.
4. CHAVE PRIMÁRIAVamos agora definir a nossa chaveprimária. Clique com o botão direi-to sobre o campo desejado e sele-cione Set Primary Key. Vamos fazerisso com o campo Id_fotografo. Achave primária é identificada grafi-camente por uma pequena chave àfrente do nome do campo.
Salvamos nossa tabela, acionan-do File > Salvar Fotografos. Pronto,a primeira tabela está criada na ba-se de dados Fotos.
Faça o mesmo para a tabela Clien-tes. Ela terá os campos Id_cliente, no-me_cliente, endereço_cliente, cida-de_cliente, estado_cliente, CEP_clien-te como colunas. Como não quere-mos registros incompletos, todos elestambém não permitirão campos nãopreenchidos ou nulos.
Vamos fazer o ID_cliente comonossa chave primária dessa tabe-la. Salve a tabela Clientes clicandono ícone de fechar tabela. Uma ja-
Chave primária: pequena chaveidentifica o campo correspondente
Checagem: verifique os arquivosque formam o banco de dados
089_CADASTROFOTO_EXIF 26/02/2006 00:24 Page 90
TUTORIAL/CADASTRO DE FOTOS
COLEÇÃO INFO > 93
TUTORIAL/CADASTRO DE FOTOS
92 < COLEÇÃO INFO
nela aparecerá perguntando se vo-cê deseja salvar as alterações ne-la. Clique YES.
5. TABELA DE FOTOSChegou a vez da tabela Pictures. Es-sa tabela terá informações Exif so-bre as fotos que você deseja guar-dar. O padrão Exif é bastante com-pleto, mas não queremos todas es-sas informações. Como ilustração,usaremos o fabricante da câmera,o seu modelo, a data e a hora da fo-to e a sua largura e altura. Definatodos os campos (exceto a chaveprimária) como varchar com o ta-manho desejado. Defina uma cha-ve primária chamada Id_Pictures.Nesse caso, devemos permitir nullsnos outros campos, pois você po-de não ter alguma das informações.Normalmente, todas as câmerastêm, mas se você desejar gravaruma foto avulsa será possível fazê-lo sem dispor de algumas delas.
6. RELACIONARA tabela não está comple-ta ainda. Você precisa re-lacioná-la aos fotógrafose aos clientes. Lembre-seque, em um banco de da-dos relacional, essa rela-ção é importante para des-cobrir as fotos que perten-cem a um fotógrafo ouque fotos são de quaisclientes. Primeiro, vamos
definir as chaves de pesquisa para osfotógrafos e clientes nessa tabela. Elasserão chamadas de id_fotografos eid_clientes, respectivamente. Crie co-mo campos do tipo int.
Agora, clique com o botão di-reito na janela de campos e esco-lha a opção indexes/Key. Cliqueno botão ADD. Selecione o índicecriado. Em Columns, escolha pri-meiro a coluna id_fotografos,abrindo a janela com a opção ".....".
Na coluna Identity (name) dê o no-me desse índice. Vamos chamá-lo deindice_fotografos. Você notará que exis-te uma coluna chamada is unique? Man-tenha a opção NO. Por quê? Bem, que-remos que esse valor se repita para ca-da foto que pertença a um fotógrafo.Caso selecionássemos a opção YES, obanco de dados evitaria que existisseregistro contendo valores duplicados.Crie outro índice igual para clientes quese chamará indice_clientes.
7. TABELA COM TABELAEstamos prontos para relacionar astabelas. Existem vários modos de se
fazer isso. Vamos pelo mais fácil evisual. No banco de dados Fotos, cli-que com o botão direito em Data-base Diagrams na janela da esquer-da. Clique em database diagrams. Osistema irá avisar que esse bancode dados não tem um ou mais ob-jetos necessários para utilizar o re-curso de diagramas. Clique em YES.
Selecione a opção New Databa-se Diagram. Uma janela chamadaAdd Tables será mostrada. Selecio-ne uma tabela e clique no botãoAdd. Faça isso com todas elas. Aofinal, clique em Close.
Uma representação gráfica das ta-belas e seus relacionamentos é mos-trada. Selecione a coluna de chave nocliente (ID_cliente) com o mouse e ar-raste até a coluna id_clientes. A jane-la Table and Columns será mostrada.
Isso fará com que o sistema gereuma relação entre a tabela clientesusando o campo id_clientes para atabela Pictures. Essa relação é de umpara muitos, ou seja, de um clientepara várias fotos. Sacou?Clique OK. Faça o mesmopara a tabela fotografos,usando a coluna id_foto-grafo, e para a tabela pic-tures usando a colunaId_fotógrafos. Os relacio-namentos estão feitos.
A identificação de ca-da uma dessas relaçõesé feita por uma linha queune os campos de índi-ces e cada lado contéma forma dessa relação,
um para um, um para muitos oumuitos para muitos. No nosso ca-so, você verá uma chave de um doslados da relação e um símbolo deinfinito do outro lado, o que signi-fica uma relação de um para mui-tos.
Quando você executar consultasque contenham as tabelas clientes epictures ou fotografos e pictures, asinformações relacionadas de ambasserão trazidas automaticamente. Porexemplo, ao pesquisar um fotógrafo,você encontrará todas as fotos queele produziu. Salve o diagrama, cli-cando em SALVAR ou fechando a ja-nela. Dê um nome para esse diagra-ma — no nosso caso, diagrama.
8. IMPORTANDO DADOSNeste ponto, já podemos utilizar es-sa base. Primeiro precisamos cadas-trar alguns dados nela. Usamos umprograma de extração de dados Exif
Índice: definindo a chave depesquisa para os fotógrafos
Relacionamento completo:clientes, fotógrafos e pictures
089_CADASTROFOTO_EXIF 26/02/2006 00:26 Page 92
TUTORIAL/CADASTRO DE FOTOS
COLEÇÃO INFO > 93
TUTORIAL/CADASTRO DE FOTOS
92 < COLEÇÃO INFO
nela aparecerá perguntando se vo-cê deseja salvar as alterações ne-la. Clique YES.
5. TABELA DE FOTOSChegou a vez da tabela Pictures. Es-sa tabela terá informações Exif so-bre as fotos que você deseja guar-dar. O padrão Exif é bastante com-pleto, mas não queremos todas es-sas informações. Como ilustração,usaremos o fabricante da câmera,o seu modelo, a data e a hora da fo-to e a sua largura e altura. Definatodos os campos (exceto a chaveprimária) como varchar com o ta-manho desejado. Defina uma cha-ve primária chamada Id_Pictures.Nesse caso, devemos permitir nullsnos outros campos, pois você po-de não ter alguma das informações.Normalmente, todas as câmerastêm, mas se você desejar gravaruma foto avulsa será possível fazê-lo sem dispor de algumas delas.
6. RELACIONARA tabela não está comple-ta ainda. Você precisa re-lacioná-la aos fotógrafose aos clientes. Lembre-seque, em um banco de da-dos relacional, essa rela-ção é importante para des-cobrir as fotos que perten-cem a um fotógrafo ouque fotos são de quaisclientes. Primeiro, vamos
definir as chaves de pesquisa para osfotógrafos e clientes nessa tabela. Elasserão chamadas de id_fotografos eid_clientes, respectivamente. Crie co-mo campos do tipo int.
Agora, clique com o botão di-reito na janela de campos e esco-lha a opção indexes/Key. Cliqueno botão ADD. Selecione o índicecriado. Em Columns, escolha pri-meiro a coluna id_fotografos,abrindo a janela com a opção ".....".
Na coluna Identity (name) dê o no-me desse índice. Vamos chamá-lo deindice_fotografos. Você notará que exis-te uma coluna chamada is unique? Man-tenha a opção NO. Por quê? Bem, que-remos que esse valor se repita para ca-da foto que pertença a um fotógrafo.Caso selecionássemos a opção YES, obanco de dados evitaria que existisseregistro contendo valores duplicados.Crie outro índice igual para clientes quese chamará indice_clientes.
7. TABELA COM TABELAEstamos prontos para relacionar astabelas. Existem vários modos de se
fazer isso. Vamos pelo mais fácil evisual. No banco de dados Fotos, cli-que com o botão direito em Data-base Diagrams na janela da esquer-da. Clique em database diagrams. Osistema irá avisar que esse bancode dados não tem um ou mais ob-jetos necessários para utilizar o re-curso de diagramas. Clique em YES.
Selecione a opção New Databa-se Diagram. Uma janela chamadaAdd Tables será mostrada. Selecio-ne uma tabela e clique no botãoAdd. Faça isso com todas elas. Aofinal, clique em Close.
Uma representação gráfica das ta-belas e seus relacionamentos é mos-trada. Selecione a coluna de chave nocliente (ID_cliente) com o mouse e ar-raste até a coluna id_clientes. A jane-la Table and Columns será mostrada.
Isso fará com que o sistema gereuma relação entre a tabela clientesusando o campo id_clientes para atabela Pictures. Essa relação é de umpara muitos, ou seja, de um clientepara várias fotos. Sacou?Clique OK. Faça o mesmopara a tabela fotografos,usando a coluna id_foto-grafo, e para a tabela pic-tures usando a colunaId_fotógrafos. Os relacio-namentos estão feitos.
A identificação de ca-da uma dessas relaçõesé feita por uma linha queune os campos de índi-ces e cada lado contéma forma dessa relação,
um para um, um para muitos oumuitos para muitos. No nosso ca-so, você verá uma chave de um doslados da relação e um símbolo deinfinito do outro lado, o que signi-fica uma relação de um para mui-tos.
Quando você executar consultasque contenham as tabelas clientes epictures ou fotografos e pictures, asinformações relacionadas de ambasserão trazidas automaticamente. Porexemplo, ao pesquisar um fotógrafo,você encontrará todas as fotos queele produziu. Salve o diagrama, cli-cando em SALVAR ou fechando a ja-nela. Dê um nome para esse diagra-ma — no nosso caso, diagrama.
8. IMPORTANDO DADOSNeste ponto, já podemos utilizar es-sa base. Primeiro precisamos cadas-trar alguns dados nela. Usamos umprograma de extração de dados Exif
Índice: definindo a chave depesquisa para os fotógrafos
Relacionamento completo:clientes, fotógrafos e pictures
089_CADASTROFOTO_EXIF 26/02/2006 00:26 Page 92
TUTORIAL/CADASTRO DE FOTOS
COLEÇÃO INFO > 95
TUTORIAL/CADASTRO DE FOTOS
94 < COLEÇÃO INFO
em lote para gerar as informaçõesdas fotos, o EasyExif (www.info.abril.com.br/download/4457.shtml), de Kevin Hu. O programa ge-ra arquivos CSV de cada imagem.
Abra o programa e selecione a op-ção Save Directory as CSV Text no me-nu Save Exif. Uma janela-padrão doWindows permitirá selecionar o dire-tório onde se encontram as imagens.
O sistema lerá as informaçõesde todas as fotos existentes e, pa-ra cada uma, gerará um arquivono formato CSV (separa-do por vírgulas), em umdiretório chamado Exif-data dentro da pasta desuas fotos. Junte todosos arquivos gerados emum único para importa-ção na base de dados.
Existem duas manei-ras de se fazer isso. A pri-meira é criar um progra-ma de importação, já
que o SQL Express nãotem esse tipo de utilitá-rio. A outra é conseguiralgum pacote que exe-cute essa função. O EMSData Import for SQLServer, da EMS Electro-nic Microsystems, per-mite importar dados doformato CSV para umbanco de dados SQLServer. Faça o downloadda versão de teste em
(www.info.abril.com.br/download/4458.shtml).
Esse utilitário tem um assisten-te que o leva passo a passo peloprocesso. O primeiro é a conexãocom a base de dados. Isso depen-de da instalação que foi feita noSQL Express. No nosso caso, esco-lhemos Remote, preenchemos onome da máquina e a autentica-ção configurada foi a do Windows.Clique no botão NEXT.
No próximo passo escolhemos oarquivo com os dados, clicando nobotão ADD FILE. Uma janela cha-mada Select Table é mostrada. Se-lecione o banco de dados Fotos, ea tabela dbo.pictures. Clique OK edepois em NEXT.
Agora mude o delimitador paravírgula no campo Delimiter. Na ja-nela Field, selecione o campo Ca-meraManufacture. Escolha na jane-la Columns a coluna que correspon-de a esse campo no banco de da-dos. No nosso caso, a co-luna 2. Faça o mesmo pa-ra os campos CameraMo-del, DateTime, Width eLenght com as colunas 4,16, 54 e 55 respectiva-mente. Clique em NEXT.
9. CAMPOSDE ÍNDICEVamos tratar da geraçãoautomática dos campos
de índice da tabela. Pri-meiro a chave primária(Id_pictures). Selecione-ano campo Field. No cam-po Generator Step na ja-nela Field Tunning digite1. Isso significa que paracada registro um novo ín-dice adicionado de umserá gerado. Como nos-sa base é virgem, ele co-meçará do 1, pois é a so-ma de Generator Value
que é 0 mais o Generator Step queé 1. Nas próximas vezes, você teráque descobrir qual é o próximo nú-mero a ser colocado em GeneratorValue para a importação acontecercom sucesso, pois a chave primárianão pode ser duplicada.
10. ID DO FOTÓGRAFOVamos gerar o valor de id_fotogra-fos. Temos dois registros e quere-mos que o primeiro seja do fotó-
Campos de índice: geraçãoautomática dos campos da tabela
Data Import: conecta-se ao banco eimporta as informações
EasyExif: gerando informações defotografias em arquivos CSV
Importação: escolha o arquivo comos dados clicando em ADD FILE
089_CADASTROFOTO_EXIF 26/02/2006 00:27 Page 94
TUTORIAL/CADASTRO DE FOTOS
COLEÇÃO INFO > 95
TUTORIAL/CADASTRO DE FOTOS
94 < COLEÇÃO INFO
em lote para gerar as informaçõesdas fotos, o EasyExif (www.info.abril.com.br/download/4457.shtml), de Kevin Hu. O programa ge-ra arquivos CSV de cada imagem.
Abra o programa e selecione a op-ção Save Directory as CSV Text no me-nu Save Exif. Uma janela-padrão doWindows permitirá selecionar o dire-tório onde se encontram as imagens.
O sistema lerá as informaçõesde todas as fotos existentes e, pa-ra cada uma, gerará um arquivono formato CSV (separa-do por vírgulas), em umdiretório chamado Exif-data dentro da pasta desuas fotos. Junte todosos arquivos gerados emum único para importa-ção na base de dados.
Existem duas manei-ras de se fazer isso. A pri-meira é criar um progra-ma de importação, já
que o SQL Express nãotem esse tipo de utilitá-rio. A outra é conseguiralgum pacote que exe-cute essa função. O EMSData Import for SQLServer, da EMS Electro-nic Microsystems, per-mite importar dados doformato CSV para umbanco de dados SQLServer. Faça o downloadda versão de teste em
(www.info.abril.com.br/download/4458.shtml).
Esse utilitário tem um assisten-te que o leva passo a passo peloprocesso. O primeiro é a conexãocom a base de dados. Isso depen-de da instalação que foi feita noSQL Express. No nosso caso, esco-lhemos Remote, preenchemos onome da máquina e a autentica-ção configurada foi a do Windows.Clique no botão NEXT.
No próximo passo escolhemos oarquivo com os dados, clicando nobotão ADD FILE. Uma janela cha-mada Select Table é mostrada. Se-lecione o banco de dados Fotos, ea tabela dbo.pictures. Clique OK edepois em NEXT.
Agora mude o delimitador paravírgula no campo Delimiter. Na ja-nela Field, selecione o campo Ca-meraManufacture. Escolha na jane-la Columns a coluna que correspon-de a esse campo no banco de da-dos. No nosso caso, a co-luna 2. Faça o mesmo pa-ra os campos CameraMo-del, DateTime, Width eLenght com as colunas 4,16, 54 e 55 respectiva-mente. Clique em NEXT.
9. CAMPOSDE ÍNDICEVamos tratar da geraçãoautomática dos campos
de índice da tabela. Pri-meiro a chave primária(Id_pictures). Selecione-ano campo Field. No cam-po Generator Step na ja-nela Field Tunning digite1. Isso significa que paracada registro um novo ín-dice adicionado de umserá gerado. Como nos-sa base é virgem, ele co-meçará do 1, pois é a so-ma de Generator Value
que é 0 mais o Generator Step queé 1. Nas próximas vezes, você teráque descobrir qual é o próximo nú-mero a ser colocado em GeneratorValue para a importação acontecercom sucesso, pois a chave primárianão pode ser duplicada.
10. ID DO FOTÓGRAFOVamos gerar o valor de id_fotogra-fos. Temos dois registros e quere-mos que o primeiro seja do fotó-
Campos de índice: geraçãoautomática dos campos da tabela
Data Import: conecta-se ao banco eimporta as informações
EasyExif: gerando informações defotografias em arquivos CSV
Importação: escolha o arquivo comos dados clicando em ADD FILE
089_CADASTROFOTO_EXIF 26/02/2006 00:27 Page 94
TUTORIAL/CADASTRO DE FOTOS
96 < COLEÇÃO INFO
Clique NEXT nospróximos passos atéo de número 10. Nes-se último, clique IM-PORT. Os dois regis-tros foram importa-dos para nosso ban-co de dados Fotos.
12. A PESQUISAVamos verificar se
nossas informações estão corretasfazendo uma consulta. Na janelaObject Explorer, clique com o bo-tão direito do mouse no banco Fo-tos e selecione a opção New Query.
Queremos primeiro descobrir to-dos as fotos do cliente 1. Clique como botão direito na janela de Query eselecione Query Designer. Adicioneas Tabelas Cliente e Pictures. Na co-luna Column_Name, selecione No-me_Cliente da lista. Nas demais, se-lecione DateTime, CameraModel eId_clientes. Em filter, na linha deid_clientes, digite 1. O próprio QueryDesigner gerou um comando SQL pa-ra ser executado. Clique no botão OK.
O comando SQL gerado está pron-to para execução. Clique com o bo-tão direito na janela Query nova-mente e escolha EXECUTE.
Eis o resultado de sua pesquisa,a data e hora de cada foto e o mo-delo da câmera utilizado e para qualcliente isso foi feito.
grafo que está cadastrado em nos-sa base com o índice 1 e o segundodo fotógrafo com índice 2.
Selecione id_fotografos na jane-la Fields e, em Fields Tunning, co-loque Generator Value 0 e Genera-tor Step 1. Isso fará com que o pri-meiro registro seja do fotógrafo comíndice de número 1 (campo com ovalor 1) e o segundo registro sejado fotógrafo 2 (campo com valor 2).
11. DADOS DO CLIENTEAgora vamos gerar as informaçõesde cliente. Queremos que todas asfotos pertençam ao mesmo clien-te, o que tem índice 1 em nossa ta-bela de clientes. Para tanto, sele-cione o campo id_clientes na jane-la Fields e digite o número 1 emConstant Values na janela FieldsTunning. Todos os registros terão ovalor 1 no campo de índice id_clien-tes pertencendo assim ao mesmocliente. Clique no botão NEXT.
Resultado: data e horade cada imagem
089_CADASTROFOTO_EXIF 26/02/2006 00:28 Page 96
E-MAIL FALSONÃO ENTRA
CONSTRUA UM CADASTRO DE ENDEREÇOS VÁLIDOS AUTOMATIZANDO O PEDIDO DE CONFIRMAÇÃO
POR HELIO SILVA
TUTORIAL/POSTGRESQL
COLEÇÃO INFO > 97
ada mais chato e inopor-tuno do que descobrir nasua caixa postal uma en-xurrada de newsletters
que você não assinou. Tudo porque al-guém cadastrou seu e-mail por brin-cadeira ou mesmo por maldade. Parao webmaster, essa situação também édesagradável porque recebe reclama-ções e é taxado de spammer. A saídapara o site é criar um cadastro de e-mails válidos, enviando ao candidato
a assinante da newsletter um pedidode confirmação na forma de um cliqueem um hyperlink. Quando esse hyper-link for acionado, o webmaster terácerteza de que quem solicitou a assi-natura é o dono do endereço. É issoque faremos no tutorial a seguir. Parasegui-lo, será necessário um servidorweb com PHP 4.x, banco de dados Post-greSQL 8.1.2 e um provedor de aces-so à internet que aceite conexões SMTPpara a transmissão de e-mails.
N
Tabela de e-mails: comando SQL cria a tabela de assinantes no PostgreSQL
097_CLASSIFICADOSWEB_POSTGRES 26/02/2006 00:29 Page 97
TUTORIAL/POSTGRESQL
98 < COLEÇÃO INFO
1. A TABELA DE E-MAILSO primeiro passo é criar a tabelacom os e-mails no PostgreSQL. Abrao pgAdmin, clique no botão SQL ecrie a tabela com o comando:CREATE TABLE tb_assinantes( email varchar(80) NOT NULL,ip_assinatura varchar(15),ip_confirmacao varchar(15),status varchar(10),data_assinatura timestamp,data_confirmacao timestamp,hash varchar(50))
2. O FORMULÁRIOAgora vamos criar o formulário pa-ra o usuário se cadastrar. Para isso,
você precisa primeiro fazer o down-load do arquivo newsletter.zip no en-dereço ftp://ftp.info.abril.com.br/newsletter.zip e descompactá-lo napasta que o servidor web comparti-lha com a rede. Ao descompactar, vo-cê terá os arquivos pega_email.php,grava_email.php e confirma_email.php.
O pega_email.php é basicamenteum arquivo HTML com um formulá-rio para que o usuário entre com seusdados. Esse formulário acionará nos-so script em PHP, que gravará os da-dos preliminarmente e enviará um e-mail para o provável novo assinante.No nosso exemplo, o arquivo pega_email.php recebe o endereço de e-mail e repassa ao script seguinte, ograva_email.php.
Formulário: HTML aciona script PHP que recebe o e-mail e repassa a outro script
097_CLASSIFICADOSWEB_POSTGRES 26/02/2006 00:38 Page 98
TUTORIAL/POSTGRESQL
COLEÇÃO INFO > 99
Por fim, o programa envia um e-mail com um hyperlink para o nos-so próximo script, o confirma_email.php, para que o assinante con-firme sua requisição.
Como essa resposta só será pos-sível porque a informação chegouao assinante através do endereçode e-mail digitado inicialmente, fi-ca claro que quem quer se inscre-ver é o detentor da conta.
4. ATIVANDO O ASSINANTEO confirma_email.php, acionado pe-lo clique do nosso futuro assinante,irá tomar as providências finais. Pri-meiro, ele altera o status do assinan-te de INATIVO para ATIVO. Note quetambém gravamos o número IP e adata de confirmação da assinatura.Em caso de haver reclamações, essasinformações também ajudarão a es-clarecer dúvidas.
Resultado: e-mails válidos identificados com endereço IP e status de confirmação
3. PEDIDO DE CONFIRMAÇÃONosso segundo script, o grava_email.php, salva o endereço de e-mail que está solicitando a assinatu-ra da newsletter e também grava adata e o número IP usado na cone-xão. Caso haja alguém fazendo o ca-dastramento indevido do usuário eeste queira descobrir quem foi, es-ses dados serão de grande valia.
É importante lembrar que nestafase do processo o status do assinan-te é gravado como INATIVO. Enquan-to permanecer assim, ele não deveser importunado por nenhum outrotipo de mensagem que não seja o pe-dido de confirmação da assinatura.
É gerado e gravado também umcódigo adicional (hash) para iden-tificar o usuário. Quando ele pedira confirmação, esse código impedi-rá que uma pessoa confirme a as-sinatura de outra.
097_CLASSIFICADOSWEB_POSTGRES 26/02/2006 00:31 Page 99
COLEÇÃO INFO > 101
TUTORIAL/ATIVO FIXO
O RAILS FAZMAIS RÁPIDO
ACELERE O DESENVOLVIMENTO, CRIANDO UM APLICATIVODE CONTROLE DE PATRIMÔNIO COM O RUBY ON RAILS
POR TONI CAVALHEIRO
TUTORIAL/ATIVO FIXO
100 < COLEÇÃO INFO
Ruby On Rails vem dan-do o que falar entre osdesenvolvedores para aweb. Programadores ex-
perientes dizem que essa ferramen-ta permite acelerar o desenvolvi-mento em até dez vezes em compa-ração com linguagens mais tradicio-nais. Mesmo que haja exagero nes-sa afirmação, basta trabalhar um
O
cativo simples de gerenciamento deativo fixo com banco de dadosSQLite 3. As instruções são para Win-dows XP. Mas os programas usadostêm também versões para Linux.
1. INSTALAÇÃO DO RUBYFaça o download do instalador doRuby on Rails no endereço www.info.abril.com.br/download/4357.shtml. Inicie a instalação e mante-nha os padrões sugeridos pelo pro-grama. Selecione todos os itens op-cionais. Mantenha também o dire-tório padrão, que é o C:\Ruby. Pa-ra testar o software, abra o Promptde Comando do Windows e digiteesse comando (tecle Enter depoisde cada comando):ruby –vDeve aparecer uma mensagem coma versão do Ruby.
como o MySQL. Baixe o SQLite 3 noendereço www.info.abril.com.br/download/4358.shtml. Depois dedescompactar o arquivo zip, vocêterá um programa executável e umaDLL. Como o SQLite não tem insta-lador, tudo o que você tem a fazeré copiar esses dois arquivos para odiretório Windows\System32.
3. RUBY ON RAILSAgora, vamos instalar o Rails e a bi-blioteca que faz o acesso ao SQLite3. O micro deve estar conectado àinternet para que o instalador façao download de componentes adi-cionais. No Prompt de Comando doWindows, digite:gem install railsO passo seguinte é instalar o supor-te ao SQLite 3. Digite:gem install sqlite3-ruby
4. AMBIENTE DA APLICAÇÃONa hora de criar uma aplicação, épreciso separar scripts, logs, confi-gurações e outros componentes nu-ma estrutura de diretórios. O Railsfaz isso de forma automática. NoPrompt de Comando, digite:rails c:\data\web\ativofixo\Abra o Explorer e navegue até apasta ativofixo que definimos. Vo-cê verá a estrutura de diretórioscriada pelo Rails. O diretório app éo local onde ficarão os arquivos doprograma. O script é a pasta quecontém os arquivos de apoio. Os di-retórios helpers e views servem,respectivamente, para armazenar
pouco com o Rails para perceberque operações corriqueiras em ban-cos de dados podem ser implemen-tadas com incrível rapidez. O Railsé uma biblioteca, baseada na lin-guagem Ruby, que permite a cria-ção de aplicações para a web asso-ciadas a bancos de dados. Para mos-trar como se desenvolve usando oRuby on Rails, vamos criar um apli-
Aplicativo pronto: sistema de Ativo Fixo disponível na intranet da empresa
Instalação: marque todos os opcionais
2. BANCO DE DADOSVamos prosseguir instalando o SQLite.Esse gerenciador de bancos com-pacto é útil para testes e desenvol-vimento. Para uso em produção, po-deria ser escolhido outro software,
100_RAILS 26/02/2006 00:39 Page 100
COLEÇÃO INFO > 101
TUTORIAL/ATIVO FIXO
O RAILS FAZMAIS RÁPIDO
ACELERE O DESENVOLVIMENTO, CRIANDO UM APLICATIVODE CONTROLE DE PATRIMÔNIO COM O RUBY ON RAILS
POR TONI CAVALHEIRO
TUTORIAL/ATIVO FIXO
100 < COLEÇÃO INFO
Ruby On Rails vem dan-do o que falar entre osdesenvolvedores para aweb. Programadores ex-
perientes dizem que essa ferramen-ta permite acelerar o desenvolvi-mento em até dez vezes em compa-ração com linguagens mais tradicio-nais. Mesmo que haja exagero nes-sa afirmação, basta trabalhar um
O
cativo simples de gerenciamento deativo fixo com banco de dadosSQLite 3. As instruções são para Win-dows XP. Mas os programas usadostêm também versões para Linux.
1. INSTALAÇÃO DO RUBYFaça o download do instalador doRuby on Rails no endereço www.info.abril.com.br/download/4357.shtml. Inicie a instalação e mante-nha os padrões sugeridos pelo pro-grama. Selecione todos os itens op-cionais. Mantenha também o dire-tório padrão, que é o C:\Ruby. Pa-ra testar o software, abra o Promptde Comando do Windows e digiteesse comando (tecle Enter depoisde cada comando):ruby –vDeve aparecer uma mensagem coma versão do Ruby.
como o MySQL. Baixe o SQLite 3 noendereço www.info.abril.com.br/download/4358.shtml. Depois dedescompactar o arquivo zip, vocêterá um programa executável e umaDLL. Como o SQLite não tem insta-lador, tudo o que você tem a fazeré copiar esses dois arquivos para odiretório Windows\System32.
3. RUBY ON RAILSAgora, vamos instalar o Rails e a bi-blioteca que faz o acesso ao SQLite3. O micro deve estar conectado àinternet para que o instalador façao download de componentes adi-cionais. No Prompt de Comando doWindows, digite:gem install railsO passo seguinte é instalar o supor-te ao SQLite 3. Digite:gem install sqlite3-ruby
4. AMBIENTE DA APLICAÇÃONa hora de criar uma aplicação, épreciso separar scripts, logs, confi-gurações e outros componentes nu-ma estrutura de diretórios. O Railsfaz isso de forma automática. NoPrompt de Comando, digite:rails c:\data\web\ativofixo\Abra o Explorer e navegue até apasta ativofixo que definimos. Vo-cê verá a estrutura de diretórioscriada pelo Rails. O diretório app éo local onde ficarão os arquivos doprograma. O script é a pasta quecontém os arquivos de apoio. Os di-retórios helpers e views servem,respectivamente, para armazenar
pouco com o Rails para perceberque operações corriqueiras em ban-cos de dados podem ser implemen-tadas com incrível rapidez. O Railsé uma biblioteca, baseada na lin-guagem Ruby, que permite a cria-ção de aplicações para a web asso-ciadas a bancos de dados. Para mos-trar como se desenvolve usando oRuby on Rails, vamos criar um apli-
Aplicativo pronto: sistema de Ativo Fixo disponível na intranet da empresa
Instalação: marque todos os opcionais
2. BANCO DE DADOSVamos prosseguir instalando o SQLite.Esse gerenciador de bancos com-pacto é útil para testes e desenvol-vimento. Para uso em produção, po-deria ser escolhido outro software,
100_RAILS 26/02/2006 00:39 Page 100
COLEÇÃO INFO > 103
TUTORIAL/ATIVO FIXOTUTORIAL/ATIVO FIXO
102 < COLEÇÃO INFO
funções auxiliares e layouts para osite. Folhas de estilos CSS ficam napasta public\stylesheets.
5. SERVIDOR WEBO Ruby on Rails inclui um minisser-vidor web que pode ser usado nodesenvolvimento. Para não confli-tar com outros servidores que vocêpossa ter na máquina (como Apa-che ou IIS), ele vem configurado pa-ra funcionar na porta 3000. NoPrompt de Comando, digite os se-guintes comandos para rodá-lo:cd c:\data\web\ativofixoruby script\serverAbra o browser e acesse o seguin-te endereço: http://localhost:3000Você deve ver uma página com o tí-tulo Welcome Aboard e informaçõessobre o Ruby on Rails.
6. ATIVO FIXONos passos anteriores, especifica-mos uma aplicação chamada AtivoFixo. É uma versão simples do sis-tema de controle patrimonial de umaempresa. Depois que ela estiverpronta, você pode adicionar outros
campos e recursos. Essa aplicaçãousa as quatro operações básicas deum banco de dados: consulta, edi-ção, inclusão e exclusão. A primei-ra coisa a fazer é criar o banco dedados no SQLite 3. No Prompt deComando do Windows, digite:sqlite3 db\ativodev.dbDepois que o prompt do SQLite 3aparecer, digite:CREATE TABLE afs (id INTEGERNOT NULL PRIMARY KEY,descricao VARCHAR(100) NOTNULL,valor_aquisicao INT NOT NULL,fornecedor VARCHAR(255) NULL,comprador VARCHAR(30) NULL,tempo_depreciacao INT NULL);
7. ACESSO AOS DADOSO próximo passo é configurar o Railspara acessar esse banco de dados.No diretório ativofixo, encontre apasta config e, dentro dela, o arqui-vo database.yml. Abra-o num editorde textos e modifique suas configu-rações para o seguinte:development:adapter:sqlite3dbfile: db\ativodev.dbtest:adapter:sqlite3dbfile: db\ativotest.dbproduction:adapter:sqlite3dbfile: db\ativoprod.db
Todo o restante do arquivo podeser apagado, já que não terá utilida-de em nosso tutorial. Na verdade, sóusaremos o ambiente development,
uma vez que os dois outros bancosnão foram criados ainda. Mas é bomdeixar o arquivo correto.
8. MODELO E CONTROLADORNo Ruby on Rails, cada tabela édescrita por um modelo. Vamoscriar um modelo chamado af (ini-ciais de Ativo Fixo) que refletirá atabela que acabamos de definir.No Prompt de Comando do Win-dows, digite:ruby script\generate model af
Em seguida, vamos criar um con-trolador para o modelo af. O con-trolador é o módulo básico dos apli-cativos do Rails. Este é o comando:ruby script\generate controller afs
Note que nosso modelo chama-se af, mas o controlador é chama-do afs. Isso ocorre porque o Rubyon Rails trabalha com a língua in-glesa, colocando as palavras no plu-ral. Se você criar um modelo Per-son, por exemplo, ele irá procurarpor uma tabela chamada People,plural de Person em inglês.
9. SCAFFOLDINGO último passo antes de colocar suaaplicação para funcionar é associarum recurso chamado scaffold aocontrolador. Ele adiciona funçõesde visualização, edição, inclusão eexclusão de dados. Localize o ar-quivo afs_controller.rd. Abra-o numeditor de textos e adicione o co-mando scaffold, assim:class AfsController <ApplicationController
scaffold :afendVamos reiniciar o servidor. Cliqueno Prompt de Comando para man-tê-lo em foco no Windows e tecleCtrl+C para parar o servidor. Em se-guida, reinicie-o com o comando:ruby script\server
Abra o navegador e vá a este en-dereço: http://localhost:3000Você verá uma aplicação com re-cursos de consulta, edição, exclu-são e inclusão. Note que usamosuma única linha de código (scaffold:af) para criá-la.
10. PERSONALIZAÇÃOVejamos como personalizar o layoutda aplicação. Esse processo é feitopor meio de dois arquivos rhtml, umde visualização (conhecido por view)e outro de layout. Além disso, é pre-ciso fazer algumas modificações nocontrolador principal para carregaros dados para uma variável tempo-rária. Vamos começar personalizan-do o controlador. Abra o arquivo afsnum editor de texto e modifique-opara que fique assim:
Arquivo list.rhtml: códigomodificado no editor de texto
Tela inicial: o Ruby instalado e pronto para usar
100_RAILS 26/02/2006 00:40 Page 102
COLEÇÃO INFO > 103
TUTORIAL/ATIVO FIXOTUTORIAL/ATIVO FIXO
102 < COLEÇÃO INFO
funções auxiliares e layouts para osite. Folhas de estilos CSS ficam napasta public\stylesheets.
5. SERVIDOR WEBO Ruby on Rails inclui um minisser-vidor web que pode ser usado nodesenvolvimento. Para não confli-tar com outros servidores que vocêpossa ter na máquina (como Apa-che ou IIS), ele vem configurado pa-ra funcionar na porta 3000. NoPrompt de Comando, digite os se-guintes comandos para rodá-lo:cd c:\data\web\ativofixoruby script\serverAbra o browser e acesse o seguin-te endereço: http://localhost:3000Você deve ver uma página com o tí-tulo Welcome Aboard e informaçõessobre o Ruby on Rails.
6. ATIVO FIXONos passos anteriores, especifica-mos uma aplicação chamada AtivoFixo. É uma versão simples do sis-tema de controle patrimonial de umaempresa. Depois que ela estiverpronta, você pode adicionar outros
campos e recursos. Essa aplicaçãousa as quatro operações básicas deum banco de dados: consulta, edi-ção, inclusão e exclusão. A primei-ra coisa a fazer é criar o banco dedados no SQLite 3. No Prompt deComando do Windows, digite:sqlite3 db\ativodev.dbDepois que o prompt do SQLite 3aparecer, digite:CREATE TABLE afs (id INTEGERNOT NULL PRIMARY KEY,descricao VARCHAR(100) NOTNULL,valor_aquisicao INT NOT NULL,fornecedor VARCHAR(255) NULL,comprador VARCHAR(30) NULL,tempo_depreciacao INT NULL);
7. ACESSO AOS DADOSO próximo passo é configurar o Railspara acessar esse banco de dados.No diretório ativofixo, encontre apasta config e, dentro dela, o arqui-vo database.yml. Abra-o num editorde textos e modifique suas configu-rações para o seguinte:development:adapter:sqlite3dbfile: db\ativodev.dbtest:adapter:sqlite3dbfile: db\ativotest.dbproduction:adapter:sqlite3dbfile: db\ativoprod.db
Todo o restante do arquivo podeser apagado, já que não terá utilida-de em nosso tutorial. Na verdade, sóusaremos o ambiente development,
uma vez que os dois outros bancosnão foram criados ainda. Mas é bomdeixar o arquivo correto.
8. MODELO E CONTROLADORNo Ruby on Rails, cada tabela édescrita por um modelo. Vamoscriar um modelo chamado af (ini-ciais de Ativo Fixo) que refletirá atabela que acabamos de definir.No Prompt de Comando do Win-dows, digite:ruby script\generate model af
Em seguida, vamos criar um con-trolador para o modelo af. O con-trolador é o módulo básico dos apli-cativos do Rails. Este é o comando:ruby script\generate controller afs
Note que nosso modelo chama-se af, mas o controlador é chama-do afs. Isso ocorre porque o Rubyon Rails trabalha com a língua in-glesa, colocando as palavras no plu-ral. Se você criar um modelo Per-son, por exemplo, ele irá procurarpor uma tabela chamada People,plural de Person em inglês.
9. SCAFFOLDINGO último passo antes de colocar suaaplicação para funcionar é associarum recurso chamado scaffold aocontrolador. Ele adiciona funçõesde visualização, edição, inclusão eexclusão de dados. Localize o ar-quivo afs_controller.rd. Abra-o numeditor de textos e adicione o co-mando scaffold, assim:class AfsController <ApplicationController
scaffold :afendVamos reiniciar o servidor. Cliqueno Prompt de Comando para man-tê-lo em foco no Windows e tecleCtrl+C para parar o servidor. Em se-guida, reinicie-o com o comando:ruby script\server
Abra o navegador e vá a este en-dereço: http://localhost:3000Você verá uma aplicação com re-cursos de consulta, edição, exclu-são e inclusão. Note que usamosuma única linha de código (scaffold:af) para criá-la.
10. PERSONALIZAÇÃOVejamos como personalizar o layoutda aplicação. Esse processo é feitopor meio de dois arquivos rhtml, umde visualização (conhecido por view)e outro de layout. Além disso, é pre-ciso fazer algumas modificações nocontrolador principal para carregaros dados para uma variável tempo-rária. Vamos começar personalizan-do o controlador. Abra o arquivo afsnum editor de texto e modifique-opara que fique assim:
Arquivo list.rhtml: códigomodificado no editor de texto
Tela inicial: o Ruby instalado e pronto para usar
100_RAILS 26/02/2006 00:40 Page 102
TUTORIAL/ATIVO FIXO
104 < COLEÇÃO INFO
class AfsController <ApplicationControllerscaffold :aflayout “default”def list@entries = Af.find_all nil,“descricao”endend
11. LAYOUTAgora, na pasta app\views\layouts,crie um arquivo de texto chamadodefault.rhtml. Esse arquivo deve tero seguinte conteúdo:<html><head><title>Ativo Fixo</title></head><body><h1>Lista de patrimônio</h1><%= @content_for_layout %></body></html>
12. VISUALIZAÇÃOVamos, agora, criar a visualização, ocódigo-fonte que irá controlar a exi-bição dos dados. É aqui que defini-mos a aparência do site. Vá para apasta \app\views\afs\ e crie um ar-
quivo chamado list.rhtml. Ele rece-be esse nome de acordo com a de-finição no controlador, logo depoisdo comando def. Confira o código:<table border=“1” cellpadding=“4” cellspacing="0” width =“90%”><tr><th>Descrição</th><th>Valor de aquisição</th><th>Tempo de depreciação</th><th colspan=“3”>Ações</th></tr><% @entries.each do |entry| %><tr><td><%= entry.descricao %></td><td><%= entry.valor_aquisicao%></td> <td><%= entry.tempo_depreciacao%></td><td><%= link_to “Exibir”, :action =>“show”, :id => entry.id %></td><td><%= link_to “Editar”, :action =>“edit”, :id => entry.id %></td><td><%= link_to “Excluir”, :action =>“destroy”, :id => entry.id %></td></tr><% end %></table<p><%= link_to “Novo”, :action =>“new” FF %></p>
Isso é tudo o que você precisa fazerpara adicionar uma exibição ao aplica-tivo. Ainda é possível incluir mais cam-pos e aplicar uma formatação mais ela-borada à página, da mesma forma co-mo fizemos na tela inicial deste tutorial.
Aplicativo no ar: ainda sem aformatação definitiva
100_RAILS 26/02/2006 00:41 Page 104
CONTROLE OSSEUS LIVROS
PROGRAMAS EM PHP DISCRIMINAM O STATUS DO TÍTULO,SE EMPRESTADO, DISPONÍVEL OU ENCOMENDADO
POR HELIO SILVA
TUTORIAL/FIREBIRD
COLEÇÃO INFO > 105
uantas vezes você em-prestou um livro e se es-queceu para quem? Equantas vezes o amigo
que tomou o livro emprestado selembrou de devolver? Nesses casosem que a memória não passa de umavaga lembrança, o jeito é montar umbanco de dados de sua biblioteca,com direito ao controle dos títulosemprestados. É o que faremos nes-te tutorial. Para acompanhá-lo, vo-cê vai precisar de servidor web comPHP 4.x, banco de dados Firebird1.5.3 (www.info.abril.com.br/download/2108.shtml) e o IBEx-pert (www.info.abril.com.br/download/4047.shtml) como ferramen-
ta de administração. Com apenas doisprogramas em PHP faremos a admi-nistração das informações.
1. O BANCOInstalados os programas necessários,abra o IBExpert e acione o menu Da-tabase > Create Database. Crie o ban-co de dados com o nome Biblioteca eclique no botão OK.
Será necessário registrar o bancono IBExpert. Assim, no campo data-base alias, digite o nome Biblioteca e,em seguida, acione no botão Register.(Clique no ícone do lado esquerdoda tela, onde aparece o nome denosso banco de dados Biblioteca.Com o botão direito do mouse, es-
colha a opção Conectto database.
2. A TABELAAgora que estamosconectados ao novobanco de dados, va-mos criar a tabela dosistema. Tecle F12 pa-
Q
Biblioteca: crie obanco de dados como IBExpert
105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 105
TUTORIAL/FIREBIRD
COLEÇÃO INFO > 107
TUTORIAL/FIREBIRD
106 < COLEÇÃO INFO
ra que se abra uma tela para a cria-ção de consultas SQL. Dentro da te-la de consulta, criaremos o banco dedados com o comando:CREATE TABLE TB_LIVROS (CODIGO INTEGER NOT NULL,TITULO VARCHAR(50) NOT NULL,STATUS VARCHAR(20) NOT NULL,ASSOCIADO VARCHAR(40)CHARACTER SET NONE COLLATENONE);
Logo depois, determinaremos queo código do livro será a chave pri-mária de acesso ao banco com o se-guinte comando:ALTER TABLE TB_LIVROS ADDCONSTRAINT PK_TB_LIVROSPRIMARY KEY (CODIGO);
3. O CÓDIGO DOS LIVROSAgora vamos aproveitar um dos re-cursos do Firebird e transportar pa-ra o banco a responsabilidade de criarsequencialmente o código dos livrosna medida em que forem inseridos.Ainda em nossa tela de consulta va-mos inserir o seguinte comando:CREATE TRIGGER AI_TB_LIVROS_ CODIGO FOR TB_
LIVROSACTIVE BEFOREINSERTPOSITION 0ASBEGINIF (NEW.CODIGO
IS NULL) THENNEW.CODIGO = GEN_ID(TB_LIVROS_CODIGO_GEN, 1);END
Este gatilho será acionado auto-maticamente a cada inclusão paragerar o código do livro.
4. SCRIPT EM PHPFaça o download do arquivo biblio-teca.zip no endereço ftp://ftp.info.abril.com.br/biblioteca.zip . Des-compacte-o na pasta onde opera oseu servidor web e terá os arquivosindex.php e processa.php.
Nosso primeiro programa, o in-dex.php, lista a quantidade de livrosdisponíveis e em que status se en-contram (Emprestado, Disponível ouEncomendado). O script faz tambémuma pesquisa no banco de dados emonta uma lista do tipo combo comtodos os livros disponíveis.
Por fim, apresenta uma série de cin-co botões para que você possa esco-lher entre listar os livros disponíveise seu status, Incluir e Excluir livros. Asoutras duas opções são de registrarempréstimos e/ou devoluções.
5. REQUISIÇÕES DO USUÁRIONosso segundo programa, o pro-cessa.php, é que fará o trabalho to-do. Ele é um pouco extenso, masnão é complexo.
Em princípio, o segundo progra-ma se caracteriza por uma árvorede decisão usando if e elseif, sen-do que cada ação solicitada pelousuário vai determinar um compor-tamento diferente.
A primeira providência do pro-grama para atender qualquer queseja a necessidade do usuário éabrir uma conexão com o banco dedados. Em seguida, ele registra quala operação o usuário solicitou, e,por conta disso, determina se eleterá que ser executado mais umavez ou se deve retornar ao in-dex.php. O programa toma essa de-cisão ao definir qual ação deve seracionada pelo formulário, se exe-cuta o index.php ou ele mesmo(processa.php) com um novo parâ-metro de operação.
A primeira ação do programa élistar. Essa açãomonta uma tabelacom todos os livrosdo banco ordenadospelo título.
Quando acionadopelo botão Incluir doindex.php, a açãodesse programa éabrir uma tela de for-
mulário para que seja digitado o no-me do novo livro do acervo e mon-tar um combo para que seja defini-do qual o seu status (Disponível, Em-prestado, Encomendado).
Quando o botão “Excluir” é aciona-do é há um livro selecionado no com-bo do index.php, o programa reageexcluindo aquele título selecionado.
Para a operação de empréstimo,o programa abre um formulário pe-dindo o nome do associado que es-tá emprestando o livro. Na seqüên-cia, faz a atualização das informa-ções trocando o status do livro pa-ra Emprestado e registrando o no-me do associado que retirou o livro.
A operação final é a devoluçãodo livro que, quando acionada, al-tera o status do livro para Disponí-vel e elimina o nome do associado.
É evidente que outras imple-mentações e validações são ne-cessárias, mas este exemplo já per-mite vislumbrar um pouco da efi-ciência do Firebird usado em com-binação com o PHP.
Gatilho: geradorautomático do códigode cada um dos livros
Resultado: controledos livros emprestadose dos disponíveis
105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 106
TUTORIAL/FIREBIRD
COLEÇÃO INFO > 107
TUTORIAL/FIREBIRD
106 < COLEÇÃO INFO
ra que se abra uma tela para a cria-ção de consultas SQL. Dentro da te-la de consulta, criaremos o banco dedados com o comando:CREATE TABLE TB_LIVROS (CODIGO INTEGER NOT NULL,TITULO VARCHAR(50) NOT NULL,STATUS VARCHAR(20) NOT NULL,ASSOCIADO VARCHAR(40)CHARACTER SET NONE COLLATENONE);
Logo depois, determinaremos queo código do livro será a chave pri-mária de acesso ao banco com o se-guinte comando:ALTER TABLE TB_LIVROS ADDCONSTRAINT PK_TB_LIVROSPRIMARY KEY (CODIGO);
3. O CÓDIGO DOS LIVROSAgora vamos aproveitar um dos re-cursos do Firebird e transportar pa-ra o banco a responsabilidade de criarsequencialmente o código dos livrosna medida em que forem inseridos.Ainda em nossa tela de consulta va-mos inserir o seguinte comando:CREATE TRIGGER AI_TB_LIVROS_ CODIGO FOR TB_
LIVROSACTIVE BEFOREINSERTPOSITION 0ASBEGINIF (NEW.CODIGO
IS NULL) THENNEW.CODIGO = GEN_ID(TB_LIVROS_CODIGO_GEN, 1);END
Este gatilho será acionado auto-maticamente a cada inclusão paragerar o código do livro.
4. SCRIPT EM PHPFaça o download do arquivo biblio-teca.zip no endereço ftp://ftp.info.abril.com.br/biblioteca.zip . Des-compacte-o na pasta onde opera oseu servidor web e terá os arquivosindex.php e processa.php.
Nosso primeiro programa, o in-dex.php, lista a quantidade de livrosdisponíveis e em que status se en-contram (Emprestado, Disponível ouEncomendado). O script faz tambémuma pesquisa no banco de dados emonta uma lista do tipo combo comtodos os livros disponíveis.
Por fim, apresenta uma série de cin-co botões para que você possa esco-lher entre listar os livros disponíveise seu status, Incluir e Excluir livros. Asoutras duas opções são de registrarempréstimos e/ou devoluções.
5. REQUISIÇÕES DO USUÁRIONosso segundo programa, o pro-cessa.php, é que fará o trabalho to-do. Ele é um pouco extenso, masnão é complexo.
Em princípio, o segundo progra-ma se caracteriza por uma árvorede decisão usando if e elseif, sen-do que cada ação solicitada pelousuário vai determinar um compor-tamento diferente.
A primeira providência do pro-grama para atender qualquer queseja a necessidade do usuário éabrir uma conexão com o banco dedados. Em seguida, ele registra quala operação o usuário solicitou, e,por conta disso, determina se eleterá que ser executado mais umavez ou se deve retornar ao in-dex.php. O programa toma essa de-cisão ao definir qual ação deve seracionada pelo formulário, se exe-cuta o index.php ou ele mesmo(processa.php) com um novo parâ-metro de operação.
A primeira ação do programa élistar. Essa açãomonta uma tabelacom todos os livrosdo banco ordenadospelo título.
Quando acionadopelo botão Incluir doindex.php, a açãodesse programa éabrir uma tela de for-
mulário para que seja digitado o no-me do novo livro do acervo e mon-tar um combo para que seja defini-do qual o seu status (Disponível, Em-prestado, Encomendado).
Quando o botão “Excluir” é aciona-do é há um livro selecionado no com-bo do index.php, o programa reageexcluindo aquele título selecionado.
Para a operação de empréstimo,o programa abre um formulário pe-dindo o nome do associado que es-tá emprestando o livro. Na seqüên-cia, faz a atualização das informa-ções trocando o status do livro pa-ra Emprestado e registrando o no-me do associado que retirou o livro.
A operação final é a devoluçãodo livro que, quando acionada, al-tera o status do livro para Disponí-vel e elimina o nome do associado.
É evidente que outras imple-mentações e validações são ne-cessárias, mas este exemplo já per-mite vislumbrar um pouco da efi-ciência do Firebird usado em com-binação com o PHP.
Gatilho: geradorautomático do códigode cada um dos livros
Resultado: controledos livros emprestadose dos disponíveis
105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 106
ESPECIALISTASEM DADOS
CONHEÇA AS CERTIFICAÇÕES IBM, ORACLE E MICROSOFT, AINDA AS MAIS VALORIZADAS
CERTIFICAÇÃO
108 < COLEÇÃO INFO
Laboratório na IBM: treinamento presencial certifica especialistas em DB2
© OMAR PAIXÃO
volume de dados gera-do pelas empresas cres-ce quase que descon-troladamente. Bom pa-
ra os profissionais especializadosem gerenciamento de bancos de da-dos. Quem contrata? As grandes cor-porações. Elas só confiam o que têmde mais estratégico a um profissio-nal certificado, especialmente paraa função de administrador (DBA).Quais os principais aspectos a con-siderar ao investir nesse tipo de for-
mação? Primeiro, a experiência pe-sa mais na hora da contratação. Se-gundo, nem sempre a certificaçãogarante um aumento de salário. Porisso, a escolha da solução em ban-co de dados na qual vai se certificartem de ser inteligente. Os especia-listas recomendam tentar descobrirqual a tecnologia adotada pela em-presa em que se quer trabalhar. Ascertificações mais valorizadas con-tinuam sendo as das líderes de mer-cado IBM, Oracle e Microsoft.
O
108_CERTIFIC_ABRE 26/02/2006 00:43 Page 108
TODO MUNDOQUER UM OCP
CONQUISTAR O MAIS IMPORTANTE TÍTULO DA ORACLE PODE RENDER BOAS PROPOSTAS DE EMPREGO
POR ANA LÚCIA MOURA FÉ
CERTIFICAÇÃO/ORACLE
COLEÇÃO INFO > 109
e acordo com levanta-mento do instituto depesquisas Gartner, aOracle detém a segun-
da posição no ranking de sistemasde gerenciamento de bancos de da-dos relacionais. Com 33% de parti-cipação (em receitas com vendas delicenças), a Oracle só perde espaçopara a IBM (36%) e deixa a Microsoft(19%) para trás. Esses números aju-dam a posicionar as certificações daempresa entre as mais importantesdo mercado. “São as mais procura-das”, diz Edson Aguilera, coordena-dor dos cursos de pós-graduação emInformática da Universidade SantoAmaro (Unisa), de São Paulo.
As empresas já não querem pro-fissionais com intimidade apenascom uma plataforma tecnológica.“De 2003 para cá, busca-se mais oespecialista que, além da implanta-ção, entende todo o funcionamentodo banco de dados, tornando-o sim-ples, seguro e alinhado com as es-tratégias da empresa”, diz Aguilera.
Para os indecisos quanto à mar-ca, a dica é relacionar as empresasou segmentos nos quais se quer tra-
balhar e ver qual tecnologia ado-tam. “Se não der, é melhor começarpela Oracle, porque o produto é ro-busto e tem uma estratégia de de-senvolvimento que conta bastantehoje em dia”, diz.
APOSTA CERTAFoi o que fez Valter José de Aquino,matemático de 42 anos, 20 de car-reira. Em 2003, correu atrás da cer-tificação em Oracle 8i. “Encomendeilivros estrangeiros e estudei sozi-nho”, diz. “Não passei a ganhar mais,mas mudei de emprego”. Aquino foifisgado pela consultoria Stefanini,concorrente do antigo empregador.Depois, passou a integrar a equipede DBAs que cuidam dos bancos dedados da gigante do alumínio Alcoa.
Outro que decidiu apostar todasas fichas na Oracle foi o potiguar Jo-sivan da Costa Santos, de 36 anos,DBA da prestadora de serviços e fá-brica de software CPM. A empresapagou pelos exames e Santos con-quistou os títulos nas versões 8i e9i. Com isso, ele passou a respon-der pela conta do Bradesco. “Mui-tos DBAs não merecem o título. Não
D
109_CERTIF_ORACLE 26/02/2006 00:44 Page 109
CERTIFICAÇÕES/ORACLE
110 < COLEÇÃO INFO
basta fazer o curso. É preciso en-tender o negócio da empresa”, diz.
O Brasil dispõe atualmente de 802profissionais certificados em ban-cos de dados Oracle. Levantamen-to feito pela empresa com seus par-ceiros indica que cerca de 7 milprofissionais são treinados anual-mente nessa tecnologia.
COMO CHEGAR LÁO roteiro de certificação em bancosde dados Oracle começa com a OCA(Oracle Certified Associates). O treina-mento para se tornar um OCA emOracle 9i custa 5 014,58 reais. Paraa versão 10g, mais recente, que aempresa tem interesse em pro-mover, o valor cai para 2 507,29 reais.
A vantagem do título OCA é po-der ser conquistado na metade dotempo do nível seguinte, que é oOracle Certified Professional (OCP).Oferecido a desenvolvedores eDBAs, o OCP é a carreira mais im-portante da Oracle. Há ainda umterceiro título, o Oracle CertifiedMaster (COM). “Destina-se a espe-cialistas e gurus em produtos Ora-cle”, diz Fernando Silva, diretor daOracle University.
Para ser um OCP, o profissionaldeve se submeter a quatro cursosao preço total de 5 mil reais (Ora-cle 10g) a 10 mil reais (9i). “Masquem já tem experiência pode dis-pensar essa etapa e ir direto paraos testes”, diz Bernadete Sabino,gerente de treinamento da ApplySolutions, um centro oficial de trei-
namento de Recife (PE). Ela ressal-ta um detalhe importante: quem fi-zer questão de receber o canudooficial em inglês, usar a logomarcaOracle e constar das listas oficiaisdas certificadoras, tem de freqüen-tar pelo menos um curso da grade.
A Oracle mantém nas principaiscapitais do país centros de treina-mento nos quais o aluno participados cursos presenciais. A fornece-dora também coloca à disposiçãodos treinandos um CD de auto-es-tudo com o mesmo conteúdo docurso presencial.
Os exames de certificação são rea-lizados pela Prometric e têm vali-dade internacional. Outra forma deadquirir a certificação é fazer facul-dade em instituições que mantêmconvênio com a Oracle.
PARA QUEM É
TREINAMENTO
NÚMERO DE EXAMES
CUSTO DO TREINAMENTOCOMPLETO (R$)
CUSTO DOS EXAMES(R$) (1)
Analistas de sistemas, gerentes e profissionais de TI que desejam iniciar ou incrementar a carreira comoadministrador de bancos de dados (DBA)
4 cursos de 30 horas cada
4 (2 para OCA e 2 paraOCP)
10 029,16 (9i)5 014,58 (10g)
996,03 (9i)535,50 (10g)
(1) Valor em dólar convertido pela taxa de 2,142 reais por dólar.
OCP ORACLE DBACERTIFIED PROFESSIONAL
109_CERTIF_ORACLE 26/02/2006 00:46 Page 110
DOMINE O DB2EM SEIS ETAPAS
ATÉ SE TORNAR ESPECIALISTA NO BANCO DE DADOS DAIBM, O PROFISSIONAL PASSA POR VÁRIAS PROVAS
POR ANA LÚCIA MOURA FÉ
CERTIFICAÇÃO/IBM
COLEÇÃO INFO > 111
rande estrela dos ban-cos de dados da IBM éo DB2 Universal Data-base. Sozinho, o produ-
to responde por 34% de tudo o queé vendido no mundo em termos delicenças para sistemas de gerencia-mento de bancos de dados relacio-nais. A fatia da IBM é a que maiscresce, segundo a consultoria Gart-ner. Luciano Dallolio, gerente técni-co de gerenciamento de informaçãoda IBM, diz que isso estimula a con-tratação de profissionais. “Empre-sas como a Microsiga conquistaramgrande número de contratos queenvolvem a compra de centenas delicenças para bancos de dados. Pa-ra tocar os projetos, elas bancam acertificação de um número conside-rável de profissionais”, diz Dallolio.
Para muita gente, ter ajuda da em-presa que contrata é o único jeitode conquistar uma certificação IBM.“Não faz sentido investir 3 mil, 4 milreais se não houver como recupe-rar o investimento ou praticar o quese aprendeu”, diz Dallolio.
O paulista Fábio Hasegawa, de 24anos, consultor da C&C Computa-
ção, parceira comercial da IBM, acu-mula 13 certificações, três delas dacarreira de DB2. “Algumas eu aca-bei pagando do meu próprio bolso”,diz. Hasegawa tem orgulho dessacoleção. “Cada uma equivale a umafaculdade de primeira linha.”
Formado em ciências da compu-tação pela Fiap, Hasegawa obteveapoio da C&C para comprar livros erealizar os testes. Atualmente, eleostenta o título de Certified Advan-ced Database Administrator, o nívelmais alto da carreira de DBA da IBM.O canudo o habilita, entre outrascoisas, a atuar na recuperação dedesastres e administração de am-biente VLDB (DataWarehouse-Mul-ti Partitioning). Para quem vai co-meçar, Hasegawa sugere estudar porconta. “Se tivesse feito os cursos re-comendados para as três certifica-ções IBM que tenho, teria gasto, porbaixo, cerca de 13 mil reais”, diz.
UMA CERTIFICAÇÃO, SEIS NÍVEISA certificação oferecida pela IBM aespecialistas de DB2 é composta porseis carreiras, conhecidas pelas nu-
G
111_CERTIF_IBM 03/03/2006 10:25 Page 111
CERTIFICAÇÃO/IBM
112 < COLEÇÃO INFO
merações dos seus respectivos exa-mes: 700, 701, 702, 703, 704 e 705.O avanço é progressivo. A carreira700 é pré-requisito para os demaisníveis, (menos a 705), e forma o Cer-tified Database Associate (CDA). Pa-ra ostentar esse título, o candidatodeve antes passar por dois cursos,a um custo médio de 1 300 reais ca-da, fora o teste (80 dólares).
Com a certificação 700 em mãos,o candidato escolhe se quer ser ad-ministrador ou desenvolvedor. Sea opção escolhida for a carreira deadministrador de bancos de dadosem plataformas Unix, Linux ou Win-dows, a certificação indicada é a701. Nesse caso, o candidato, alémde já ter o título CDA (700), tambémdeve freqüentar um curso de qua-tro dias sobre administração de ban-cos de dados Unix.
O custo total do treinamento in-dicado, já incluído o valor de exa-me, fica em torno de 2 630 reais. Seaprovado, o candidato pode exibirem seu cartão de visitas o título Cer-tified Database Administrator UDB.
A certificação 702 é destinada aquem quer dominar bancos de da-dos na plataforma mainframe, ain-da muito usada no setor bancário.É o nível mais caro da carreira. Pa-ra ser Certified Database Adminis-trator ZOS, é preciso fazer os qua-tro cursos (cinco dias cada), alémde um exame, e investir 11 mil reais.O nível seguinte, 703, é para quemquer ser desenvolvedor de aplica-ções para DB2. O título é Certified
Application Developer, e requer trêscursos (de sete dias) e um exame,cujo custo soma, aproximadamen-te, 5 620 reais. Nos cursos, ele apren-de sobre programação básica, avan-çada e em Java.
O profissional que conquista ascertificações 700 e 701 pode fazero teste 704. Para essa carreira, de-nominada Certified Advanced Da-tabase Administrator, a IBM tam-bém oferece cursos para recupe-ração de desastres e administra-ção de ambiente VLDB (DataWare-house-Multi Partitioning).
Por fim, o teste 705 é o passapor-te para quem quer atuar em Busi-ness Intelligence. O título é o Certi-fied Solution Designer DB2 BI, pe-lo qual o profissional paga 6 milreais. São 12 dias de curso. Um sua-ve alento: todos os treinamentos daIBM são complementados com tu-toriais gratuitos.
PARA QUEM É
TREINAMENTO:
NÚMERO DE EXAMES
CUSTO DO TREINAMENTOCOMPLETO (R$)
CUSTO DOS EXAMES (R$)
Analistas de sistemas,gerentes e profissional deTI que queiram iniciar ouincrementar carreiracomo administrador debancos de dados (DBA)
Depende da carreira
1 (cada carreira)
De 2 900 a 11 000(depende da carreira)
172 (cada exame)(1)
(1) Valor em dólar convertido pela taxa de 2,142 reais por dólar.
DB2 UDB CERTIFIEDDATABASE ADMINISTRATOR
111_CERTIF_IBM 26/02/2006 00:47 Page 112
CERTIFICAÇÃO/MICROSOFT
COLEÇÃO INFO > 113
MCDBA (Microsoft Cer-tified Database Admi-nistrator), certificaçãode bancos de dados da
Microsoft, chegou ao Brasil em1998, no auge da demanda por ad-ministradores qualificados. É umadas favoritas no programa de es-pecializações da Microsoft, que játitulou mais de 21 mil profissionaisde TI brasileiros.
“A oferta de vagas para essesprofissionais cresce porque mui-tas empresas que não dependiamde uma base de dados estrutura-dos agora migram para SQL Ser-ver, e precisam de pessoas que seencaixem no trinômio confiabili-dade, experiência e certificação”,diz Edson Aguilera, coordenadordos cursos de pós-graduação eminformática da Universidade San-to Amaro (Unisa), em São Paulo.Para quem já escolheu se espe-cializar em programas do mundoMicrosoft, Aguilera sugere iden-tificar segmentos que costumamadotar a tecnologia. “Na área deautopeças, por exemplo, prevale-ce a plataforma Microsoft.”
MAPA DA MINAEm tese, quem carrega um canu-do MCDBA está preparado paraprojetar, física e logicamente, ban-cos de dados SQL Server 7.0, querodam sistemas de datawarehouse,comércio eletrônico e aplicaçõesde computação móvel e corpora-tivas. “Para o profissional tentaruma certificação MCDBA, ele deveestar preparado com treinamen-tos presenciais, cursos online elivros”, diz Adriana Cantamessa,gerente de certificações da Micro-
A
CRAQUES EM SQL SERVER
VOCÊ VAI TER DE VENCER QUATRO PROVAS PARA SER ESPECIALISTA NO BANCO DE DADOS DA MICROSOFT
POR ANA LÚCIA MOURA FÉ
PARA QUEM É
TREINAMENTO
NÚMERO DE EXAMES
CUSTO DO TREINAMENTOCOMPLETO (R$)
CUSTO DOS EXAMES (R$)
Analistas de sistemas,gerentes e profissionais deTI que desejam iniciar ouincrementar carreira comoadministrador de bancosde dados (DBA)
De 160 horas a 240 horas(depende da carreira)
3 (1 para COM e 2 paraMCDBA)
5 000 (inclui MCP)
172 (cada exame)(1)
(1) Valor em dólar convertido pela taxa de 2,142 reais por dólar.
MCDBA MICROSOFTCERTIFIED DATABASE ADMINISTRATOR
113_CERTIF_MICROSOFT 26/02/2006 00:53 Page 113
CERTIFICAÇÕES/MICROSOFT
114 < COLEÇÃO INFO
soft. Os cursos presenciais para acertificação em SQL Server 2005estarão disponíveis a partir demarço de 2006.
Os candidatos ao MCDBA devemser aprovados em três exames obri-gatórios e um eletivo. A parte obri-gatória consiste de um teste sobreadministração de bancos de dados,um outro sobre projetos e um ter-ceiro teste a ser escolhido de umagrade sobre sistemas de rede (ve-ja no quadro nesta página).
OPÇÕES DO CANDIDATONos dois primeiros exames obri-
gatórios, o candidato pode optarpela especialização em SQL Ser-ver 7.0 ou SQL Server 2000 En-terprise Edition, dependendo daexperiência ou objetivo.
No terceiro exame obrigatório,que preenche o requisito de sis-temas de redes, o profissionaldeve escolher entre o Windows2000 e o Windows Server 2003.Um detalhe importante é que otítulo obtido em SQL Server 2000continua valendo mesmo se o seudetentor não fizer o teste para aversão 2003.
Para finalmente ter direito à cre-dencial de MCDBA, o profissionalprecisa realizar um quarto exame,desta vez eletivo. São 12 opçõesde testes, cada um com uma mé-dia de três cursos recomendados.Pelo menos a metade envolve de-senvolvimento e implementaçãode aplicações, de componentes de
servidor e de serviços baseadosnas tecnologias Visual Basic.Net,Visual Studio .Net, Visual C# .Nete .Net Framework. A outra meta-de abrange desde desenvolvimen-to e implementação de aplicaçõesdistribuídas com Visual Basic 6.0,C++ 6.0 e FoxPro 6.0 até imple-mentação de data warehouse comSQL Server 7.0.
CURSOS OFICIAISOs cursos da Microsoft podem
ser realizados em 35 centros detreinamento oficiais espalhadospela Brasil. Não são obrigatórios,mas reduzem riscos de reprova-ção. Para quem anda com o di-nheiro curto, a dica é acessar o si-te da Microsoft e fazer o down-load do kit de auto-estudo.
> administração de SQLServer 7.0
> instalação, configuração eadministração de SQL Ser-ver 2000 Enterprise Edi-tion
> projeto e implementaçãode banco de dados comSQL Server 7.0
> gerenciamento e manu-tenção de ambiente Mi-crosoft Windows Server
OPÇÕES DEEXAMES OBRIGATÓRIOS
113_CERTIF_MICROSOFT 26/02/2006 00:49 Page 114