Escolar Documentos
Profissional Documentos
Cultura Documentos
CONTEÚDO CONTEÚDO
BANCO DE DADOS
TUTORIAIS
62 > Tabelas sem mistério
71 > Relatório feito com views
75 > Crie pesquisas com
critérios
78 > O phpMyAdmin
doma o MySQL
83 > Atualização é com o Ajax
86 > Pesquise bem no Access
89 > O Exif vai para o banco
97 > E-mail falso não entra
08 Evolução: o banco vai do
mainframe ao cluster 31 Linguagens: SQL é a
língua oficial 100 > O Rails faz mais rápido 89 Tutorial: dados Exif das
fotos para o SQL Express
tudo dentro
42 > O MySQL ganha músculos
47 > Missão crítica é
para Postgre EQUIPE
50 > Firebird poupa EDIÇÃO Lucia Reggiani
EDITORA DE ARTE Iara Spina
a máquina CAPA Crystian Cruz (arte) e Cellus (ilustração)
54 > O Access entra COLABORADORES Carlos Chernij,
em reforma
57 > Administração é tudo 38 Teste: reviramos o DB2
Express-C, da IBM 42 Teste: o MySQL 5.0
vem reforçado
Fred Carbonare, Helio Silva, Nivaldo
Foresti (texto) e Rita Del Monaco (revisão)
CONTEÚDO CONTEÚDO
BANCO DE DADOS
TUTORIAIS
62 > Tabelas sem mistério
71 > Relatório feito com views
75 > Crie pesquisas com
critérios
78 > O phpMyAdmin
doma o MySQL
83 > Atualização é com o Ajax
86 > Pesquise bem no Access
89 > O Exif vai para o banco
97 > E-mail falso não entra
08 Evolução: o banco vai do
mainframe ao cluster 31 Linguagens: SQL é a
língua oficial 100 > O Rails faz mais rápido 89 Tutorial: dados Exif das
fotos para o SQL Express
tudo dentro
42 > O MySQL ganha músculos
47 > Missão crítica é
para Postgre EQUIPE
50 > Firebird poupa EDIÇÃO Lucia Reggiani
EDITORA DE ARTE Iara Spina
a máquina CAPA Crystian Cruz (arte) e Cellus (ilustração)
54 > O Access entra COLABORADORES Carlos Chernij,
em reforma
57 > Administração é tudo 38 Teste: reviramos o DB2
Express-C, da IBM 42 Teste: o MySQL 5.0
vem reforçado
Fred Carbonare, Helio Silva, Nivaldo
Foresti (texto) e Rita Del Monaco (revisão)
Apoio Editorial: Beatriz de Cássia Mendes, Carlos Grassetti Serviços Editoriais: Wagner Barreira
Depto. de Documentação e Abril Press: Grace de Souza Correspodente Internacional: Ruth de Aquino
PUBLICIDADE CENTRALIZADA
Diretores: Mariane Ortiz, Sandra Sampaio, Sérgio R. Amaral
Executivos de Negócio: Eliane Pinho, Letícia Di Lallo, Maria Luiza Marot, Marcelo Cavalheiro, Marcelo Dória,
Nilo Bastos, Pedro Bonaldi, Robson Monte, Rodrigo Toledo, Sueli Cozza, Vlamir Aderaldo, Wlamir Lino
Publicidade Regional Diretor Jacques Baisi Ricardo Publicidade Rio de Janeiro: Diretor Paulo Renato Simões
Gerente de Publicidade núcleo Tecnologia: Marcos Peregrina Gomez Executivos de Negócio: Andréia Balsi,
Emiliano Hansenn, Marcello Almeida e Renata Mioli
MARKETING E CIRCULAÇÃO:
Gerente de Produto: Ricardo Fernandes, Coordenadora de eventos: Carol Fioresi, Estágiario de marketing: Maurício Simões Rodrigues
Gerente de Circulação Avulsas: Maria Helena Couto Gerente de Circulação Assinaturas: Euvaldo Nadir Lima Junior
Planejamento, Controle e Operações: Diretor: Auro Iasi Gerente: Fábio Luis dos Santos
Analista: Tales Bombicini Processos: Ricardo Carvalho
ASSINATURAS:
Diretora de Operações de Atendimento ao Consumidor: Ana Dávalos Diretor de Vendas: Fernando Costa
Publicidade São Paulo www.publiabril.com.br, Classificados tel.0800-7012066, Grande São Paulo tel. 3037-2700 ESCRITÓRIOS E REPRESENTANTES DE PUBLI-
CIDADE NO BRASIL: Central-SP tel. (11) 3037-6564 Bauru Gnottos Mídia Representações Comerciais, tel. (14) 3227-0378, e-mail: gnottos@gnottosmidia.com.br
Belém SRS Propaganda e Representações Ltda, tel (91) 3272-8195, e-mail: tania.alves@veloxmail.com.br Belo Horizonte tel. (31) 3282-0630, fax (31) 3282-0632
Blumenau M. Marchi Representações, tel. (47) 3329-3820, fax (47) 3329-6191 Brasília Escritório: tels. (61) 3315-7554/55/56/57, fax (61) 3315-7558; Representante:
Carvalhaw Marketing Ltda., tels (61) 3426-7342/ 3223-0736/ 3225-2946/ 3223-7778, fax (61) 3321-1943, e-mail: starmkt@uol.com.br Campinas CZ Press Com. e
Representações, telefax (19) 3233-7175, e-mail: czpress@czpress.com.br Campo Grande Josimar Promoções Artísticas Ltda. tel. (67) 3382-2139 e-mail: jairo_gal-
vao@hotmail.com Cuiabá Fênix Propaganda Ltda., tels. (65) 9235-7446/9602-3419, e-mail: lucianooliveir@uol.com.br Curitiba Escritório: tel. (41) 3250-
8000/8030/8040/8050/8080, fax (41) 3252-7110; Representante: Via Mídia Projetos Editoriais Mkt. e Repres. Ltda., telefax (41) 3234-1224, e-mail: viamidia@viamidi-
apr.com.br Florianópolis Interação Publicidade Ltda. tel. (48) 3232-1617, fax (48) 3232-1782, e-mail: fgorgonio@interacaoabril.com.br Fortaleza Midiasolution Repres.
e Negoc. em Meios de Comunicação, telefax (85) 3264-3939, e-mail: midiasolution@midiasolution.net Goiânia Middle West Representações Ltda., tels.(62) 3215-5158,
fax (62) 3215-9007, e-mail: publicidade@middlewest.com.br Joinville Via Mídia Projetos Editoriais Mkt. e Repres. Ltda., telefax (47) 3433-2725, e-mail: viamidiajoinvil-
lle@viamidiapr.com.br Manaus Paper Comunicações, telefax (92) 3656-7588, e-mail: paper@internext.com.br Maringá Atitude de Comunicação e Representação, tele-
fax (44) 3028-6969, e-mail: m.atitude@uol.com.br Porto Alegre Escritório: tel. (51) 3327-2850, fax (51) 3227-2855; Representante: Print Sul Veículos de Comunicação
Ltda., telefax (51) 3328-1344/3823/4954, e-mail: ricardo@printsul.com.br ; Multimeios Representações Comerciais, tel.(51) 3328-1271, e-mail: multimeiosrepco@uol.com.br
Recife MultiRevistas Publicidade Ltda., telefax (81) 3327-1597, e-mail: multirevistas@uol.com.br Ribeirão Preto tel. (16) 3964-5516, fax (16) 632-0660, e-mail: achrisos-
tomo@abril.com.br Rio de Janeiro pabx: (21) 2546-8282, fax (21) 2546-8253 Salvador AGMN Consultoria Public. e Representação, tel.(71) 3341-4992/1765/9824/9827,
fax: (71) 3341-4996, e-mail: abrilagm@uol.com.br Vitória ZMR - Zambra Marketing Representações, tel. (27) 3315-6952, e-mail: samuelzambrano@intervip.com.br
Publicações da Editora Abril: Veja: Veja, Veja São Paulo, Veja Rio, Vejas Regionais Negócios: Exame, Você S/A A Consumo/Comportamento: Núcleo
Consumo: Boa Forma, Elle, Estilo, Manequim Núcleo Comportamento: Claudia, Nova Núcleo Bem-Estar: : Bons Fluidos, Saúde!, Vida Simples
Turismo/Tecnologia: Núcleo Turismo: Guias Quatro Rodas, National Geographic, Viagem e Turismo Núcleo Homem: : Placar, Playboy, Quatro Rodas, Vip
Núcleo Tecnologia: Info, Info Canal, Info Corporate Cultura/Jovem: Núcleo Jovem: Bizz, Capricho, Flashback, Mundo Estranho, Superinteressante, Supersurf
Núcleo Infantil: Atividades, Disney, Recreio Núcleo Cultura: : Almanaque Abril, Guia do Estudante, Aventuras na História, Revista das Religiões
Casa/Semanais: Núcleo Casa e Construção: Arquitetura e Construção, Casa Claudia, Claudia Cozinha Núcleo Celebridades: Contigo! Núcleo
Semanais: Ana Maria, Faça e Venda, Minha Novela, Tititi, Viva! Mais Fundação Victor Civita: Nova Escola
INTERNATIONAL ADVERTISING SALES REPRESENTATIVES Coordinator for International Advertising: Global Advertising, Inc., 218 Olive Hill Lane, Woodside,
California 94062. UNITED STATES: CMP Worldwide Media Networks, 2800 Campus Drive, San Mateo, California 94403, tel. (650) 513 4200, fax (650) 513 4482. EUROPE:
HZI International,Africa House, 64-78 Kingsway, London WC2B 6AH, tel. (20) 7242-6346, fax (20) 7404-4376. JAPAN: IMI Corporation, Matsuoka Bldg. 303, 18-25, Naka
1- chome, Kunitachi, Tokyo 186-0004, tel. (03) 3225-6866, fax (03) 3225-6877. TAIWAN: Lewis Int’l Media Services Co. Ltd., Floor 11-14 no 46, Sec 2, Tun Hua South
Road, Taipei, tel. (02) 707-5519, fax (02) 709-8348
COLEÇÃO BANCO DE DADOS, edição 27, é uma publicação da Editora Abril S.A. Distribuída em todo o país pela Dinap S.A.
Distribuidora Nacional de Publicações, São Paulo.
RECADO DA REDAÇÃO
DÁ-LHE
INFORMAÇÃO!
universo do software é sível. Testamos as novíssimas ver-
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
HISTÓRIA HISTÓRIA
O MODELO DE CODD
No início dos anos 70, as coisas co-
meçam a mudar. O pesquisador da
IBM Edgar Frank Codd (1923-2003)
propõe o modelo relacional para a
A AVENTURA
terfaces gráficas e assistentes. Mas, base de dados. Mais do que isso, ele
no princípio, lidar com bases de da- introduz uma nova maneira de pen-
dos era coisa cabeluda, encarada sar a informação digital a ser gra-
DOS DADOS
por mainframes. vada, recuperada e gerenciada, es-
A história dos modernos bancos tabelecendo um jeito mais compu-
de dados começa na década de 60, tacional de tratar o relacionamen-
DO MAINFRAME À INTERNET, OS BANCOS quando os computadores amplia- to entre os dados. Esse sistema vi-
DE DADOS TÊM MUITO PARA CONTAR ram a capacidade de armazenamen- rou padrão e é usado até hoje.
POR TAGIL OLIVEIRA RAMOS to e se transformaram em possibi- O modelo abstrato de Codd é a pri-
lidade real para as empresas. Não meira abordagem completa para
rmazenar informações cos de dados parece simples, trivial. havia ainda o conceito elaborado uma base de dados, o resgate das
A organizadas e recupe-
rá-las sem faltar peda-
ço sempre que neces-
Não deixa de ser verdade para as
tecnologias atuais, que disfarçam a
complexidade do processamento e
de banco de dados — o armazena-
mento de informação digital basea-
va-se em modelos de organização
informações, manipulação, integri-
dade lógica, visualização, atualiza-
ção e gerenciamento. Foi concebi-
sário. Dita assim, a missão dos ban- do gerenciamento de dados com in- do mundo físico. No início, dois mo- do para armazenar registros de da-
HISTÓRIA HISTÓRIA
O MODELO DE CODD
No início dos anos 70, as coisas co-
meçam a mudar. O pesquisador da
IBM Edgar Frank Codd (1923-2003)
propõe o modelo relacional para a
A AVENTURA
terfaces gráficas e assistentes. Mas, base de dados. Mais do que isso, ele
no princípio, lidar com bases de da- introduz uma nova maneira de pen-
dos era coisa cabeluda, encarada sar a informação digital a ser gra-
DOS DADOS
por mainframes. vada, recuperada e gerenciada, es-
A história dos modernos bancos tabelecendo um jeito mais compu-
de dados começa na década de 60, tacional de tratar o relacionamen-
DO MAINFRAME À INTERNET, OS BANCOS quando os computadores amplia- to entre os dados. Esse sistema vi-
DE DADOS TÊM MUITO PARA CONTAR ram a capacidade de armazenamen- rou padrão e é usado até hoje.
POR TAGIL OLIVEIRA RAMOS to e se transformaram em possibi- O modelo abstrato de Codd é a pri-
lidade real para as empresas. Não meira abordagem completa para
rmazenar informações cos de dados parece simples, trivial. havia ainda o conceito elaborado uma base de dados, o resgate das
A organizadas e recupe-
rá-las sem faltar peda-
ço sempre que neces-
Não deixa de ser verdade para as
tecnologias atuais, que disfarçam a
complexidade do processamento e
de banco de dados — o armazena-
mento de informação digital basea-
va-se em modelos de organização
informações, manipulação, integri-
dade lógica, visualização, atualiza-
ção e gerenciamento. Foi concebi-
sário. Dita assim, a missão dos ban- do gerenciamento de dados com in- do mundo físico. No início, dois mo- do para armazenar registros de da-
HISTÓRIA HISTÓRIA
dos com estruturas relati- Esse tipo de sistema usa deira. A primeira de-
vamente simples e proces- QUEL como linguagem de las, conhecida como
sar transações simples. pesquisa das bases de da- “Lei da Informação”,
A idéia começou a ser dos. O segundo protótipo, dizia simplesmente
desenvolvida por Codd du- conhecido como System que todo dado deve
rante seu doutorado na R, foi desenvolvido pela ser apresentado ao
Universidade de Michigan. IBM em San Jose, Califór- usuário na forma de
Em sua tese, ele apresen- nia, e levou ao SQL/DS & tabela. A segunda, ou
tava uma espécie de “au- DB2, da própria empresa, “Regra do Acesso Ga-
to-reprodução” feita em Edgar Codd: pai do seguido por Oracle e HP. rantido”, exige que
modelo relacional dBase III: padrão de banco de dados para PCs nos anos 80
programas de computa- Nesse sistema, é utiliza- todo dado seja aces-
dores. O trabalho foi publicado em da a SEQUEL como linguagem de sível sem ambigüidade e aconselha SURGE O DBASE
1967 no livro Cellular Automata, pu- pesquisa de dados. Originalmente, que cada informação seja descrita A evolução natural dos bancos de
blicado pela Academic Press. A idéia as aplicações foram desenvolvidas por uma combinação de nome da dados passaria pelo estabelecimen-
era tão avançada que levou uma dé- para os enormes mainframes. tabela, chave primária e o nome do to de um padrão não-teórico: o dBa-
cada para ser digerida. campo. E assim por diante. se, ao ser lançado no final dos anos
Pelo menos dois protótipos prin- AS DOZE REGRAS O mesmo Codd cunharia o nome 70, tornou-se uma referência. Sua
cipais de sistemas relacionais foram O termo “relação” era usado por OLAP (On-Line Analytical Proces- origem encontra-se em meados dos
desenvolvidos entre 1974 e 1977, Codd de maneira estritamente ma- sing) para descrever uma ampla ca- anos 60. Seu antecessor era um sis-
mostrando aplicações práticas do temática, dentro de uma tabela com tegoria de produtos de software que tema chamado Retrieve, vendido pe-
que só existia na teoria. linhas e colunas que trabalhavam tinham as características de acesso la Tymshare Corporation. Naquela
Um dos protótipos era o Ingres, com propriedades especiais. Embo- aos dados propostas por ele. As 12 época, os computadores só eram
desenvolvido na Universidade ra isso pareça óbvio atualmente, não Regras de seu padrão foram adota- encontrados em grandes gabinetes,
Berkeley, que seria seguido pela In- era nada elementar nos anos 70. das pela indústria de TI, forçando no ambiente do trabalho.
gres Corporation, Sybase, MS SQL Tanto que Codd sentiu a necessida- muitas empresas a revisar seus pro- O Retrieve era usado no Jet Pro-
Server e Britton-Lee, dentre outras. de de estabelecer as 12 regras de dutos para melhor se adequar aos pulsion Laboratory (JPL), em Pasa-
uma base de dados critérios OLAP de Codd. dena, na Califórnia. Nos anos 60,
relacional, uma re- Em 1976, outro avanço viria das pes- Jeb Long, um programador desse
ceita para extrair do quisas de Peter P. Chen. Ele propõe o laboratório, recebeu a tarefa de es-
modelo algo que modelo Entidade-Relacio- crever um programa que
funcionasse mesmo. namento (ER) para o design desempenhasse as mes-
Isso aconteceu em de banco de dados, dando mas funções que o Retrie-
1974 e foi expandido um importante passo para ve. Em 1973, ele se tornou
ao longo das déca- a modelagem de alto nível engenheiro de software
das. Em 1990, a lista e permitindo ao desenvol- do JPL. Ali ele desenvol-
cresceu para 333 re- vedor concentrar-se mais veu um programa de ge-
querimentos. no uso das informações do renciamento de arquivos
Vistas com os que propriamente na estru- chamado JPLDIS (Jet Pro-
olhos de hoje, as 12 tura lógica que há por trás Peter Chen: novo pulsion Laboratory Dis-
Mapa de relacionamento: a teoria de Codd na prática modelo de design
leis parecem brinca- da tabela. play Information System),
HISTÓRIA HISTÓRIA
dos com estruturas relati- Esse tipo de sistema usa deira. A primeira de-
vamente simples e proces- QUEL como linguagem de las, conhecida como
sar transações simples. pesquisa das bases de da- “Lei da Informação”,
A idéia começou a ser dos. O segundo protótipo, dizia simplesmente
desenvolvida por Codd du- conhecido como System que todo dado deve
rante seu doutorado na R, foi desenvolvido pela ser apresentado ao
Universidade de Michigan. IBM em San Jose, Califór- usuário na forma de
Em sua tese, ele apresen- nia, e levou ao SQL/DS & tabela. A segunda, ou
tava uma espécie de “au- DB2, da própria empresa, “Regra do Acesso Ga-
to-reprodução” feita em Edgar Codd: pai do seguido por Oracle e HP. rantido”, exige que
modelo relacional dBase III: padrão de banco de dados para PCs nos anos 80
programas de computa- Nesse sistema, é utiliza- todo dado seja aces-
dores. O trabalho foi publicado em da a SEQUEL como linguagem de sível sem ambigüidade e aconselha SURGE O DBASE
1967 no livro Cellular Automata, pu- pesquisa de dados. Originalmente, que cada informação seja descrita A evolução natural dos bancos de
blicado pela Academic Press. A idéia as aplicações foram desenvolvidas por uma combinação de nome da dados passaria pelo estabelecimen-
era tão avançada que levou uma dé- para os enormes mainframes. tabela, chave primária e o nome do to de um padrão não-teórico: o dBa-
cada para ser digerida. campo. E assim por diante. se, ao ser lançado no final dos anos
Pelo menos dois protótipos prin- AS DOZE REGRAS O mesmo Codd cunharia o nome 70, tornou-se uma referência. Sua
cipais de sistemas relacionais foram O termo “relação” era usado por OLAP (On-Line Analytical Proces- origem encontra-se em meados dos
desenvolvidos entre 1974 e 1977, Codd de maneira estritamente ma- sing) para descrever uma ampla ca- anos 60. Seu antecessor era um sis-
mostrando aplicações práticas do temática, dentro de uma tabela com tegoria de produtos de software que tema chamado Retrieve, vendido pe-
que só existia na teoria. linhas e colunas que trabalhavam tinham as características de acesso la Tymshare Corporation. Naquela
Um dos protótipos era o Ingres, com propriedades especiais. Embo- aos dados propostas por ele. As 12 época, os computadores só eram
desenvolvido na Universidade ra isso pareça óbvio atualmente, não Regras de seu padrão foram adota- encontrados em grandes gabinetes,
Berkeley, que seria seguido pela In- era nada elementar nos anos 70. das pela indústria de TI, forçando no ambiente do trabalho.
gres Corporation, Sybase, MS SQL Tanto que Codd sentiu a necessida- muitas empresas a revisar seus pro- O Retrieve era usado no Jet Pro-
Server e Britton-Lee, dentre outras. de de estabelecer as 12 regras de dutos para melhor se adequar aos pulsion Laboratory (JPL), em Pasa-
uma base de dados critérios OLAP de Codd. dena, na Califórnia. Nos anos 60,
relacional, uma re- Em 1976, outro avanço viria das pes- Jeb Long, um programador desse
ceita para extrair do quisas de Peter P. Chen. Ele propõe o laboratório, recebeu a tarefa de es-
modelo algo que modelo Entidade-Relacio- crever um programa que
funcionasse mesmo. namento (ER) para o design desempenhasse as mes-
Isso aconteceu em de banco de dados, dando mas funções que o Retrie-
1974 e foi expandido um importante passo para ve. Em 1973, ele se tornou
ao longo das déca- a modelagem de alto nível engenheiro de software
das. Em 1990, a lista e permitindo ao desenvol- do JPL. Ali ele desenvol-
cresceu para 333 re- vedor concentrar-se mais veu um programa de ge-
querimentos. no uso das informações do renciamento de arquivos
Vistas com os que propriamente na estru- chamado JPLDIS (Jet Pro-
olhos de hoje, as 12 tura lógica que há por trás Peter Chen: novo pulsion Laboratory Dis-
Mapa de relacionamento: a teoria de Codd na prática modelo de design
leis parecem brinca- da tabela. play Information System),
HISTÓRIA HISTÓRIA
HISTÓRIA HISTÓRIA
HISTÓRIA
14 < C O L E Ç Ã O I N F O
015_CONCEITOS 25/02/2006 21:31 Page 15
CONCEITOS
SABE O QUE
É TUPLA?
ENTENDA OS CONCEITOS QUE FAZEM DO BANCO DE DADOS
UM MUNDO À PARTE NO UNIVERSO DO SOFTWARE
POR CELSO HENRIQUE PODEROSO DE OLIVEIRA
C O L E Ç Ã O I N F O > 15
015_CONCEITOS 25/02/2006 21:32 Page 16
CONCEITOS CONCEITOS
16 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 17
015_CONCEITOS 25/02/2006 21:32 Page 16
CONCEITOS CONCEITOS
16 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 17
015_CONCEITOS 25/02/2006 21:33 Page 18
CONCEITOS
18 < C O L E Ç Ã O I N F O
015_CONCEITOS 25/02/2006 21:34 Page 19
CONCEITOS
essas duas entidades, uma relação nada apenas a zero ou a uma tupla
de interdependência, ou seja, para da outra entidade (lembre-se que ze-
se emitir uma Nota Fiscal, é neces- ro ou um é a opcionalidade). Esse ti-
sário que haja um Cliente. A essa po de relacionamento não é o mais
interdependência damos o nome comum, pois sempre se deve ques-
de relacionamento. Na prática, sem- tionar a vantagem de manter os da-
pre que uma ou mais tuplas de uma dos separados em duas entidades.
entidade guardarem alguma rela- Note que sempre há um custo vincu-
ção com uma ou mais tuplas de ou- lado à criação e manutenção de uma
tra entidade teremos um relaciona- tabela. Se o custo compensar, deve-
mento entre as entidades. se manter separado. Do contrário, é
Um relacionamento pode ser clas- melhor unir as duas entidades.
sificado de duas formas: opcionali- ■ UM PARA MUITOS (1:M): quan-
dade e cardinalidade. do cada tupla de uma entidade es-
A opcionalidade indica se é obri- tá relacionada a zero, uma ou mais
gatória ou não a ocorrência ou in- tuplas da outra entidade (não es-
dicação de uma tupla de uma en- queça que o zero ou um é a opcio-
tidade na outra. Dessa forma, po- nalidade). Este é o relacionamento
demos dizer que é obrigatória a mais comum.
presença de um Cliente em uma ■ MUITOS PARA MUITOS (M:M):
Nota Fiscal, mas é opcional a exis- quando há ocorrências de múltiplos
tência de uma Transportadora, por relacionamentos entre as tuplas de
exemplo. De outro lado, o Cliente duas entidades. Esse relacionamen-
pode ou não estar vinculado a uma to, apesar de existir, não é passível
Nota Fiscal. O mesmo acontece com de implementação em um banco de
a Transportadora.
A cardinalidade indica quantas
ocorrências de uma tupla se rela-
cionam com a outra tupla. Sabemos
que cada Cliente pode estar vincu-
lado a zero, uma ou muitas Notas
Fiscais, enquanto cada Nota Fiscal
está relacionada a um único Clien-
te. Como você pode notar, a cardi-
nalidade e a opcionalidade são sem-
pre expressas de um e de outro la-
do do relacionamento.
A cardinalidade pode ser:
■ UM PARA UM (1:1): quando cada Relacionamento: muitos para muitos
(acima); um para muitos (abaixo)
tupla de uma entidade está relacio-
C O L E Ç Ã O I N F O > 19
015_CONCEITOS 25/02/2006 21:43 Page 20
CONCEITOS CONCEITOS
20 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 21
015_CONCEITOS 25/02/2006 21:43 Page 20
CONCEITOS CONCEITOS
20 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 21
015_CONCEITOS 25/02/2006 21:54 Page 22
CONCEITOS CONCEITOS
NORMALIZAÇÃO DE DADOS As três fases da Normalização de para o novo grupo. Caso não haja PROCEDIMENTOS
Processo pelo qual são aplicadas Dados são: um bom atributo para ser a chave, ARMAZENADOS
regras a um conjunto de dados e, ■ 1ª- FORMA NORMAL (1FN): elimi- deve-se criá-lo. É isso que foi feito São pequenos códigos executados
no final, obtém-se uma base quase nar grupos de dados repetitivos da com o Cliente e Produto. em um banco de dados que ficam
livre de redundâncias. Ao atingir es- estrutura. Para isso, deve-se locali- ■ 3ª-FORMA NORMAL (3FN): depois guardados para posterior utiliza-
se objetivo, é possível recuperar o zar os atributos multivalorados, os que os grupos de dados estiverem na ção. Podem ser stored procedures
dado em um único lugar (tabela). que têm mais de uma ocorrência no 2ª- Forma Normal (e jamais antes dis- (procedimentos armazenados),
Isso fará, com certeza, que haja um formulário. No caso da Nota Fiscal, so), localizam-se atributos com de- stored functions (funções armaze-
aumento na quantidade de tabelas temos produto, quantidade, valor pendência transitiva. Calma! Não é nadas), trigger (gatilho) e package
criadas no sistema, mas ajudará a unitário e total como grupo de da- tão complicado. Dependência transi- (pacote). Um procedimento é um
aumentar a confiabilidade dos da- dos multivalorado. Deve-se separar tiva ocorre quando um dado pode ser conjunto de comandos dentro de
dos armazenados. Ao final do pro- esse grupo em uma nova entidade, obtido por meio de outro, exceto a uma estrutura lógica, com o obje-
cesso de normalização, deve-se va- dar um nome ao grupo, levar a cha- chave. Isso porque os atributos de- tivo de realizar uma ação no ban-
lidá-lo com o Modelo de Entidade ve da Nota Fiscal (para manter a re- pendem da chave. Até que você se co de dados. A diferença entre pro-
x Relacionamento. lação entre as entidades) e estabe- habitue, tente localizar campos que cedimento e função é que esta úl-
Esse processo pode ser feito em até lecer uma chave para o novo gru- possam ser substituídos por fórmu- tima retorna valor.
seis fases, mas, geralmente, ao se che- po. Essa chave pode ser composta las matemáticas. No exemplo, temos Gatilhos são procedimentos dispa-
gar na terceira etapa (conhecida co- pela chave da Nota Fiscal e por mais o atributo Valor Total no Item da No- rados por eventos do banco de da-
mo 3ª- Forma Normal), já é possível de um atributo existente. É possível, ta e o Valor Total da Nota Fiscal. Es- dos (inclusão, alteração ou exclusão).
obter um modelo de dados estável. quando não se localizar um atribu- ses atributos devem ser excluídos, Por fim, um pacote é um conjunto de
Antes de iniciar o processo de nor- to adequado, criá-la. pois podem ser obtidos por meio de funções, procedimentos e outras es-
malização, é importante identificar o ■ 2ª- FORMA NORMAL (2FN): quan- um cálculo realizado com outros atri- truturas que são armazenados em
grupo de dados que se quer analisar. do somente houver grupos de da- butos. Com os dados normalizados, conjunto para facilitar a manutenção
Esse grupo pode estar representado dos na 1ª- Forma Normal (e jamais é possível criar as tabelas. e a segurança da informação.
por um formulário, um relatório ou antes disso), deve-se localizar da-
até mesmo uma tela do sistema. Po- dos que não dependam única e ex-
de também ser resultado de um le- clusivamente da chave da entida-
vantamento sistemático das neces- de. Veja: o Cliente está relacionado
sidades de informação dos usuários. à Nota Fiscal, mas não depende de-
Com o grupo de dados definido, de- la. O Cliente existe, mesmo que não
ve-se listar todos os dados disponí- exista a Nota Fiscal. Por esse moti-
veis, sem desprezar nenhum. Em se- vo dizemos que o Cliente não de-
guida, deve-se dar um nome a esse pende da Nota Fiscal e, por isso, de-
grupo de dados. Após o nome, esta- ve ter os dados separados em uma
belece-se um identificador único (cha- nova entidade. Ao se identificar o(s)
ve). Cumprida essa etapa, deve-se grupo(s) independente(s), deve-se
proceder ao processo de normaliza- separá-los em uma nova entidade
ção. Para explicar melhor, vamos ado- (uma para cada grupo independen-
tar um formulário de Nota Fiscal co- te). Feito isso, dá-se um nome à en-
Procedimentos armazenados: códigos que ficam armazenados para usar depois
mo exemplo. tidade e estabelece-se uma chave
22 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 23
015_CONCEITOS 25/02/2006 21:54 Page 22
CONCEITOS CONCEITOS
NORMALIZAÇÃO DE DADOS As três fases da Normalização de para o novo grupo. Caso não haja PROCEDIMENTOS
Processo pelo qual são aplicadas Dados são: um bom atributo para ser a chave, ARMAZENADOS
regras a um conjunto de dados e, ■ 1ª- FORMA NORMAL (1FN): elimi- deve-se criá-lo. É isso que foi feito São pequenos códigos executados
no final, obtém-se uma base quase nar grupos de dados repetitivos da com o Cliente e Produto. em um banco de dados que ficam
livre de redundâncias. Ao atingir es- estrutura. Para isso, deve-se locali- ■ 3ª-FORMA NORMAL (3FN): depois guardados para posterior utiliza-
se objetivo, é possível recuperar o zar os atributos multivalorados, os que os grupos de dados estiverem na ção. Podem ser stored procedures
dado em um único lugar (tabela). que têm mais de uma ocorrência no 2ª- Forma Normal (e jamais antes dis- (procedimentos armazenados),
Isso fará, com certeza, que haja um formulário. No caso da Nota Fiscal, so), localizam-se atributos com de- stored functions (funções armaze-
aumento na quantidade de tabelas temos produto, quantidade, valor pendência transitiva. Calma! Não é nadas), trigger (gatilho) e package
criadas no sistema, mas ajudará a unitário e total como grupo de da- tão complicado. Dependência transi- (pacote). Um procedimento é um
aumentar a confiabilidade dos da- dos multivalorado. Deve-se separar tiva ocorre quando um dado pode ser conjunto de comandos dentro de
dos armazenados. Ao final do pro- esse grupo em uma nova entidade, obtido por meio de outro, exceto a uma estrutura lógica, com o obje-
cesso de normalização, deve-se va- dar um nome ao grupo, levar a cha- chave. Isso porque os atributos de- tivo de realizar uma ação no ban-
lidá-lo com o Modelo de Entidade ve da Nota Fiscal (para manter a re- pendem da chave. Até que você se co de dados. A diferença entre pro-
x Relacionamento. lação entre as entidades) e estabe- habitue, tente localizar campos que cedimento e função é que esta úl-
Esse processo pode ser feito em até lecer uma chave para o novo gru- possam ser substituídos por fórmu- tima retorna valor.
seis fases, mas, geralmente, ao se che- po. Essa chave pode ser composta las matemáticas. No exemplo, temos Gatilhos são procedimentos dispa-
gar na terceira etapa (conhecida co- pela chave da Nota Fiscal e por mais o atributo Valor Total no Item da No- rados por eventos do banco de da-
mo 3ª- Forma Normal), já é possível de um atributo existente. É possível, ta e o Valor Total da Nota Fiscal. Es- dos (inclusão, alteração ou exclusão).
obter um modelo de dados estável. quando não se localizar um atribu- ses atributos devem ser excluídos, Por fim, um pacote é um conjunto de
Antes de iniciar o processo de nor- to adequado, criá-la. pois podem ser obtidos por meio de funções, procedimentos e outras es-
malização, é importante identificar o ■ 2ª- FORMA NORMAL (2FN): quan- um cálculo realizado com outros atri- truturas que são armazenados em
grupo de dados que se quer analisar. do somente houver grupos de da- butos. Com os dados normalizados, conjunto para facilitar a manutenção
Esse grupo pode estar representado dos na 1ª- Forma Normal (e jamais é possível criar as tabelas. e a segurança da informação.
por um formulário, um relatório ou antes disso), deve-se localizar da-
até mesmo uma tela do sistema. Po- dos que não dependam única e ex-
de também ser resultado de um le- clusivamente da chave da entida-
vantamento sistemático das neces- de. Veja: o Cliente está relacionado
sidades de informação dos usuários. à Nota Fiscal, mas não depende de-
Com o grupo de dados definido, de- la. O Cliente existe, mesmo que não
ve-se listar todos os dados disponí- exista a Nota Fiscal. Por esse moti-
veis, sem desprezar nenhum. Em se- vo dizemos que o Cliente não de-
guida, deve-se dar um nome a esse pende da Nota Fiscal e, por isso, de-
grupo de dados. Após o nome, esta- ve ter os dados separados em uma
belece-se um identificador único (cha- nova entidade. Ao se identificar o(s)
ve). Cumprida essa etapa, deve-se grupo(s) independente(s), deve-se
proceder ao processo de normaliza- separá-los em uma nova entidade
ção. Para explicar melhor, vamos ado- (uma para cada grupo independen-
tar um formulário de Nota Fiscal co- te). Feito isso, dá-se um nome à en-
Procedimentos armazenados: códigos que ficam armazenados para usar depois
mo exemplo. tidade e estabelece-se uma chave
22 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 23
024_CRIACAO 25/02/2006 21:56 Page 24
CRIAÇÃO CRIAÇÃO
PLANEJE BEM O
Com isso, dependendo do caso, se viver durante um bom tempo (tenha
a sua empresa desenvolve sistemas, isso em mente: não se troca de ban-
a decisão poderá ser totalmente di- co de dados senão com alguma di-
SEU BANCO
ferente de uma construtora, por ficuldade). Veja na tabela abaixo al-
exemplo. Baseie-se em aspectos téc- gumas questões que podem ajudar
nicos e mercadológicos para definir na escolha do produto ideal para as
SIGA O ROTEIRO PARA CRIAR UM BANCO DE DADOS QUE o produto com o qual você irá con- suas necessidades.
ACOMPANHE AS TRANSFORMAÇÕES DA EMPRESA
POR CELSO HENRIQUE PODEROSO DE OLIVEIRA
GUIA PARA A ESCOLHA DO GERENCIADOR
criação de um banco de racionais, além de dar suporte à to-
A dados é um processo
que envolve uma série
de competências. Hou-
mada de decisão por parte da mé-
dia e alta gerência das corporações.
Não se consegue atingir esse obje-
> Há uma empresa ou comunidade responsável pelo produto?
> Como está a saúde financeira dessa empresa? Como é a
participação dos membros da comunidade?
ve tempo em que esse processo es-
tava reduzido a identificar um ou
tivo sem que se observem algumas
regras. Por isso, trataremos aqui da
> Qual o compromisso tecnológico da empresa? Houve evolução
nos últimos anos? (um ano de atraso em informática
mais objetos, escolher uma forma estratégia para a criação de um pode ser fatal)
de armazenamento, algumas carac-
terísticas desses objetos e pronto.
banco de dados.
> Qual a participação de mercado do produto? (produtos com
pequena participação podem sumir ou ser absorvidos por
Geralmente, a própria estrutura do PLANEJAMENTO
outras empresas)
banco de dados era vinculada à lin- E ESCOLHA
guagem de programação. Planejar e escolher o melhor banco > Quanto tempo de vida tem o produto?
Com o passar do tempo, a tecno- de dados é uma tarefa extremamen- > Qual tipo de empresa o utiliza?
logia evoluiu e foi separada das lin- te importante no processo de criação. > Quando foi lançada a última versão? Como o fabricante resolve
guagens de programação. Ambien- A escolha certa evita frustrações nas problemas de segurança (atualizações e correções)?
tes completos de administração fo- operações do dia-a-dia e na evolução > O produto possui as características mínimas de um sistema
ram desenvolvidos e sua utilização que o produto deve ter para acom- gerenciador de banco de dados (controle de transações,
contribuiu para disseminar as in- panhar o crescimento da empresa. integridade referencial, programação, backup e recuperação,
formações de maneira adequada e Planejar é saber onde se quer che- segurança de acesso, compatibilidade)?
consistente.
Atualmente, os produtos estão
gar e estabelecer os meios adequa-
dos para estar lá. É necessário olhar
> Como é o ambiente de administração do banco de dados? Há
possibilidade de administração remota?
muito mais complexos e permitem
ao profissional realizar um trabalho
para frente e analisar como você
quer que as coisas estejam no futu-
> Você vai precisar de um administrador de banco de dados (DBA)
o tempo todo ou esse trabalho poderá ser feito remotamente?
que pode contribuir para a melhor
utilização da informação. De simples
ro. É antever situações que podem
definir o sucesso ou não do seu em-
> Há profissionais qualificados no mercado para administrar o
banco? Quanto custa a mão-de-obra?
local de armazenamento, o banco de
dados evoluiu para um verdadeiro
preendimento. Portanto, antes de
escolher o produto, pense onde vo-
> Há produtos (ERP, CRM, BI etc.) adequados para a sua empresa
que utilizam o banco de dados?
repositório de informações das em- cê quer chegar. Enxergue o banco
presas. É o ambiente adequado pa- de dados como um meio para atin- > Qual o volume médio de transações que você vai realizar e como
o produto se comporta com isso?
ra armazenar e recuperar dados ope- gir sua meta.
24 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 25
024_CRIACAO 25/02/2006 21:56 Page 24
CRIAÇÃO CRIAÇÃO
PLANEJE BEM O
Com isso, dependendo do caso, se viver durante um bom tempo (tenha
a sua empresa desenvolve sistemas, isso em mente: não se troca de ban-
a decisão poderá ser totalmente di- co de dados senão com alguma di-
SEU BANCO
ferente de uma construtora, por ficuldade). Veja na tabela abaixo al-
exemplo. Baseie-se em aspectos téc- gumas questões que podem ajudar
nicos e mercadológicos para definir na escolha do produto ideal para as
SIGA O ROTEIRO PARA CRIAR UM BANCO DE DADOS QUE o produto com o qual você irá con- suas necessidades.
ACOMPANHE AS TRANSFORMAÇÕES DA EMPRESA
POR CELSO HENRIQUE PODEROSO DE OLIVEIRA
GUIA PARA A ESCOLHA DO GERENCIADOR
criação de um banco de racionais, além de dar suporte à to-
A dados é um processo
que envolve uma série
de competências. Hou-
mada de decisão por parte da mé-
dia e alta gerência das corporações.
Não se consegue atingir esse obje-
> Há uma empresa ou comunidade responsável pelo produto?
> Como está a saúde financeira dessa empresa? Como é a
participação dos membros da comunidade?
ve tempo em que esse processo es-
tava reduzido a identificar um ou
tivo sem que se observem algumas
regras. Por isso, trataremos aqui da
> Qual o compromisso tecnológico da empresa? Houve evolução
nos últimos anos? (um ano de atraso em informática
mais objetos, escolher uma forma estratégia para a criação de um pode ser fatal)
de armazenamento, algumas carac-
terísticas desses objetos e pronto.
banco de dados.
> Qual a participação de mercado do produto? (produtos com
pequena participação podem sumir ou ser absorvidos por
Geralmente, a própria estrutura do PLANEJAMENTO
outras empresas)
banco de dados era vinculada à lin- E ESCOLHA
guagem de programação. Planejar e escolher o melhor banco > Quanto tempo de vida tem o produto?
Com o passar do tempo, a tecno- de dados é uma tarefa extremamen- > Qual tipo de empresa o utiliza?
logia evoluiu e foi separada das lin- te importante no processo de criação. > Quando foi lançada a última versão? Como o fabricante resolve
guagens de programação. Ambien- A escolha certa evita frustrações nas problemas de segurança (atualizações e correções)?
tes completos de administração fo- operações do dia-a-dia e na evolução > O produto possui as características mínimas de um sistema
ram desenvolvidos e sua utilização que o produto deve ter para acom- gerenciador de banco de dados (controle de transações,
contribuiu para disseminar as in- panhar o crescimento da empresa. integridade referencial, programação, backup e recuperação,
formações de maneira adequada e Planejar é saber onde se quer che- segurança de acesso, compatibilidade)?
consistente.
Atualmente, os produtos estão
gar e estabelecer os meios adequa-
dos para estar lá. É necessário olhar
> Como é o ambiente de administração do banco de dados? Há
possibilidade de administração remota?
muito mais complexos e permitem
ao profissional realizar um trabalho
para frente e analisar como você
quer que as coisas estejam no futu-
> Você vai precisar de um administrador de banco de dados (DBA)
o tempo todo ou esse trabalho poderá ser feito remotamente?
que pode contribuir para a melhor
utilização da informação. De simples
ro. É antever situações que podem
definir o sucesso ou não do seu em-
> Há profissionais qualificados no mercado para administrar o
banco? Quanto custa a mão-de-obra?
local de armazenamento, o banco de
dados evoluiu para um verdadeiro
preendimento. Portanto, antes de
escolher o produto, pense onde vo-
> Há produtos (ERP, CRM, BI etc.) adequados para a sua empresa
que utilizam o banco de dados?
repositório de informações das em- cê quer chegar. Enxergue o banco
presas. É o ambiente adequado pa- de dados como um meio para atin- > Qual o volume médio de transações que você vai realizar e como
o produto se comporta com isso?
ra armazenar e recuperar dados ope- gir sua meta.
24 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 25
024_CRIACAO 25/02/2006 21:57 Page 26
CRIAÇÃO CRIAÇÃO
Agora você precisa saber quais a modelagem lógica de dados, com- Outras geram os scripts para serem do sistema que mantém aquela es-
são as informações necessárias pa- posta pela aplicação do modelo de executados no banco de dados. Só trutura. Em outros, acrescenta-se a
ra sua empresa. Isso poderá lhe entidade X relacionamento e pela que, para chegar aqui, é necessário estrutura departamental que realiza
ajudar a diminuir a lista. normalização de dados. Em um pri- ficar atento a alguns detalhes. esse trabalho. Essa última opção é a
meiro momento não deve haver pior, visto que há mudanças freqüen-
PROJETO LÓGICO preocupação com a estrutura física PADRONIZAÇÃO tes nas funções departamentais de
Esta parte do processo deve aconte- que será criada, e sim com o aten- É sempre importante manter um pa- uma empresa moderna. Particular-
cer em paralelo à escolha do siste- dimento dos requisitos dos usuários. drão para o nome dos objetos, colu- mente, creio que ambas situações são
ma gerenciador de banco de dados. nas e outros elementos. Mesmo que desnecessárias, visto que atualmen-
Optar por um produto sem ter noção PROJETO FÍSICO você trabalhe sozinho em um proje- te uma classe é destacada para essa
das necessidades de informação da Uma vez estabelecido o projeto ló- to, é bem provável que no futuro ou- função. A classe normalmente tam-
empresa é como dar um tiro no pé. gico, vamos ao projeto físico. Nele, tras pessoas tenham de atualizar aqui- bém tem um nome claro e objetivo.
A maneira clássica de fazer isso en- transforma-se o modelo de entida- lo que você fez. A padronização co- Se há atributos importantes pa-
volve todos os conceitos de engenha- de X relacionamento para o mode- meça na documentação do projeto ra serem mantidos, como cor, mo-
ria de software para levantamento de lo físico, em geral, sem problemas. e continua em todo o processo físi- delo, ano de fabricação, ano do mo-
requisitos. Quando se pensa em infor- As estruturas relacionais (tabelas) co de criação do banco de dados. delo e montadora, deve-se colocar
mação, qualquer documento, tela de são representações bastante simples Toda equipe deve estar envolvida esses nomes nas colunas.
sistema ou relatório é útil para iden- e adequadas para caracterizar coi- para definir o que e como será esse Outro ponto importante, mas não
tificar o que é necessário armazenar sas do mundo real. Há uma troca na- padrão. Imagina-se que, quanto mais determinante, é especificar a classifi-
no banco de dados. Muitas vezes os tural de nomenclatura: entidades claro for o nome da entidade, por cação do dado junto com o nome. As-
usuários da informação esquecem al- passam a se chamar tabelas, tuplas exemplo, melhor será para a pessoa sim, se a cor do veículo fizer referên-
guns detalhes na fase de levantamen- viram registros ou linhas, e atribu- entender o que está armazenado ali. cia a uma tabela de cores e, portan-
to, por isso é importante recolher o tos tornam-se colunas ou campos. A Parece óbvio, mas algum tempo atrás to, eu for armazenar o código da cor,
máximo de documentos possíveis. menos que haja alguma necessida- era comum utilizar nomes estranhos, é comum utilizar-se CD ou COD antes
Na maior parte dos casos, ter uma de muito específica, basta acrescen- muito mais vinculados aos progra- do nome. O nome do campo ficaria
ferramenta de auxílio para o analis- tar o tipo de dado e o tamanho de mas que mantinham a entidade do CDCOR, por exemplo.
ta criar e modelar a estrutura do ban- cada um dos campos ou colunas, es- que ao objetivo dela. Alguns
co de dados é desejável. Essas ferra- tabelecer chaves primárias e estran- analistas até se valiam des- PADRONIZE AS COLUNAS
mentas são conhecidas como CASE geiras (normalmente as ferramen- se expediente para manter-
(Computer Aided Software Engin- tas CASE fazem esse trabalho por se no emprego — quanto CLASSIFICAÇÃO OPÇÃO 1 OPÇÃO 2
eering). Entre elas estão ErWin, DbDe- nós), definir regras de integridade, mais obscuro, mais depen-
signer, MS Visio e Oracle Designer. criação de visões (views), índices e dência do analista. CÓDIGO COD CD
Cada uma possui características que outros aspectos físicos do projeto. NÚMERO NUM NR
a torna mais ou menos adequada pa- Hora de criar as estruturas físicas, TABELAS E COLUNAS DESCRIÇÃO DES DS
ra cada situação, mas todas contri- com tabelas, relacionamentos, cha- Se eu identifiquei um objeto NOME NOM NM
buem para o trabalho do analista. ves e tudo a que temos direito. Nor- que armazene as informações DATA DAT DT
Depois de levantados os requisi- malmente, as ferramentas CASE tam- de um veículo, devo dar-lhe VALOR VAL VL
tos de informação, deve-se fazer um bém fazem a maior parte do traba- o nome de VEICULO. Em cer- QUANTIDADE QTD QT
projeto lógico. Entende-se por pro- lho. Algumas são capazes de se co- tos casos, alguns analistas pre- SIGLA SIG SG
jeto lógico a fase em que se realiza nectar ao banco e criar as estruturas. ferem indicar qual o módulo DOMÍNIO DOM DM
26 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 27
024_CRIACAO 25/02/2006 21:57 Page 26
CRIAÇÃO CRIAÇÃO
Agora você precisa saber quais a modelagem lógica de dados, com- Outras geram os scripts para serem do sistema que mantém aquela es-
são as informações necessárias pa- posta pela aplicação do modelo de executados no banco de dados. Só trutura. Em outros, acrescenta-se a
ra sua empresa. Isso poderá lhe entidade X relacionamento e pela que, para chegar aqui, é necessário estrutura departamental que realiza
ajudar a diminuir a lista. normalização de dados. Em um pri- ficar atento a alguns detalhes. esse trabalho. Essa última opção é a
meiro momento não deve haver pior, visto que há mudanças freqüen-
PROJETO LÓGICO preocupação com a estrutura física PADRONIZAÇÃO tes nas funções departamentais de
Esta parte do processo deve aconte- que será criada, e sim com o aten- É sempre importante manter um pa- uma empresa moderna. Particular-
cer em paralelo à escolha do siste- dimento dos requisitos dos usuários. drão para o nome dos objetos, colu- mente, creio que ambas situações são
ma gerenciador de banco de dados. nas e outros elementos. Mesmo que desnecessárias, visto que atualmen-
Optar por um produto sem ter noção PROJETO FÍSICO você trabalhe sozinho em um proje- te uma classe é destacada para essa
das necessidades de informação da Uma vez estabelecido o projeto ló- to, é bem provável que no futuro ou- função. A classe normalmente tam-
empresa é como dar um tiro no pé. gico, vamos ao projeto físico. Nele, tras pessoas tenham de atualizar aqui- bém tem um nome claro e objetivo.
A maneira clássica de fazer isso en- transforma-se o modelo de entida- lo que você fez. A padronização co- Se há atributos importantes pa-
volve todos os conceitos de engenha- de X relacionamento para o mode- meça na documentação do projeto ra serem mantidos, como cor, mo-
ria de software para levantamento de lo físico, em geral, sem problemas. e continua em todo o processo físi- delo, ano de fabricação, ano do mo-
requisitos. Quando se pensa em infor- As estruturas relacionais (tabelas) co de criação do banco de dados. delo e montadora, deve-se colocar
mação, qualquer documento, tela de são representações bastante simples Toda equipe deve estar envolvida esses nomes nas colunas.
sistema ou relatório é útil para iden- e adequadas para caracterizar coi- para definir o que e como será esse Outro ponto importante, mas não
tificar o que é necessário armazenar sas do mundo real. Há uma troca na- padrão. Imagina-se que, quanto mais determinante, é especificar a classifi-
no banco de dados. Muitas vezes os tural de nomenclatura: entidades claro for o nome da entidade, por cação do dado junto com o nome. As-
usuários da informação esquecem al- passam a se chamar tabelas, tuplas exemplo, melhor será para a pessoa sim, se a cor do veículo fizer referên-
guns detalhes na fase de levantamen- viram registros ou linhas, e atribu- entender o que está armazenado ali. cia a uma tabela de cores e, portan-
to, por isso é importante recolher o tos tornam-se colunas ou campos. A Parece óbvio, mas algum tempo atrás to, eu for armazenar o código da cor,
máximo de documentos possíveis. menos que haja alguma necessida- era comum utilizar nomes estranhos, é comum utilizar-se CD ou COD antes
Na maior parte dos casos, ter uma de muito específica, basta acrescen- muito mais vinculados aos progra- do nome. O nome do campo ficaria
ferramenta de auxílio para o analis- tar o tipo de dado e o tamanho de mas que mantinham a entidade do CDCOR, por exemplo.
ta criar e modelar a estrutura do ban- cada um dos campos ou colunas, es- que ao objetivo dela. Alguns
co de dados é desejável. Essas ferra- tabelecer chaves primárias e estran- analistas até se valiam des- PADRONIZE AS COLUNAS
mentas são conhecidas como CASE geiras (normalmente as ferramen- se expediente para manter-
(Computer Aided Software Engin- tas CASE fazem esse trabalho por se no emprego — quanto CLASSIFICAÇÃO OPÇÃO 1 OPÇÃO 2
eering). Entre elas estão ErWin, DbDe- nós), definir regras de integridade, mais obscuro, mais depen-
signer, MS Visio e Oracle Designer. criação de visões (views), índices e dência do analista. CÓDIGO COD CD
Cada uma possui características que outros aspectos físicos do projeto. NÚMERO NUM NR
a torna mais ou menos adequada pa- Hora de criar as estruturas físicas, TABELAS E COLUNAS DESCRIÇÃO DES DS
ra cada situação, mas todas contri- com tabelas, relacionamentos, cha- Se eu identifiquei um objeto NOME NOM NM
buem para o trabalho do analista. ves e tudo a que temos direito. Nor- que armazene as informações DATA DAT DT
Depois de levantados os requisi- malmente, as ferramentas CASE tam- de um veículo, devo dar-lhe VALOR VAL VL
tos de informação, deve-se fazer um bém fazem a maior parte do traba- o nome de VEICULO. Em cer- QUANTIDADE QTD QT
projeto lógico. Entende-se por pro- lho. Algumas são capazes de se co- tos casos, alguns analistas pre- SIGLA SIG SG
jeto lógico a fase em que se realiza nectar ao banco e criar as estruturas. ferem indicar qual o módulo DOMÍNIO DOM DM
26 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 27
024_CRIACAO 25/02/2006 22:17 Page 28
CRIAÇÃO CRIAÇÃO
Como não é possível utilizar es- seqüentemente estrangeiras) são mo arquivos XML, imagens, sons e de é aumentado. Se você optar por
paços na definição do nome das co- definidas por campos numéricos. textos extensos deve-se utilizar o colocar a camada de aplicação no
lunas (ou mesmo objetos), utiliza- Colunas pesquisadas com freqüên- LOB. Normalmente há uma separa- mesmo servidor (ou servidores),
se o caractere sublinhado (_) para cia, como CPF, também são defi- ção para binários (BLOB), adequa- poderá comprometer seu desem-
substituir o espaço. A tabela ficaria nidas como numéricas. dos para armazenamento de ima- penho pelo excesso de uso.
como no exemplo da figura abaixo. A maioria dos gerenciadores de gens e sons, e alfanuméricos (CLOB). Assim, prefira programar o ban-
banco de dados trabalha com dois No caso específico de XML, é pos- co de dados para rotinas que en-
PROCESSO DE grupos de tipos de dados alfanu- sível que o gerenciador de banco volvam acesso e manipulação de
méricos: CHAR e VARCHAR (ou de dados tenha algum mecanismo dados. Os programas devem seguir
CRIAÇÃO DE BANCO
VARCHAR2, no Oracle). O primei- melhor de armazenamento. a padronização da empresa no que
DE DADOS ro utiliza todo o espaço especifi- diz respeito aos módulos: definição
PROJETO Análise e modelagem cado, enquanto que o segundo é PROGRAMAÇÃO de variáveis, letras maiúsculas e/ou
LÓGICO DE utilizando o Modelo de
DADOS Entidade e variável, usando, no máximo, o es- Sempre que possível, prefira criar minúsculas para comandos etc.
Relacionamento e
Normalização de Dados paço predeterminado. Isso faz com os módulos que utilizam e manipu-
PROJETO FÍSICO Desenho com definição que o segundo, por utilizar apenas lam dados dentro do banco de da- INTERFACES DE
DE DADOS de tabelas, índices,
visões etc. o espaço efetivamente ocupado dos. Apesar de atualmente haver ADMINISTRAÇÃO
CRIAÇÃO DO Criação de scripts para pelo conteúdo, otimize o armaze- uma grande difusão da necessida- Tão importante quanto criar estru-
BANCO DE DADOS execução do gerenciador
de banco de dados namento e não deixe buracos nos de de independência de banco de turas estáveis para suprir as ne-
BANCO DE DADOS CRIADO conteúdos. DBAs experientes le- dados por meio da utilização de uma cessidades de informação da em-
vam em consideração o volume de camada intermediária que assuma presa é a tarefa de manter o ban-
TIPOS DE DADOS alterações no conteúdo para essa essa responsabilidade, é inegável co de dados com um nível aceitá-
A definição do tipo de dados tam- definição. Isso porque, caso um que o gerenciador do banco de da- vel de tempo de resposta. Para is-
bém exige padronização. Parece conteúdo seja alterado com fre- dos é o ambiente mais adequado so, é necessário ter uma atenção
óbvio que um dado que receberá qüência, a atualização poderá ge- para manter e atualizar dados. especial na administração.
apenas conteúdo numérico deva rar uma fragmentação da informa- Ao se programar em qualquer As interfaces de administração
ser definido como NUMBER, DECI- ção — quando incluído, o conteú- outra camada que não a de dados, têm evoluído bastante para sim-
MAL, INTEGER, FLOAT ou qualquer do ocupou um espaço e, depois de o tráfego de informações pela re- plificar o processo. Mesmo os ge-
outro tipo que seja otimizado pa- uma alteração para maior, quan- renciadores de código aberto pos-
ra este fim. O mesmo acontece com do não há espaço na seqüência, suem interfaces amigáveis que per-
alfanuméricos e datas, mas há al- será colocado em outro espaço fí- mitem criar e manter todas as es-
gumas observações a considerar sico do disco. truturas do banco rapidamente. Al-
nessa escolha. Campos que armazenam datas gumas podem ser acessadas re-
O tipo de dado numérico, de um devem ser definidos dessa forma motamente, o que facilita o pro-
modo geral, possui mecanismos para facilitar operações de busca cesso de manutenção e acompa-
que fazem com que as buscas se- e até mesmo operações matemá- nhamento que o DBA faz no ban-
jam mais rápidas do que as que ticas entre elas. O padrão SQL pos- co de dados.
ocorrem em colunas alfanuméri- sui uma série de comandos espe- A tendência é que os gerencia-
cas. Ele também ocupa menos es- cíficos para calcular intervalo en- dores sejam cada vez mais auto-
paço físico para armazenamento. tre datas, extrair ano, dia, mês etc. Programação: no SQL Server 2005 dá matizados, em especial no que diz
Por isso, chaves primárias (e con- Para conteúdos muito grandes, co- para criar consultas sem escrever código respeito ao desempenho. Os ajus-
28 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 29
024_CRIACAO 25/02/2006 22:17 Page 28
CRIAÇÃO CRIAÇÃO
Como não é possível utilizar es- seqüentemente estrangeiras) são mo arquivos XML, imagens, sons e de é aumentado. Se você optar por
paços na definição do nome das co- definidas por campos numéricos. textos extensos deve-se utilizar o colocar a camada de aplicação no
lunas (ou mesmo objetos), utiliza- Colunas pesquisadas com freqüên- LOB. Normalmente há uma separa- mesmo servidor (ou servidores),
se o caractere sublinhado (_) para cia, como CPF, também são defi- ção para binários (BLOB), adequa- poderá comprometer seu desem-
substituir o espaço. A tabela ficaria nidas como numéricas. dos para armazenamento de ima- penho pelo excesso de uso.
como no exemplo da figura abaixo. A maioria dos gerenciadores de gens e sons, e alfanuméricos (CLOB). Assim, prefira programar o ban-
banco de dados trabalha com dois No caso específico de XML, é pos- co de dados para rotinas que en-
PROCESSO DE grupos de tipos de dados alfanu- sível que o gerenciador de banco volvam acesso e manipulação de
méricos: CHAR e VARCHAR (ou de dados tenha algum mecanismo dados. Os programas devem seguir
CRIAÇÃO DE BANCO
VARCHAR2, no Oracle). O primei- melhor de armazenamento. a padronização da empresa no que
DE DADOS ro utiliza todo o espaço especifi- diz respeito aos módulos: definição
PROJETO Análise e modelagem cado, enquanto que o segundo é PROGRAMAÇÃO de variáveis, letras maiúsculas e/ou
LÓGICO DE utilizando o Modelo de
DADOS Entidade e variável, usando, no máximo, o es- Sempre que possível, prefira criar minúsculas para comandos etc.
Relacionamento e
Normalização de Dados paço predeterminado. Isso faz com os módulos que utilizam e manipu-
PROJETO FÍSICO Desenho com definição que o segundo, por utilizar apenas lam dados dentro do banco de da- INTERFACES DE
DE DADOS de tabelas, índices,
visões etc. o espaço efetivamente ocupado dos. Apesar de atualmente haver ADMINISTRAÇÃO
CRIAÇÃO DO Criação de scripts para pelo conteúdo, otimize o armaze- uma grande difusão da necessida- Tão importante quanto criar estru-
BANCO DE DADOS execução do gerenciador
de banco de dados namento e não deixe buracos nos de de independência de banco de turas estáveis para suprir as ne-
BANCO DE DADOS CRIADO conteúdos. DBAs experientes le- dados por meio da utilização de uma cessidades de informação da em-
vam em consideração o volume de camada intermediária que assuma presa é a tarefa de manter o ban-
TIPOS DE DADOS alterações no conteúdo para essa essa responsabilidade, é inegável co de dados com um nível aceitá-
A definição do tipo de dados tam- definição. Isso porque, caso um que o gerenciador do banco de da- vel de tempo de resposta. Para is-
bém exige padronização. Parece conteúdo seja alterado com fre- dos é o ambiente mais adequado so, é necessário ter uma atenção
óbvio que um dado que receberá qüência, a atualização poderá ge- para manter e atualizar dados. especial na administração.
apenas conteúdo numérico deva rar uma fragmentação da informa- Ao se programar em qualquer As interfaces de administração
ser definido como NUMBER, DECI- ção — quando incluído, o conteú- outra camada que não a de dados, têm evoluído bastante para sim-
MAL, INTEGER, FLOAT ou qualquer do ocupou um espaço e, depois de o tráfego de informações pela re- plificar o processo. Mesmo os ge-
outro tipo que seja otimizado pa- uma alteração para maior, quan- renciadores de código aberto pos-
ra este fim. O mesmo acontece com do não há espaço na seqüência, suem interfaces amigáveis que per-
alfanuméricos e datas, mas há al- será colocado em outro espaço fí- mitem criar e manter todas as es-
gumas observações a considerar sico do disco. truturas do banco rapidamente. Al-
nessa escolha. Campos que armazenam datas gumas podem ser acessadas re-
O tipo de dado numérico, de um devem ser definidos dessa forma motamente, o que facilita o pro-
modo geral, possui mecanismos para facilitar operações de busca cesso de manutenção e acompa-
que fazem com que as buscas se- e até mesmo operações matemá- nhamento que o DBA faz no ban-
jam mais rápidas do que as que ticas entre elas. O padrão SQL pos- co de dados.
ocorrem em colunas alfanuméri- sui uma série de comandos espe- A tendência é que os gerencia-
cas. Ele também ocupa menos es- cíficos para calcular intervalo en- dores sejam cada vez mais auto-
paço físico para armazenamento. tre datas, extrair ano, dia, mês etc. Programação: no SQL Server 2005 dá matizados, em especial no que diz
Por isso, chaves primárias (e con- Para conteúdos muito grandes, co- para criar consultas sem escrever código respeito ao desempenho. Os ajus-
28 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 29
024_CRIACAO 25/02/2006 22:18 Page 30
CRIAÇÃO
30 < C O L E Ç Ã O I N F O
031_LINGUAGENS 25/02/2006 22:21 Page 31
LINGUAGENS
O BANCO FALA
SQLQUÊS
CONHEÇA O IDIOMA DOS BANCOS DE DADOS E AS
LINGUAGENS DE ACESSO A ELES
POR ANDRÉ CARDOZO
LINGUAGENS LINGUAGENS
avançadas que só funcionam naque- manipulação de dados da SQL com as A sintaxe possui alguns elemen- do o OpenASP, no servidor web Apa-
le sistema. Os comandos básicos são facilidades de programação de uma lin- tos derivados do Perl, mas é bem che. Mas a implementação desse ti-
intuitivos e podem ser usados sem guagem procedural. Permite criar ob- mais simples e exige apenas noções po de solução costuma ser problemá-
dificuldade por quem tem noção de jetos de esquema, como gatilhos, pro- básicas de programação. Além dis- tica para os webmasters.
programação. Veja alguns: cedimentos armazenados e pacotes. so, há outra qualidade muito impor-
CREATE: cria tabelas A linguagem PL/SQL utiliza o con- tante, que beneficia uma parte sen- JAVA, A ECLÉTICA
SELECT: seleciona dados ceito de bloco estruturado. Esses blo- sível de todos nós: o bolso. O inter- A linguagem Java é a al-
INSERT: inclui dados em tabelas cos são compostos por procedures e pretador PHP (programa que pro- ternativa de programa-
UPDATE: atualiza dados funções. Um bloco tem a estrutura cessa as páginas feitas nesse for- ção criada pela Sun Mi-
DELETE: apaga dados básica composta por três partes: mato) é gratuito, e basta baixar e crosystems. É uma lin-
Além das expressões principais, DECLARE: seção opcional, em que instalar no servidor para começar guagem robusta, com
outros comandos muito usados são todos os objetos são declarados; a criar um website dinâmico. funções complexas.
o “where”, que inclui a condição, e BEGIN: em que os comandos Possui como principal vantagem, a
o “order by”, que ordena o resulta- PL/SQL são colocados; ASP, A OPÇÃO WINDOWS portabilidade — roda em qualquer
do da consulta SQL. Veja como elas EXCEPTION: em que os erros são O ASP (Active Ser- plataforma, de palmtop a main-
funcionam no exemplo abaixo: tratados. ver Pages) não é frame, de sistemas embarcados a
“SELECT nome,endereco FROM exatamente uma programas sérios de internet
clientes WHERE estado = ‘sp’ > LINGUAGENS DE ACESSO linguagem de banking, por exemplo. Profissionais
ORDER BY nome” Opções não faltam para os desen- programação, mas o que a Microsoft especializados em Java estão entre
Esse comando seleciona as colu- volvedores de programas de acesso define como “ambiente de execução os mais disputados do mercado.
nas “nome” e “endereco” da tabela a banco de dados. As mais popula- de scripts”. Na maior parte das vezes,
“clientes” em que o estado é igual res são ASP, Perl, PHP e Java. Cada as instruções são escritas em VBScript, PERL, A VETERANA
a “sp” (condição imposta pela ex- uma dessas linguagens tem suas van- que é derivado do Visual Basic, tam- A linguagem Perl
pressão “where”). Portanto, somen- tagens e desvantagens, e a escolha bém filhote da Microsoft. (Practical Extraction
te os clientes de São Paulo. Os re- depende de uma série de fatores, co- A penetração do Visual Basic no and Reporting Lan-
sultados são ordenados por “nome”. mo compatibilidade, custo e porta- mercado contribui bastante para o guage) foi criada em
A tabela poderia conter outras co- bilidade. Conheça essas opções. crescimento do ASP. Como a quanti- 1987 pelo progra-
lunas, como “idade” e “sexo”, mas dade de programadores VB é gran- mador Larry Wall para resolver tare-
nesse exemplo usamos só “nome” PHP, A POPULAR de, fica mais fácil para as empresas fas de administração em sistemas Unix.
e “endereco”. Para selecionar todas Uma solução contratarem profissionais que desen- Wall divulgou a primeira versão de
as colunas, basta trocar “nome,en- bastante popular volvam aplicações em VBScript. Perl nas listas de discussão da Use-
dereco” por *, como abaixo: entre os web- Aderir ao ASP significa quase sem- net e logo programadores de todo o
“SELECT * FROM clientes masters de sites pre optar pelo mundo Windows, uma mundo começaram a dar sugestões
WHERE estado = ‘sp’ ORDER dinâmicos é o PHP (Personal Home vez que as páginas ASP só rodam na- para o aprimoramento da linguagem.
BY nome” Page), criado pelo programador Ras- tivamente em servidores Windows Uma das vantagens de Perl é a por-
mus Leedorf. A linguagem funcio- com servidor web IIS (Internet Infor- tabilidade. Os scripts podem ser trans-
PL/SQL, A TURBINADA na tanto em Unix quanto em Win- mation Server), da Microsoft. É pos- feridos do Unix para o Windows e vi-
A linguagem PL/SQL é uma extensão dows e possui suporte para diver- sível rodar páginas ASP em sistemas ce-versa com pouca ou nenhuma mo-
da SQL especializada no banco de da- sos bancos de dados, incluindo Unix por intermédio de soluções co- dificação. A linguagem é expandida
dos Oracle. Ela combina a facilidade de MySQL, Sybase, SQL e Oracle. merciais, como o ChiliASP, ou usan- pelo uso de módulos.
32 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 33
031_LINGUAGENS 25/02/2006 22:22 Page 32
LINGUAGENS LINGUAGENS
avançadas que só funcionam naque- manipulação de dados da SQL com as A sintaxe possui alguns elemen- do o OpenASP, no servidor web Apa-
le sistema. Os comandos básicos são facilidades de programação de uma lin- tos derivados do Perl, mas é bem che. Mas a implementação desse ti-
intuitivos e podem ser usados sem guagem procedural. Permite criar ob- mais simples e exige apenas noções po de solução costuma ser problemá-
dificuldade por quem tem noção de jetos de esquema, como gatilhos, pro- básicas de programação. Além dis- tica para os webmasters.
programação. Veja alguns: cedimentos armazenados e pacotes. so, há outra qualidade muito impor-
CREATE: cria tabelas A linguagem PL/SQL utiliza o con- tante, que beneficia uma parte sen- JAVA, A ECLÉTICA
SELECT: seleciona dados ceito de bloco estruturado. Esses blo- sível de todos nós: o bolso. O inter- A linguagem Java é a al-
INSERT: inclui dados em tabelas cos são compostos por procedures e pretador PHP (programa que pro- ternativa de programa-
UPDATE: atualiza dados funções. Um bloco tem a estrutura cessa as páginas feitas nesse for- ção criada pela Sun Mi-
DELETE: apaga dados básica composta por três partes: mato) é gratuito, e basta baixar e crosystems. É uma lin-
Além das expressões principais, DECLARE: seção opcional, em que instalar no servidor para começar guagem robusta, com
outros comandos muito usados são todos os objetos são declarados; a criar um website dinâmico. funções complexas.
o “where”, que inclui a condição, e BEGIN: em que os comandos Possui como principal vantagem, a
o “order by”, que ordena o resulta- PL/SQL são colocados; ASP, A OPÇÃO WINDOWS portabilidade — roda em qualquer
do da consulta SQL. Veja como elas EXCEPTION: em que os erros são O ASP (Active Ser- plataforma, de palmtop a main-
funcionam no exemplo abaixo: tratados. ver Pages) não é frame, de sistemas embarcados a
“SELECT nome,endereco FROM exatamente uma programas sérios de internet
clientes WHERE estado = ‘sp’ > LINGUAGENS DE ACESSO linguagem de banking, por exemplo. Profissionais
ORDER BY nome” Opções não faltam para os desen- programação, mas o que a Microsoft especializados em Java estão entre
Esse comando seleciona as colu- volvedores de programas de acesso define como “ambiente de execução os mais disputados do mercado.
nas “nome” e “endereco” da tabela a banco de dados. As mais popula- de scripts”. Na maior parte das vezes,
“clientes” em que o estado é igual res são ASP, Perl, PHP e Java. Cada as instruções são escritas em VBScript, PERL, A VETERANA
a “sp” (condição imposta pela ex- uma dessas linguagens tem suas van- que é derivado do Visual Basic, tam- A linguagem Perl
pressão “where”). Portanto, somen- tagens e desvantagens, e a escolha bém filhote da Microsoft. (Practical Extraction
te os clientes de São Paulo. Os re- depende de uma série de fatores, co- A penetração do Visual Basic no and Reporting Lan-
sultados são ordenados por “nome”. mo compatibilidade, custo e porta- mercado contribui bastante para o guage) foi criada em
A tabela poderia conter outras co- bilidade. Conheça essas opções. crescimento do ASP. Como a quanti- 1987 pelo progra-
lunas, como “idade” e “sexo”, mas dade de programadores VB é gran- mador Larry Wall para resolver tare-
nesse exemplo usamos só “nome” PHP, A POPULAR de, fica mais fácil para as empresas fas de administração em sistemas Unix.
e “endereco”. Para selecionar todas Uma solução contratarem profissionais que desen- Wall divulgou a primeira versão de
as colunas, basta trocar “nome,en- bastante popular volvam aplicações em VBScript. Perl nas listas de discussão da Use-
dereco” por *, como abaixo: entre os web- Aderir ao ASP significa quase sem- net e logo programadores de todo o
“SELECT * FROM clientes masters de sites pre optar pelo mundo Windows, uma mundo começaram a dar sugestões
WHERE estado = ‘sp’ ORDER dinâmicos é o PHP (Personal Home vez que as páginas ASP só rodam na- para o aprimoramento da linguagem.
BY nome” Page), criado pelo programador Ras- tivamente em servidores Windows Uma das vantagens de Perl é a por-
mus Leedorf. A linguagem funcio- com servidor web IIS (Internet Infor- tabilidade. Os scripts podem ser trans-
PL/SQL, A TURBINADA na tanto em Unix quanto em Win- mation Server), da Microsoft. É pos- feridos do Unix para o Windows e vi-
A linguagem PL/SQL é uma extensão dows e possui suporte para diver- sível rodar páginas ASP em sistemas ce-versa com pouca ou nenhuma mo-
da SQL especializada no banco de da- sos bancos de dados, incluindo Unix por intermédio de soluções co- dificação. A linguagem é expandida
dos Oracle. Ela combina a facilidade de MySQL, Sybase, SQL e Oracle. merciais, como o ChiliASP, ou usan- pelo uso de módulos.
32 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 33
034_SQL_SERVEREXPRESS 25/02/2006 23:01 Page 34
TESTE/SQL SERVER
UM SQL SERVER
FÁCIL DE USAR
A VERSÃO GRÁTIS DO BANCO DE DADOS DA MICROSOFT
TEM ASSISTENTE E MUITOS RECURSOS
POR NIVALDO FORESTI
34 < C O L E Ç Ã O I N F O
034_SQL_SERVEREXPRESS 25/02/2006 22:28 Page 35
TESTE/SQL SERVER
DESENVOLVIMENTO 8,5
Traz todos os recursos das
FUNCIONALIDADES demais versões, inclusive
suporte nativo a XML
Nem tudo é problema. O mecanismo SEGURANÇA 8,0
de acesso a dados MSDE (Microsoft Conta com criptografia
baseada em chaves
Desktop Engine), um SQL Server ru- e replicação de dados
via web
dimentar para desktops, desapare- AVALIAÇÃO 7,6
ceu com o advento do Express. E, com TÉCNICA (1)
C O L E Ç Ã O I N F O > 35
036_ORACLE_EXPRESS-8 25/02/2006 22:30 Page 36
ORACLE EM
VERSÃO LIGHT
A EDIÇÃO GRATUITA DO PODEROSO BANCO DE DADOS
CHEGA COM RECURSOS DE SOBRA Browser: controle sobre cada objeto Utilitários: inclui importação de XML
POR ERIC COSTA
Apesar de ser relativamente sim- grupo de discussão mediado por pro-
eguindo os rastros da A licença do Oracle Express é bas- ples, a interface web funciona bem, fissionais da Oracle. Ao baixar o Ora-
ORACLE 10G
Edition, de olho nas pequenas em- da INFO, feitos com o sistema ope- banco de dados do Oracle Express EXPRESS EDITION
presas. O software inclui os princi- racional SUSE Linux 10.0, o Oracle para o Oracle 10g pago.
pais recursos das versões comerciais Express Edition teve bom desem- Uma grande vantagem da versão FABRICANTE Oracle
do irmão robusto e é gratuito. Em penho, sendo instalado rapidamen- Express do Oracle em relação ao tam- PRÓS Dispensa hardware
parrudo, traz recursos
contrapartida, limita o tamanho má- te num micro com processador Pen- bém gratuito MySQL está no supor- de primeira
ximo da base de dados a 4 GB, além tium 4 de 2,4 GHz, com 512 MB de te ao PL/SQL, a versão turbinada do CONTRAS Limitações ao tamanho do
banco de dados, à
do hardware usado. O gerenciador memória RAM. A instalação é bas- SQL feita pela Oracle. Com ela, é pos- memória e CPU usadas
de bancos de dados tante simples. Toda a sível acrescentar mais funcionalida- COMPATIBILIDADE 8,0
usa apenas um pro- FIQUE LIGADO administração do de em stored procedures (ou rotinas Roda em Windows e Linux
(distribuições compatíveis
armazenadas), o que pode diminuir com pacotes RPM)
cessador (caso o com- banco de dados é fei-
putador tenha mais >
Limitações tornam
ta pelo browser, o que a necessidade de manutenção futu- INSTALAÇÃO 8,0
Instalação simples e direta
o Oracle 10g Express ra dos programas que usem o ban- tanto no Windows quanto
de um) e, no máximo, também facilita o no Linux
indicado para as co de dados. Outra vantagem do Ora-
1 GB de RAM, mesmo acesso remoto, para RECURSOS 8,5
pequenas empresas e cle Express é a robustez do banco Suporte a PL/SQL,
que o micro possua quem quer deixar o integra-se com Java, C++,
os desenvolvedores de dados, que traz a base do respei- VB.NET, entre outras
mais memória. servidor afastado. linguagens
tado Oracle 10g. Para quem vai de- FERRAMENTAS 8,0
senvolver software, a versão Express Gerenciamento pelo
browser, com ferramenta
tem o mesmo suporte a linguagens de construção de consultas
36 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 37
036_ORACLE_EXPRESS-8 25/02/2006 22:30 Page 36
ORACLE EM
VERSÃO LIGHT
A EDIÇÃO GRATUITA DO PODEROSO BANCO DE DADOS
CHEGA COM RECURSOS DE SOBRA Browser: controle sobre cada objeto Utilitários: inclui importação de XML
POR ERIC COSTA
Apesar de ser relativamente sim- grupo de discussão mediado por pro-
eguindo os rastros da A licença do Oracle Express é bas- ples, a interface web funciona bem, fissionais da Oracle. Ao baixar o Ora-
ORACLE 10G
Edition, de olho nas pequenas em- da INFO, feitos com o sistema ope- banco de dados do Oracle Express EXPRESS EDITION
presas. O software inclui os princi- racional SUSE Linux 10.0, o Oracle para o Oracle 10g pago.
pais recursos das versões comerciais Express Edition teve bom desem- Uma grande vantagem da versão FABRICANTE Oracle
do irmão robusto e é gratuito. Em penho, sendo instalado rapidamen- Express do Oracle em relação ao tam- PRÓS Dispensa hardware
parrudo, traz recursos
contrapartida, limita o tamanho má- te num micro com processador Pen- bém gratuito MySQL está no supor- de primeira
ximo da base de dados a 4 GB, além tium 4 de 2,4 GHz, com 512 MB de te ao PL/SQL, a versão turbinada do CONTRAS Limitações ao tamanho do
banco de dados, à
do hardware usado. O gerenciador memória RAM. A instalação é bas- SQL feita pela Oracle. Com ela, é pos- memória e CPU usadas
de bancos de dados tante simples. Toda a sível acrescentar mais funcionalida- COMPATIBILIDADE 8,0
usa apenas um pro- FIQUE LIGADO administração do de em stored procedures (ou rotinas Roda em Windows e Linux
(distribuições compatíveis
armazenadas), o que pode diminuir com pacotes RPM)
cessador (caso o com- banco de dados é fei-
putador tenha mais >
Limitações tornam
ta pelo browser, o que a necessidade de manutenção futu- INSTALAÇÃO 8,0
Instalação simples e direta
o Oracle 10g Express ra dos programas que usem o ban- tanto no Windows quanto
de um) e, no máximo, também facilita o no Linux
indicado para as co de dados. Outra vantagem do Ora-
1 GB de RAM, mesmo acesso remoto, para RECURSOS 8,5
pequenas empresas e cle Express é a robustez do banco Suporte a PL/SQL,
que o micro possua quem quer deixar o integra-se com Java, C++,
os desenvolvedores de dados, que traz a base do respei- VB.NET, entre outras
mais memória. servidor afastado. linguagens
tado Oracle 10g. Para quem vai de- FERRAMENTAS 8,0
senvolver software, a versão Express Gerenciamento pelo
browser, com ferramenta
tem o mesmo suporte a linguagens de construção de consultas
36 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 37
038_DB2_EXPRESS 25/02/2006 22:31 Page 38
TUDO DENTRO
A VERSÃO DEGUSTAÇÃO DO BANCO DE DADOS DA IBM
seu funcionamento,
criando ou carregan-
do os bancos de da-
VEM REPLETA DE BOAS FERRAMENTAS dos de exemplo que
POR NIVALDO FORESTI o acompanham. Uma
série de caixas de diá-
epois da Microsoft e da um. Acompanhe a seguir o teste do logo e janelas de con-
38 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 39
038_DB2_EXPRESS 25/02/2006 22:31 Page 38
TUDO DENTRO
A VERSÃO DEGUSTAÇÃO DO BANCO DE DADOS DA IBM
seu funcionamento,
criando ou carregan-
do os bancos de da-
VEM REPLETA DE BOAS FERRAMENTAS dos de exemplo que
POR NIVALDO FORESTI o acompanham. Uma
série de caixas de diá-
epois da Microsoft e da um. Acompanhe a seguir o teste do logo e janelas de con-
38 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 39
038_DB2_EXPRESS 25/02/2006 22:32 Page 40
A quantidade de maioria gráficas, pa- SQLJ), .Net (qualquer linguagem su- é o limite de 4GB para a memória
utilitários disponíveis ra assegurar que as portada pelo compilador CLR) e SQL RAM. Alguns recursos encontrados
no DB2 Express-C aplicações não se- PL (Procedure Language). A SQL PL nas versões pagas, como ferramen-
impressiona. Há pro- jam prejudicadas pe- é considerada nativa e guardada tas de datawarehouse e drivers pa-
gramas para moni- lo mau uso dos re- no banco de dados como objeto ra o banco de dados Informix, não
toramento de me- cursos. São várias as DB2, reconhecida como um padrão acompanham o DB2 Express-C. Mas
mória, de aplicativos, ferramentas dispo- ANSI SQL. Uma ferramenta gráfi- quando esses recursos forem ne-
um Centro de Tare- níveis: db2batch, que ca, o Centro de Desenvolvimento, cessários, o usuário poderá adotar
fas em que podem verifica o desempe- permite o gerenciamento, desen- uma versão paga do produto sem
ser programadas ta- nho das queries em volvimento, teste e implantação de as dores e os custos de migração.
refas específicas pa- tempo real; Visual stored procedures.
ra execução em lo- Explain, que analisa A integração e o desenvolvimen- DB2 EXPRESS-C 8.2
te e a configuração graficamente as con- to de aplicações Java são pontos
Visual Explain: ferramenta FABRICANTE IBM
do sistema. Para fa- especial para a análise gráfica das sultas; Design Advi- fortes do produto. Os mais conhe-
PRÓS Bons utilitários, suporte
cilitar a vida do ad- consultas ao banco de dados sor, que sugere a co- cidos drivers estão incluídos no pa- a máquinas com dois
processadores e
ministrador ou do locação de índices cote. O ambiente Websphere Stu- replicações complexas
programador, funções como criar ou em tabelas para diminuir o tempo dio, da IBM, pode ser usado no de- CONTRAS Não tem ferramentas
de datawarehouse
alterar banco de dados, backup e re- de acesso baseado nas consultas exe- senvolvimento de aplicações com e limita a capacidade de
memória
store são controladas por assistentes. cutadas, e, finalmente, o Activity Mo- o DB2 Express-C, da mesma forma
nitor, que gera relatórios do desem- que o Visual Studio 2003, da Micro- INSTALAÇÃO 8,4
Rápida, com verificação
DESEMPENHO penho dos sistemas para análise. soft. Um driver de acesso compatí- de pré-requisitos e
primeiros passos
Conseguir um desempenho ótimo vel com o ambiente de desenvolvi- GERENCIAMENTO 9,0
das aplicações com banco de dados DESENVOLVIMENTO mento 1.1 está disponível no produ- Permite gerenciar várias
instâncias do programa,
é considerada uma combinação de O DB2 Express-C inclui os drivers e to. A documentação não é tão com- um ou mais bancos,
projetos e diagnósticos
magia negra e ciência. Na tentativa a interface necessários para o de- pleta como deveria, mas o usuário FERRAMENTAS 8,5
de se aproximar do ótimo, o DB2 Ex- senvolvimento de aplicações nas consegue as informações, em in- Replicação, central de
tarefas, centro de
press-C oferece ferramentas em sua linguagens C/C++, Java e .Net, além glês, pesquisando no site da IBM. funcionamento com
alertas, centro de
de PHP e Perl. Su- dados inteligentes
40 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 41
038_DB2_EXPRESS 25/02/2006 22:32 Page 40
A quantidade de maioria gráficas, pa- SQLJ), .Net (qualquer linguagem su- é o limite de 4GB para a memória
utilitários disponíveis ra assegurar que as portada pelo compilador CLR) e SQL RAM. Alguns recursos encontrados
no DB2 Express-C aplicações não se- PL (Procedure Language). A SQL PL nas versões pagas, como ferramen-
impressiona. Há pro- jam prejudicadas pe- é considerada nativa e guardada tas de datawarehouse e drivers pa-
gramas para moni- lo mau uso dos re- no banco de dados como objeto ra o banco de dados Informix, não
toramento de me- cursos. São várias as DB2, reconhecida como um padrão acompanham o DB2 Express-C. Mas
mória, de aplicativos, ferramentas dispo- ANSI SQL. Uma ferramenta gráfi- quando esses recursos forem ne-
um Centro de Tare- níveis: db2batch, que ca, o Centro de Desenvolvimento, cessários, o usuário poderá adotar
fas em que podem verifica o desempe- permite o gerenciamento, desen- uma versão paga do produto sem
ser programadas ta- nho das queries em volvimento, teste e implantação de as dores e os custos de migração.
refas específicas pa- tempo real; Visual stored procedures.
ra execução em lo- Explain, que analisa A integração e o desenvolvimen- DB2 EXPRESS-C 8.2
te e a configuração graficamente as con- to de aplicações Java são pontos
Visual Explain: ferramenta FABRICANTE IBM
do sistema. Para fa- especial para a análise gráfica das sultas; Design Advi- fortes do produto. Os mais conhe-
PRÓS Bons utilitários, suporte
cilitar a vida do ad- consultas ao banco de dados sor, que sugere a co- cidos drivers estão incluídos no pa- a máquinas com dois
processadores e
ministrador ou do locação de índices cote. O ambiente Websphere Stu- replicações complexas
programador, funções como criar ou em tabelas para diminuir o tempo dio, da IBM, pode ser usado no de- CONTRAS Não tem ferramentas
de datawarehouse
alterar banco de dados, backup e re- de acesso baseado nas consultas exe- senvolvimento de aplicações com e limita a capacidade de
memória
store são controladas por assistentes. cutadas, e, finalmente, o Activity Mo- o DB2 Express-C, da mesma forma
nitor, que gera relatórios do desem- que o Visual Studio 2003, da Micro- INSTALAÇÃO 8,4
Rápida, com verificação
DESEMPENHO penho dos sistemas para análise. soft. Um driver de acesso compatí- de pré-requisitos e
primeiros passos
Conseguir um desempenho ótimo vel com o ambiente de desenvolvi- GERENCIAMENTO 9,0
das aplicações com banco de dados DESENVOLVIMENTO mento 1.1 está disponível no produ- Permite gerenciar várias
instâncias do programa,
é considerada uma combinação de O DB2 Express-C inclui os drivers e to. A documentação não é tão com- um ou mais bancos,
projetos e diagnósticos
magia negra e ciência. Na tentativa a interface necessários para o de- pleta como deveria, mas o usuário FERRAMENTAS 8,5
de se aproximar do ótimo, o DB2 Ex- senvolvimento de aplicações nas consegue as informações, em in- Replicação, central de
tarefas, centro de
press-C oferece ferramentas em sua linguagens C/C++, Java e .Net, além glês, pesquisando no site da IBM. funcionamento com
alertas, centro de
de PHP e Perl. Su- dados inteligentes
40 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 41
42_BANCO_SQL5-1 25/02/2006 22:33 Page 42
TESTE/MYSQL TESTE/MYSQL
O MYSQL GANHA
quase todos os siste- rios. A principal de-
mas operacionais FIQUE LIGADO l a s é o s u p o r t e a
mais importantes. Há transações. Agora, o
>
Muito utilizado em
MÚSCULOS
versões do MySQL gerenciador é capaz
sites simples, o MySQL
para Windows, Linux, de processar transa-
5.0 já dá conta de
Unix, Solaris, Mac OS ções do tipo ACID,
aplicações corportivas
PREFERIDO PELA TURMA DO LINUX, O BANCO X, FreeBSD, HP-UX, obrigatórias em apli-
DE DADOS INCORPORA NOVAS FUNÇÕES E CORTEJA IBM AIX e outros. Há cações de missão crí-
O MERCADO CORPORATIVO também versões para plataformas tica. Uma transação, para os não
POR CARLOS MACHADO, COM LUIZ CRUZ de hardware Intel e AMD, de 32 e iniciados, é uma operação que só
64 bits, além dos chips Sparc, Al- faz sentido se todos os seus pas-
banco de dados de có- pha, PowerPC etc. INFO analisou a sos forem executados. Um exem-
42 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 43
42_BANCO_SQL5-1 25/02/2006 22:33 Page 42
TESTE/MYSQL TESTE/MYSQL
O MYSQL GANHA
quase todos os siste- rios. A principal de-
mas operacionais FIQUE LIGADO l a s é o s u p o r t e a
mais importantes. Há transações. Agora, o
>
Muito utilizado em
MÚSCULOS
versões do MySQL gerenciador é capaz
sites simples, o MySQL
para Windows, Linux, de processar transa-
5.0 já dá conta de
Unix, Solaris, Mac OS ções do tipo ACID,
aplicações corportivas
PREFERIDO PELA TURMA DO LINUX, O BANCO X, FreeBSD, HP-UX, obrigatórias em apli-
DE DADOS INCORPORA NOVAS FUNÇÕES E CORTEJA IBM AIX e outros. Há cações de missão crí-
O MERCADO CORPORATIVO também versões para plataformas tica. Uma transação, para os não
POR CARLOS MACHADO, COM LUIZ CRUZ de hardware Intel e AMD, de 32 e iniciados, é uma operação que só
64 bits, além dos chips Sparc, Al- faz sentido se todos os seus pas-
banco de dados de có- pha, PowerPC etc. INFO analisou a sos forem executados. Um exem-
42 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 43
42_BANCO_SQL5-1 25/02/2006 22:34 Page 44
TESTE/MYSQL
44 < C O L E Ç Ã O I N F O
047_POSTGRES 25/02/2006 22:39 Page 47
TESTE/POSTGRESQL
MISSÃO CRÍTICA É
PARA POSTGRE
VERSÃO 8.1 CONTA COM DRIVERS E CAMADAS DE
SOFTWARE QUE GARANTEM SUA CONECTIVIDADE
POR HELIO SILVA
V munidades de software
livre, o PostgreSQL de-
morou um pouco mais do
que o MySQL para se popularizar, pro-
recente, logo se
percebe que is-
so não é verdade.
A distribuição de
vavelmente por ser focado em aplica- códigos binários do Post-
ções críticas. Muitos dos recursos que greSQL 8.1 prontos para ins-
o MySQL apresenta na versão 5.0, tais talar está disponível apenas para Li-
como o suporte a gatilhos, stored pro- nux ou Windows. Para outras plata-
cedures e transações, já fazem parte formas Unix, é preciso baixar o códi-
do PostgreSQL há tempos. O impulso go-fonte e compilar o sistema.
veio com a versão para Windows e a No Linux, o PostgreSQL vem como
colaboração de empresas como Sun, pacote binário na maior parte das dis-
Fujitsu e Pervasive Software. Com ex- tribuições, mas para quem gosta de
periência no desenvolvimento e em- aventura e tem bastante tempo, po-
pacotamento de versões comerciais de baixar o código-fonte e compilar.
afinadas com as necessidades das cor- No ambiente Windows, o progra-
porações, elas estão
colocando terno e
gravata no produto.
O PostgreSQL
também foi vítima
dos rótulos lento e
pesado. Pode-se di-
zer que o logotipo
do produto — um
elefante azul — até
reforce essa ima-
gem. Mas, debru-
PostgreSQL: o pgAdmin faz a administração do banco
çando-se sobre a
C O L E Ç Ã O I N F O > 47
047_POSTGRES 25/02/2006 22:39 Page 48
TESTE/POSTGRESQL TESTE/POSTGRESQL
ma pode ser instalado de duas for- próprio PostgreSQL, que equivale ao greSQL faz um pequeno esforço nes- mes bases com respostas em tempo
mas: utilizando o ambiente Cygwin, PL/SQL da Oracle. Essa diversidade se sentido, implementando uma das aceitável, requisito básico para siste-
que permite, com certas restrições, facilita a vida de quem já é versado propriedades da orientação a obje- mas de datawarehouse, cujos bancos
utilizar os programas escritos para em uma dessas linguagens. to que é a herança. de dados podem chegar facilmente
Linux, ou diretamente no Windows Além do pacote básico, é sem- Para compreender a aplicação da aos terabytes. Esse tipo de sistema
XP. O Cygwin é mais indicado para pre bom dar uma checada em si- herança em um banco de dados, ima- está na ordem do dia das empresas
quem tem experiência no uso do tes que mantém projetos ligados gine o desenvolvimento de um sis- graças à redução dos custos de pro-
PostgreSQL em ambiente Linux. Já ao PostgreSQL. Um deles é o site tema para uma loja de barcos. A pri- cessamento e armazenamento, além,
a versão pronta para o Windows é pgfoundry.org, onde podem ser meira providência é criar a tabela é claro, da necessidade constante de
muito robusta, fácil e não decepcio- encontrados utilitários e até mes- Barcos com todas as características buscar competitividade.
na. A instalação no Windows pode mo sistemas completos. comuns a qualquer barco (código,
ser feita em português, mas, no fi- Uma ausência sentida é o suporte preço, descrição etc.). Em seguida, POSTGRESQL 8.1
nal, o software de administração nativo ao XML. Em aplicações com cria-se uma tabela filha que trata es- FABRICANTE PostgreSQL Global
pgAdmin se apresentará em inglês. trocas de dados entre sistemas hete- pecificamente de veleiros e que her- Development Group
rogêneos, como em operações de da as características de Barcos, acres- PRÓS Inclui replicação de dados,
processamento paralelo,
RECURSOS transmissão eletrônica de pedidos e centando-se os atributos específicos suporte a 64 bits e a
clusters
O PostgreSQL 8.1 chega bem abaste- faturas entre empresas ou intercâm- de um veleiro como a altura do mas- CONTRAS Falta de suporte nativo ao
cido de drivers e camadas de soft- bio de dados bancários, é de se es- tro e o tipo de vela. Por fim, cria-se padrão XML
ware que garantem perar que existam di- uma tabela Lanchas, que também é INSTALAÇÃO 7,0
Fácil e rápida com pacotes
sua conectividade com FIQUE LIGADO ferentes bancos atuan- filha de Barcos, adicionando-se a ela binários e instalador em
português
ferramentas de criação do do outro lado, e o atributos como potência do motor.
e extração de relató- > Recursos poderosos
mercado aponta para Alterações em Barcos, como a cria-
GERENCIAMENTO 8,5
O pgAdmin III dá acesso a
todos os recursos do
indicam o PostgreSQL banco, mas está só em
rios além, é claro, de li- o XML como melhor ção do atributo Preço Promocional, inglês
para as aplicações de
gá-lo com as lingua- forma de garantir es- por exemplo, automaticamente se FERRAMENTAS 8,5
missão crítica Conta com ferramentas de
gens de programação sa conversa. Quem refletem em Veleiros e Lanchas. geoprocessamento,
populares como Java, aderir ao PostgreSQL administração, tunning e
datawarehouse na web
Visual Basic e Delphi. A plataforma terá de escrever suas interfaces XML. SINCRONIZAÇÃO DESENVOLVIMENTO 8,0
.Net da Microsoft também não fica de Usando-se um dos seus diversos sis- Pode ser feito em Java,
Perl, PHP, TCL, C, C++ e
fora, contando com o data provider BOA HERANÇA temas de replicação, o PostgreSQL qualquer linguagem com
conectores de acesso
NpgSQL. É natural que o banco man- Um velho dilema da crescente co- pode ser aplicado em empresas de como o .Net
tenha conexões privilegiadas com seus munidade de programadores que pequeno e médio porte que têm ne- SEGURANÇA 8,5
Dispõe de criptografia
pares do software livre, como as lin- trabalham com a abordagem da cessidade de sincronização de dados para proteger
armazenamento, tráfego,
guagens Phyton, Perl, TCL e PHP. orientação a objeto (OOP) é que eles entre matriz e filiais. atributos e autenticação
Se para escrever programas de raciocinam e projetam seus sistemas Além da sincronização, o banco AVALIAÇÃO 8,3
TÉCNICA (1)
front-end existem tantas opções, o pensando em objetos e, no entanto, de dados tem evoluído em recursos PREÇO Gratuito
mesmo pode se dizer das linguagens têm de lidar com bancos de dados para resistir a falhas e operar com LICENÇA BSD
disponíveis para desenvolver funções relacionais na hora de depositar seus múltiplos processadores, o que o CUSTO/BENEFÍCIO
e processos que rodam dentro do dados. Eles gostariam de ter bancos torna uma boa opção para os pro- ONDE ENCONTRAR www.info.abril.com.br/
download/4119.shtml
banco. As opções são: PL/Perl, de dados que entendessem um pou- jetos de missão crítica. Possui tam- (1) Média ponderada considerando os seguintes itens e respectivos pesos:
Instalação (10%), Gerenciamento (35%), Ferramentas (35%),
PL/TCL, PL/Java e o PL/pgSQL do co mais sua abordagem. O Post- bém a habilidade de lidar com enor- Desenvolvimento (10%) e Segurança dos dados (10%).
48 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 49
047_POSTGRES 25/02/2006 22:39 Page 48
TESTE/POSTGRESQL TESTE/POSTGRESQL
ma pode ser instalado de duas for- próprio PostgreSQL, que equivale ao greSQL faz um pequeno esforço nes- mes bases com respostas em tempo
mas: utilizando o ambiente Cygwin, PL/SQL da Oracle. Essa diversidade se sentido, implementando uma das aceitável, requisito básico para siste-
que permite, com certas restrições, facilita a vida de quem já é versado propriedades da orientação a obje- mas de datawarehouse, cujos bancos
utilizar os programas escritos para em uma dessas linguagens. to que é a herança. de dados podem chegar facilmente
Linux, ou diretamente no Windows Além do pacote básico, é sem- Para compreender a aplicação da aos terabytes. Esse tipo de sistema
XP. O Cygwin é mais indicado para pre bom dar uma checada em si- herança em um banco de dados, ima- está na ordem do dia das empresas
quem tem experiência no uso do tes que mantém projetos ligados gine o desenvolvimento de um sis- graças à redução dos custos de pro-
PostgreSQL em ambiente Linux. Já ao PostgreSQL. Um deles é o site tema para uma loja de barcos. A pri- cessamento e armazenamento, além,
a versão pronta para o Windows é pgfoundry.org, onde podem ser meira providência é criar a tabela é claro, da necessidade constante de
muito robusta, fácil e não decepcio- encontrados utilitários e até mes- Barcos com todas as características buscar competitividade.
na. A instalação no Windows pode mo sistemas completos. comuns a qualquer barco (código,
ser feita em português, mas, no fi- Uma ausência sentida é o suporte preço, descrição etc.). Em seguida, POSTGRESQL 8.1
nal, o software de administração nativo ao XML. Em aplicações com cria-se uma tabela filha que trata es- FABRICANTE PostgreSQL Global
pgAdmin se apresentará em inglês. trocas de dados entre sistemas hete- pecificamente de veleiros e que her- Development Group
rogêneos, como em operações de da as características de Barcos, acres- PRÓS Inclui replicação de dados,
processamento paralelo,
RECURSOS transmissão eletrônica de pedidos e centando-se os atributos específicos suporte a 64 bits e a
clusters
O PostgreSQL 8.1 chega bem abaste- faturas entre empresas ou intercâm- de um veleiro como a altura do mas- CONTRAS Falta de suporte nativo ao
cido de drivers e camadas de soft- bio de dados bancários, é de se es- tro e o tipo de vela. Por fim, cria-se padrão XML
ware que garantem perar que existam di- uma tabela Lanchas, que também é INSTALAÇÃO 7,0
Fácil e rápida com pacotes
sua conectividade com FIQUE LIGADO ferentes bancos atuan- filha de Barcos, adicionando-se a ela binários e instalador em
português
ferramentas de criação do do outro lado, e o atributos como potência do motor.
e extração de relató- > Recursos poderosos
mercado aponta para Alterações em Barcos, como a cria-
GERENCIAMENTO 8,5
O pgAdmin III dá acesso a
todos os recursos do
indicam o PostgreSQL banco, mas está só em
rios além, é claro, de li- o XML como melhor ção do atributo Preço Promocional, inglês
para as aplicações de
gá-lo com as lingua- forma de garantir es- por exemplo, automaticamente se FERRAMENTAS 8,5
missão crítica Conta com ferramentas de
gens de programação sa conversa. Quem refletem em Veleiros e Lanchas. geoprocessamento,
populares como Java, aderir ao PostgreSQL administração, tunning e
datawarehouse na web
Visual Basic e Delphi. A plataforma terá de escrever suas interfaces XML. SINCRONIZAÇÃO DESENVOLVIMENTO 8,0
.Net da Microsoft também não fica de Usando-se um dos seus diversos sis- Pode ser feito em Java,
Perl, PHP, TCL, C, C++ e
fora, contando com o data provider BOA HERANÇA temas de replicação, o PostgreSQL qualquer linguagem com
conectores de acesso
NpgSQL. É natural que o banco man- Um velho dilema da crescente co- pode ser aplicado em empresas de como o .Net
tenha conexões privilegiadas com seus munidade de programadores que pequeno e médio porte que têm ne- SEGURANÇA 8,5
Dispõe de criptografia
pares do software livre, como as lin- trabalham com a abordagem da cessidade de sincronização de dados para proteger
armazenamento, tráfego,
guagens Phyton, Perl, TCL e PHP. orientação a objeto (OOP) é que eles entre matriz e filiais. atributos e autenticação
Se para escrever programas de raciocinam e projetam seus sistemas Além da sincronização, o banco AVALIAÇÃO 8,3
TÉCNICA (1)
front-end existem tantas opções, o pensando em objetos e, no entanto, de dados tem evoluído em recursos PREÇO Gratuito
mesmo pode se dizer das linguagens têm de lidar com bancos de dados para resistir a falhas e operar com LICENÇA BSD
disponíveis para desenvolver funções relacionais na hora de depositar seus múltiplos processadores, o que o CUSTO/BENEFÍCIO
e processos que rodam dentro do dados. Eles gostariam de ter bancos torna uma boa opção para os pro- ONDE ENCONTRAR www.info.abril.com.br/
download/4119.shtml
banco. As opções são: PL/Perl, de dados que entendessem um pou- jetos de missão crítica. Possui tam- (1) Média ponderada considerando os seguintes itens e respectivos pesos:
Instalação (10%), Gerenciamento (35%), Ferramentas (35%),
PL/TCL, PL/Java e o PL/pgSQL do co mais sua abordagem. O Post- bém a habilidade de lidar com enor- Desenvolvimento (10%) e Segurança dos dados (10%).
48 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 49
050_FIREBIRD 25/02/2006 22:41 Page 50
TESTE/FIREBIRD
FIREBIRD POUPA
A MÁQUINA
A VERSÃO 1.5.3 TEM RECURSOS PODEROSOS E DISPENSA
EQUIPES DE MANUTENÇÃO
POR HELIO SILVA
EMS SQL Manager: interface gráfica elegante para Firebird com jeito de Windows XP
50 < C O L E Ç Ã O I N F O
050_FIREBIRD 25/02/2006 22:43 Page 51
TESTE/FIREBIRD
base ou Firebird. Ao
final do processo
descobre-se que fo-
ram criados alguns
textos dos manuais
em arquivos texto e
PDF e apenas um
programa baseado
no velho prompt de comando. Isso br/download/4047.shtml), da H-K
porque o pacote básico não traz software, e a EMS SQL Manager
uma interface gráfica que facilite a (www.info.abril.com.br/down-
administração do banco. Existe um load/4453.shtml), da EMS Database
projeto de interface gráfica de có- Management Solutions.
digo aberto chamado FlameRobin O gerenciador EMS SQL Manager
(www.flamerobin.org), que no fu- empresta ao Firebird uma interfa-
turo deve fazer parte do pacote, ce elegante e funcional, com apa-
mas seu desenvolvimento ainda es- rência bem próxima do Windows
tá em estágio inicial. XP, usando o mesmo tipo de íco-
nes. Na versão gratuita, ele já pro-
INTERFACES vê todos os recursos necessários à
De qualquer forma, o usuário não fi- administração. Já o brasileiro DBMa-
ca desprovido de interface de geren- nager tem como vantagem o su-
ciamento. Pode escolher uma entre porte em português.
as diversas disponíveis no site do IB- Se a intenção for adquirir uma
Phoenix (www.ibphoenix.com). ferramenta para ir além das ativi-
A maior parte delas é shareware dades normais de administração,
com versões livres sem algumas então vale a pena dar uma boa olha-
funcionalidades. da no IBExpert em sua versão co-
No teste do INFOLAB, utilizamos mercial que, além da interface mais
três interfaces de ge- completa para admi-
renciamento: a DB- FIQUE LIGADO nistração, conta com
Manager (www.info. recursos arrojados
abril.com.br/down- > Feito para aplicações
como análise de per-
de médio porte, o Fire-
load/3682.shtml), da formance e até pes-
bird oferece baixo cus-
DBTools, a IBExpert quisas OLAP. Relem-
to de manutenção
(www.info.abril.com. brando, por meio do
C O L E Ç Ã O I N F O > 51
050_FIREBIRD 25/02/2006 22:44 Page 52
TESTE/FIREBIRD TESTE/FIREBIRD
52 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 53
050_FIREBIRD 25/02/2006 22:44 Page 52
TESTE/FIREBIRD TESTE/FIREBIRD
52 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 53
054_ACCESS 25/02/2006 23:04 Page 54
TESTE/ACCESS TESTE/ACCESS
O ACCESS ENTRA
terface é realmente mais prática. Com Note que o usuário não mais pre-
ela, será possível realizar mais tare- cisa chamar uma caixa de diálogo de-
fas com menos cliques na tela. Mas pois de passar por vários menus. Bas-
EM REFORMA
os usuários vão estranhar bastante. ta alterar o que quer diretamente no
painel, que fica na parte superior da
FIM DOS MENUS tela e sempre muda para adequar-se
UMA MUDANÇA DRÁSTICA NA INTERFACE COM O USUÁRIO O beta 1 do novo Office (o nome Of- à tarefa sendo realizada. Coisas co-
É A PRINCIPAL NOVIDADE DO OFFICE 12, DA MICROSOFT fice 12 não é definitivo) traz os apli- mo formatação de texto e dimensões
POR PAULO SILVESTRE cativos Excel, Word, PowerPoint, Ac- de figuras e links para páginas da web,
cess e Outlook, além de alguns pro- por exemplo, podem ser definidas
interface baseada em to para o fim de 2006, leva adiante gramas auxiliares, como o InfoPath, nesse painel superior. Em muitas si-
54 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 55
054_ACCESS 25/02/2006 23:04 Page 54
TESTE/ACCESS TESTE/ACCESS
O ACCESS ENTRA
terface é realmente mais prática. Com Note que o usuário não mais pre-
ela, será possível realizar mais tare- cisa chamar uma caixa de diálogo de-
fas com menos cliques na tela. Mas pois de passar por vários menus. Bas-
EM REFORMA
os usuários vão estranhar bastante. ta alterar o que quer diretamente no
painel, que fica na parte superior da
FIM DOS MENUS tela e sempre muda para adequar-se
UMA MUDANÇA DRÁSTICA NA INTERFACE COM O USUÁRIO O beta 1 do novo Office (o nome Of- à tarefa sendo realizada. Coisas co-
É A PRINCIPAL NOVIDADE DO OFFICE 12, DA MICROSOFT fice 12 não é definitivo) traz os apli- mo formatação de texto e dimensões
POR PAULO SILVESTRE cativos Excel, Word, PowerPoint, Ac- de figuras e links para páginas da web,
cess e Outlook, além de alguns pro- por exemplo, podem ser definidas
interface baseada em to para o fim de 2006, leva adiante gramas auxiliares, como o InfoPath, nesse painel superior. Em muitas si-
54 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 55
054_ACCESS 25/02/2006 23:05 Page 56
TESTE/ACCESS
aplicativos poderão interagir com eles passa a não aceitar mais alterações.
via internet. Há um pacote básico de O Office 12 deve ainda ganhar recur-
serviços, que pode atender a uma pe- sos que permitam a transferência de
quena empresa, que estará incluído dados, conversas por áudio e por ví-
na licença do Office. Ele oferece, por deo entre usuários. Além disso, po-
exemplo, 30 MB num servidor para a derão trocar mensagens instantâ-
hospedagem de um site e cinco con- neas com colegas com comunicado-
tas de e-mail com o domínio da em- res do MSN, da AOL e do Yahoo!.
presa. Outros serviços mais elabora-
dos, como gerenciadores online de FORMATOS DE ARQUIVOS
projetos e relatórios de despesas, es- O Office 12 destaca a gravação de
tarão disponíveis por assinatura. arquivos em XML com compressão
no padrão Zip. O objetivo é facilitar
COLABORAÇÃO NA EQUIPE a troca de dados com outros apli-
O Office 12 também traz melhorias cativos, incluindo os que rodam em
nas ferramentas de colaboração. Os servidores corporativos. Os forma-
aplicativos permitem que usuários de tos de arquivos atualmente usados
um mesmo grupo realizem tarefas continuarão disponíveis.
em conjunto. Além de poder gravar Essas mudanças são muito bem-
localmente seus documentos, os apli- vindas. Até porque, o Access conti-
cativos permitem armazená-los num nua o mesmo há dois anos, desde
servidor para acesso coletivo. As atua- quando foi lançado o Office 2003.
lizações feitas remotamente são sin- Nessa versão, o banco de dados pas-
cronizadas com os arquivos locais, fa- sou a permitir aos desenvolvedo-
cilitando as revisões. Quando o tra- res a criação de soluções mais so-
balho é concluído, um dos autores fisticadas em menor tempo. A inte-
pode “encerrar” o documento, que gração com a web foi privilegiada.
O conceito de Office
Developer Center
permitiu o trabalho
com tecnologias co-
mo XML e SQL Ser-
ver. E o banco de da-
dos passou a ter a
capacidade de pro-
duzir backups.
56 < C O L E Ç Ã O I N F O
057_INTERF_ADMINIS 25/02/2006 23:06 Page 57
TESTE/INTERFACES
ADMINISTRAÇÃO
É TUDO
MERGULHE NAS INTERFACES E DESCUBRA RECURSOS
BACANAS DO DB2 E DO SQL SERVER 2005
POR NIVALDO FORESTI
C O L E Ç Ã O I N F O > 57
057_INTERF_ADMINIS 25/02/2006 23:10 Page 58
TESTE/INTERFACES TESTE/INTERFACES
bela, basta clicar no bo- te aqui. Existe um debate intenso en- modificar ou criar novos dados. O
tão Incluir. Uma janela per- tre os especialistas para definir on- Centro de Controle permite escrever
mite criar campos do tipo de essas regras devem existir, se ca- e verificar os resultados de uma con-
INT (inteiro) com três ti- dastradas nos campos das tabelas sulta em SQL diretamente na janela
pos diferentes, Char (Ca- (restrições), nos programas de vali- Visualizar comandos. No entanto, me-
racteres) com quatro ti- dação das aplicações ou em servido- lhor do que isso é ter o programa
pos diferentes, binários res específicos para regras de negó- guiando-o pelo árduo mundo dos co-
incluindo BLOB, quatro ti- cio. Para você ter paz de espírito, é mandos SQL. Basta clicar no ícone
pos de campos gráficos, aconselhável usar as restrições em SQL e um assistente facilitará a cria-
Data, Hora, TIMESTAMP, campos, para que no futuro seus da- ção e execução de sua consulta.
Decimal, Numérico, Real, dos se mostrem inúteis. Outro deta- Com mais um clique em Executar
ponto flutuante e Doublé. lhe importante é que a forma de ca- e Acessar Plano é possível determi-
Centro de tarefas: permite Caso você deseje incluir vários cam- dastrar as restrições não é encontra- nar o custo desses comandos dentro
executar programas em lote
pos na tabela, clique em Aplicar em da na documentação. Foi necessário do seu programa. Entenda-se por
vez de OK, assim a janela permane- pesquisar exemplos na internet pa- custo o tempo que cada pedaço de-
DB2 EXPRESS-C ce aberta para a inclusão dos demais ra descobrir como fazer. mora para ser executado. Assim, com
Com uma interface extremamente campos. algumas modificações, um progra-
simples e fácil de usar, o Centro de O usuário pode definir valores-pa- JANELA DE ERROS ma otimizado será construído ou pro-
Controle programa de administra- drão para os tipos CHAR, DATE, TIME Finalmente, há alguns recursos e fun- blemas de desempenho detectados.
ção do DB2 Express-C, encara de e TIMESTAMP. Eles devem ser defi- cionalidades interessantes nesse pro- Outro procedimento comum em
frente qualquer ferramenta paga. nidos dentro de aspas simples. Adi- cesso. Primeiro, você pode voltar a interfaces de administração são os
Clique em qualquer ícone ou me- cionalmente, é possível determinar qualquer momento em qualquer pas- backups. Com o Centro de Contro-
nu, e uma série de caixas de diálo- uma fórmula para o preenchimento so e modificar opções. Segundo, ao le dá para fazer backups manuais
go e assistentes o levarão a concluir do campo. No entanto, em nenhum final você pode ver o código SQL ge- ou cronogramados de forma sim-
a tarefa desejada. lugar da documentação foram en- rado e salvá-lo para reutilização, mo- ples e prática. Mais um assistente
Para criar suas próprias tabelas contradas funções, tais como Hoje ou dificá-lo ou simplesmente rever o
no banco de dados de exemplo, Agora, ou como construir essas fór- que será feito na criação da tabela. Análise de consulta: um clique em
basta expandir a árvore de visua- mulas para incluir nos campos. O melhor de tudo é que o DB2 mos- Anexar Plano diz o custo do comando
lização existente na janela Todos Os passos seguintes são os de es- tra uma janela apontando
os Bancos de Dados, clicar na op- colher em que espaço a tabela se- erros ou com a informa-
ção Tabelas com o botão direito do rá criada, a definição de que cam- ção de sucesso durante a
mouse e escolher a opção Criar Ta- pos serão chaves, as dimensões e criação da tabela.
belas. Um assistente o levará pe- restrições. Com as restrições é pos- Um trabalho importan-
los sete passos do processo. É im- sível controlar o lixo que irá popu- te realizado nas interfaces
portante usá-lo, pois recursos co- lar a sua tabela. Você pode impe- de administração são as
mo criação de índices, restrições dir que valores acima de 10 ou me- consultas (queries). O ad-
aos dados e multidimensões são nores que 5 sejam preenchidos em ministrador ou programa-
tratadas com bastante clareza e na uma coluna ou que somente deter- dor precisa verificar infor-
ordem correta de uso. minados textos existam nela. mações, exportar dados
Para adicionar uma coluna na ta- Uma palavra de aviso é importan- para outros programas e
58 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 59
057_INTERF_ADMINIS 25/02/2006 23:10 Page 58
TESTE/INTERFACES TESTE/INTERFACES
bela, basta clicar no bo- te aqui. Existe um debate intenso en- modificar ou criar novos dados. O
tão Incluir. Uma janela per- tre os especialistas para definir on- Centro de Controle permite escrever
mite criar campos do tipo de essas regras devem existir, se ca- e verificar os resultados de uma con-
INT (inteiro) com três ti- dastradas nos campos das tabelas sulta em SQL diretamente na janela
pos diferentes, Char (Ca- (restrições), nos programas de vali- Visualizar comandos. No entanto, me-
racteres) com quatro ti- dação das aplicações ou em servido- lhor do que isso é ter o programa
pos diferentes, binários res específicos para regras de negó- guiando-o pelo árduo mundo dos co-
incluindo BLOB, quatro ti- cio. Para você ter paz de espírito, é mandos SQL. Basta clicar no ícone
pos de campos gráficos, aconselhável usar as restrições em SQL e um assistente facilitará a cria-
Data, Hora, TIMESTAMP, campos, para que no futuro seus da- ção e execução de sua consulta.
Decimal, Numérico, Real, dos se mostrem inúteis. Outro deta- Com mais um clique em Executar
ponto flutuante e Doublé. lhe importante é que a forma de ca- e Acessar Plano é possível determi-
Centro de tarefas: permite Caso você deseje incluir vários cam- dastrar as restrições não é encontra- nar o custo desses comandos dentro
executar programas em lote
pos na tabela, clique em Aplicar em da na documentação. Foi necessário do seu programa. Entenda-se por
vez de OK, assim a janela permane- pesquisar exemplos na internet pa- custo o tempo que cada pedaço de-
DB2 EXPRESS-C ce aberta para a inclusão dos demais ra descobrir como fazer. mora para ser executado. Assim, com
Com uma interface extremamente campos. algumas modificações, um progra-
simples e fácil de usar, o Centro de O usuário pode definir valores-pa- JANELA DE ERROS ma otimizado será construído ou pro-
Controle programa de administra- drão para os tipos CHAR, DATE, TIME Finalmente, há alguns recursos e fun- blemas de desempenho detectados.
ção do DB2 Express-C, encara de e TIMESTAMP. Eles devem ser defi- cionalidades interessantes nesse pro- Outro procedimento comum em
frente qualquer ferramenta paga. nidos dentro de aspas simples. Adi- cesso. Primeiro, você pode voltar a interfaces de administração são os
Clique em qualquer ícone ou me- cionalmente, é possível determinar qualquer momento em qualquer pas- backups. Com o Centro de Contro-
nu, e uma série de caixas de diálo- uma fórmula para o preenchimento so e modificar opções. Segundo, ao le dá para fazer backups manuais
go e assistentes o levarão a concluir do campo. No entanto, em nenhum final você pode ver o código SQL ge- ou cronogramados de forma sim-
a tarefa desejada. lugar da documentação foram en- rado e salvá-lo para reutilização, mo- ples e prática. Mais um assistente
Para criar suas próprias tabelas contradas funções, tais como Hoje ou dificá-lo ou simplesmente rever o
no banco de dados de exemplo, Agora, ou como construir essas fór- que será feito na criação da tabela. Análise de consulta: um clique em
basta expandir a árvore de visua- mulas para incluir nos campos. O melhor de tudo é que o DB2 mos- Anexar Plano diz o custo do comando
lização existente na janela Todos Os passos seguintes são os de es- tra uma janela apontando
os Bancos de Dados, clicar na op- colher em que espaço a tabela se- erros ou com a informa-
ção Tabelas com o botão direito do rá criada, a definição de que cam- ção de sucesso durante a
mouse e escolher a opção Criar Ta- pos serão chaves, as dimensões e criação da tabela.
belas. Um assistente o levará pe- restrições. Com as restrições é pos- Um trabalho importan-
los sete passos do processo. É im- sível controlar o lixo que irá popu- te realizado nas interfaces
portante usá-lo, pois recursos co- lar a sua tabela. Você pode impe- de administração são as
mo criação de índices, restrições dir que valores acima de 10 ou me- consultas (queries). O ad-
aos dados e multidimensões são nores que 5 sejam preenchidos em ministrador ou programa-
tratadas com bastante clareza e na uma coluna ou que somente deter- dor precisa verificar infor-
ordem correta de uso. minados textos existam nela. mações, exportar dados
Para adicionar uma coluna na ta- Uma palavra de aviso é importan- para outros programas e
58 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 59
057_INTERF_ADMINIS 25/02/2006 23:11 Page 60
TESTE/INTERFACES TESTE/INTERFACES
nexões simultâneas, tor- sas configurações de visualização per- so, desse menu é possível reorgani-
nando o SQL Server Ex- mitem criar um ambiente único pa- za-los ou recria-los. O mesmo acon-
press muito mais usável. ra cada usuário. tece com funções e stored procedu-
Mas existem limitações. A res, todas a um clique do seu mouse.
memória máxima supor- UM CLIQUE Outro recurso interessante é o de
tada é de 1GB de RAM e Criar tabelas e colunas é trabalho pa- monitoração. Uma janela específica
limitado a somente um ra um clique no mouse. Todas as in- permite verificar quem ou que pro-
processador. O tamanho formações se encontram disponíveis, cessos estão consumindo os recur-
máximo do banco de da- o banco de dados, a tabela, as colu- sos do servidor onde está o SQL Ser-
dos é de 4GB. Além disso, nas e as todas as propriedades en- ver Express 2005. Muito útil para diag-
nem todos os recursos volvidas em cada um deles. Os cam- nosticar problemas de desempenho.
existentes nas versões pa- pos suportam os mais variados tipos No geral o programa de adminis-
SQL Express: todos os elementos gas estão disponíveis, o que inclui o e alguns criados pelo próprio usuá- tração é bom de se utilizar. No en-
disponiveis para criar tabelas
serviço de relatórios (que estará dis- rio para facilitar a padronização por tanto, alguns recursos estão faltan-
ponível em uma versão avançada do todo o sistema. Por exemplo, você do. Por exemplo, as tarefas de ma-
o leva pelo caminho certo. O DB2 Express), o serviço de notificação, o pode criar um campo chamado no- nutenção se resumem a um assisten-
Express-C conta ainda com um Con- serviço de análise, a pesquisa full text, me que tenha um tamanho específi- te para backup, pouco para suportar
trole de Replicação que será mui- DTS e as facilidades de OLAP (Onli- co e pode ser escolhido em qualquer aplicações robustas. Sentimos a fal-
to útil nas situações em que você ne Analytical Processing). tabela criada. O DB2 também tem es- ta também de importadores e expor-
quer manter seus sistemas em fun- O SQL Management Server Stu- sa função, mas ela está um pouco de- tadores de dados, o que dificulta aos
cionamento, mesmo quando hou- dio Express CTP é a suíte de admi- sorganizada e escondida na ferra- novatos migrar dados de outros apli-
ver panes de energia ou outras ca- nistração e desenvolvimento do SQL menta de administração. cativos. Essa função existe, mas so-
tástrofes ou para ativar outros apli- Server Express Edition que substi- As consultas podem ser feitas co- mente para importar dados previa-
cativos quando determinados da- tui o Query Analyser e o Enterprise mo no QBE, selecionado-se tabelas, mente exportados de alguma tabela
dos são modificados. Manager da versão anterior, além campos e opções de filtro, ou escre- do SQL Express.
Por fim, o Controle de Tarefas per- de trazer várias facilidades. Embo- vendo-se o comando SQL diretamen-
mite executar programas em lote tais ra complexa, a ferramenta é única te. Nesse caso, o DB2 é um pouco mais Monitoração: verifica os processos
como manutenções, exportações de e integrada para a realização de to- intuitivo para os iniciantes com o seu que consomem recursos do servidor
arquivo, importações de dados de das as tarefas necessárias. Você po- assistente. Em todas as ja-
outras aplicações etc. de mudar a estrutura de uma base nelas é possível se realizar
de dados, realizar consultas e ou- filtros. Os filtros abrem ja-
SQL SERVER 2005 EXPRESS tras tarefas importantes. nelas que permitem um
O SQL Server 2005 Express veio subs- Uma série de assistentes e facili- acesso mais amigável pa-
tituir o MSDE (Microsoft SQL Server dades fazem do SQL Management ra os que estão começan-
Desktop Engine). Essa mudança es- Server Studio Express uma grande do no trabalho de progra-
tá fazendo bem a todos que usavam ferramenta para os administradores mação. Criar índices é fácil
a versão Express anterior. Foi elimi- e programadores. Particularmente, e intuitivo. Basta clicar no
nado o Governor do MSDE, que tor- a capacidade de usar e reusar scripts campo ou na pasta índice
nava mais lenta a aplicação quando para a criação ou manutenção das da tabela e criar índices, até
o programa tinha mais de cinco co- bases de dados. Além disso, as diver- mesmo em XML. Além dis-
60 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 61
057_INTERF_ADMINIS 25/02/2006 23:11 Page 60
TESTE/INTERFACES TESTE/INTERFACES
nexões simultâneas, tor- sas configurações de visualização per- so, desse menu é possível reorgani-
nando o SQL Server Ex- mitem criar um ambiente único pa- za-los ou recria-los. O mesmo acon-
press muito mais usável. ra cada usuário. tece com funções e stored procedu-
Mas existem limitações. A res, todas a um clique do seu mouse.
memória máxima supor- UM CLIQUE Outro recurso interessante é o de
tada é de 1GB de RAM e Criar tabelas e colunas é trabalho pa- monitoração. Uma janela específica
limitado a somente um ra um clique no mouse. Todas as in- permite verificar quem ou que pro-
processador. O tamanho formações se encontram disponíveis, cessos estão consumindo os recur-
máximo do banco de da- o banco de dados, a tabela, as colu- sos do servidor onde está o SQL Ser-
dos é de 4GB. Além disso, nas e as todas as propriedades en- ver Express 2005. Muito útil para diag-
nem todos os recursos volvidas em cada um deles. Os cam- nosticar problemas de desempenho.
existentes nas versões pa- pos suportam os mais variados tipos No geral o programa de adminis-
SQL Express: todos os elementos gas estão disponíveis, o que inclui o e alguns criados pelo próprio usuá- tração é bom de se utilizar. No en-
disponiveis para criar tabelas
serviço de relatórios (que estará dis- rio para facilitar a padronização por tanto, alguns recursos estão faltan-
ponível em uma versão avançada do todo o sistema. Por exemplo, você do. Por exemplo, as tarefas de ma-
o leva pelo caminho certo. O DB2 Express), o serviço de notificação, o pode criar um campo chamado no- nutenção se resumem a um assisten-
Express-C conta ainda com um Con- serviço de análise, a pesquisa full text, me que tenha um tamanho específi- te para backup, pouco para suportar
trole de Replicação que será mui- DTS e as facilidades de OLAP (Onli- co e pode ser escolhido em qualquer aplicações robustas. Sentimos a fal-
to útil nas situações em que você ne Analytical Processing). tabela criada. O DB2 também tem es- ta também de importadores e expor-
quer manter seus sistemas em fun- O SQL Management Server Stu- sa função, mas ela está um pouco de- tadores de dados, o que dificulta aos
cionamento, mesmo quando hou- dio Express CTP é a suíte de admi- sorganizada e escondida na ferra- novatos migrar dados de outros apli-
ver panes de energia ou outras ca- nistração e desenvolvimento do SQL menta de administração. cativos. Essa função existe, mas so-
tástrofes ou para ativar outros apli- Server Express Edition que substi- As consultas podem ser feitas co- mente para importar dados previa-
cativos quando determinados da- tui o Query Analyser e o Enterprise mo no QBE, selecionado-se tabelas, mente exportados de alguma tabela
dos são modificados. Manager da versão anterior, além campos e opções de filtro, ou escre- do SQL Express.
Por fim, o Controle de Tarefas per- de trazer várias facilidades. Embo- vendo-se o comando SQL diretamen-
mite executar programas em lote tais ra complexa, a ferramenta é única te. Nesse caso, o DB2 é um pouco mais Monitoração: verifica os processos
como manutenções, exportações de e integrada para a realização de to- intuitivo para os iniciantes com o seu que consomem recursos do servidor
arquivo, importações de dados de das as tarefas necessárias. Você po- assistente. Em todas as ja-
outras aplicações etc. de mudar a estrutura de uma base nelas é possível se realizar
de dados, realizar consultas e ou- filtros. Os filtros abrem ja-
SQL SERVER 2005 EXPRESS tras tarefas importantes. nelas que permitem um
O SQL Server 2005 Express veio subs- Uma série de assistentes e facili- acesso mais amigável pa-
tituir o MSDE (Microsoft SQL Server dades fazem do SQL Management ra os que estão começan-
Desktop Engine). Essa mudança es- Server Studio Express uma grande do no trabalho de progra-
tá fazendo bem a todos que usavam ferramenta para os administradores mação. Criar índices é fácil
a versão Express anterior. Foi elimi- e programadores. Particularmente, e intuitivo. Basta clicar no
nado o Governor do MSDE, que tor- a capacidade de usar e reusar scripts campo ou na pasta índice
nava mais lenta a aplicação quando para a criação ou manutenção das da tabela e criar índices, até
o programa tinha mais de cinco co- bases de dados. Além disso, as diver- mesmo em XML. Além dis-
60 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 61
062_GUIA_TAB_ACCESS 25/02/2006 23:15 Page 62
TUTORIAL/TABELAS TUTORIAL/TABELAS
MISTÉRIO
UM ROTEIRO ESPERTO PARA ENTENDER CADA ITEM
de Tamanho do
Campo para esse ti-
po de dado é tam-
E CRIAR TABELAS COM TOQUE PROFISSIONAL bém muito impor-
POR DANILO WITZEL tante. Veja na tabe-
la “O tamanho dos
riar tabelas é uma tare- opções na coluna Tipo de Dados. Es- números” o quanto
62 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 63
062_GUIA_TAB_ACCESS 25/02/2006 23:15 Page 62
TUTORIAL/TABELAS TUTORIAL/TABELAS
MISTÉRIO
UM ROTEIRO ESPERTO PARA ENTENDER CADA ITEM
de Tamanho do
Campo para esse ti-
po de dado é tam-
E CRIAR TABELAS COM TOQUE PROFISSIONAL bém muito impor-
POR DANILO WITZEL tante. Veja na tabe-
la “O tamanho dos
riar tabelas é uma tare- opções na coluna Tipo de Dados. Es- números” o quanto
62 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 63
062_GUIA_TAB_ACCESS 25/02/2006 23:19 Page 64
TUTORIAL/TABELAS TUTORIAL/TABELAS
64 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 65
062_GUIA_TAB_ACCESS 25/02/2006 23:19 Page 64
TUTORIAL/TABELAS TUTORIAL/TABELAS
64 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 65
062_GUIA_TAB_ACCESS 25/02/2006 23:22 Page 66
TUTORIAL/TABELAS
66 < C O L E Ç Ã O I N F O
062_GUIA_TAB_ACCESS 25/02/2006 23:23 Page 67
TUTORIAL/TABELAS
outras preciosidades
sobre como exibir o
texto quando ele é
digitado.
■ NÚMERO E
MOEDA Segue o
mesmo padrão do ti-
po Texto e Memo-
rando, porém com
quatro partes. A pri-
meira trata os positivos; a segunda, aparece “Ativo”, em vermelho; ca-
os negativos; a terceira, o zero; e a so contrário, “Inativo”, em preto.
última, o nulo. Um campo que in- ■ DATA/HORA Esse formato não
forma saldos financeiros pode ter segue o mesmo padrão dos anterio-
o seguinte formato: res: não é dividido em partes. O má-
“R$”#,00[Azul];“R$”#,00[Verme- ximo que você pode fazer é definir
lho];“Zero”;“não informado” a cor do texto. Mas a propriedade
Se o saldo é positivo, ele é exibi- do formato de um campo do tipo
do em formato moeda e em cor azul; Data/Hora é muito importante, pois
se negativo, aparece em vermelho; ele é que define o que será exibido
se zero, mostra “Zero”; e se não há da informação digitada pelo usuá-
informações naquele campo, apa- rio. Você pode fazer várias combi-
rece a expressão “não informado”. nações. Por exemplo: para exibir
■ SIM/NÃO Esse formato se divi- apenas o mês, o ano, a hora e os mi-
de em três partes. A primeira não nutos, defina o formato assim: mm/
afeta em nada os resultados, porém yyyy hh:nn (veja bem: as duas últi-
tem de existir. Portanto, o formato mas letras são enes, de navio, e não
começa com ponto-e-vírgula (ou se- emes, de minuto, como se espera).
ja, o primeiro item fica em branco); Recomendo que você veja na Aju-
a segunda é o formato para valores da as letras e caracteres que você
verdadeiros; e a terceira para valo- pode utilizar no formato de datas,
res falsos. Um exemplo clássico: o pois tem algumas muito interessan-
campo Situação informa se o fun- tes, como as que retornam o trimes-
cionário está ativo ou não. Então, tre, a semana e outros. Quero apro-
ele pode ter o seguinte formato: veitar o assunto para mostrar como
;“Ativo”[Vermelho]; “Inativo” [Pre- se deve definir o formato juntamen-
to]. Se o funcionário está na ativa, te com a máscara de entrada para
C O L E Ç Ã O I N F O > 67
062_GUIA_TAB_ACCESS 25/02/2006 23:53 Page 68
TUTORIAL/TABELAS TUTORIAL/TABELAS
não deixar que seu campo caia no nenhum dos filtros. Um sistema pro- sempre à regra definida na tabela. de propriedades da tabela. Na pro-
bug do ano 2000, que nada mais é fissional não pode deixar que isso Se porventura você definiu outra priedade Regra de Validação, digi-
do que entrar com os quatro dígi- aconteça. Para isso existe a regra de regra para o controle, o valor digi- te a seguinte regra:
tos do ano e exibi-los. Deve-se de- validação do campo. É muito simples: tado terá que atender às duas re- [SetorA]+[SetorB]+[SetorC]=100
finir para os campos que irão arma- para o caso mencionado, basta digi- gras, tanto a do campo na tabela Uma propriedade complementar à
zenar datas a seguinte máscara de tar a seguinte regra na propriedade quanto a do controle. A consistên- Regra de Validação é a Texto de Vali-
entrada: 00/00/0099. E o seu for- Regra de Validação do campo Sexo: cia ainda pode ser feita no nível do dação. Nessa propriedade você inse-
mato deve ser: “F” Ou “M”. Pronto, o campo só acei- registro. Os exemplos do campo Se- re um texto personalizado para ser
dd/mm/yyyy tará F ou M como conteúdo. xo e do Salário cuidam da consis- mostrado, em vez da mensagem-pa-
Uma nota quanto a essa regra im- tência no nível do campo. drão do Access, quando o usuário di-
CONSISTÊNCIA DOS DADOS posta ao campo Sexo é que o cam- A consistência de registro funcio- gita um valor incorreto.
A propriedade Regra de Validação é po passa a ser de preenchimento obri- na da seguinte forma: imagine uma
superimportante para obter dados gatório. Ou seja, ele não aceitará nu- tabela onde são cadastrados os pro- INTEGRIDADE DOS DADOS
mais seguros desde o momento de lo (vazio). Outro exemplo: num cam- dutos e a porcentagem de cada se- Exemplo clássico: o número de CPF
sua edição, não permitindo que o po onde se deve cadastrar o salário tor da empresa na participação das de uma pessoa é único — ou seja, ne-
usuário digite qualquer coisa e aca- do funcionário numa empresa cujo vendas. A tabela contém os cam- nhuma outra pessoa pode ter um CPF
be gerando erros no sistema. Imagi- salário mínimo é 500 reais. A regra pos Produto, SetorA, SetorB, SetorC. igual ao de outra. Portanto, não pode
ne que o seu cadastro de funcioná- seria, então, “maior que 500”. No en- Como se trata de porcentagem, a haver em seu cadastro de clientes dois
rios tem o campo Sexo, que deve ser tanto, pode-se não saber o salário do soma das parcelas de todos os se- ou mais RGs iguais. Para evitar isso,
preenchido com “M” ou “F”. Mas um funcionário no momento em que ele tores deve ser igual a 100. Para im- basta selecionar, na propriedade In-
usuário engraçadinho resolve colo- é cadastrado: o valor será informa- plementar essa regra, com a tabe- dexado do campo CPF, a opção Sim
car “H” na ficha de um funcionário. do depois. Para dar incluir essa hipó- la aberta em modo Design, clique (Duplicação não autorizada). Você po-
Numa parte qualquer do sistema, vo- tese, a regra deve ser a seguinte: no botão Propriedades, na barra de de querer uma integridade com dois
cê filtra homens num bloco e mulhe- >500 Ou Nulo ferramentas, a fim de exibir a folha campos. O número de um aluno na
res em outro. Por causa do usuário Ao contrário das outras proprie-
que resolveu fazer graça, o funcio- dades até aqui apresentadas, os con- MÁSCARAS DE ENTRADA
nário em questão não aparecerá em troles vinculados ao campo com re- Caracteres utilizados na propriedade Máscaras de Entrada
gra de validação her-
CARACTERE DESCRIÇÃO CARACTERE DESCRIÇÃO
dam, no formulário,
L0 Dígito (de 0 a 9, entrada obrigatória) C Qualquer caractere ou um
a regra definida na espaço (entrada opcional)
tabela. Portanto, 9 Dígito ou espaço (entrada não obrigatória) ,,:;-/ Marcador decimal e separadores
de milhares, de data e de hora
mesmo que você # Dígito ou espaço (entrada não obri-
gatória; os espaços são exibidos como < Converte todos os caracteres
mude a regra para o vazios quando no modo Edição, mas os para letras minúsculas
vazios são removidos quando os dados
controle vinculado são salvos; sinais de adição e subtração > Converte todos os caracteres
são permitidos) para letras maiúsculas
ao campo, o valor L Letra (de A a Z, entrada obrigatória) ! Define que a máscara de entrada
que o usuário digi- ? Letra (de A a Z, entrada opcional) seja exibida da direita para a
esquerda, e não da esquerda
tar deve satisfazer a Letra ou dígito (entrada opcional) para a direita
68 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 69
062_GUIA_TAB_ACCESS 25/02/2006 23:53 Page 68
TUTORIAL/TABELAS TUTORIAL/TABELAS
não deixar que seu campo caia no nenhum dos filtros. Um sistema pro- sempre à regra definida na tabela. de propriedades da tabela. Na pro-
bug do ano 2000, que nada mais é fissional não pode deixar que isso Se porventura você definiu outra priedade Regra de Validação, digi-
do que entrar com os quatro dígi- aconteça. Para isso existe a regra de regra para o controle, o valor digi- te a seguinte regra:
tos do ano e exibi-los. Deve-se de- validação do campo. É muito simples: tado terá que atender às duas re- [SetorA]+[SetorB]+[SetorC]=100
finir para os campos que irão arma- para o caso mencionado, basta digi- gras, tanto a do campo na tabela Uma propriedade complementar à
zenar datas a seguinte máscara de tar a seguinte regra na propriedade quanto a do controle. A consistên- Regra de Validação é a Texto de Vali-
entrada: 00/00/0099. E o seu for- Regra de Validação do campo Sexo: cia ainda pode ser feita no nível do dação. Nessa propriedade você inse-
mato deve ser: “F” Ou “M”. Pronto, o campo só acei- registro. Os exemplos do campo Se- re um texto personalizado para ser
dd/mm/yyyy tará F ou M como conteúdo. xo e do Salário cuidam da consis- mostrado, em vez da mensagem-pa-
Uma nota quanto a essa regra im- tência no nível do campo. drão do Access, quando o usuário di-
CONSISTÊNCIA DOS DADOS posta ao campo Sexo é que o cam- A consistência de registro funcio- gita um valor incorreto.
A propriedade Regra de Validação é po passa a ser de preenchimento obri- na da seguinte forma: imagine uma
superimportante para obter dados gatório. Ou seja, ele não aceitará nu- tabela onde são cadastrados os pro- INTEGRIDADE DOS DADOS
mais seguros desde o momento de lo (vazio). Outro exemplo: num cam- dutos e a porcentagem de cada se- Exemplo clássico: o número de CPF
sua edição, não permitindo que o po onde se deve cadastrar o salário tor da empresa na participação das de uma pessoa é único — ou seja, ne-
usuário digite qualquer coisa e aca- do funcionário numa empresa cujo vendas. A tabela contém os cam- nhuma outra pessoa pode ter um CPF
be gerando erros no sistema. Imagi- salário mínimo é 500 reais. A regra pos Produto, SetorA, SetorB, SetorC. igual ao de outra. Portanto, não pode
ne que o seu cadastro de funcioná- seria, então, “maior que 500”. No en- Como se trata de porcentagem, a haver em seu cadastro de clientes dois
rios tem o campo Sexo, que deve ser tanto, pode-se não saber o salário do soma das parcelas de todos os se- ou mais RGs iguais. Para evitar isso,
preenchido com “M” ou “F”. Mas um funcionário no momento em que ele tores deve ser igual a 100. Para im- basta selecionar, na propriedade In-
usuário engraçadinho resolve colo- é cadastrado: o valor será informa- plementar essa regra, com a tabe- dexado do campo CPF, a opção Sim
car “H” na ficha de um funcionário. do depois. Para dar incluir essa hipó- la aberta em modo Design, clique (Duplicação não autorizada). Você po-
Numa parte qualquer do sistema, vo- tese, a regra deve ser a seguinte: no botão Propriedades, na barra de de querer uma integridade com dois
cê filtra homens num bloco e mulhe- >500 Ou Nulo ferramentas, a fim de exibir a folha campos. O número de um aluno na
res em outro. Por causa do usuário Ao contrário das outras proprie-
que resolveu fazer graça, o funcio- dades até aqui apresentadas, os con- MÁSCARAS DE ENTRADA
nário em questão não aparecerá em troles vinculados ao campo com re- Caracteres utilizados na propriedade Máscaras de Entrada
gra de validação her-
CARACTERE DESCRIÇÃO CARACTERE DESCRIÇÃO
dam, no formulário,
L0 Dígito (de 0 a 9, entrada obrigatória) C Qualquer caractere ou um
a regra definida na espaço (entrada opcional)
tabela. Portanto, 9 Dígito ou espaço (entrada não obrigatória) ,,:;-/ Marcador decimal e separadores
de milhares, de data e de hora
mesmo que você # Dígito ou espaço (entrada não obri-
gatória; os espaços são exibidos como < Converte todos os caracteres
mude a regra para o vazios quando no modo Edição, mas os para letras minúsculas
vazios são removidos quando os dados
controle vinculado são salvos; sinais de adição e subtração > Converte todos os caracteres
são permitidos) para letras maiúsculas
ao campo, o valor L Letra (de A a Z, entrada obrigatória) ! Define que a máscara de entrada
que o usuário digi- ? Letra (de A a Z, entrada opcional) seja exibida da direita para a
esquerda, e não da esquerda
tar deve satisfazer a Letra ou dígito (entrada opcional) para a direita
68 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 69
062_GUIA_TAB_ACCESS 25/02/2006 23:31 Page 70
TUTORIAL/TABELAS
Valor-padrão: não é
preciso digitar o item
que se repete no campo
70 < C O L E Ç Ã O I N F O
071_RELA_VEND_ORACLE 25/02/2006 23:56 Page 71
TUTORIAL/ORACLE EXPRESS
RELATÓRIO FEITO
COM VIEWS
APRENDA A CRIAR UMA TABELA VIRTUAL QUE FAÇA AS
CONTAS NECESSÁRIAS PARA UM RELATÓRIO DE VENDAS
POR CARLOS CHERNIJ, COM FRED CARBONARE
U lidades disponíveis no
gratuito Oracle 10g Ex-
press Edition — ou Ora-
cle XE — são as views, tabelas vir-
cos de dados complexos com diver-
sas tabelas que formam conjuntos de
dados, relatórios etc. E não são privi-
légio do Oracle — podem ser encon-
tuais que podem ser usadas para tradas também em bancos de dados
poupar trabalho do programador como PostgreSQL, MS SQL Server e
na hora de criar consultas no ban- MySQL 5.0. Neste tutorial, utilizaremos
co de dados. As views não existem as views para gerar um relatório de
fisicamente — são geradas pelas vendas. Detalhe importante: o Oracle
consultas. Mas, depois de criadas, XE ainda está em versão beta (no co-
elas se comportam exatamente co- meço de fevereiro de 2006, foi colo-
mo uma tabela. Assim, as alterações cada à disposição dos internautas a
realizadas na view são repassadas edição Release Candidate 3). Por con-
para a tabela física envolvida. ta disso, algumas funções podem apre-
Oracle XE: a criação da views e a administração do banco de dados é feita via web
C O L E Ç Ã O I N F O > 71
071_RELA_VEND_ORACLE 25/02/2006 23:33 Page 72
3 . CRIANDO AS TABELAS
Ainda na tela SQL Scripts (Home > SQL
> SQL Scripts), clique no ícone do script
Criar. Será aberta a janela do Script
Editor com o código referente à cria-
ção das tabelas. Clique no botão Run,
que fica na parte superior da tela. Se-
rá aberta a tela Run Script, onde é ne-
cessário confirmar a operação, clican-
Scripts: carregue e use o ícone Criar Visualize: clique na aba Data para ver dados inseridos durante a criação das tabelas
do novamente no botão Run. Após a
72 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 73
071_RELA_VEND_ORACLE 25/02/2006 23:33 Page 72
3 . CRIANDO AS TABELAS
Ainda na tela SQL Scripts (Home > SQL
> SQL Scripts), clique no ícone do script
Criar. Será aberta a janela do Script
Editor com o código referente à cria-
ção das tabelas. Clique no botão Run,
que fica na parte superior da tela. Se-
rá aberta a tela Run Script, onde é ne-
cessário confirmar a operação, clican-
Scripts: carregue e use o ícone Criar Visualize: clique na aba Data para ver dados inseridos durante a criação das tabelas
do novamente no botão Run. Após a
72 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 73
071_RELA_VEND_ORACLE 25/02/2006 23:35 Page 74
TUTORIAL/ORACLE EXPRESS
74 < C O L E Ç Ã O I N F O
075_TUT GUIA DB2 25/02/2006 23:41 Page 75
TUTORIAL/CONSULTAS
CRIE PESQUISAS
COM CRITÉRIOS
SIGA OS PASSOS PARA MONTAR DE CONSULTAS SIMPLES A
BUSCAS COM PARÂMETROS VARIÁVEIS NO DB2
POR FRED CARBONARE
1 . BAIXE OS COMANDOS
Para facilitar a compreensão, primei-
ramente faça o download do arquivo
db2.zip no endereço ftp://ftp.info.
abril.com.br/ebd_db2.zip e descom- Identificação: dê o nome Consulta
pacte-o. Nesse arquivo você encon-
trará os comandos SQL necessários Ao dar um duplo clique sobre a ta-
para criar a tabela de exemplo. bela Clientes, veremos o seu con-
teúdo. Como você pode notar, tra-
2 . CRIE A TABELA ta-se de uma tabela simples, que
No DB2 Express-C, crie um banco de armazena uma lista de clientes e as
dados padrão chamado Consulta. Em suas respectivas cidades.
C O L E Ç Ã O I N F O > 75
075_TUT GUIA DB2 25/02/2006 23:58 Page 76
TUTORIAL/CONSULTAS TUTORIAL/CONSULTAS
76 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 77
075_TUT GUIA DB2 25/02/2006 23:58 Page 76
TUTORIAL/CONSULTAS TUTORIAL/CONSULTAS
76 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 77
078_MY_ADMIN1 26/02/2006 00:00 Page 78
O PHPMYADMIN
blema, verifique se essa porta está linhas horizontais, que são chama-
liberada no firewall. das, respectivamente, de campos e
registros. Vamos criar um pequeno
3 . AUTENTICAÇÃO
DOMA O MYSQL
banco de dados com o cadastro de
Por padrão, o phpMyAdmin usa a clientes de uma empresa qualquer.
autenticação baseada no computa- Para começar, na página inicial do
APRENDA A USAR O PHPMYADMIN PARA CRIAR dor. Você indica uma máquina clien- phpMyAdmin, procure o campo
BANCOS DE DADOS SEM ESCREVER EM SQL te e ele só faz a conexão com ela. “Criar novo banco de dados”. Digi-
POR TONI CAVALHEIRO Vamos alterar isso para que a au- te a palavra empresa nele e clique
tenticação seja feita com base no no botão Criar. Todos os nomes dos
nome de usuário. Para isso, loca- bancos de dados devem ser grafa-
opular por ser um geren- 1. INSTALAÇÃO lize a seguinte linha no arquivo dos em letras minúsculas.
78 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 79
078_MY_ADMIN1 26/02/2006 00:00 Page 78
O PHPMYADMIN
blema, verifique se essa porta está linhas horizontais, que são chama-
liberada no firewall. das, respectivamente, de campos e
registros. Vamos criar um pequeno
3 . AUTENTICAÇÃO
DOMA O MYSQL
banco de dados com o cadastro de
Por padrão, o phpMyAdmin usa a clientes de uma empresa qualquer.
autenticação baseada no computa- Para começar, na página inicial do
APRENDA A USAR O PHPMYADMIN PARA CRIAR dor. Você indica uma máquina clien- phpMyAdmin, procure o campo
BANCOS DE DADOS SEM ESCREVER EM SQL te e ele só faz a conexão com ela. “Criar novo banco de dados”. Digi-
POR TONI CAVALHEIRO Vamos alterar isso para que a au- te a palavra empresa nele e clique
tenticação seja feita com base no no botão Criar. Todos os nomes dos
nome de usuário. Para isso, loca- bancos de dados devem ser grafa-
opular por ser um geren- 1. INSTALAÇÃO lize a seguinte linha no arquivo dos em letras minúsculas.
78 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 79
078_MY_ADMIN1 26/02/2006 00:01 Page 80
80 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 81
078_MY_ADMIN1 26/02/2006 00:01 Page 80
80 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 81
078_MY_ADMIN1 26/02/2006 00:01 Page 82
TUTORIAL/INTERFACE WEB
82 < C O L E Ç Ã O I N F O
083_084_AJAX 26/02/2006 00:20 Page 83
TUTORIAL/DESENVOLVIMENTO
ATUALIZAÇÃO É
COM O AJAX
COMBINAÇÃO DE VÁRIAS TECNOLOGIAS, O AJAX AGILIZA
OS APLICATIVOS QUE ACESSAM BANCOS DE DADOS ONLINE
POR CARLOS CHERNIJ
Ajax vem dando o que que devolve uma nova página com o
C O L E Ç Ã O I N F O > 83
083_084_AJAX 26/02/2006 00:21 Page 84
TUTORIAL/DESENVOLVIMENTO TUTORIAL/DESENVOLVIMENTO
84 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 85
083_084_AJAX 26/02/2006 00:21 Page 84
TUTORIAL/DESENVOLVIMENTO TUTORIAL/DESENVOLVIMENTO
84 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 85
086_CONSULTA_TAB_ACCESS 26/02/2006 00:22 Page 86
TUTORIAL/CONSULTAS TUTORIAL/CONSULTAS
NO ACCESS
MONTE CONSULTAS COM DUAS TABELAS E ESCAPE DAS
para abrigar a letra da música. O
campo do tipo Texto tem capacida-
de máxima para 255 caracteres. A
letra não caberia nele. Por sua vez,
PEGADINHAS NA LÓGICA DOS DADOS
o campo de memorando suporta
POR CARLOS MACHADO
até 65 536 caracteres. Dê à segun-
da tabela o nome tabLetras. Tam-
uem gosta de música e pondente, no desenho, à área em que bém não haveria problema se o
Q organização costuma
não resistir a um banco
de dados. Em geral, uti-
liza o Access, que já está ali mesmo
os dois conjuntos se superpõem. Ago-
ra que já caracterizamos o problema,
vamos à solução, passo a passo.
campo Título, que é o ponto comum
entre as tabelas, tivesse nome dife-
rente nas duas. No entanto, para fa-
cilitar a compreensão, é mais cô- Consulta 2: o resultado (embaixo) não
no PC, no pacote Office. Vamos su- 1. A TABELA DE MP3 modo usar o mesmo nome.
é igual ao da consulta 1
por que você tenha montado uma Para acompanhar o exemplo, crie bela não tem nenhum parentesco
tabela no Access reunindo todos os no Access uma tabela com os cam- 3. CRIE A CONSULTA com seu homônimo na outra.
seus arquivos de música em MP3. pos Intérprete e Título, ambos do ti- Na janela Banco de Dados, clique na
Como também gosta de analisar as po Texto. Salve-a com o nome orelha Consulta. Dê um duplo clique 5 . O PULO-D0-GATO
letras — e decorar para cantar no tabMP3. Essa tabela, claro, vai con- no comando Criar Consulta no Modo Com o mouse, clique no campo Tí-
chuveiro —, criou uma tabela para ter a lista das músicas. Design para projetar um objeto des- tulo de uma tabela e arraste-o para
elas. Nem todas as músicas têm sua se tipo a partir do zero. O Access abre o campo de mesmo nome na outra
letra no banco, e você quer saber duas janelas: Mostrar Tabela e Con- tabela. Uma linha passa a ligar os
quais MP3 dispõem de letras. sulta1. Selecione (mouse mais a te- dois campos, indicando que a con-
A solução pode ser encontrada no cla Ctrl) o nome das duas tabelas — sulta deve procurar neles informa-
Access a um toque do mouse, sem tabMP3 e tabLetras — na primeira ja- ções iguais. Dica: o procedimento
programação. Será preciso construir nela e clique no botão Adicionar. também funciona quando o nome
uma consulta simples, com o objetivo dos dois campos não é o mesmo.
de identificar, em duas tabelas, quais 4. A LINHA NEGRA No quadro tabLetras, arraste pa-
registros contêm as mesmas informa- Dois quadros com os campos das ra a linha Campo, embaixo, os cam-
ções em dois campos indicados: um tabelas aparecem na área superior pos Título e Intérprete. Opcional-
em cada tabela. Essa solução pode ser de Consulta1. Se as duas tabelas ti- mente, indique que o campo Intér-
aplicada em muitas outras situações. verem chaves primárias chamadas prete seja apresentado em ordem
O problema pode ser representado Código (nome-padrão), o Access vai alfabética. Para isso, na linha Clas-
por um diagrama que mostra dois con- mostrar uma linha negra ligando es- sificação, escolha Crescente.
juntos de dados, um para cada tabe- ses dois campos. Clique nessa linha Salve a consulta (com um nome
Consulta 1 (no alto) e seus
la. O xis da questão é identificar a por- resultados: a base é a tabLetras
e acione a tecla Del para apagá-la. amigável, como cnsMP3comLetras1)
ção comum às duas tabelas — corres- Isso porque o valor Código numa ta- e execute-a. Veja que ela exibe exa-
86 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 87
086_CONSULTA_TAB_ACCESS 26/02/2006 00:22 Page 86
TUTORIAL/CONSULTAS TUTORIAL/CONSULTAS
NO ACCESS
MONTE CONSULTAS COM DUAS TABELAS E ESCAPE DAS
para abrigar a letra da música. O
campo do tipo Texto tem capacida-
de máxima para 255 caracteres. A
letra não caberia nele. Por sua vez,
PEGADINHAS NA LÓGICA DOS DADOS
o campo de memorando suporta
POR CARLOS MACHADO
até 65 536 caracteres. Dê à segun-
da tabela o nome tabLetras. Tam-
uem gosta de música e pondente, no desenho, à área em que bém não haveria problema se o
Q organização costuma
não resistir a um banco
de dados. Em geral, uti-
liza o Access, que já está ali mesmo
os dois conjuntos se superpõem. Ago-
ra que já caracterizamos o problema,
vamos à solução, passo a passo.
campo Título, que é o ponto comum
entre as tabelas, tivesse nome dife-
rente nas duas. No entanto, para fa-
cilitar a compreensão, é mais cô- Consulta 2: o resultado (embaixo) não
no PC, no pacote Office. Vamos su- 1. A TABELA DE MP3 modo usar o mesmo nome.
é igual ao da consulta 1
por que você tenha montado uma Para acompanhar o exemplo, crie bela não tem nenhum parentesco
tabela no Access reunindo todos os no Access uma tabela com os cam- 3. CRIE A CONSULTA com seu homônimo na outra.
seus arquivos de música em MP3. pos Intérprete e Título, ambos do ti- Na janela Banco de Dados, clique na
Como também gosta de analisar as po Texto. Salve-a com o nome orelha Consulta. Dê um duplo clique 5 . O PULO-D0-GATO
letras — e decorar para cantar no tabMP3. Essa tabela, claro, vai con- no comando Criar Consulta no Modo Com o mouse, clique no campo Tí-
chuveiro —, criou uma tabela para ter a lista das músicas. Design para projetar um objeto des- tulo de uma tabela e arraste-o para
elas. Nem todas as músicas têm sua se tipo a partir do zero. O Access abre o campo de mesmo nome na outra
letra no banco, e você quer saber duas janelas: Mostrar Tabela e Con- tabela. Uma linha passa a ligar os
quais MP3 dispõem de letras. sulta1. Selecione (mouse mais a te- dois campos, indicando que a con-
A solução pode ser encontrada no cla Ctrl) o nome das duas tabelas — sulta deve procurar neles informa-
Access a um toque do mouse, sem tabMP3 e tabLetras — na primeira ja- ções iguais. Dica: o procedimento
programação. Será preciso construir nela e clique no botão Adicionar. também funciona quando o nome
uma consulta simples, com o objetivo dos dois campos não é o mesmo.
de identificar, em duas tabelas, quais 4. A LINHA NEGRA No quadro tabLetras, arraste pa-
registros contêm as mesmas informa- Dois quadros com os campos das ra a linha Campo, embaixo, os cam-
ções em dois campos indicados: um tabelas aparecem na área superior pos Título e Intérprete. Opcional-
em cada tabela. Essa solução pode ser de Consulta1. Se as duas tabelas ti- mente, indique que o campo Intér-
aplicada em muitas outras situações. verem chaves primárias chamadas prete seja apresentado em ordem
O problema pode ser representado Código (nome-padrão), o Access vai alfabética. Para isso, na linha Clas-
por um diagrama que mostra dois con- mostrar uma linha negra ligando es- sificação, escolha Crescente.
juntos de dados, um para cada tabe- ses dois campos. Clique nessa linha Salve a consulta (com um nome
Consulta 1 (no alto) e seus
la. O xis da questão é identificar a por- resultados: a base é a tabLetras
e acione a tecla Del para apagá-la. amigável, como cnsMP3comLetras1)
ção comum às duas tabelas — corres- Isso porque o valor Código numa ta- e execute-a. Veja que ela exibe exa-
86 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 87
086_CONSULTA_TAB_ACCESS 26/02/2006 00:23 Page 88
TUTORIAL/CONSULTAS
tamente os títulos comuns às duas ta- colha, nos dois campos, tabMP3 em
belas. A solução descrita acima apa- vez de tabLetras. Salve a consulta.
rentemente resolve o problema apre- Em outras palavras, estamos fazen-
sentado no início deste tutorial. do a mesma consulta, só que ago-
ra a outra tabela é nosso ponto de
6 . TESTE A CONSULTA partida. Execute essa consulta mo-
Faça, agora, uma experiência impor- dificada. O que ocorre? A música
tante. Inclua, na tabela MP3, uma aparece, mas com outro intérpre-
música cujo título já existe em tabLe- te. Para comparar, abra as duas.
tras, mas registre aí outro intérpre- Ao trabalhar com bancos de da-
te. Escolha, de propósito, uma can- dos, é preciso pensar em coisas des-
ção que não faz parte do núcleo co- se tipo. A questão é que duas can-
mum entre as duas tabelas. Execu- ções com o mesmo título e cantores
te novamente a consulta. O que ocor- diferentes podem ser a mesma mú-
re? A nova música não aparece. Is- sica ou não. Assim, se você quiser
so porque a consulta está sendo fei- garantir a identidade de título e in-
ta com base na tabela tabLetras. térprete, precisa construir uma con-
sulta ligeiramente diferente.
7 . MESMO TÍTULO
Agora, na janela Banco de Dados, 8. OS INTÉRPRETES
selecione a consulta cnsMP3com- Experimente mais. Copie a pri-
Letras1 e copie-a. Cole-a no mesmo meira consulta e cole-a como
lugar, com o nome de cnsMP3com- cnsMP3comLetras11. Abra-a em mo-
Letras2. Selecione essa nova con- do Design e arraste o campo Intér-
sulta e clique no botão Design. Na prete de uma tabela para o mesmo
janela da consulta, linha Tabela, es- campo na outra. Com isso, estamos
dizendo que tanto o título como o
intérprete devem coincidir nas duas
tabelas. Agora, copie a tabela
cnsMP3comLetras2 e cole-a como
cnsMP3comLetras22. Arraste o cam-
po Intérprete da mesma forma.
9. BUSCA DUPLA
Execute, lado a lado, as consultas
11 e 22. Embora se baseiem em ta-
belas diferentes, elas dão os mes-
míssimos resultados. A diferença
Consultas 11 e 22: bases diferentes, está na busca de dupla identidade:
mas com resultados iguais
de título e de intérprete.
88 < C O L E Ç Ã O I N F O
089_CADASTROFOTO_EXIF 26/02/2006 00:24 Page 89
TUTORIAL/CADASTRO DE FOTOS
O EXIF VAI
PARA O BANCO
APRENDA A CRIAR UMA BASE DE DADOS DE FOTOS NO SQL
SERVER EXPRESS COM INFORMAÇÕES DA CÂMERA
POR NIVALDO FORESTI
Q dados de fotografias
sem perder muito tem-
po na digitação dos de-
talhes? A idéia é boa e factível, se
maioria, gravam em cada imagem
capturada por seus sensores. Entre
essas informações preciosas estão a
data e a hora em que a foto foi tira-
usarmos as informações Exif (Exchan- da, a abertura do obturador, o tem-
geable Image File Format) que as câ- po de exposição, o nome do fabri-
Banco de fotos: para criar um banco, selecione General na janela New Database
C O L E Ç Ã O I N F O > 89
089_CADASTROFOTO_EXIF 26/02/2006 00:24 Page 90
MSQL >DATA. Lá estarão mos determinar qual tipo de dados 4. CHAVE PRIMÁRIA
os arquivos fotos.mdf e o campo irá suportar. Clique no cam- Vamos agora definir a nossa chave
fotos_log.ldf. po Data Type e selecione int, pois primária. Clique com o botão direi-
esse campo será uma identificação to sobre o campo desejado e sele-
2. AS TABELAS do fotógrafo e a chave primária des- cione Set Primary Key. Vamos fazer
De volta ao SQL Server sa tabela. Dê TAB até abrir a próxi- isso com o campo Id_fotografo. A
Management Studio Ex- ma linha da janela Table — dbo.ta- chave primária é identificada grafi-
press, expanda o banco ble-1, nome provisório da tabela. camente por uma pequena chave à
de dados Fotos, clicando frente do nome do campo.
no ícone +. Agora vamos 3 . MAIS CAMPOS Salvamos nossa tabela, acionan-
criar as três tabelas: fo- Vamos criar agora os campos Nome do File > Salvar Fotografos. Pronto,
tografos, pictures e clien- do fotógrafo, Endereço, Cidade, Es- a primeira tabela está criada na ba-
Checagem: verifique os arquivos tes. Como definição, iremos dizer tado. Todos eles serão do tipo var- se de dados Fotos.
que formam o banco de dados
que um fotógrafo pode ter várias char, que consumirá somente o es- Faça o mesmo para a tabela Clien-
fotos e que um cliente também po- paço necessário no disco para a quan- tes. Ela terá os campos Id_cliente, no-
cante e o modelo da máquina, além de ter várias fotos. tidade de caracteres armazenada. me_cliente, endereço_cliente, cida-
da resolução da imagem. Neste tu- Primeiro, criamos a tabela foto- Assim, um nome que contenha 10 de_cliente, estado_cliente, CEP_clien-
torial, vamos criar uma base de da- grafos. Com o botão direito, clique caracteres consumirá somente 10 te como colunas. Como não quere-
dos de fotos com informações Exif em Tables e selecione NEW TABLE. bytes no banco de dados. No caso do mos registros incompletos, todos eles
no SQL Server 2005 Express, da Mi- Na janela Properties, digite o nome campo do tipo char, um campo com também não permitirão campos não
crosoft. Nosso banco terá três tabe- da tabela, fotografos, no campo Ob- tamanho de 50 caracteres sempre preenchidos ou nulos.
las: clientes, fotógrafos e pictures. jectName. ocupará 50 bytes de espaço no dis- Vamos fazer o ID_cliente como
Vamos aos passos. Agora vamos criar os campos co rígido. Para cada um, defina no nossa chave primária dessa tabe-
dessa tabela. Aparece uma lista com campo lenght o tamanho que vo- la. Salve a tabela Clientes clicando
1. A BASE DE DADOS as opções na janela Table — dbo.ta- cê deseja para ele. no ícone de fechar tabela. Uma ja-
Abra a suíte SQL Server Manage- ble-1, o nome padrão de tabela cria- O último campo será o de CEP. De-
ment Studio Express. Na interface da pelo SQL Management, conten- fina-o como um campo numérico de Chave primária: pequena chave
principal, clique com o botão direi- do o nome da coluna (Column Na- tamanho 8 (o tamanho do cep no identifica o campo correspondente
to do mouse em Databases e sele- me), tipo de dados (Data Type) e Brasil). Preencha as opções
cione Criar New Database. Allow Nulls?. Precision como 8 e scale
Do lado esquerdo da janela New O primeiro campo que vamos criar 0 na janela Properties.
Database que se abre, selecione a é o da chave primária dessa tabe- Não queremos que fal-
opção General. No campo chama- la. É de bom costume criar sempre te informação nessa tabe-
do database name, digite Fotos, uma chave primária para toda ta- la. Assim, desmarque a
que será o nome do nosso banco bela. Nesse caso, ela será chamada opção Allow Nulls de to-
de dados. Clique OK. Id_fotografo. Digite esse nome no dos os campos. O próprio
O banco de dados Fotos está cria- campo Column Name. sistema de banco de da-
do e se constitui de dois arquivos. A janela Column properties deve dos não permitirá que
Você pode verificar isso acionando ser alterada para as características campos em branco sejam
Programs > Microsoft SQL Server > desejadas. Em primeiro lugar, va- registrados.
90 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 91
089_CADASTROFOTO_EXIF 26/02/2006 00:24 Page 90
MSQL >DATA. Lá estarão mos determinar qual tipo de dados 4. CHAVE PRIMÁRIA
os arquivos fotos.mdf e o campo irá suportar. Clique no cam- Vamos agora definir a nossa chave
fotos_log.ldf. po Data Type e selecione int, pois primária. Clique com o botão direi-
esse campo será uma identificação to sobre o campo desejado e sele-
2. AS TABELAS do fotógrafo e a chave primária des- cione Set Primary Key. Vamos fazer
De volta ao SQL Server sa tabela. Dê TAB até abrir a próxi- isso com o campo Id_fotografo. A
Management Studio Ex- ma linha da janela Table — dbo.ta- chave primária é identificada grafi-
press, expanda o banco ble-1, nome provisório da tabela. camente por uma pequena chave à
de dados Fotos, clicando frente do nome do campo.
no ícone +. Agora vamos 3 . MAIS CAMPOS Salvamos nossa tabela, acionan-
criar as três tabelas: fo- Vamos criar agora os campos Nome do File > Salvar Fotografos. Pronto,
tografos, pictures e clien- do fotógrafo, Endereço, Cidade, Es- a primeira tabela está criada na ba-
Checagem: verifique os arquivos tes. Como definição, iremos dizer tado. Todos eles serão do tipo var- se de dados Fotos.
que formam o banco de dados
que um fotógrafo pode ter várias char, que consumirá somente o es- Faça o mesmo para a tabela Clien-
fotos e que um cliente também po- paço necessário no disco para a quan- tes. Ela terá os campos Id_cliente, no-
cante e o modelo da máquina, além de ter várias fotos. tidade de caracteres armazenada. me_cliente, endereço_cliente, cida-
da resolução da imagem. Neste tu- Primeiro, criamos a tabela foto- Assim, um nome que contenha 10 de_cliente, estado_cliente, CEP_clien-
torial, vamos criar uma base de da- grafos. Com o botão direito, clique caracteres consumirá somente 10 te como colunas. Como não quere-
dos de fotos com informações Exif em Tables e selecione NEW TABLE. bytes no banco de dados. No caso do mos registros incompletos, todos eles
no SQL Server 2005 Express, da Mi- Na janela Properties, digite o nome campo do tipo char, um campo com também não permitirão campos não
crosoft. Nosso banco terá três tabe- da tabela, fotografos, no campo Ob- tamanho de 50 caracteres sempre preenchidos ou nulos.
las: clientes, fotógrafos e pictures. jectName. ocupará 50 bytes de espaço no dis- Vamos fazer o ID_cliente como
Vamos aos passos. Agora vamos criar os campos co rígido. Para cada um, defina no nossa chave primária dessa tabe-
dessa tabela. Aparece uma lista com campo lenght o tamanho que vo- la. Salve a tabela Clientes clicando
1. A BASE DE DADOS as opções na janela Table — dbo.ta- cê deseja para ele. no ícone de fechar tabela. Uma ja-
Abra a suíte SQL Server Manage- ble-1, o nome padrão de tabela cria- O último campo será o de CEP. De-
ment Studio Express. Na interface da pelo SQL Management, conten- fina-o como um campo numérico de Chave primária: pequena chave
principal, clique com o botão direi- do o nome da coluna (Column Na- tamanho 8 (o tamanho do cep no identifica o campo correspondente
to do mouse em Databases e sele- me), tipo de dados (Data Type) e Brasil). Preencha as opções
cione Criar New Database. Allow Nulls?. Precision como 8 e scale
Do lado esquerdo da janela New O primeiro campo que vamos criar 0 na janela Properties.
Database que se abre, selecione a é o da chave primária dessa tabe- Não queremos que fal-
opção General. No campo chama- la. É de bom costume criar sempre te informação nessa tabe-
do database name, digite Fotos, uma chave primária para toda ta- la. Assim, desmarque a
que será o nome do nosso banco bela. Nesse caso, ela será chamada opção Allow Nulls de to-
de dados. Clique OK. Id_fotografo. Digite esse nome no dos os campos. O próprio
O banco de dados Fotos está cria- campo Column Name. sistema de banco de da-
do e se constitui de dois arquivos. A janela Column properties deve dos não permitirá que
Você pode verificar isso acionando ser alterada para as características campos em branco sejam
Programs > Microsoft SQL Server > desejadas. Em primeiro lugar, va- registrados.
90 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 91
089_CADASTROFOTO_EXIF 26/02/2006 00:26 Page 92
6. RELACIONAR fazer isso. Vamos pelo mais fácil e um para um, um para muitos ou
A tabela não está comple- visual. No banco de dados Fotos, cli- muitos para muitos. No nosso ca-
ta ainda. Você precisa re- que com o botão direito em Data- so, você verá uma chave de um dos
lacioná-la aos fotógrafos base Diagrams na janela da esquer- lados da relação e um símbolo de
e aos clientes. Lembre-se da. Clique em database diagrams. O infinito do outro lado, o que signi-
que, em um banco de da- sistema irá avisar que esse banco fica uma relação de um para mui-
dos relacional, essa rela- de dados não tem um ou mais ob- tos.
ção é importante para des- jetos necessários para utilizar o re- Quando você executar consultas
cobrir as fotos que perten- curso de diagramas. Clique em YES. que contenham as tabelas clientes e
cem a um fotógrafo ou Selecione a opção New Databa- pictures ou fotografos e pictures, as
que fotos são de quais se Diagram. Uma janela chamada informações relacionadas de ambas
clientes. Primeiro, vamos Add Tables será mostrada. Selecio- serão trazidas automaticamente. Por
Índice: definindo a chave de definir as chaves de pesquisa para os ne uma tabela e clique no botão exemplo, ao pesquisar um fotógrafo,
pesquisa para os fotógrafos
fotógrafos e clientes nessa tabela. Elas Add. Faça isso com todas elas. Ao você encontrará todas as fotos que
serão chamadas de id_fotografos e final, clique em Close. ele produziu. Salve o diagrama, cli-
nela aparecerá perguntando se vo- id_clientes, respectivamente. Crie co- Uma representação gráfica das ta- cando em SALVAR ou fechando a ja-
cê deseja salvar as alterações ne- mo campos do tipo int. belas e seus relacionamentos é mos- nela. Dê um nome para esse diagra-
la. Clique YES. Agora, clique com o botão di- trada. Selecione a coluna de chave no ma — no nosso caso, diagrama.
reito na janela de campos e esco- cliente (ID_cliente) com o mouse e ar-
5 . TABELA DE FOTOS lha a opção indexes/Key. Clique raste até a coluna id_clientes. A jane- 8. IMPORTANDO DADOS
Chegou a vez da tabela Pictures. Es- no botão ADD. Selecione o índice la Table and Columns será mostrada. Neste ponto, já podemos utilizar es-
sa tabela terá informações Exif so- criado. Em Columns, escolha pri- Isso fará com que o sistema gere sa base. Primeiro precisamos cadas-
bre as fotos que você deseja guar- meiro a coluna id_fotografos, uma relação entre a tabela clientes trar alguns dados nela. Usamos um
dar. O padrão Exif é bastante com- abrindo a janela com a opção ".....". usando o campo id_clientes para a programa de extração de dados Exif
pleto, mas não queremos todas es- Na coluna Identity (name) dê o no- tabela Pictures. Essa relação é de um
Relacionamento completo:
sas informações. Como ilustração, me desse índice. Vamos chamá-lo de para muitos, ou seja, de um cliente
clientes, fotógrafos e pictures
usaremos o fabricante da câmera, indice_fotografos. Você notará que exis- para várias fotos. Sacou?
o seu modelo, a data e a hora da fo- te uma coluna chamada is unique? Man- Clique OK. Faça o mesmo
to e a sua largura e altura. Defina tenha a opção NO. Por quê? Bem, que- para a tabela fotografos,
todos os campos (exceto a chave remos que esse valor se repita para ca- usando a coluna id_foto-
primária) como varchar com o ta- da foto que pertença a um fotógrafo. grafo, e para a tabela pic-
manho desejado. Defina uma cha- Caso selecionássemos a opção YES, o tures usando a coluna
ve primária chamada Id_Pictures. banco de dados evitaria que existisse Id_fotógrafos. Os relacio-
Nesse caso, devemos permitir nulls registro contendo valores duplicados. namentos estão feitos.
nos outros campos, pois você po- Crie outro índice igual para clientes que A identificação de ca-
de não ter alguma das informações. se chamará indice_clientes. da uma dessas relações
Normalmente, todas as câmeras é feita por uma linha que
têm, mas se você desejar gravar 7. TABELA COM TABELA une os campos de índi-
uma foto avulsa será possível fazê- Estamos prontos para relacionar as ces e cada lado contém
lo sem dispor de algumas delas. tabelas. Existem vários modos de se a forma dessa relação,
92 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 93
089_CADASTROFOTO_EXIF 26/02/2006 00:26 Page 92
6. RELACIONAR fazer isso. Vamos pelo mais fácil e um para um, um para muitos ou
A tabela não está comple- visual. No banco de dados Fotos, cli- muitos para muitos. No nosso ca-
ta ainda. Você precisa re- que com o botão direito em Data- so, você verá uma chave de um dos
lacioná-la aos fotógrafos base Diagrams na janela da esquer- lados da relação e um símbolo de
e aos clientes. Lembre-se da. Clique em database diagrams. O infinito do outro lado, o que signi-
que, em um banco de da- sistema irá avisar que esse banco fica uma relação de um para mui-
dos relacional, essa rela- de dados não tem um ou mais ob- tos.
ção é importante para des- jetos necessários para utilizar o re- Quando você executar consultas
cobrir as fotos que perten- curso de diagramas. Clique em YES. que contenham as tabelas clientes e
cem a um fotógrafo ou Selecione a opção New Databa- pictures ou fotografos e pictures, as
que fotos são de quais se Diagram. Uma janela chamada informações relacionadas de ambas
clientes. Primeiro, vamos Add Tables será mostrada. Selecio- serão trazidas automaticamente. Por
Índice: definindo a chave de definir as chaves de pesquisa para os ne uma tabela e clique no botão exemplo, ao pesquisar um fotógrafo,
pesquisa para os fotógrafos
fotógrafos e clientes nessa tabela. Elas Add. Faça isso com todas elas. Ao você encontrará todas as fotos que
serão chamadas de id_fotografos e final, clique em Close. ele produziu. Salve o diagrama, cli-
nela aparecerá perguntando se vo- id_clientes, respectivamente. Crie co- Uma representação gráfica das ta- cando em SALVAR ou fechando a ja-
cê deseja salvar as alterações ne- mo campos do tipo int. belas e seus relacionamentos é mos- nela. Dê um nome para esse diagra-
la. Clique YES. Agora, clique com o botão di- trada. Selecione a coluna de chave no ma — no nosso caso, diagrama.
reito na janela de campos e esco- cliente (ID_cliente) com o mouse e ar-
5 . TABELA DE FOTOS lha a opção indexes/Key. Clique raste até a coluna id_clientes. A jane- 8. IMPORTANDO DADOS
Chegou a vez da tabela Pictures. Es- no botão ADD. Selecione o índice la Table and Columns será mostrada. Neste ponto, já podemos utilizar es-
sa tabela terá informações Exif so- criado. Em Columns, escolha pri- Isso fará com que o sistema gere sa base. Primeiro precisamos cadas-
bre as fotos que você deseja guar- meiro a coluna id_fotografos, uma relação entre a tabela clientes trar alguns dados nela. Usamos um
dar. O padrão Exif é bastante com- abrindo a janela com a opção ".....". usando o campo id_clientes para a programa de extração de dados Exif
pleto, mas não queremos todas es- Na coluna Identity (name) dê o no- tabela Pictures. Essa relação é de um
Relacionamento completo:
sas informações. Como ilustração, me desse índice. Vamos chamá-lo de para muitos, ou seja, de um cliente
clientes, fotógrafos e pictures
usaremos o fabricante da câmera, indice_fotografos. Você notará que exis- para várias fotos. Sacou?
o seu modelo, a data e a hora da fo- te uma coluna chamada is unique? Man- Clique OK. Faça o mesmo
to e a sua largura e altura. Defina tenha a opção NO. Por quê? Bem, que- para a tabela fotografos,
todos os campos (exceto a chave remos que esse valor se repita para ca- usando a coluna id_foto-
primária) como varchar com o ta- da foto que pertença a um fotógrafo. grafo, e para a tabela pic-
manho desejado. Defina uma cha- Caso selecionássemos a opção YES, o tures usando a coluna
ve primária chamada Id_Pictures. banco de dados evitaria que existisse Id_fotógrafos. Os relacio-
Nesse caso, devemos permitir nulls registro contendo valores duplicados. namentos estão feitos.
nos outros campos, pois você po- Crie outro índice igual para clientes que A identificação de ca-
de não ter alguma das informações. se chamará indice_clientes. da uma dessas relações
Normalmente, todas as câmeras é feita por uma linha que
têm, mas se você desejar gravar 7. TABELA COM TABELA une os campos de índi-
uma foto avulsa será possível fazê- Estamos prontos para relacionar as ces e cada lado contém
lo sem dispor de algumas delas. tabelas. Existem vários modos de se a forma dessa relação,
92 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 93
089_CADASTROFOTO_EXIF 26/02/2006 00:27 Page 94
94 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 95
089_CADASTROFOTO_EXIF 26/02/2006 00:27 Page 94
94 < C O L E Ç Ã O I N F O C O L E Ç Ã O I N F O > 95
089_CADASTROFOTO_EXIF 26/02/2006 00:28 Page 96
TUTORIAL/CADASTRO DE FOTOS
12. A PESQUISA
Vamos verificar se
grafo que está cadastrado em nos- nossas informações estão corretas
sa base com o índice 1 e o segundo fazendo uma consulta. Na janela
do fotógrafo com índice 2. Object Explorer, clique com o bo-
Selecione id_fotografos na jane- tão direito do mouse no banco Fo-
la Fields e, em Fields Tunning, co- tos e selecione a opção New Query.
loque Generator Value 0 e Genera- Queremos primeiro descobrir to-
tor Step 1. Isso fará com que o pri- dos as fotos do cliente 1. Clique com
meiro registro seja do fotógrafo com o botão direito na janela de Query e
índice de número 1 (campo com o selecione Query Designer. Adicione
valor 1) e o segundo registro seja as Tabelas Cliente e Pictures. Na co-
do fotógrafo 2 (campo com valor 2). luna Column_Name, selecione No-
me_Cliente da lista. Nas demais, se-
11. DADOS DO CLIENTE lecione DateTime, CameraModel e
Agora vamos gerar as informações Id_clientes. Em filter, na linha de
de cliente. Queremos que todas as id_clientes, digite 1. O próprio Query
fotos pertençam ao mesmo clien- Designer gerou um comando SQL pa-
te, o que tem índice 1 em nossa ta- ra ser executado. Clique no botão OK.
bela de clientes. Para tanto, sele- O comando SQL gerado está pron-
cione o campo id_clientes na jane- to para execução. Clique com o bo-
la Fields e digite o número 1 em tão direito na janela Query nova-
Constant Values na janela Fields mente e escolha EXECUTE.
Tunning. Todos os registros terão o Eis o resultado de sua pesquisa,
valor 1 no campo de índice id_clien- a data e hora de cada foto e o mo-
tes pertencendo assim ao mesmo delo da câmera utilizado e para qual
cliente. Clique no botão NEXT. cliente isso foi feito.
96 < C O L E Ç Ã O I N F O
097_CLASSIFICADOSWEB_POSTGRES 26/02/2006 00:29 Page 97
TUTORIAL/POSTGRESQL
E-MAIL FALSO
NÃO ENTRA
CONSTRUA UM CADASTRO DE ENDEREÇOS VÁLIDOS
AUTOMATIZANDO O PEDIDO DE CONFIRMAÇÃO
POR HELIO SILVA
C O L E Ç Ã O I N F O > 97
097_CLASSIFICADOSWEB_POSTGRES 26/02/2006 00:38 Page 98
TUTORIAL/POSTGRESQL
Formulário: HTML aciona script PHP que recebe o e-mail e repassa a outro script
98 < C O L E Ç Ã O I N F O
097_CLASSIFICADOSWEB_POSTGRES 26/02/2006 00:31 Page 99
TUTORIAL/POSTGRESQL
C O L E Ç Ã O I N F O > 99
100_RAILS 26/02/2006 00:39 Page 100
O RAILS FAZ
cativo simples de gerenciamento de como o MySQL. Baixe o SQLite 3 no
ativo fixo com banco de dados endereço www.info.abril.com.br/
SQLite 3. As instruções são para Win- download/4358.shtml. Depois de
MAIS RÁPIDO
dows XP. Mas os programas usados descompactar o arquivo zip, você
têm também versões para Linux. terá um programa executável e uma
DLL. Como o SQLite não tem insta-
ACELERE O DESENVOLVIMENTO, CRIANDO UM APLICATIVO 1 . INSTALAÇÃO DO RUBY lador, tudo o que você tem a fazer
DE CONTROLE DE PATRIMÔNIO COM O RUBY ON RAILS Faça o download do instalador do é copiar esses dois arquivos para o
POR TONI CAVALHEIRO Ruby on Rails no endereço www. diretório Windows\System32.
info.abril.com.br/download/4357.
shtml. Inicie a instalação e mante- 3. RUBY ON RAILS
nha os padrões sugeridos pelo pro- Agora, vamos instalar o Rails e a bi-
grama. Selecione todos os itens op- blioteca que faz o acesso ao SQLite
cionais. Mantenha também o dire- 3. O micro deve estar conectado à
tório padrão, que é o C:\Ruby. Pa- internet para que o instalador faça
ra testar o software, abra o Prompt o download de componentes adi-
de Comando do Windows e digite cionais. No Prompt de Comando do
esse comando (tecle Enter depois Windows, digite:
de cada comando): gem install rails
ruby –v O passo seguinte é instalar o supor-
Deve aparecer uma mensagem com te ao SQLite 3. Digite:
a versão do Ruby. gem install sqlite3-ruby
4 . AMBIENTE DA APLICAÇÃO
Na hora de criar uma aplicação, é
preciso separar scripts, logs, confi-
gurações e outros componentes nu-
ma estrutura de diretórios. O Rails
faz isso de forma automática. No
Aplicativo pronto: sistema de Ativo Fixo disponível na intranet da empresa
Prompt de Comando, digite:
Ruby On Rails vem dan- pouco com o Rails para perceber rails c:\data\web\ativofixo\
. BANCO DE DADOS
Abra o Explorer e navegue até a
pasta ativofixo que definimos. Vo-
cê verá a estrutura de diretórios
criada pelo Rails. O diretório app é
ta permite acelerar o desenvolvi- guagem Ruby, que permite a cria- Vamos prosseguir instalando o SQLite. o local onde ficarão os arquivos do
mento em até dez vezes em compa- ção de aplicações para a web asso- Esse gerenciador de bancos com- programa. O script é a pasta que
ração com linguagens mais tradicio- ciadas a bancos de dados. Para mos- pacto é útil para testes e desenvol- contém os arquivos de apoio. Os di-
nais. Mesmo que haja exagero nes- trar como se desenvolve usando o vimento. Para uso em produção, po- retórios helpers e views servem,
sa afirmação, basta trabalhar um Ruby on Rails, vamos criar um apli- deria ser escolhido outro software, respectivamente, para armazenar
O RAILS FAZ
cativo simples de gerenciamento de como o MySQL. Baixe o SQLite 3 no
ativo fixo com banco de dados endereço www.info.abril.com.br/
SQLite 3. As instruções são para Win- download/4358.shtml. Depois de
MAIS RÁPIDO
dows XP. Mas os programas usados descompactar o arquivo zip, você
têm também versões para Linux. terá um programa executável e uma
DLL. Como o SQLite não tem insta-
ACELERE O DESENVOLVIMENTO, CRIANDO UM APLICATIVO 1 . INSTALAÇÃO DO RUBY lador, tudo o que você tem a fazer
DE CONTROLE DE PATRIMÔNIO COM O RUBY ON RAILS Faça o download do instalador do é copiar esses dois arquivos para o
POR TONI CAVALHEIRO Ruby on Rails no endereço www. diretório Windows\System32.
info.abril.com.br/download/4357.
shtml. Inicie a instalação e mante- 3. RUBY ON RAILS
nha os padrões sugeridos pelo pro- Agora, vamos instalar o Rails e a bi-
grama. Selecione todos os itens op- blioteca que faz o acesso ao SQLite
cionais. Mantenha também o dire- 3. O micro deve estar conectado à
tório padrão, que é o C:\Ruby. Pa- internet para que o instalador faça
ra testar o software, abra o Prompt o download de componentes adi-
de Comando do Windows e digite cionais. No Prompt de Comando do
esse comando (tecle Enter depois Windows, digite:
de cada comando): gem install rails
ruby –v O passo seguinte é instalar o supor-
Deve aparecer uma mensagem com te ao SQLite 3. Digite:
a versão do Ruby. gem install sqlite3-ruby
4 . AMBIENTE DA APLICAÇÃO
Na hora de criar uma aplicação, é
preciso separar scripts, logs, confi-
gurações e outros componentes nu-
ma estrutura de diretórios. O Rails
faz isso de forma automática. No
Aplicativo pronto: sistema de Ativo Fixo disponível na intranet da empresa
Prompt de Comando, digite:
Ruby On Rails vem dan- pouco com o Rails para perceber rails c:\data\web\ativofixo\
. BANCO DE DADOS
Abra o Explorer e navegue até a
pasta ativofixo que definimos. Vo-
cê verá a estrutura de diretórios
criada pelo Rails. O diretório app é
ta permite acelerar o desenvolvi- guagem Ruby, que permite a cria- Vamos prosseguir instalando o SQLite. o local onde ficarão os arquivos do
mento em até dez vezes em compa- ção de aplicações para a web asso- Esse gerenciador de bancos com- programa. O script é a pasta que
ração com linguagens mais tradicio- ciadas a bancos de dados. Para mos- pacto é útil para testes e desenvol- contém os arquivos de apoio. Os di-
nais. Mesmo que haja exagero nes- trar como se desenvolve usando o vimento. Para uso em produção, po- retórios helpers e views servem,
sa afirmação, basta trabalhar um Ruby on Rails, vamos criar um apli- deria ser escolhido outro software, respectivamente, para armazenar
campos e recursos. Essa aplicação uma vez que os dois outros bancos scaffold :af
usa as quatro operações básicas de não foram criados ainda. Mas é bom end
um banco de dados: consulta, edi- deixar o arquivo correto. Vamos reiniciar o servidor. Clique
ção, inclusão e exclusão. A primei- no Prompt de Comando para man-
ra coisa a fazer é criar o banco de 8 . MODELO E CONTROLADOR tê-lo em foco no Windows e tecle
dados no SQLite 3. No Prompt de No Ruby on Rails, cada tabela é Ctrl+C para parar o servidor. Em se-
Comando do Windows, digite: descrita por um modelo. Vamos guida, reinicie-o com o comando:
sqlite3 db\ativodev.db criar um modelo chamado af (ini- ruby script\server
Depois que o prompt do SQLite 3 ciais de Ativo Fixo) que refletirá a Abra o navegador e vá a este en-
Tela inicial: o Ruby instalado e
pronto para usar aparecer, digite: tabela que acabamos de definir. dereço: http://localhost:3000
CREATE TABLE afs (id INTEGER No Prompt de Comando do Win- Você verá uma aplicação com re-
funções auxiliares e layouts para o NOT NULL PRIMARY KEY, dows, digite: cursos de consulta, edição, exclu-
site. Folhas de estilos CSS ficam na descricao VARCHAR(100) NOT ruby script\generate model af são e inclusão. Note que usamos
pasta public\stylesheets. NULL, Em seguida, vamos criar um con- uma única linha de código (scaffold
valor_aquisicao INT NOT NULL, trolador para o modelo af. O con- :af) para criá-la.
5. SERVIDOR WEB fornecedor VARCHAR(255) NULL, trolador é o módulo básico dos apli-
O Ruby on Rails inclui um minisser- comprador VARCHAR(30) NULL, cativos do Rails. Este é o comando: 10 . PERSONALIZAÇÃO
vidor web que pode ser usado no tempo_depreciacao INT NULL); ruby script\generate controller afs Vejamos como personalizar o layout
desenvolvimento. Para não confli- Note que nosso modelo chama- da aplicação. Esse processo é feito
tar com outros servidores que você 7 . ACESSO AOS DADOS se af, mas o controlador é chama- por meio de dois arquivos rhtml, um
possa ter na máquina (como Apa- O próximo passo é configurar o Rails do afs. Isso ocorre porque o Ruby de visualização (conhecido por view)
che ou IIS), ele vem configurado pa- para acessar esse banco de dados. on Rails trabalha com a língua in- e outro de layout. Além disso, é pre-
ra funcionar na porta 3000. No No diretório ativofixo, encontre a glesa, colocando as palavras no plu- ciso fazer algumas modificações no
Prompt de Comando, digite os se- pasta config e, dentro dela, o arqui- ral. Se você criar um modelo Per- controlador principal para carregar
guintes comandos para rodá-lo: vo database.yml. Abra-o num editor son, por exemplo, ele irá procurar os dados para uma variável tempo-
cd c:\data\web\ativofixo de textos e modifique suas configu- por uma tabela chamada People, rária. Vamos começar personalizan-
ruby script\server rações para o seguinte: plural de Person em inglês. do o controlador. Abra o arquivo afs
Abra o browser e acesse o seguin- development: num editor de texto e modifique-o
te endereço: http://localhost:3000 adapter:sqlite3 9 . SCAFFOLDING para que fique assim:
Você deve ver uma página com o tí- dbfile: db\ativodev.db O último passo antes de colocar sua
tulo Welcome Aboard e informações test: aplicação para funcionar é associar
sobre o Ruby on Rails. adapter:sqlite3 um recurso chamado scaffold ao
dbfile: db\ativotest.db controlador. Ele adiciona funções
6 . ATIVO FIXO production: de visualização, edição, inclusão e
Nos passos anteriores, especifica- adapter:sqlite3 exclusão de dados. Localize o ar-
mos uma aplicação chamada Ativo dbfile: db\ativoprod.db quivo afs_controller.rd. Abra-o num
Fixo. É uma versão simples do sis- Todo o restante do arquivo pode editor de textos e adicione o co-
tema de controle patrimonial de uma ser apagado, já que não terá utilida- mando scaffold, assim:
empresa. Depois que ela estiver de em nosso tutorial. Na verdade, só class AfsController < Arquivo list.rhtml: código
modificado no editor de texto
pronta, você pode adicionar outros usaremos o ambiente development, ApplicationController
campos e recursos. Essa aplicação uma vez que os dois outros bancos scaffold :af
usa as quatro operações básicas de não foram criados ainda. Mas é bom end
um banco de dados: consulta, edi- deixar o arquivo correto. Vamos reiniciar o servidor. Clique
ção, inclusão e exclusão. A primei- no Prompt de Comando para man-
ra coisa a fazer é criar o banco de 8 . MODELO E CONTROLADOR tê-lo em foco no Windows e tecle
dados no SQLite 3. No Prompt de No Ruby on Rails, cada tabela é Ctrl+C para parar o servidor. Em se-
Comando do Windows, digite: descrita por um modelo. Vamos guida, reinicie-o com o comando:
sqlite3 db\ativodev.db criar um modelo chamado af (ini- ruby script\server
Depois que o prompt do SQLite 3 ciais de Ativo Fixo) que refletirá a Abra o navegador e vá a este en-
Tela inicial: o Ruby instalado e
pronto para usar aparecer, digite: tabela que acabamos de definir. dereço: http://localhost:3000
CREATE TABLE afs (id INTEGER No Prompt de Comando do Win- Você verá uma aplicação com re-
funções auxiliares e layouts para o NOT NULL PRIMARY KEY, dows, digite: cursos de consulta, edição, exclu-
site. Folhas de estilos CSS ficam na descricao VARCHAR(100) NOT ruby script\generate model af são e inclusão. Note que usamos
pasta public\stylesheets. NULL, Em seguida, vamos criar um con- uma única linha de código (scaffold
valor_aquisicao INT NOT NULL, trolador para o modelo af. O con- :af) para criá-la.
5. SERVIDOR WEB fornecedor VARCHAR(255) NULL, trolador é o módulo básico dos apli-
O Ruby on Rails inclui um minisser- comprador VARCHAR(30) NULL, cativos do Rails. Este é o comando: 10 . PERSONALIZAÇÃO
vidor web que pode ser usado no tempo_depreciacao INT NULL); ruby script\generate controller afs Vejamos como personalizar o layout
desenvolvimento. Para não confli- Note que nosso modelo chama- da aplicação. Esse processo é feito
tar com outros servidores que você 7 . ACESSO AOS DADOS se af, mas o controlador é chama- por meio de dois arquivos rhtml, um
possa ter na máquina (como Apa- O próximo passo é configurar o Rails do afs. Isso ocorre porque o Ruby de visualização (conhecido por view)
che ou IIS), ele vem configurado pa- para acessar esse banco de dados. on Rails trabalha com a língua in- e outro de layout. Além disso, é pre-
ra funcionar na porta 3000. No No diretório ativofixo, encontre a glesa, colocando as palavras no plu- ciso fazer algumas modificações no
Prompt de Comando, digite os se- pasta config e, dentro dela, o arqui- ral. Se você criar um modelo Per- controlador principal para carregar
guintes comandos para rodá-lo: vo database.yml. Abra-o num editor son, por exemplo, ele irá procurar os dados para uma variável tempo-
cd c:\data\web\ativofixo de textos e modifique suas configu- por uma tabela chamada People, rária. Vamos começar personalizan-
ruby script\server rações para o seguinte: plural de Person em inglês. do o controlador. Abra o arquivo afs
Abra o browser e acesse o seguin- development: num editor de texto e modifique-o
te endereço: http://localhost:3000 adapter:sqlite3 9 . SCAFFOLDING para que fique assim:
Você deve ver uma página com o tí- dbfile: db\ativodev.db O último passo antes de colocar sua
tulo Welcome Aboard e informações test: aplicação para funcionar é associar
sobre o Ruby on Rails. adapter:sqlite3 um recurso chamado scaffold ao
dbfile: db\ativotest.db controlador. Ele adiciona funções
6 . ATIVO FIXO production: de visualização, edição, inclusão e
Nos passos anteriores, especifica- adapter:sqlite3 exclusão de dados. Localize o ar-
mos uma aplicação chamada Ativo dbfile: db\ativoprod.db quivo afs_controller.rd. Abra-o num
Fixo. É uma versão simples do sis- Todo o restante do arquivo pode editor de textos e adicione o co-
tema de controle patrimonial de uma ser apagado, já que não terá utilida- mando scaffold, assim:
empresa. Depois que ela estiver de em nosso tutorial. Na verdade, só class AfsController < Arquivo list.rhtml: código
modificado no editor de texto
pronta, você pode adicionar outros usaremos o ambiente development, ApplicationController
TUTORIAL/ATIVO FIXO
104 < C O L E Ç Ã O I N F O
105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 105
TUTORIAL/FIREBIRD
CONTROLE OS
SEUS LIVROS
PROGRAMAS EM PHP DISCRIMINAM O STATUS DO TÍTULO,
SE EMPRESTADO, DISPONÍVEL OU ENCOMENDADO
POR HELIO SILVA
1. O BANCO
lembrou de devolver? Nesses casos Instalados os programas necessários,
em que a memória não passa de uma abra o IBExpert e acione o menu Da-
vaga lembrança, o jeito é montar um tabase > Create Database. Crie o ban-
banco de dados de sua biblioteca, co de dados com o nome Biblioteca e
com direito ao controle dos títulos clique no botão OK.
emprestados. É o que faremos nes- Será necessário registrar o banco
te tutorial. Para acompanhá-lo, vo- no IBExpert. Assim, no campo data-
cê vai precisar de servidor web com base alias, digite o nome Biblioteca e,
PHP 4.x, banco de dados Firebird em seguida, acione no botão Register.
1.5.3 (www.info.abril.com.br/ (Clique no ícone do lado esquerdo
download/2108.shtml) e o IBEx- da tela, onde aparece o nome de
pert (www.info.abril.com.br/down nosso banco de dados Biblioteca.
load/4047.shtml) como ferramen- Com o botão direito do mouse, es-
colha a opção Conect
to database.
2. A TABELA
Agora que estamos
conectados ao novo
banco de dados, va-
mos criar a tabela do
sistema. Tecle F12 pa-
Biblioteca: crie o
banco de dados com
o IBExpert
C O L E Ç Ã O I N F O > 105
105_AGENDA_FIREBIRD 26/02/2006 00:42 Page 106
TUTORIAL/FIREBIRD TUTORIAL/FIREBIRD
Gatilho: gerador
5 . REQUISIÇÕES DO USUÁRIO mulário para que seja digitado o no-
automático do código Nosso segundo programa, o pro- me do novo livro do acervo e mon-
de cada um dos livros
cessa.php, é que fará o trabalho to- tar um combo para que seja defini-
do. Ele é um pouco extenso, mas do qual o seu status (Disponível, Em-
LIVROS não é complexo. prestado, Encomendado).
ACTIVE BEFORE Em princípio, o segundo progra- Quando o botão “Excluir” é aciona-
INSERT ma se caracteriza por uma árvore do é há um livro selecionado no com-
POSITION 0 de decisão usando if e elseif, sen- bo do index.php, o programa reage
AS do que cada ação solicitada pelo excluindo aquele título selecionado.
BEGIN usuário vai determinar um compor- Para a operação de empréstimo,
IF (NEW.CODIGO tamento diferente. o programa abre um formulário pe-
ra que se abra uma tela para a cria- IS NULL) THEN A primeira providência do pro- dindo o nome do associado que es-
ção de consultas SQL. Dentro da te- NEW.CODIGO = GEN_ID(TB_ grama para atender qualquer que tá emprestando o livro. Na seqüên-
la de consulta, criaremos o banco de LIVROS_CODIGO_GEN, 1); seja a necessidade do usuário é cia, faz a atualização das informa-
dados com o comando: END abrir uma conexão com o banco de ções trocando o status do livro pa-
CREATE TABLE TB_LIVROS ( Este gatilho será acionado auto- dados. Em seguida, ele registra qual ra Emprestado e registrando o no-
CODIGO INTEGER NOT NULL, maticamente a cada inclusão para a operação o usuário solicitou, e, me do associado que retirou o livro.
TITULO VARCHAR(50) NOT NULL, gerar o código do livro. por conta disso, determina se ele A operação final é a devolução
STATUS VARCHAR(20) NOT NULL, terá que ser executado mais uma do livro que, quando acionada, al-
ASSOCIADO VARCHAR(40) 4. SCRIPT EM PHP vez ou se deve retornar ao in- tera o status do livro para Disponí-
CHARACTER SET NONE COLLATE Faça o download do arquivo biblio- dex.php. O programa toma essa de- vel e elimina o nome do associado.
NONE); teca.zip no endereço ftp://ftp.info. cisão ao definir qual ação deve ser É evidente que outras imple-
Logo depois, determinaremos que abril.com.br/biblioteca.zip . Des- acionada pelo formulário, se exe- mentações e validações são ne-
o código do livro será a chave pri- compacte-o na pasta onde opera o cuta o index.php ou ele mesmo cessárias, mas este exemplo já per-
mária de acesso ao banco com o se- seu servidor web e terá os arquivos (processa.php) com um novo parâ- mite vislumbrar um pouco da efi-
guinte comando: index.php e processa.php. metro de operação. ciência do Firebird usado em com-
ALTER TABLE TB_LIVROS ADD Nosso primeiro programa, o in- A primeira ação do programa é binação com o PHP.
CONSTRAINT PK_TB_LIVROS dex.php, lista a quantidade de livros listar. Essa ação
PRIMARY KEY (CODIGO); disponíveis e em que status se en- monta uma tabela
contram (Emprestado, Disponível ou com todos os livros
3 . O CÓDIGO DOS LIVROS Encomendado). O script faz também do banco ordenados
Agora vamos aproveitar um dos re- uma pesquisa no banco de dados e pelo título.
cursos do Firebird e transportar pa- monta uma lista do tipo combo com Quando acionado
ra o banco a responsabilidade de criar todos os livros disponíveis. pelo botão Incluir do
sequencialmente o código dos livros Por fim, apresenta uma série de cin- index.php, a ação
na medida em que forem inseridos. co botões para que você possa esco- desse programa é
Ainda em nossa tela de consulta va- lher entre listar os livros disponíveis abrir uma tela de for-
mos inserir o seguinte comando: e seu status, Incluir e Excluir livros. As Resultado: controle
CREATE TRIGGER AI_TB_ outras duas opções são de registrar dos livros emprestados
e dos disponíveis
LIVROS_ CODIGO FOR TB_ empréstimos e/ou devoluções.
TUTORIAL/FIREBIRD TUTORIAL/FIREBIRD
Gatilho: gerador
5 . REQUISIÇÕES DO USUÁRIO mulário para que seja digitado o no-
automático do código Nosso segundo programa, o pro- me do novo livro do acervo e mon-
de cada um dos livros
cessa.php, é que fará o trabalho to- tar um combo para que seja defini-
do. Ele é um pouco extenso, mas do qual o seu status (Disponível, Em-
LIVROS não é complexo. prestado, Encomendado).
ACTIVE BEFORE Em princípio, o segundo progra- Quando o botão “Excluir” é aciona-
INSERT ma se caracteriza por uma árvore do é há um livro selecionado no com-
POSITION 0 de decisão usando if e elseif, sen- bo do index.php, o programa reage
AS do que cada ação solicitada pelo excluindo aquele título selecionado.
BEGIN usuário vai determinar um compor- Para a operação de empréstimo,
IF (NEW.CODIGO tamento diferente. o programa abre um formulário pe-
ra que se abra uma tela para a cria- IS NULL) THEN A primeira providência do pro- dindo o nome do associado que es-
ção de consultas SQL. Dentro da te- NEW.CODIGO = GEN_ID(TB_ grama para atender qualquer que tá emprestando o livro. Na seqüên-
la de consulta, criaremos o banco de LIVROS_CODIGO_GEN, 1); seja a necessidade do usuário é cia, faz a atualização das informa-
dados com o comando: END abrir uma conexão com o banco de ções trocando o status do livro pa-
CREATE TABLE TB_LIVROS ( Este gatilho será acionado auto- dados. Em seguida, ele registra qual ra Emprestado e registrando o no-
CODIGO INTEGER NOT NULL, maticamente a cada inclusão para a operação o usuário solicitou, e, me do associado que retirou o livro.
TITULO VARCHAR(50) NOT NULL, gerar o código do livro. por conta disso, determina se ele A operação final é a devolução
STATUS VARCHAR(20) NOT NULL, terá que ser executado mais uma do livro que, quando acionada, al-
ASSOCIADO VARCHAR(40) 4. SCRIPT EM PHP vez ou se deve retornar ao in- tera o status do livro para Disponí-
CHARACTER SET NONE COLLATE Faça o download do arquivo biblio- dex.php. O programa toma essa de- vel e elimina o nome do associado.
NONE); teca.zip no endereço ftp://ftp.info. cisão ao definir qual ação deve ser É evidente que outras imple-
Logo depois, determinaremos que abril.com.br/biblioteca.zip . Des- acionada pelo formulário, se exe- mentações e validações são ne-
o código do livro será a chave pri- compacte-o na pasta onde opera o cuta o index.php ou ele mesmo cessárias, mas este exemplo já per-
mária de acesso ao banco com o se- seu servidor web e terá os arquivos (processa.php) com um novo parâ- mite vislumbrar um pouco da efi-
guinte comando: index.php e processa.php. metro de operação. ciência do Firebird usado em com-
ALTER TABLE TB_LIVROS ADD Nosso primeiro programa, o in- A primeira ação do programa é binação com o PHP.
CONSTRAINT PK_TB_LIVROS dex.php, lista a quantidade de livros listar. Essa ação
PRIMARY KEY (CODIGO); disponíveis e em que status se en- monta uma tabela
contram (Emprestado, Disponível ou com todos os livros
3 . O CÓDIGO DOS LIVROS Encomendado). O script faz também do banco ordenados
Agora vamos aproveitar um dos re- uma pesquisa no banco de dados e pelo título.
cursos do Firebird e transportar pa- monta uma lista do tipo combo com Quando acionado
ra o banco a responsabilidade de criar todos os livros disponíveis. pelo botão Incluir do
sequencialmente o código dos livros Por fim, apresenta uma série de cin- index.php, a ação
na medida em que forem inseridos. co botões para que você possa esco- desse programa é
Ainda em nossa tela de consulta va- lher entre listar os livros disponíveis abrir uma tela de for-
mos inserir o seguinte comando: e seu status, Incluir e Excluir livros. As Resultado: controle
CREATE TRIGGER AI_TB_ outras duas opções são de registrar dos livros emprestados
e dos disponíveis
LIVROS_ CODIGO FOR TB_ empréstimos e/ou devoluções.
CERTIFICAÇÃO
ESPECIALISTAS
EM DADOS
CONHEÇA AS CERTIFICAÇÕES IBM, ORACLE E
MICROSOFT, AINDA AS MAIS VALORIZADAS
CERTIFICAÇÃO/ORACLE
TODO MUNDO
QUER UM OCP
CONQUISTAR O MAIS IMPORTANTE TÍTULO DA ORACLE
PODE RENDER BOAS PROPOSTAS DE EMPREGO
POR ANA LÚCIA MOURA FÉ
D mento do instituto de
pesquisas Gartner, a
Oracle detém a segun-
da posição no ranking de sistemas
tam. “Se não der, é melhor começar
pela Oracle, porque o produto é ro-
busto e tem uma estratégia de de-
senvolvimento que conta bastante
de gerenciamento de bancos de da- hoje em dia”, diz.
dos relacionais. Com 33% de parti-
cipação (em receitas com vendas de APOSTA CERTA
licenças), a Oracle só perde espaço Foi o que fez Valter José de Aquino,
para a IBM (36%) e deixa a Microsoft matemático de 42 anos, 20 de car-
(19%) para trás. Esses números aju- reira. Em 2003, correu atrás da cer-
dam a posicionar as certificações da tificação em Oracle 8i. “Encomendei
empresa entre as mais importantes livros estrangeiros e estudei sozi-
do mercado. “São as mais procura- nho”, diz. “Não passei a ganhar mais,
das”, diz Edson Aguilera, coordena- mas mudei de emprego”. Aquino foi
dor dos cursos de pós-graduação em fisgado pela consultoria Stefanini,
Informática da Universidade Santo concorrente do antigo empregador.
Amaro (Unisa), de São Paulo. Depois, passou a integrar a equipe
As empresas já não querem pro- de DBAs que cuidam dos bancos de
fissionais com intimidade apenas dados da gigante do alumínio Alcoa.
com uma plataforma tecnológica. Outro que decidiu apostar todas
“De 2003 para cá, busca-se mais o as fichas na Oracle foi o potiguar Jo-
especialista que, além da implanta- sivan da Costa Santos, de 36 anos,
ção, entende todo o funcionamento DBA da prestadora de serviços e fá-
do banco de dados, tornando-o sim- brica de software CPM. A empresa
ples, seguro e alinhado com as es- pagou pelos exames e Santos con-
tratégias da empresa”, diz Aguilera. quistou os títulos nas versões 8i e
Para os indecisos quanto à mar- 9i. Com isso, ele passou a respon-
ca, a dica é relacionar as empresas der pela conta do Bradesco. “Mui-
ou segmentos nos quais se quer tra- tos DBAs não merecem o título. Não
C O L E Ç Ã O I N F O > 109
109_CERTIF_ORACLE 26/02/2006 00:46 Page 110
CERTIFICAÇÕES/ORACLE
basta fazer o curso. É preciso en- namento de Recife (PE). Ela ressal-
tender o negócio da empresa”, diz. ta um detalhe importante: quem fi-
O Brasil dispõe atualmente de 802 zer questão de receber o canudo
profissionais certificados em ban- oficial em inglês, usar a logomarca
cos de dados Oracle. Levantamen- Oracle e constar das listas oficiais
to feito pela empresa com seus par- das certificadoras, tem de freqüen-
ceiros indica que cerca de 7 mil tar pelo menos um curso da grade.
profissionais são treinados anual- A Oracle mantém nas principais
mente nessa tecnologia. capitais do país centros de treina-
mento nos quais o aluno participa
COMO CHEGAR LÁ dos cursos presenciais. A fornece-
O roteiro de certificação em bancos dora também coloca à disposição
de dados Oracle começa com a OCA dos treinandos um CD de auto-es-
(Oracle Certified Associates). O treina- tudo com o mesmo conteúdo do
mento para se tornar um OCA em curso presencial.
Oracle 9i custa 5 014,58 reais. Para Os exames de certificação são rea-
a versão 10g, mais recente, que a lizados pela Prometric e têm vali-
empresa tem interesse em pro- dade internacional. Outra forma de
mover, o valor cai para 2 507,29 reais. adquirir a certificação é fazer facul-
A vantagem do título OCA é po- dade em instituições que mantêm
der ser conquistado na metade do convênio com a Oracle.
tempo do nível seguinte, que é o
Oracle Certified Professional (OCP).
Oferecido a desenvolvedores e OCP ORACLE DBA
DBAs, o OCP é a carreira mais im- CERTIFIED
portante da Oracle. Há ainda um
terceiro título, o Oracle Certified
PROFESSIONAL
Master (COM). “Destina-se a espe- PARA QUEM É Analistas de
sistemas, gerentes
cialistas e gurus em produtos Ora- e profissionais de
TI que desejam
cle”, diz Fernando Silva, diretor da iniciar ou
incrementar a
Oracle University. carreira como
administrador de
Para ser um OCP, o profissional bancos de dados (DBA)
deve se submeter a quatro cursos TREINAMENTO 4 cursos de 30
horas cada
ao preço total de 5 mil reais (Ora-
NÚMERO DE 4 (2 para OCA e 2 para
cle 10g) a 10 mil reais (9i). “Mas EXAMES OCP)
quem já tem experiência pode dis- CUSTO DO 10 029,16 (9i)
TREINAMENTO 5 014,58 (10g)
pensar essa etapa e ir direto para COMPLETO (R$)
os testes”, diz Bernadete Sabino, CUSTO DOS 996,03 (9i)
EXAMES (R$) (1) 535,50 (10g)
gerente de treinamento da Apply
(1) Valor em dólar convertido pela taxa de 2,142 reais por dólar.
Solutions, um centro oficial de trei-
110 < C O L E Ç Ã O I N F O
111_CERTIF_IBM 03/03/2006 10:25 Page 111
CERTIFICAÇÃO/IBM
DOMINE O DB2
EM SEIS ETAPAS
ATÉ SE TORNAR ESPECIALISTA NO BANCO DE DADOS DA
IBM, O PROFISSIONAL PASSA POR VÁRIAS PROVAS
POR ANA LÚCIA MOURA FÉ
C O L E Ç Ã O I N F O > 111
111_CERTIF_IBM 26/02/2006 00:47 Page 112
CERTIFICAÇÃO/IBM
112 < C O L E Ç Ã O I N F O
113_CERTIF_MICROSOFT 26/02/2006 00:53 Page 113
CERTIFICAÇÃO/MICROSOFT
CRAQUES EM
SQL SERVER
VOCÊ VAI TER DE VENCER QUATRO PROVAS PARA SER
ESPECIALISTA NO BANCO DE DADOS DA MICROSOFT
POR ANA LÚCIA MOURA FÉ
C O L E Ç Ã O I N F O > 113
113_CERTIF_MICROSOFT 26/02/2006 00:49 Page 114
CERTIFICAÇÕES/MICROSOFT
114 < C O L E Ç Ã O I N F O