Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

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

Mais conteúdos dessa disciplina