Vous êtes sur la page 1sur 110

004_CONTEUDO1.

qxd 25/02/2006 20:53 Page 4

CONTEÚDO CONTEÚDO

BANCO DE DADOS
TUTORIAIS
62 > Tabelas sem mistério
71 > Relatório feito com views
75 > Crie pesquisas com
critérios
78 > O phpMyAdmin
doma o MySQL
83 > Atualização é com o Ajax
86 > Pesquise bem no Access
89 > O Exif vai para o banco
97 > E-mail falso não entra
08 Evolução: o banco vai do
mainframe ao cluster 31 Linguagens: SQL é a
língua oficial 100 > O Rails faz mais rápido 89 Tutorial: dados Exif das
fotos para o SQL Express

105 > Controle os seus livros

BANCO DE DADOS CERTIFICAÇÕES


08 > A aventura dos dados 108 > Especialistas em dados
15 > Sabe o que é tupla? 109 > Todo mundo
24 > Planeje bem quer um OCP
o seu banco 111 > Domine o DB2 em
31 > O banco fala SQLquês seis etapas
113 > Craques em SQL Server
TESTES
34 > Um SQL Server
fácil de usar
36 > Oracle em versão light
38 >DB2 grátis com 108 Certificação: laboratório
para especialistas

tudo dentro
42 > O MySQL ganha músculos
47 > Missão crítica é
para Postgre EQUIPE
50 > Firebird poupa EDIÇÃO Lucia Reggiani
EDITORA DE ARTE Iara Spina
a máquina CAPA Crystian Cruz (arte) e Cellus (ilustração)
54 > O Access entra COLABORADORES Carlos Chernij,
em reforma
57 > Administração é tudo 38 Teste: reviramos o DB2
Express-C, da IBM 42 Teste: o MySQL 5.0
vem reforçado
Fred Carbonare, Helio Silva, Nivaldo
Foresti (texto) e Rita Del Monaco (revisão)

4 < COLEÇÃO INFO COLEÇÃO INFO > 5


004_CONTEUDO1.qxd 25/02/2006 20:53 Page 4

CONTEÚDO CONTEÚDO

BANCO DE DADOS
TUTORIAIS
62 > Tabelas sem mistério
71 > Relatório feito com views
75 > Crie pesquisas com
critérios
78 > O phpMyAdmin
doma o MySQL
83 > Atualização é com o Ajax
86 > Pesquise bem no Access
89 > O Exif vai para o banco
97 > E-mail falso não entra
08 Evolução: o banco vai do
mainframe ao cluster 31 Linguagens: SQL é a
língua oficial 100 > O Rails faz mais rápido 89 Tutorial: dados Exif das
fotos para o SQL Express

105 > Controle os seus livros

BANCO DE DADOS CERTIFICAÇÕES


08 > A aventura dos dados 108 > Especialistas em dados
15 > Sabe o que é tupla? 109 > Todo mundo
24 > Planeje bem quer um OCP
o seu banco 111 > Domine o DB2 em
31 > O banco fala SQLquês seis etapas
113 > Craques em SQL Server
TESTES
34 > Um SQL Server
fácil de usar
36 > Oracle em versão light
38 >DB2 grátis com 108 Certificação: laboratório
para especialistas

tudo dentro
42 > O MySQL ganha músculos
47 > Missão crítica é
para Postgre EQUIPE
50 > Firebird poupa EDIÇÃO Lucia Reggiani
EDITORA DE ARTE Iara Spina
a máquina CAPA Crystian Cruz (arte) e Cellus (ilustração)
54 > O Access entra COLABORADORES Carlos Chernij,
em reforma
57 > Administração é tudo 38 Teste: reviramos o DB2
Express-C, da IBM 42 Teste: o MySQL 5.0
vem reforçado
Fred Carbonare, Helio Silva, Nivaldo
Foresti (texto) e Rita Del Monaco (revisão)

4 < COLEÇÃO INFO COLEÇÃO INFO > 5


BANCO DE DADOS_006.qxd 25/02/2006 21:02 Page 6

Fundador: VICTOR CIVITA


(1907-1990)
Editor: Roberto Civita
Conselho Editorial: Roberto Civita (Presidente), Thomaz Souto Corrêa (Vice-Presidente),
Jose Roberto Guzzo, Maurizio Mauro
Presidente Executivo: Maurizio Mauro
Diretor Secretário Editorial e de Relações Institucionais: Sidnei Basile
Vice-Presidente Comercial: Deborah Wright
Diretora de Publicidade Corporativa: Thais Chede Soares B. Barreto

Diretor-Geral: Jairo Mendes Leal


Diretor de Núcleo: Alexandre Caldini

Diretora de Redação: Sandra Carvalho


Redatora-chefe: Débora Fortes Diretor de Arte: Crystian Cruz
Editores Seniores: Carlos Machado, Lucia Reggiani e Maurício Grego
Editores: Airton Lopes, André Cardozo e Eric Costa
Repórter: Silvia Balieiro Estagiários: Danilo Gregório e Paulo de Alencar Revisora: Marta Magnani
Editor de Arte: Jefferson Barbato Designers: Catia Herreiro e Wagner Rodrigues
Colaborador: Dagomir Marquezi Infolab: Osmar Lazarini (consultor de sistemas)
Colaborador: Eduardo Kalnaitis Estagiários: Bruno Roberti, Celso Rodrigues e Valdir Fumene Junior
Info Online: Cristian Medeiros e Renata Verdasca (webmasteres)
Atendimento ao leitor: Virgílio Sousa
www.info.abril.com.br

Apoio Editorial: Beatriz de Cássia Mendes, Carlos Grassetti Serviços Editoriais: Wagner Barreira
Depto. de Documentação e Abril Press: Grace de Souza Correspodente Internacional: Ruth de Aquino

PUBLICIDADE CENTRALIZADA
Diretores: Mariane Ortiz, Sandra Sampaio, Sérgio R. Amaral
Executivos de Negócio: Eliane Pinho, Letícia Di Lallo, Maria Luiza Marot, Marcelo Cavalheiro, Marcelo Dória,
Nilo Bastos, Pedro Bonaldi, Robson Monte, Rodrigo Toledo, Sueli Cozza, Vlamir Aderaldo, Wlamir Lino
Publicidade Regional Diretor Jacques Baisi Ricardo Publicidade Rio de Janeiro: Diretor Paulo Renato Simões
Gerente de Publicidade núcleo Tecnologia: Marcos Peregrina Gomez Executivos de Negócio: Andréia Balsi,
Emiliano Hansenn, Marcello Almeida e Renata Mioli
MARKETING E CIRCULAÇÃO:
Gerente de Produto: Ricardo Fernandes, Coordenadora de eventos: Carol Fioresi, Estágiario de marketing: Maurício Simões Rodrigues
Gerente de Circulação Avulsas: Maria Helena Couto Gerente de Circulação Assinaturas: Euvaldo Nadir Lima Junior
Planejamento, Controle e Operações: Diretor: Auro Iasi Gerente: Fábio Luis dos Santos
Analista: Tales Bombicini Processos: Ricardo Carvalho
ASSINATURAS:
Diretora de Operações de Atendimento ao Consumidor: Ana Dávalos Diretor de Vendas: Fernando Costa
Publicidade São Paulo www.publiabril.com.br, Classificados tel.0800-7012066, Grande São Paulo tel. 3037-2700 ESCRITÓRIOS E REPRESENTANTES DE PUBLI-
CIDADE NO BRASIL: Central-SP tel. (11) 3037-6564 Bauru Gnottos Mídia Representações Comerciais, tel. (14) 3227-0378, e-mail: gnottos@gnottosmidia.com.br
Belém SRS Propaganda e Representações Ltda, tel (91) 3272-8195, e-mail: tania.alves@veloxmail.com.br Belo Horizonte tel. (31) 3282-0630, fax (31) 3282-0632
Blumenau M. Marchi Representações, tel. (47) 3329-3820, fax (47) 3329-6191 Brasí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: starmkt@uol.com.br Campinas CZ Press Com. e
Representações, telefax (19) 3233-7175, e-mail: czpress@czpress.com.br Campo Grande Josimar Promoções Artísticas Ltda. tel. (67) 3382-2139 e-mail: jairo_gal-
vao@hotmail.com Cuiabá Fênix Propaganda Ltda., tels. (65) 9235-7446/9602-3419, e-mail: lucianooliveir@uol.com.br Curitiba Escritório: tel. (41) 3250-
8000/8030/8040/8050/8080, fax (41) 3252-7110; Representante: Via Mídia Projetos Editoriais Mkt. e Repres. Ltda., telefax (41) 3234-1224, e-mail: viamidia@viamidi-
apr.com.br Florianópolis Interação Publicidade Ltda. tel. (48) 3232-1617, fax (48) 3232-1782, e-mail: fgorgonio@interacaoabril.com.br Fortaleza Midiasolution Repres.
e Negoc. em Meios de Comunicação, telefax (85) 3264-3939, e-mail: midiasolution@midiasolution.net Goiânia Middle West Representações Ltda., tels.(62) 3215-5158,
fax (62) 3215-9007, e-mail: publicidade@middlewest.com.br Joinville Via Mídia Projetos Editoriais Mkt. e Repres. Ltda., telefax (47) 3433-2725, e-mail: viamidiajoinvil-
lle@viamidiapr.com.br Manaus Paper Comunicações, telefax (92) 3656-7588, e-mail: paper@internext.com.br Maringá Atitude de Comunicação e Representação, tele-
fax (44) 3028-6969, e-mail: m.atitude@uol.com.br Porto Alegre Escritório: tel. (51) 3327-2850, fax (51) 3227-2855; Representante: Print Sul Veículos de Comunicação
Ltda., telefax (51) 3328-1344/3823/4954, e-mail: ricardo@printsul.com.br ; Multimeios Representações Comerciais, tel.(51) 3328-1271, e-mail: multimeiosrepco@uol.com.br
Recife MultiRevistas Publicidade Ltda., telefax (81) 3327-1597, e-mail: multirevistas@uol.com.br Ribeirão Preto tel. (16) 3964-5516, fax (16) 632-0660, e-mail: achrisos-
tomo@abril.com.br Rio de Janeiro pabx: (21) 2546-8282, fax (21) 2546-8253 Salvador AGMN Consultoria Public. e Representação, tel.(71) 3341-4992/1765/9824/9827,
fax: (71) 3341-4996, e-mail: abrilagm@uol.com.br Vitória ZMR - Zambra Marketing Representações, tel. (27) 3315-6952, e-mail: samuelzambrano@intervip.com.br
Publicações da Editora Abril: Veja: Veja, Veja São Paulo, Veja Rio, Vejas Regionais Negócios: Exame, Você S/A A Consumo/Comportamento: Núcleo
Consumo: Boa Forma, Elle, Estilo, Manequim Núcleo Comportamento: Claudia, Nova Núcleo Bem-Estar: : Bons Fluidos, Saúde!, Vida Simples
Turismo/Tecnologia: Núcleo Turismo: Guias Quatro Rodas, National Geographic, Viagem e Turismo Núcleo Homem: : Placar, Playboy, Quatro Rodas, Vip
Núcleo Tecnologia: Info, Info Canal, Info Corporate Cultura/Jovem: Núcleo Jovem: Bizz, Capricho, Flashback, Mundo Estranho, Superinteressante, Supersurf
Núcleo Infantil: Atividades, Disney, Recreio Núcleo Cultura: : Almanaque Abril, Guia do Estudante, Aventuras na História, Revista das Religiões
Casa/Semanais: Núcleo Casa e Construção: Arquitetura e Construção, Casa Claudia, Claudia Cozinha Núcleo Celebridades: Contigo! Núcleo
Semanais: Ana Maria, Faça e Venda, Minha Novela, Tititi, Viva! Mais Fundação Victor Civita: Nova Escola
INTERNATIONAL ADVERTISING SALES REPRESENTATIVES Coordinator for International Advertising: Global Advertising, Inc., 218 Olive Hill Lane, Woodside,
California 94062. UNITED STATES: CMP Worldwide Media Networks, 2800 Campus Drive, San Mateo, California 94403, tel. (650) 513 4200, fax (650) 513 4482. EUROPE:
HZI International,Africa House, 64-78 Kingsway, London WC2B 6AH, tel. (20) 7242-6346, fax (20) 7404-4376. JAPAN: IMI Corporation, Matsuoka Bldg. 303, 18-25, Naka
1- chome, Kunitachi, Tokyo 186-0004, tel. (03) 3225-6866, fax (03) 3225-6877. TAIWAN: Lewis Int’l Media Services Co. Ltd., Floor 11-14 no 46, Sec 2, Tun Hua South
Road, Taipei, tel. (02) 707-5519, fax (02) 709-8348
COLEÇÃO BANCO DE DADOS, edição 27, é uma publicação da Editora Abril S.A. Distribuída em todo o país pela Dinap S.A.
Distribuidora Nacional de Publicações, São Paulo.

IMPRESSA NA DIVISÃO GRÁFICA DA EDITORA ABRIL S.A.


Av. Otaviano Alves de Lima, 4400, CEP 02909-900 - Freguesia do Ó - São Paulo - SP

Presidente do Conselho de Administração: Roberto Civita


Presidente Executivo: Maurizio Mauro
Vice-Presidentes: Deborah Wright, Eliane Lustosa, Marcio Ogliara, Valter Pasquini
www.abril.com.br
BANCO_005i.qxd 25/02/2006 21:30 Page 7

RECADO DA REDAÇÃO

DÁ-LHE
INFORMAÇÃO!
universo do software é sível. Testamos as novíssimas ver-

O grande e abriga mundos


muito peculiares, como
o dos bancos de dados.
De obscuros repositórios dos main-
sões gratuitas dos poderosos Oracle,
DB2 e SQL Server 2005, dos livres
MySQL, PostgreSQL e Firebird e do
beta repaginado do Access 12. Entre-
frames, esses programas passaram gamos o jeito profissional de mon-
a estrelas de todo porte, organizan- tar tabelas e consultas, os segredos
do a explosão de informações gera- das interfaces de administração e
das pela vida digital de pessoas e uma porção de tutoriais com os
empresas. Neles, tabelas são mais variados bancos. Você vai saber
que colunas e linhas, os dados se como extrair as informações Exif das
agrupam em entidades e se relacio- fotos digitais para o banco, criar rela-
nam abertamente, transacionam, tórios com views, controlar os livros
disparam gatilhos e administram res- emprestados, cadastrar e-mails váli-
trições. Nesse mundinho, o e/AND dos e muito mais. E se a animação
não soma, diminui. E quem não sabe chegar ao ponto de devotar a carrei-
dessa e outras pegadinhas lógicas, ra à administração dos bancos de
perde tempo fazendo besteira. É dados, estão aqui
aqui que se encaixa este especial. os caminhos para
Aos novatos, contamos a história as especializações
gloriosa dos bancos de dados e des- mais valorizadas
trinchamos seus conceitos. De ban- da área. Aproveite.
deja, vai um roteiro para escolher o
sistema gerenciador, planejar e exe- LUCIA REGGIANI
EDITORA DE BANCO
cutar o banco da melhor forma pos- DE DADOS

INFO COLEÇÃO
Uma publicação mensal da Editora Abril
Para contatar a redação:
atleitorinfo@abril.com.br
Para assinar a Coleção:
(11) 3347.2121 — Grande São Paulo
0800-701-2828 — Demais localidades
abril.assinaturas@abril.com.br

COLEÇÃO INFO > 7


08_14_BANCO_HISTORIA1 25/02/2006 21:11 Page 8

HISTÓRIA HISTÓRIA

delos de bancos de dados foram de-


senvolvidos: o de rede (Codasyl) e
o hierárquico (IMS). O acesso à ba-
se de dados era complicadíssimo, e
os 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 qualquer
modificação, um usuário precisaria
conhecer a estrutura física da base
de dados. Sistemas comerciais bem-
sucedidos, como o Sabre, da IBM e
da American Airlines, utilizaram por
muitos anos esse tipo de modelo.

O MODELO DE CODD
No início dos anos 70, as coisas co-
meçam a mudar. O pesquisador da
IBM Edgar Frank Codd (1923-2003)
propõe o modelo relacional para a

A AVENTURA
terfaces gráficas e assistentes. Mas, base de dados. Mais do que isso, ele
no princípio, lidar com bases de da- introduz uma nova maneira de pen-
dos era coisa cabeluda, encarada sar a informação digital a ser gra-

DOS DADOS
por mainframes. vada, recuperada e gerenciada, es-
A história dos modernos bancos tabelecendo um jeito mais compu-
de dados começa na década de 60, tacional de tratar o relacionamen-
DO MAINFRAME À INTERNET, OS BANCOS quando os computadores amplia- to entre os dados. Esse sistema vi-
DE DADOS TÊM MUITO PARA CONTAR ram a capacidade de armazenamen- rou padrão e é usado até hoje.
POR TAGIL OLIVEIRA RAMOS to e se transformaram em possibi- O modelo abstrato de Codd é a pri-
lidade real para as empresas. Não meira abordagem completa para
rmazenar informações cos de dados parece simples, trivial. havia ainda o conceito elaborado uma base de dados, o resgate das

A organizadas e recupe-
rá-las sem faltar peda-
ço sempre que neces-
Não deixa de ser verdade para as
tecnologias atuais, que disfarçam a
complexidade do processamento e
de banco de dados — o armazena-
mento de informação digital basea-
va-se em modelos de organização
informações, manipulação, integri-
dade lógica, visualização, atualiza-
ção e gerenciamento. Foi concebi-
sário. Dita assim, a missão dos ban- do gerenciamento de dados com in- do mundo físico. No início, dois mo- do para armazenar registros de da-

8 < COLEÇÃO INFO © ILUSTRAÇÃO PEPE CASALS COLEÇÃO INFO > 9


08_14_BANCO_HISTORIA1 25/02/2006 21:11 Page 8

HISTÓRIA HISTÓRIA

delos de bancos de dados foram de-


senvolvidos: o de rede (Codasyl) e
o hierárquico (IMS). O acesso à ba-
se de dados era complicadíssimo, e
os 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 qualquer
modificação, um usuário precisaria
conhecer a estrutura física da base
de dados. Sistemas comerciais bem-
sucedidos, como o Sabre, da IBM e
da American Airlines, utilizaram por
muitos anos esse tipo de modelo.

O MODELO DE CODD
No início dos anos 70, as coisas co-
meçam a mudar. O pesquisador da
IBM Edgar Frank Codd (1923-2003)
propõe o modelo relacional para a

A AVENTURA
terfaces gráficas e assistentes. Mas, base de dados. Mais do que isso, ele
no princípio, lidar com bases de da- introduz uma nova maneira de pen-
dos era coisa cabeluda, encarada sar a informação digital a ser gra-

DOS DADOS
por mainframes. vada, recuperada e gerenciada, es-
A história dos modernos bancos tabelecendo um jeito mais compu-
de dados começa na década de 60, tacional de tratar o relacionamen-
DO MAINFRAME À INTERNET, OS BANCOS quando os computadores amplia- to entre os dados. Esse sistema vi-
DE DADOS TÊM MUITO PARA CONTAR ram a capacidade de armazenamen- rou padrão e é usado até hoje.
POR TAGIL OLIVEIRA RAMOS to e se transformaram em possibi- O modelo abstrato de Codd é a pri-
lidade real para as empresas. Não meira abordagem completa para
rmazenar informações cos de dados parece simples, trivial. havia ainda o conceito elaborado uma base de dados, o resgate das

A organizadas e recupe-
rá-las sem faltar peda-
ço sempre que neces-
Não deixa de ser verdade para as
tecnologias atuais, que disfarçam a
complexidade do processamento e
de banco de dados — o armazena-
mento de informação digital basea-
va-se em modelos de organização
informações, manipulação, integri-
dade lógica, visualização, atualiza-
ção e gerenciamento. Foi concebi-
sário. Dita assim, a missão dos ban- do gerenciamento de dados com in- do mundo físico. No início, dois mo- do para armazenar registros de da-

8 < COLEÇÃO INFO © ILUSTRAÇÃO PEPE CASALS COLEÇÃO INFO > 9


08_14_BANCO_HISTORIA1 25/02/2006 21:15 Page 10

HISTÓRIA HISTÓRIA

dos com estruturas relati- Esse tipo de sistema usa deira. A primeira de-
vamente simples e proces- QUEL como linguagem de las, conhecida como
sar transações simples. pesquisa das bases de da- “Lei da Informação”,
A idéia começou a ser dos. O segundo protótipo, dizia simplesmente
desenvolvida por Codd du- conhecido como System que todo dado deve
rante seu doutorado na R, foi desenvolvido pela ser apresentado ao
Universidade de Michigan. IBM em San Jose, Califór- usuário na forma de
Em sua tese, ele apresen- nia, e levou ao SQL/DS & tabela. A segunda, ou
tava uma espécie de “au- DB2, da própria empresa, “Regra do Acesso Ga-
to-reprodução” feita em Edgar Codd: pai do seguido por Oracle e HP. rantido”, exige que
modelo relacional dBase III: padrão de banco de dados para PCs nos anos 80
programas de computa- Nesse sistema, é utiliza- todo dado seja aces-
dores. O trabalho foi publicado em da a SEQUEL como linguagem de sível sem ambigüidade e aconselha SURGE O DBASE
1967 no livro Cellular Automata, pu- pesquisa de dados. Originalmente, que cada informação seja descrita A evolução natural dos bancos de
blicado pela Academic Press. A idéia as aplicações foram desenvolvidas por uma combinação de nome da dados passaria pelo estabelecimen-
era tão avançada que levou uma dé- para os enormes mainframes. tabela, chave primária e o nome do to de um padrão não-teórico: o dBa-
cada para ser digerida. campo. E assim por diante. se, ao ser lançado no final dos anos
Pelo menos dois protótipos prin- AS DOZE REGRAS O mesmo Codd cunharia o nome 70, tornou-se uma referência. Sua
cipais de sistemas relacionais foram O termo “relação” era usado por OLAP (On-Line Analytical Proces- origem encontra-se em meados dos
desenvolvidos entre 1974 e 1977, Codd de maneira estritamente ma- sing) para descrever uma ampla ca- anos 60. Seu antecessor era um sis-
mostrando aplicações práticas do temática, dentro de uma tabela com tegoria de produtos de software que tema chamado Retrieve, vendido pe-
que só existia na teoria. linhas e colunas que trabalhavam tinham as características de acesso la Tymshare Corporation. Naquela
Um dos protótipos era o Ingres, com propriedades especiais. Embo- aos dados propostas por ele. As 12 época, os computadores só eram
desenvolvido na Universidade ra isso pareça óbvio atualmente, não Regras de seu padrão foram adota- encontrados em grandes gabinetes,
Berkeley, que seria seguido pela In- era nada elementar nos anos 70. das pela indústria de TI, forçando no ambiente do trabalho.
gres Corporation, Sybase, MS SQL Tanto que Codd sentiu a necessida- muitas empresas a revisar seus pro- O Retrieve era usado no Jet Pro-
Server e Britton-Lee, dentre outras. de de estabelecer as 12 regras de dutos para melhor se adequar aos pulsion Laboratory (JPL), em Pasa-
uma base de dados critérios OLAP de Codd. dena, na Califórnia. Nos anos 60,
relacional, uma re- Em 1976, outro avanço viria das pes- Jeb Long, um programador desse
ceita para extrair do quisas de Peter P. Chen. Ele propõe o laboratório, recebeu a tarefa de es-
modelo algo que modelo Entidade-Relacio- crever um programa que
funcionasse mesmo. namento (ER) para o design desempenhasse as mes-
Isso aconteceu em de banco de dados, dando mas funções que o Retrie-
1974 e foi expandido um importante passo para ve. Em 1973, ele se tornou
ao longo das déca- a modelagem de alto nível engenheiro de software
das. Em 1990, a lista e permitindo ao desenvol- do JPL. Ali ele desenvol-
cresceu para 333 re- vedor concentrar-se mais veu um programa de ge-
querimentos. no uso das informações do renciamento de arquivos
Vistas com os que propriamente na estru- chamado JPLDIS (Jet Pro-
olhos de hoje, as 12 tura lógica que há por trás Peter Chen: novo pulsion Laboratory Dis-
Mapa de relacionamento: a teoria de Codd na prática modelo de design
leis parecem brinca- da tabela. play Information System),

10 < C O L E Ç Ã O I N F O © FOTO DIVULGAÇÃO IBM © FOTO DIVULGAÇÃO C O L E Ç Ã O I N F O > 11


08_14_BANCO_HISTORIA1 25/02/2006 21:15 Page 10

HISTÓRIA HISTÓRIA

dos com estruturas relati- Esse tipo de sistema usa deira. A primeira de-
vamente simples e proces- QUEL como linguagem de las, conhecida como
sar transações simples. pesquisa das bases de da- “Lei da Informação”,
A idéia começou a ser dos. O segundo protótipo, dizia simplesmente
desenvolvida por Codd du- conhecido como System que todo dado deve
rante seu doutorado na R, foi desenvolvido pela ser apresentado ao
Universidade de Michigan. IBM em San Jose, Califór- usuário na forma de
Em sua tese, ele apresen- nia, e levou ao SQL/DS & tabela. A segunda, ou
tava uma espécie de “au- DB2, da própria empresa, “Regra do Acesso Ga-
to-reprodução” feita em Edgar Codd: pai do seguido por Oracle e HP. rantido”, exige que
modelo relacional dBase III: padrão de banco de dados para PCs nos anos 80
programas de computa- Nesse sistema, é utiliza- todo dado seja aces-
dores. O trabalho foi publicado em da a SEQUEL como linguagem de sível sem ambigüidade e aconselha SURGE O DBASE
1967 no livro Cellular Automata, pu- pesquisa de dados. Originalmente, que cada informação seja descrita A evolução natural dos bancos de
blicado pela Academic Press. A idéia as aplicações foram desenvolvidas por uma combinação de nome da dados passaria pelo estabelecimen-
era tão avançada que levou uma dé- para os enormes mainframes. tabela, chave primária e o nome do to de um padrão não-teórico: o dBa-
cada para ser digerida. campo. E assim por diante. se, ao ser lançado no final dos anos
Pelo menos dois protótipos prin- AS DOZE REGRAS O mesmo Codd cunharia o nome 70, tornou-se uma referência. Sua
cipais de sistemas relacionais foram O termo “relação” era usado por OLAP (On-Line Analytical Proces- origem encontra-se em meados dos
desenvolvidos entre 1974 e 1977, Codd de maneira estritamente ma- sing) para descrever uma ampla ca- anos 60. Seu antecessor era um sis-
mostrando aplicações práticas do temática, dentro de uma tabela com tegoria de produtos de software que tema chamado Retrieve, vendido pe-
que só existia na teoria. linhas e colunas que trabalhavam tinham as características de acesso la Tymshare Corporation. Naquela
Um dos protótipos era o Ingres, com propriedades especiais. Embo- aos dados propostas por ele. As 12 época, os computadores só eram
desenvolvido na Universidade ra isso pareça óbvio atualmente, não Regras de seu padrão foram adota- encontrados em grandes gabinetes,
Berkeley, que seria seguido pela In- era nada elementar nos anos 70. das pela indústria de TI, forçando no ambiente do trabalho.
gres Corporation, Sybase, MS SQL Tanto que Codd sentiu a necessida- muitas empresas a revisar seus pro- O Retrieve era usado no Jet Pro-
Server e Britton-Lee, dentre outras. de de estabelecer as 12 regras de dutos para melhor se adequar aos pulsion Laboratory (JPL), em Pasa-
uma base de dados critérios OLAP de Codd. dena, na Califórnia. Nos anos 60,
relacional, uma re- Em 1976, outro avanço viria das pes- Jeb Long, um programador desse
ceita para extrair do quisas de Peter P. Chen. Ele propõe o laboratório, recebeu a tarefa de es-
modelo algo que modelo Entidade-Relacio- crever um programa que
funcionasse mesmo. namento (ER) para o design desempenhasse as mes-
Isso aconteceu em de banco de dados, dando mas funções que o Retrie-
1974 e foi expandido um importante passo para ve. Em 1973, ele se tornou
ao longo das déca- a modelagem de alto nível engenheiro de software
das. Em 1990, a lista e permitindo ao desenvol- do JPL. Ali ele desenvol-
cresceu para 333 re- vedor concentrar-se mais veu um programa de ge-
querimentos. no uso das informações do renciamento de arquivos
Vistas com os que propriamente na estru- chamado JPLDIS (Jet Pro-
olhos de hoje, as 12 tura lógica que há por trás Peter Chen: novo pulsion Laboratory Dis-
Mapa de relacionamento: a teoria de Codd na prática modelo de design
leis parecem brinca- da tabela. play Information System),

10 < C O L E Ç Ã O I N F O © FOTO DIVULGAÇÃO IBM © FOTO DIVULGAÇÃO C O L E Ç Ã O I N F O > 11


08_14_BANCO_HISTORIA1 25/02/2006 21:26 Page 12

HISTÓRIA HISTÓRIA

escrito na linguagem For- Spock, do filme Jornada anos 70. Somente


tran para rodar num main- nas Estrelas) e começou em 1986 o American
frame Univac 1108. a vendê-lo por reembol- National Standards
O JPLDIS foi, assim, a so postal. Institute (ANSI) pu-
mãe da linguagem dBase, Mais tarde, Long asso- blicou o SQL como
que passou a rodar em mi- ciou-se a Ratliff e traduziu um padrão. A partir
crocomputadores com o aquela versão original do daí, o SQL passou a
sistema CP/M. Criada por dBase II para rodar no IBM ser usado pela maio-
um jovem programador PC. Todo o trabalho foi fei- ria das empresas.
do JPL, Wayne Ratliff, seu to em linguagem As- Ao longo dos anos
grande sucesso baseava- Wayne Ratliff: sembly. Jeb Long foi um 80, a linguagem SQL
criador do Vulcan
se na simplicidade. Os co- dos fundadores da empre- torna-se praticamen-
DB2, da IBM: referência em banco de dados corporativo
mandos seguiam a lógica das pala- sa Ashton-Tate, ficou conhecido com te universal. Por sua
vras inglesas: use, find, list etc. No um dos gurus do dBase e como res- vez, o DB2, da IBM, passou a ser o car- Object Database Management
dBase, Ratliff partia de uma idéia ponsável também pelas versões ro-chefe da empresa nesse segmen- Systems (ODBMS).
também simples: desenvolver um dBase III e dBase IV. to, que começa a experimentar ex- O fenômeno da internet vem sacu-
programa de banco de dados para pressivo crescimento. Ao mesmo tem- dir o ambiente de TI em meados dos
desktop baseado naquele que roda- AS LINGUAGENS po, as redes locais ganham espaço anos 90. Começa-se a exigir de ma-
va nos mainframes de seu trabalho. Em 1984 surgiu o Clipper, linguagem nas empresas, e o DB2 se mantém co- neira frenética o acesso de compu-
Fez tudo isso num computador mon- de programação compatível com o mo uma das fortes referências em tadores remotos aos dados guarda-
tado em sua casa. dBase III Plus, com desempenho de- bancos de dados corporativos. dos nos sistemas legados. Na outra
Foi um grande progresso para a zenas de vezes mais rápido que o ponta, os bancos de dados se adap-
época. Não somente o programa dBase original. Até meados da dé- CHEGAM OS PCS tam para servir às demandas da web
criava tabelas e guardava dados, cada de 90, o Clipper era o líder do Com a entrada dos PCs em cena, as — o que significa acesso às informa-
mas tinha a capacidade de criar pro- mercado de linguagens de desen- companhias de banco de dados têm ções, de qualquer lugar, via browser.
gramas ASCII (como arquivos batch volvimento para micros. A partir daí, um crescimento notável. Novos no- No final dos anos 90, o intenso in-
do DOS), que podiam então exibir as linguagens visuais, criadas para mes dominam o cenário do software, vestimento das empresas na inter-
e imprimir as informações requisi- rodar no ambiente Windows, como RIM, RBase 5000, Paradox, net abastece o mercado com cente-
tadas. Ratliff batizou seu software começam a ganhar terreno. dBase, FoxBase e FoxPro. A transi- nas de ferramentas para conectar
de Vulcan (em homenagem ao Sr. Quando os bancos de dados rela- ção para a década de 90 deixa pou- os bancos de dados à web. Crescem
cionais estavam sen- cas empresas da geração anterior as ofertas de novos produtos e no-
do desenvolvidos, fo- como sobreviventes. O modelo clien- vas tecnologias. Com o passar do
ram criadas lingua- te-servidor torna-se a norma para tempo, destacam-se duas áreas bá-
gens destinadas à sua as futuras decisões de negócio, ao sicas: de um lado, as soluções ba-
manipulação. O de- mesmo tempo em que se verifica o seadas na plataforma Java, da Sun.
partamento de pes- estabelecimento das ferramentas de Empresas como a própria Sun, além
quisa da IBM desen- produtividade pessoal, como Excel de IBM e Oracle, têm bancos de da-
volveu a linguagem e Access. É também um marco ini- dos ou ferramentas para desenvol-
SQL (Structured cial para os protótipos dos bancos vimento nessa área. Do outro lado,
FoxPro para DOS: gerenciador baseado em dBase
Query Language) nos de dados orientados a objeto, ou estão as empresas que oferecem

12 < C O L E Ç Ã O I N F O © FOTO DIVULGAÇÃO RATLIFF SOFTWARE PRODUCTIONS C O L E Ç Ã O I N F O > 13


08_14_BANCO_HISTORIA1 25/02/2006 21:26 Page 12

HISTÓRIA HISTÓRIA

escrito na linguagem For- Spock, do filme Jornada anos 70. Somente


tran para rodar num main- nas Estrelas) e começou em 1986 o American
frame Univac 1108. a vendê-lo por reembol- National Standards
O JPLDIS foi, assim, a so postal. Institute (ANSI) pu-
mãe da linguagem dBase, Mais tarde, Long asso- blicou o SQL como
que passou a rodar em mi- ciou-se a Ratliff e traduziu um padrão. A partir
crocomputadores com o aquela versão original do daí, o SQL passou a
sistema CP/M. Criada por dBase II para rodar no IBM ser usado pela maio-
um jovem programador PC. Todo o trabalho foi fei- ria das empresas.
do JPL, Wayne Ratliff, seu to em linguagem As- Ao longo dos anos
grande sucesso baseava- Wayne Ratliff: sembly. Jeb Long foi um 80, a linguagem SQL
criador do Vulcan
se na simplicidade. Os co- dos fundadores da empre- torna-se praticamen-
DB2, da IBM: referência em banco de dados corporativo
mandos seguiam a lógica das pala- sa Ashton-Tate, ficou conhecido com te universal. Por sua
vras inglesas: use, find, list etc. No um dos gurus do dBase e como res- vez, o DB2, da IBM, passou a ser o car- Object Database Management
dBase, Ratliff partia de uma idéia ponsável também pelas versões ro-chefe da empresa nesse segmen- Systems (ODBMS).
também simples: desenvolver um dBase III e dBase IV. to, que começa a experimentar ex- O fenômeno da internet vem sacu-
programa de banco de dados para pressivo crescimento. Ao mesmo tem- dir o ambiente de TI em meados dos
desktop baseado naquele que roda- AS LINGUAGENS po, as redes locais ganham espaço anos 90. Começa-se a exigir de ma-
va nos mainframes de seu trabalho. Em 1984 surgiu o Clipper, linguagem nas empresas, e o DB2 se mantém co- neira frenética o acesso de compu-
Fez tudo isso num computador mon- de programação compatível com o mo uma das fortes referências em tadores remotos aos dados guarda-
tado em sua casa. dBase III Plus, com desempenho de- bancos de dados corporativos. dos nos sistemas legados. Na outra
Foi um grande progresso para a zenas de vezes mais rápido que o ponta, os bancos de dados se adap-
época. Não somente o programa dBase original. Até meados da dé- CHEGAM OS PCS tam para servir às demandas da web
criava tabelas e guardava dados, cada de 90, o Clipper era o líder do Com a entrada dos PCs em cena, as — o que significa acesso às informa-
mas tinha a capacidade de criar pro- mercado de linguagens de desen- companhias de banco de dados têm ções, de qualquer lugar, via browser.
gramas ASCII (como arquivos batch volvimento para micros. A partir daí, um crescimento notável. Novos no- No final dos anos 90, o intenso in-
do DOS), que podiam então exibir as linguagens visuais, criadas para mes dominam o cenário do software, vestimento das empresas na inter-
e imprimir as informações requisi- rodar no ambiente Windows, como RIM, RBase 5000, Paradox, net abastece o mercado com cente-
tadas. Ratliff batizou seu software começam a ganhar terreno. dBase, FoxBase e FoxPro. A transi- nas de ferramentas para conectar
de Vulcan (em homenagem ao Sr. Quando os bancos de dados rela- ção para a década de 90 deixa pou- os bancos de dados à web. Crescem
cionais estavam sen- cas empresas da geração anterior as ofertas de novos produtos e no-
do desenvolvidos, fo- como sobreviventes. O modelo clien- vas tecnologias. Com o passar do
ram criadas lingua- te-servidor torna-se a norma para tempo, destacam-se duas áreas bá-
gens destinadas à sua as futuras decisões de negócio, ao sicas: de um lado, as soluções ba-
manipulação. O de- mesmo tempo em que se verifica o seadas na plataforma Java, da Sun.
partamento de pes- estabelecimento das ferramentas de Empresas como a própria Sun, além
quisa da IBM desen- produtividade pessoal, como Excel de IBM e Oracle, têm bancos de da-
volveu a linguagem e Access. É também um marco ini- dos ou ferramentas para desenvol-
SQL (Structured cial para os protótipos dos bancos vimento nessa área. Do outro lado,
FoxPro para DOS: gerenciador baseado em dBase
Query Language) nos de dados orientados a objeto, ou estão as empresas que oferecem

12 < C O L E Ç Ã O I N F O © FOTO DIVULGAÇÃO RATLIFF SOFTWARE PRODUCTIONS C O L E Ç Ã O I N F O > 13


08_14_BANCO_HISTORIA1 25/02/2006 21:50 Page 14

HISTÓRIA

produtos fundamentados nas tec- banco de dados exigem gerencia-


nologias ASP e, mais recentemen- dores capazes de dar respostas rá-
te, .Net, da Microsoft. No item es- pidas às empresas.
pecífico dos gerenciadores de ban- Nessa área, a Oracle se destaca
cos de dados, os grandes nomes são como o maior fornecedor de ban-
IBM, Oracle e Microsoft. Com a ex- cos de dados corporativos. Desde
pansão da conectividade, os ban- 1985, o produto passou a tirar pro-
cos de dados estendem as possibi- veito da disseminação das redes lo-
lidades de acesso até aos PDAs. cais, dando suporte ao modelo clien-
te-servidor. O Oracle 5, dessa épo-
AOS TERABYTES ca, suportava consultas distribuí-
Mas as tendências apontam para das. Em 1988, surgiu a versão 8, com
sistemas de alto nível de armaze- suporte ao desenvolvimento orien-
namento (da ordem de terabytes) tado a objeto e aplicações multimí-
que exigem rapidez e confiabili- dia. Em 1999, sai a versão 8i — i de
dade de processamento, manuseio internet. O número atual é 10g, sen-
e análise dos dados. Projetos gran- do o g indicativo da capacidade de
diosos, como o Genoma, apontam funcionar num grid de servidores.
para esse tipo de demanda. Ao O Oracle também foi o primeiro ban-
mesmo tempo, bases de dados co de dados comercial a oferecer
geológicos, meteorológicos e es- uma versão para Linux.
paciais requerem mais velocida- Finalmente, deve-se prestar
de e segurança. Também se tor- atenção ao crescimento das plata-
nam comuns as aplicações empre- formas de código aberto, notada-
sariais de data mining, data ware- mente o Linux. Junto com ele, des-
house e data marts. Esses usos do pontam bancos de dados como o
MySQL, utilizado em
aplicações web. Es-
sa mudança em di-
reção ao software li-
vre pode redefinir o
perfil do mercado
de banco de dados,
em especial na fai-
xa das aplicações
médias e pequenas,
a curto prazo, mas
abarcando as gran-
des aplicações, a
Oracle 10g: gerenciador de bancos de dados para clusters
longo prazo.

14 < C O L E Ç Ã O I N F O
015_CONCEITOS 25/02/2006 21:31 Page 15

CONCEITOS

SABE O QUE
É TUPLA?
ENTENDA OS CONCEITOS QUE FAZEM DO BANCO DE DADOS
UM MUNDO À PARTE NO UNIVERSO DO SOFTWARE
POR CELSO HENRIQUE PODEROSO DE OLIVEIRA

odo mundo que usa te- bem o que é um banco de dados —

T lefone possui uma agen-


da. Nela, cada amigo
tem nome, endereço,
número da linha, data de aniversá-
um armazém de informações rele-
vantes, organizadas de maneira coe-
rente e lógica, que precisam ser re-
cuperadas com freqüência.
rio e e-mail, cada dado anotado num No universo dos bits e bytes, o
espaço especial. Quando precisa- banco de dados envolve conceitos
mos ligar para algum contato, va- importantes, que precisamos enten-
mos à letra inicial do nome e bus- der bem para torná-lo útil e eficien-
camos o número do telefone. Essa te. É disso que trataremos aqui, co-
agendinha quase banal expressa meçando pelo próprio.

Sistema gerenciador: coleção de programas que mantêm as estruturas do banco

C O L E Ç Ã O I N F O > 15
015_CONCEITOS 25/02/2006 21:32 Page 16

CONCEITOS CONCEITOS

acesso, redundância e integridade, o lacional e em atributos ou proprieda-


compartilhamento de dados e o me- des no modelo orientado a objetos.
canismo de cópias de segurança. Os atributos são colocados dentro do
retângulo que representa a entidade
Entidade: grupo de coisas semelhantes
MODELAGEM DE DADOS e abaixo do nome da própria.
Processo pelo qual trabalham-se os ta fiscal, pedido de compra, ordem
dados de uma empresa ou sistema de serviço), um local (armazém, se- TUPLA
para se obter estruturas de armaze- de, filial) ou qualquer outro objeto do Nada mais é do que o conjunto de ca-
namento estáveis. O processo de aná- mundo real. Cada entidade deve pos- racterísticas do objeto que se quer re-
Interface DB2: administração gráfica lise pode se dar por meio da criação suir diversas instâncias do objeto que presentar, a estrutura de atributos re-
do Modelo de Entidade X Relaciona- representa. Vamos exemplificar com lacionados e interdependentes. A tu-
BANCO DE DADOS mento ou pela Normalização de Da- os automóveis. A entidade é o gru- pla seria a linha ou o registro de uma
Defini-lo como uma ou mais tabelas dos. O objetivo da modelagem é fa- po carro. A instância é o objeto Hon- tabela no modelo relacional e a ins-
de dados relacionadas ou não é pos- zer com que as estruturas possam da Civic, Peugeot 206, VW Gol. tância no modelo orientado a objetos.
sível. Mas podemos acrescentar à lis- evoluir no tempo, sem prejudicar o Quando se transpõe a entidade pa-
ta de componentes os índices, visões desenvolvimento de sistemas. ra um modelo físico, tem-se a tabe- TABELA
(views), procedimentos (procedures), la (no modelo relacional) ou a classe Estrutura composta por linhas e co-
funções, gatilhos (triggers) etc. Tudo MODELO DE ENTIDADE (no modelo orientado a objeto). Uma lunas que serve para armazenar os
depende do tipo de banco de dados X RELACIONAMENTO entidade é representada por um re- dados em um banco de dados rela-
e do que se quer fazer com ele. Par- tângulo com o respectivo nome. cional. A linha indica uma ocorrên-
tindo-se desse princípio, podem ser cia do objeto do mundo real, e a co-
considerados banco de dados os ar- ATRIBUTO luna serve para qualificar o objeto.
quivos DBF que foram muito popu- Qualificador lógico de um objeto, ser- Dessa forma, se imaginarmos uma
lares na década de 80 com a lingua- ve para descrever ou caracterizar os tabela PESSOA, ela teria em cada li-
gem Clipper, um arquivo MDB do MS elementos de uma entidade. Cada atri- nha uma pessoa e em cada coluna
Access ou mesmo arquivos DAT, pro- Modelo: entidade x relacionamento buto deve conter apenas uma carac- as informações relevantes dessa pes-
prietários de linguagens de terceira terística do objeto. Esse ponto é im- soa, como nome, peso, altura, data
geração como Pascal e Cobol. Modelo que contém as entidades de portante para não confundirmos atri- de nascimento, documento de iden-
um sistema e o relacionamento en- buto com entidade. tificação, cor dos olhos, cor dos ca-
SISTEMA GERENCIADOR tre elas. Deve ser entendido como Um objeto deve ter algumas carac-
É uma coleção de programas res- uma representação da realidade. Co- terísticas específicas. Cada uma delas
ponsáveis pela manutenção das es- mo sempre é possível modificar a será um atributo do objeto. O inver-
truturas e objetos de um banco de realidade de um sistema, deve ser so é também verdadeiro: um atribu-
dados. Há diversos produtos comer- prevista a evolução do modelo. to não pode ter subdivisões. Se utili-
ciais e de uso livre. Entre os pagos zar o exemplo da entidade carro, po-
destacam-se Oracle, IBM DB2 e MS ENTIDADE demos ter atributos como nome, mon-
SQL Server. Entre os livres, MySQL, Entende-se como um grupo de coi- tadora, modelo etc.
Firebird e PostgreSQL. sas semelhantes. Essas coisas podem Quando se transpõe para o mode-
Os gerenciadores têm como carac- ter uma existência física (pessoa, car- lo físico, os atributos se transformam
Tabela: estrutura com linhas e colunas
terísticas principais os controles de ro, imóvel), ser um documento (no- em colunas ou campos no modelo re-

16 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 17
015_CONCEITOS 25/02/2006 21:32 Page 16

CONCEITOS CONCEITOS

acesso, redundância e integridade, o lacional e em atributos ou proprieda-


compartilhamento de dados e o me- des no modelo orientado a objetos.
canismo de cópias de segurança. Os atributos são colocados dentro do
retângulo que representa a entidade
Entidade: grupo de coisas semelhantes
MODELAGEM DE DADOS e abaixo do nome da própria.
Processo pelo qual trabalham-se os ta fiscal, pedido de compra, ordem
dados de uma empresa ou sistema de serviço), um local (armazém, se- TUPLA
para se obter estruturas de armaze- de, filial) ou qualquer outro objeto do Nada mais é do que o conjunto de ca-
namento estáveis. O processo de aná- mundo real. Cada entidade deve pos- racterísticas do objeto que se quer re-
Interface DB2: administração gráfica lise pode se dar por meio da criação suir diversas instâncias do objeto que presentar, a estrutura de atributos re-
do Modelo de Entidade X Relaciona- representa. Vamos exemplificar com lacionados e interdependentes. A tu-
BANCO DE DADOS mento ou pela Normalização de Da- os automóveis. A entidade é o gru- pla seria a linha ou o registro de uma
Defini-lo como uma ou mais tabelas dos. O objetivo da modelagem é fa- po carro. A instância é o objeto Hon- tabela no modelo relacional e a ins-
de dados relacionadas ou não é pos- zer com que as estruturas possam da Civic, Peugeot 206, VW Gol. tância no modelo orientado a objetos.
sível. Mas podemos acrescentar à lis- evoluir no tempo, sem prejudicar o Quando se transpõe a entidade pa-
ta de componentes os índices, visões desenvolvimento de sistemas. ra um modelo físico, tem-se a tabe- TABELA
(views), procedimentos (procedures), la (no modelo relacional) ou a classe Estrutura composta por linhas e co-
funções, gatilhos (triggers) etc. Tudo MODELO DE ENTIDADE (no modelo orientado a objeto). Uma lunas que serve para armazenar os
depende do tipo de banco de dados X RELACIONAMENTO entidade é representada por um re- dados em um banco de dados rela-
e do que se quer fazer com ele. Par- tângulo com o respectivo nome. cional. A linha indica uma ocorrên-
tindo-se desse princípio, podem ser cia do objeto do mundo real, e a co-
considerados banco de dados os ar- ATRIBUTO luna serve para qualificar o objeto.
quivos DBF que foram muito popu- Qualificador lógico de um objeto, ser- Dessa forma, se imaginarmos uma
lares na década de 80 com a lingua- ve para descrever ou caracterizar os tabela PESSOA, ela teria em cada li-
gem Clipper, um arquivo MDB do MS elementos de uma entidade. Cada atri- nha uma pessoa e em cada coluna
Access ou mesmo arquivos DAT, pro- Modelo: entidade x relacionamento buto deve conter apenas uma carac- as informações relevantes dessa pes-
prietários de linguagens de terceira terística do objeto. Esse ponto é im- soa, como nome, peso, altura, data
geração como Pascal e Cobol. Modelo que contém as entidades de portante para não confundirmos atri- de nascimento, documento de iden-
um sistema e o relacionamento en- buto com entidade. tificação, cor dos olhos, cor dos ca-
SISTEMA GERENCIADOR tre elas. Deve ser entendido como Um objeto deve ter algumas carac-
É uma coleção de programas res- uma representação da realidade. Co- terísticas específicas. Cada uma delas
ponsáveis pela manutenção das es- mo sempre é possível modificar a será um atributo do objeto. O inver-
truturas e objetos de um banco de realidade de um sistema, deve ser so é também verdadeiro: um atribu-
dados. Há diversos produtos comer- prevista a evolução do modelo. to não pode ter subdivisões. Se utili-
ciais e de uso livre. Entre os pagos zar o exemplo da entidade carro, po-
destacam-se Oracle, IBM DB2 e MS ENTIDADE demos ter atributos como nome, mon-
SQL Server. Entre os livres, MySQL, Entende-se como um grupo de coi- tadora, modelo etc.
Firebird e PostgreSQL. sas semelhantes. Essas coisas podem Quando se transpõe para o mode-
Os gerenciadores têm como carac- ter uma existência física (pessoa, car- lo físico, os atributos se transformam
Tabela: estrutura com linhas e colunas
terísticas principais os controles de ro, imóvel), ser um documento (no- em colunas ou campos no modelo re-

16 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 17
015_CONCEITOS 25/02/2006 21:33 Page 18

CONCEITOS

cal, por exemplo, o número da no-


ta não se repete e é obrigatório. Por
isso poderá ser candidato para a co-
luna chave. Uma chave geralmente
está destacada por um símbolo (as-
terisco ou uma pequena chave) ao
lado do atributo correspondente.
Quando se analisa o modelo físi-
co, uma chave pode ser classifica-
Chaves: qualificadores das entidades da como:
■ PRIMÁRIA: qualificador único e
belos etc. A idéia central é que as ca- obrigatório. Deve haver uma única
racterísticas do objeto permitam iden- chave primária em cada tabela.
tificar uma única pessoa em cada li- ■ ESTRANGEIRA: serve para rela-
nha da tabela. cionar duas tabelas. Vamos voltar
ao exemplo da Nota Fiscal. Cada no-
CHAVE ta está relacionada a um cliente. No-
Um ou mais atributos que permi- ta Fiscal é uma tabela e cliente ou-
tem identificar uma única ocorrên- tra. Cada tabela tem a sua própria
cia na entidade. É um qualificador chave primária. Para relacionar o
único. No modelo físico, a chave é cliente com a nota fiscal, deixamos
o campo ou a coluna que contém uma referência à coluna chave do
um valor exclusivo e com preenchi- cliente na tabela nota fiscal (chave
mento obrigatório. Assim, não po- estrangeira).
derá haver o mesmo conteúdo da ■ SECUNDÁRIA classifica os dados
coluna em duas linhas diferentes. nas tabelas. Geralmente, os índices
Imagine uma chave para PESSOA. têm o objetivo de agilizar o proces-
Nome seria uma boa coluna para so de busca.
chave? Naturalmente não, pois há
pessoas que têm nomes iguais. CPF RELACIONAMENTO
seria uma boa chave? Em alguns ca- Se uma entidade é um conjunto de
sos sim, pois embora não tenha re- coisas semelhantes, é natural que
petição e seja um documento obri- essas coisas guardem algum tipo
gatório para os adultos, não é para de relacionamento que seja impor-
os bebês. O que normalmente acon- tante recuperar em algum momen-
tece em casos como esse é criar- to. Quando dizemos que uma nota
mos uma coluna. fiscal é emitida contra um cliente,
Em alguns outros exemplos, a cha- podemos entender que estamos tra-
ve seria localizada com mais facili- tando de duas entidades diferen-
dade. Se analisarmos uma Nota Fis- tes: Nota Fiscal e Cliente. Há, entre

18 < C O L E Ç Ã O I N F O
015_CONCEITOS 25/02/2006 21:34 Page 19

CONCEITOS

essas duas entidades, uma relação nada apenas a zero ou a uma tupla
de interdependência, ou seja, para da outra entidade (lembre-se que ze-
se emitir uma Nota Fiscal, é neces- ro ou um é a opcionalidade). Esse ti-
sário que haja um Cliente. A essa po de relacionamento não é o mais
interdependência damos o nome comum, pois sempre se deve ques-
de relacionamento. Na prática, sem- tionar a vantagem de manter os da-
pre que uma ou mais tuplas de uma dos separados em duas entidades.
entidade guardarem alguma rela- Note que sempre há um custo vincu-
ção com uma ou mais tuplas de ou- lado à criação e manutenção de uma
tra entidade teremos um relaciona- tabela. Se o custo compensar, deve-
mento entre as entidades. se manter separado. Do contrário, é
Um relacionamento pode ser clas- melhor unir as duas entidades.
sificado de duas formas: opcionali- ■ UM PARA MUITOS (1:M): quan-
dade e cardinalidade. do cada tupla de uma entidade es-
A opcionalidade indica se é obri- tá relacionada a zero, uma ou mais
gatória ou não a ocorrência ou in- tuplas da outra entidade (não es-
dicação de uma tupla de uma en- queça que o zero ou um é a opcio-
tidade na outra. Dessa forma, po- nalidade). Este é o relacionamento
demos dizer que é obrigatória a mais comum.
presença de um Cliente em uma ■ MUITOS PARA MUITOS (M:M):
Nota Fiscal, mas é opcional a exis- quando há ocorrências de múltiplos
tência de uma Transportadora, por relacionamentos entre as tuplas de
exemplo. De outro lado, o Cliente duas entidades. Esse relacionamen-
pode ou não estar vinculado a uma to, apesar de existir, não é passível
Nota Fiscal. O mesmo acontece com de implementação em um banco de
a Transportadora.
A cardinalidade indica quantas
ocorrências de uma tupla se rela-
cionam com a outra tupla. Sabemos
que cada Cliente pode estar vincu-
lado a zero, uma ou muitas Notas
Fiscais, enquanto cada Nota Fiscal
está relacionada a um único Clien-
te. Como você pode notar, a cardi-
nalidade e a opcionalidade são sem-
pre expressas de um e de outro la-
do do relacionamento.
A cardinalidade pode ser:
■ UM PARA UM (1:1): quando cada Relacionamento: muitos para muitos
(acima); um para muitos (abaixo)
tupla de uma entidade está relacio-

C O L E Ç Ã O I N F O > 19
015_CONCEITOS 25/02/2006 21:43 Page 20

CONCEITOS CONCEITOS

dados relacional. Sempre que se A principal forma de garantir a


identificar essa situação, deve-se integridade entre tabelas se dá por
criar uma entidade entre as duas meio do vínculo entre a chave pri-
entidades, classificadas como fun- mária de uma tabela com a chave
damentais. Essa nova entidade, clas- estrangeira da outra tabela. As co-
sificada como entidade associativa, lunas das duas tabelas armazenam
deve conter, pelo menos, as chaves as informações que permitem es-
das duas entidades fundamentais. tabelecer o relacionamento entre
Uma das formas de representar as linhas das tabelas. Assim, o có-
o relacionamento é o “pé-de-gali- digo de cliente 1 da tabela Clien-
nha” para indicar a cardinalidade te, cujo nome é João, será arma-
muitos, um pequeno traço para in- zenado na coluna código do clien-
dicar a cardinalidade um, o trace- te da tabela Nota Fiscal sempre
jado para indicar opcionalidade e o que se quiser indicar que o João
segmento de reta contínuo para in- comprou determinados produtos.
dicar obrigatoriedade. Uma outra Não será possível excluir João (có-
forma é indicar a opcionalidade com digo do cliente 1) enquanto hou-
um pequeno círculo antes do um ver Notas Fiscais emitidas contra
ou muitos da cardinalidade. Lem- esse cliente.
bre-se: são apenas convenções. O Restrições: melhoram a qualidade da informação armazenada nas tabelas do banco

importante é que o relacionamen- RESTRIÇÕES


to esteja claro e esteja representa- Utilizam-se as restrições (constraints) não sendo uma coluna chave, es- plo, que pode assumir apenas os
do no modelo de dados. para melhorar a qualidade da infor- ses valores não podem ser duplica- valores Masculino ou Feminino.
mação guardada nas tabelas do ban- dos em clientes (linhas) diferentes.
INTEGRIDADE REFERENCIAL co. As restrições mais comuns são Para isso definimos que sejam ad- TRANSAÇÃO
Mecanismo utilizado pelos gerencia- a chave primária e a estrangeira. mitidos somente valores exclusivos. Ocorre sempre que houver uma mo-
dores de bancos de dados para man- Mas há outras restrições bastante O que a difere de uma chave pri- dificação no conteúdo das tabelas
ter a consistência das informações importantes: mária é que esta última não pode de um banco de dados. Dessa for-
armazenadas. Suponha que estamos ■ NULOS: uma coluna que não te- assumir valores nulos. ma, uma inclusão, alteração ou ex-
cadastrando uma Nota Fiscal e indi- nha valor inicializado é considera- ■ PADRÃO: É muito comum que, clusão geram uma transação. Em
camos um código de cliente (que re- da uma coluna nula. Nem sempre quando um valor não é informado, gerenciadores de banco de dados,
laciona com a tabela Cliente) inexis- é adequado permitir que uma co- o sistema assuma um valor-padrão o controle sobre o momento da efe-
tente. Outra situação é tentar excluir luna não tenha valores atribuídos. para a coluna (como data de emis- tiva gravação (COMMIT) dos dados
um Cliente que tenha diversas No- Imagine uma linha na tabela Clien- são de uma Nota Fiscal ou quanti- ou abandono da operação (ROLL-
tas Fiscais emitidas. Como iríamos te cujo nome seja nulo. Como po- dade de um determinado produto BACK) é realizado pelo usuário do
recuperar a informação, caso o ban- demos identificar o cliente? em uma Nota Fiscal). banco de dados ou pelo sistema. A
co de dados permitisse a exclusão ■ EXCLUSIVOS: suponha que se te- ■ DOMÍNIO: as vezes é necessário transação representa um conjunto
do Cliente? Simplesmente perdería- nha criado uma tabela Cliente cujo determinar um intervalo de valores de operações que são realizados na
mos o elo entre as tabelas, e a infor- código do cliente não seja um do- possíveis para uma determinada co- base de dados para produzir um re-
mação armazenada estaria inválida. cumento, como CPF ou RG. Mesmo luna. É o caso do sexo, por exem- sultado final.

20 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 21
015_CONCEITOS 25/02/2006 21:43 Page 20

CONCEITOS CONCEITOS

dados relacional. Sempre que se A principal forma de garantir a


identificar essa situação, deve-se integridade entre tabelas se dá por
criar uma entidade entre as duas meio do vínculo entre a chave pri-
entidades, classificadas como fun- mária de uma tabela com a chave
damentais. Essa nova entidade, clas- estrangeira da outra tabela. As co-
sificada como entidade associativa, lunas das duas tabelas armazenam
deve conter, pelo menos, as chaves as informações que permitem es-
das duas entidades fundamentais. tabelecer o relacionamento entre
Uma das formas de representar as linhas das tabelas. Assim, o có-
o relacionamento é o “pé-de-gali- digo de cliente 1 da tabela Clien-
nha” para indicar a cardinalidade te, cujo nome é João, será arma-
muitos, um pequeno traço para in- zenado na coluna código do clien-
dicar a cardinalidade um, o trace- te da tabela Nota Fiscal sempre
jado para indicar opcionalidade e o que se quiser indicar que o João
segmento de reta contínuo para in- comprou determinados produtos.
dicar obrigatoriedade. Uma outra Não será possível excluir João (có-
forma é indicar a opcionalidade com digo do cliente 1) enquanto hou-
um pequeno círculo antes do um ver Notas Fiscais emitidas contra
ou muitos da cardinalidade. Lem- esse cliente.
bre-se: são apenas convenções. O Restrições: melhoram a qualidade da informação armazenada nas tabelas do banco

importante é que o relacionamen- RESTRIÇÕES


to esteja claro e esteja representa- Utilizam-se as restrições (constraints) não sendo uma coluna chave, es- plo, que pode assumir apenas os
do no modelo de dados. para melhorar a qualidade da infor- ses valores não podem ser duplica- valores Masculino ou Feminino.
mação guardada nas tabelas do ban- dos em clientes (linhas) diferentes.
INTEGRIDADE REFERENCIAL co. As restrições mais comuns são Para isso definimos que sejam ad- TRANSAÇÃO
Mecanismo utilizado pelos gerencia- a chave primária e a estrangeira. mitidos somente valores exclusivos. Ocorre sempre que houver uma mo-
dores de bancos de dados para man- Mas há outras restrições bastante O que a difere de uma chave pri- dificação no conteúdo das tabelas
ter a consistência das informações importantes: mária é que esta última não pode de um banco de dados. Dessa for-
armazenadas. Suponha que estamos ■ NULOS: uma coluna que não te- assumir valores nulos. ma, uma inclusão, alteração ou ex-
cadastrando uma Nota Fiscal e indi- nha valor inicializado é considera- ■ PADRÃO: É muito comum que, clusão geram uma transação. Em
camos um código de cliente (que re- da uma coluna nula. Nem sempre quando um valor não é informado, gerenciadores de banco de dados,
laciona com a tabela Cliente) inexis- é adequado permitir que uma co- o sistema assuma um valor-padrão o controle sobre o momento da efe-
tente. Outra situação é tentar excluir luna não tenha valores atribuídos. para a coluna (como data de emis- tiva gravação (COMMIT) dos dados
um Cliente que tenha diversas No- Imagine uma linha na tabela Clien- são de uma Nota Fiscal ou quanti- ou abandono da operação (ROLL-
tas Fiscais emitidas. Como iríamos te cujo nome seja nulo. Como po- dade de um determinado produto BACK) é realizado pelo usuário do
recuperar a informação, caso o ban- demos identificar o cliente? em uma Nota Fiscal). banco de dados ou pelo sistema. A
co de dados permitisse a exclusão ■ EXCLUSIVOS: suponha que se te- ■ DOMÍNIO: as vezes é necessário transação representa um conjunto
do Cliente? Simplesmente perdería- nha criado uma tabela Cliente cujo determinar um intervalo de valores de operações que são realizados na
mos o elo entre as tabelas, e a infor- código do cliente não seja um do- possíveis para uma determinada co- base de dados para produzir um re-
mação armazenada estaria inválida. cumento, como CPF ou RG. Mesmo luna. É o caso do sexo, por exem- sultado final.

20 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 21
015_CONCEITOS 25/02/2006 21:54 Page 22

CONCEITOS CONCEITOS

NORMALIZAÇÃO DE DADOS As três fases da Normalização de para o novo grupo. Caso não haja PROCEDIMENTOS
Processo pelo qual são aplicadas Dados são: um bom atributo para ser a chave, ARMAZENADOS
regras a um conjunto de dados e, ■ 1ª- FORMA NORMAL (1FN): elimi- deve-se criá-lo. É isso que foi feito São pequenos códigos executados
no final, obtém-se uma base quase nar grupos de dados repetitivos da com o Cliente e Produto. em um banco de dados que ficam
livre de redundâncias. Ao atingir es- estrutura. Para isso, deve-se locali- ■ 3ª-FORMA NORMAL (3FN): depois guardados para posterior utiliza-
se objetivo, é possível recuperar o zar os atributos multivalorados, os que os grupos de dados estiverem na ção. Podem ser stored procedures
dado em um único lugar (tabela). que têm mais de uma ocorrência no 2ª- Forma Normal (e jamais antes dis- (procedimentos armazenados),
Isso fará, com certeza, que haja um formulário. No caso da Nota Fiscal, so), localizam-se atributos com de- stored functions (funções armaze-
aumento na quantidade de tabelas temos produto, quantidade, valor pendência transitiva. Calma! Não é nadas), trigger (gatilho) e package
criadas no sistema, mas ajudará a unitário e total como grupo de da- tão complicado. Dependência transi- (pacote). Um procedimento é um
aumentar a confiabilidade dos da- dos multivalorado. Deve-se separar tiva ocorre quando um dado pode ser conjunto de comandos dentro de
dos armazenados. Ao final do pro- esse grupo em uma nova entidade, obtido por meio de outro, exceto a uma estrutura lógica, com o obje-
cesso de normalização, deve-se va- dar um nome ao grupo, levar a cha- chave. Isso porque os atributos de- tivo de realizar uma ação no ban-
lidá-lo com o Modelo de Entidade ve da Nota Fiscal (para manter a re- pendem da chave. Até que você se co de dados. A diferença entre pro-
x Relacionamento. lação entre as entidades) e estabe- habitue, tente localizar campos que cedimento e função é que esta úl-
Esse processo pode ser feito em até lecer uma chave para o novo gru- possam ser substituídos por fórmu- tima retorna valor.
seis fases, mas, geralmente, ao se che- po. Essa chave pode ser composta las matemáticas. No exemplo, temos Gatilhos são procedimentos dispa-
gar na terceira etapa (conhecida co- pela chave da Nota Fiscal e por mais o atributo Valor Total no Item da No- rados por eventos do banco de da-
mo 3ª- Forma Normal), já é possível de um atributo existente. É possível, ta e o Valor Total da Nota Fiscal. Es- dos (inclusão, alteração ou exclusão).
obter um modelo de dados estável. quando não se localizar um atribu- ses atributos devem ser excluídos, Por fim, um pacote é um conjunto de
Antes de iniciar o processo de nor- to adequado, criá-la. pois podem ser obtidos por meio de funções, procedimentos e outras es-
malização, é importante identificar o ■ 2ª- FORMA NORMAL (2FN): quan- um cálculo realizado com outros atri- truturas que são armazenados em
grupo de dados que se quer analisar. do somente houver grupos de da- butos. Com os dados normalizados, conjunto para facilitar a manutenção
Esse grupo pode estar representado dos na 1ª- Forma Normal (e jamais é possível criar as tabelas. e a segurança da informação.
por um formulário, um relatório ou antes disso), deve-se localizar da-
até mesmo uma tela do sistema. Po- dos que não dependam única e ex-
de também ser resultado de um le- clusivamente da chave da entida-
vantamento sistemático das neces- de. Veja: o Cliente está relacionado
sidades de informação dos usuários. à Nota Fiscal, mas não depende de-
Com o grupo de dados definido, de- la. O Cliente existe, mesmo que não
ve-se listar todos os dados disponí- exista a Nota Fiscal. Por esse moti-
veis, sem desprezar nenhum. Em se- vo dizemos que o Cliente não de-
guida, deve-se dar um nome a esse pende da Nota Fiscal e, por isso, de-
grupo de dados. Após o nome, esta- ve ter os dados separados em uma
belece-se um identificador único (cha- nova entidade. Ao se identificar o(s)
ve). Cumprida essa etapa, deve-se grupo(s) independente(s), deve-se
proceder ao processo de normaliza- separá-los em uma nova entidade
ção. Para explicar melhor, vamos ado- (uma para cada grupo independen-
tar um formulário de Nota Fiscal co- te). Feito isso, dá-se um nome à en-
Procedimentos armazenados: códigos que ficam armazenados para usar depois
mo exemplo. tidade e estabelece-se uma chave

22 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 23
015_CONCEITOS 25/02/2006 21:54 Page 22

CONCEITOS CONCEITOS

NORMALIZAÇÃO DE DADOS As três fases da Normalização de para o novo grupo. Caso não haja PROCEDIMENTOS
Processo pelo qual são aplicadas Dados são: um bom atributo para ser a chave, ARMAZENADOS
regras a um conjunto de dados e, ■ 1ª- FORMA NORMAL (1FN): elimi- deve-se criá-lo. É isso que foi feito São pequenos códigos executados
no final, obtém-se uma base quase nar grupos de dados repetitivos da com o Cliente e Produto. em um banco de dados que ficam
livre de redundâncias. Ao atingir es- estrutura. Para isso, deve-se locali- ■ 3ª-FORMA NORMAL (3FN): depois guardados para posterior utiliza-
se objetivo, é possível recuperar o zar os atributos multivalorados, os que os grupos de dados estiverem na ção. Podem ser stored procedures
dado em um único lugar (tabela). que têm mais de uma ocorrência no 2ª- Forma Normal (e jamais antes dis- (procedimentos armazenados),
Isso fará, com certeza, que haja um formulário. No caso da Nota Fiscal, so), localizam-se atributos com de- stored functions (funções armaze-
aumento na quantidade de tabelas temos produto, quantidade, valor pendência transitiva. Calma! Não é nadas), trigger (gatilho) e package
criadas no sistema, mas ajudará a unitário e total como grupo de da- tão complicado. Dependência transi- (pacote). Um procedimento é um
aumentar a confiabilidade dos da- dos multivalorado. Deve-se separar tiva ocorre quando um dado pode ser conjunto de comandos dentro de
dos armazenados. Ao final do pro- esse grupo em uma nova entidade, obtido por meio de outro, exceto a uma estrutura lógica, com o obje-
cesso de normalização, deve-se va- dar um nome ao grupo, levar a cha- chave. Isso porque os atributos de- tivo de realizar uma ação no ban-
lidá-lo com o Modelo de Entidade ve da Nota Fiscal (para manter a re- pendem da chave. Até que você se co de dados. A diferença entre pro-
x Relacionamento. lação entre as entidades) e estabe- habitue, tente localizar campos que cedimento e função é que esta úl-
Esse processo pode ser feito em até lecer uma chave para o novo gru- possam ser substituídos por fórmu- tima retorna valor.
seis fases, mas, geralmente, ao se che- po. Essa chave pode ser composta las matemáticas. No exemplo, temos Gatilhos são procedimentos dispa-
gar na terceira etapa (conhecida co- pela chave da Nota Fiscal e por mais o atributo Valor Total no Item da No- rados por eventos do banco de da-
mo 3ª- Forma Normal), já é possível de um atributo existente. É possível, ta e o Valor Total da Nota Fiscal. Es- dos (inclusão, alteração ou exclusão).
obter um modelo de dados estável. quando não se localizar um atribu- ses atributos devem ser excluídos, Por fim, um pacote é um conjunto de
Antes de iniciar o processo de nor- to adequado, criá-la. pois podem ser obtidos por meio de funções, procedimentos e outras es-
malização, é importante identificar o ■ 2ª- FORMA NORMAL (2FN): quan- um cálculo realizado com outros atri- truturas que são armazenados em
grupo de dados que se quer analisar. do somente houver grupos de da- butos. Com os dados normalizados, conjunto para facilitar a manutenção
Esse grupo pode estar representado dos na 1ª- Forma Normal (e jamais é possível criar as tabelas. e a segurança da informação.
por um formulário, um relatório ou antes disso), deve-se localizar da-
até mesmo uma tela do sistema. Po- dos que não dependam única e ex-
de também ser resultado de um le- clusivamente da chave da entida-
vantamento sistemático das neces- de. Veja: o Cliente está relacionado
sidades de informação dos usuários. à Nota Fiscal, mas não depende de-
Com o grupo de dados definido, de- la. O Cliente existe, mesmo que não
ve-se listar todos os dados disponí- exista a Nota Fiscal. Por esse moti-
veis, sem desprezar nenhum. Em se- vo dizemos que o Cliente não de-
guida, deve-se dar um nome a esse pende da Nota Fiscal e, por isso, de-
grupo de dados. Após o nome, esta- ve ter os dados separados em uma
belece-se um identificador único (cha- nova entidade. Ao se identificar o(s)
ve). Cumprida essa etapa, deve-se grupo(s) independente(s), deve-se
proceder ao processo de normaliza- separá-los em uma nova entidade
ção. Para explicar melhor, vamos ado- (uma para cada grupo independen-
tar um formulário de Nota Fiscal co- te). Feito isso, dá-se um nome à en-
Procedimentos armazenados: códigos que ficam armazenados para usar depois
mo exemplo. tidade e estabelece-se uma chave

22 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 23
024_CRIACAO 25/02/2006 21:56 Page 24

CRIAÇÃO CRIAÇÃO

PLANEJE BEM O
Com isso, dependendo do caso, se viver durante um bom tempo (tenha
a sua empresa desenvolve sistemas, isso em mente: não se troca de ban-
a decisão poderá ser totalmente di- co de dados senão com alguma di-

SEU BANCO
ferente de uma construtora, por ficuldade). Veja na tabela abaixo al-
exemplo. Baseie-se em aspectos téc- gumas questões que podem ajudar
nicos e mercadológicos para definir na escolha do produto ideal para as
SIGA O ROTEIRO PARA CRIAR UM BANCO DE DADOS QUE o produto com o qual você irá con- suas necessidades.
ACOMPANHE AS TRANSFORMAÇÕES DA EMPRESA
POR CELSO HENRIQUE PODEROSO DE OLIVEIRA
GUIA PARA A ESCOLHA DO GERENCIADOR
criação de um banco de racionais, além de dar suporte à to-

A dados é um processo
que envolve uma série
de competências. Hou-
mada de decisão por parte da mé-
dia e alta gerência das corporações.
Não se consegue atingir esse obje-
> Há uma empresa ou comunidade responsável pelo produto?
> Como está a saúde financeira dessa empresa? Como é a
participação dos membros da comunidade?
ve tempo em que esse processo es-
tava reduzido a identificar um ou
tivo sem que se observem algumas
regras. Por isso, trataremos aqui da
> Qual o compromisso tecnológico da empresa? Houve evolução
nos últimos anos? (um ano de atraso em informática
mais objetos, escolher uma forma estratégia para a criação de um pode ser fatal)
de armazenamento, algumas carac-
terísticas desses objetos e pronto.
banco de dados.
> Qual a participação de mercado do produto? (produtos com
pequena participação podem sumir ou ser absorvidos por
Geralmente, a própria estrutura do PLANEJAMENTO
outras empresas)
banco de dados era vinculada à lin- E ESCOLHA
guagem de programação. Planejar e escolher o melhor banco > Quanto tempo de vida tem o produto?
Com o passar do tempo, a tecno- de dados é uma tarefa extremamen- > Qual tipo de empresa o utiliza?
logia evoluiu e foi separada das lin- te importante no processo de criação. > Quando foi lançada a última versão? Como o fabricante resolve
guagens de programação. Ambien- A escolha certa evita frustrações nas problemas de segurança (atualizações e correções)?
tes completos de administração fo- operações do dia-a-dia e na evolução > O produto possui as características mínimas de um sistema
ram desenvolvidos e sua utilização que o produto deve ter para acom- gerenciador de banco de dados (controle de transações,
contribuiu para disseminar as in- panhar o crescimento da empresa. integridade referencial, programação, backup e recuperação,
formações de maneira adequada e Planejar é saber onde se quer che- segurança de acesso, compatibilidade)?
consistente.
Atualmente, os produtos estão
gar e estabelecer os meios adequa-
dos para estar lá. É necessário olhar
> Como é o ambiente de administração do banco de dados? Há
possibilidade de administração remota?
muito mais complexos e permitem
ao profissional realizar um trabalho
para frente e analisar como você
quer que as coisas estejam no futu-
> Você vai precisar de um administrador de banco de dados (DBA)
o tempo todo ou esse trabalho poderá ser feito remotamente?
que pode contribuir para a melhor
utilização da informação. De simples
ro. É antever situações que podem
definir o sucesso ou não do seu em-
> Há profissionais qualificados no mercado para administrar o
banco? Quanto custa a mão-de-obra?
local de armazenamento, o banco de
dados evoluiu para um verdadeiro
preendimento. Portanto, antes de
escolher o produto, pense onde vo-
> Há produtos (ERP, CRM, BI etc.) adequados para a sua empresa
que utilizam o banco de dados?
repositório de informações das em- cê quer chegar. Enxergue o banco
presas. É o ambiente adequado pa- de dados como um meio para atin- > Qual o volume médio de transações que você vai realizar e como
o produto se comporta com isso?
ra armazenar e recuperar dados ope- gir sua meta.

24 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 25
024_CRIACAO 25/02/2006 21:56 Page 24

CRIAÇÃO CRIAÇÃO

PLANEJE BEM O
Com isso, dependendo do caso, se viver durante um bom tempo (tenha
a sua empresa desenvolve sistemas, isso em mente: não se troca de ban-
a decisão poderá ser totalmente di- co de dados senão com alguma di-

SEU BANCO
ferente de uma construtora, por ficuldade). Veja na tabela abaixo al-
exemplo. Baseie-se em aspectos téc- gumas questões que podem ajudar
nicos e mercadológicos para definir na escolha do produto ideal para as
SIGA O ROTEIRO PARA CRIAR UM BANCO DE DADOS QUE o produto com o qual você irá con- suas necessidades.
ACOMPANHE AS TRANSFORMAÇÕES DA EMPRESA
POR CELSO HENRIQUE PODEROSO DE OLIVEIRA
GUIA PARA A ESCOLHA DO GERENCIADOR
criação de um banco de racionais, além de dar suporte à to-

A dados é um processo
que envolve uma série
de competências. Hou-
mada de decisão por parte da mé-
dia e alta gerência das corporações.
Não se consegue atingir esse obje-
> Há uma empresa ou comunidade responsável pelo produto?
> Como está a saúde financeira dessa empresa? Como é a
participação dos membros da comunidade?
ve tempo em que esse processo es-
tava reduzido a identificar um ou
tivo sem que se observem algumas
regras. Por isso, trataremos aqui da
> Qual o compromisso tecnológico da empresa? Houve evolução
nos últimos anos? (um ano de atraso em informática
mais objetos, escolher uma forma estratégia para a criação de um pode ser fatal)
de armazenamento, algumas carac-
terísticas desses objetos e pronto.
banco de dados.
> Qual a participação de mercado do produto? (produtos com
pequena participação podem sumir ou ser absorvidos por
Geralmente, a própria estrutura do PLANEJAMENTO
outras empresas)
banco de dados era vinculada à lin- E ESCOLHA
guagem de programação. Planejar e escolher o melhor banco > Quanto tempo de vida tem o produto?
Com o passar do tempo, a tecno- de dados é uma tarefa extremamen- > Qual tipo de empresa o utiliza?
logia evoluiu e foi separada das lin- te importante no processo de criação. > Quando foi lançada a última versão? Como o fabricante resolve
guagens de programação. Ambien- A escolha certa evita frustrações nas problemas de segurança (atualizações e correções)?
tes completos de administração fo- operações do dia-a-dia e na evolução > O produto possui as características mínimas de um sistema
ram desenvolvidos e sua utilização que o produto deve ter para acom- gerenciador de banco de dados (controle de transações,
contribuiu para disseminar as in- panhar o crescimento da empresa. integridade referencial, programação, backup e recuperação,
formações de maneira adequada e Planejar é saber onde se quer che- segurança de acesso, compatibilidade)?
consistente.
Atualmente, os produtos estão
gar e estabelecer os meios adequa-
dos para estar lá. É necessário olhar
> Como é o ambiente de administração do banco de dados? Há
possibilidade de administração remota?
muito mais complexos e permitem
ao profissional realizar um trabalho
para frente e analisar como você
quer que as coisas estejam no futu-
> Você vai precisar de um administrador de banco de dados (DBA)
o tempo todo ou esse trabalho poderá ser feito remotamente?
que pode contribuir para a melhor
utilização da informação. De simples
ro. É antever situações que podem
definir o sucesso ou não do seu em-
> Há profissionais qualificados no mercado para administrar o
banco? Quanto custa a mão-de-obra?
local de armazenamento, o banco de
dados evoluiu para um verdadeiro
preendimento. Portanto, antes de
escolher o produto, pense onde vo-
> Há produtos (ERP, CRM, BI etc.) adequados para a sua empresa
que utilizam o banco de dados?
repositório de informações das em- cê quer chegar. Enxergue o banco
presas. É o ambiente adequado pa- de dados como um meio para atin- > Qual o volume médio de transações que você vai realizar e como
o produto se comporta com isso?
ra armazenar e recuperar dados ope- gir sua meta.

24 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 25
024_CRIACAO 25/02/2006 21:57 Page 26

CRIAÇÃO CRIAÇÃO

Agora você precisa saber quais a modelagem lógica de dados, com- Outras geram os scripts para serem do sistema que mantém aquela es-
são as informações necessárias pa- posta pela aplicação do modelo de executados no banco de dados. Só trutura. Em outros, acrescenta-se a
ra sua empresa. Isso poderá lhe entidade X relacionamento e pela que, para chegar aqui, é necessário estrutura departamental que realiza
ajudar a diminuir a lista. normalização de dados. Em um pri- ficar atento a alguns detalhes. esse trabalho. Essa última opção é a
meiro momento não deve haver pior, visto que há mudanças freqüen-
PROJETO LÓGICO preocupação com a estrutura física PADRONIZAÇÃO tes nas funções departamentais de
Esta parte do processo deve aconte- que será criada, e sim com o aten- É sempre importante manter um pa- uma empresa moderna. Particular-
cer em paralelo à escolha do siste- dimento dos requisitos dos usuários. drão para o nome dos objetos, colu- mente, creio que ambas situações são
ma gerenciador de banco de dados. nas e outros elementos. Mesmo que desnecessárias, visto que atualmen-
Optar por um produto sem ter noção PROJETO FÍSICO você trabalhe sozinho em um proje- te uma classe é destacada para essa
das necessidades de informação da Uma vez estabelecido o projeto ló- to, é bem provável que no futuro ou- função. A classe normalmente tam-
empresa é como dar um tiro no pé. gico, vamos ao projeto físico. Nele, tras pessoas tenham de atualizar aqui- bém tem um nome claro e objetivo.
A maneira clássica de fazer isso en- transforma-se o modelo de entida- lo que você fez. A padronização co- Se há atributos importantes pa-
volve todos os conceitos de engenha- de X relacionamento para o mode- meça na documentação do projeto ra serem mantidos, como cor, mo-
ria de software para levantamento de lo físico, em geral, sem problemas. e continua em todo o processo físi- delo, ano de fabricação, ano do mo-
requisitos. Quando se pensa em infor- As estruturas relacionais (tabelas) co de criação do banco de dados. delo e montadora, deve-se colocar
mação, qualquer documento, tela de são representações bastante simples Toda equipe deve estar envolvida esses nomes nas colunas.
sistema ou relatório é útil para iden- e adequadas para caracterizar coi- para definir o que e como será esse Outro ponto importante, mas não
tificar o que é necessário armazenar sas do mundo real. Há uma troca na- padrão. Imagina-se que, quanto mais determinante, é especificar a classifi-
no banco de dados. Muitas vezes os tural de nomenclatura: entidades claro for o nome da entidade, por cação do dado junto com o nome. As-
usuários da informação esquecem al- passam a se chamar tabelas, tuplas exemplo, melhor será para a pessoa sim, se a cor do veículo fizer referên-
guns detalhes na fase de levantamen- viram registros ou linhas, e atribu- entender o que está armazenado ali. cia a uma tabela de cores e, portan-
to, por isso é importante recolher o tos tornam-se colunas ou campos. A Parece óbvio, mas algum tempo atrás to, eu for armazenar o código da cor,
máximo de documentos possíveis. menos que haja alguma necessida- era comum utilizar nomes estranhos, é comum utilizar-se CD ou COD antes
Na maior parte dos casos, ter uma de muito específica, basta acrescen- muito mais vinculados aos progra- do nome. O nome do campo ficaria
ferramenta de auxílio para o analis- tar o tipo de dado e o tamanho de mas que mantinham a entidade do CDCOR, por exemplo.
ta criar e modelar a estrutura do ban- cada um dos campos ou colunas, es- que ao objetivo dela. Alguns
co de dados é desejável. Essas ferra- tabelecer chaves primárias e estran- analistas até se valiam des- PADRONIZE AS COLUNAS
mentas são conhecidas como CASE geiras (normalmente as ferramen- se expediente para manter-
(Computer Aided Software Engin- tas CASE fazem esse trabalho por se no emprego — quanto CLASSIFICAÇÃO OPÇÃO 1 OPÇÃO 2
eering). Entre elas estão ErWin, DbDe- nós), definir regras de integridade, mais obscuro, mais depen-
signer, MS Visio e Oracle Designer. criação de visões (views), índices e dência do analista. CÓDIGO COD CD

Cada uma possui características que outros aspectos físicos do projeto. NÚMERO NUM NR

a torna mais ou menos adequada pa- Hora de criar as estruturas físicas, TABELAS E COLUNAS DESCRIÇÃO DES DS

ra cada situação, mas todas contri- com tabelas, relacionamentos, cha- Se eu identifiquei um objeto NOME NOM NM

buem para o trabalho do analista. ves e tudo a que temos direito. Nor- que armazene as informações DATA DAT DT

Depois de levantados os requisi- malmente, as ferramentas CASE tam- de um veículo, devo dar-lhe VALOR VAL VL

tos de informação, deve-se fazer um bém fazem a maior parte do traba- o nome de VEICULO. Em cer- QUANTIDADE QTD QT

projeto lógico. Entende-se por pro- lho. Algumas são capazes de se co- tos casos, alguns analistas pre- SIGLA SIG SG

jeto lógico a fase em que se realiza nectar ao banco e criar as estruturas. ferem indicar qual o módulo DOMÍNIO DOM DM

26 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 27
024_CRIACAO 25/02/2006 21:57 Page 26

CRIAÇÃO CRIAÇÃO

Agora você precisa saber quais a modelagem lógica de dados, com- Outras geram os scripts para serem do sistema que mantém aquela es-
são as informações necessárias pa- posta pela aplicação do modelo de executados no banco de dados. Só trutura. Em outros, acrescenta-se a
ra sua empresa. Isso poderá lhe entidade X relacionamento e pela que, para chegar aqui, é necessário estrutura departamental que realiza
ajudar a diminuir a lista. normalização de dados. Em um pri- ficar atento a alguns detalhes. esse trabalho. Essa última opção é a
meiro momento não deve haver pior, visto que há mudanças freqüen-
PROJETO LÓGICO preocupação com a estrutura física PADRONIZAÇÃO tes nas funções departamentais de
Esta parte do processo deve aconte- que será criada, e sim com o aten- É sempre importante manter um pa- uma empresa moderna. Particular-
cer em paralelo à escolha do siste- dimento dos requisitos dos usuários. drão para o nome dos objetos, colu- mente, creio que ambas situações são
ma gerenciador de banco de dados. nas e outros elementos. Mesmo que desnecessárias, visto que atualmen-
Optar por um produto sem ter noção PROJETO FÍSICO você trabalhe sozinho em um proje- te uma classe é destacada para essa
das necessidades de informação da Uma vez estabelecido o projeto ló- to, é bem provável que no futuro ou- função. A classe normalmente tam-
empresa é como dar um tiro no pé. gico, vamos ao projeto físico. Nele, tras pessoas tenham de atualizar aqui- bém tem um nome claro e objetivo.
A maneira clássica de fazer isso en- transforma-se o modelo de entida- lo que você fez. A padronização co- Se há atributos importantes pa-
volve todos os conceitos de engenha- de X relacionamento para o mode- meça na documentação do projeto ra serem mantidos, como cor, mo-
ria de software para levantamento de lo físico, em geral, sem problemas. e continua em todo o processo físi- delo, ano de fabricação, ano do mo-
requisitos. Quando se pensa em infor- As estruturas relacionais (tabelas) co de criação do banco de dados. delo e montadora, deve-se colocar
mação, qualquer documento, tela de são representações bastante simples Toda equipe deve estar envolvida esses nomes nas colunas.
sistema ou relatório é útil para iden- e adequadas para caracterizar coi- para definir o que e como será esse Outro ponto importante, mas não
tificar o que é necessário armazenar sas do mundo real. Há uma troca na- padrão. Imagina-se que, quanto mais determinante, é especificar a classifi-
no banco de dados. Muitas vezes os tural de nomenclatura: entidades claro for o nome da entidade, por cação do dado junto com o nome. As-
usuários da informação esquecem al- passam a se chamar tabelas, tuplas exemplo, melhor será para a pessoa sim, se a cor do veículo fizer referên-
guns detalhes na fase de levantamen- viram registros ou linhas, e atribu- entender o que está armazenado ali. cia a uma tabela de cores e, portan-
to, por isso é importante recolher o tos tornam-se colunas ou campos. A Parece óbvio, mas algum tempo atrás to, eu for armazenar o código da cor,
máximo de documentos possíveis. menos que haja alguma necessida- era comum utilizar nomes estranhos, é comum utilizar-se CD ou COD antes
Na maior parte dos casos, ter uma de muito específica, basta acrescen- muito mais vinculados aos progra- do nome. O nome do campo ficaria
ferramenta de auxílio para o analis- tar o tipo de dado e o tamanho de mas que mantinham a entidade do CDCOR, por exemplo.
ta criar e modelar a estrutura do ban- cada um dos campos ou colunas, es- que ao objetivo dela. Alguns
co de dados é desejável. Essas ferra- tabelecer chaves primárias e estran- analistas até se valiam des- PADRONIZE AS COLUNAS
mentas são conhecidas como CASE geiras (normalmente as ferramen- se expediente para manter-
(Computer Aided Software Engin- tas CASE fazem esse trabalho por se no emprego — quanto CLASSIFICAÇÃO OPÇÃO 1 OPÇÃO 2
eering). Entre elas estão ErWin, DbDe- nós), definir regras de integridade, mais obscuro, mais depen-
signer, MS Visio e Oracle Designer. criação de visões (views), índices e dência do analista. CÓDIGO COD CD

Cada uma possui características que outros aspectos físicos do projeto. NÚMERO NUM NR

a torna mais ou menos adequada pa- Hora de criar as estruturas físicas, TABELAS E COLUNAS DESCRIÇÃO DES DS

ra cada situação, mas todas contri- com tabelas, relacionamentos, cha- Se eu identifiquei um objeto NOME NOM NM

buem para o trabalho do analista. ves e tudo a que temos direito. Nor- que armazene as informações DATA DAT DT

Depois de levantados os requisi- malmente, as ferramentas CASE tam- de um veículo, devo dar-lhe VALOR VAL VL

tos de informação, deve-se fazer um bém fazem a maior parte do traba- o nome de VEICULO. Em cer- QUANTIDADE QTD QT

projeto lógico. Entende-se por pro- lho. Algumas são capazes de se co- tos casos, alguns analistas pre- SIGLA SIG SG

jeto lógico a fase em que se realiza nectar ao banco e criar as estruturas. ferem indicar qual o módulo DOMÍNIO DOM DM

26 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 27
024_CRIACAO 25/02/2006 22:17 Page 28

CRIAÇÃO CRIAÇÃO

Como não é possível utilizar es- seqüentemente estrangeiras) são mo arquivos XML, imagens, sons e de é aumentado. Se você optar por
paços na definição do nome das co- definidas por campos numéricos. textos extensos deve-se utilizar o colocar a camada de aplicação no
lunas (ou mesmo objetos), utiliza- Colunas pesquisadas com freqüên- LOB. Normalmente há uma separa- mesmo servidor (ou servidores),
se o caractere sublinhado (_) para cia, como CPF, também são defi- ção para binários (BLOB), adequa- poderá comprometer seu desem-
substituir o espaço. A tabela ficaria nidas como numéricas. dos para armazenamento de ima- penho pelo excesso de uso.
como no exemplo da figura abaixo. A maioria dos gerenciadores de gens e sons, e alfanuméricos (CLOB). Assim, prefira programar o ban-
banco de dados trabalha com dois No caso específico de XML, é pos- co de dados para rotinas que en-
PROCESSO DE grupos de tipos de dados alfanu- sível que o gerenciador de banco volvam acesso e manipulação de
méricos: CHAR e VARCHAR (ou de dados tenha algum mecanismo dados. Os programas devem seguir
CRIAÇÃO DE BANCO
VARCHAR2, no Oracle). O primei- melhor de armazenamento. a padronização da empresa no que
DE DADOS ro utiliza todo o espaço especifi- diz respeito aos módulos: definição
PROJETO Análise e modelagem cado, enquanto que o segundo é PROGRAMAÇÃO de variáveis, letras maiúsculas e/ou
LÓGICO DE utilizando o Modelo de
DADOS Entidade e variável, usando, no máximo, o es- Sempre que possível, prefira criar minúsculas para comandos etc.
Relacionamento e
Normalização de Dados paço predeterminado. Isso faz com os módulos que utilizam e manipu-
PROJETO FÍSICO Desenho com definição que o segundo, por utilizar apenas lam dados dentro do banco de da- INTERFACES DE
DE DADOS de tabelas, índices,
visões etc. o espaço efetivamente ocupado dos. Apesar de atualmente haver ADMINISTRAÇÃO
CRIAÇÃO DO Criação de scripts para pelo conteúdo, otimize o armaze- uma grande difusão da necessida- Tão importante quanto criar estru-
BANCO DE DADOS execução do gerenciador
de banco de dados namento e não deixe buracos nos de de independência de banco de turas estáveis para suprir as ne-
BANCO DE DADOS CRIADO conteúdos. DBAs experientes le- dados por meio da utilização de uma cessidades de informação da em-
vam em consideração o volume de camada intermediária que assuma presa é a tarefa de manter o ban-
TIPOS DE DADOS alterações no conteúdo para essa essa responsabilidade, é inegável co de dados com um nível aceitá-
A definição do tipo de dados tam- definição. Isso porque, caso um que o gerenciador do banco de da- vel de tempo de resposta. Para is-
bém exige padronização. Parece conteúdo seja alterado com fre- dos é o ambiente mais adequado so, é necessário ter uma atenção
óbvio que um dado que receberá qüência, a atualização poderá ge- para manter e atualizar dados. especial na administração.
apenas conteúdo numérico deva rar uma fragmentação da informa- Ao se programar em qualquer As interfaces de administração
ser definido como NUMBER, DECI- ção — quando incluído, o conteú- outra camada que não a de dados, têm evoluído bastante para sim-
MAL, INTEGER, FLOAT ou qualquer do ocupou um espaço e, depois de o tráfego de informações pela re- plificar o processo. Mesmo os ge-
outro tipo que seja otimizado pa- uma alteração para maior, quan- renciadores de código aberto pos-
ra este fim. O mesmo acontece com do não há espaço na seqüência, suem interfaces amigáveis que per-
alfanuméricos e datas, mas há al- será colocado em outro espaço fí- mitem criar e manter todas as es-
gumas observações a considerar sico do disco. truturas do banco rapidamente. Al-
nessa escolha. Campos que armazenam datas gumas podem ser acessadas re-
O tipo de dado numérico, de um devem ser definidos dessa forma motamente, o que facilita o pro-
modo geral, possui mecanismos para facilitar operações de busca cesso de manutenção e acompa-
que fazem com que as buscas se- e até mesmo operações matemá- nhamento que o DBA faz no ban-
jam mais rápidas do que as que ticas entre elas. O padrão SQL pos- co de dados.
ocorrem em colunas alfanuméri- sui uma série de comandos espe- A tendência é que os gerencia-
cas. Ele também ocupa menos es- cíficos para calcular intervalo en- dores sejam cada vez mais auto-
paço físico para armazenamento. tre datas, extrair ano, dia, mês etc. Programação: no SQL Server 2005 dá matizados, em especial no que diz
Por isso, chaves primárias (e con- Para conteúdos muito grandes, co- para criar consultas sem escrever código respeito ao desempenho. Os ajus-

28 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 29
024_CRIACAO 25/02/2006 22:17 Page 28

CRIAÇÃO CRIAÇÃO

Como não é possível utilizar es- seqüentemente estrangeiras) são mo arquivos XML, imagens, sons e de é aumentado. Se você optar por
paços na definição do nome das co- definidas por campos numéricos. textos extensos deve-se utilizar o colocar a camada de aplicação no
lunas (ou mesmo objetos), utiliza- Colunas pesquisadas com freqüên- LOB. Normalmente há uma separa- mesmo servidor (ou servidores),
se o caractere sublinhado (_) para cia, como CPF, também são defi- ção para binários (BLOB), adequa- poderá comprometer seu desem-
substituir o espaço. A tabela ficaria nidas como numéricas. dos para armazenamento de ima- penho pelo excesso de uso.
como no exemplo da figura abaixo. A maioria dos gerenciadores de gens e sons, e alfanuméricos (CLOB). Assim, prefira programar o ban-
banco de dados trabalha com dois No caso específico de XML, é pos- co de dados para rotinas que en-
PROCESSO DE grupos de tipos de dados alfanu- sível que o gerenciador de banco volvam acesso e manipulação de
méricos: CHAR e VARCHAR (ou de dados tenha algum mecanismo dados. Os programas devem seguir
CRIAÇÃO DE BANCO
VARCHAR2, no Oracle). O primei- melhor de armazenamento. a padronização da empresa no que
DE DADOS ro utiliza todo o espaço especifi- diz respeito aos módulos: definição
PROJETO Análise e modelagem cado, enquanto que o segundo é PROGRAMAÇÃO de variáveis, letras maiúsculas e/ou
LÓGICO DE utilizando o Modelo de
DADOS Entidade e variável, usando, no máximo, o es- Sempre que possível, prefira criar minúsculas para comandos etc.
Relacionamento e
Normalização de Dados paço predeterminado. Isso faz com os módulos que utilizam e manipu-
PROJETO FÍSICO Desenho com definição que o segundo, por utilizar apenas lam dados dentro do banco de da- INTERFACES DE
DE DADOS de tabelas, índices,
visões etc. o espaço efetivamente ocupado dos. Apesar de atualmente haver ADMINISTRAÇÃO
CRIAÇÃO DO Criação de scripts para pelo conteúdo, otimize o armaze- uma grande difusão da necessida- Tão importante quanto criar estru-
BANCO DE DADOS execução do gerenciador
de banco de dados namento e não deixe buracos nos de de independência de banco de turas estáveis para suprir as ne-
BANCO DE DADOS CRIADO conteúdos. DBAs experientes le- dados por meio da utilização de uma cessidades de informação da em-
vam em consideração o volume de camada intermediária que assuma presa é a tarefa de manter o ban-
TIPOS DE DADOS alterações no conteúdo para essa essa responsabilidade, é inegável co de dados com um nível aceitá-
A definição do tipo de dados tam- definição. Isso porque, caso um que o gerenciador do banco de da- vel de tempo de resposta. Para is-
bém exige padronização. Parece conteúdo seja alterado com fre- dos é o ambiente mais adequado so, é necessário ter uma atenção
óbvio que um dado que receberá qüência, a atualização poderá ge- para manter e atualizar dados. especial na administração.
apenas conteúdo numérico deva rar uma fragmentação da informa- Ao se programar em qualquer As interfaces de administração
ser definido como NUMBER, DECI- ção — quando incluído, o conteú- outra camada que não a de dados, têm evoluído bastante para sim-
MAL, INTEGER, FLOAT ou qualquer do ocupou um espaço e, depois de o tráfego de informações pela re- plificar o processo. Mesmo os ge-
outro tipo que seja otimizado pa- uma alteração para maior, quan- renciadores de código aberto pos-
ra este fim. O mesmo acontece com do não há espaço na seqüência, suem interfaces amigáveis que per-
alfanuméricos e datas, mas há al- será colocado em outro espaço fí- mitem criar e manter todas as es-
gumas observações a considerar sico do disco. truturas do banco rapidamente. Al-
nessa escolha. Campos que armazenam datas gumas podem ser acessadas re-
O tipo de dado numérico, de um devem ser definidos dessa forma motamente, o que facilita o pro-
modo geral, possui mecanismos para facilitar operações de busca cesso de manutenção e acompa-
que fazem com que as buscas se- e até mesmo operações matemá- nhamento que o DBA faz no ban-
jam mais rápidas do que as que ticas entre elas. O padrão SQL pos- co de dados.
ocorrem em colunas alfanuméri- sui uma série de comandos espe- A tendência é que os gerencia-
cas. Ele também ocupa menos es- cíficos para calcular intervalo en- dores sejam cada vez mais auto-
paço físico para armazenamento. tre datas, extrair ano, dia, mês etc. Programação: no SQL Server 2005 dá matizados, em especial no que diz
Por isso, chaves primárias (e con- Para conteúdos muito grandes, co- para criar consultas sem escrever código respeito ao desempenho. Os ajus-

28 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 29
024_CRIACAO 25/02/2006 22:18 Page 30

CRIAÇÃO

tes (tuning) podem ser realizados ■ CÓPIA COMPLETA DOS DADOS


sem a interferência direta do DBA. (ON LINE): as transações que são efe-
O administrador supervisiona e va- tuadas são armazenadas em local es-
lida o que foi feito e, em caso de pecífico para serem copiadas para
problemas, adota outras medidas. um meio físico. Em caso de pane no
banco de dados, é possível retornar
SEGURANÇA a um ponto no tempo, até o limite
Nunca é pouco lembrar que a das transações gravadas no disco. Is-
criação de usuários e a rotina de so faz com que a perda de dados se-
backup seja planejada com coe- ja consideravelmente menor.
rência. Usuários com “superpode- ■ SERVIDOR STANDBY: a cópia das
res” não são desejáveis em bancos transações é realizada em um ser-
de dados. Deve haver poucos, de vidor separado. Em caso de pane,
preferência um único DBA por ban- o outro servidor assume a função
co. Deve ser objeto de estudo cons- do servidor que falhou.
tante a verificação e a auditoria dos
usuários e as transações realiza- CONCLUSÃO
das. Não basta confiar apenas no Com planejamento, padronização e
sistema para esse controle. Os ge- controle é possível fazer com que
renciadores possuem interfaces de os dados da empresa possam ser
administração relativamente sim- acessados em segurança e rapida-
ples. Usuários genéricos podem mente. Unir diversas tabelas não é
comprometer a segurança dos da- criar um banco. O processo come-
dos nessa situação. ça com a escolha do gerenciador
A rotina de backup deve ser tes- adequado às necessidades e termi-
tada inclusive com restaurações pe- na com a execução de um plano ro-
riódicas, para determinar a exatidão busto e completo para o que é pre-
e o conhecimento do processo. Nor- ciso hoje e será necessário amanhã.
malmente, para backup, há al-
gumas formas disponíveis nos
principais gerenciadores. As
principais são:
■ CÓPIA COMPLETA DOS DA-
DOS (OFF LINE): interrompe-
se a execução do banco de da-
dos e copiam-se os arquivos
de dados. Em caso de pane,
pode-se restaurar todo o ban-
co que retornará ao momen-
BI: ferramenta para necessidade atual e futura
to em que foi feita a cópia.

30 < C O L E Ç Ã O I N F O
031_LINGUAGENS 25/02/2006 22:21 Page 31

LINGUAGENS

O BANCO FALA
SQLQUÊS
CONHEÇA O IDIOMA DOS BANCOS DE DADOS E AS
LINGUAGENS DE ACESSO A ELES
POR ANDRÉ CARDOZO

s programadores podem ca finalidade: manipular bancos de da-

O escolher a linguagem que


quiserem para construir
aplicativos que acessem
o banco de dados. Mas não têm como
dos. A SQL — em muitos casos pro-
nunciada como SEQUEL — é adotada
por todos os sistemas gerenciadores
mais utilizados no mercado, como Ora-
escapar da SQL (Structured Query Lan- cle, MySQL e Microsoft SQL Server.
guage). Se o TCP/IP é o idioma da in- No nível mais avançado, um pro-
ternet, podemos dizer que a SQL tem gramador precisa se dedicar para
a mesma função nos bancos de da- dominar a SQL, mesmo porque di-
dos. A linguagem foi desenvolvida na versos bancos de dados possuem ex-
década de 70 pela IBM com uma úni- tensões proprietárias, funções mais

© ILUSTRAÇÃO PAVÃO C O L E Ç Ã O I N F O > 31


031_LINGUAGENS 25/02/2006 22:22 Page 32

LINGUAGENS LINGUAGENS

avançadas que só funcionam naque- manipulação de dados da SQL com as A sintaxe possui alguns elemen- do o OpenASP, no servidor web Apa-
le sistema. Os comandos básicos são facilidades de programação de uma lin- tos derivados do Perl, mas é bem che. Mas a implementação desse ti-
intuitivos e podem ser usados sem guagem procedural. Permite criar ob- mais simples e exige apenas noções po de solução costuma ser problemá-
dificuldade por quem tem noção de jetos de esquema, como gatilhos, pro- básicas de programação. Além dis- tica para os webmasters.
programação. Veja alguns: cedimentos armazenados e pacotes. so, há outra qualidade muito impor-
CREATE: cria tabelas A linguagem PL/SQL utiliza o con- tante, que beneficia uma parte sen- JAVA, A ECLÉTICA
SELECT: seleciona dados ceito de bloco estruturado. Esses blo- sível de todos nós: o bolso. O inter- A linguagem Java é a al-
INSERT: inclui dados em tabelas cos são compostos por procedures e pretador PHP (programa que pro- ternativa de programa-
UPDATE: atualiza dados funções. Um bloco tem a estrutura cessa as páginas feitas nesse for- ção criada pela Sun Mi-
DELETE: apaga dados básica composta por três partes: mato) é gratuito, e basta baixar e crosystems. É uma lin-
Além das expressões principais, DECLARE: seção opcional, em que instalar no servidor para começar guagem robusta, com
outros comandos muito usados são todos os objetos são declarados; a criar um website dinâmico. funções complexas.
o “where”, que inclui a condição, e BEGIN: em que os comandos Possui como principal vantagem, a
o “order by”, que ordena o resulta- PL/SQL são colocados; ASP, A OPÇÃO WINDOWS portabilidade — roda em qualquer
do da consulta SQL. Veja como elas EXCEPTION: em que os erros são O ASP (Active Ser- plataforma, de palmtop a main-
funcionam no exemplo abaixo: tratados. ver Pages) não é frame, de sistemas embarcados a
“SELECT nome,endereco FROM exatamente uma programas sérios de internet
clientes WHERE estado = ‘sp’ > LINGUAGENS DE ACESSO linguagem de banking, por exemplo. Profissionais
ORDER BY nome” Opções não faltam para os desen- programação, mas o que a Microsoft especializados em Java estão entre
Esse comando seleciona as colu- volvedores de programas de acesso define como “ambiente de execução os mais disputados do mercado.
nas “nome” e “endereco” da tabela a banco de dados. As mais popula- de scripts”. Na maior parte das vezes,
“clientes” em que o estado é igual res são ASP, Perl, PHP e Java. Cada as instruções são escritas em VBScript, PERL, A VETERANA
a “sp” (condição imposta pela ex- uma dessas linguagens tem suas van- que é derivado do Visual Basic, tam- A linguagem Perl
pressão “where”). Portanto, somen- tagens e desvantagens, e a escolha bém filhote da Microsoft. (Practical Extraction
te os clientes de São Paulo. Os re- depende de uma série de fatores, co- A penetração do Visual Basic no and Reporting Lan-
sultados são ordenados por “nome”. mo compatibilidade, custo e porta- mercado contribui bastante para o guage) foi criada em
A tabela poderia conter outras co- bilidade. Conheça essas opções. crescimento do ASP. Como a quanti- 1987 pelo progra-
lunas, como “idade” e “sexo”, mas dade de programadores VB é gran- mador Larry Wall para resolver tare-
nesse exemplo usamos só “nome” PHP, A POPULAR de, fica mais fácil para as empresas fas de administração em sistemas Unix.
e “endereco”. Para selecionar todas Uma solução contratarem profissionais que desen- Wall divulgou a primeira versão de
as colunas, basta trocar “nome,en- bastante popular volvam aplicações em VBScript. Perl nas listas de discussão da Use-
dereco” por *, como abaixo: entre os web- Aderir ao ASP significa quase sem- net e logo programadores de todo o
“SELECT * FROM clientes masters de sites pre optar pelo mundo Windows, uma mundo começaram a dar sugestões
WHERE estado = ‘sp’ ORDER dinâmicos é o PHP (Personal Home vez que as páginas ASP só rodam na- para o aprimoramento da linguagem.
BY nome” Page), criado pelo programador Ras- tivamente em servidores Windows Uma das vantagens de Perl é a por-
mus Leedorf. A linguagem funcio- com servidor web IIS (Internet Infor- tabilidade. Os scripts podem ser trans-
PL/SQL, A TURBINADA na tanto em Unix quanto em Win- mation Server), da Microsoft. É pos- feridos do Unix para o Windows e vi-
A linguagem PL/SQL é uma extensão dows e possui suporte para diver- sível rodar páginas ASP em sistemas ce-versa com pouca ou nenhuma mo-
da SQL especializada no banco de da- sos bancos de dados, incluindo Unix por intermédio de soluções co- dificação. A linguagem é expandida
dos Oracle. Ela combina a facilidade de MySQL, Sybase, SQL e Oracle. merciais, como o ChiliASP, ou usan- pelo uso de módulos.

32 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 33
031_LINGUAGENS 25/02/2006 22:22 Page 32

LINGUAGENS LINGUAGENS

avançadas que só funcionam naque- manipulação de dados da SQL com as A sintaxe possui alguns elemen- do o OpenASP, no servidor web Apa-
le sistema. Os comandos básicos são facilidades de programação de uma lin- tos derivados do Perl, mas é bem che. Mas a implementação desse ti-
intuitivos e podem ser usados sem guagem procedural. Permite criar ob- mais simples e exige apenas noções po de solução costuma ser problemá-
dificuldade por quem tem noção de jetos de esquema, como gatilhos, pro- básicas de programação. Além dis- tica para os webmasters.
programação. Veja alguns: cedimentos armazenados e pacotes. so, há outra qualidade muito impor-
CREATE: cria tabelas A linguagem PL/SQL utiliza o con- tante, que beneficia uma parte sen- JAVA, A ECLÉTICA
SELECT: seleciona dados ceito de bloco estruturado. Esses blo- sível de todos nós: o bolso. O inter- A linguagem Java é a al-
INSERT: inclui dados em tabelas cos são compostos por procedures e pretador PHP (programa que pro- ternativa de programa-
UPDATE: atualiza dados funções. Um bloco tem a estrutura cessa as páginas feitas nesse for- ção criada pela Sun Mi-
DELETE: apaga dados básica composta por três partes: mato) é gratuito, e basta baixar e crosystems. É uma lin-
Além das expressões principais, DECLARE: seção opcional, em que instalar no servidor para começar guagem robusta, com
outros comandos muito usados são todos os objetos são declarados; a criar um website dinâmico. funções complexas.
o “where”, que inclui a condição, e BEGIN: em que os comandos Possui como principal vantagem, a
o “order by”, que ordena o resulta- PL/SQL são colocados; ASP, A OPÇÃO WINDOWS portabilidade — roda em qualquer
do da consulta SQL. Veja como elas EXCEPTION: em que os erros são O ASP (Active Ser- plataforma, de palmtop a main-
funcionam no exemplo abaixo: tratados. ver Pages) não é frame, de sistemas embarcados a
“SELECT nome,endereco FROM exatamente uma programas sérios de internet
clientes WHERE estado = ‘sp’ > LINGUAGENS DE ACESSO linguagem de banking, por exemplo. Profissionais
ORDER BY nome” Opções não faltam para os desen- programação, mas o que a Microsoft especializados em Java estão entre
Esse comando seleciona as colu- volvedores de programas de acesso define como “ambiente de execução os mais disputados do mercado.
nas “nome” e “endereco” da tabela a banco de dados. As mais popula- de scripts”. Na maior parte das vezes,
“clientes” em que o estado é igual res são ASP, Perl, PHP e Java. Cada as instruções são escritas em VBScript, PERL, A VETERANA
a “sp” (condição imposta pela ex- uma dessas linguagens tem suas van- que é derivado do Visual Basic, tam- A linguagem Perl
pressão “where”). Portanto, somen- tagens e desvantagens, e a escolha bém filhote da Microsoft. (Practical Extraction
te os clientes de São Paulo. Os re- depende de uma série de fatores, co- A penetração do Visual Basic no and Reporting Lan-
sultados são ordenados por “nome”. mo compatibilidade, custo e porta- mercado contribui bastante para o guage) foi criada em
A tabela poderia conter outras co- bilidade. Conheça essas opções. crescimento do ASP. Como a quanti- 1987 pelo progra-
lunas, como “idade” e “sexo”, mas dade de programadores VB é gran- mador Larry Wall para resolver tare-
nesse exemplo usamos só “nome” PHP, A POPULAR de, fica mais fácil para as empresas fas de administração em sistemas Unix.
e “endereco”. Para selecionar todas Uma solução contratarem profissionais que desen- Wall divulgou a primeira versão de
as colunas, basta trocar “nome,en- bastante popular volvam aplicações em VBScript. Perl nas listas de discussão da Use-
dereco” por *, como abaixo: entre os web- Aderir ao ASP significa quase sem- net e logo programadores de todo o
“SELECT * FROM clientes masters de sites pre optar pelo mundo Windows, uma mundo começaram a dar sugestões
WHERE estado = ‘sp’ ORDER dinâmicos é o PHP (Personal Home vez que as páginas ASP só rodam na- para o aprimoramento da linguagem.
BY nome” Page), criado pelo programador Ras- tivamente em servidores Windows Uma das vantagens de Perl é a por-
mus Leedorf. A linguagem funcio- com servidor web IIS (Internet Infor- tabilidade. Os scripts podem ser trans-
PL/SQL, A TURBINADA na tanto em Unix quanto em Win- mation Server), da Microsoft. É pos- feridos do Unix para o Windows e vi-
A linguagem PL/SQL é uma extensão dows e possui suporte para diver- sível rodar páginas ASP em sistemas ce-versa com pouca ou nenhuma mo-
da SQL especializada no banco de da- sos bancos de dados, incluindo Unix por intermédio de soluções co- dificação. A linguagem é expandida
dos Oracle. Ela combina a facilidade de MySQL, Sybase, SQL e Oracle. merciais, como o ChiliASP, ou usan- pelo uso de módulos.

32 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 33
034_SQL_SERVEREXPRESS 25/02/2006 23:01 Page 34

TESTE/SQL SERVER

UM SQL SERVER
FÁCIL DE USAR
A VERSÃO GRÁTIS DO BANCO DE DADOS DA MICROSOFT
TEM ASSISTENTE E MUITOS RECURSOS
POR NIVALDO FORESTI

que não faz a concorrên- servidor Pentium 4 de 2 GHz com 1

O cia. Bastou os bancos de


dados de código aberto
começarem a ganhar es-
paço nas corporações, os fabricantes
GB de memória RAM.
Seguindo o padrão dos produtos de-
senvolvidos pela Microsoft, a instala-
ção do Express é extremamente sim-
tradicionais passaram ples e fácil de fazer. Um
a oferecer versões gra- FIQUE LIGADO assistente leva o usuá-
tuitas com a maioria rio pela mão por todas
dos recursos das ver- > Pequenas empresas as etapas do processo.
sões pagas e algumas e desenvolvedores são Com alguns cliques de
restrições. A Microsoft o alvo do SQL Server mouse, você instala
inaugurou esse movi- 2005 Express uma instância do ge-
mento, lançando no fi- renciador de banco de
nal do ano passado o SQL Server 2005 dados. Mas nem tudo é perfeito. A suí-
Express e seus três irmãos pagos: te de administração e desenvolvimen-
Workgroup, Standard e Enterprise. De- to SQL Server Express Management
pois, vieram a Oracle e a IBM. Studio — Community Technology Pre-
Como as versões
comerciais irmãs, o
SQL Server 2005 Ex-
press vem integrado
ao Visual Studio .Net,
o que se traduz em fa-
cilidade para o desen-
volvimento de aplica-
ções. O INFOLAB tes-
tou o programa num
Management Studio:
suíte de administração
e desenvolvimento

34 < C O L E Ç Ã O I N F O
034_SQL_SERVEREXPRESS 25/02/2006 22:28 Page 35

TESTE/SQL SERVER

view (CTP) não acompanha a instala- guagem CLR (Common Language


ção. É preciso fazer o download se- Runtime) da .Net com a Transact-SQL,
paradamente do CTP no endereço a linguagem de comandos SQL da Mi-
www.info.abril.com.br/download/ crosoft. O novo conjunto de objetos
4454.shtml. e a habilidade de agir como cliente
na replicação de dados e nos cená-
RECURSOS rios de envio de mensagens não fal-
Não espere que a Microsoft tenha da- taram na versão gratuita. Em suma,
do tudo de bandeja nessa versão dis- dá para aproveitar bastante até serem
ponível gratuitamente para você. Fal- necessárias mais funcionalidades.
tam vários recursos. Você não encon-
trará o DTS (Data Transformation
System), o que dará muita dor de ca- SQL SERVER 2005
beça na hora de importar dados de EXPRESS
outros formatos de arquivo para den- FABRICANTE Microsoft
tro do banco de dados. Também não PRÓ Fácil de usar e gerenciar
terá a pesquisa em texto, os serviços CONTRAS Suporta apenas um
de notificação e os recursos de busi- processador, 1 GB de
memória e bancos
ness intelligence que tornam a ver- de até 4GB

são Enterprise bastante atraente pa- INSTALAÇÃO 8,5


Rápida, com verificação
ra as empresas maiorzinhas. de pré-requisitos e
primeiros passos
Outras restrições importantes são GERENCIAMENTO 7,5
o suporte a apenas um processador, Possui administração
similar à da versão
somente 1 GB de memória RAM e até Standard, mas faltam
funcionalidades
4 GB de tamanho do banco de dados. FERRAMENTAS 6,5
Se bem que é difícil uma pequena em- Fica devendo ferramentas
como o DTS para a
presa bater nesses limites. importação de dados

DESENVOLVIMENTO 8,5
Traz todos os recursos das
FUNCIONALIDADES demais versões, inclusive
suporte nativo a XML
Nem tudo é problema. O mecanismo SEGURANÇA 8,0
de acesso a dados MSDE (Microsoft Conta com criptografia
baseada em chaves
Desktop Engine), um SQL Server ru- e replicação de dados
via web
dimentar para desktops, desapare- AVALIAÇÃO 7,6
ceu com o advento do Express. E, com TÉCNICA (1)

ele, sumiu a restrição de desempe- PREÇO Gratuito

nho quando existiam mais de cinco CUSTO/BENEFÍCIO

conexões simultâneas ao banco de ONDE ENCONTRAR www.info.abril.com.br/


download/4339.shtml
dados. Toda a funcionalidade progra- (1) Média ponderada considerando os seguintes itens e respectivos pesos:
Instalação (10%), Gerenciamento (35%), Ferramentas (35%),
mática está no Express, até mesmo o Desenvolvimento (10%) e Segurança dos dados (10%). O SQL Server
Express ganha 0,2 ponto na avaliação técnica devido ao bom desempenho
do seu fabricante na Pesquisa INFO de Marcas 2005.
suporte a XML e a integração da lin-

C O L E Ç Ã O I N F O > 35
036_ORACLE_EXPRESS-8 25/02/2006 22:30 Page 36

TESTE/ORACLE EXPRESS TESTE/ORACLE EXPRESS

ORACLE EM
VERSÃO LIGHT
A EDIÇÃO GRATUITA DO PODEROSO BANCO DE DADOS
CHEGA COM RECURSOS DE SOBRA Browser: controle sobre cada objeto Utilitários: inclui importação de XML
POR ERIC COSTA
Apesar de ser relativamente sim- grupo de discussão mediado por pro-
eguindo os rastros da A licença do Oracle Express é bas- ples, a interface web funciona bem, fissionais da Oracle. Ao baixar o Ora-

S Microsoft, a Oracle pro-


duziu uma versão ma-
gra de seu poderoso
banco de dados, a Oracle 10g Express
tante aberta: é possível, sem pagar
nada, distribuir e implantar o pro-
grama, além de usá-lo para desen-
volvimento de software. Nos testes
trazendo recursos suficientes para
a criação e a manutenção de ban-
cos de dados. Ainda existe, claro,
uma ferramenta para migrar um
cle Express, é possível cadastrar-se
nesse grupo automaticamente.

ORACLE 10G
Edition, de olho nas pequenas em- da INFO, feitos com o sistema ope- banco de dados do Oracle Express EXPRESS EDITION
presas. O software inclui os princi- racional SUSE Linux 10.0, o Oracle para o Oracle 10g pago.
pais recursos das versões comerciais Express Edition teve bom desem- Uma grande vantagem da versão FABRICANTE Oracle

do irmão robusto e é gratuito. Em penho, sendo instalado rapidamen- Express do Oracle em relação ao tam- PRÓS Dispensa hardware
parrudo, traz recursos
contrapartida, limita o tamanho má- te num micro com processador Pen- bém gratuito MySQL está no supor- de primeira

ximo da base de dados a 4 GB, além tium 4 de 2,4 GHz, com 512 MB de te ao PL/SQL, a versão turbinada do CONTRAS Limitações ao tamanho do
banco de dados, à
do hardware usado. O gerenciador memória RAM. A instalação é bas- SQL feita pela Oracle. Com ela, é pos- memória e CPU usadas

de bancos de dados tante simples. Toda a sível acrescentar mais funcionalida- COMPATIBILIDADE 8,0
usa apenas um pro- FIQUE LIGADO administração do de em stored procedures (ou rotinas Roda em Windows e Linux
(distribuições compatíveis
armazenadas), o que pode diminuir com pacotes RPM)
cessador (caso o com- banco de dados é fei-
putador tenha mais >
Limitações tornam
ta pelo browser, o que a necessidade de manutenção futu- INSTALAÇÃO 8,0
Instalação simples e direta
o Oracle 10g Express ra dos programas que usem o ban- tanto no Windows quanto
de um) e, no máximo, também facilita o no Linux
indicado para as co de dados. Outra vantagem do Ora-
1 GB de RAM, mesmo acesso remoto, para RECURSOS 8,5
pequenas empresas e cle Express é a robustez do banco Suporte a PL/SQL,
que o micro possua quem quer deixar o integra-se com Java, C++,
os desenvolvedores de dados, que traz a base do respei- VB.NET, entre outras
mais memória. servidor afastado. linguagens
tado Oracle 10g. Para quem vai de- FERRAMENTAS 8,0
senvolver software, a versão Express Gerenciamento pelo
browser, com ferramenta
tem o mesmo suporte a linguagens de construção de consultas

de programação do Oracle 10g, in- AVALIAÇÃO TÉCNICA 8,4

tegrando-se com Java, C++, PHP, PREÇO (R$) (1) Gratuito

com os principais dialetos da tecno- CUSTO/BENEFÍCIO

logia .Net (como C# e VB.NET), en- ONDE ENCONTRAR www.info.abril.com.br/


download/4346.shtml
tre outros. O suporte do Oracle Ex- (1) Média ponderada considerando os seguintes itens e respectivos pesos:
press é feito pelos próprios usuários, Compatibilidade (20%), Instalação (20%), Recursos (30%) e Ferramentas
(30%). O Oracle Express ganha 0,2 ponto na Avaliação Técnica devido ao
Página principal: portal de acesso a funções e links com a comunidade Oracle bom desempenho do seu fabricante na Pesquisa INFO de Marcas 2005.
que ajudam uns aos outros em um

36 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 37
036_ORACLE_EXPRESS-8 25/02/2006 22:30 Page 36

TESTE/ORACLE EXPRESS TESTE/ORACLE EXPRESS

ORACLE EM
VERSÃO LIGHT
A EDIÇÃO GRATUITA DO PODEROSO BANCO DE DADOS
CHEGA COM RECURSOS DE SOBRA Browser: controle sobre cada objeto Utilitários: inclui importação de XML
POR ERIC COSTA
Apesar de ser relativamente sim- grupo de discussão mediado por pro-
eguindo os rastros da A licença do Oracle Express é bas- ples, a interface web funciona bem, fissionais da Oracle. Ao baixar o Ora-

S Microsoft, a Oracle pro-


duziu uma versão ma-
gra de seu poderoso
banco de dados, a Oracle 10g Express
tante aberta: é possível, sem pagar
nada, distribuir e implantar o pro-
grama, além de usá-lo para desen-
volvimento de software. Nos testes
trazendo recursos suficientes para
a criação e a manutenção de ban-
cos de dados. Ainda existe, claro,
uma ferramenta para migrar um
cle Express, é possível cadastrar-se
nesse grupo automaticamente.

ORACLE 10G
Edition, de olho nas pequenas em- da INFO, feitos com o sistema ope- banco de dados do Oracle Express EXPRESS EDITION
presas. O software inclui os princi- racional SUSE Linux 10.0, o Oracle para o Oracle 10g pago.
pais recursos das versões comerciais Express Edition teve bom desem- Uma grande vantagem da versão FABRICANTE Oracle

do irmão robusto e é gratuito. Em penho, sendo instalado rapidamen- Express do Oracle em relação ao tam- PRÓS Dispensa hardware
parrudo, traz recursos
contrapartida, limita o tamanho má- te num micro com processador Pen- bém gratuito MySQL está no supor- de primeira

ximo da base de dados a 4 GB, além tium 4 de 2,4 GHz, com 512 MB de te ao PL/SQL, a versão turbinada do CONTRAS Limitações ao tamanho do
banco de dados, à
do hardware usado. O gerenciador memória RAM. A instalação é bas- SQL feita pela Oracle. Com ela, é pos- memória e CPU usadas

de bancos de dados tante simples. Toda a sível acrescentar mais funcionalida- COMPATIBILIDADE 8,0
usa apenas um pro- FIQUE LIGADO administração do de em stored procedures (ou rotinas Roda em Windows e Linux
(distribuições compatíveis
armazenadas), o que pode diminuir com pacotes RPM)
cessador (caso o com- banco de dados é fei-
putador tenha mais >
Limitações tornam
ta pelo browser, o que a necessidade de manutenção futu- INSTALAÇÃO 8,0
Instalação simples e direta
o Oracle 10g Express ra dos programas que usem o ban- tanto no Windows quanto
de um) e, no máximo, também facilita o no Linux
indicado para as co de dados. Outra vantagem do Ora-
1 GB de RAM, mesmo acesso remoto, para RECURSOS 8,5
pequenas empresas e cle Express é a robustez do banco Suporte a PL/SQL,
que o micro possua quem quer deixar o integra-se com Java, C++,
os desenvolvedores de dados, que traz a base do respei- VB.NET, entre outras
mais memória. servidor afastado. linguagens
tado Oracle 10g. Para quem vai de- FERRAMENTAS 8,0
senvolver software, a versão Express Gerenciamento pelo
browser, com ferramenta
tem o mesmo suporte a linguagens de construção de consultas

de programação do Oracle 10g, in- AVALIAÇÃO TÉCNICA 8,4

tegrando-se com Java, C++, PHP, PREÇO (R$) (1) Gratuito

com os principais dialetos da tecno- CUSTO/BENEFÍCIO

logia .Net (como C# e VB.NET), en- ONDE ENCONTRAR www.info.abril.com.br/


download/4346.shtml
tre outros. O suporte do Oracle Ex- (1) Média ponderada considerando os seguintes itens e respectivos pesos:
press é feito pelos próprios usuários, Compatibilidade (20%), Instalação (20%), Recursos (30%) e Ferramentas
(30%). O Oracle Express ganha 0,2 ponto na Avaliação Técnica devido ao
Página principal: portal de acesso a funções e links com a comunidade Oracle bom desempenho do seu fabricante na Pesquisa INFO de Marcas 2005.
que ajudam uns aos outros em um

36 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 37
038_DB2_EXPRESS 25/02/2006 22:31 Page 38

TESTE/DB2 EXPRESS TESTE/DB2 EXPRESS

DB2 GRÁTIS COM Centro de Controle: dá


conta de todas as
instâncias em operação

TUDO DENTRO
A VERSÃO DEGUSTAÇÃO DO BANCO DE DADOS DA IBM
seu funcionamento,
criando ou carregan-
do os bancos de da-
VEM REPLETA DE BOAS FERRAMENTAS dos de exemplo que
POR NIVALDO FORESTI o acompanham. Uma
série de caixas de diá-
epois da Microsoft e da um. Acompanhe a seguir o teste do logo e janelas de con-

D Oracle, foi a vez da IBM


criar uma versão gratui-
ta de seu robusto ban-
co de dados DB2. Como as demais
INFOLAB, realizado num PC Pentium
4 de 2,8 MHz, com 512 MB de RAM e
Windows 2003 Server Standard.
firmação indicam o
que fazer a cada pas-
so da instalação em bom português.
A atualização para versões mais
todas elas. É um utilitário bastante
rico em funcionalidade para criar e
edições “expressas” dos concorren- INSTALAÇÃO recentes fica a um clique de distân- modificar tabelas, executar consul-
tes, o DB2 Express-C tem limitações O processo de instalação do DB2 Ex- cia no próprio instalador. Basta acio- tas (queries) e análises complexas,
— suporta até 4 GB de memória press-C é rápido, mas fazer o down- nar Atualizar Versão para o progra- monitorar o status dos bancos de
RAM —, mas possui características load pela web pode ser torturante. ma verificar qual é a versão em uso dados, funções de importação e ex-
que permitem seu uso em aplicações O arquivo tem pouco mais de 450 e executar o upgrade. Acessando o portação de dados, dentre outras.
comerciais e sensíveis. Tem a vanta- MB e, mesmo numa conexão vitami- item Visualizar Introdução, o usuá- Os usuários contam com uma in-
gem de suportar tanto a plataforma nada, irá demorar mais de uma ho- rio encontra tutoriais e informações terface bastante fácil de usar, simi-
Windows quanto a Linux e roda em ra para baixar. Ler os pré-requisitos detalhadas sobre o produto e ou- lar nos sistemas operacionais Win-
máquinas com até dois processado- e as notas nos menus do instalador tros assuntos de interesse, como a dows e Linux. Essa estratégia segue
res, enquanto as edições expressas evitará problemas durante e após a migração de versões anteriores. Os a da concorrente Oracle, que está
do SQL Server e do Oracle só aceitam instalação. Por exemplo, um dos pré- outros primeiros passos disponíveis usando os navegadores para man-
requisitos é que na — criar banco de dados e acessar ter interfaces semelhantes em to-
plataforma Windows exemplos — abrem a das as plataformas
se use o Windows XP Central de Controle. FIQUE LIGADO que suporta.
Profissional. Na plataforma Win-
Durante a instala- NAS RÉDEAS > Fácil de usar e cheio dows, a Central de
O Centro de Controle de ferramentas, o DB2 Controle pode ser
ção, o próprio sistema
é o ponto de partida Express-C vai bem nas aberta a partir do me-
coloca em ação as op-
de todas as opera- pequenas empresas nu Iniciar ou clican-
ções Java necessárias.
Além disso, permite ções, controles e ad- do-se com o botão di-
testar imediatamente ministração das bases de dados cria- reito no ícone do DB2 na bandeja de
das no DB2 Express-C. Como pode sistema. Uma janela com uma lista
Instalação: o assistente haver mais de uma instância ope- similar à do Explorer, contendo ban-
guia o usuário durante rando na mesma máquina, o Cen- co de dados e seus objetos, é mos-
todo o processo
tro de Controle pode dar conta de trada ao abrir o programa.

38 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 39
038_DB2_EXPRESS 25/02/2006 22:31 Page 38

TESTE/DB2 EXPRESS TESTE/DB2 EXPRESS

DB2 GRÁTIS COM Centro de Controle: dá


conta de todas as
instâncias em operação

TUDO DENTRO
A VERSÃO DEGUSTAÇÃO DO BANCO DE DADOS DA IBM
seu funcionamento,
criando ou carregan-
do os bancos de da-
VEM REPLETA DE BOAS FERRAMENTAS dos de exemplo que
POR NIVALDO FORESTI o acompanham. Uma
série de caixas de diá-
epois da Microsoft e da um. Acompanhe a seguir o teste do logo e janelas de con-

D Oracle, foi a vez da IBM


criar uma versão gratui-
ta de seu robusto ban-
co de dados DB2. Como as demais
INFOLAB, realizado num PC Pentium
4 de 2,8 MHz, com 512 MB de RAM e
Windows 2003 Server Standard.
firmação indicam o
que fazer a cada pas-
so da instalação em bom português.
A atualização para versões mais
todas elas. É um utilitário bastante
rico em funcionalidade para criar e
edições “expressas” dos concorren- INSTALAÇÃO recentes fica a um clique de distân- modificar tabelas, executar consul-
tes, o DB2 Express-C tem limitações O processo de instalação do DB2 Ex- cia no próprio instalador. Basta acio- tas (queries) e análises complexas,
— suporta até 4 GB de memória press-C é rápido, mas fazer o down- nar Atualizar Versão para o progra- monitorar o status dos bancos de
RAM —, mas possui características load pela web pode ser torturante. ma verificar qual é a versão em uso dados, funções de importação e ex-
que permitem seu uso em aplicações O arquivo tem pouco mais de 450 e executar o upgrade. Acessando o portação de dados, dentre outras.
comerciais e sensíveis. Tem a vanta- MB e, mesmo numa conexão vitami- item Visualizar Introdução, o usuá- Os usuários contam com uma in-
gem de suportar tanto a plataforma nada, irá demorar mais de uma ho- rio encontra tutoriais e informações terface bastante fácil de usar, simi-
Windows quanto a Linux e roda em ra para baixar. Ler os pré-requisitos detalhadas sobre o produto e ou- lar nos sistemas operacionais Win-
máquinas com até dois processado- e as notas nos menus do instalador tros assuntos de interesse, como a dows e Linux. Essa estratégia segue
res, enquanto as edições expressas evitará problemas durante e após a migração de versões anteriores. Os a da concorrente Oracle, que está
do SQL Server e do Oracle só aceitam instalação. Por exemplo, um dos pré- outros primeiros passos disponíveis usando os navegadores para man-
requisitos é que na — criar banco de dados e acessar ter interfaces semelhantes em to-
plataforma Windows exemplos — abrem a das as plataformas
se use o Windows XP Central de Controle. FIQUE LIGADO que suporta.
Profissional. Na plataforma Win-
Durante a instala- NAS RÉDEAS > Fácil de usar e cheio dows, a Central de
O Centro de Controle de ferramentas, o DB2 Controle pode ser
ção, o próprio sistema
é o ponto de partida Express-C vai bem nas aberta a partir do me-
coloca em ação as op-
de todas as opera- pequenas empresas nu Iniciar ou clican-
ções Java necessárias.
Além disso, permite ções, controles e ad- do-se com o botão di-
testar imediatamente ministração das bases de dados cria- reito no ícone do DB2 na bandeja de
das no DB2 Express-C. Como pode sistema. Uma janela com uma lista
Instalação: o assistente haver mais de uma instância ope- similar à do Explorer, contendo ban-
guia o usuário durante rando na mesma máquina, o Cen- co de dados e seus objetos, é mos-
todo o processo
tro de Controle pode dar conta de trada ao abrir o programa.

38 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 39
038_DB2_EXPRESS 25/02/2006 22:32 Page 40

TESTE/DB2 EXPRESS TESTE/DB2 EXPRESS

A quantidade de maioria gráficas, pa- SQLJ), .Net (qualquer linguagem su- é o limite de 4GB para a memória
utilitários disponíveis ra assegurar que as portada pelo compilador CLR) e SQL RAM. Alguns recursos encontrados
no DB2 Express-C aplicações não se- PL (Procedure Language). A SQL PL nas versões pagas, como ferramen-
impressiona. Há pro- jam prejudicadas pe- é considerada nativa e guardada tas de datawarehouse e drivers pa-
gramas para moni- lo mau uso dos re- no banco de dados como objeto ra o banco de dados Informix, não
toramento de me- cursos. São várias as DB2, reconhecida como um padrão acompanham o DB2 Express-C. Mas
mória, de aplicativos, ferramentas dispo- ANSI SQL. Uma ferramenta gráfi- quando esses recursos forem ne-
um Centro de Tare- níveis: db2batch, que ca, o Centro de Desenvolvimento, cessários, o usuário poderá adotar
fas em que podem verifica o desempe- permite o gerenciamento, desen- uma versão paga do produto sem
ser programadas ta- nho das queries em volvimento, teste e implantação de as dores e os custos de migração.
refas específicas pa- tempo real; Visual stored procedures.
ra execução em lo- Explain, que analisa A integração e o desenvolvimen- DB2 EXPRESS-C 8.2
te e a configuração graficamente as con- to de aplicações Java são pontos
Visual Explain: ferramenta FABRICANTE IBM
do sistema. Para fa- especial para a análise gráfica das sultas; Design Advi- fortes do produto. Os mais conhe-
PRÓS Bons utilitários, suporte
cilitar a vida do ad- consultas ao banco de dados sor, que sugere a co- cidos drivers estão incluídos no pa- a máquinas com dois
processadores e
ministrador ou do locação de índices cote. O ambiente Websphere Stu- replicações complexas
programador, funções como criar ou em tabelas para diminuir o tempo dio, da IBM, pode ser usado no de- CONTRAS Não tem ferramentas
de datawarehouse
alterar banco de dados, backup e re- de acesso baseado nas consultas exe- senvolvimento de aplicações com e limita a capacidade de
memória
store são controladas por assistentes. cutadas, e, finalmente, o Activity Mo- o DB2 Express-C, da mesma forma
nitor, que gera relatórios do desem- que o Visual Studio 2003, da Micro- INSTALAÇÃO 8,4
Rápida, com verificação
DESEMPENHO penho dos sistemas para análise. soft. Um driver de acesso compatí- de pré-requisitos e
primeiros passos
Conseguir um desempenho ótimo vel com o ambiente de desenvolvi- GERENCIAMENTO 9,0
das aplicações com banco de dados DESENVOLVIMENTO mento 1.1 está disponível no produ- Permite gerenciar várias
instâncias do programa,
é considerada uma combinação de O DB2 Express-C inclui os drivers e to. A documentação não é tão com- um ou mais bancos,
projetos e diagnósticos
magia negra e ciência. Na tentativa a interface necessários para o de- pleta como deveria, mas o usuário FERRAMENTAS 8,5
de se aproximar do ótimo, o DB2 Ex- senvolvimento de aplicações nas consegue as informações, em in- Replicação, central de
tarefas, centro de
press-C oferece ferramentas em sua linguagens C/C++, Java e .Net, além glês, pesquisando no site da IBM. funcionamento com
alertas, centro de
de PHP e Perl. Su- dados inteligentes

porta linguagens no CONJUNTO DESENVOLVIMENTO 8,0


Em WebSphere Studio,
servidor para o de- No conjunto da obra, o DB2 Express- Java, C, C++, Fortran,
Rexx, Perl entre outras
senvolvimento de C é um banco de dados que vale a linguagens

stored procedures, pena experimentar, principalmen- SEGURANÇA 7,5


Replicação de dados entre
triggers e funções. te por conta do Centro de Contro- bancos, usando sistemas
de mensagens
Elas podem ser es- le, que é poderoso, fácil de usar e AVALIAÇÃO 8,5
TÉCNICA (1)
critas em C/C++, Co- possui muitos utilitários e ferramen-
PREÇO (R$) Gratuito
bol, Java (JDBC e tas. Além disso, não há limitação de
CUSTO/BENEFÍCIO
número de usuários ou de tamanho
ONDE ENCONTRAR www.info.abril.com.br/
Desenvolvimento: para os bancos de dados nas apli- download/4435.shtml
stored procedures em cações desenvolvidas para a plata- (1) Média ponderada considerando os seguintes itens e respectivos pesos:
Instalação (10%), Gerenciamento (35%), Ferramentas (35%),
ambiente gráfico Desenvolvimento (10%) e Segurança dos dados (10%).
forma. A única restrição existente

40 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 41
038_DB2_EXPRESS 25/02/2006 22:32 Page 40

TESTE/DB2 EXPRESS TESTE/DB2 EXPRESS

A quantidade de maioria gráficas, pa- SQLJ), .Net (qualquer linguagem su- é o limite de 4GB para a memória
utilitários disponíveis ra assegurar que as portada pelo compilador CLR) e SQL RAM. Alguns recursos encontrados
no DB2 Express-C aplicações não se- PL (Procedure Language). A SQL PL nas versões pagas, como ferramen-
impressiona. Há pro- jam prejudicadas pe- é considerada nativa e guardada tas de datawarehouse e drivers pa-
gramas para moni- lo mau uso dos re- no banco de dados como objeto ra o banco de dados Informix, não
toramento de me- cursos. São várias as DB2, reconhecida como um padrão acompanham o DB2 Express-C. Mas
mória, de aplicativos, ferramentas dispo- ANSI SQL. Uma ferramenta gráfi- quando esses recursos forem ne-
um Centro de Tare- níveis: db2batch, que ca, o Centro de Desenvolvimento, cessários, o usuário poderá adotar
fas em que podem verifica o desempe- permite o gerenciamento, desen- uma versão paga do produto sem
ser programadas ta- nho das queries em volvimento, teste e implantação de as dores e os custos de migração.
refas específicas pa- tempo real; Visual stored procedures.
ra execução em lo- Explain, que analisa A integração e o desenvolvimen- DB2 EXPRESS-C 8.2
te e a configuração graficamente as con- to de aplicações Java são pontos
Visual Explain: ferramenta FABRICANTE IBM
do sistema. Para fa- especial para a análise gráfica das sultas; Design Advi- fortes do produto. Os mais conhe-
PRÓS Bons utilitários, suporte
cilitar a vida do ad- consultas ao banco de dados sor, que sugere a co- cidos drivers estão incluídos no pa- a máquinas com dois
processadores e
ministrador ou do locação de índices cote. O ambiente Websphere Stu- replicações complexas
programador, funções como criar ou em tabelas para diminuir o tempo dio, da IBM, pode ser usado no de- CONTRAS Não tem ferramentas
de datawarehouse
alterar banco de dados, backup e re- de acesso baseado nas consultas exe- senvolvimento de aplicações com e limita a capacidade de
memória
store são controladas por assistentes. cutadas, e, finalmente, o Activity Mo- o DB2 Express-C, da mesma forma
nitor, que gera relatórios do desem- que o Visual Studio 2003, da Micro- INSTALAÇÃO 8,4
Rápida, com verificação
DESEMPENHO penho dos sistemas para análise. soft. Um driver de acesso compatí- de pré-requisitos e
primeiros passos
Conseguir um desempenho ótimo vel com o ambiente de desenvolvi- GERENCIAMENTO 9,0
das aplicações com banco de dados DESENVOLVIMENTO mento 1.1 está disponível no produ- Permite gerenciar várias
instâncias do programa,
é considerada uma combinação de O DB2 Express-C inclui os drivers e to. A documentação não é tão com- um ou mais bancos,
projetos e diagnósticos
magia negra e ciência. Na tentativa a interface necessários para o de- pleta como deveria, mas o usuário FERRAMENTAS 8,5
de se aproximar do ótimo, o DB2 Ex- senvolvimento de aplicações nas consegue as informações, em in- Replicação, central de
tarefas, centro de
press-C oferece ferramentas em sua linguagens C/C++, Java e .Net, além glês, pesquisando no site da IBM. funcionamento com
alertas, centro de
de PHP e Perl. Su- dados inteligentes

porta linguagens no CONJUNTO DESENVOLVIMENTO 8,0


Em WebSphere Studio,
servidor para o de- No conjunto da obra, o DB2 Express- Java, C, C++, Fortran,
Rexx, Perl entre outras
senvolvimento de C é um banco de dados que vale a linguagens

stored procedures, pena experimentar, principalmen- SEGURANÇA 7,5


Replicação de dados entre
triggers e funções. te por conta do Centro de Contro- bancos, usando sistemas
de mensagens
Elas podem ser es- le, que é poderoso, fácil de usar e AVALIAÇÃO 8,5
TÉCNICA (1)
critas em C/C++, Co- possui muitos utilitários e ferramen-
PREÇO (R$) Gratuito
bol, Java (JDBC e tas. Além disso, não há limitação de
CUSTO/BENEFÍCIO
número de usuários ou de tamanho
ONDE ENCONTRAR www.info.abril.com.br/
Desenvolvimento: para os bancos de dados nas apli- download/4435.shtml
stored procedures em cações desenvolvidas para a plata- (1) Média ponderada considerando os seguintes itens e respectivos pesos:
Instalação (10%), Gerenciamento (35%), Ferramentas (35%),
ambiente gráfico Desenvolvimento (10%) e Segurança dos dados (10%).
forma. A única restrição existente

40 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 41
42_BANCO_SQL5-1 25/02/2006 22:33 Page 42

TESTE/MYSQL TESTE/MYSQL

O MYSQL GANHA
quase todos os siste- rios. A principal de-
mas operacionais FIQUE LIGADO l a s é o s u p o r t e a
mais importantes. Há transações. Agora, o
>
Muito utilizado em

MÚSCULOS
versões do MySQL gerenciador é capaz
sites simples, o MySQL
para Windows, Linux, de processar transa-
5.0 já dá conta de
Unix, Solaris, Mac OS ções do tipo ACID,
aplicações corportivas
PREFERIDO PELA TURMA DO LINUX, O BANCO X, FreeBSD, HP-UX, obrigatórias em apli-
DE DADOS INCORPORA NOVAS FUNÇÕES E CORTEJA IBM AIX e outros. Há cações de missão crí-
O MERCADO CORPORATIVO também versões para plataformas tica. Uma transação, para os não
POR CARLOS MACHADO, COM LUIZ CRUZ de hardware Intel e AMD, de 32 e iniciados, é uma operação que só
64 bits, além dos chips Sparc, Al- faz sentido se todos os seus pas-
banco de dados de có- pha, PowerPC etc. INFO analisou a sos forem executados. Um exem-

O digo aberto MySQL te-


ve um belo upgrade na
versão 5.0, liberada no
final de outubro de 2005. De alter-
versão 5.0.15 do MySQL para Linux
num servidor Pentium 4 de 3 GHz,
rodando a distribuição SUSE 10 de
64 bits. Também instalamos o ban-
plo clássico é a transferência de
dinheiro de uma conta bancária
para outra. Há duas tarefas: debi-
tar o valor numa conta e creditá-
nativa rápida, eficaz e pouco sofis- co de dados num computador com lo na outra. Se apenas uma das ta-
ticada para sites simples, o produ- o Windows XP. Nos dois casos, a refas é executada, o sistema se tor-
to passou à categoria dos robustos. instalação não ofereceu nenhuma na inconsistente. Nos bancos de
Com suporte a novas funções, co- dificuldade especial. dados profissionais, o processa-
mo transações e stored procedures, MySQL Administrator: interface Algumas das funções que es- mento de transações garante a in-
gráfica de gerenciamento
o banco de dados se propõe a ta- tréiam no MySQL 5.0 eram há mui- tegridade de operações desse ti-
refas mais ambiciosas. Essas mu- to tempo reclamadas pelos usuá- po. Se, por exemplo, o hardware
danças sinalizam que o MySQL es- base instalada. A MySQL AB come-
tá cultivando músculos para enca- morou a marca de mais de 1 mi-
rar o mercado corporativo. lhão de downloads nas três pri-
Produzido pela empresa sueca meiras semanas de lançamento da
MySQL AB, o MySQL tem uma for- versão 5.0. O número é sem dúvi-
ma de licenciamento duplo. O da indicativo do grau de interes-
usuário pode adotá-lo como pro- se em torno do banco de dados.
duto gratuito, segundo a licença
GPL, mas também tem a opção de MULTIPLATAFORMA
adquiri-lo comercialmente, com Desde o início, o MySQL se des-
direito a suporte e outros benefí- tacou pela velocidade, que permi-
cios. Parte fundamental do cha- te seu uso em máquinas de recur-
mado padrão LAMP — sigla de um sos relativamente modestos. Isso o
conjunto de produtos de código transformou no sistema preferido
aberto formado por Linux, Apa- dos sites profissionais pequenos e
che, MySQL, PHP/Perl/Python —, médios. Também contribui para o
Controles: uma só interface para controlar usuários, montar rotinas e verificar carga
o MySQL tem hoje uma enorme sucesso sua disponibilidade em

42 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 43
42_BANCO_SQL5-1 25/02/2006 22:33 Page 42

TESTE/MYSQL TESTE/MYSQL

O MYSQL GANHA
quase todos os siste- rios. A principal de-
mas operacionais FIQUE LIGADO l a s é o s u p o r t e a
mais importantes. Há transações. Agora, o
>
Muito utilizado em

MÚSCULOS
versões do MySQL gerenciador é capaz
sites simples, o MySQL
para Windows, Linux, de processar transa-
5.0 já dá conta de
Unix, Solaris, Mac OS ções do tipo ACID,
aplicações corportivas
PREFERIDO PELA TURMA DO LINUX, O BANCO X, FreeBSD, HP-UX, obrigatórias em apli-
DE DADOS INCORPORA NOVAS FUNÇÕES E CORTEJA IBM AIX e outros. Há cações de missão crí-
O MERCADO CORPORATIVO também versões para plataformas tica. Uma transação, para os não
POR CARLOS MACHADO, COM LUIZ CRUZ de hardware Intel e AMD, de 32 e iniciados, é uma operação que só
64 bits, além dos chips Sparc, Al- faz sentido se todos os seus pas-
banco de dados de có- pha, PowerPC etc. INFO analisou a sos forem executados. Um exem-

O digo aberto MySQL te-


ve um belo upgrade na
versão 5.0, liberada no
final de outubro de 2005. De alter-
versão 5.0.15 do MySQL para Linux
num servidor Pentium 4 de 3 GHz,
rodando a distribuição SUSE 10 de
64 bits. Também instalamos o ban-
plo clássico é a transferência de
dinheiro de uma conta bancária
para outra. Há duas tarefas: debi-
tar o valor numa conta e creditá-
nativa rápida, eficaz e pouco sofis- co de dados num computador com lo na outra. Se apenas uma das ta-
ticada para sites simples, o produ- o Windows XP. Nos dois casos, a refas é executada, o sistema se tor-
to passou à categoria dos robustos. instalação não ofereceu nenhuma na inconsistente. Nos bancos de
Com suporte a novas funções, co- dificuldade especial. dados profissionais, o processa-
mo transações e stored procedures, MySQL Administrator: interface Algumas das funções que es- mento de transações garante a in-
gráfica de gerenciamento
o banco de dados se propõe a ta- tréiam no MySQL 5.0 eram há mui- tegridade de operações desse ti-
refas mais ambiciosas. Essas mu- to tempo reclamadas pelos usuá- po. Se, por exemplo, o hardware
danças sinalizam que o MySQL es- base instalada. A MySQL AB come-
tá cultivando músculos para enca- morou a marca de mais de 1 mi-
rar o mercado corporativo. lhão de downloads nas três pri-
Produzido pela empresa sueca meiras semanas de lançamento da
MySQL AB, o MySQL tem uma for- versão 5.0. O número é sem dúvi-
ma de licenciamento duplo. O da indicativo do grau de interes-
usuário pode adotá-lo como pro- se em torno do banco de dados.
duto gratuito, segundo a licença
GPL, mas também tem a opção de MULTIPLATAFORMA
adquiri-lo comercialmente, com Desde o início, o MySQL se des-
direito a suporte e outros benefí- tacou pela velocidade, que permi-
cios. Parte fundamental do cha- te seu uso em máquinas de recur-
mado padrão LAMP — sigla de um sos relativamente modestos. Isso o
conjunto de produtos de código transformou no sistema preferido
aberto formado por Linux, Apa- dos sites profissionais pequenos e
che, MySQL, PHP/Perl/Python —, médios. Também contribui para o
Controles: uma só interface para controlar usuários, montar rotinas e verificar carga
o MySQL tem hoje uma enorme sucesso sua disponibilidade em

42 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 43
42_BANCO_SQL5-1 25/02/2006 22:34 Page 44

TESTE/MYSQL

falha no meio de uma operação, mercial, para encarar os gigantes


ela é completamente anulada. A do setor. Mas, como se diz, está
primeira regra do modelo ACID é tentando comer pelas beiradas. Um
exatamente esta: ou tudo ou na- recurso importante que o produ-
da. O MySQL 5.0 também suporta to ainda está devendo aos usuários
transações distribuídas, ou seja, é o suporte a XML.
transações complexas envolvendo O fabricante do MySQL também
múltiplos bancos de dados locali- oferece o MySQL Administrator, uma
zados em diferentes ambientes. ferramenta visual para gerenciar ban-
cos de dados e usuários. O Adminis-
STORED PROCEDURES trator deve ser obtido num download
Outra novidade do MySQL 5.0 são à parte. Essa ferramenta permite criar
as stored procedures. Uma stored e alterar bancos de dados, montar
procedure — literalmente: rotina stored procedures e verificar infor-
armazenada — é um programa, ou mações de carga do sistema. Embo-
seqüência de comandos, guardado ra execute bem as funções a que se
fisicamente no servidor. Uma série propõe, ainda não aproveita bem os
de consultas complexas roda mais recursos da interface gráfica.
rápido como uma stored proced-
ure do que uma lista de comandos, MYSQL 5.0
executados um a um, a partir de
FABRICANTE MySQL AB
um computador cliente. As proced-
PRÓ É multiplataforma: tem
ures também podem ser dispara- versões para Windows,
Linux, Unix
das dentro de uma transação.
CONTRA Não tem suporte a XML
Os novos recursos do MySQL já
INSTALAÇÃO 8,6
existem há muito tempo nos gran- Simples, não oferece nenhuma
dificuldade especial
des gerenciadores de bancos de
RECURSOS 8,5
dados. A MySQL AB sempre negou As novas funções
aumentam muito o poder
que compete com Oracle, IBM e de ação do programa
Microsoft. Mas, ao incorporar os FERRAMENTAS 7,5
O MySQL Administrator
novos recursos, a empresa dá for- oferece poucos recursos
gráficos
tes indicações de que está de olho
AVALIAÇÃO 8,3
no mercado corporativo. Outro si- TÉCNICA (1) Comparado com o JBoss,
foi, em média, 3,6 vezes
nal evidente disso está no MySQL mais rápido no tempo de
resposta
Migration Toolkit, conjunto de fer-
PREÇO Gratuito
ramentas oferecido para incenti- LICENÇA GPL
var a migração dos bancos de da- CUSTO/BENEFÍCIO
dos concorrentes para o MySQL. ONDE ENCONTRAR www.info.abril.com.br/
download/3641.shtml
Obviamente, o produto ainda não (1) Média ponderada considerando os seguintes itens: Instalação
(30%), Recursos (50%), Ferramentas (20%).
tem cacife, nem técnico nem co-

44 < C O L E Ç Ã O I N F O
047_POSTGRES 25/02/2006 22:39 Page 47

TESTE/POSTGRESQL

MISSÃO CRÍTICA É
PARA POSTGRE
VERSÃO 8.1 CONTA COM DRIVERS E CAMADAS DE
SOFTWARE QUE GARANTEM SUA CONECTIVIDADE
POR HELIO SILVA

elho conhecido das co- versão 8.1, mais

V munidades de software
livre, o PostgreSQL de-
morou um pouco mais do
que o MySQL para se popularizar, pro-
recente, logo se
percebe que is-
so não é verdade.
A distribuição de
vavelmente por ser focado em aplica- códigos binários do Post-
ções críticas. Muitos dos recursos que greSQL 8.1 prontos para ins-
o MySQL apresenta na versão 5.0, tais talar está disponível apenas para Li-
como o suporte a gatilhos, stored pro- nux ou Windows. Para outras plata-
cedures e transações, já fazem parte formas Unix, é preciso baixar o códi-
do PostgreSQL há tempos. O impulso go-fonte e compilar o sistema.
veio com a versão para Windows e a No Linux, o PostgreSQL vem como
colaboração de empresas como Sun, pacote binário na maior parte das dis-
Fujitsu e Pervasive Software. Com ex- tribuições, mas para quem gosta de
periência no desenvolvimento e em- aventura e tem bastante tempo, po-
pacotamento de versões comerciais de baixar o código-fonte e compilar.
afinadas com as necessidades das cor- No ambiente Windows, o progra-
porações, elas estão
colocando terno e
gravata no produto.
O PostgreSQL
também foi vítima
dos rótulos lento e
pesado. Pode-se di-
zer que o logotipo
do produto — um
elefante azul — até
reforce essa ima-
gem. Mas, debru-
PostgreSQL: o pgAdmin faz a administração do banco
çando-se sobre a

C O L E Ç Ã O I N F O > 47
047_POSTGRES 25/02/2006 22:39 Page 48

TESTE/POSTGRESQL TESTE/POSTGRESQL

ma pode ser instalado de duas for- próprio PostgreSQL, que equivale ao greSQL faz um pequeno esforço nes- mes bases com respostas em tempo
mas: utilizando o ambiente Cygwin, PL/SQL da Oracle. Essa diversidade se sentido, implementando uma das aceitável, requisito básico para siste-
que permite, com certas restrições, facilita a vida de quem já é versado propriedades da orientação a obje- mas de datawarehouse, cujos bancos
utilizar os programas escritos para em uma dessas linguagens. to que é a herança. de dados podem chegar facilmente
Linux, ou diretamente no Windows Além do pacote básico, é sem- Para compreender a aplicação da aos terabytes. Esse tipo de sistema
XP. O Cygwin é mais indicado para pre bom dar uma checada em si- herança em um banco de dados, ima- está na ordem do dia das empresas
quem tem experiência no uso do tes que mantém projetos ligados gine o desenvolvimento de um sis- graças à redução dos custos de pro-
PostgreSQL em ambiente Linux. Já ao PostgreSQL. Um deles é o site tema para uma loja de barcos. A pri- cessamento e armazenamento, além,
a versão pronta para o Windows é pgfoundry.org, onde podem ser meira providência é criar a tabela é claro, da necessidade constante de
muito robusta, fácil e não decepcio- encontrados utilitários e até mes- Barcos com todas as características buscar competitividade.
na. A instalação no Windows pode mo sistemas completos. comuns a qualquer barco (código,
ser feita em português, mas, no fi- Uma ausência sentida é o suporte preço, descrição etc.). Em seguida, POSTGRESQL 8.1
nal, o software de administração nativo ao XML. Em aplicações com cria-se uma tabela filha que trata es- FABRICANTE PostgreSQL Global
pgAdmin se apresentará em inglês. trocas de dados entre sistemas hete- pecificamente de veleiros e que her- Development Group

rogêneos, como em operações de da as características de Barcos, acres- PRÓS Inclui replicação de dados,
processamento paralelo,
RECURSOS transmissão eletrônica de pedidos e centando-se os atributos específicos suporte a 64 bits e a
clusters
O PostgreSQL 8.1 chega bem abaste- faturas entre empresas ou intercâm- de um veleiro como a altura do mas- CONTRAS Falta de suporte nativo ao
cido de drivers e camadas de soft- bio de dados bancários, é de se es- tro e o tipo de vela. Por fim, cria-se padrão XML

ware que garantem perar que existam di- uma tabela Lanchas, que também é INSTALAÇÃO 7,0
Fácil e rápida com pacotes
sua conectividade com FIQUE LIGADO ferentes bancos atuan- filha de Barcos, adicionando-se a ela binários e instalador em
português
ferramentas de criação do do outro lado, e o atributos como potência do motor.
e extração de relató- > Recursos poderosos
mercado aponta para Alterações em Barcos, como a cria-
GERENCIAMENTO 8,5
O pgAdmin III dá acesso a
todos os recursos do
indicam o PostgreSQL banco, mas está só em
rios além, é claro, de li- o XML como melhor ção do atributo Preço Promocional, inglês
para as aplicações de
gá-lo com as lingua- forma de garantir es- por exemplo, automaticamente se FERRAMENTAS 8,5
missão crítica Conta com ferramentas de
gens de programação sa conversa. Quem refletem em Veleiros e Lanchas. geoprocessamento,
populares como Java, aderir ao PostgreSQL administração, tunning e
datawarehouse na web
Visual Basic e Delphi. A plataforma terá de escrever suas interfaces XML. SINCRONIZAÇÃO DESENVOLVIMENTO 8,0
.Net da Microsoft também não fica de Usando-se um dos seus diversos sis- Pode ser feito em Java,
Perl, PHP, TCL, C, C++ e
fora, contando com o data provider BOA HERANÇA temas de replicação, o PostgreSQL qualquer linguagem com
conectores de acesso
NpgSQL. É natural que o banco man- Um velho dilema da crescente co- pode ser aplicado em empresas de como o .Net

tenha conexões privilegiadas com seus munidade de programadores que pequeno e médio porte que têm ne- SEGURANÇA 8,5
Dispõe de criptografia
pares do software livre, como as lin- trabalham com a abordagem da cessidade de sincronização de dados para proteger
armazenamento, tráfego,
guagens Phyton, Perl, TCL e PHP. orientação a objeto (OOP) é que eles entre matriz e filiais. atributos e autenticação

Se para escrever programas de raciocinam e projetam seus sistemas Além da sincronização, o banco AVALIAÇÃO 8,3
TÉCNICA (1)
front-end existem tantas opções, o pensando em objetos e, no entanto, de dados tem evoluído em recursos PREÇO Gratuito
mesmo pode se dizer das linguagens têm de lidar com bancos de dados para resistir a falhas e operar com LICENÇA BSD

disponíveis para desenvolver funções relacionais na hora de depositar seus múltiplos processadores, o que o CUSTO/BENEFÍCIO

e processos que rodam dentro do dados. Eles gostariam de ter bancos torna uma boa opção para os pro- ONDE ENCONTRAR www.info.abril.com.br/
download/4119.shtml
banco. As opções são: PL/Perl, de dados que entendessem um pou- jetos de missão crítica. Possui tam- (1) Média ponderada considerando os seguintes itens e respectivos pesos:
Instalação (10%), Gerenciamento (35%), Ferramentas (35%),

PL/TCL, PL/Java e o PL/pgSQL do co mais sua abordagem. O Post- bém a habilidade de lidar com enor- Desenvolvimento (10%) e Segurança dos dados (10%).

48 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 49
047_POSTGRES 25/02/2006 22:39 Page 48

TESTE/POSTGRESQL TESTE/POSTGRESQL

ma pode ser instalado de duas for- próprio PostgreSQL, que equivale ao greSQL faz um pequeno esforço nes- mes bases com respostas em tempo
mas: utilizando o ambiente Cygwin, PL/SQL da Oracle. Essa diversidade se sentido, implementando uma das aceitável, requisito básico para siste-
que permite, com certas restrições, facilita a vida de quem já é versado propriedades da orientação a obje- mas de datawarehouse, cujos bancos
utilizar os programas escritos para em uma dessas linguagens. to que é a herança. de dados podem chegar facilmente
Linux, ou diretamente no Windows Além do pacote básico, é sem- Para compreender a aplicação da aos terabytes. Esse tipo de sistema
XP. O Cygwin é mais indicado para pre bom dar uma checada em si- herança em um banco de dados, ima- está na ordem do dia das empresas
quem tem experiência no uso do tes que mantém projetos ligados gine o desenvolvimento de um sis- graças à redução dos custos de pro-
PostgreSQL em ambiente Linux. Já ao PostgreSQL. Um deles é o site tema para uma loja de barcos. A pri- cessamento e armazenamento, além,
a versão pronta para o Windows é pgfoundry.org, onde podem ser meira providência é criar a tabela é claro, da necessidade constante de
muito robusta, fácil e não decepcio- encontrados utilitários e até mes- Barcos com todas as características buscar competitividade.
na. A instalação no Windows pode mo sistemas completos. comuns a qualquer barco (código,
ser feita em português, mas, no fi- Uma ausência sentida é o suporte preço, descrição etc.). Em seguida, POSTGRESQL 8.1
nal, o software de administração nativo ao XML. Em aplicações com cria-se uma tabela filha que trata es- FABRICANTE PostgreSQL Global
pgAdmin se apresentará em inglês. trocas de dados entre sistemas hete- pecificamente de veleiros e que her- Development Group

rogêneos, como em operações de da as características de Barcos, acres- PRÓS Inclui replicação de dados,
processamento paralelo,
RECURSOS transmissão eletrônica de pedidos e centando-se os atributos específicos suporte a 64 bits e a
clusters
O PostgreSQL 8.1 chega bem abaste- faturas entre empresas ou intercâm- de um veleiro como a altura do mas- CONTRAS Falta de suporte nativo ao
cido de drivers e camadas de soft- bio de dados bancários, é de se es- tro e o tipo de vela. Por fim, cria-se padrão XML

ware que garantem perar que existam di- uma tabela Lanchas, que também é INSTALAÇÃO 7,0
Fácil e rápida com pacotes
sua conectividade com FIQUE LIGADO ferentes bancos atuan- filha de Barcos, adicionando-se a ela binários e instalador em
português
ferramentas de criação do do outro lado, e o atributos como potência do motor.
e extração de relató- > Recursos poderosos
mercado aponta para Alterações em Barcos, como a cria-
GERENCIAMENTO 8,5
O pgAdmin III dá acesso a
todos os recursos do
indicam o PostgreSQL banco, mas está só em
rios além, é claro, de li- o XML como melhor ção do atributo Preço Promocional, inglês
para as aplicações de
gá-lo com as lingua- forma de garantir es- por exemplo, automaticamente se FERRAMENTAS 8,5
missão crítica Conta com ferramentas de
gens de programação sa conversa. Quem refletem em Veleiros e Lanchas. geoprocessamento,
populares como Java, aderir ao PostgreSQL administração, tunning e
datawarehouse na web
Visual Basic e Delphi. A plataforma terá de escrever suas interfaces XML. SINCRONIZAÇÃO DESENVOLVIMENTO 8,0
.Net da Microsoft também não fica de Usando-se um dos seus diversos sis- Pode ser feito em Java,
Perl, PHP, TCL, C, C++ e
fora, contando com o data provider BOA HERANÇA temas de replicação, o PostgreSQL qualquer linguagem com
conectores de acesso
NpgSQL. É natural que o banco man- Um velho dilema da crescente co- pode ser aplicado em empresas de como o .Net

tenha conexões privilegiadas com seus munidade de programadores que pequeno e médio porte que têm ne- SEGURANÇA 8,5
Dispõe de criptografia
pares do software livre, como as lin- trabalham com a abordagem da cessidade de sincronização de dados para proteger
armazenamento, tráfego,
guagens Phyton, Perl, TCL e PHP. orientação a objeto (OOP) é que eles entre matriz e filiais. atributos e autenticação

Se para escrever programas de raciocinam e projetam seus sistemas Além da sincronização, o banco AVALIAÇÃO 8,3
TÉCNICA (1)
front-end existem tantas opções, o pensando em objetos e, no entanto, de dados tem evoluído em recursos PREÇO Gratuito
mesmo pode se dizer das linguagens têm de lidar com bancos de dados para resistir a falhas e operar com LICENÇA BSD

disponíveis para desenvolver funções relacionais na hora de depositar seus múltiplos processadores, o que o CUSTO/BENEFÍCIO

e processos que rodam dentro do dados. Eles gostariam de ter bancos torna uma boa opção para os pro- ONDE ENCONTRAR www.info.abril.com.br/
download/4119.shtml
banco. As opções são: PL/Perl, de dados que entendessem um pou- jetos de missão crítica. Possui tam- (1) Média ponderada considerando os seguintes itens e respectivos pesos:
Instalação (10%), Gerenciamento (35%), Ferramentas (35%),

PL/TCL, PL/Java e o PL/pgSQL do co mais sua abordagem. O Post- bém a habilidade de lidar com enor- Desenvolvimento (10%) e Segurança dos dados (10%).

48 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 49
050_FIREBIRD 25/02/2006 22:41 Page 50

TESTE/FIREBIRD

FIREBIRD POUPA
A MÁQUINA
A VERSÃO 1.5.3 TEM RECURSOS PODEROSOS E DISPENSA
EQUIPES DE MANUTENÇÃO
POR HELIO SILVA

banco de dados Firebird duto alçar vôos mais altos entre a

O está cada vez melhor,


acompanhando os avan-
ços dos concorrentes de
código aberto MySQL e PostgreSQL.
série de versões 1.5.x e a 2.0.
No teste do INFOLAB, utilizamos o
Firebird 1.5.3 Classic Server, a versão
estável mais recente, rodando num
Nascido de uma iniciativa da Borland PC com processador Pentium HT de
de abrir o código do seu banco In- 1,3 GHz e 512 MB de memória RAM.
terbase 6, o Firebird chegou à ver-
são 1.5.3 bem mudado, graças ao tra- INSTALAÇÃO
balho do IBPhoenix. Esse grupo de A instalação é fácil, mas não atuali-
desenvolvedores já estabilizou a tra- za as outras versões previamente
dução do código da linguagem C pa- instaladas. Ao contrário, pede a re-
ra a C++, o que deve permitir ao pro- moção de antigas edições de Inter-

EMS SQL Manager: interface gráfica elegante para Firebird com jeito de Windows XP

50 < C O L E Ç Ã O I N F O
050_FIREBIRD 25/02/2006 22:43 Page 51

TESTE/FIREBIRD

IBExpert: traz recursos


arrojados, como análise
de performance

base ou Firebird. Ao
final do processo
descobre-se que fo-
ram criados alguns
textos dos manuais
em arquivos texto e
PDF e apenas um
programa baseado
no velho prompt de comando. Isso br/download/4047.shtml), da H-K
porque o pacote básico não traz software, e a EMS SQL Manager
uma interface gráfica que facilite a (www.info.abril.com.br/down-
administração do banco. Existe um load/4453.shtml), da EMS Database
projeto de interface gráfica de có- Management Solutions.
digo aberto chamado FlameRobin O gerenciador EMS SQL Manager
(www.flamerobin.org), que no fu- empresta ao Firebird uma interfa-
turo deve fazer parte do pacote, ce elegante e funcional, com apa-
mas seu desenvolvimento ainda es- rência bem próxima do Windows
tá em estágio inicial. XP, usando o mesmo tipo de íco-
nes. Na versão gratuita, ele já pro-
INTERFACES vê todos os recursos necessários à
De qualquer forma, o usuário não fi- administração. Já o brasileiro DBMa-
ca desprovido de interface de geren- nager tem como vantagem o su-
ciamento. Pode escolher uma entre porte em português.
as diversas disponíveis no site do IB- Se a intenção for adquirir uma
Phoenix (www.ibphoenix.com). ferramenta para ir além das ativi-
A maior parte delas é shareware dades normais de administração,
com versões livres sem algumas então vale a pena dar uma boa olha-
funcionalidades. da no IBExpert em sua versão co-
No teste do INFOLAB, utilizamos mercial que, além da interface mais
três interfaces de ge- completa para admi-
renciamento: a DB- FIQUE LIGADO nistração, conta com
Manager (www.info. recursos arrojados
abril.com.br/down- > Feito para aplicações
como análise de per-
de médio porte, o Fire-
load/3682.shtml), da formance e até pes-
bird oferece baixo cus-
DBTools, a IBExpert quisas OLAP. Relem-
to de manutenção
(www.info.abril.com. brando, por meio do

C O L E Ç Ã O I N F O > 51
050_FIREBIRD 25/02/2006 22:44 Page 52

TESTE/FIREBIRD TESTE/FIREBIRD

OLAP podem ser criadas visões mul- DRIVERS


tidimensionais do banco já agrega- Outra providência necessária após
das, os famosos cubos. Esse tipo de a instalação é cuidar da interope-
visão facilita o desmembramento e rabilidade com linguagens, gerado-
a comparação de uma informação res de relatório e outros bancos de
mensurável, como o faturamento, dados. O site do IBPhoenix ajuda,
por exemplo. Com um cubo de fa- indicando drivers ODBC e camadas
turamento fica fácil estabelecer as de conectividade com Java e .NET.
vendas por tipo de produto, por ti- Nem todos são gratuitos e, mesmo
po de consumidor e por região de os livres, requerem análise do tipo
forma fácil e rápida. de licença de uso.

FIREBIRD 1.5.3 RECURSOS


O esforço de instalação e implanta-
CLASSIC SERVER
ção vale a pena. A exemplo do In-
FABRICANTE FirebirdSQL Foundation
terbase, o Firebird dá conta de apli-
PRÓS Conta com recursos
poderosos, como views, cações de médio porte. Seu dife- DBManager: produzida no Brasil, a interface dá suporte ao Firebird em português
transações concorrentes
e gatilhos rencial é rodar em plataformas Win-
CONTRA Depende de aplicativos de dows e em muitos sabores de Unix, gócio para o banco de dados flexi- mais sofisticados como PostgreSQL,
terceiros para a
administração além de contar com recursos im- biliza as opções de escolha de lin- MS SQL Server, Oracle e DB2 entre
INSTALAÇÃO 6,5 portantes, como suporte a transa- guagens e ambientes de programa- outros demandam ajustes especia-
Bem traduzida, mas com
longas explicações que ções, gatilhos e stored procedures ção para interfacear com o banco, lizados durante seu ciclo de implan-
precisam ser lidas
desde sua primeira versão, enquan- uma vez que simplifica a quantida- tação, crescimento e produção.
GERENCIAMENTO 6,5
Não tem interface gráfica to o MySQL só trouxe esses recur- de de regras que devem estar pre- O baixo custo de manutenção tor-
de administração,
exigindo ferramentas sos na 5.0, a mais recente. sentes no código. Esse aspecto é na o Firebird uma boa opção para
auxiliares
O sistema de transações do Fire- importante num mundo em que o empresas que não podem contar
FERRAMENTAS 8,5
Ferramentas CASE, de bird é robusto e admite os aninha- banco tem de atender um servidor com uma equipe especializada pa-
administração e até OLAP
podem ser encontradas mentos (nested transactions), que web, uma aplicação .Net e outras ra dar suporte a suas aplicações. A
na web
permitem a aplicação de novas re- linguagens, mantendo sempre a portabilidade do banco de dados
DESENVOLVIMENTO 8,0
Muito bom para Delphi, gras quando uma transação encon- coerência dos dados que lhe são in- entre múltiplas plataformas o torna
com abertura para PHP,
Perl, Java e .NET. tra um erro em um determinado seridos ou requisitados. também indicado para aplicações
SEGURANÇA 6,5 ponto de seu processamento, dan- Outro ponto forte do Firebird é que operam com atualizações de
Não tem criptografia
do alternativas à conclusão da tran- sua manutenção facilitada, pratica- bases off line e que tenham neces-
AVALIAÇÃO 7,4
TÉCNICA (1) sação sem que se torne necessário mente dispensando a presença de sidade de integração centralizada.
PREÇO Gratuito desfazer toda a operação. As tran- um DBA dedicado a atividades de Quem pretende adotar o Fire-
LICENÇA IPL
sações aninhadas permitem a apli- ajustes de desempenho do banco bird no Brasil, pode contar com o
CUSTO/BENEFÍCIO
cação de regras complexas de ne- e controle de crescimento da base. apoio de uma comunidade forte e
ONDE ENCONTRAR www.info.abril.com.br/
download/2108. gócio dentro do banco, eliminando A atividade de manutenção se re- colaborativa, que pode ser conta-
(1) Média ponderada considerando os seguintes itens e respectivos
pesos: Instalação (10%), Gerenciamento (35%), Ferramentas (35%),
a programação na interface. sume ao backup e, eventualmente, tada pelo portal Firebase (www.
Desenvolvimento (10%) e Segurança dos dados (10%).
A transferência de lógica de ne- uma recuperação de dados. Bancos firebase.com.br).

52 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 53
050_FIREBIRD 25/02/2006 22:44 Page 52

TESTE/FIREBIRD TESTE/FIREBIRD

OLAP podem ser criadas visões mul- DRIVERS


tidimensionais do banco já agrega- Outra providência necessária após
das, os famosos cubos. Esse tipo de a instalação é cuidar da interope-
visão facilita o desmembramento e rabilidade com linguagens, gerado-
a comparação de uma informação res de relatório e outros bancos de
mensurável, como o faturamento, dados. O site do IBPhoenix ajuda,
por exemplo. Com um cubo de fa- indicando drivers ODBC e camadas
turamento fica fácil estabelecer as de conectividade com Java e .NET.
vendas por tipo de produto, por ti- Nem todos são gratuitos e, mesmo
po de consumidor e por região de os livres, requerem análise do tipo
forma fácil e rápida. de licença de uso.

FIREBIRD 1.5.3 RECURSOS


O esforço de instalação e implanta-
CLASSIC SERVER
ção vale a pena. A exemplo do In-
FABRICANTE FirebirdSQL Foundation
terbase, o Firebird dá conta de apli-
PRÓS Conta com recursos
poderosos, como views, cações de médio porte. Seu dife- DBManager: produzida no Brasil, a interface dá suporte ao Firebird em português
transações concorrentes
e gatilhos rencial é rodar em plataformas Win-
CONTRA Depende de aplicativos de dows e em muitos sabores de Unix, gócio para o banco de dados flexi- mais sofisticados como PostgreSQL,
terceiros para a
administração além de contar com recursos im- biliza as opções de escolha de lin- MS SQL Server, Oracle e DB2 entre
INSTALAÇÃO 6,5 portantes, como suporte a transa- guagens e ambientes de programa- outros demandam ajustes especia-
Bem traduzida, mas com
longas explicações que ções, gatilhos e stored procedures ção para interfacear com o banco, lizados durante seu ciclo de implan-
precisam ser lidas
desde sua primeira versão, enquan- uma vez que simplifica a quantida- tação, crescimento e produção.
GERENCIAMENTO 6,5
Não tem interface gráfica to o MySQL só trouxe esses recur- de de regras que devem estar pre- O baixo custo de manutenção tor-
de administração,
exigindo ferramentas sos na 5.0, a mais recente. sentes no código. Esse aspecto é na o Firebird uma boa opção para
auxiliares
O sistema de transações do Fire- importante num mundo em que o empresas que não podem contar
FERRAMENTAS 8,5
Ferramentas CASE, de bird é robusto e admite os aninha- banco tem de atender um servidor com uma equipe especializada pa-
administração e até OLAP
podem ser encontradas mentos (nested transactions), que web, uma aplicação .Net e outras ra dar suporte a suas aplicações. A
na web
permitem a aplicação de novas re- linguagens, mantendo sempre a portabilidade do banco de dados
DESENVOLVIMENTO 8,0
Muito bom para Delphi, gras quando uma transação encon- coerência dos dados que lhe são in- entre múltiplas plataformas o torna
com abertura para PHP,
Perl, Java e .NET. tra um erro em um determinado seridos ou requisitados. também indicado para aplicações
SEGURANÇA 6,5 ponto de seu processamento, dan- Outro ponto forte do Firebird é que operam com atualizações de
Não tem criptografia
do alternativas à conclusão da tran- sua manutenção facilitada, pratica- bases off line e que tenham neces-
AVALIAÇÃO 7,4
TÉCNICA (1) sação sem que se torne necessário mente dispensando a presença de sidade de integração centralizada.
PREÇO Gratuito desfazer toda a operação. As tran- um DBA dedicado a atividades de Quem pretende adotar o Fire-
LICENÇA IPL
sações aninhadas permitem a apli- ajustes de desempenho do banco bird no Brasil, pode contar com o
CUSTO/BENEFÍCIO
cação de regras complexas de ne- e controle de crescimento da base. apoio de uma comunidade forte e
ONDE ENCONTRAR www.info.abril.com.br/
download/2108. gócio dentro do banco, eliminando A atividade de manutenção se re- colaborativa, que pode ser conta-
(1) Média ponderada considerando os seguintes itens e respectivos
pesos: Instalação (10%), Gerenciamento (35%), Ferramentas (35%),
a programação na interface. sume ao backup e, eventualmente, tada pelo portal Firebase (www.
Desenvolvimento (10%) e Segurança dos dados (10%).
A transferência de lógica de ne- uma recuperação de dados. Bancos firebase.com.br).

52 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 53
054_ACCESS 25/02/2006 23:04 Page 54

TESTE/ACCESS TESTE/ACCESS

O ACCESS ENTRA
terface é realmente mais prática. Com Note que o usuário não mais pre-
ela, será possível realizar mais tare- cisa chamar uma caixa de diálogo de-
fas com menos cliques na tela. Mas pois de passar por vários menus. Bas-

EM REFORMA
os usuários vão estranhar bastante. ta alterar o que quer diretamente no
painel, que fica na parte superior da
FIM DOS MENUS tela e sempre muda para adequar-se
UMA MUDANÇA DRÁSTICA NA INTERFACE COM O USUÁRIO O beta 1 do novo Office (o nome Of- à tarefa sendo realizada. Coisas co-
É A PRINCIPAL NOVIDADE DO OFFICE 12, DA MICROSOFT fice 12 não é definitivo) traz os apli- mo formatação de texto e dimensões
POR PAULO SILVESTRE cativos Excel, Word, PowerPoint, Ac- de figuras e links para páginas da web,
cess e Outlook, além de alguns pro- por exemplo, podem ser definidas
interface baseada em to para o fim de 2006, leva adiante gramas auxiliares, como o InfoPath, nesse painel superior. Em muitas si-

A menus já é tão familiar


aos usuários do Windows
que pode parecer teme-
uma tendência que já havia se esbo-
çado nos betas do Windows Vista. No
primeiro beta do Office 12, analisado
usado para criar formulários em
XML. O que mais chama a atenção
é a nova organização visual.
tuações, o painel apropriado é exibi-
do automaticamente. Por exemplo,
ao clicar num gráfico, um painel de
rário substituí-la por outra. Mas é is- pelo INFOLAB, os menus desparece- A idéia da Microsoft é que, com propriedades da imagem aparece.
so que a Microsoft está fazendo com ram e deram lugar a uma interface mais e mais recursos embutidos em
o banco de dados Access e os demais com o usuário radicalmente diferen- seus diferentes programas, estava FORMATOS DA GALERIA
integrantes do Office, seu pacote de te. A promessa é que, com isso, o soft- difícil para os usuários do Office en- O Access e os outros programas do
aplicativos para escritório. O Office 12, ware ficará mais fácil de usar. A ava- contrar o que procuravam numa ár- Office passam a trabalhar extensa-
nova versão com lançamento previs- liação do INFOLAB é que a nova in- vore de menus e submenus cada mente com galerias. Trata-se de con-
vez mais complexa. juntos predefinidos de formatações
ou propriedades, como, por exemplo,
OPÇÕES NOS PAINÉIS o posicionamento de uma imagem
O Office 12 tenta resolver o problema em um texto. Os padrões mais co-
do excesso de comandos nos menus muns ou freqüentemente usados fi-
eliminando o mal pela raiz. Há um úni- cam disponíveis para uso imediato.
co menu horizontal no alto da tela. Basta o usuário clicar sobre a repre-
Quando o usuário clica num dos itens, sentação gráfica do resultado para
em vez de se abrir um submenu, apa- que o conjunto de parâmetros seja
rece um painel com botões, ícones e aplicado. Mas as tradicionais caixas
outros elementos que acionam co- de diálogo continuam disponíveis.
mandos ou acrescentam coisas ao do-
cumento. Está escrevendo um texto? OFFICE LIVE
O painel, com todos os comandos ne- Como já acontecia nas versões ante-
cessários para a função, aparece. Vai riores, muitas das novidades do Offi-
inserir uma imagem? Clique em Inse- ce 12 são voltadas ao público empre-
rir na barra superior. Um painel que sarial. Uma delas é a integração com
permite inserir não só a imagem, mas os serviços online que a Microsoft vem
também planilhas, símbolos e qual- chamando de Office Live. Quando es-
Access 12: a interface substitui os vários menus por um menu horizontal no alto
quer outra coisa, é exibido. ses serviços estiverem disponíveis, os

54 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 55
054_ACCESS 25/02/2006 23:04 Page 54

TESTE/ACCESS TESTE/ACCESS

O ACCESS ENTRA
terface é realmente mais prática. Com Note que o usuário não mais pre-
ela, será possível realizar mais tare- cisa chamar uma caixa de diálogo de-
fas com menos cliques na tela. Mas pois de passar por vários menus. Bas-

EM REFORMA
os usuários vão estranhar bastante. ta alterar o que quer diretamente no
painel, que fica na parte superior da
FIM DOS MENUS tela e sempre muda para adequar-se
UMA MUDANÇA DRÁSTICA NA INTERFACE COM O USUÁRIO O beta 1 do novo Office (o nome Of- à tarefa sendo realizada. Coisas co-
É A PRINCIPAL NOVIDADE DO OFFICE 12, DA MICROSOFT fice 12 não é definitivo) traz os apli- mo formatação de texto e dimensões
POR PAULO SILVESTRE cativos Excel, Word, PowerPoint, Ac- de figuras e links para páginas da web,
cess e Outlook, além de alguns pro- por exemplo, podem ser definidas
interface baseada em to para o fim de 2006, leva adiante gramas auxiliares, como o InfoPath, nesse painel superior. Em muitas si-

A menus já é tão familiar


aos usuários do Windows
que pode parecer teme-
uma tendência que já havia se esbo-
çado nos betas do Windows Vista. No
primeiro beta do Office 12, analisado
usado para criar formulários em
XML. O que mais chama a atenção
é a nova organização visual.
tuações, o painel apropriado é exibi-
do automaticamente. Por exemplo,
ao clicar num gráfico, um painel de
rário substituí-la por outra. Mas é is- pelo INFOLAB, os menus desparece- A idéia da Microsoft é que, com propriedades da imagem aparece.
so que a Microsoft está fazendo com ram e deram lugar a uma interface mais e mais recursos embutidos em
o banco de dados Access e os demais com o usuário radicalmente diferen- seus diferentes programas, estava FORMATOS DA GALERIA
integrantes do Office, seu pacote de te. A promessa é que, com isso, o soft- difícil para os usuários do Office en- O Access e os outros programas do
aplicativos para escritório. O Office 12, ware ficará mais fácil de usar. A ava- contrar o que procuravam numa ár- Office passam a trabalhar extensa-
nova versão com lançamento previs- liação do INFOLAB é que a nova in- vore de menus e submenus cada mente com galerias. Trata-se de con-
vez mais complexa. juntos predefinidos de formatações
ou propriedades, como, por exemplo,
OPÇÕES NOS PAINÉIS o posicionamento de uma imagem
O Office 12 tenta resolver o problema em um texto. Os padrões mais co-
do excesso de comandos nos menus muns ou freqüentemente usados fi-
eliminando o mal pela raiz. Há um úni- cam disponíveis para uso imediato.
co menu horizontal no alto da tela. Basta o usuário clicar sobre a repre-
Quando o usuário clica num dos itens, sentação gráfica do resultado para
em vez de se abrir um submenu, apa- que o conjunto de parâmetros seja
rece um painel com botões, ícones e aplicado. Mas as tradicionais caixas
outros elementos que acionam co- de diálogo continuam disponíveis.
mandos ou acrescentam coisas ao do-
cumento. Está escrevendo um texto? OFFICE LIVE
O painel, com todos os comandos ne- Como já acontecia nas versões ante-
cessários para a função, aparece. Vai riores, muitas das novidades do Offi-
inserir uma imagem? Clique em Inse- ce 12 são voltadas ao público empre-
rir na barra superior. Um painel que sarial. Uma delas é a integração com
permite inserir não só a imagem, mas os serviços online que a Microsoft vem
também planilhas, símbolos e qual- chamando de Office Live. Quando es-
Access 12: a interface substitui os vários menus por um menu horizontal no alto
quer outra coisa, é exibido. ses serviços estiverem disponíveis, os

54 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 55
054_ACCESS 25/02/2006 23:05 Page 56

TESTE/ACCESS

aplicativos poderão interagir com eles passa a não aceitar mais alterações.
via internet. Há um pacote básico de O Office 12 deve ainda ganhar recur-
serviços, que pode atender a uma pe- sos que permitam a transferência de
quena empresa, que estará incluído dados, conversas por áudio e por ví-
na licença do Office. Ele oferece, por deo entre usuários. Além disso, po-
exemplo, 30 MB num servidor para a derão trocar mensagens instantâ-
hospedagem de um site e cinco con- neas com colegas com comunicado-
tas de e-mail com o domínio da em- res do MSN, da AOL e do Yahoo!.
presa. Outros serviços mais elabora-
dos, como gerenciadores online de FORMATOS DE ARQUIVOS
projetos e relatórios de despesas, es- O Office 12 destaca a gravação de
tarão disponíveis por assinatura. arquivos em XML com compressão
no padrão Zip. O objetivo é facilitar
COLABORAÇÃO NA EQUIPE a troca de dados com outros apli-
O Office 12 também traz melhorias cativos, incluindo os que rodam em
nas ferramentas de colaboração. Os servidores corporativos. Os forma-
aplicativos permitem que usuários de tos de arquivos atualmente usados
um mesmo grupo realizem tarefas continuarão disponíveis.
em conjunto. Além de poder gravar Essas mudanças são muito bem-
localmente seus documentos, os apli- vindas. Até porque, o Access conti-
cativos permitem armazená-los num nua o mesmo há dois anos, desde
servidor para acesso coletivo. As atua- quando foi lançado o Office 2003.
lizações feitas remotamente são sin- Nessa versão, o banco de dados pas-
cronizadas com os arquivos locais, fa- sou a permitir aos desenvolvedo-
cilitando as revisões. Quando o tra- res a criação de soluções mais so-
balho é concluído, um dos autores fisticadas em menor tempo. A inte-
pode “encerrar” o documento, que gração com a web foi privilegiada.
O conceito de Office
Developer Center
permitiu o trabalho
com tecnologias co-
mo XML e SQL Ser-
ver. E o banco de da-
dos passou a ter a
capacidade de pro-
duzir backups.

Access 2003: versão


atual permite incluir
vídeo, foto e som

56 < C O L E Ç Ã O I N F O
057_INTERF_ADMINIS 25/02/2006 23:06 Page 57

TESTE/INTERFACES

ADMINISTRAÇÃO
É TUDO
MERGULHE NAS INTERFACES E DESCUBRA RECURSOS
BACANAS DO DB2 E DO SQL SERVER 2005
POR NIVALDO FORESTI

m sistema de banco de bancos de dados para pequenas e mé-

U dados não é nada sem a


sua parte de administra-
ção. Sem ela, teriamos de
voltar à época em que comandos com
dias empresas. Para a alegria geral dos
usuários, as versões Express gratuitas
dos grandes competidoras dessa are-
na, Microsoft, Oracle e IBM, contêm re-
mais de duas linhas precisavam ser di- cursos tão poderosos quanto os dos
gitados para criar um campo em uma seus irmãos pagos. Aqui vamos explo-
tabela. Além disso, controlar índices, rar o mundo administrativo de duas
utilização de campos e consumo de versões Express, a do DB2, da IBM, e a
memória continuaria impensável em do SQL Server 2005, da Microsoft.

Centro de Controle: caixas de diálogo e assistentes conduzem o usuário

C O L E Ç Ã O I N F O > 57
057_INTERF_ADMINIS 25/02/2006 23:10 Page 58

TESTE/INTERFACES TESTE/INTERFACES

bela, basta clicar no bo- te aqui. Existe um debate intenso en- modificar ou criar novos dados. O
tão Incluir. Uma janela per- tre os especialistas para definir on- Centro de Controle permite escrever
mite criar campos do tipo de essas regras devem existir, se ca- e verificar os resultados de uma con-
INT (inteiro) com três ti- dastradas nos campos das tabelas sulta em SQL diretamente na janela
pos diferentes, Char (Ca- (restrições), nos programas de vali- Visualizar comandos. No entanto, me-
racteres) com quatro ti- dação das aplicações ou em servido- lhor do que isso é ter o programa
pos diferentes, binários res específicos para regras de negó- guiando-o pelo árduo mundo dos co-
incluindo BLOB, quatro ti- cio. Para você ter paz de espírito, é mandos SQL. Basta clicar no ícone
pos de campos gráficos, aconselhável usar as restrições em SQL e um assistente facilitará a cria-
Data, Hora, TIMESTAMP, campos, para que no futuro seus da- ção e execução de sua consulta.
Decimal, Numérico, Real, dos se mostrem inúteis. Outro deta- Com mais um clique em Executar
ponto flutuante e Doublé. lhe importante é que a forma de ca- e Acessar Plano é possível determi-
Centro de tarefas: permite Caso você deseje incluir vários cam- dastrar as restrições não é encontra- nar o custo desses comandos dentro
executar programas em lote
pos na tabela, clique em Aplicar em da na documentação. Foi necessário do seu programa. Entenda-se por
vez de OK, assim a janela permane- pesquisar exemplos na internet pa- custo o tempo que cada pedaço de-
DB2 EXPRESS-C ce aberta para a inclusão dos demais ra descobrir como fazer. mora para ser executado. Assim, com
Com uma interface extremamente campos. algumas modificações, um progra-
simples e fácil de usar, o Centro de O usuário pode definir valores-pa- JANELA DE ERROS ma otimizado será construído ou pro-
Controle programa de administra- drão para os tipos CHAR, DATE, TIME Finalmente, há alguns recursos e fun- blemas de desempenho detectados.
ção do DB2 Express-C, encara de e TIMESTAMP. Eles devem ser defi- cionalidades interessantes nesse pro- Outro procedimento comum em
frente qualquer ferramenta paga. nidos dentro de aspas simples. Adi- cesso. Primeiro, você pode voltar a interfaces de administração são os
Clique em qualquer ícone ou me- cionalmente, é possível determinar qualquer momento em qualquer pas- backups. Com o Centro de Contro-
nu, e uma série de caixas de diálo- uma fórmula para o preenchimento so e modificar opções. Segundo, ao le dá para fazer backups manuais
go e assistentes o levarão a concluir do campo. No entanto, em nenhum final você pode ver o código SQL ge- ou cronogramados de forma sim-
a tarefa desejada. lugar da documentação foram en- rado e salvá-lo para reutilização, mo- ples e prática. Mais um assistente
Para criar suas próprias tabelas contradas funções, tais como Hoje ou dificá-lo ou simplesmente rever o
no banco de dados de exemplo, Agora, ou como construir essas fór- que será feito na criação da tabela. Análise de consulta: um clique em
basta expandir a árvore de visua- mulas para incluir nos campos. O melhor de tudo é que o DB2 mos- Anexar Plano diz o custo do comando
lização existente na janela Todos Os passos seguintes são os de es- tra uma janela apontando
os Bancos de Dados, clicar na op- colher em que espaço a tabela se- erros ou com a informa-
ção Tabelas com o botão direito do rá criada, a definição de que cam- ção de sucesso durante a
mouse e escolher a opção Criar Ta- pos serão chaves, as dimensões e criação da tabela.
belas. Um assistente o levará pe- restrições. Com as restrições é pos- Um trabalho importan-
los sete passos do processo. É im- sível controlar o lixo que irá popu- te realizado nas interfaces
portante usá-lo, pois recursos co- lar a sua tabela. Você pode impe- de administração são as
mo criação de índices, restrições dir que valores acima de 10 ou me- consultas (queries). O ad-
aos dados e multidimensões são nores que 5 sejam preenchidos em ministrador ou programa-
tratadas com bastante clareza e na uma coluna ou que somente deter- dor precisa verificar infor-
ordem correta de uso. minados textos existam nela. mações, exportar dados
Para adicionar uma coluna na ta- Uma palavra de aviso é importan- para outros programas e

58 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 59
057_INTERF_ADMINIS 25/02/2006 23:10 Page 58

TESTE/INTERFACES TESTE/INTERFACES

bela, basta clicar no bo- te aqui. Existe um debate intenso en- modificar ou criar novos dados. O
tão Incluir. Uma janela per- tre os especialistas para definir on- Centro de Controle permite escrever
mite criar campos do tipo de essas regras devem existir, se ca- e verificar os resultados de uma con-
INT (inteiro) com três ti- dastradas nos campos das tabelas sulta em SQL diretamente na janela
pos diferentes, Char (Ca- (restrições), nos programas de vali- Visualizar comandos. No entanto, me-
racteres) com quatro ti- dação das aplicações ou em servido- lhor do que isso é ter o programa
pos diferentes, binários res específicos para regras de negó- guiando-o pelo árduo mundo dos co-
incluindo BLOB, quatro ti- cio. Para você ter paz de espírito, é mandos SQL. Basta clicar no ícone
pos de campos gráficos, aconselhável usar as restrições em SQL e um assistente facilitará a cria-
Data, Hora, TIMESTAMP, campos, para que no futuro seus da- ção e execução de sua consulta.
Decimal, Numérico, Real, dos se mostrem inúteis. Outro deta- Com mais um clique em Executar
ponto flutuante e Doublé. lhe importante é que a forma de ca- e Acessar Plano é possível determi-
Centro de tarefas: permite Caso você deseje incluir vários cam- dastrar as restrições não é encontra- nar o custo desses comandos dentro
executar programas em lote
pos na tabela, clique em Aplicar em da na documentação. Foi necessário do seu programa. Entenda-se por
vez de OK, assim a janela permane- pesquisar exemplos na internet pa- custo o tempo que cada pedaço de-
DB2 EXPRESS-C ce aberta para a inclusão dos demais ra descobrir como fazer. mora para ser executado. Assim, com
Com uma interface extremamente campos. algumas modificações, um progra-
simples e fácil de usar, o Centro de O usuário pode definir valores-pa- JANELA DE ERROS ma otimizado será construído ou pro-
Controle programa de administra- drão para os tipos CHAR, DATE, TIME Finalmente, há alguns recursos e fun- blemas de desempenho detectados.
ção do DB2 Express-C, encara de e TIMESTAMP. Eles devem ser defi- cionalidades interessantes nesse pro- Outro procedimento comum em
frente qualquer ferramenta paga. nidos dentro de aspas simples. Adi- cesso. Primeiro, você pode voltar a interfaces de administração são os
Clique em qualquer ícone ou me- cionalmente, é possível determinar qualquer momento em qualquer pas- backups. Com o Centro de Contro-
nu, e uma série de caixas de diálo- uma fórmula para o preenchimento so e modificar opções. Segundo, ao le dá para fazer backups manuais
go e assistentes o levarão a concluir do campo. No entanto, em nenhum final você pode ver o código SQL ge- ou cronogramados de forma sim-
a tarefa desejada. lugar da documentação foram en- rado e salvá-lo para reutilização, mo- ples e prática. Mais um assistente
Para criar suas próprias tabelas contradas funções, tais como Hoje ou dificá-lo ou simplesmente rever o
no banco de dados de exemplo, Agora, ou como construir essas fór- que será feito na criação da tabela. Análise de consulta: um clique em
basta expandir a árvore de visua- mulas para incluir nos campos. O melhor de tudo é que o DB2 mos- Anexar Plano diz o custo do comando
lização existente na janela Todos Os passos seguintes são os de es- tra uma janela apontando
os Bancos de Dados, clicar na op- colher em que espaço a tabela se- erros ou com a informa-
ção Tabelas com o botão direito do rá criada, a definição de que cam- ção de sucesso durante a
mouse e escolher a opção Criar Ta- pos serão chaves, as dimensões e criação da tabela.
belas. Um assistente o levará pe- restrições. Com as restrições é pos- Um trabalho importan-
los sete passos do processo. É im- sível controlar o lixo que irá popu- te realizado nas interfaces
portante usá-lo, pois recursos co- lar a sua tabela. Você pode impe- de administração são as
mo criação de índices, restrições dir que valores acima de 10 ou me- consultas (queries). O ad-
aos dados e multidimensões são nores que 5 sejam preenchidos em ministrador ou programa-
tratadas com bastante clareza e na uma coluna ou que somente deter- dor precisa verificar infor-
ordem correta de uso. minados textos existam nela. mações, exportar dados
Para adicionar uma coluna na ta- Uma palavra de aviso é importan- para outros programas e

58 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 59
057_INTERF_ADMINIS 25/02/2006 23:11 Page 60

TESTE/INTERFACES TESTE/INTERFACES

nexões simultâneas, tor- sas configurações de visualização per- so, desse menu é possível reorgani-
nando o SQL Server Ex- mitem criar um ambiente único pa- za-los ou recria-los. O mesmo acon-
press muito mais usável. ra cada usuário. tece com funções e stored procedu-
Mas existem limitações. A res, todas a um clique do seu mouse.
memória máxima supor- UM CLIQUE Outro recurso interessante é o de
tada é de 1GB de RAM e Criar tabelas e colunas é trabalho pa- monitoração. Uma janela específica
limitado a somente um ra um clique no mouse. Todas as in- permite verificar quem ou que pro-
processador. O tamanho formações se encontram disponíveis, cessos estão consumindo os recur-
máximo do banco de da- o banco de dados, a tabela, as colu- sos do servidor onde está o SQL Ser-
dos é de 4GB. Além disso, nas e as todas as propriedades en- ver Express 2005. Muito útil para diag-
nem todos os recursos volvidas em cada um deles. Os cam- nosticar problemas de desempenho.
existentes nas versões pa- pos suportam os mais variados tipos No geral o programa de adminis-
SQL Express: todos os elementos gas estão disponíveis, o que inclui o e alguns criados pelo próprio usuá- tração é bom de se utilizar. No en-
disponiveis para criar tabelas
serviço de relatórios (que estará dis- rio para facilitar a padronização por tanto, alguns recursos estão faltan-
ponível em uma versão avançada do todo o sistema. Por exemplo, você do. Por exemplo, as tarefas de ma-
o leva pelo caminho certo. O DB2 Express), o serviço de notificação, o pode criar um campo chamado no- nutenção se resumem a um assisten-
Express-C conta ainda com um Con- serviço de análise, a pesquisa full text, me que tenha um tamanho específi- te para backup, pouco para suportar
trole de Replicação que será mui- DTS e as facilidades de OLAP (Onli- co e pode ser escolhido em qualquer aplicações robustas. Sentimos a fal-
to útil nas situações em que você ne Analytical Processing). tabela criada. O DB2 também tem es- ta também de importadores e expor-
quer manter seus sistemas em fun- O SQL Management Server Stu- sa função, mas ela está um pouco de- tadores de dados, o que dificulta aos
cionamento, mesmo quando hou- dio Express CTP é a suíte de admi- sorganizada e escondida na ferra- novatos migrar dados de outros apli-
ver panes de energia ou outras ca- nistração e desenvolvimento do SQL menta de administração. cativos. Essa função existe, mas so-
tástrofes ou para ativar outros apli- Server Express Edition que substi- As consultas podem ser feitas co- mente para importar dados previa-
cativos quando determinados da- tui o Query Analyser e o Enterprise mo no QBE, selecionado-se tabelas, mente exportados de alguma tabela
dos são modificados. Manager da versão anterior, além campos e opções de filtro, ou escre- do SQL Express.
Por fim, o Controle de Tarefas per- de trazer várias facilidades. Embo- vendo-se o comando SQL diretamen-
mite executar programas em lote tais ra complexa, a ferramenta é única te. Nesse caso, o DB2 é um pouco mais Monitoração: verifica os processos
como manutenções, exportações de e integrada para a realização de to- intuitivo para os iniciantes com o seu que consomem recursos do servidor
arquivo, importações de dados de das as tarefas necessárias. Você po- assistente. Em todas as ja-
outras aplicações etc. de mudar a estrutura de uma base nelas é possível se realizar
de dados, realizar consultas e ou- filtros. Os filtros abrem ja-
SQL SERVER 2005 EXPRESS tras tarefas importantes. nelas que permitem um
O SQL Server 2005 Express veio subs- Uma série de assistentes e facili- acesso mais amigável pa-
tituir o MSDE (Microsoft SQL Server dades fazem do SQL Management ra os que estão começan-
Desktop Engine). Essa mudança es- Server Studio Express uma grande do no trabalho de progra-
tá fazendo bem a todos que usavam ferramenta para os administradores mação. Criar índices é fácil
a versão Express anterior. Foi elimi- e programadores. Particularmente, e intuitivo. Basta clicar no
nado o Governor do MSDE, que tor- a capacidade de usar e reusar scripts campo ou na pasta índice
nava mais lenta a aplicação quando para a criação ou manutenção das da tabela e criar índices, até
o programa tinha mais de cinco co- bases de dados. Além disso, as diver- mesmo em XML. Além dis-

60 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 61
057_INTERF_ADMINIS 25/02/2006 23:11 Page 60

TESTE/INTERFACES TESTE/INTERFACES

nexões simultâneas, tor- sas configurações de visualização per- so, desse menu é possível reorgani-
nando o SQL Server Ex- mitem criar um ambiente único pa- za-los ou recria-los. O mesmo acon-
press muito mais usável. ra cada usuário. tece com funções e stored procedu-
Mas existem limitações. A res, todas a um clique do seu mouse.
memória máxima supor- UM CLIQUE Outro recurso interessante é o de
tada é de 1GB de RAM e Criar tabelas e colunas é trabalho pa- monitoração. Uma janela específica
limitado a somente um ra um clique no mouse. Todas as in- permite verificar quem ou que pro-
processador. O tamanho formações se encontram disponíveis, cessos estão consumindo os recur-
máximo do banco de da- o banco de dados, a tabela, as colu- sos do servidor onde está o SQL Ser-
dos é de 4GB. Além disso, nas e as todas as propriedades en- ver Express 2005. Muito útil para diag-
nem todos os recursos volvidas em cada um deles. Os cam- nosticar problemas de desempenho.
existentes nas versões pa- pos suportam os mais variados tipos No geral o programa de adminis-
SQL Express: todos os elementos gas estão disponíveis, o que inclui o e alguns criados pelo próprio usuá- tração é bom de se utilizar. No en-
disponiveis para criar tabelas
serviço de relatórios (que estará dis- rio para facilitar a padronização por tanto, alguns recursos estão faltan-
ponível em uma versão avançada do todo o sistema. Por exemplo, você do. Por exemplo, as tarefas de ma-
o leva pelo caminho certo. O DB2 Express), o serviço de notificação, o pode criar um campo chamado no- nutenção se resumem a um assisten-
Express-C conta ainda com um Con- serviço de análise, a pesquisa full text, me que tenha um tamanho específi- te para backup, pouco para suportar
trole de Replicação que será mui- DTS e as facilidades de OLAP (Onli- co e pode ser escolhido em qualquer aplicações robustas. Sentimos a fal-
to útil nas situações em que você ne Analytical Processing). tabela criada. O DB2 também tem es- ta também de importadores e expor-
quer manter seus sistemas em fun- O SQL Management Server Stu- sa função, mas ela está um pouco de- tadores de dados, o que dificulta aos
cionamento, mesmo quando hou- dio Express CTP é a suíte de admi- sorganizada e escondida na ferra- novatos migrar dados de outros apli-
ver panes de energia ou outras ca- nistração e desenvolvimento do SQL menta de administração. cativos. Essa função existe, mas so-
tástrofes ou para ativar outros apli- Server Express Edition que substi- As consultas podem ser feitas co- mente para importar dados previa-
cativos quando determinados da- tui o Query Analyser e o Enterprise mo no QBE, selecionado-se tabelas, mente exportados de alguma tabela
dos são modificados. Manager da versão anterior, além campos e opções de filtro, ou escre- do SQL Express.
Por fim, o Controle de Tarefas per- de trazer várias facilidades. Embo- vendo-se o comando SQL diretamen-
mite executar programas em lote tais ra complexa, a ferramenta é única te. Nesse caso, o DB2 é um pouco mais Monitoração: verifica os processos
como manutenções, exportações de e integrada para a realização de to- intuitivo para os iniciantes com o seu que consomem recursos do servidor
arquivo, importações de dados de das as tarefas necessárias. Você po- assistente. Em todas as ja-
outras aplicações etc. de mudar a estrutura de uma base nelas é possível se realizar
de dados, realizar consultas e ou- filtros. Os filtros abrem ja-
SQL SERVER 2005 EXPRESS tras tarefas importantes. nelas que permitem um
O SQL Server 2005 Express veio subs- Uma série de assistentes e facili- acesso mais amigável pa-
tituir o MSDE (Microsoft SQL Server dades fazem do SQL Management ra os que estão começan-
Desktop Engine). Essa mudança es- Server Studio Express uma grande do no trabalho de progra-
tá fazendo bem a todos que usavam ferramenta para os administradores mação. Criar índices é fácil
a versão Express anterior. Foi elimi- e programadores. Particularmente, e intuitivo. Basta clicar no
nado o Governor do MSDE, que tor- a capacidade de usar e reusar scripts campo ou na pasta índice
nava mais lenta a aplicação quando para a criação ou manutenção das da tabela e criar índices, até
o programa tinha mais de cinco co- bases de dados. Além disso, as diver- mesmo em XML. Além dis-

60 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 61
062_GUIA_TAB_ACCESS 25/02/2006 23:15 Page 62

TUTORIAL/TABELAS TUTORIAL/TABELAS

TABELAS SEM Campo com valores:


as opções aparecem na
caixa de combinação

MISTÉRIO
UM ROTEIRO ESPERTO PARA ENTENDER CADA ITEM
de Tamanho do
Campo para esse ti-
po de dado é tam-
E CRIAR TABELAS COM TOQUE PROFISSIONAL bém muito impor-
POR DANILO WITZEL tante. Veja na tabe-
la “O tamanho dos
riar tabelas é uma tare- opções na coluna Tipo de Dados. Es- números” o quanto

C fa muito simples e até


intuitiva. Mas só até cer-
to ponto. Montar uma
tabela de um modo que os seus da-
sas opções são comentadas a seguir.
■ TEXTO Armazena qualquer tipo
de caractere. O limite de caracteres
pode ser definido por quem está
você para consertá-lo somente por
causa desses cinco caracteres. Pa-
cada especificação
numérica ocupa em
cada caso. Com essa tabela, você
pode definir o tamanho correto pa-
dos sejam realmente úteis e confiá- criando a tabela, mas só pode ir até ra evitar problemas desse tipo, de- ra o campo, levando em conta a in-
veis exige um bom conhecimento 255. Para isso, basta informar o ta- fina sempre um número grande — formação que você quer guardar e
de detalhes, até porque as tabelas manho desejado na propriedade. no caso, pode ser 100. O Access não o espaço em disco que ela usará.
têm características peculiares. As- ■ TAMANHO DO CAMPO Definir o reserva espaço para partes não uti- No entanto, mais importante que
sim, pensando em quem acaba de limite aqui é complicado. Você po- lizadas de um campo texto. Ou se- o tamanho ocupado é a capacida-
desembarcar no mundo dos bancos de, por exemplo, definir em 50 o ta- ja, mesmo que você reserve 100, se de do campo numérico. Se, por
de dados, vamos tratar aqui de ca- manho de um campo que vai arma- o usuário só utilizar 30, o Access só exemplo, você escolher para um
da uma de suas propriedades rele- zenar a razão social. Na prática, o consumirá o espaço corresponden- campo o tipo Número Inteiro, pre-
vantes. Usaremos o banco de dados usuário quer cadastrar uma razão te a 30 caracteres. Não estranhe es- cisa saber de antemão que esse
Access como exemplo. Embora al- social que tem 55 caracteres, não sa observação: há bancos de dados campo não poderá armazenar nú-
gumas características sejam próprias vai conseguir e dirá que seu progra- que usam toda a capacidade do meros, positivos ou negativos, até
das tabelas do Access, a maioria se ma tem um bug terrível e chamar campo, mesmo que esteja vazio. cerca de 32700. Seu sistema dará
aplica a outros pro- ■ MEMORANDO É idêntico ao tipo erro se o usuário tentar registrar no
gramas do gênero. de dados Texto, mas sua capacida- campo o valor 40000.
de é muito maior: até 65 535 carac- ■ DATA/HORA Usado para guardar
TIPO DE DADOS teres. Não tem a propriedade Ta- data e hora. Note que não é data
O tipo de dados é a manho do Campo. O campo memo- ou hora. O Access guarda esse tipo
propriedade mais rando é muito utilizado para arma- de dados em 8 bytes. Os limites de
importante da tabe- zenar observações ou quando se datas vão de 1 de janeiro do ano
la. Quando se cria quer guardar muitas informações 100 até 31 de dezembro de 9999.
um campo, o Access num campo só. Quando você insere apenas a data
oferece uma lista de ■ NÚMERO Destina-se a guardar neste campo, o Access grava a ho-
Tipo de Dados: números, geralmente utilizados em ra zero (00:00:00) como comple-
cuidado na escolha da cálculos matemáticos ou como có- mento da data. Situação idêntica
opção salva a tabela
digo de identificação. A proprieda- acontece se você informar apenas

62 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 63
062_GUIA_TAB_ACCESS 25/02/2006 23:15 Page 62

TUTORIAL/TABELAS TUTORIAL/TABELAS

TABELAS SEM Campo com valores:


as opções aparecem na
caixa de combinação

MISTÉRIO
UM ROTEIRO ESPERTO PARA ENTENDER CADA ITEM
de Tamanho do
Campo para esse ti-
po de dado é tam-
E CRIAR TABELAS COM TOQUE PROFISSIONAL bém muito impor-
POR DANILO WITZEL tante. Veja na tabe-
la “O tamanho dos
riar tabelas é uma tare- opções na coluna Tipo de Dados. Es- números” o quanto

C fa muito simples e até


intuitiva. Mas só até cer-
to ponto. Montar uma
tabela de um modo que os seus da-
sas opções são comentadas a seguir.
■ TEXTO Armazena qualquer tipo
de caractere. O limite de caracteres
pode ser definido por quem está
você para consertá-lo somente por
causa desses cinco caracteres. Pa-
cada especificação
numérica ocupa em
cada caso. Com essa tabela, você
pode definir o tamanho correto pa-
dos sejam realmente úteis e confiá- criando a tabela, mas só pode ir até ra evitar problemas desse tipo, de- ra o campo, levando em conta a in-
veis exige um bom conhecimento 255. Para isso, basta informar o ta- fina sempre um número grande — formação que você quer guardar e
de detalhes, até porque as tabelas manho desejado na propriedade. no caso, pode ser 100. O Access não o espaço em disco que ela usará.
têm características peculiares. As- ■ TAMANHO DO CAMPO Definir o reserva espaço para partes não uti- No entanto, mais importante que
sim, pensando em quem acaba de limite aqui é complicado. Você po- lizadas de um campo texto. Ou se- o tamanho ocupado é a capacida-
desembarcar no mundo dos bancos de, por exemplo, definir em 50 o ta- ja, mesmo que você reserve 100, se de do campo numérico. Se, por
de dados, vamos tratar aqui de ca- manho de um campo que vai arma- o usuário só utilizar 30, o Access só exemplo, você escolher para um
da uma de suas propriedades rele- zenar a razão social. Na prática, o consumirá o espaço corresponden- campo o tipo Número Inteiro, pre-
vantes. Usaremos o banco de dados usuário quer cadastrar uma razão te a 30 caracteres. Não estranhe es- cisa saber de antemão que esse
Access como exemplo. Embora al- social que tem 55 caracteres, não sa observação: há bancos de dados campo não poderá armazenar nú-
gumas características sejam próprias vai conseguir e dirá que seu progra- que usam toda a capacidade do meros, positivos ou negativos, até
das tabelas do Access, a maioria se ma tem um bug terrível e chamar campo, mesmo que esteja vazio. cerca de 32700. Seu sistema dará
aplica a outros pro- ■ MEMORANDO É idêntico ao tipo erro se o usuário tentar registrar no
gramas do gênero. de dados Texto, mas sua capacida- campo o valor 40000.
de é muito maior: até 65 535 carac- ■ DATA/HORA Usado para guardar
TIPO DE DADOS teres. Não tem a propriedade Ta- data e hora. Note que não é data
O tipo de dados é a manho do Campo. O campo memo- ou hora. O Access guarda esse tipo
propriedade mais rando é muito utilizado para arma- de dados em 8 bytes. Os limites de
importante da tabe- zenar observações ou quando se datas vão de 1 de janeiro do ano
la. Quando se cria quer guardar muitas informações 100 até 31 de dezembro de 9999.
um campo, o Access num campo só. Quando você insere apenas a data
oferece uma lista de ■ NÚMERO Destina-se a guardar neste campo, o Access grava a ho-
Tipo de Dados: números, geralmente utilizados em ra zero (00:00:00) como comple-
cuidado na escolha da cálculos matemáticos ou como có- mento da data. Situação idêntica
opção salva a tabela
digo de identificação. A proprieda- acontece se você informar apenas

62 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 63
062_GUIA_TAB_ACCESS 25/02/2006 23:19 Page 64

TUTORIAL/TABELAS TUTORIAL/TABELAS

de ser baseada em outra tabela, ou caracteres; a terceira parte é o ca-


Assistente de
Pesquisa: orientação numa lista de valores que você po- ractere que deve ser mostrado
sobre a origem do dado de criar no próprio assistente. Após quando um dígito não está preen-
executar essa opção, você pode ver chido. Você pode colocar qualquer
podem ser negativos que as propriedades da guia Pes- um — o padrão é o sublinhado ( _ ).
ou positivos. quisa do campo criado estão preen- Para que serve cada caractere na
■ SIM/NÃO Ocupa chidas conforme o que foi escolhi- máscara de entrada? A resposta vo-
apenas 1 bit de es- do no assistente. cê tem na tabela Máscaras de En-
paço em disco. É uti- trada, que mostra cada caractere e
lizado para guardar ENTRADA DE DADOS sua função. Outro exemplo é a más-
informações que vo- Imagine que você tem um campo cara de entrada do telefone:
cê tem certeza que que armazena o número do docu- "(0XX"99") "#999\-9999;0;_
só podem conter um mento de identidade de seus clien- Preenchido o campo, a máscara
as horas, só que a data é gravada entre dois valores. Exemplo: um tes e que os usuários ora digitam acima produz um resultado como:
como 30/12/1899, o dia inicial do campo que indica se a pessoa é ca- de um jeito ora de outro. Portanto, (0XX11) _867-9926. Uma opção in-
calendário interno do Access e de sada só pode ter o valor sim ou não. você não confiará nas informações teressante da propriedade Másca-
outros programas do Office. Enfim, ■ OBJETO OLE Serve para guardar digitadas. Para evitar isso, a pro- ra de Entrada é que ela pode ser
o Access grava as duas partes, da- objetos como documentos do Word, priedade Máscara de Entrada defi- definida como Senha. Basta você
ta e hora, e você utiliza a que de- planilhas do Excel, gráficos, sons e ne exatamente como deve ser digi- digitar senha nessa propriedade e
sejar no campo que está criando. outros. O objeto pode ser incorpo- tado o RG, o CPF, o CEP e outros da- o que o usuário digitar nesse cam-
■ MOEDA É um tipo de dado nu- rado à tabela ou vinculado. dos que você queira padronizar. Pa- po será exibido como asterisco(*).
mérico designado para armazenar ■ HYPERLINK Utilizado para guar- ra o caso do RG, você coloca a se- O Access tem ainda um assistente
valores monetários. O tamanho ocu- dar endereços web, e-mails etc. Bas- guinte máscara de entrada: para máscara de entrada. Clique no
pado em disco é de 8 bytes, igual ta clicar no endereço e abre-se a 99.000.000C\->a;0;_ botão Construtor e o programa exi-
ao tipo de dados numérico com ta- página ou arquivo a que ele se re- A máscara de entrada se divide be exemplos de máscara que você
manho duplo. No entanto, só há fere. Esse tipo de dado se divide em em três partes, separadas pelo pon- pode escolher e definir automati-
quatro casas decimais e a parte in- três partes: textodeexibição (o tex- to-e-vírgula: a primeira é a própria camente para o seu campo. Outra
teira vai até 15 dígitos. to que aparece no campo ou con- definição da entra-
■ AUTONUMERAÇÃO É um tipo nu- trole); endereço (o caminho de um da; a segunda, que
mérico de dados que é preenchido arquivo, ou URL); e subendereço pode ser 0 ou 1, in-
automaticamente pelo Access. É (uma localização dentro do arqui- dica se os caracteres
muito utilizado como código de vo ou página). Cada uma dessas par- literais, como o hí-
identificação. Exemplo: código do tes pode ter até 2 048 caracteres. fen do RG(-), devem
cliente, código do pedido etc. Uma ■ ASSISTENTE DE PESQUISA Esse ser gravados no
propriedade interessante desse ti- é um tipo de dado interessante, que campo ou não. A op-
po de dado é Novos Valores, que poucas pessoas conhecem. Na ver- ção 0 grava esses
pode ser Incremento ou Aleatório. dade não é bem um tipo de dado,
A primeira, Incremento, que é o pa- e sim uma opção que inicia um as- Assistente de
drão, gera números seqüenciais. A sistente para criar uma caixa de máscara: guia para a
digitação correta
outra produz valores aleatórios, que combinação, cuja lista de dados po-

64 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 65
062_GUIA_TAB_ACCESS 25/02/2006 23:19 Page 64

TUTORIAL/TABELAS TUTORIAL/TABELAS

de ser baseada em outra tabela, ou caracteres; a terceira parte é o ca-


Assistente de
Pesquisa: orientação numa lista de valores que você po- ractere que deve ser mostrado
sobre a origem do dado de criar no próprio assistente. Após quando um dígito não está preen-
executar essa opção, você pode ver chido. Você pode colocar qualquer
podem ser negativos que as propriedades da guia Pes- um — o padrão é o sublinhado ( _ ).
ou positivos. quisa do campo criado estão preen- Para que serve cada caractere na
■ SIM/NÃO Ocupa chidas conforme o que foi escolhi- máscara de entrada? A resposta vo-
apenas 1 bit de es- do no assistente. cê tem na tabela Máscaras de En-
paço em disco. É uti- trada, que mostra cada caractere e
lizado para guardar ENTRADA DE DADOS sua função. Outro exemplo é a más-
informações que vo- Imagine que você tem um campo cara de entrada do telefone:
cê tem certeza que que armazena o número do docu- "(0XX"99") "#999\-9999;0;_
só podem conter um mento de identidade de seus clien- Preenchido o campo, a máscara
as horas, só que a data é gravada entre dois valores. Exemplo: um tes e que os usuários ora digitam acima produz um resultado como:
como 30/12/1899, o dia inicial do campo que indica se a pessoa é ca- de um jeito ora de outro. Portanto, (0XX11) _867-9926. Uma opção in-
calendário interno do Access e de sada só pode ter o valor sim ou não. você não confiará nas informações teressante da propriedade Másca-
outros programas do Office. Enfim, ■ OBJETO OLE Serve para guardar digitadas. Para evitar isso, a pro- ra de Entrada é que ela pode ser
o Access grava as duas partes, da- objetos como documentos do Word, priedade Máscara de Entrada defi- definida como Senha. Basta você
ta e hora, e você utiliza a que de- planilhas do Excel, gráficos, sons e ne exatamente como deve ser digi- digitar senha nessa propriedade e
sejar no campo que está criando. outros. O objeto pode ser incorpo- tado o RG, o CPF, o CEP e outros da- o que o usuário digitar nesse cam-
■ MOEDA É um tipo de dado nu- rado à tabela ou vinculado. dos que você queira padronizar. Pa- po será exibido como asterisco(*).
mérico designado para armazenar ■ HYPERLINK Utilizado para guar- ra o caso do RG, você coloca a se- O Access tem ainda um assistente
valores monetários. O tamanho ocu- dar endereços web, e-mails etc. Bas- guinte máscara de entrada: para máscara de entrada. Clique no
pado em disco é de 8 bytes, igual ta clicar no endereço e abre-se a 99.000.000C\->a;0;_ botão Construtor e o programa exi-
ao tipo de dados numérico com ta- página ou arquivo a que ele se re- A máscara de entrada se divide be exemplos de máscara que você
manho duplo. No entanto, só há fere. Esse tipo de dado se divide em em três partes, separadas pelo pon- pode escolher e definir automati-
quatro casas decimais e a parte in- três partes: textodeexibição (o tex- to-e-vírgula: a primeira é a própria camente para o seu campo. Outra
teira vai até 15 dígitos. to que aparece no campo ou con- definição da entra-
■ AUTONUMERAÇÃO É um tipo nu- trole); endereço (o caminho de um da; a segunda, que
mérico de dados que é preenchido arquivo, ou URL); e subendereço pode ser 0 ou 1, in-
automaticamente pelo Access. É (uma localização dentro do arqui- dica se os caracteres
muito utilizado como código de vo ou página). Cada uma dessas par- literais, como o hí-
identificação. Exemplo: código do tes pode ter até 2 048 caracteres. fen do RG(-), devem
cliente, código do pedido etc. Uma ■ ASSISTENTE DE PESQUISA Esse ser gravados no
propriedade interessante desse ti- é um tipo de dado interessante, que campo ou não. A op-
po de dado é Novos Valores, que poucas pessoas conhecem. Na ver- ção 0 grava esses
pode ser Incremento ou Aleatório. dade não é bem um tipo de dado,
A primeira, Incremento, que é o pa- e sim uma opção que inicia um as- Assistente de
drão, gera números seqüenciais. A sistente para criar uma caixa de máscara: guia para a
digitação correta
outra produz valores aleatórios, que combinação, cuja lista de dados po-

64 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 65
062_GUIA_TAB_ACCESS 25/02/2006 23:22 Page 66

TUTORIAL/TABELAS

nota importante: os controles de mulário não herdam essa proprie-


formulário não herdam essa pro- dade, ou seja, você pode mudar o
priedade. Você pode estabelecer formato do controle vinculado ao
uma máscara de entrada para o campo, no formulário, conforme a
campo, porém o controle vincula- sua necessidade. A propriedade For-
do ao campo, no formulário, pode mato é a mais interessante. Ela pos-
ter outra máscara. Você então per- sibilita obter muitos resultados:
gunta: então para que eu vou defi- ■ TEXTO E MEMORANDO O forma-
nir uma máscara de entrada para o to para textos e memorandos en-
campo? Calma, a máscara definida volve duas partes, separadas por
no campo vai automaticamente pa- ponto-e-vírgula. A primeira define
ra o controle. Só que ela não é obri- o formato, se o dado for preenchi-
gatória. Se quiser, você pode defi- do; e a segunda, se ele não for
nir outra. Mas o melhor de tudo é preenchido. Vamos esclarecer me-
que, definida uma vez na tabela, ela lhor com um exemplo. Imagine um
pode permanecer igual em outras campo de preenchimento não obri-
situações, o que ajuda na padroni- gatório, como hobbies da pessoa.
zação do sistema. Pode-se definir o seguinte formato
para esse campo: >[Preto];“não in-
A EXIBIÇÃO DOS DADOS formado”[Vermelho]. Se os hobbies
Diferentemente da propriedade forem informados, o texto inserido
Máscara de Entrada, que define co- será exibido em maiúsculas e com
mo os dados devem ser digitados, a cor preta. Caso contrário, apare-
a propriedade Formato controla a cerá a expressão “não informado”
sua exibição. Ou seja, você até po- em vermelho. É isso mesmo, pode
de estabelecer uma máscara de en- testar à vontade. Você pode pesqui-
trada que informa a data completa sar na Ajuda do Access e descobrir
(00/00/0099), mas
você quer que, no
formulário ou rela-
tório, ela apareça
apenas com o ano e
o mês, e nessa or-
dem (yyyy/mm). As-
sim como no caso da
máscara de entrada,
os controles do for-
Construtor de campo:
exemplos prontos com
propriedades definidas

66 < C O L E Ç Ã O I N F O
062_GUIA_TAB_ACCESS 25/02/2006 23:23 Page 67

TUTORIAL/TABELAS

Índice duplo: chave


primária da tabela
criada com dois campos

outras preciosidades
sobre como exibir o
texto quando ele é
digitado.
■ NÚMERO E
MOEDA Segue o
mesmo padrão do ti-
po Texto e Memo-
rando, porém com
quatro partes. A pri-
meira trata os positivos; a segunda, aparece “Ativo”, em vermelho; ca-
os negativos; a terceira, o zero; e a so contrário, “Inativo”, em preto.
última, o nulo. Um campo que in- ■ DATA/HORA Esse formato não
forma saldos financeiros pode ter segue o mesmo padrão dos anterio-
o seguinte formato: res: não é dividido em partes. O má-
“R$”#,00[Azul];“R$”#,00[Verme- ximo que você pode fazer é definir
lho];“Zero”;“não informado” a cor do texto. Mas a propriedade
Se o saldo é positivo, ele é exibi- do formato de um campo do tipo
do em formato moeda e em cor azul; Data/Hora é muito importante, pois
se negativo, aparece em vermelho; ele é que define o que será exibido
se zero, mostra “Zero”; e se não há da informação digitada pelo usuá-
informações naquele campo, apa- rio. Você pode fazer várias combi-
rece a expressão “não informado”. nações. Por exemplo: para exibir
■ SIM/NÃO Esse formato se divi- apenas o mês, o ano, a hora e os mi-
de em três partes. A primeira não nutos, defina o formato assim: mm/
afeta em nada os resultados, porém yyyy hh:nn (veja bem: as duas últi-
tem de existir. Portanto, o formato mas letras são enes, de navio, e não
começa com ponto-e-vírgula (ou se- emes, de minuto, como se espera).
ja, o primeiro item fica em branco); Recomendo que você veja na Aju-
a segunda é o formato para valores da as letras e caracteres que você
verdadeiros; e a terceira para valo- pode utilizar no formato de datas,
res falsos. Um exemplo clássico: o pois tem algumas muito interessan-
campo Situação informa se o fun- tes, como as que retornam o trimes-
cionário está ativo ou não. Então, tre, a semana e outros. Quero apro-
ele pode ter o seguinte formato: veitar o assunto para mostrar como
;“Ativo”[Vermelho]; “Inativo” [Pre- se deve definir o formato juntamen-
to]. Se o funcionário está na ativa, te com a máscara de entrada para

C O L E Ç Ã O I N F O > 67
062_GUIA_TAB_ACCESS 25/02/2006 23:53 Page 68

TUTORIAL/TABELAS TUTORIAL/TABELAS

não deixar que seu campo caia no nenhum dos filtros. Um sistema pro- sempre à regra definida na tabela. de propriedades da tabela. Na pro-
bug do ano 2000, que nada mais é fissional não pode deixar que isso Se porventura você definiu outra priedade Regra de Validação, digi-
do que entrar com os quatro dígi- aconteça. Para isso existe a regra de regra para o controle, o valor digi- te a seguinte regra:
tos do ano e exibi-los. Deve-se de- validação do campo. É muito simples: tado terá que atender às duas re- [SetorA]+[SetorB]+[SetorC]=100
finir para os campos que irão arma- para o caso mencionado, basta digi- gras, tanto a do campo na tabela Uma propriedade complementar à
zenar datas a seguinte máscara de tar a seguinte regra na propriedade quanto a do controle. A consistên- Regra de Validação é a Texto de Vali-
entrada: 00/00/0099. E o seu for- Regra de Validação do campo Sexo: cia ainda pode ser feita no nível do dação. Nessa propriedade você inse-
mato deve ser: “F” Ou “M”. Pronto, o campo só acei- registro. Os exemplos do campo Se- re um texto personalizado para ser
dd/mm/yyyy tará F ou M como conteúdo. xo e do Salário cuidam da consis- mostrado, em vez da mensagem-pa-
Uma nota quanto a essa regra im- tência no nível do campo. drão do Access, quando o usuário di-
CONSISTÊNCIA DOS DADOS posta ao campo Sexo é que o cam- A consistência de registro funcio- gita um valor incorreto.
A propriedade Regra de Validação é po passa a ser de preenchimento obri- na da seguinte forma: imagine uma
superimportante para obter dados gatório. Ou seja, ele não aceitará nu- tabela onde são cadastrados os pro- INTEGRIDADE DOS DADOS
mais seguros desde o momento de lo (vazio). Outro exemplo: num cam- dutos e a porcentagem de cada se- Exemplo clássico: o número de CPF
sua edição, não permitindo que o po onde se deve cadastrar o salário tor da empresa na participação das de uma pessoa é único — ou seja, ne-
usuário digite qualquer coisa e aca- do funcionário numa empresa cujo vendas. A tabela contém os cam- nhuma outra pessoa pode ter um CPF
be gerando erros no sistema. Imagi- salário mínimo é 500 reais. A regra pos Produto, SetorA, SetorB, SetorC. igual ao de outra. Portanto, não pode
ne que o seu cadastro de funcioná- seria, então, “maior que 500”. No en- Como se trata de porcentagem, a haver em seu cadastro de clientes dois
rios tem o campo Sexo, que deve ser tanto, pode-se não saber o salário do soma das parcelas de todos os se- ou mais RGs iguais. Para evitar isso,
preenchido com “M” ou “F”. Mas um funcionário no momento em que ele tores deve ser igual a 100. Para im- basta selecionar, na propriedade In-
usuário engraçadinho resolve colo- é cadastrado: o valor será informa- plementar essa regra, com a tabe- dexado do campo CPF, a opção Sim
car “H” na ficha de um funcionário. do depois. Para dar incluir essa hipó- la aberta em modo Design, clique (Duplicação não autorizada). Você po-
Numa parte qualquer do sistema, vo- tese, a regra deve ser a seguinte: no botão Propriedades, na barra de de querer uma integridade com dois
cê filtra homens num bloco e mulhe- >500 Ou Nulo ferramentas, a fim de exibir a folha campos. O número de um aluno na
res em outro. Por causa do usuário Ao contrário das outras proprie-
que resolveu fazer graça, o funcio- dades até aqui apresentadas, os con- MÁSCARAS DE ENTRADA
nário em questão não aparecerá em troles vinculados ao campo com re- Caracteres utilizados na propriedade Máscaras de Entrada
gra de validação her-
CARACTERE DESCRIÇÃO CARACTERE DESCRIÇÃO
dam, no formulário,
L0 Dígito (de 0 a 9, entrada obrigatória) C Qualquer caractere ou um
a regra definida na espaço (entrada opcional)
tabela. Portanto, 9 Dígito ou espaço (entrada não obrigatória) ,,:;-/ Marcador decimal e separadores
de milhares, de data e de hora
mesmo que você # Dígito ou espaço (entrada não obri-
gatória; os espaços são exibidos como < Converte todos os caracteres
mude a regra para o vazios quando no modo Edição, mas os para letras minúsculas
vazios são removidos quando os dados
controle vinculado são salvos; sinais de adição e subtração > Converte todos os caracteres
são permitidos) para letras maiúsculas
ao campo, o valor L Letra (de A a Z, entrada obrigatória) ! Define que a máscara de entrada
que o usuário digi- ? Letra (de A a Z, entrada opcional) seja exibida da direita para a
esquerda, e não da esquerda
tar deve satisfazer a Letra ou dígito (entrada opcional) para a direita

\ Define que o caractere seguinte


Regra de Validação: A Letra ou dígito (entrada obrigatória) seja exibido como caractere
feita para garantir literal (por exemplo, \A é exibido
& Qualquer caractere ou um espaço
dados consistentes simplesmente como A)
(entrada obrigatória)

68 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 69
062_GUIA_TAB_ACCESS 25/02/2006 23:53 Page 68

TUTORIAL/TABELAS TUTORIAL/TABELAS

não deixar que seu campo caia no nenhum dos filtros. Um sistema pro- sempre à regra definida na tabela. de propriedades da tabela. Na pro-
bug do ano 2000, que nada mais é fissional não pode deixar que isso Se porventura você definiu outra priedade Regra de Validação, digi-
do que entrar com os quatro dígi- aconteça. Para isso existe a regra de regra para o controle, o valor digi- te a seguinte regra:
tos do ano e exibi-los. Deve-se de- validação do campo. É muito simples: tado terá que atender às duas re- [SetorA]+[SetorB]+[SetorC]=100
finir para os campos que irão arma- para o caso mencionado, basta digi- gras, tanto a do campo na tabela Uma propriedade complementar à
zenar datas a seguinte máscara de tar a seguinte regra na propriedade quanto a do controle. A consistên- Regra de Validação é a Texto de Vali-
entrada: 00/00/0099. E o seu for- Regra de Validação do campo Sexo: cia ainda pode ser feita no nível do dação. Nessa propriedade você inse-
mato deve ser: “F” Ou “M”. Pronto, o campo só acei- registro. Os exemplos do campo Se- re um texto personalizado para ser
dd/mm/yyyy tará F ou M como conteúdo. xo e do Salário cuidam da consis- mostrado, em vez da mensagem-pa-
Uma nota quanto a essa regra im- tência no nível do campo. drão do Access, quando o usuário di-
CONSISTÊNCIA DOS DADOS posta ao campo Sexo é que o cam- A consistência de registro funcio- gita um valor incorreto.
A propriedade Regra de Validação é po passa a ser de preenchimento obri- na da seguinte forma: imagine uma
superimportante para obter dados gatório. Ou seja, ele não aceitará nu- tabela onde são cadastrados os pro- INTEGRIDADE DOS DADOS
mais seguros desde o momento de lo (vazio). Outro exemplo: num cam- dutos e a porcentagem de cada se- Exemplo clássico: o número de CPF
sua edição, não permitindo que o po onde se deve cadastrar o salário tor da empresa na participação das de uma pessoa é único — ou seja, ne-
usuário digite qualquer coisa e aca- do funcionário numa empresa cujo vendas. A tabela contém os cam- nhuma outra pessoa pode ter um CPF
be gerando erros no sistema. Imagi- salário mínimo é 500 reais. A regra pos Produto, SetorA, SetorB, SetorC. igual ao de outra. Portanto, não pode
ne que o seu cadastro de funcioná- seria, então, “maior que 500”. No en- Como se trata de porcentagem, a haver em seu cadastro de clientes dois
rios tem o campo Sexo, que deve ser tanto, pode-se não saber o salário do soma das parcelas de todos os se- ou mais RGs iguais. Para evitar isso,
preenchido com “M” ou “F”. Mas um funcionário no momento em que ele tores deve ser igual a 100. Para im- basta selecionar, na propriedade In-
usuário engraçadinho resolve colo- é cadastrado: o valor será informa- plementar essa regra, com a tabe- dexado do campo CPF, a opção Sim
car “H” na ficha de um funcionário. do depois. Para dar incluir essa hipó- la aberta em modo Design, clique (Duplicação não autorizada). Você po-
Numa parte qualquer do sistema, vo- tese, a regra deve ser a seguinte: no botão Propriedades, na barra de de querer uma integridade com dois
cê filtra homens num bloco e mulhe- >500 Ou Nulo ferramentas, a fim de exibir a folha campos. O número de um aluno na
res em outro. Por causa do usuário Ao contrário das outras proprie-
que resolveu fazer graça, o funcio- dades até aqui apresentadas, os con- MÁSCARAS DE ENTRADA
nário em questão não aparecerá em troles vinculados ao campo com re- Caracteres utilizados na propriedade Máscaras de Entrada
gra de validação her-
CARACTERE DESCRIÇÃO CARACTERE DESCRIÇÃO
dam, no formulário,
L0 Dígito (de 0 a 9, entrada obrigatória) C Qualquer caractere ou um
a regra definida na espaço (entrada opcional)
tabela. Portanto, 9 Dígito ou espaço (entrada não obrigatória) ,,:;-/ Marcador decimal e separadores
de milhares, de data e de hora
mesmo que você # Dígito ou espaço (entrada não obri-
gatória; os espaços são exibidos como < Converte todos os caracteres
mude a regra para o vazios quando no modo Edição, mas os para letras minúsculas
vazios são removidos quando os dados
controle vinculado são salvos; sinais de adição e subtração > Converte todos os caracteres
são permitidos) para letras maiúsculas
ao campo, o valor L Letra (de A a Z, entrada obrigatória) ! Define que a máscara de entrada
que o usuário digi- ? Letra (de A a Z, entrada opcional) seja exibida da direita para a
esquerda, e não da esquerda
tar deve satisfazer a Letra ou dígito (entrada opcional) para a direita

\ Define que o caractere seguinte


Regra de Validação: A Letra ou dígito (entrada obrigatória) seja exibido como caractere
feita para garantir literal (por exemplo, \A é exibido
& Qualquer caractere ou um espaço
dados consistentes simplesmente como A)
(entrada obrigatória)

68 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 69
062_GUIA_TAB_ACCESS 25/02/2006 23:31 Page 70

TUTORIAL/TABELAS

Valor-padrão: não é
preciso digitar o item
que se repete no campo

vem aparecer preen-


chidos com os valo-
res “São Paulo”, “SP”.
Assim, o operador
praticamente não
precisará digitar. É im-
portante lembrar
também que zero não
é nulo. Zero é valor
classe deve ser único, porém esse nú- numérico — aliás, esse é o valor-pa-
mero pode se repetir em outra clas- drão adotado pelo Access para os ti-
se. Logo, a chave deve ser o número pos de dados numéricos. Nulo é o va-
da classe mais o número do aluno. Cli- lor de um campo não preenchido. Ou
que no botão Índices, na barra de fer- seja, nulo é igual a vazio.
ramentas, e serão exibidos os índices Quanto ao relacionamento do va-
da tabela. Na coluna Nome do Índice lor-padrão de um campo na tabela
dê um nome sugestivo: ClasseAluno. com o controle vinculado a ele num
Depois selecione os campos do nú- formulário, fica valendo, primeiramen-
mero da classe e o do número do alu- te, o definido para o controle. Contu-
no. A propriedade Exclusivo do índi- do, se você não especificar um valor-
ce deve conter o valor Sim. A figura 2 padrão para o controle, será utiliza-
mostra como deve ficar a janela de ín- do o definido para o campo.
dice dessa tabela, que tem como ín- Neste tutorial você tomou contato
dice primário o campo matrícula. com todos os itens que envolvem a
criação de tabelas de um modo bem
VALOR-PADRÃO profissional. Vale lembrar que o ban-
O Valor-padrão de um campo tam- co de dados Access ainda tem um as-
bém é uma propriedade muito im- sistente para construir campos. Para
portante. Ele facilita para o usuário o acioná-lo, posicione o cursor na co-
trabalho de edição. Normalmente, de- luna Nome do Campo e clique no bo-
fine-se como valor-padrão de um cam- tão Construir, na barra de ferramen-
po o valor de preenchimento mais tas. Será exibida uma lista de exem-
freqüente. Se a loja está localizada em plos de campos. Se você selecionar
São Paulo, é bem provável que a maio- um, o assistente já o definirá por in-
ria dos clientes seja dessa cidade. En- teiro (ou seja, com todas as proprie-
tão, os campos Cidade e Estado já de- dades) na sua tabela.

70 < C O L E Ç Ã O I N F O
071_RELA_VEND_ORACLE 25/02/2006 23:56 Page 71

TUTORIAL/ORACLE EXPRESS

RELATÓRIO FEITO
COM VIEWS
APRENDA A CRIAR UMA TABELA VIRTUAL QUE FAÇA AS
CONTAS NECESSÁRIAS PARA UM RELATÓRIO DE VENDAS
POR CARLOS CHERNIJ, COM FRED CARBONARE

ma das boas funciona- As views são muito usadas em ban-

U lidades disponíveis no
gratuito Oracle 10g Ex-
press Edition — ou Ora-
cle XE — são as views, tabelas vir-
cos de dados complexos com diver-
sas tabelas que formam conjuntos de
dados, relatórios etc. E não são privi-
légio do Oracle — podem ser encon-
tuais que podem ser usadas para tradas também em bancos de dados
poupar trabalho do programador como PostgreSQL, MS SQL Server e
na hora de criar consultas no ban- MySQL 5.0. Neste tutorial, utilizaremos
co de dados. As views não existem as views para gerar um relatório de
fisicamente — são geradas pelas vendas. Detalhe importante: o Oracle
consultas. Mas, depois de criadas, XE ainda está em versão beta (no co-
elas se comportam exatamente co- meço de fevereiro de 2006, foi colo-
mo uma tabela. Assim, as alterações cada à disposição dos internautas a
realizadas na view são repassadas edição Release Candidate 3). Por con-
para a tabela física envolvida. ta disso, algumas funções podem apre-

Oracle XE: a criação da views e a administração do banco de dados é feita via web

C O L E Ç Ã O I N F O > 71
071_RELA_VEND_ORACLE 25/02/2006 23:33 Page 72

TUTORIAL/ORACLE EXPRESS TUTORIAL/ORACLE EXPRESS

sentar problemas. No teste do INFO- browser com a página de login do mó-


Script Editor: um clique
LAB, por exemplo, o upload de scripts dulo de administração — é tudo feito em Criar abre o código
não funcionou corretamente no na- via web. A página pode ser acessada de criação das tabelas

vegador Firefox. também por meio do endereço


http://127.0.0.1:8080/htmldb/ TB_CLIENTE e, depois, na
1. INSTALANDO htmldb na máquina em que o soft- aba Data para ver os da-
dos iniciais que foram
Faça o download do Oracle XE em ware foi instalado.
www.info.abril.com.br/download/ inseridos durante a cria-
4346.shtml e execute o instalador. 2. CARREGANDO OS SCRIPTS ção das tabelas.
Apesar de o arquivo do programa pos- Na página de login, entre com o no-
suir 200 MB, a instalação vai consu- me de usuário System e a senha es- 5 . GERANDO O
mir cerca de 1 GB de espaço no disco colhida durante a instalação. Vamos RELATÓRIO
rígido. Um momento importante do agora criar as tabelas que serão usa- execução do script, terão sido criadas Vamos criar uma view que irá mos-
processo é a solicitação da senha pa- das no tutorial. Faça o download dos as tabelas TB_CLIENTE, com informa- trar o total pedido por cliente do
ra o usuário System, que tem os di- arquivos de script em ftp://ftp.info. ções dos clientes, TB_PEDIDO, com nosso banco de dados, gerando as-
reitos administrativos. Vamos colocar abril.com.br/bdoracle.zip. Depois de dados dos pedidos, TB_PRODUTO, com sim um relatório de vendas. Volte
a senha como sendo system, para fa- descompactá-los, você terá dois ar- informações dos produtos, e TB_PE- para a página inicial e escolha a op-
cilitar. Após a instalação, clique no ata- quivos de script: Criar.sql e View.sql. DIDO_PRODUTO, que relacionará os ção Object > Browser > Create >
lho Goto database homepage, que se- Na tela inicial do módulo de admi- produtos aos pedidos. View. No campo View Name, digite
rá criado dentro do grupo de progra- nistração, escolha a opção SQL. Cli- vw_total_pedidos_cliente. Na jane-
mas Oracle Database 10g Express Edi- que então em SQL Scripts. Acione o 4. VISUALIZANDO OS DADOS la Query, cole o conteúdo do arqui-
tion. O atalho abrirá uma janela de botão Upload. No campo File, clique A partir da tela inicial do módulo de vo View.sql. O código é o seguinte:
em Procurar e informe a localização administração, clique em Object SELECT sum(total_pedido) as
do arquivo Criar.sql. No campo Script Browser > Browse > Tables. À esquer- total, cod_cliente, nom_cliente
Name, digite Criar. Clique então no da da tela estará uma lista com to- FROM
botão Upload, na parte superior da das as tabelas do sistema, a maioria (
tela. A partir de agora, o script vai apa- referentes a controles internos do SELECT
recer como um ícone sempre que se Oracle XE. No final da lista, você ve- tb_pedido.cod_pedido,
entrar na tela SQL Scripts. rá as tabelas do tutorial. Clique em tb_pedido.cod_cliente,

3 . CRIANDO AS TABELAS
Ainda na tela SQL Scripts (Home > SQL
> SQL Scripts), clique no ícone do script
Criar. Será aberta a janela do Script
Editor com o código referente à cria-
ção das tabelas. Clique no botão Run,
que fica na parte superior da tela. Se-
rá aberta a tela Run Script, onde é ne-
cessário confirmar a operação, clican-
Scripts: carregue e use o ícone Criar Visualize: clique na aba Data para ver dados inseridos durante a criação das tabelas
do novamente no botão Run. Após a

72 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 73
071_RELA_VEND_ORACLE 25/02/2006 23:33 Page 72

TUTORIAL/ORACLE EXPRESS TUTORIAL/ORACLE EXPRESS

sentar problemas. No teste do INFO- browser com a página de login do mó-


Script Editor: um clique
LAB, por exemplo, o upload de scripts dulo de administração — é tudo feito em Criar abre o código
não funcionou corretamente no na- via web. A página pode ser acessada de criação das tabelas

vegador Firefox. também por meio do endereço


http://127.0.0.1:8080/htmldb/ TB_CLIENTE e, depois, na
1. INSTALANDO htmldb na máquina em que o soft- aba Data para ver os da-
dos iniciais que foram
Faça o download do Oracle XE em ware foi instalado.
www.info.abril.com.br/download/ inseridos durante a cria-
4346.shtml e execute o instalador. 2. CARREGANDO OS SCRIPTS ção das tabelas.
Apesar de o arquivo do programa pos- Na página de login, entre com o no-
suir 200 MB, a instalação vai consu- me de usuário System e a senha es- 5 . GERANDO O
mir cerca de 1 GB de espaço no disco colhida durante a instalação. Vamos RELATÓRIO
rígido. Um momento importante do agora criar as tabelas que serão usa- execução do script, terão sido criadas Vamos criar uma view que irá mos-
processo é a solicitação da senha pa- das no tutorial. Faça o download dos as tabelas TB_CLIENTE, com informa- trar o total pedido por cliente do
ra o usuário System, que tem os di- arquivos de script em ftp://ftp.info. ções dos clientes, TB_PEDIDO, com nosso banco de dados, gerando as-
reitos administrativos. Vamos colocar abril.com.br/bdoracle.zip. Depois de dados dos pedidos, TB_PRODUTO, com sim um relatório de vendas. Volte
a senha como sendo system, para fa- descompactá-los, você terá dois ar- informações dos produtos, e TB_PE- para a página inicial e escolha a op-
cilitar. Após a instalação, clique no ata- quivos de script: Criar.sql e View.sql. DIDO_PRODUTO, que relacionará os ção Object > Browser > Create >
lho Goto database homepage, que se- Na tela inicial do módulo de admi- produtos aos pedidos. View. No campo View Name, digite
rá criado dentro do grupo de progra- nistração, escolha a opção SQL. Cli- vw_total_pedidos_cliente. Na jane-
mas Oracle Database 10g Express Edi- que então em SQL Scripts. Acione o 4. VISUALIZANDO OS DADOS la Query, cole o conteúdo do arqui-
tion. O atalho abrirá uma janela de botão Upload. No campo File, clique A partir da tela inicial do módulo de vo View.sql. O código é o seguinte:
em Procurar e informe a localização administração, clique em Object SELECT sum(total_pedido) as
do arquivo Criar.sql. No campo Script Browser > Browse > Tables. À esquer- total, cod_cliente, nom_cliente
Name, digite Criar. Clique então no da da tela estará uma lista com to- FROM
botão Upload, na parte superior da das as tabelas do sistema, a maioria (
tela. A partir de agora, o script vai apa- referentes a controles internos do SELECT
recer como um ícone sempre que se Oracle XE. No final da lista, você ve- tb_pedido.cod_pedido,
entrar na tela SQL Scripts. rá as tabelas do tutorial. Clique em tb_pedido.cod_cliente,

3 . CRIANDO AS TABELAS
Ainda na tela SQL Scripts (Home > SQL
> SQL Scripts), clique no ícone do script
Criar. Será aberta a janela do Script
Editor com o código referente à cria-
ção das tabelas. Clique no botão Run,
que fica na parte superior da tela. Se-
rá aberta a tela Run Script, onde é ne-
cessário confirmar a operação, clican-
Scripts: carregue e use o ícone Criar Visualize: clique na aba Data para ver dados inseridos durante a criação das tabelas
do novamente no botão Run. Após a

72 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 73
071_RELA_VEND_ORACLE 25/02/2006 23:35 Page 74

TUTORIAL/ORACLE EXPRESS

tabela virtual, e todas as alterações


que forem feitas nela serão transmi-
tidas para as tabelas que a compõem.
Para gerar um relatório a partir da
view que foi criada, basta usar o co-
mando SELECT * FROM vw_total_pe-
didos_cliente.

CRIE SUA VIEW

> Para criar uma view, deve


ser observada a seguinte es-
trutura básica de comando SQL:
CREATE VIEW vw_nome AS
SELECT colunas
FROM tabela1, tabela2
Relatório: clique na aba Data WHERE tabela1.campo =
tabela2.campo
tb_pedido_produto.val_preco_ Dessa forma, você irá unir duas
produto * tb_pedido_produto. tabelas, criando uma tabela vir-
qtd_produto as total_pedido, tual na qual poderá fazer con-
tb_cliente.nom_cliente sultas e atualizações nos dados
FROM de forma mais simples. Uma das
tb_pedido, possibilidades de aplicação é
tb_pedido_produto, configurar permissões diferen-
tb_cliente tes para as tabelas e para as
WHERE views. Por exemplo, você pode
tb_pedido.cod_pedido = tb_pe- ter uma senha de usuário no
dido_produto.cod_pedido AND banco de dados sendo usada
tb_cliente.cod_cliente = tb_pe- apenas para os scripts da área
dido.cod_cliente aberta do seu site. O internau-
) total ta só terá acesso às views, o su-
GROUP BY cod_cliente, ficiente para fazer as pesquisas
nom_cliente que deseja. Para acessar as
Clique em Next e confirme, acio- tabelas originais, seria criado
nando Create. Na tela de confirmação outro usuário, aplicando assim
você já poderá ver o resultado, clican- mais uma camada de segurança
do na aba Data. Dessa forma, a view no banco de dados.
pode ser utilizada como se fosse uma

74 < C O L E Ç Ã O I N F O
075_TUT GUIA DB2 25/02/2006 23:41 Page 75

TUTORIAL/CONSULTAS

CRIE PESQUISAS
COM CRITÉRIOS
SIGA OS PASSOS PARA MONTAR DE CONSULTAS SIMPLES A
BUSCAS COM PARÂMETROS VARIÁVEIS NO DB2
POR FRED CARBONARE

lguma vez você criou con-

A sultas a banco de dados


com critério? É bem pro-
vável que sim. E uma con-
sulta com o critério OU em determi-
nado campo, como Rio de Janeiro OU
São Paulo? Provavelmente sim, tam-
bém. Consultas com critérios são mui-
No DB2: crie o banco de dados padrão
to úteis. Quando desejamos que es-
sas consultas sejam mais flexíveis, po- seguida, localize o arquivo Criar.sql
demos substituir o critério fixo por um que você descompactou e execute-
critério com parâmetros. Exemplo: o. Ele irá criar uma tabela chamada
[Cidade1] OU [Cidade2] Clientes com as seguintes colunas:
Para treinar as consultas com crité- id, nome, endereco, telefone, cida-
rio, neste tutorial faremos um cadas- de, estado, datanasc e incluirá alguns
tro de clientes acessando o banco de dados de exemplo.
dados DB2 Express-C.

1 . BAIXE OS COMANDOS
Para facilitar a compreensão, primei-
ramente faça o download do arquivo
db2.zip no endereço ftp://ftp.info.
abril.com.br/ebd_db2.zip e descom- Identificação: dê o nome Consulta
pacte-o. Nesse arquivo você encon-
trará os comandos SQL necessários Ao dar um duplo clique sobre a ta-
para criar a tabela de exemplo. bela Clientes, veremos o seu con-
teúdo. Como você pode notar, tra-
2 . CRIE A TABELA ta-se de uma tabela simples, que
No DB2 Express-C, crie um banco de armazena uma lista de clientes e as
dados padrão chamado Consulta. Em suas respectivas cidades.

C O L E Ç Ã O I N F O > 75
075_TUT GUIA DB2 25/02/2006 23:58 Page 76

TUTORIAL/CONSULTAS TUTORIAL/CONSULTAS

dor “=”, e, em Valor, escolha a op- 7 . RESTRINGINDO


ção Listar valores. Na nova janela Vamos supor agora que você quer
de valores, dê um duplo clique em visualizar os clientes de “São Ber-
São Bernardo. Basta clicar no bo- nardo” OU “São Paulo”, mas ape-
tão > para adicionar o critério. Cli- nas os que nasceram em 1990. Pa-
que em OK e em Resultados da Con- ra isso usaremos o mesmo siste-
sulta para ver o resultado. ma de critérios, mas adicionando
um outro, do tipo AND.
5 . CRITÉRIO OU De volta ao Assistente SQL, es-
Tabela: clique duplo exibe conteúdo Quando abrimos o assistente SQL do Como ficou: visualize o código SQL colha a coluna DATANASC e o ope-
DB2 Express-C, ele zera toda a pro- rador BETWEEN. Em valor mínimo

3. NOVA CONSULTA gramação feita antes. Assim, para sa-


ber quais são os clientes de São Ber-
Quando adicionamos o critério para
as duas cidades, se você observar a
coloque ‘1990-01-01’ e, em valor
máximo, ‘1990-12-31’. Clique em
Como poderemos visualizar apenas
nardo OU São Paulo, é necessário criar declaração SQL montada, vai notar "AND >". Agora, clique em OK e
os clientes localizados na cidade de
novamente o critério e adicionar um que a cláusula WHERE mudou para: execute o comando, acionando Re-
São Bernardo do Campo? Criando, é
novo para a cidade de São Paulo, cli- WHERE CLIENTES.CIDADE = ’São sultados da Consulta.
claro, uma consulta com critério. Pa-
cando no botão OR >. Bernardo’ OR CLIENTES.CIDADE = Pronto, agora você pode usar o
ra isso, clique com o botão direito na
’São Paulo’; Assistente SQL para gerar coman-
tabela e escolha Consultar. Na janela
Note que a diferença entre as dos com critérios de acordo com
Nova Consulta que se abriu, fique com
duas instruções SQL é a quantida- a sua aplicação e extrair relató-
a opção Selecionado > Assistente SQL.
de de parâmetros contidos exata- rios cada vez mais precisos do seu
Ainda Na janela Nova Consulta, sele-
mente na cláusula Where. Da mes- banco de dados.
cione Instrução SELECT > From e es-
ma forma, a diferença da cláusula Esse exemplo, feito no DB2 Ex-
colha a tabela Clientes.
Where entre uma consulta que pos- press-C, pode ser aplicado em qual-
sua o critério: “São Bernardo”, e ou- quer outro banco de dados. A dife-
tra com o critério: “São Bernardo” rença vai ser mais visual do que con-
OU “São Paulo”, será a quantidade ceitual, de acordo com o assisten-
Valores: adicione o novo critério
de campos na cláusula Where. te do produto.

6. VISUALIZANDO O SQL AND OU OR?


Ao criarmos uma consulta no As-
sistente SQL, o programa, nos bas-
tidores, cria uma instrução SQL pa-
> Dúvidas sobre a utilização dos gine um amigo procurando na-
critérios AND e OR costumam ser morada. Ele prefere loiras de
Critério: escolha a opção Where ra realizar a pesquisa solicitada. Ve- freqüentes entre os iniciantes na olhos azuis. Então deve especi-
ja como ficou no nosso primeiro
4. O CRITÉRIO exemplo:
arte de armazenar informação.
Quando colocamos a instrução OR,
ficar loira AND olhos azuis. Ago-
ra, se para você tanto faz se a mo-
Agora vamos colocar o critério. Pa- SELECT * acrescentamos registros ao resul- ça é loira ou morena, defina a con-
ra isso, escolha a opção WHERE. FROM SQLJ.CLIENTES AS CLIENTES tado. Quando utilizamos AND, res- sulta com loiras OR morenas. Suas
Nessa janela Where, escolha a co- WHERE CLIENTES.CIDADE = ’São tringimos. Para exemplificar, ima- possibilidades serão maiores.
luna CIDADE, (imagem 008) opera- Bernardo’

76 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 77
075_TUT GUIA DB2 25/02/2006 23:58 Page 76

TUTORIAL/CONSULTAS TUTORIAL/CONSULTAS

dor “=”, e, em Valor, escolha a op- 7 . RESTRINGINDO


ção Listar valores. Na nova janela Vamos supor agora que você quer
de valores, dê um duplo clique em visualizar os clientes de “São Ber-
São Bernardo. Basta clicar no bo- nardo” OU “São Paulo”, mas ape-
tão > para adicionar o critério. Cli- nas os que nasceram em 1990. Pa-
que em OK e em Resultados da Con- ra isso usaremos o mesmo siste-
sulta para ver o resultado. ma de critérios, mas adicionando
um outro, do tipo AND.
5 . CRITÉRIO OU De volta ao Assistente SQL, es-
Tabela: clique duplo exibe conteúdo Quando abrimos o assistente SQL do Como ficou: visualize o código SQL colha a coluna DATANASC e o ope-
DB2 Express-C, ele zera toda a pro- rador BETWEEN. Em valor mínimo

3. NOVA CONSULTA gramação feita antes. Assim, para sa-


ber quais são os clientes de São Ber-
Quando adicionamos o critério para
as duas cidades, se você observar a
coloque ‘1990-01-01’ e, em valor
máximo, ‘1990-12-31’. Clique em
Como poderemos visualizar apenas
nardo OU São Paulo, é necessário criar declaração SQL montada, vai notar "AND >". Agora, clique em OK e
os clientes localizados na cidade de
novamente o critério e adicionar um que a cláusula WHERE mudou para: execute o comando, acionando Re-
São Bernardo do Campo? Criando, é
novo para a cidade de São Paulo, cli- WHERE CLIENTES.CIDADE = ’São sultados da Consulta.
claro, uma consulta com critério. Pa-
cando no botão OR >. Bernardo’ OR CLIENTES.CIDADE = Pronto, agora você pode usar o
ra isso, clique com o botão direito na
’São Paulo’; Assistente SQL para gerar coman-
tabela e escolha Consultar. Na janela
Note que a diferença entre as dos com critérios de acordo com
Nova Consulta que se abriu, fique com
duas instruções SQL é a quantida- a sua aplicação e extrair relató-
a opção Selecionado > Assistente SQL.
de de parâmetros contidos exata- rios cada vez mais precisos do seu
Ainda Na janela Nova Consulta, sele-
mente na cláusula Where. Da mes- banco de dados.
cione Instrução SELECT > From e es-
ma forma, a diferença da cláusula Esse exemplo, feito no DB2 Ex-
colha a tabela Clientes.
Where entre uma consulta que pos- press-C, pode ser aplicado em qual-
sua o critério: “São Bernardo”, e ou- quer outro banco de dados. A dife-
tra com o critério: “São Bernardo” rença vai ser mais visual do que con-
OU “São Paulo”, será a quantidade ceitual, de acordo com o assisten-
Valores: adicione o novo critério
de campos na cláusula Where. te do produto.

6. VISUALIZANDO O SQL AND OU OR?


Ao criarmos uma consulta no As-
sistente SQL, o programa, nos bas-
tidores, cria uma instrução SQL pa-
> Dúvidas sobre a utilização dos gine um amigo procurando na-
critérios AND e OR costumam ser morada. Ele prefere loiras de
Critério: escolha a opção Where ra realizar a pesquisa solicitada. Ve- freqüentes entre os iniciantes na olhos azuis. Então deve especi-
ja como ficou no nosso primeiro
4. O CRITÉRIO exemplo:
arte de armazenar informação.
Quando colocamos a instrução OR,
ficar loira AND olhos azuis. Ago-
ra, se para você tanto faz se a mo-
Agora vamos colocar o critério. Pa- SELECT * acrescentamos registros ao resul- ça é loira ou morena, defina a con-
ra isso, escolha a opção WHERE. FROM SQLJ.CLIENTES AS CLIENTES tado. Quando utilizamos AND, res- sulta com loiras OR morenas. Suas
Nessa janela Where, escolha a co- WHERE CLIENTES.CIDADE = ’São tringimos. Para exemplificar, ima- possibilidades serão maiores.
luna CIDADE, (imagem 008) opera- Bernardo’

76 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 77
078_MY_ADMIN1 26/02/2006 00:00 Page 78

TUTORIAL/INTERFACE WEB TUTORIAL/INTERFACE WEB

O PHPMYADMIN
blema, verifique se essa porta está linhas horizontais, que são chama-
liberada no firewall. das, respectivamente, de campos e
registros. Vamos criar um pequeno
3 . AUTENTICAÇÃO
DOMA O MYSQL
banco de dados com o cadastro de
Por padrão, o phpMyAdmin usa a clientes de uma empresa qualquer.
autenticação baseada no computa- Para começar, na página inicial do
APRENDA A USAR O PHPMYADMIN PARA CRIAR dor. Você indica uma máquina clien- phpMyAdmin, procure o campo
BANCOS DE DADOS SEM ESCREVER EM SQL te e ele só faz a conexão com ela. “Criar novo banco de dados”. Digi-
POR TONI CAVALHEIRO Vamos alterar isso para que a au- te a palavra empresa nele e clique
tenticação seja feita com base no no botão Criar. Todos os nomes dos
nome de usuário. Para isso, loca- bancos de dados devem ser grafa-
opular por ser um geren- 1. INSTALAÇÃO lize a seguinte linha no arquivo dos em letras minúsculas.

P ciador de bancos de da-


dos confiável e gratuito,
o MySQL fica devendo
uma interface gráfica para o desenvol-
O primeiro passo é baixar o phpMyAd-
min (www.info.abril.com.br/down
load/3260.shtml) e descompactar os
arquivos. Crie uma pasta no servidor
config.inc.php:
$cfg[‘Servers’][$i][‘auth_type’] =
‘config’; // Authentication method
(config, http or cookie based)?
5 . TABELAS
O próximo passo será criar uma tabe-
la. O próprio phpMyAdmin já sugere
vedor. Sem ela, o uso desse software Apache com o nome mysql e ponha Troque a palavra “config” por essa operação. Digite o nome tb_agen-
fica restrito aos programadores que os arquivos do software nela. “http”, mantendo os apóstrofos. Sal- da para a tabela. Como ela terá nove
dominam a linguagem SQL. A MySQL ve o arquivo e feche o Bloco de No- campos, coloque o número 9 em Cam-
AB, que produz o banco de dados, ofe- 2. CONFIGURAÇÃO tas. Depois disso, o phpMyAdmin es- pos e pressione o botão Executar. É re-
rece o MySQL Administrator, uma fer- Vamos configurar. Abra, no Bloco de tará pronto para ser usado. Abra o comendável iniciar o nome de cada ta-
ramenta de gerenciamento, mas não Notas, o arquivo config.inc.php, que es- browser e digite a seguinte URL: bela com as letras “tb_”. Com essa no-
é tão popular quanto o phpMyAdmin, tá na pasta mysql. Localize este trecho: http://localhost/mysql menclatura, você poderá encontrar as
que permite comandar o MySQL por $cfg[‘Servers’][$i]['host’] = Você verá uma tela de logon. Se é tabelas mais facilmente no código-fon-
meio de uma interface via web. Com ‘localhost’; // MySQL hostname or a primeira vez que você acessa o te do seu programa.
ele, é possível criar e modificar bancos IP address MySQL, digite root
de dados sem escrever os comandos $cfg[‘Servers’][$i][‘port’]= “; // como nome de usuá-
em SQL. O phpMyAdmin também é óti- MySQL port - leave blank rio e deixe a senha
mo para aprender SQL, uma vez que for default em branco.
pode-se visualizar o código gerado. Na primeira linha, altere o parâme-
Neste tutorial, vamos criar um banco tro host para o nome ou o endere- 4. O BANCO DE
de dados com o phpMyAdmin. Para ço IP do servidor. Se o phpMyAdmin DADOS
isso, é preciso ter um servidor Apache estiver na mesma máquina que o Um servidor como o
com PHP e MySQL, itens presentes em MySQL, deixe “localhost” mesmo. MySQL pode conter
quase todas as distribuições do Linux. Caso seu MySQL utilize alguma por- vários bancos de da-
Se você quiser instalá-los no Windows, ta especial, indique-a na linha se- dos. Cada um é for-
pode optar por um pacote como o guinte. Coloque o número da porta mado por um certo
Apache2Triad (www.info.abril.com.br/ entre os apóstrofos logo após o si- número de tabelas.
download/3788.shtml), que reúne nal de igual. A porta-padrão é a As tabelas são divi- Página inicial: ponto de partida do phpMyAdmin para a
os três softwares. Vamos ao tutorial. 3306. Caso ocorra algum tipo de pro- didas em colunas e criação dos vários bancos de dados que o MySQL comporta

78 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 79
078_MY_ADMIN1 26/02/2006 00:00 Page 78

TUTORIAL/INTERFACE WEB TUTORIAL/INTERFACE WEB

O PHPMYADMIN
blema, verifique se essa porta está linhas horizontais, que são chama-
liberada no firewall. das, respectivamente, de campos e
registros. Vamos criar um pequeno
3 . AUTENTICAÇÃO
DOMA O MYSQL
banco de dados com o cadastro de
Por padrão, o phpMyAdmin usa a clientes de uma empresa qualquer.
autenticação baseada no computa- Para começar, na página inicial do
APRENDA A USAR O PHPMYADMIN PARA CRIAR dor. Você indica uma máquina clien- phpMyAdmin, procure o campo
BANCOS DE DADOS SEM ESCREVER EM SQL te e ele só faz a conexão com ela. “Criar novo banco de dados”. Digi-
POR TONI CAVALHEIRO Vamos alterar isso para que a au- te a palavra empresa nele e clique
tenticação seja feita com base no no botão Criar. Todos os nomes dos
nome de usuário. Para isso, loca- bancos de dados devem ser grafa-
opular por ser um geren- 1. INSTALAÇÃO lize a seguinte linha no arquivo dos em letras minúsculas.

P ciador de bancos de da-


dos confiável e gratuito,
o MySQL fica devendo
uma interface gráfica para o desenvol-
O primeiro passo é baixar o phpMyAd-
min (www.info.abril.com.br/down
load/3260.shtml) e descompactar os
arquivos. Crie uma pasta no servidor
config.inc.php:
$cfg[‘Servers’][$i][‘auth_type’] =
‘config’; // Authentication method
(config, http or cookie based)?
5 . TABELAS
O próximo passo será criar uma tabe-
la. O próprio phpMyAdmin já sugere
vedor. Sem ela, o uso desse software Apache com o nome mysql e ponha Troque a palavra “config” por essa operação. Digite o nome tb_agen-
fica restrito aos programadores que os arquivos do software nela. “http”, mantendo os apóstrofos. Sal- da para a tabela. Como ela terá nove
dominam a linguagem SQL. A MySQL ve o arquivo e feche o Bloco de No- campos, coloque o número 9 em Cam-
AB, que produz o banco de dados, ofe- 2. CONFIGURAÇÃO tas. Depois disso, o phpMyAdmin es- pos e pressione o botão Executar. É re-
rece o MySQL Administrator, uma fer- Vamos configurar. Abra, no Bloco de tará pronto para ser usado. Abra o comendável iniciar o nome de cada ta-
ramenta de gerenciamento, mas não Notas, o arquivo config.inc.php, que es- browser e digite a seguinte URL: bela com as letras “tb_”. Com essa no-
é tão popular quanto o phpMyAdmin, tá na pasta mysql. Localize este trecho: http://localhost/mysql menclatura, você poderá encontrar as
que permite comandar o MySQL por $cfg[‘Servers’][$i]['host’] = Você verá uma tela de logon. Se é tabelas mais facilmente no código-fon-
meio de uma interface via web. Com ‘localhost’; // MySQL hostname or a primeira vez que você acessa o te do seu programa.
ele, é possível criar e modificar bancos IP address MySQL, digite root
de dados sem escrever os comandos $cfg[‘Servers’][$i][‘port’]= “; // como nome de usuá-
em SQL. O phpMyAdmin também é óti- MySQL port - leave blank rio e deixe a senha
mo para aprender SQL, uma vez que for default em branco.
pode-se visualizar o código gerado. Na primeira linha, altere o parâme-
Neste tutorial, vamos criar um banco tro host para o nome ou o endere- 4. O BANCO DE
de dados com o phpMyAdmin. Para ço IP do servidor. Se o phpMyAdmin DADOS
isso, é preciso ter um servidor Apache estiver na mesma máquina que o Um servidor como o
com PHP e MySQL, itens presentes em MySQL, deixe “localhost” mesmo. MySQL pode conter
quase todas as distribuições do Linux. Caso seu MySQL utilize alguma por- vários bancos de da-
Se você quiser instalá-los no Windows, ta especial, indique-a na linha se- dos. Cada um é for-
pode optar por um pacote como o guinte. Coloque o número da porta mado por um certo
Apache2Triad (www.info.abril.com.br/ entre os apóstrofos logo após o si- número de tabelas.
download/3788.shtml), que reúne nal de igual. A porta-padrão é a As tabelas são divi- Página inicial: ponto de partida do phpMyAdmin para a
os três softwares. Vamos ao tutorial. 3306. Caso ocorra algum tipo de pro- didas em colunas e criação dos vários bancos de dados que o MySQL comporta

78 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 79
078_MY_ADMIN1 26/02/2006 00:01 Page 80

TUTORIAL/INTERFACE WEB TUTORIAL/INTERFACE WEB

6. TIPOS DE CAMPO CAMPO TIPO TAMANHO/DEFINIR 10. DADOS NO


As tabelas podem conter vários ti- cod INT
ATACADO
pos de campo. Vamos dar uma olha- nome VARCHAR 100
A técnica do passo
da nos principais. telefone VARCHAR 15
anterior para inserir
■ VARCHAR Armazena seqüências endereco VARCHAR 50
dados não é muito
de letras e números. Valores armaze- cidade VARCHAR 30
prática se você pre-
nados nesse campo não podem ser estado VARCHAR 2
cisar incluir muitos
usados para cálculos matemáticos (se pais VARCHAR 15
nomes. A melhor
você somar “1” + “2”, receberá “12” cep VARCHAR 8
saída é criar um ar-
como resultado, em vez de “3”). email VARCHAR 30
quivo de texto com
■ TEXT Usado para armazenar os os dados e importá-
textos. Se você tiver um sistema de Esqueça as demais especificações lo para o MySQL. Pa-
notícias online, por exemplo, irá do phpMyAdmin, como Atributos, Nu- ra isso, coloque os
Campos: especifique o nome, o tipo e o tamanho
guardar cada um dos artigos em um lo e Padrão. Esses itens não serão ne- dados de cada clien-
campo TEXT. cessários e devem ser deixados em cluir dados da forma convencional te numa linha, usando ponto-e-vír-
■ DATE Campo usado para datas. Es- branco. Procure evitar o uso de cedi- e, em seguida, você verá como mon- gula como separador. Os campos
tá presente na maioria das tabelas. lha, acentuação ou caracteres espe- tar o cadastro de clientes importan- devem estar na ordem especifica-
■ INT É um dos tipos de campo mais ciais no nome dos campos. Isso pode do dados de um arquivo de texto. da na tabela, como neste exemplo:
usados. Armazena números inteiros, criar problemas se você resolver trans- Para incluir dados no MySQL, cli- ;“João da Silva”;“(11) 6000-1010”;
sejam eles negativos ou positivos. portar a base de dados para outro ser- que na guia Inserir, localizada na par- “Rua do Endereço, 100”;
■ DECIMAL Armazena números de- vidor. Ao terminar, clique em Salvar. te superior da janela do phpMyAd- “SãoPaulo”;“SP”;“Brasil”;
cimais. Repare que, ao lado desse cam- min. O programa permite que você “01000000”;“mail@server.com”
po, aparece o item “tamanho/definir”. 8. CHAVE inclua dois registros de cada vez, bas- ;“Paulo da Silva”;“(21)1000-1212”;
Esse valor indica a precisão do cam- Vamos definir a chave primária, uma tando preencher o formulário com in- “Rua do Teste, 200”;“Niterói”;
po decimal que você está criando. Se referência que será usada como ín- formações tais como nome, endere- “RJ”;“Brasil”;“10201000”;
você preencher com o valor 10,3, por dice para a tabela. Clique em Estru- ço e telefone dos
exemplo, estará informando ao servi- tura e, em seguida, no ícone em for- clientes. Nesse mo-
dor que a precisão será de dez dígi- ma de chave ao lado do campo cod mento, preencha ape-
tos e três casas decimais. Se você não da tabela. Uma tela de confirmação nas o item Valor. O
especificar nenhum valor, o sistema aparecerá. Clique em OK. Agora ligue item Funções permi-
assume 10,0 como formato-padrão. a numeração automática do campo te que você dê um
■ BLOB É normalmente usado para cod. Ainda na guia Estrutura, pres- tratamento persona-
armazenar imagens. sione o ícone em forma de lápis que lizado aos dados que
está ao lado desse campo e selecio- está digitando, mas
7. DEFINIÇÕES ne a opção auto_increment, disponí- não vamos usá-no
O phpMyAdmin mostra um formu- vel em Extra. Clique em Salvar. neste tutorial. Caso
lário que devemos preencher com você queira incluir
as definições dos nove campos da 9. INSERINDO DADOS outros novos dados,
nossa tabela. Complete o formulá- Já podemos inserir dados na tabe- marque a opção “In- Importar dados: faça um arquivo de texto e
importe para o MySQL
rio com os valores da tabela a seguir: la. Primeiro, mostraremos como in- serir novo registro”.

80 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 81
078_MY_ADMIN1 26/02/2006 00:01 Page 80

TUTORIAL/INTERFACE WEB TUTORIAL/INTERFACE WEB

6. TIPOS DE CAMPO CAMPO TIPO TAMANHO/DEFINIR 10. DADOS NO


As tabelas podem conter vários ti- cod INT
ATACADO
pos de campo. Vamos dar uma olha- nome VARCHAR 100
A técnica do passo
da nos principais. telefone VARCHAR 15
anterior para inserir
■ VARCHAR Armazena seqüências endereco VARCHAR 50
dados não é muito
de letras e números. Valores armaze- cidade VARCHAR 30
prática se você pre-
nados nesse campo não podem ser estado VARCHAR 2
cisar incluir muitos
usados para cálculos matemáticos (se pais VARCHAR 15
nomes. A melhor
você somar “1” + “2”, receberá “12” cep VARCHAR 8
saída é criar um ar-
como resultado, em vez de “3”). email VARCHAR 30
quivo de texto com
■ TEXT Usado para armazenar os os dados e importá-
textos. Se você tiver um sistema de Esqueça as demais especificações lo para o MySQL. Pa-
notícias online, por exemplo, irá do phpMyAdmin, como Atributos, Nu- ra isso, coloque os
Campos: especifique o nome, o tipo e o tamanho
guardar cada um dos artigos em um lo e Padrão. Esses itens não serão ne- dados de cada clien-
campo TEXT. cessários e devem ser deixados em cluir dados da forma convencional te numa linha, usando ponto-e-vír-
■ DATE Campo usado para datas. Es- branco. Procure evitar o uso de cedi- e, em seguida, você verá como mon- gula como separador. Os campos
tá presente na maioria das tabelas. lha, acentuação ou caracteres espe- tar o cadastro de clientes importan- devem estar na ordem especifica-
■ INT É um dos tipos de campo mais ciais no nome dos campos. Isso pode do dados de um arquivo de texto. da na tabela, como neste exemplo:
usados. Armazena números inteiros, criar problemas se você resolver trans- Para incluir dados no MySQL, cli- ;“João da Silva”;“(11) 6000-1010”;
sejam eles negativos ou positivos. portar a base de dados para outro ser- que na guia Inserir, localizada na par- “Rua do Endereço, 100”;
■ DECIMAL Armazena números de- vidor. Ao terminar, clique em Salvar. te superior da janela do phpMyAd- “SãoPaulo”;“SP”;“Brasil”;
cimais. Repare que, ao lado desse cam- min. O programa permite que você “01000000”;“mail@server.com”
po, aparece o item “tamanho/definir”. 8. CHAVE inclua dois registros de cada vez, bas- ;“Paulo da Silva”;“(21)1000-1212”;
Esse valor indica a precisão do cam- Vamos definir a chave primária, uma tando preencher o formulário com in- “Rua do Teste, 200”;“Niterói”;
po decimal que você está criando. Se referência que será usada como ín- formações tais como nome, endere- “RJ”;“Brasil”;“10201000”;
você preencher com o valor 10,3, por dice para a tabela. Clique em Estru- ço e telefone dos
exemplo, estará informando ao servi- tura e, em seguida, no ícone em for- clientes. Nesse mo-
dor que a precisão será de dez dígi- ma de chave ao lado do campo cod mento, preencha ape-
tos e três casas decimais. Se você não da tabela. Uma tela de confirmação nas o item Valor. O
especificar nenhum valor, o sistema aparecerá. Clique em OK. Agora ligue item Funções permi-
assume 10,0 como formato-padrão. a numeração automática do campo te que você dê um
■ BLOB É normalmente usado para cod. Ainda na guia Estrutura, pres- tratamento persona-
armazenar imagens. sione o ícone em forma de lápis que lizado aos dados que
está ao lado desse campo e selecio- está digitando, mas
7. DEFINIÇÕES ne a opção auto_increment, disponí- não vamos usá-no
O phpMyAdmin mostra um formu- vel em Extra. Clique em Salvar. neste tutorial. Caso
lário que devemos preencher com você queira incluir
as definições dos nove campos da 9. INSERINDO DADOS outros novos dados,
nossa tabela. Complete o formulá- Já podemos inserir dados na tabe- marque a opção “In- Importar dados: faça um arquivo de texto e
importe para o MySQL
rio com os valores da tabela a seguir: la. Primeiro, mostraremos como in- serir novo registro”.

80 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 81
078_MY_ADMIN1 26/02/2006 00:01 Page 82

TUTORIAL/INTERFACE WEB

“outro@servidor.com.br” MySQL. Vamos ver exemplos das qua-


;“Jorge Pinheiro”;“(609) tro operações básicas de bancos de
1000-1000”;“3rd Test Street”; dados — consulta, inclusão, edição e
“Adrian”;“MI”;“USA”;“11000123”; exclusão — em SQL.
“mail@server.com” SELECT * from tb_dados WHERE
Salve esse arquivo com o nome cod = ‘10’ ORDER BY nome;
agenda.txt. De volta ao phpMyAdmin, Esse comando seleciona e lista to-
clique em SQL e depois em Insere Ar- dos os campos da tabela tb_dados
quivo Texto na Tabela. Clique em somente nas linhas que tiverem o
Browse, localize o arquivo que você código 10. O parâmetro ORDER BY
criou. Para concluir a entrada dos da- determina as linhas em ordem alfa-
dos, clique em Submeter. Os dados bética pelo campo nome.
serão incorporados ao cadastro de INSERT INTO tb_dados (endereco)
clientes. A montagem do nosso ban- VALUES (‘mail@mail.com’);
co de dados está concluída. Nos pró- Esse código insere o endereço mail@
ximos dois passos, damos dicas pa- mail.com no campo endereco da ta-
ra quem está aprendendo SQL. bela tb_dados.
UPDATE tb_dados SET nome =
11. EXAMINANDO O CÓDIGO ‘INFO’ WHERE cod = ‘10’;
Pode ser interessante dar uma olha- Modifica o campo nome da tabela
da no código em SQL gerado pelo tb_dados para Info, mas só nas linhas
phpMyAdmin. Clique em Exportar e que tiverem 10 no campo cod.
gere um arquivo com a extensão SQL. DELETE FROM tb_dados WHERE
Depois, abra esse arquivo no Bloco nome like ‘a%’;
de Notas ou num editor de progra- Apaga linhas da tabela tb_dados que
mas. Analise o código e veja como o começarem com a letra a. O símbolo
phpMyAdmin estruturou a tabela. % é usado como curinga.

12. COM O SQL


Há certas operações
que não podem ser
feitas apenas com o
phpMyAdmin. Elas
exigem a digitação de
comandos em SQL. Is-
so é feito na guia SQL,
bastando digitar os
comandos e pressio-
nar o botão Executar
SQL: os comandos são enviados direto para o MySQL
para enviá-los ao

82 < C O L E Ç Ã O I N F O
083_084_AJAX 26/02/2006 00:20 Page 83

TUTORIAL/DESENVOLVIMENTO

ATUALIZAÇÃO É
COM O AJAX
COMBINAÇÃO DE VÁRIAS TECNOLOGIAS, O AJAX AGILIZA
OS APLICATIVOS QUE ACESSAM BANCOS DE DADOS ONLINE
POR CARLOS CHERNIJ

Ajax vem dando o que que devolve uma nova página com o

O falar no mundo dos si-


tes dinâmicos. Essa téc-
nica de desenvolvimen-
to usa HTML, JavaScript, XML e algu-
resultado. Para demonstrar como se
programa em Ajax, vamos criar um
serviço de cadastro com PHP e HTML.

ma linguagem para a web, como PHP, 1. O SERVIDOR


ColdFusion, Java ou C# e tem no Para executar nosso exemplo, é pre-
Google um ilustre usuário. Quando al- ciso ter um servidor HTTP Apache 2.0
guém distribui corações para os ami- rodando PHP 4.4 no modo binário CGI
gos no orkut, por exemplo, a página e o banco de dados MySQL 4.1 ou mais
atualiza os campos correspondentes recente. Esses recursos estão dispo-
sem recarregar todo o resto, agilizando níveis na maioria dos planos de hos-
a operação. Num formulário normal pedagem de sites. Baixe o exemplo
da web, os dados fornecidos pelo in- em www.info.abril.com.br/down
ternauta são enviados para o servidor, load/4326.shtml e descompacte-o.
Você vai obter uma pas-
ta chamada infoajax com
vários arquivos. Coloque
essa pasta no diretório-
raiz do servidor Apache
(diretório htdocs). Para
criar nossa aplicação, usa-
remos uma biblioteca de
classes em PHP, a Xajax
(www.info.abril.com.br/
download/4327.shtml).
Ela está incluída no arqui-
vo compactado, dentro da
pasta includes, com o no-
Formulário: cadastro de clientes feito com Ajax
me xajax.inc.php.

C O L E Ç Ã O I N F O > 83
083_084_AJAX 26/02/2006 00:21 Page 84

TUTORIAL/DESENVOLVIMENTO TUTORIAL/DESENVOLVIMENTO

2. BASE DE DADOS o $xajax->registerFunction(), $xajax->registerFunction


Prepare a base de dados que permite agregar funções es- (“carregaCidades”)
do aplicativo. O INFOLAB critas em PHP que realizarão ope-
utilizou o phpMyAdmin rações com dados do formulário 8. XAJAX
(www.info.abril.com.br/ de forma assíncrona. Cada função Após a definição das funções, quan-
download/3260.shtml) dessas deve possuir um objeto da do começa a seção de código HTML
nessa tarefa. Se esse soft- classe xajaxResponse(), que con- do arquivo cadastro.php, é preciso
ware estiver instalado no terá os dados a atualizar. especificar que o xajax deve tomar
servidor, digite o endere- para si os comandos de post do for-
ço correspondente para 7. TELA DE CADASTRO mulário. Isso é feito pelo comando
usá-lo, como neste exem- Na tela de cadastro, o exemplo de $xajax->processRequests() Em se-
plo: http://www.nome. uso do Ajax é composto dos menus guida, devemos criar um evento que
com.br/phpmyadmin. phpMyAdmin: criação do banco de dados xajax com os dados de estado e cidade. chamará a função que registramos
Na tela inicial, procure A lista de cidades é atualizada de no objeto xajax. Isso é feito na linha:
o campo Criar Novo Banco de Da- “senha” pelo nome de usuário e a se- acordo com o estado escolhido. Pa- <select id=“uf”name=“uf”
dos e digite xajax. Clique em Criar. nha que deverão ser usados para ra selecionar as cidades, há a fun- onChange=“javascript:aguarde();
acesso ao MySQL. Na linha de baixo, ção carregaCidades. No arquivo ca- xajax_carregaCidades(this.
3. TABELAS substitua “meubanco” por “xajax”. dastro.php, observe o código des- value);”style=“width: 50px;”>
Vamos gerar tabelas para a nossa sa função. Após ler o valor selecio- Cada vez que o campo Estado mu-
aplicação. No phpMyAdmin, acione
o menu do lado esquerdo da tela e
5 . O APLICATIVO nado no menu Estado, a função rea-
liza uma consulta na tabela para se-
dar, a função carregaCidades será
chamada e retornará a lista de cida-
Para ver o aplicativo-exemplo fun-
selecione o banco de dados xajax. cionando, abra o browser e digite lecionar as cidades corresponden- des em código XML. O xajax utiliza-
Ative, então, a aba MySQL. No cam- este endereço: http://www.nome. tes. Cada registro encontrado é adi- rá a lista num JavaScript, que, por sua
po Localização do Arquivo Texto, com.br/infoajax. No lugar de cionado ao objeto $objResponse, vez, atualizará as cidades.
clique em Procurar. Navegue até o “www.nome.com.br”, coloque o en- por meio do método addAssign. No Um mecanismo similar é utilizado
arquivo bd.sql, na pasta infoajax, e dereço do seu site. Clique em Ca- código, temos esta linha: na página index.php, que contém o
selecione-o. Em Conjunto de Carac- dastrar e inclua dados de uma pes- $objResponse->addAssig módulo de consulta. Abra-a num edi-
teres do Arquivo, escolha latin1. Cli- soa no banco. Depois, volte à pági- (“cidades”,“innerHTML”, tor de textos. A função listaUsuarios
que em Executar para rodar o pro- na anterior e faça uma consulta. $html) utiliza como parâmetro o texto da
grama em SQL. Isso cria as tabelas. O item “cidades” é a identificação caixa de busca. Ao ser chamada, ela
6. EXAMINADO O CÓDIGO da divisão da página onde ficará o faz a consulta no banco e adiciona os
4. CONFIGURAÇÕES Analisaremos a seguir o arquivo menu com as cidades, e “in- resultados à variável $html para que
Vamos editar o arquivo bd.inc.php cadastro.php, que contém as roti- nerHTML” especifica que o conteú- sejam exibidos na página. Ao clicar
que fica na pasta includes. Abra-o nas para a inclusão de registros. do da variável $html vai substituir em Buscar, a função listaUsuarios pas-
num editor de textos e procure: Abra o arquivo num editor de tex- o código html dentro da divisão. No sa um novo parâmetro para a con-
$conexao = mysql_connect tos e, logo no começo, observe a final, é chamado o método getXML(), sulta. Ele é enviado para o servidor
(“localhost”,“usuário”,“senha”); linha $xajax = new xajax();. Es- que retorna uma seção de código pelo xajax, que recebe a resposta em
mysql_select_db(‘meubanco’, se comando define o objeto xajax, XML ao objeto xajax. Após imple- XML e usa, então, um programa em
$conexao); que vai processar as ações de post mentar a função, vamos incorporá- JavaScript para reescrever o código
Substitua as palavras “usuário” e do formulário. Um dos métodos é la ao xajax por meio do comando: HTML, que mostra os resultados.

84 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 85
083_084_AJAX 26/02/2006 00:21 Page 84

TUTORIAL/DESENVOLVIMENTO TUTORIAL/DESENVOLVIMENTO

2. BASE DE DADOS o $xajax->registerFunction(), $xajax->registerFunction


Prepare a base de dados que permite agregar funções es- (“carregaCidades”)
do aplicativo. O INFOLAB critas em PHP que realizarão ope-
utilizou o phpMyAdmin rações com dados do formulário 8. XAJAX
(www.info.abril.com.br/ de forma assíncrona. Cada função Após a definição das funções, quan-
download/3260.shtml) dessas deve possuir um objeto da do começa a seção de código HTML
nessa tarefa. Se esse soft- classe xajaxResponse(), que con- do arquivo cadastro.php, é preciso
ware estiver instalado no terá os dados a atualizar. especificar que o xajax deve tomar
servidor, digite o endere- para si os comandos de post do for-
ço correspondente para 7. TELA DE CADASTRO mulário. Isso é feito pelo comando
usá-lo, como neste exem- Na tela de cadastro, o exemplo de $xajax->processRequests() Em se-
plo: http://www.nome. uso do Ajax é composto dos menus guida, devemos criar um evento que
com.br/phpmyadmin. phpMyAdmin: criação do banco de dados xajax com os dados de estado e cidade. chamará a função que registramos
Na tela inicial, procure A lista de cidades é atualizada de no objeto xajax. Isso é feito na linha:
o campo Criar Novo Banco de Da- “senha” pelo nome de usuário e a se- acordo com o estado escolhido. Pa- <select id=“uf”name=“uf”
dos e digite xajax. Clique em Criar. nha que deverão ser usados para ra selecionar as cidades, há a fun- onChange=“javascript:aguarde();
acesso ao MySQL. Na linha de baixo, ção carregaCidades. No arquivo ca- xajax_carregaCidades(this.
3. TABELAS substitua “meubanco” por “xajax”. dastro.php, observe o código des- value);”style=“width: 50px;”>
Vamos gerar tabelas para a nossa sa função. Após ler o valor selecio- Cada vez que o campo Estado mu-
aplicação. No phpMyAdmin, acione
o menu do lado esquerdo da tela e
5 . O APLICATIVO nado no menu Estado, a função rea-
liza uma consulta na tabela para se-
dar, a função carregaCidades será
chamada e retornará a lista de cida-
Para ver o aplicativo-exemplo fun-
selecione o banco de dados xajax. cionando, abra o browser e digite lecionar as cidades corresponden- des em código XML. O xajax utiliza-
Ative, então, a aba MySQL. No cam- este endereço: http://www.nome. tes. Cada registro encontrado é adi- rá a lista num JavaScript, que, por sua
po Localização do Arquivo Texto, com.br/infoajax. No lugar de cionado ao objeto $objResponse, vez, atualizará as cidades.
clique em Procurar. Navegue até o “www.nome.com.br”, coloque o en- por meio do método addAssign. No Um mecanismo similar é utilizado
arquivo bd.sql, na pasta infoajax, e dereço do seu site. Clique em Ca- código, temos esta linha: na página index.php, que contém o
selecione-o. Em Conjunto de Carac- dastrar e inclua dados de uma pes- $objResponse->addAssig módulo de consulta. Abra-a num edi-
teres do Arquivo, escolha latin1. Cli- soa no banco. Depois, volte à pági- (“cidades”,“innerHTML”, tor de textos. A função listaUsuarios
que em Executar para rodar o pro- na anterior e faça uma consulta. $html) utiliza como parâmetro o texto da
grama em SQL. Isso cria as tabelas. O item “cidades” é a identificação caixa de busca. Ao ser chamada, ela
6. EXAMINADO O CÓDIGO da divisão da página onde ficará o faz a consulta no banco e adiciona os
4. CONFIGURAÇÕES Analisaremos a seguir o arquivo menu com as cidades, e “in- resultados à variável $html para que
Vamos editar o arquivo bd.inc.php cadastro.php, que contém as roti- nerHTML” especifica que o conteú- sejam exibidos na página. Ao clicar
que fica na pasta includes. Abra-o nas para a inclusão de registros. do da variável $html vai substituir em Buscar, a função listaUsuarios pas-
num editor de textos e procure: Abra o arquivo num editor de tex- o código html dentro da divisão. No sa um novo parâmetro para a con-
$conexao = mysql_connect tos e, logo no começo, observe a final, é chamado o método getXML(), sulta. Ele é enviado para o servidor
(“localhost”,“usuário”,“senha”); linha $xajax = new xajax();. Es- que retorna uma seção de código pelo xajax, que recebe a resposta em
mysql_select_db(‘meubanco’, se comando define o objeto xajax, XML ao objeto xajax. Após imple- XML e usa, então, um programa em
$conexao); que vai processar as ações de post mentar a função, vamos incorporá- JavaScript para reescrever o código
Substitua as palavras “usuário” e do formulário. Um dos métodos é la ao xajax por meio do comando: HTML, que mostra os resultados.

84 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 85
086_CONSULTA_TAB_ACCESS 26/02/2006 00:22 Page 86

TUTORIAL/CONSULTAS TUTORIAL/CONSULTAS

2. A TABELA DAS LETRAS


PESQUISE BEM Crie outra tabela, com os campos
Intérprete, Título e Letra. Este últi-
mo deve ser do tipo Memorando,

NO ACCESS
MONTE CONSULTAS COM DUAS TABELAS E ESCAPE DAS
para abrigar a letra da música. O
campo do tipo Texto tem capacida-
de máxima para 255 caracteres. A
letra não caberia nele. Por sua vez,
PEGADINHAS NA LÓGICA DOS DADOS
o campo de memorando suporta
POR CARLOS MACHADO
até 65 536 caracteres. Dê à segun-
da tabela o nome tabLetras. Tam-
uem gosta de música e pondente, no desenho, à área em que bém não haveria problema se o

Q organização costuma
não resistir a um banco
de dados. Em geral, uti-
liza o Access, que já está ali mesmo
os dois conjuntos se superpõem. Ago-
ra que já caracterizamos o problema,
vamos à solução, passo a passo.
campo Título, que é o ponto comum
entre as tabelas, tivesse nome dife-
rente nas duas. No entanto, para fa-
cilitar a compreensão, é mais cô- Consulta 2: o resultado (embaixo) não

no PC, no pacote Office. Vamos su- 1. A TABELA DE MP3 modo usar o mesmo nome.
é igual ao da consulta 1

por que você tenha montado uma Para acompanhar o exemplo, crie bela não tem nenhum parentesco
tabela no Access reunindo todos os no Access uma tabela com os cam- 3. CRIE A CONSULTA com seu homônimo na outra.
seus arquivos de música em MP3. pos Intérprete e Título, ambos do ti- Na janela Banco de Dados, clique na
Como também gosta de analisar as po Texto. Salve-a com o nome orelha Consulta. Dê um duplo clique 5 . O PULO-D0-GATO
letras — e decorar para cantar no tabMP3. Essa tabela, claro, vai con- no comando Criar Consulta no Modo Com o mouse, clique no campo Tí-
chuveiro —, criou uma tabela para ter a lista das músicas. Design para projetar um objeto des- tulo de uma tabela e arraste-o para
elas. Nem todas as músicas têm sua se tipo a partir do zero. O Access abre o campo de mesmo nome na outra
letra no banco, e você quer saber duas janelas: Mostrar Tabela e Con- tabela. Uma linha passa a ligar os
quais MP3 dispõem de letras. sulta1. Selecione (mouse mais a te- dois campos, indicando que a con-
A solução pode ser encontrada no cla Ctrl) o nome das duas tabelas — sulta deve procurar neles informa-
Access a um toque do mouse, sem tabMP3 e tabLetras — na primeira ja- ções iguais. Dica: o procedimento
programação. Será preciso construir nela e clique no botão Adicionar. também funciona quando o nome
uma consulta simples, com o objetivo dos dois campos não é o mesmo.
de identificar, em duas tabelas, quais 4. A LINHA NEGRA No quadro tabLetras, arraste pa-
registros contêm as mesmas informa- Dois quadros com os campos das ra a linha Campo, embaixo, os cam-
ções em dois campos indicados: um tabelas aparecem na área superior pos Título e Intérprete. Opcional-
em cada tabela. Essa solução pode ser de Consulta1. Se as duas tabelas ti- mente, indique que o campo Intér-
aplicada em muitas outras situações. verem chaves primárias chamadas prete seja apresentado em ordem
O problema pode ser representado Código (nome-padrão), o Access vai alfabética. Para isso, na linha Clas-
por um diagrama que mostra dois con- mostrar uma linha negra ligando es- sificação, escolha Crescente.
juntos de dados, um para cada tabe- ses dois campos. Clique nessa linha Salve a consulta (com um nome
Consulta 1 (no alto) e seus
la. O xis da questão é identificar a por- resultados: a base é a tabLetras
e acione a tecla Del para apagá-la. amigável, como cnsMP3comLetras1)
ção comum às duas tabelas — corres- Isso porque o valor Código numa ta- e execute-a. Veja que ela exibe exa-

86 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 87
086_CONSULTA_TAB_ACCESS 26/02/2006 00:22 Page 86

TUTORIAL/CONSULTAS TUTORIAL/CONSULTAS

2. A TABELA DAS LETRAS


PESQUISE BEM Crie outra tabela, com os campos
Intérprete, Título e Letra. Este últi-
mo deve ser do tipo Memorando,

NO ACCESS
MONTE CONSULTAS COM DUAS TABELAS E ESCAPE DAS
para abrigar a letra da música. O
campo do tipo Texto tem capacida-
de máxima para 255 caracteres. A
letra não caberia nele. Por sua vez,
PEGADINHAS NA LÓGICA DOS DADOS
o campo de memorando suporta
POR CARLOS MACHADO
até 65 536 caracteres. Dê à segun-
da tabela o nome tabLetras. Tam-
uem gosta de música e pondente, no desenho, à área em que bém não haveria problema se o

Q organização costuma
não resistir a um banco
de dados. Em geral, uti-
liza o Access, que já está ali mesmo
os dois conjuntos se superpõem. Ago-
ra que já caracterizamos o problema,
vamos à solução, passo a passo.
campo Título, que é o ponto comum
entre as tabelas, tivesse nome dife-
rente nas duas. No entanto, para fa-
cilitar a compreensão, é mais cô- Consulta 2: o resultado (embaixo) não

no PC, no pacote Office. Vamos su- 1. A TABELA DE MP3 modo usar o mesmo nome.
é igual ao da consulta 1

por que você tenha montado uma Para acompanhar o exemplo, crie bela não tem nenhum parentesco
tabela no Access reunindo todos os no Access uma tabela com os cam- 3. CRIE A CONSULTA com seu homônimo na outra.
seus arquivos de música em MP3. pos Intérprete e Título, ambos do ti- Na janela Banco de Dados, clique na
Como também gosta de analisar as po Texto. Salve-a com o nome orelha Consulta. Dê um duplo clique 5 . O PULO-D0-GATO
letras — e decorar para cantar no tabMP3. Essa tabela, claro, vai con- no comando Criar Consulta no Modo Com o mouse, clique no campo Tí-
chuveiro —, criou uma tabela para ter a lista das músicas. Design para projetar um objeto des- tulo de uma tabela e arraste-o para
elas. Nem todas as músicas têm sua se tipo a partir do zero. O Access abre o campo de mesmo nome na outra
letra no banco, e você quer saber duas janelas: Mostrar Tabela e Con- tabela. Uma linha passa a ligar os
quais MP3 dispõem de letras. sulta1. Selecione (mouse mais a te- dois campos, indicando que a con-
A solução pode ser encontrada no cla Ctrl) o nome das duas tabelas — sulta deve procurar neles informa-
Access a um toque do mouse, sem tabMP3 e tabLetras — na primeira ja- ções iguais. Dica: o procedimento
programação. Será preciso construir nela e clique no botão Adicionar. também funciona quando o nome
uma consulta simples, com o objetivo dos dois campos não é o mesmo.
de identificar, em duas tabelas, quais 4. A LINHA NEGRA No quadro tabLetras, arraste pa-
registros contêm as mesmas informa- Dois quadros com os campos das ra a linha Campo, embaixo, os cam-
ções em dois campos indicados: um tabelas aparecem na área superior pos Título e Intérprete. Opcional-
em cada tabela. Essa solução pode ser de Consulta1. Se as duas tabelas ti- mente, indique que o campo Intér-
aplicada em muitas outras situações. verem chaves primárias chamadas prete seja apresentado em ordem
O problema pode ser representado Código (nome-padrão), o Access vai alfabética. Para isso, na linha Clas-
por um diagrama que mostra dois con- mostrar uma linha negra ligando es- sificação, escolha Crescente.
juntos de dados, um para cada tabe- ses dois campos. Clique nessa linha Salve a consulta (com um nome
Consulta 1 (no alto) e seus
la. O xis da questão é identificar a por- resultados: a base é a tabLetras
e acione a tecla Del para apagá-la. amigável, como cnsMP3comLetras1)
ção comum às duas tabelas — corres- Isso porque o valor Código numa ta- e execute-a. Veja que ela exibe exa-

86 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 87
086_CONSULTA_TAB_ACCESS 26/02/2006 00:23 Page 88

TUTORIAL/CONSULTAS

tamente os títulos comuns às duas ta- colha, nos dois campos, tabMP3 em
belas. A solução descrita acima apa- vez de tabLetras. Salve a consulta.
rentemente resolve o problema apre- Em outras palavras, estamos fazen-
sentado no início deste tutorial. do a mesma consulta, só que ago-
ra a outra tabela é nosso ponto de
6 . TESTE A CONSULTA partida. Execute essa consulta mo-
Faça, agora, uma experiência impor- dificada. O que ocorre? A música
tante. Inclua, na tabela MP3, uma aparece, mas com outro intérpre-
música cujo título já existe em tabLe- te. Para comparar, abra as duas.
tras, mas registre aí outro intérpre- Ao trabalhar com bancos de da-
te. Escolha, de propósito, uma can- dos, é preciso pensar em coisas des-
ção que não faz parte do núcleo co- se tipo. A questão é que duas can-
mum entre as duas tabelas. Execu- ções com o mesmo título e cantores
te novamente a consulta. O que ocor- diferentes podem ser a mesma mú-
re? A nova música não aparece. Is- sica ou não. Assim, se você quiser
so porque a consulta está sendo fei- garantir a identidade de título e in-
ta com base na tabela tabLetras. térprete, precisa construir uma con-
sulta ligeiramente diferente.
7 . MESMO TÍTULO
Agora, na janela Banco de Dados, 8. OS INTÉRPRETES
selecione a consulta cnsMP3com- Experimente mais. Copie a pri-
Letras1 e copie-a. Cole-a no mesmo meira consulta e cole-a como
lugar, com o nome de cnsMP3com- cnsMP3comLetras11. Abra-a em mo-
Letras2. Selecione essa nova con- do Design e arraste o campo Intér-
sulta e clique no botão Design. Na prete de uma tabela para o mesmo
janela da consulta, linha Tabela, es- campo na outra. Com isso, estamos
dizendo que tanto o título como o
intérprete devem coincidir nas duas
tabelas. Agora, copie a tabela
cnsMP3comLetras2 e cole-a como
cnsMP3comLetras22. Arraste o cam-
po Intérprete da mesma forma.

9. BUSCA DUPLA
Execute, lado a lado, as consultas
11 e 22. Embora se baseiem em ta-
belas diferentes, elas dão os mes-
míssimos resultados. A diferença
Consultas 11 e 22: bases diferentes, está na busca de dupla identidade:
mas com resultados iguais
de título e de intérprete.

88 < C O L E Ç Ã O I N F O
089_CADASTROFOTO_EXIF 26/02/2006 00:24 Page 89

TUTORIAL/CADASTRO DE FOTOS

O EXIF VAI
PARA O BANCO
APRENDA A CRIAR UMA BASE DE DADOS DE FOTOS NO SQL
SERVER EXPRESS COM INFORMAÇÕES DA CÂMERA
POR NIVALDO FORESTI

ue tal criar um banco de meras fotográficas digitais, em sua

Q dados de fotografias
sem perder muito tem-
po na digitação dos de-
talhes? A idéia é boa e factível, se
maioria, gravam em cada imagem
capturada por seus sensores. Entre
essas informações preciosas estão a
data e a hora em que a foto foi tira-
usarmos as informações Exif (Exchan- da, a abertura do obturador, o tem-
geable Image File Format) que as câ- po de exposição, o nome do fabri-

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

C O L E Ç Ã O I N F O > 89
089_CADASTROFOTO_EXIF 26/02/2006 00:24 Page 90

TUTORIAL/CADASTRO DE FOTOS TUTORIAL/CADASTRO DE FOTOS

MSQL >DATA. Lá estarão mos determinar qual tipo de dados 4. CHAVE PRIMÁRIA
os arquivos fotos.mdf e o campo irá suportar. Clique no cam- Vamos agora definir a nossa chave
fotos_log.ldf. po Data Type e selecione int, pois primária. Clique com o botão direi-
esse campo será uma identificação to sobre o campo desejado e sele-
2. AS TABELAS do fotógrafo e a chave primária des- cione Set Primary Key. Vamos fazer
De volta ao SQL Server sa tabela. Dê TAB até abrir a próxi- isso com o campo Id_fotografo. A
Management Studio Ex- ma linha da janela Table — dbo.ta- chave primária é identificada grafi-
press, expanda o banco ble-1, nome provisório da tabela. camente por uma pequena chave à
de dados Fotos, clicando frente do nome do campo.
no ícone +. Agora vamos 3 . MAIS CAMPOS Salvamos nossa tabela, acionan-
criar as três tabelas: fo- Vamos criar agora os campos Nome do File > Salvar Fotografos. Pronto,
tografos, pictures e clien- do fotógrafo, Endereço, Cidade, Es- a primeira tabela está criada na ba-
Checagem: verifique os arquivos tes. Como definição, iremos dizer tado. Todos eles serão do tipo var- se de dados Fotos.
que formam o banco de dados
que um fotógrafo pode ter várias char, que consumirá somente o es- Faça o mesmo para a tabela Clien-
fotos e que um cliente também po- paço necessário no disco para a quan- tes. Ela terá os campos Id_cliente, no-
cante e o modelo da máquina, além de ter várias fotos. tidade de caracteres armazenada. me_cliente, endereço_cliente, cida-
da resolução da imagem. Neste tu- Primeiro, criamos a tabela foto- Assim, um nome que contenha 10 de_cliente, estado_cliente, CEP_clien-
torial, vamos criar uma base de da- grafos. Com o botão direito, clique caracteres consumirá somente 10 te como colunas. Como não quere-
dos de fotos com informações Exif em Tables e selecione NEW TABLE. bytes no banco de dados. No caso do mos registros incompletos, todos eles
no SQL Server 2005 Express, da Mi- Na janela Properties, digite o nome campo do tipo char, um campo com também não permitirão campos não
crosoft. Nosso banco terá três tabe- da tabela, fotografos, no campo Ob- tamanho de 50 caracteres sempre preenchidos ou nulos.
las: clientes, fotógrafos e pictures. jectName. ocupará 50 bytes de espaço no dis- Vamos fazer o ID_cliente como
Vamos aos passos. Agora vamos criar os campos co rígido. Para cada um, defina no nossa chave primária dessa tabe-
dessa tabela. Aparece uma lista com campo lenght o tamanho que vo- la. Salve a tabela Clientes clicando
1. A BASE DE DADOS as opções na janela Table — dbo.ta- cê deseja para ele. no ícone de fechar tabela. Uma ja-
Abra a suíte SQL Server Manage- ble-1, o nome padrão de tabela cria- O último campo será o de CEP. De-
ment Studio Express. Na interface da pelo SQL Management, conten- fina-o como um campo numérico de Chave primária: pequena chave
principal, clique com o botão direi- do o nome da coluna (Column Na- tamanho 8 (o tamanho do cep no identifica o campo correspondente
to do mouse em Databases e sele- me), tipo de dados (Data Type) e Brasil). Preencha as opções
cione Criar New Database. Allow Nulls?. Precision como 8 e scale
Do lado esquerdo da janela New O primeiro campo que vamos criar 0 na janela Properties.
Database que se abre, selecione a é o da chave primária dessa tabe- Não queremos que fal-
opção General. No campo chama- la. É de bom costume criar sempre te informação nessa tabe-
do database name, digite Fotos, uma chave primária para toda ta- la. Assim, desmarque a
que será o nome do nosso banco bela. Nesse caso, ela será chamada opção Allow Nulls de to-
de dados. Clique OK. Id_fotografo. Digite esse nome no dos os campos. O próprio
O banco de dados Fotos está cria- campo Column Name. sistema de banco de da-
do e se constitui de dois arquivos. A janela Column properties deve dos não permitirá que
Você pode verificar isso acionando ser alterada para as características campos em branco sejam
Programs > Microsoft SQL Server > desejadas. Em primeiro lugar, va- registrados.

90 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 91
089_CADASTROFOTO_EXIF 26/02/2006 00:24 Page 90

TUTORIAL/CADASTRO DE FOTOS TUTORIAL/CADASTRO DE FOTOS

MSQL >DATA. Lá estarão mos determinar qual tipo de dados 4. CHAVE PRIMÁRIA
os arquivos fotos.mdf e o campo irá suportar. Clique no cam- Vamos agora definir a nossa chave
fotos_log.ldf. po Data Type e selecione int, pois primária. Clique com o botão direi-
esse campo será uma identificação to sobre o campo desejado e sele-
2. AS TABELAS do fotógrafo e a chave primária des- cione Set Primary Key. Vamos fazer
De volta ao SQL Server sa tabela. Dê TAB até abrir a próxi- isso com o campo Id_fotografo. A
Management Studio Ex- ma linha da janela Table — dbo.ta- chave primária é identificada grafi-
press, expanda o banco ble-1, nome provisório da tabela. camente por uma pequena chave à
de dados Fotos, clicando frente do nome do campo.
no ícone +. Agora vamos 3 . MAIS CAMPOS Salvamos nossa tabela, acionan-
criar as três tabelas: fo- Vamos criar agora os campos Nome do File > Salvar Fotografos. Pronto,
tografos, pictures e clien- do fotógrafo, Endereço, Cidade, Es- a primeira tabela está criada na ba-
Checagem: verifique os arquivos tes. Como definição, iremos dizer tado. Todos eles serão do tipo var- se de dados Fotos.
que formam o banco de dados
que um fotógrafo pode ter várias char, que consumirá somente o es- Faça o mesmo para a tabela Clien-
fotos e que um cliente também po- paço necessário no disco para a quan- tes. Ela terá os campos Id_cliente, no-
cante e o modelo da máquina, além de ter várias fotos. tidade de caracteres armazenada. me_cliente, endereço_cliente, cida-
da resolução da imagem. Neste tu- Primeiro, criamos a tabela foto- Assim, um nome que contenha 10 de_cliente, estado_cliente, CEP_clien-
torial, vamos criar uma base de da- grafos. Com o botão direito, clique caracteres consumirá somente 10 te como colunas. Como não quere-
dos de fotos com informações Exif em Tables e selecione NEW TABLE. bytes no banco de dados. No caso do mos registros incompletos, todos eles
no SQL Server 2005 Express, da Mi- Na janela Properties, digite o nome campo do tipo char, um campo com também não permitirão campos não
crosoft. Nosso banco terá três tabe- da tabela, fotografos, no campo Ob- tamanho de 50 caracteres sempre preenchidos ou nulos.
las: clientes, fotógrafos e pictures. jectName. ocupará 50 bytes de espaço no dis- Vamos fazer o ID_cliente como
Vamos aos passos. Agora vamos criar os campos co rígido. Para cada um, defina no nossa chave primária dessa tabe-
dessa tabela. Aparece uma lista com campo lenght o tamanho que vo- la. Salve a tabela Clientes clicando
1. A BASE DE DADOS as opções na janela Table — dbo.ta- cê deseja para ele. no ícone de fechar tabela. Uma ja-
Abra a suíte SQL Server Manage- ble-1, o nome padrão de tabela cria- O último campo será o de CEP. De-
ment Studio Express. Na interface da pelo SQL Management, conten- fina-o como um campo numérico de Chave primária: pequena chave
principal, clique com o botão direi- do o nome da coluna (Column Na- tamanho 8 (o tamanho do cep no identifica o campo correspondente
to do mouse em Databases e sele- me), tipo de dados (Data Type) e Brasil). Preencha as opções
cione Criar New Database. Allow Nulls?. Precision como 8 e scale
Do lado esquerdo da janela New O primeiro campo que vamos criar 0 na janela Properties.
Database que se abre, selecione a é o da chave primária dessa tabe- Não queremos que fal-
opção General. No campo chama- la. É de bom costume criar sempre te informação nessa tabe-
do database name, digite Fotos, uma chave primária para toda ta- la. Assim, desmarque a
que será o nome do nosso banco bela. Nesse caso, ela será chamada opção Allow Nulls de to-
de dados. Clique OK. Id_fotografo. Digite esse nome no dos os campos. O próprio
O banco de dados Fotos está cria- campo Column Name. sistema de banco de da-
do e se constitui de dois arquivos. A janela Column properties deve dos não permitirá que
Você pode verificar isso acionando ser alterada para as características campos em branco sejam
Programs > Microsoft SQL Server > desejadas. Em primeiro lugar, va- registrados.

90 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 91
089_CADASTROFOTO_EXIF 26/02/2006 00:26 Page 92

TUTORIAL/CADASTRO DE FOTOS TUTORIAL/CADASTRO DE FOTOS

6. RELACIONAR fazer isso. Vamos pelo mais fácil e um para um, um para muitos ou
A tabela não está comple- visual. No banco de dados Fotos, cli- muitos para muitos. No nosso ca-
ta ainda. Você precisa re- que com o botão direito em Data- so, você verá uma chave de um dos
lacioná-la aos fotógrafos base Diagrams na janela da esquer- lados da relação e um símbolo de
e aos clientes. Lembre-se da. Clique em database diagrams. O infinito do outro lado, o que signi-
que, em um banco de da- sistema irá avisar que esse banco fica uma relação de um para mui-
dos relacional, essa rela- de dados não tem um ou mais ob- tos.
ção é importante para des- jetos necessários para utilizar o re- Quando você executar consultas
cobrir as fotos que perten- curso de diagramas. Clique em YES. que contenham as tabelas clientes e
cem a um fotógrafo ou Selecione a opção New Databa- pictures ou fotografos e pictures, as
que fotos são de quais se Diagram. Uma janela chamada informações relacionadas de ambas
clientes. Primeiro, vamos Add Tables será mostrada. Selecio- serão trazidas automaticamente. Por
Índice: definindo a chave de definir as chaves de pesquisa para os ne uma tabela e clique no botão exemplo, ao pesquisar um fotógrafo,
pesquisa para os fotógrafos
fotógrafos e clientes nessa tabela. Elas Add. Faça isso com todas elas. Ao você encontrará todas as fotos que
serão chamadas de id_fotografos e final, clique em Close. ele produziu. Salve o diagrama, cli-
nela aparecerá perguntando se vo- id_clientes, respectivamente. Crie co- Uma representação gráfica das ta- cando em SALVAR ou fechando a ja-
cê deseja salvar as alterações ne- mo campos do tipo int. belas e seus relacionamentos é mos- nela. Dê um nome para esse diagra-
la. Clique YES. Agora, clique com o botão di- trada. Selecione a coluna de chave no ma — no nosso caso, diagrama.
reito na janela de campos e esco- cliente (ID_cliente) com o mouse e ar-
5 . TABELA DE FOTOS lha a opção indexes/Key. Clique raste até a coluna id_clientes. A jane- 8. IMPORTANDO DADOS
Chegou a vez da tabela Pictures. Es- no botão ADD. Selecione o índice la Table and Columns será mostrada. Neste ponto, já podemos utilizar es-
sa tabela terá informações Exif so- criado. Em Columns, escolha pri- Isso fará com que o sistema gere sa base. Primeiro precisamos cadas-
bre as fotos que você deseja guar- meiro a coluna id_fotografos, uma relação entre a tabela clientes trar alguns dados nela. Usamos um
dar. O padrão Exif é bastante com- abrindo a janela com a opção ".....". usando o campo id_clientes para a programa de extração de dados Exif
pleto, mas não queremos todas es- Na coluna Identity (name) dê o no- tabela Pictures. Essa relação é de um
Relacionamento completo:
sas informações. Como ilustração, me desse índice. Vamos chamá-lo de para muitos, ou seja, de um cliente
clientes, fotógrafos e pictures
usaremos o fabricante da câmera, indice_fotografos. Você notará que exis- para várias fotos. Sacou?
o seu modelo, a data e a hora da fo- te uma coluna chamada is unique? Man- Clique OK. Faça o mesmo
to e a sua largura e altura. Defina tenha a opção NO. Por quê? Bem, que- para a tabela fotografos,
todos os campos (exceto a chave remos que esse valor se repita para ca- usando a coluna id_foto-
primária) como varchar com o ta- da foto que pertença a um fotógrafo. grafo, e para a tabela pic-
manho desejado. Defina uma cha- Caso selecionássemos a opção YES, o tures usando a coluna
ve primária chamada Id_Pictures. banco de dados evitaria que existisse Id_fotógrafos. Os relacio-
Nesse caso, devemos permitir nulls registro contendo valores duplicados. namentos estão feitos.
nos outros campos, pois você po- Crie outro índice igual para clientes que A identificação de ca-
de não ter alguma das informações. se chamará indice_clientes. da uma dessas relações
Normalmente, todas as câmeras é feita por uma linha que
têm, mas se você desejar gravar 7. TABELA COM TABELA une os campos de índi-
uma foto avulsa será possível fazê- Estamos prontos para relacionar as ces e cada lado contém
lo sem dispor de algumas delas. tabelas. Existem vários modos de se a forma dessa relação,

92 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 93
089_CADASTROFOTO_EXIF 26/02/2006 00:26 Page 92

TUTORIAL/CADASTRO DE FOTOS TUTORIAL/CADASTRO DE FOTOS

6. RELACIONAR fazer isso. Vamos pelo mais fácil e um para um, um para muitos ou
A tabela não está comple- visual. No banco de dados Fotos, cli- muitos para muitos. No nosso ca-
ta ainda. Você precisa re- que com o botão direito em Data- so, você verá uma chave de um dos
lacioná-la aos fotógrafos base Diagrams na janela da esquer- lados da relação e um símbolo de
e aos clientes. Lembre-se da. Clique em database diagrams. O infinito do outro lado, o que signi-
que, em um banco de da- sistema irá avisar que esse banco fica uma relação de um para mui-
dos relacional, essa rela- de dados não tem um ou mais ob- tos.
ção é importante para des- jetos necessários para utilizar o re- Quando você executar consultas
cobrir as fotos que perten- curso de diagramas. Clique em YES. que contenham as tabelas clientes e
cem a um fotógrafo ou Selecione a opção New Databa- pictures ou fotografos e pictures, as
que fotos são de quais se Diagram. Uma janela chamada informações relacionadas de ambas
clientes. Primeiro, vamos Add Tables será mostrada. Selecio- serão trazidas automaticamente. Por
Índice: definindo a chave de definir as chaves de pesquisa para os ne uma tabela e clique no botão exemplo, ao pesquisar um fotógrafo,
pesquisa para os fotógrafos
fotógrafos e clientes nessa tabela. Elas Add. Faça isso com todas elas. Ao você encontrará todas as fotos que
serão chamadas de id_fotografos e final, clique em Close. ele produziu. Salve o diagrama, cli-
nela aparecerá perguntando se vo- id_clientes, respectivamente. Crie co- Uma representação gráfica das ta- cando em SALVAR ou fechando a ja-
cê deseja salvar as alterações ne- mo campos do tipo int. belas e seus relacionamentos é mos- nela. Dê um nome para esse diagra-
la. Clique YES. Agora, clique com o botão di- trada. Selecione a coluna de chave no ma — no nosso caso, diagrama.
reito na janela de campos e esco- cliente (ID_cliente) com o mouse e ar-
5 . TABELA DE FOTOS lha a opção indexes/Key. Clique raste até a coluna id_clientes. A jane- 8. IMPORTANDO DADOS
Chegou a vez da tabela Pictures. Es- no botão ADD. Selecione o índice la Table and Columns será mostrada. Neste ponto, já podemos utilizar es-
sa tabela terá informações Exif so- criado. Em Columns, escolha pri- Isso fará com que o sistema gere sa base. Primeiro precisamos cadas-
bre as fotos que você deseja guar- meiro a coluna id_fotografos, uma relação entre a tabela clientes trar alguns dados nela. Usamos um
dar. O padrão Exif é bastante com- abrindo a janela com a opção ".....". usando o campo id_clientes para a programa de extração de dados Exif
pleto, mas não queremos todas es- Na coluna Identity (name) dê o no- tabela Pictures. Essa relação é de um
Relacionamento completo:
sas informações. Como ilustração, me desse índice. Vamos chamá-lo de para muitos, ou seja, de um cliente
clientes, fotógrafos e pictures
usaremos o fabricante da câmera, indice_fotografos. Você notará que exis- para várias fotos. Sacou?
o seu modelo, a data e a hora da fo- te uma coluna chamada is unique? Man- Clique OK. Faça o mesmo
to e a sua largura e altura. Defina tenha a opção NO. Por quê? Bem, que- para a tabela fotografos,
todos os campos (exceto a chave remos que esse valor se repita para ca- usando a coluna id_foto-
primária) como varchar com o ta- da foto que pertença a um fotógrafo. grafo, e para a tabela pic-
manho desejado. Defina uma cha- Caso selecionássemos a opção YES, o tures usando a coluna
ve primária chamada Id_Pictures. banco de dados evitaria que existisse Id_fotógrafos. Os relacio-
Nesse caso, devemos permitir nulls registro contendo valores duplicados. namentos estão feitos.
nos outros campos, pois você po- Crie outro índice igual para clientes que A identificação de ca-
de não ter alguma das informações. se chamará indice_clientes. da uma dessas relações
Normalmente, todas as câmeras é feita por uma linha que
têm, mas se você desejar gravar 7. TABELA COM TABELA une os campos de índi-
uma foto avulsa será possível fazê- Estamos prontos para relacionar as ces e cada lado contém
lo sem dispor de algumas delas. tabelas. Existem vários modos de se a forma dessa relação,

92 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 93
089_CADASTROFOTO_EXIF 26/02/2006 00:27 Page 94

TUTORIAL/CADASTRO DE FOTOS TUTORIAL/CADASTRO DE FOTOS

que o SQL Express não de índice da tabela. Pri-


tem esse tipo de utilitá- meiro a chave primária
rio. A outra é conseguir (Id_pictures). Selecione-a
algum pacote que exe- no campo Field. No cam-
cute essa função. O EMS po Generator Step na ja-
Data Import for SQL nela Field Tunning digite
Server, da EMS Electro- 1. Isso significa que para
nic Microsystems, per- cada registro um novo ín-
mite importar dados do dice adicionado de um
formato CSV para um será gerado. Como nos-
banco de dados SQL sa base é virgem, ele co-
Server. Faça o download meçará do 1, pois é a so-
EasyExif: gerando informações de da versão de teste em Importação: escolha o arquivo com ma de Generator Value
fotografias em arquivos CSV os dados clicando em ADD FILE
(www.info.abril.com.br/down que é 0 mais o Generator Step que
load/4458.shtml). é 1. Nas próximas vezes, você terá
em lote para gerar as informações Esse utilitário tem um assisten- No próximo passo escolhemos o que descobrir qual é o próximo nú-
das fotos, o EasyExif (www.info. te que o leva passo a passo pelo arquivo com os dados, clicando no mero a ser colocado em Generator
abril.com.br/download/4457. processo. O primeiro é a conexão botão ADD FILE. Uma janela cha- Value para a importação acontecer
shtml), de Kevin Hu. O programa ge- com a base de dados. Isso depen- mada Select Table é mostrada. Se- com sucesso, pois a chave primária
ra arquivos CSV de cada imagem. de da instalação que foi feita no lecione o banco de dados Fotos, e não pode ser duplicada.
Abra o programa e selecione a op- SQL Express. No nosso caso, esco- a tabela dbo.pictures. Clique OK e
ção Save Directory as CSV Text no me- lhemos Remote, preenchemos o depois em NEXT. 10 . ID DO FOTÓGRAFO
nu Save Exif. Uma janela-padrão do nome da máquina e a autentica- Agora mude o delimitador para Vamos gerar o valor de id_fotogra-
Windows permitirá selecionar o dire- ção configurada foi a do Windows. vírgula no campo Delimiter. Na ja- fos. Temos dois registros e quere-
tório onde se encontram as imagens. Clique no botão NEXT. nela Field, selecione o campo Ca- mos que o primeiro seja do fotó-
O sistema lerá as informações meraManufacture. Escolha na jane-
de todas as fotos existentes e, pa- Data Import: conecta-se ao banco e la Columns a coluna que correspon- Campos de índice: geração
ra cada uma, gerará um arquivo importa as informações de a esse campo no banco de da- automática dos campos da tabela
no formato CSV (separa- dos. No nosso caso, a co-
do por vírgulas), em um luna 2. Faça o mesmo pa-
diretório chamado Exif- ra os campos CameraMo-
data dentro da pasta de del, DateTime, Width e
suas fotos. Junte todos Lenght com as colunas 4,
os arquivos gerados em 16, 54 e 55 respectiva-
um único para importa- mente. Clique em NEXT.
ção na base de dados.
Existem duas manei- 9. CAMPOS
ras de se fazer isso. A pri- DE ÍNDICE
meira é criar um progra- Vamos tratar da geração
ma de importação, já automática dos campos

94 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 95
089_CADASTROFOTO_EXIF 26/02/2006 00:27 Page 94

TUTORIAL/CADASTRO DE FOTOS TUTORIAL/CADASTRO DE FOTOS

que o SQL Express não de índice da tabela. Pri-


tem esse tipo de utilitá- meiro a chave primária
rio. A outra é conseguir (Id_pictures). Selecione-a
algum pacote que exe- no campo Field. No cam-
cute essa função. O EMS po Generator Step na ja-
Data Import for SQL nela Field Tunning digite
Server, da EMS Electro- 1. Isso significa que para
nic Microsystems, per- cada registro um novo ín-
mite importar dados do dice adicionado de um
formato CSV para um será gerado. Como nos-
banco de dados SQL sa base é virgem, ele co-
Server. Faça o download meçará do 1, pois é a so-
EasyExif: gerando informações de da versão de teste em Importação: escolha o arquivo com ma de Generator Value
fotografias em arquivos CSV os dados clicando em ADD FILE
(www.info.abril.com.br/down que é 0 mais o Generator Step que
load/4458.shtml). é 1. Nas próximas vezes, você terá
em lote para gerar as informações Esse utilitário tem um assisten- No próximo passo escolhemos o que descobrir qual é o próximo nú-
das fotos, o EasyExif (www.info. te que o leva passo a passo pelo arquivo com os dados, clicando no mero a ser colocado em Generator
abril.com.br/download/4457. processo. O primeiro é a conexão botão ADD FILE. Uma janela cha- Value para a importação acontecer
shtml), de Kevin Hu. O programa ge- com a base de dados. Isso depen- mada Select Table é mostrada. Se- com sucesso, pois a chave primária
ra arquivos CSV de cada imagem. de da instalação que foi feita no lecione o banco de dados Fotos, e não pode ser duplicada.
Abra o programa e selecione a op- SQL Express. No nosso caso, esco- a tabela dbo.pictures. Clique OK e
ção Save Directory as CSV Text no me- lhemos Remote, preenchemos o depois em NEXT. 10 . ID DO FOTÓGRAFO
nu Save Exif. Uma janela-padrão do nome da máquina e a autentica- Agora mude o delimitador para Vamos gerar o valor de id_fotogra-
Windows permitirá selecionar o dire- ção configurada foi a do Windows. vírgula no campo Delimiter. Na ja- fos. Temos dois registros e quere-
tório onde se encontram as imagens. Clique no botão NEXT. nela Field, selecione o campo Ca- mos que o primeiro seja do fotó-
O sistema lerá as informações meraManufacture. Escolha na jane-
de todas as fotos existentes e, pa- Data Import: conecta-se ao banco e la Columns a coluna que correspon- Campos de índice: geração
ra cada uma, gerará um arquivo importa as informações de a esse campo no banco de da- automática dos campos da tabela
no formato CSV (separa- dos. No nosso caso, a co-
do por vírgulas), em um luna 2. Faça o mesmo pa-
diretório chamado Exif- ra os campos CameraMo-
data dentro da pasta de del, DateTime, Width e
suas fotos. Junte todos Lenght com as colunas 4,
os arquivos gerados em 16, 54 e 55 respectiva-
um único para importa- mente. Clique em NEXT.
ção na base de dados.
Existem duas manei- 9. CAMPOS
ras de se fazer isso. A pri- DE ÍNDICE
meira é criar um progra- Vamos tratar da geração
ma de importação, já automática dos campos

94 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 95
089_CADASTROFOTO_EXIF 26/02/2006 00:28 Page 96

TUTORIAL/CADASTRO DE FOTOS

Resultado: data e hora


de cada imagem

Clique NEXT nos


pró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 PESQUISA
Vamos verificar se
grafo que está cadastrado em nos- nossas informações estão corretas
sa base com o índice 1 e o segundo fazendo uma consulta. Na janela
do fotógrafo com índice 2. Object Explorer, clique com o bo-
Selecione id_fotografos na jane- tão direito do mouse no banco Fo-
la Fields e, em Fields Tunning, co- tos e selecione a opção New Query.
loque Generator Value 0 e Genera- Queremos primeiro descobrir to-
tor Step 1. Isso fará com que o pri- dos as fotos do cliente 1. Clique com
meiro registro seja do fotógrafo com o botão direito na janela de Query e
índice de número 1 (campo com o selecione Query Designer. Adicione
valor 1) e o segundo registro seja as Tabelas Cliente e Pictures. Na co-
do fotógrafo 2 (campo com valor 2). luna Column_Name, selecione No-
me_Cliente da lista. Nas demais, se-
11. DADOS DO CLIENTE lecione DateTime, CameraModel e
Agora vamos gerar as informações Id_clientes. Em filter, na linha de
de cliente. Queremos que todas as id_clientes, digite 1. O próprio Query
fotos pertençam ao mesmo clien- Designer gerou um comando SQL pa-
te, o que tem índice 1 em nossa ta- ra ser executado. Clique no botão OK.
bela de clientes. Para tanto, sele- O comando SQL gerado está pron-
cione o campo id_clientes na jane- to para execução. Clique com o bo-
la Fields e digite o número 1 em tão direito na janela Query nova-
Constant Values na janela Fields mente e escolha EXECUTE.
Tunning. Todos os registros terão o Eis o resultado de sua pesquisa,
valor 1 no campo de índice id_clien- a data e hora de cada foto e o mo-
tes pertencendo assim ao mesmo delo da câmera utilizado e para qual
cliente. Clique no botão NEXT. cliente isso foi feito.

96 < C O L E Ç Ã O I N F O
097_CLASSIFICADOSWEB_POSTGRES 26/02/2006 00:29 Page 97

TUTORIAL/POSTGRESQL

E-MAIL FALSO
NÃO ENTRA
CONSTRUA UM CADASTRO DE ENDEREÇOS VÁLIDOS
AUTOMATIZANDO O PEDIDO DE CONFIRMAÇÃO
POR HELIO SILVA

ada mais chato e inopor- a assinante da newsletter um pedido

N tuno do que descobrir na


sua caixa postal uma en-
xurrada de newsletters
que você não assinou. Tudo porque al-
de confirmação na forma de um clique
em um hyperlink. Quando esse hyper-
link for acionado, o webmaster terá
certeza de que quem solicitou a assi-
guém cadastrou seu e-mail por brin- natura é o dono do endereço. É isso
cadeira ou mesmo por maldade. Para que faremos no tutorial a seguir. Para
o webmaster, essa situação também é segui-lo, será necessário um servidor
desagradável porque recebe reclama- web com PHP 4.x, banco de dados Post-
ções e é taxado de spammer. A saída greSQL 8.1.2 e um provedor de aces-
para o site é criar um cadastro de e- so à internet que aceite conexões SMTP
mails válidos, enviando ao candidato para a transmissão de e-mails.

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

C O L E Ç Ã O I N F O > 97
097_CLASSIFICADOSWEB_POSTGRES 26/02/2006 00:38 Page 98

TUTORIAL/POSTGRESQL

1. A TABELA DE E-MAILS você precisa primeiro fazer o down-


O primeiro passo é criar a tabela load do arquivo newsletter.zip no en-
com os e-mails no PostgreSQL. Abra dereço ftp://ftp.info.abril.com.br/
o pgAdmin, clique no botão SQL e newsletter.zip e descompactá-lo na
crie a tabela com o comando: pasta que o servidor web comparti-
CREATE TABLE tb_assinantes lha com a rede. Ao descompactar, vo-
( cê terá os arquivos pega_email.php,
email varchar(80) NOT NULL, grava_email.php e confirma_email.php.
ip_assinatura varchar(15), O pega_email.php é basicamente
ip_confirmacao varchar(15), um arquivo HTML com um formulá-
status varchar(10), rio para que o usuário entre com seus
data_assinatura timestamp, dados. Esse formulário acionará nos-
data_confirmacao timestamp, so script em PHP, que gravará os da-
hash varchar(50) dos preliminarmente e enviará um e-
) mail para o provável novo assinante.
No nosso exemplo, o arquivo pega_
2. O FORMULÁRIO email.php recebe o endereço de e-
Agora vamos criar o formulário pa- mail e repassa ao script seguinte, o
ra o usuário se cadastrar. Para isso, grava_email.php.

Formulário: HTML aciona script PHP que recebe o e-mail e repassa a outro script

98 < C O L E Ç Ã O I N F O
097_CLASSIFICADOSWEB_POSTGRES 26/02/2006 00:31 Page 99

TUTORIAL/POSTGRESQL

Resultado: e-mails válidos identificados com endereço IP e status de confirmação

3 . PEDIDO DE CONFIRMAÇÃO Por fim, o programa envia um e-


Nosso segundo script, o grava_ mail com um hyperlink para o nos-
email.php, salva o endereço de e- so próximo script, o confirma_
mail que está solicitando a assinatu- email.php, para que o assinante con-
ra da newsletter e também grava a firme sua requisição.
data e o número IP usado na cone- Como essa resposta só será pos-
xão. Caso haja alguém fazendo o ca- sível porque a informação chegou
dastramento indevido do usuário e ao assinante através do endereço
este queira descobrir quem foi, es- de e-mail digitado inicialmente, fi-
ses dados serão de grande valia. ca claro que quem quer se inscre-
É importante lembrar que nesta ver é o detentor da conta.
fase do processo o status do assinan-
te é gravado como INATIVO. Enquan- 4. ATIVANDO O ASSINANTE
to permanecer assim, ele não deve O confirma_email.php, acionado pe-
ser importunado por nenhum outro lo clique do nosso futuro assinante,
tipo de mensagem que não seja o pe- irá tomar as providências finais. Pri-
dido de confirmação da assinatura. meiro, ele altera o status do assinan-
É gerado e gravado também um te de INATIVO para ATIVO. Note que
código adicional (hash) para iden- também gravamos o número IP e a
tificar o usuário. Quando ele pedir data de confirmação da assinatura.
a confirmação, esse código impedi- Em caso de haver reclamações, essas
rá que uma pessoa confirme a as- informações também ajudarão a es-
sinatura de outra. clarecer dúvidas.

C O L E Ç Ã O I N F O > 99
100_RAILS 26/02/2006 00:39 Page 100

TUTORIAL/ATIVO FIXO TUTORIAL/ATIVO FIXO

O RAILS FAZ
cativo simples de gerenciamento de como o MySQL. Baixe o SQLite 3 no
ativo fixo com banco de dados endereço www.info.abril.com.br/
SQLite 3. As instruções são para Win- download/4358.shtml. Depois de

MAIS RÁPIDO
dows XP. Mas os programas usados descompactar o arquivo zip, você
têm também versões para Linux. terá um programa executável e uma
DLL. Como o SQLite não tem insta-
ACELERE O DESENVOLVIMENTO, CRIANDO UM APLICATIVO 1 . INSTALAÇÃO DO RUBY lador, tudo o que você tem a fazer
DE CONTROLE DE PATRIMÔNIO COM O RUBY ON RAILS Faça o download do instalador do é copiar esses dois arquivos para o
POR TONI CAVALHEIRO Ruby on Rails no endereço www. diretório Windows\System32.
info.abril.com.br/download/4357.
shtml. Inicie a instalação e mante- 3. RUBY ON RAILS
nha os padrões sugeridos pelo pro- Agora, vamos instalar o Rails e a bi-
grama. Selecione todos os itens op- blioteca que faz o acesso ao SQLite
cionais. Mantenha também o dire- 3. O micro deve estar conectado à
tório padrão, que é o C:\Ruby. Pa- internet para que o instalador faça
ra testar o software, abra o Prompt o download de componentes adi-
de Comando do Windows e digite cionais. No Prompt de Comando do
esse comando (tecle Enter depois Windows, digite:
de cada comando): gem install rails
ruby –v O passo seguinte é instalar o supor-
Deve aparecer uma mensagem com te ao SQLite 3. Digite:
a versão do Ruby. gem install sqlite3-ruby

4 . AMBIENTE DA APLICAÇÃO
Na hora de criar uma aplicação, é
preciso separar scripts, logs, confi-
gurações e outros componentes nu-
ma estrutura de diretórios. O Rails
faz isso de forma automática. No
Aplicativo pronto: sistema de Ativo Fixo disponível na intranet da empresa
Prompt de Comando, digite:
Ruby On Rails vem dan- pouco com o Rails para perceber rails c:\data\web\ativofixo\

O do o que falar entre os


desenvolvedores para a
web. Programadores ex-
perientes dizem que essa ferramen-
que operações corriqueiras em ban-
cos de dados podem ser implemen-
tadas com incrível rapidez. O Rails
é uma biblioteca, baseada na lin- 2
Instalação: marque todos os opcionais

. BANCO DE DADOS
Abra o Explorer e navegue até a
pasta ativofixo que definimos. Vo-
cê verá a estrutura de diretórios
criada pelo Rails. O diretório app é
ta permite acelerar o desenvolvi- guagem Ruby, que permite a cria- Vamos prosseguir instalando o SQLite. o local onde ficarão os arquivos do
mento em até dez vezes em compa- ção de aplicações para a web asso- Esse gerenciador de bancos com- programa. O script é a pasta que
ração com linguagens mais tradicio- ciadas a bancos de dados. Para mos- pacto é útil para testes e desenvol- contém os arquivos de apoio. Os di-
nais. Mesmo que haja exagero nes- trar como se desenvolve usando o vimento. Para uso em produção, po- retórios helpers e views servem,
sa afirmação, basta trabalhar um Ruby on Rails, vamos criar um apli- deria ser escolhido outro software, respectivamente, para armazenar

100 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 101


100_RAILS 26/02/2006 00:39 Page 100

TUTORIAL/ATIVO FIXO TUTORIAL/ATIVO FIXO

O RAILS FAZ
cativo simples de gerenciamento de como o MySQL. Baixe o SQLite 3 no
ativo fixo com banco de dados endereço www.info.abril.com.br/
SQLite 3. As instruções são para Win- download/4358.shtml. Depois de

MAIS RÁPIDO
dows XP. Mas os programas usados descompactar o arquivo zip, você
têm também versões para Linux. terá um programa executável e uma
DLL. Como o SQLite não tem insta-
ACELERE O DESENVOLVIMENTO, CRIANDO UM APLICATIVO 1 . INSTALAÇÃO DO RUBY lador, tudo o que você tem a fazer
DE CONTROLE DE PATRIMÔNIO COM O RUBY ON RAILS Faça o download do instalador do é copiar esses dois arquivos para o
POR TONI CAVALHEIRO Ruby on Rails no endereço www. diretório Windows\System32.
info.abril.com.br/download/4357.
shtml. Inicie a instalação e mante- 3. RUBY ON RAILS
nha os padrões sugeridos pelo pro- Agora, vamos instalar o Rails e a bi-
grama. Selecione todos os itens op- blioteca que faz o acesso ao SQLite
cionais. Mantenha também o dire- 3. O micro deve estar conectado à
tório padrão, que é o C:\Ruby. Pa- internet para que o instalador faça
ra testar o software, abra o Prompt o download de componentes adi-
de Comando do Windows e digite cionais. No Prompt de Comando do
esse comando (tecle Enter depois Windows, digite:
de cada comando): gem install rails
ruby –v O passo seguinte é instalar o supor-
Deve aparecer uma mensagem com te ao SQLite 3. Digite:
a versão do Ruby. gem install sqlite3-ruby

4 . AMBIENTE DA APLICAÇÃO
Na hora de criar uma aplicação, é
preciso separar scripts, logs, confi-
gurações e outros componentes nu-
ma estrutura de diretórios. O Rails
faz isso de forma automática. No
Aplicativo pronto: sistema de Ativo Fixo disponível na intranet da empresa
Prompt de Comando, digite:
Ruby On Rails vem dan- pouco com o Rails para perceber rails c:\data\web\ativofixo\

O do o que falar entre os


desenvolvedores para a
web. Programadores ex-
perientes dizem que essa ferramen-
que operações corriqueiras em ban-
cos de dados podem ser implemen-
tadas com incrível rapidez. O Rails
é uma biblioteca, baseada na lin- 2
Instalação: marque todos os opcionais

. BANCO DE DADOS
Abra o Explorer e navegue até a
pasta ativofixo que definimos. Vo-
cê verá a estrutura de diretórios
criada pelo Rails. O diretório app é
ta permite acelerar o desenvolvi- guagem Ruby, que permite a cria- Vamos prosseguir instalando o SQLite. o local onde ficarão os arquivos do
mento em até dez vezes em compa- ção de aplicações para a web asso- Esse gerenciador de bancos com- programa. O script é a pasta que
ração com linguagens mais tradicio- ciadas a bancos de dados. Para mos- pacto é útil para testes e desenvol- contém os arquivos de apoio. Os di-
nais. Mesmo que haja exagero nes- trar como se desenvolve usando o vimento. Para uso em produção, po- retórios helpers e views servem,
sa afirmação, basta trabalhar um Ruby on Rails, vamos criar um apli- deria ser escolhido outro software, respectivamente, para armazenar

100 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 101


100_RAILS 26/02/2006 00:40 Page 102

TUTORIAL/ATIVO FIXO TUTORIAL/ATIVO FIXO

campos e recursos. Essa aplicação uma vez que os dois outros bancos scaffold :af
usa as quatro operações básicas de não foram criados ainda. Mas é bom end
um banco de dados: consulta, edi- deixar o arquivo correto. Vamos reiniciar o servidor. Clique
ção, inclusão e exclusão. A primei- no Prompt de Comando para man-
ra coisa a fazer é criar o banco de 8 . MODELO E CONTROLADOR tê-lo em foco no Windows e tecle
dados no SQLite 3. No Prompt de No Ruby on Rails, cada tabela é Ctrl+C para parar o servidor. Em se-
Comando do Windows, digite: descrita por um modelo. Vamos guida, reinicie-o com o comando:
sqlite3 db\ativodev.db criar um modelo chamado af (ini- ruby script\server
Depois que o prompt do SQLite 3 ciais de Ativo Fixo) que refletirá a Abra o navegador e vá a este en-
Tela inicial: o Ruby instalado e
pronto para usar aparecer, digite: tabela que acabamos de definir. dereço: http://localhost:3000
CREATE TABLE afs (id INTEGER No Prompt de Comando do Win- Você verá uma aplicação com re-
funções auxiliares e layouts para o NOT NULL PRIMARY KEY, dows, digite: cursos de consulta, edição, exclu-
site. Folhas de estilos CSS ficam na descricao VARCHAR(100) NOT ruby script\generate model af são e inclusão. Note que usamos
pasta public\stylesheets. NULL, Em seguida, vamos criar um con- uma única linha de código (scaffold
valor_aquisicao INT NOT NULL, trolador para o modelo af. O con- :af) para criá-la.
5. SERVIDOR WEB fornecedor VARCHAR(255) NULL, trolador é o módulo básico dos apli-
O Ruby on Rails inclui um minisser- comprador VARCHAR(30) NULL, cativos do Rails. Este é o comando: 10 . PERSONALIZAÇÃO
vidor web que pode ser usado no tempo_depreciacao INT NULL); ruby script\generate controller afs Vejamos como personalizar o layout
desenvolvimento. Para não confli- Note que nosso modelo chama- da aplicação. Esse processo é feito
tar com outros servidores que você 7 . ACESSO AOS DADOS se af, mas o controlador é chama- por meio de dois arquivos rhtml, um
possa ter na máquina (como Apa- O próximo passo é configurar o Rails do afs. Isso ocorre porque o Ruby de visualização (conhecido por view)
che ou IIS), ele vem configurado pa- para acessar esse banco de dados. on Rails trabalha com a língua in- e outro de layout. Além disso, é pre-
ra funcionar na porta 3000. No No diretório ativofixo, encontre a glesa, colocando as palavras no plu- ciso fazer algumas modificações no
Prompt de Comando, digite os se- pasta config e, dentro dela, o arqui- ral. Se você criar um modelo Per- controlador principal para carregar
guintes comandos para rodá-lo: vo database.yml. Abra-o num editor son, por exemplo, ele irá procurar os dados para uma variável tempo-
cd c:\data\web\ativofixo de textos e modifique suas configu- por uma tabela chamada People, rária. Vamos começar personalizan-
ruby script\server rações para o seguinte: plural de Person em inglês. do o controlador. Abra o arquivo afs
Abra o browser e acesse o seguin- development: num editor de texto e modifique-o
te endereço: http://localhost:3000 adapter:sqlite3 9 . SCAFFOLDING para que fique assim:
Você deve ver uma página com o tí- dbfile: db\ativodev.db O último passo antes de colocar sua
tulo Welcome Aboard e informações test: aplicação para funcionar é associar
sobre o Ruby on Rails. adapter:sqlite3 um recurso chamado scaffold ao
dbfile: db\ativotest.db controlador. Ele adiciona funções
6 . ATIVO FIXO production: de visualização, edição, inclusão e
Nos passos anteriores, especifica- adapter:sqlite3 exclusão de dados. Localize o ar-
mos uma aplicação chamada Ativo dbfile: db\ativoprod.db quivo afs_controller.rd. Abra-o num
Fixo. É uma versão simples do sis- Todo o restante do arquivo pode editor de textos e adicione o co-
tema de controle patrimonial de uma ser apagado, já que não terá utilida- mando scaffold, assim:
empresa. Depois que ela estiver de em nosso tutorial. Na verdade, só class AfsController < Arquivo list.rhtml: código
modificado no editor de texto
pronta, você pode adicionar outros usaremos o ambiente development, ApplicationController

102 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 103


100_RAILS 26/02/2006 00:40 Page 102

TUTORIAL/ATIVO FIXO TUTORIAL/ATIVO FIXO

campos e recursos. Essa aplicação uma vez que os dois outros bancos scaffold :af
usa as quatro operações básicas de não foram criados ainda. Mas é bom end
um banco de dados: consulta, edi- deixar o arquivo correto. Vamos reiniciar o servidor. Clique
ção, inclusão e exclusão. A primei- no Prompt de Comando para man-
ra coisa a fazer é criar o banco de 8 . MODELO E CONTROLADOR tê-lo em foco no Windows e tecle
dados no SQLite 3. No Prompt de No Ruby on Rails, cada tabela é Ctrl+C para parar o servidor. Em se-
Comando do Windows, digite: descrita por um modelo. Vamos guida, reinicie-o com o comando:
sqlite3 db\ativodev.db criar um modelo chamado af (ini- ruby script\server
Depois que o prompt do SQLite 3 ciais de Ativo Fixo) que refletirá a Abra o navegador e vá a este en-
Tela inicial: o Ruby instalado e
pronto para usar aparecer, digite: tabela que acabamos de definir. dereço: http://localhost:3000
CREATE TABLE afs (id INTEGER No Prompt de Comando do Win- Você verá uma aplicação com re-
funções auxiliares e layouts para o NOT NULL PRIMARY KEY, dows, digite: cursos de consulta, edição, exclu-
site. Folhas de estilos CSS ficam na descricao VARCHAR(100) NOT ruby script\generate model af são e inclusão. Note que usamos
pasta public\stylesheets. NULL, Em seguida, vamos criar um con- uma única linha de código (scaffold
valor_aquisicao INT NOT NULL, trolador para o modelo af. O con- :af) para criá-la.
5. SERVIDOR WEB fornecedor VARCHAR(255) NULL, trolador é o módulo básico dos apli-
O Ruby on Rails inclui um minisser- comprador VARCHAR(30) NULL, cativos do Rails. Este é o comando: 10 . PERSONALIZAÇÃO
vidor web que pode ser usado no tempo_depreciacao INT NULL); ruby script\generate controller afs Vejamos como personalizar o layout
desenvolvimento. Para não confli- Note que nosso modelo chama- da aplicação. Esse processo é feito
tar com outros servidores que você 7 . ACESSO AOS DADOS se af, mas o controlador é chama- por meio de dois arquivos rhtml, um
possa ter na máquina (como Apa- O próximo passo é configurar o Rails do afs. Isso ocorre porque o Ruby de visualização (conhecido por view)
che ou IIS), ele vem configurado pa- para acessar esse banco de dados. on Rails trabalha com a língua in- e outro de layout. Além disso, é pre-
ra funcionar na porta 3000. No No diretório ativofixo, encontre a glesa, colocando as palavras no plu- ciso fazer algumas modificações no
Prompt de Comando, digite os se- pasta config e, dentro dela, o arqui- ral. Se você criar um modelo Per- controlador principal para carregar
guintes comandos para rodá-lo: vo database.yml. Abra-o num editor son, por exemplo, ele irá procurar os dados para uma variável tempo-
cd c:\data\web\ativofixo de textos e modifique suas configu- por uma tabela chamada People, rária. Vamos começar personalizan-
ruby script\server rações para o seguinte: plural de Person em inglês. do o controlador. Abra o arquivo afs
Abra o browser e acesse o seguin- development: num editor de texto e modifique-o
te endereço: http://localhost:3000 adapter:sqlite3 9 . SCAFFOLDING para que fique assim:
Você deve ver uma página com o tí- dbfile: db\ativodev.db O último passo antes de colocar sua
tulo Welcome Aboard e informações test: aplicação para funcionar é associar
sobre o Ruby on Rails. adapter:sqlite3 um recurso chamado scaffold ao
dbfile: db\ativotest.db controlador. Ele adiciona funções
6 . ATIVO FIXO production: de visualização, edição, inclusão e
Nos passos anteriores, especifica- adapter:sqlite3 exclusão de dados. Localize o ar-
mos uma aplicação chamada Ativo dbfile: db\ativoprod.db quivo afs_controller.rd. Abra-o num
Fixo. É uma versão simples do sis- Todo o restante do arquivo pode editor de textos e adicione o co-
tema de controle patrimonial de uma ser apagado, já que não terá utilida- mando scaffold, assim:
empresa. Depois que ela estiver de em nosso tutorial. Na verdade, só class AfsController < Arquivo list.rhtml: código
modificado no editor de texto
pronta, você pode adicionar outros usaremos o ambiente development, ApplicationController

102 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 103


100_RAILS 26/02/2006 00:41 Page 104

TUTORIAL/ATIVO FIXO

class AfsController < quivo chamado list.rhtml. Ele rece-


ApplicationController be esse nome de acordo com a de-
scaffold :af finição no controlador, logo depois
layout “default” do comando def. Confira o código:
def list <table border=“1” cellpadding
@entries = Af.find_all nil, =“4” cellspacing="0” width
“descricao” =“90%”>
end <tr>
end <th>Descrição</th>
<th>Valor de aquisição</th>
11. LAYOUT <th>Tempo de depreciação</th>
Agora, na pasta app\views\layouts, <th colspan=“3”>Ações</th>
crie um arquivo de texto chamado </tr>
default.rhtml. Esse arquivo deve ter <% @entries.each do |entry| %>
o seguinte conteúdo: <tr>
<html> <td><%= entry.descricao %></td>
<head> <td><%= entry.valor_aquisicao
<title>Ativo Fixo</title> %></td>
</head> <td><%= entry.tempo_depreciacao
<body> %></td>
<h1>Lista de patrimônio</h1> <td><%= link_to “Exibir”,
<%= @content_for_layout %> :action =>
</body> “show”, :id => entry.id %></td>
</html> <td><%= link_to “Editar”,
:action =>
12. VISUALIZAÇÃO “edit”, :id => entry.id %></td>
Vamos, agora, criar a visualização, o <td><%= link_to “Excluir”,
código-fonte que irá controlar a exi- :action =>
bição dos dados. É aqui que defini- “destroy”, :id => entry.id %></td>
mos a aparência do site. Vá para a </tr>
pasta \app\views\afs\ e crie um ar- <% end %>
</table
<p><%= link_to “Novo”, :action =>
“new” FF %></p>
Isso é tudo o que você precisa fazer
para adicionar uma exibição ao aplica-
tivo. Ainda é possível incluir mais cam-
pos e aplicar uma formatação mais ela-
Aplicativo no ar: ainda sem a borada à página, da mesma forma co-
formatação definitiva
mo fizemos na tela inicial deste tutorial.

104 < C O L E Ç Ã O I N F O
105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 105

TUTORIAL/FIREBIRD

CONTROLE OS
SEUS LIVROS
PROGRAMAS EM PHP DISCRIMINAM O STATUS DO TÍTULO,
SE EMPRESTADO, DISPONÍVEL OU ENCOMENDADO
POR HELIO SILVA

uantas vezes você em- ta de administração. Com apenas dois

Q prestou um livro e se es-


queceu para quem? E
quantas vezes o amigo
que tomou o livro emprestado se
programas em PHP faremos a admi-
nistração das informações.

1. O BANCO
lembrou de devolver? Nesses casos Instalados os programas necessários,
em que a memória não passa de uma abra o IBExpert e acione o menu Da-
vaga lembrança, o jeito é montar um tabase > Create Database. Crie o ban-
banco de dados de sua biblioteca, co de dados com o nome Biblioteca e
com direito ao controle dos títulos clique no botão OK.
emprestados. É o que faremos nes- Será necessário registrar o banco
te tutorial. Para acompanhá-lo, vo- no IBExpert. Assim, no campo data-
cê vai precisar de servidor web com base alias, digite o nome Biblioteca e,
PHP 4.x, banco de dados Firebird em seguida, acione no botão Register.
1.5.3 (www.info.abril.com.br/ (Clique no ícone do lado esquerdo
download/2108.shtml) e o IBEx- da tela, onde aparece o nome de
pert (www.info.abril.com.br/down nosso banco de dados Biblioteca.
load/4047.shtml) como ferramen- Com o botão direito do mouse, es-
colha a opção Conect
to database.

2. A TABELA
Agora que estamos
conectados ao novo
banco de dados, va-
mos criar a tabela do
sistema. Tecle F12 pa-
Biblioteca: crie o
banco de dados com
o IBExpert

C O L E Ç Ã O I N F O > 105
105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 106

TUTORIAL/FIREBIRD TUTORIAL/FIREBIRD

Gatilho: gerador
5 . REQUISIÇÕES DO USUÁRIO mulário para que seja digitado o no-
automático do código Nosso segundo programa, o pro- me do novo livro do acervo e mon-
de cada um dos livros
cessa.php, é que fará o trabalho to- tar um combo para que seja defini-
do. Ele é um pouco extenso, mas do qual o seu status (Disponível, Em-
LIVROS não é complexo. prestado, Encomendado).
ACTIVE BEFORE Em princípio, o segundo progra- Quando o botão “Excluir” é aciona-
INSERT ma se caracteriza por uma árvore do é há um livro selecionado no com-
POSITION 0 de decisão usando if e elseif, sen- bo do index.php, o programa reage
AS do que cada ação solicitada pelo excluindo aquele título selecionado.
BEGIN usuário vai determinar um compor- Para a operação de empréstimo,
IF (NEW.CODIGO tamento diferente. o programa abre um formulário pe-
ra que se abra uma tela para a cria- IS NULL) THEN A primeira providência do pro- dindo o nome do associado que es-
ção de consultas SQL. Dentro da te- NEW.CODIGO = GEN_ID(TB_ grama para atender qualquer que tá emprestando o livro. Na seqüên-
la de consulta, criaremos o banco de LIVROS_CODIGO_GEN, 1); seja a necessidade do usuário é cia, faz a atualização das informa-
dados com o comando: END abrir uma conexão com o banco de ções trocando o status do livro pa-
CREATE TABLE TB_LIVROS ( Este gatilho será acionado auto- dados. Em seguida, ele registra qual ra Emprestado e registrando o no-
CODIGO INTEGER NOT NULL, maticamente a cada inclusão para a operação o usuário solicitou, e, me do associado que retirou o livro.
TITULO VARCHAR(50) NOT NULL, gerar o código do livro. por conta disso, determina se ele A operação final é a devolução
STATUS VARCHAR(20) NOT NULL, terá que ser executado mais uma do livro que, quando acionada, al-
ASSOCIADO VARCHAR(40) 4. SCRIPT EM PHP vez ou se deve retornar ao in- tera o status do livro para Disponí-
CHARACTER SET NONE COLLATE Faça o download do arquivo biblio- dex.php. O programa toma essa de- vel e elimina o nome do associado.
NONE); teca.zip no endereço ftp://ftp.info. cisão ao definir qual ação deve ser É evidente que outras imple-
Logo depois, determinaremos que abril.com.br/biblioteca.zip . Des- acionada pelo formulário, se exe- mentações e validações são ne-
o código do livro será a chave pri- compacte-o na pasta onde opera o cuta o index.php ou ele mesmo cessárias, mas este exemplo já per-
mária de acesso ao banco com o se- seu servidor web e terá os arquivos (processa.php) com um novo parâ- mite vislumbrar um pouco da efi-
guinte comando: index.php e processa.php. metro de operação. ciência do Firebird usado em com-
ALTER TABLE TB_LIVROS ADD Nosso primeiro programa, o in- A primeira ação do programa é binação com o PHP.
CONSTRAINT PK_TB_LIVROS dex.php, lista a quantidade de livros listar. Essa ação
PRIMARY KEY (CODIGO); disponíveis e em que status se en- monta uma tabela
contram (Emprestado, Disponível ou com todos os livros
3 . O CÓDIGO DOS LIVROS Encomendado). O script faz também do banco ordenados
Agora vamos aproveitar um dos re- uma pesquisa no banco de dados e pelo título.
cursos do Firebird e transportar pa- monta uma lista do tipo combo com Quando acionado
ra o banco a responsabilidade de criar todos os livros disponíveis. pelo botão Incluir do
sequencialmente o código dos livros Por fim, apresenta uma série de cin- index.php, a ação
na medida em que forem inseridos. co botões para que você possa esco- desse programa é
Ainda em nossa tela de consulta va- lher entre listar os livros disponíveis abrir uma tela de for-
mos inserir o seguinte comando: e seu status, Incluir e Excluir livros. As Resultado: controle
CREATE TRIGGER AI_TB_ outras duas opções são de registrar dos livros emprestados
e dos disponíveis
LIVROS_ CODIGO FOR TB_ empréstimos e/ou devoluções.

106 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 107


105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 106

TUTORIAL/FIREBIRD TUTORIAL/FIREBIRD

Gatilho: gerador
5 . REQUISIÇÕES DO USUÁRIO mulário para que seja digitado o no-
automático do código Nosso segundo programa, o pro- me do novo livro do acervo e mon-
de cada um dos livros
cessa.php, é que fará o trabalho to- tar um combo para que seja defini-
do. Ele é um pouco extenso, mas do qual o seu status (Disponível, Em-
LIVROS não é complexo. prestado, Encomendado).
ACTIVE BEFORE Em princípio, o segundo progra- Quando o botão “Excluir” é aciona-
INSERT ma se caracteriza por uma árvore do é há um livro selecionado no com-
POSITION 0 de decisão usando if e elseif, sen- bo do index.php, o programa reage
AS do que cada ação solicitada pelo excluindo aquele título selecionado.
BEGIN usuário vai determinar um compor- Para a operação de empréstimo,
IF (NEW.CODIGO tamento diferente. o programa abre um formulário pe-
ra que se abra uma tela para a cria- IS NULL) THEN A primeira providência do pro- dindo o nome do associado que es-
ção de consultas SQL. Dentro da te- NEW.CODIGO = GEN_ID(TB_ grama para atender qualquer que tá emprestando o livro. Na seqüên-
la de consulta, criaremos o banco de LIVROS_CODIGO_GEN, 1); seja a necessidade do usuário é cia, faz a atualização das informa-
dados com o comando: END abrir uma conexão com o banco de ções trocando o status do livro pa-
CREATE TABLE TB_LIVROS ( Este gatilho será acionado auto- dados. Em seguida, ele registra qual ra Emprestado e registrando o no-
CODIGO INTEGER NOT NULL, maticamente a cada inclusão para a operação o usuário solicitou, e, me do associado que retirou o livro.
TITULO VARCHAR(50) NOT NULL, gerar o código do livro. por conta disso, determina se ele A operação final é a devolução
STATUS VARCHAR(20) NOT NULL, terá que ser executado mais uma do livro que, quando acionada, al-
ASSOCIADO VARCHAR(40) 4. SCRIPT EM PHP vez ou se deve retornar ao in- tera o status do livro para Disponí-
CHARACTER SET NONE COLLATE Faça o download do arquivo biblio- dex.php. O programa toma essa de- vel e elimina o nome do associado.
NONE); teca.zip no endereço ftp://ftp.info. cisão ao definir qual ação deve ser É evidente que outras imple-
Logo depois, determinaremos que abril.com.br/biblioteca.zip . Des- acionada pelo formulário, se exe- mentações e validações são ne-
o código do livro será a chave pri- compacte-o na pasta onde opera o cuta o index.php ou ele mesmo cessárias, mas este exemplo já per-
mária de acesso ao banco com o se- seu servidor web e terá os arquivos (processa.php) com um novo parâ- mite vislumbrar um pouco da efi-
guinte comando: index.php e processa.php. metro de operação. ciência do Firebird usado em com-
ALTER TABLE TB_LIVROS ADD Nosso primeiro programa, o in- A primeira ação do programa é binação com o PHP.
CONSTRAINT PK_TB_LIVROS dex.php, lista a quantidade de livros listar. Essa ação
PRIMARY KEY (CODIGO); disponíveis e em que status se en- monta uma tabela
contram (Emprestado, Disponível ou com todos os livros
3 . O CÓDIGO DOS LIVROS Encomendado). O script faz também do banco ordenados
Agora vamos aproveitar um dos re- uma pesquisa no banco de dados e pelo título.
cursos do Firebird e transportar pa- monta uma lista do tipo combo com Quando acionado
ra o banco a responsabilidade de criar todos os livros disponíveis. pelo botão Incluir do
sequencialmente o código dos livros Por fim, apresenta uma série de cin- index.php, a ação
na medida em que forem inseridos. co botões para que você possa esco- desse programa é
Ainda em nossa tela de consulta va- lher entre listar os livros disponíveis abrir uma tela de for-
mos inserir o seguinte comando: e seu status, Incluir e Excluir livros. As Resultado: controle
CREATE TRIGGER AI_TB_ outras duas opções são de registrar dos livros emprestados
e dos disponíveis
LIVROS_ CODIGO FOR TB_ empréstimos e/ou devoluções.

106 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 107


108_CERTIFIC_ABRE 26/02/2006 00:43 Page 108

CERTIFICAÇÃO

ESPECIALISTAS
EM DADOS
CONHEÇA AS CERTIFICAÇÕES IBM, ORACLE E
MICROSOFT, AINDA AS MAIS VALORIZADAS

Laboratório na IBM: treinamento presencial certifica especialistas em DB2

volume de dados gera- mação? Primeiro, a experiência pe-

O do pelas empresas cres-


ce quase que descon-
troladamente. Bom pa-
sa mais na hora da contratação. Se-
gundo, nem sempre a certificação
garante um aumento de salário. Por
ra os profissionais especializados isso, a escolha da solução em ban-
em gerenciamento de bancos de da- co de dados na qual vai se certificar
dos. Quem contrata? As grandes cor- tem de ser inteligente. Os especia-
porações. Elas só confiam o que têm listas recomendam tentar descobrir
de mais estratégico a um profissio- qual a tecnologia adotada pela em-
nal certificado, especialmente para presa em que se quer trabalhar. As
a função de administrador (DBA). certificações mais valorizadas con-
Quais os principais aspectos a con- tinuam sendo as das líderes de mer-
siderar ao investir nesse tipo de for- cado IBM, Oracle e Microsoft.

108 < C O L E Ç Ã O I N F O © OMAR PAIXÃO


109_CERTIF_ORACLE 26/02/2006 00:44 Page 109

CERTIFICAÇÃO/ORACLE

TODO MUNDO
QUER UM OCP
CONQUISTAR O MAIS IMPORTANTE TÍTULO DA ORACLE
PODE RENDER BOAS PROPOSTAS DE EMPREGO
POR ANA LÚCIA MOURA FÉ

e acordo com levanta- balhar e ver qual tecnologia ado-

D mento do instituto de
pesquisas Gartner, a
Oracle detém a segun-
da posição no ranking de sistemas
tam. “Se não der, é melhor começar
pela Oracle, porque o produto é ro-
busto e tem uma estratégia de de-
senvolvimento que conta bastante
de gerenciamento de bancos de da- hoje em dia”, diz.
dos relacionais. Com 33% de parti-
cipação (em receitas com vendas de APOSTA CERTA
licenças), a Oracle só perde espaço Foi o que fez Valter José de Aquino,
para a IBM (36%) e deixa a Microsoft matemático de 42 anos, 20 de car-
(19%) para trás. Esses números aju- reira. Em 2003, correu atrás da cer-
dam a posicionar as certificações da tificação em Oracle 8i. “Encomendei
empresa entre as mais importantes livros estrangeiros e estudei sozi-
do mercado. “São as mais procura- nho”, diz. “Não passei a ganhar mais,
das”, diz Edson Aguilera, coordena- mas mudei de emprego”. Aquino foi
dor dos cursos de pós-graduação em fisgado pela consultoria Stefanini,
Informática da Universidade Santo concorrente do antigo empregador.
Amaro (Unisa), de São Paulo. Depois, passou a integrar a equipe
As empresas já não querem pro- de DBAs que cuidam dos bancos de
fissionais com intimidade apenas dados da gigante do alumínio Alcoa.
com uma plataforma tecnológica. Outro que decidiu apostar todas
“De 2003 para cá, busca-se mais o as fichas na Oracle foi o potiguar Jo-
especialista que, além da implanta- sivan da Costa Santos, de 36 anos,
ção, entende todo o funcionamento DBA da prestadora de serviços e fá-
do banco de dados, tornando-o sim- brica de software CPM. A empresa
ples, seguro e alinhado com as es- pagou pelos exames e Santos con-
tratégias da empresa”, diz Aguilera. quistou os títulos nas versões 8i e
Para os indecisos quanto à mar- 9i. Com isso, ele passou a respon-
ca, a dica é relacionar as empresas der pela conta do Bradesco. “Mui-
ou segmentos nos quais se quer tra- tos DBAs não merecem o título. Não

C O L E Ç Ã O I N F O > 109
109_CERTIF_ORACLE 26/02/2006 00:46 Page 110

CERTIFICAÇÕES/ORACLE

basta fazer o curso. É preciso en- namento de Recife (PE). Ela ressal-
tender o negócio da empresa”, diz. ta um detalhe importante: quem fi-
O Brasil dispõe atualmente de 802 zer questão de receber o canudo
profissionais certificados em ban- oficial em inglês, usar a logomarca
cos de dados Oracle. Levantamen- Oracle e constar das listas oficiais
to feito pela empresa com seus par- das certificadoras, tem de freqüen-
ceiros indica que cerca de 7 mil tar pelo menos um curso da grade.
profissionais são treinados anual- A Oracle mantém nas principais
mente nessa tecnologia. capitais do país centros de treina-
mento nos quais o aluno participa
COMO CHEGAR LÁ dos cursos presenciais. A fornece-
O roteiro de certificação em bancos dora também coloca à disposição
de dados Oracle começa com a OCA dos treinandos um CD de auto-es-
(Oracle Certified Associates). O treina- tudo com o mesmo conteúdo do
mento para se tornar um OCA em curso presencial.
Oracle 9i custa 5 014,58 reais. Para Os exames de certificação são rea-
a versão 10g, mais recente, que a lizados pela Prometric e têm vali-
empresa tem interesse em pro- dade internacional. Outra forma de
mover, o valor cai para 2 507,29 reais. adquirir a certificação é fazer facul-
A vantagem do título OCA é po- dade em instituições que mantêm
der ser conquistado na metade do convênio com a Oracle.
tempo do nível seguinte, que é o
Oracle Certified Professional (OCP).
Oferecido a desenvolvedores e OCP ORACLE DBA
DBAs, o OCP é a carreira mais im- CERTIFIED
portante da Oracle. Há ainda um
terceiro título, o Oracle Certified
PROFESSIONAL
Master (COM). “Destina-se a espe- PARA QUEM É Analistas de
sistemas, gerentes
cialistas e gurus em produtos Ora- e profissionais de
TI que desejam
cle”, diz Fernando Silva, diretor da iniciar ou
incrementar a
Oracle University. carreira como
administrador de
Para ser um OCP, o profissional bancos de dados (DBA)
deve se submeter a quatro cursos TREINAMENTO 4 cursos de 30
horas cada
ao preço total de 5 mil reais (Ora-
NÚMERO DE 4 (2 para OCA e 2 para
cle 10g) a 10 mil reais (9i). “Mas EXAMES OCP)
quem já tem experiência pode dis- CUSTO DO 10 029,16 (9i)
TREINAMENTO 5 014,58 (10g)
pensar essa etapa e ir direto para COMPLETO (R$)
os testes”, diz Bernadete Sabino, CUSTO DOS 996,03 (9i)
EXAMES (R$) (1) 535,50 (10g)
gerente de treinamento da Apply
(1) Valor em dólar convertido pela taxa de 2,142 reais por dólar.
Solutions, um centro oficial de trei-

110 < C O L E Ç Ã O I N F O
111_CERTIF_IBM 03/03/2006 10:25 Page 111

CERTIFICAÇÃO/IBM

DOMINE O DB2
EM SEIS ETAPAS
ATÉ SE TORNAR ESPECIALISTA NO BANCO DE DADOS DA
IBM, O PROFISSIONAL PASSA POR VÁRIAS PROVAS
POR ANA LÚCIA MOURA FÉ

rande estrela dos ban- ção, parceira comercial da IBM, acu-

G cos de dados da IBM é


o DB2 Universal Data-
base. Sozinho, o produ-
to responde por 34% de tudo o que
mula 13 certificações, três delas da
carreira de DB2. “Algumas eu aca-
bei pagando do meu próprio bolso”,
diz. Hasegawa tem orgulho dessa
é vendido no mundo em termos de coleção. “Cada uma equivale a uma
licenças para sistemas de gerencia- faculdade de primeira linha.”
mento de bancos de dados relacio- Formado em ciências da compu-
nais. A fatia da IBM é a que mais tação pela Fiap, Hasegawa obteve
cresce, segundo a consultoria Gart- apoio da C&C para comprar livros e
ner. Luciano Dallolio, gerente técni- realizar os testes. Atualmente, ele
co de gerenciamento de informação ostenta o título de Certified Advan-
da IBM, diz que isso estimula a con- ced Database Administrator, o nível
tratação de profissionais. “Empre- mais alto da carreira de DBA da IBM.
sas como a Microsiga conquistaram O canudo o habilita, entre outras
grande número de contratos que coisas, a atuar na recuperação de
envolvem a compra de centenas de desastres e administração de am-
licenças para bancos de dados. Pa- biente VLDB (DataWarehouse-Mul-
ra tocar os projetos, elas bancam a ti Partitioning). Para quem vai co-
certificação de um número conside- meçar, Hasegawa sugere estudar por
rável de profissionais”, diz Dallolio. conta. “Se tivesse feito os cursos re-
Para muita gente, ter ajuda da em- comendados para as três certifica-
presa que contrata é o único jeito ções IBM que tenho, teria gasto, por
de conquistar uma certificação IBM. baixo, cerca de 13 mil reais”, diz.
“Não faz sentido investir 3 mil, 4 mil
reais se não houver como recupe- UMA CERTIFICAÇÃO,
rar o investimento ou praticar o que SEIS NÍVEIS
se aprendeu”, diz Dallolio. A certificação oferecida pela IBM a
O paulista Fábio Hasegawa, de 24 especialistas de DB2 é composta por
anos, consultor da C&C Computa- seis carreiras, conhecidas pelas nu-

C O L E Ç Ã O I N F O > 111
111_CERTIF_IBM 26/02/2006 00:47 Page 112

CERTIFICAÇÃO/IBM

merações dos seus respectivos exa- Application Developer, e requer três


mes: 700, 701, 702, 703, 704 e 705. cursos (de sete dias) e um exame,
O avanço é progressivo. A carreira cujo custo soma, aproximadamen-
700 é pré-requisito para os demais te, 5 620 reais. Nos cursos, ele apren-
níveis, (menos a 705), e forma o Cer- de sobre programação básica, avan-
tified Database Associate (CDA). Pa- çada e em Java.
ra ostentar esse título, o candidato O profissional que conquista as
deve antes passar por dois cursos, certificações 700 e 701 pode fazer
a um custo médio de 1 300 reais ca- o teste 704. Para essa carreira, de-
da, fora o teste (80 dólares). nominada Certified Advanced Da-
Com a certificação 700 em mãos, tabase Administrator, a IBM tam-
o candidato escolhe se quer ser ad- bém oferece cursos para recupe-
ministrador ou desenvolvedor. Se ração de desastres e administra-
a opção escolhida for a carreira de ção de ambiente VLDB (DataWare-
administrador de bancos de dados house-Multi Partitioning).
em plataformas Unix, Linux ou Win- Por fim, o teste 705 é o passapor-
dows, a certificação indicada é a te para quem quer atuar em Busi-
701. Nesse caso, o candidato, além ness Intelligence. O título é o Certi-
de já ter o título CDA (700), também fied Solution Designer DB2 BI, pe-
deve freqüentar um curso de qua- lo qual o profissional paga 6 mil
tro dias sobre administração de ban- reais. São 12 dias de curso. Um sua-
cos de dados Unix. ve alento: todos os treinamentos da
O custo total do treinamento in- IBM são complementados com tu-
dicado, já incluído o valor de exa- toriais gratuitos.
me, fica em torno de 2 630 reais. Se
aprovado, o candidato pode exibir
em seu cartão de visitas o título Cer-
DB2 UDB CERTIFIED
tified Database Administrator UDB. DATABASE
A certificação 702 é destinada a ADMINISTRATOR
quem quer dominar bancos de da-
PARA QUEM É Analistas de sistemas,
dos na plataforma mainframe, ain- gerentes e profissional de
TI que queiram iniciar ou
da muito usada no setor bancário. incrementar carreira
como administrador de
É o nível mais caro da carreira. Pa- bancos de dados (DBA)
ra ser Certified Database Adminis- TREINAMENTO: Depende da carreira
trator ZOS, é preciso fazer os qua- NÚMERO DE 1 (cada carreira)
EXAMES
tro cursos (cinco dias cada), além
CUSTO DO De 2 900 a 11 000
de um exame, e investir 11 mil reais. TREINAMENTO (depende da carreira)
COMPLETO (R$)
O nível seguinte, 703, é para quem
CUSTO DOS 172 (cada exame)(1)
quer ser desenvolvedor de aplica- EXAMES (R$)
ções para DB2. O título é Certified (1) Valor em dólar convertido pela taxa de 2,142 reais por dólar.

112 < C O L E Ç Ã O I N F O
113_CERTIF_MICROSOFT 26/02/2006 00:53 Page 113

CERTIFICAÇÃO/MICROSOFT

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É

MCDBA (Microsoft Cer- MAPA DA MINA

A tified Database Admi-


nistrator), certificação
de bancos de dados da
Microsoft, chegou ao Brasil em
Em tese, quem carrega um canu-
do MCDBA está preparado para
projetar, física e logicamente, ban-
cos de dados SQL Server 7.0, que
1998, no auge da demanda por ad- rodam sistemas de datawarehouse,
ministradores qualificados. É uma comércio eletrônico e aplicações
das favoritas no programa de es- de computação móvel e corpora-
pecializações da Microsoft, que já tivas. “Para o profissional tentar
titulou mais de 21 mil profissionais uma certificação MCDBA, ele deve
de TI brasileiros. estar preparado com treinamen-
“A oferta de vagas para esses tos presenciais, cursos online e
profissionais cresce porque mui- livros”, diz Adriana Cantamessa,
tas empresas que não dependiam gerente de certificações da Micro-
de uma base de dados estrutura-
dos agora migram para SQL Ser- MCDBA MICROSOFT
ver, e precisam de pessoas que se CERTIFIED DATABASE
encaixem no trinômio confiabili-
dade, experiência e certificação”,
ADMINISTRATOR
diz Edson Aguilera, coordenador PARA QUEM É Analistas de sistemas,
gerentes e profissionais de
dos cursos de pós-graduação em TI que desejam iniciar ou
incrementar carreira como
informática da Universidade San- administrador de bancos
de dados (DBA)
to Amaro (Unisa), em São Paulo.
TREINAMENTO De 160 horas a 240 horas
Para quem já escolheu se espe- (depende da carreira)
cializar em programas do mundo NÚMERO DE 3 (1 para COM e 2 para
EXAMES MCDBA)
Microsoft, Aguilera sugere iden-
CUSTO DO
tificar segmentos que costumam TREINAMENTO 5 000 (inclui MCP)
COMPLETO (R$)
adotar a tecnologia. “Na área de
CUSTO DOS 172 (cada exame)(1)
autopeças, por exemplo, prevale- EXAMES (R$)
ce a plataforma Microsoft.” (1) Valor em dólar convertido pela taxa de 2,142 reais por dólar.

C O L E Ç Ã O I N F O > 113
113_CERTIF_MICROSOFT 26/02/2006 00:49 Page 114

CERTIFICAÇÕES/MICROSOFT

soft. Os cursos presenciais para a servidor e de serviços baseados


certificação em SQL Server 2005 nas tecnologias Visual Basic.Net,
estarão disponíveis a partir de Visual Studio .Net, Visual C# .Net
março de 2006. e .Net Framework. A outra meta-
Os candidatos ao MCDBA devem de abrange desde desenvolvimen-
ser aprovados em três exames obri- to e implementação de aplicações
gatórios e um eletivo. A parte obri- distribuídas com Visual Basic 6.0,
gatória consiste de um teste sobre C++ 6.0 e FoxPro 6.0 até imple-
administração de bancos de dados, mentação de data warehouse com
um outro sobre projetos e um ter- SQL Server 7.0.
ceiro teste a ser escolhido de uma
grade sobre sistemas de rede (ve- CURSOS OFICIAIS
ja no quadro nesta página). Os cursos da Microsoft podem
ser realizados em 35 centros de
OPÇÕES DO CANDIDATO treinamento oficiais espalhados
Nos dois primeiros exames obri- pela Brasil. Não são obrigatórios,
gatórios, o candidato pode optar mas reduzem riscos de reprova-
pela especialização em SQL Ser- ção. Para quem anda com o di-
ver 7.0 ou SQL Server 2000 En- nheiro curto, a dica é acessar o si-
terprise Edition, dependendo da te da Microsoft e fazer o down-
experiência ou objetivo. load do kit de auto-estudo.
No terceiro exame obrigatório,
que preenche o requisito de sis-
temas de redes, o profissional OPÇÕES DE
deve escolher entre o Windows EXAMES
2000 e o Windows Server 2003. OBRIGATÓRIOS
Um detalhe importante é que o
título obtido em SQL Server 2000
continua valendo mesmo se o seu
> administração de SQL
Server 7.0
detentor não fizer o teste para a
versão 2003.
> instalação, configuração e
administração de SQL Ser-
Para finalmente ter direito à cre- ver 2000 Enterprise Edi-
dencial de MCDBA, o profissional tion
precisa realizar um quarto exame,
desta vez eletivo. São 12 opções
> projeto e implementação
de banco de dados com
de testes, cada um com uma mé- SQL Server 7.0
dia de três cursos recomendados.
Pelo menos a metade envolve de-
> gerenciamento e manu-
tenção de ambiente Mi-
senvolvimento e implementação crosoft Windows Server
de aplicações, de componentes de

114 < C O L E Ç Ã O I N F O