Você está na página 1de 52

sql13.

indb 1

20/8/2004 19:18:42

sql13.indb 2

20/8/2004 19:19:04

N
M

esta edio
04.............................................................News

uito tem se falado nos ltimos anos sobre o desenvolvimento de software utilizando o paradigma orientado a objetos. E muitos tm associado isso utilizao da linguagem Java, o que um erro. Desenvolver software orientado a objetos no apenas programar utilizando uma linguagem orientada a objetos, mas sim fazer uso das vantagens que o paradigma traz durante todo o desenvolvimento do produto. A SQL Magazine traz nessa edio dois artigos cujo foco o desenvolvimento de software utilizando o paradigma orientado a objetos: Projeto de software utilizando UML e Desenvolvimento de aplicaes orientadas a objeto apoiadas por tecnologias Java Parte II Anlise. No primeiro artigo, capa desta edio, feita uma introduo ao uso da UML durante a anlise e o projeto de software atravs de um estudo de caso. A UML uma linguagem de modelagem e define um conjunto de notaes para projetar a soluo computacional da aplicao. Neste artigo so apresentadas tambm algumas diretrizes de como elaborar os diagramas mais utilizados da UML tendo definido os requisitos do sistema. No segundo artigo, dada a continuidade a uma srie de artigos sobre o desenvolvimento de uma aplicao Java utilizando a orientao a objetos e princpios de engenharia de software. Seu foco a fase de anlise dos requisitos onde so definidas as necessidades do usurio. So dois artigos que se complementam. Destacamos nessa edio tambm o trabalho do prof. Zimbro. Ele discute os SGBDs livres mais conhecidos em um artigo cujo foco a tomada de deciso sobre qual SGBD utilizar dadas as necessidades da aplicao e as caractersticas de cada banco. Contamos tambm nessa edio com o trabalho da Isabel Italiano e Luiz Esteves. Eles escreveram um artigo bastante interessante sobre modelagem de data warehouses. Vale lembrar aqui que o artigo o primeiro de uma srie. Em seu segundo artigo para a SQL Magazine, Ricardo Rezende apresenta a arquitetura do Oracle Server onde so abordadas as estruturas fsicas, lgicas, de memria e de processos que esto presentes na conexo, criao de sesses e na execuo de instrues SQL. Muitos dos tpicos apresentados neste artigo so importantes e necessrios para a criao de uma base de dados Oracle. Em um outro artigo sobre esse SGBD, discutido como podemos utilizar o Access como front-end no acesso a uma base de dados Oracle. Temos tambm nessa edio um artigo que aborda questes de segurana no SQL Server 2000. Seu foco o entendimento de como funciona e como configurar as opes de autenticao em um servidor SQL Server e definio de roles para que usurios tenham acesso a databases. Por fim, gostaramos de destacar em primeira mo as novidades do novo SQL Server 2005. Em uma matria escrita por Paula Silva, o leitor ficar por dentro do que est por vir na nova verso do SGBD da Microsoft. Desejo a todos vocs uma excelente leitura e, mais uma vez, nos colocamos sua disposio para opinies, crticas e sugestes. Abraos, Rodrigo Oliveira Spnola editor@sqlmagazine.com.br

Dvidas........................................................05
06..................................................Integrao Integrando Oracle com o MS-Access

SGBDs..........................................................12
Sistemas Gerenciadores de Bancos de Dados Livres

18...............................................................UML Projeto de software utilizando UML

Java...............................................................26
Desenvolvimento de aplicaes orientadas a objeto apoiado por tecnologias Java, Parte II Anlise

34...........................................................Oracle Introduo ao Oracle 9i, Parte II Entendendo o Oracle Serve

Data Warehouse......................................42 Modelagem de Data Warehouses e Data Marts Parte 1


46................................................SQL Server SQL Server 2005 e agora DBA, o que mudou?

Articulistas desta edio Coordenador Editorial

Reviso

Assinaturas

Gladstone Matos gladstone@clubedelphi.net


Editor Geral

Rodrigo Oliveira Spnola rodrigo@sqlmagazine.com.br


Equipe Editorial

Arilo Cludio Dias Neto, Geraldo Zimbro, Isabel Cristina Italiano, Luiz Antonio Esteves, Paula Silva, Rafael Ferreira Barcelos, Reinaldo Viana, Rodrigo Oliveira Spnola, Ricardo Rezende, Vinicius Loureno de Sousa
Traduo

Edison Costa edison@sqlmagazine.com.br


Capa

assinaturas@sqlmagazine.com.br
Publicao de artigos

Andr Pinto andregpinto@terra.com.br


Gerente de Produo

rodrigo@sqlmagazine.com.br
Na Web

www.sqlmagazine.com.br
Distribuio

Carlos Cant, Eduardo Bezerra, Eduardo Bottcher, Geraldo Zimbro, Reinaldo Viana, Paulo Ribeiro, Ricardo Rezende e Vincius Sousa
Assessoria de Imprensa

Anna Beatriz abeatriz@visualnet.com.br


Design Grfico - pH Design

Vinicius Andrade vinicius.andrade@clubedelphi.net


Publicidade

Luiz Cludio Barreto publicidade@devmedia.com.br


Atendimento ao Leitor

Fernando Chinaglia Dist. S/A Rua Teodoro da Silva, 907 Graja - RJ - 206563-900
Realizao Apoio Projeto Grfico

Jaime Peters Junior jaime@phdesign.com.br Tarcsio Bannwart tarcisio@phdesign.com.br

Kaline Dolabella kaline@sqlmagazine.com.br

Luana Gouveia Marcio Avelar info@sqlmagazine.com.br (21) 2283-9012

sql13.indb 3

20/8/2004 19:19:28

N ews
itulo
Oracle XML Data Synthesis (XDS) - Technology Preview

D
rie, uma das autoridades no assunto, aborda praticamente todos os temas associados ao uso e administrao desse BD. Sem dvida a melhor literatura disponvel atualmente sobre o FB. O livro pode ser adquirido pela IBPhoenix (www.ibphoenix.com).
Dicas para otimizar o Oracle Application Server

A Oracle disponibilizou o preview do Oracle XDS. Ele permite acessar, agregar e integrar em tempo real as informaes vindas de fontes distintas como SAP, PeopleSoft, DB2, SQL Server, Excel, XML, etc. O download pode ser feito pelo endereo http://otn.oracle.com/software/htdocs/ eaplic.html?http://download.oracle.com/otn/ utilities_drivers/xml/xds.zip Fonte: http://otn.oracle.com/tech/ xml/xds/index.html
Microsoft libera beta2 do SQL Server 2005

de 64bits Opteron da AMD e Itanium, da Intel. Alm disso, esto sendo adicionados novos recursos de Business Intelligence, incluindo a habilidade de criar clusters de redes neurais. Um terceiro beta esperado para o final do ano. Fonte:www.computerworld. com/databasetopics/data/software/ story/0,10801,94822,00.html?f=x589
IBM doa o Cloudscape para a Apache

A Microsoft acaba de liberar para mais de 500.000 usurios e desenvolvedores a segunda verso beta do SQL Server 2005, que inclui suporte para os processadores
SBBD 2004

O Simpsio Brasileiro de Banco de Dados (SBBD) o evento oficial de banco de dados da SBC - Sociedade Brasileira de Computao, e tem por objetivo principal a publicao de resultados de pesquisas da rea de banco de dados. Em sua dcima nona edio, o SBBD 2004 deve reunir mais de 800 participantes em Braslia. O SBBD rene pesquisadores, estudantes e profissionais do Brasil e do exterior, que discutem problemas relacionados aos principais tpicos em reas modernas de banco de dados. Alm das sesses tcnicas e tutoriais, o simpsio inclui palestras ministradas por pesquisadores distintos da comunidade de pesquisa internacional. O SBBD 2004 ser realizado em Braslia, do dia 18 a 20 de Outubro. Programem-se! Maiores informaes podem ser obtidas no site do evento: www.sbbd.unb.br

A IBM anunciou que ir doar o banco de dados Cloudscape para a Apache Software Foundation. O banco foi adquirido pela IBM quando ela comprou a Informix Corp. Desde ento, ela vem utilizando o Cloudscape em alguns de seus produtos. O valor do software est estimado em 85 milhes de dlares. O Cloudscape um banco de dados relacional, feito em Java, que possui um footprint de apenas 2MB. A IBM planeja lanar uma verso comercial do software no final do ano, baseado no cdigo da Apache. Fonte: www.computerworld.com/ databasetopics/data/software/ story/0,10801,95006,00. html?SKC=software-95006
Firebird 1.5.1

Steve Button e Tim Blake fizeram uma apresentao na Melbourne Openworld apresentando 10 dicas para a otimizao do Oracle Application Server. A apresentao pode ser baixada no endereo http:// download-west.oracle.com/openworld/ melbourne/all_melbourne_ppts/AS_B_08.PDF
Oracle Data Miner Pr-release

Acaba de ser lanada a primeira atualizao para o Firebird 1.5. A nova verso traz vrios bugs corrigidos, incluindo a correo de um problema que causava o consumo intensivo do processador quando eventos eram utilizados com o banco de dados e ocorria uma quebra de conexo com a rede. O download pode ser feito pelo site oficial do Firebird (www.firebirdsql.org).
The Firebird Book

A Oracle acaba de lanar uma interface grfica para o Oracle Data Mining a fim de ajudar os analistas de informao a minerar seus dados de forma fcil atravs de wizards que guiam o usurio por todo o processo de coleta, preparao e avaliao dos modelos. Com o uso integrado do Oracle Data Miner e do Oracle Data Mining, os dados no precisam sair do banco de dados eliminando o processo de migrao dos dados a serem analisados e permitindo a utilizao completa dos recursos de segurana que um BD Oracle oferece. Fonte: www.rittman.net/ archives/000963.htm
Nova verso do Mammoth PostgreSQL Replicator

Acaba de sair no mercado internacional a primeira publicao literalmente de peso sobre o banco de dados Firebird. Pesando quase 2kg, o livro de autoria de Helen Bor-

Lanado o Mammoth PostgreSQL Replicator 1.2, ferramenta de replicao assncrona de dados para o banco de dados PostgreSQL. O sistema utiliza um log de transaes distribudo para gerenciar as atualizaes produzidas pelo banco de dados mestre, permitindo que mltiplos bancos de dados escravos recebam as atualizaes de forma contnua ou em lotes (www. postgresql.org/news/180.html).

a
20/8/2004 19:19:29

sql13.indb 4

D vidas
ndices no SQL Server

SQL - Magazine

Oi Paulo, Queria parabeniz-lo pelo excelente artigo de sua autoria publicado na edio 10 da SQL Magazine. S este artigo valeu a assinatura da revista. Gostaria de lhe fazer uma pergunta: quando fao um INNER JOIN, LEFT JOIN ou RIGHT JOIN entre tabelas e tenho ndices para os campos utilizados nas clusulas ON, estes ndices so levados em considerao? Seu artigo me motivou a rever os meus ndices e ento surgiu esta dvida, pois quando executo as consultas e verifico o plano de execuo aparece sempre ndice scan e no ndice seek. Desde j agradeo, Marcus Paulo Oi Marcus, tudo bem? Obrigado pelo elogio! Desde a semana passada passei tambm a integrar o time de colunistas no site da SQL Magazine (www. sqlmagazine.com.br), que ser tambm uma boa fonte para troca de experincias! Vamos sua dvida: O fato de utilizar ou no um ndice uma deciso que o otimizador de queries faz aps uma ampla anlise nas tabelas envolvidas. O critrio fundamental nessa escolha a seletividade. Imagine um inner join entre duas tabelas; a primeira possui duas linhas e a segunda 2.000.000. Desses dois milhes de linhas, apenas 50 possuem equivalente na primeira tabela. Se existir ento um ndice formatado para as colunas que participam da clusula ON, com certeza ele ser utilizado na tabela com 2.000.0000 de linhas. J na primeira tabela dificilmente um ndice

seria utilizado em funo do baixssimo nmero de linhas existentes. Espero que tenha respondido a sua pergunta. Um grande abrao, Paulo Ribeiro
Transaes e Componentes Dataware

Prezados, Estou usando o componente IBDataSet de duas maneiras conforme exemplos abaixo:
Boto Incluir registro dm.IBDataSet1.Append; --------------------------Digitao nos DBEDITs --------------------------Boto Confirmar try dm.IBDataset1.post; dm.IBTransaction1.Commit; except erro end; Boto Incluir registro ----------------------Digitao nos EDITs ----------------------Boto Confirmar try dm.IBDataSet1.Append; dm.Dataset1NOME.asstring := edit1.text; dm.Dataset1ENDERECO.asstring:= edit2.text; dm.IBDataset1.post; dm.IBTransaction1.Commit; except erro end;

Srgio, O problema de usar os componentes Dataware (DBEdits) com o IBX que ele pode deixar sua transao aberta por muito tempo, o que pode causar problemas. Se voc usar TEdits e controlar a transao manualmente, iniciando-a s quando for realmente gravar os dados, o problema minimizado pois a transao ficaria um curtssimo tempo aberta. Se voc usar componentes mais inteligentes, como o IBO (InterBase Objects), esse problema com os componentes Dataware so bastante minimizados pois o IBO controla eficientemente as transaes. Sugiro que voc se inscreva na lista de discusso da FireBase. Abraos, Carlos H. Cantu

Envie suas dvidas!

Envie sua dvida com nome completo, cidade e estado, para: professor@sqlmagazine.com.br, ou para: Editor - Sql Magazine Av. Presidente Vargas, 482 - Sala 919 Centro . Rio de Janeiro . RJ CEP 20071-000 Fax: (021) 2283-9012 Dvidas publicadas podem ser editadas por motivos de clareza ou extenso.

O primeiro mais fcil de programar, mas ser to eficiente e seguro quanto o segundo? Haveria alguma vantagem em usar StartTransaction/Commit/Rollback nos exemplos acima com apenas uma tabela? Grato, Srgio Falco

Fonte: Azlexica

sql13.indb 5

20/8/2004 19:19:33

m muitos projetos, h a necessiLeitura Obrigatria dade de incluir dados de diferenSQL Magazine 3, tes origens para um banco de da- artigo SQL Loader: dos central. Porm, muitas vezes temos Importao com dificuldades de fazer essa importao de Oracle forma rpida e fcil. Alguns motivos so a falta de ferramentas adequadas ou falta de conhecimento no uso dessas ferramentas. Este artigo ir mostrar (utilizando Microsoft Access/Excel 2000, o Windows 2000 Professional e Oracle 9i) uma forma bastante simples para exportar dados de uma tabela do MSAccess/Excel para um banco de dados do Oracle. Depois ser feito um link do MS-Access com uma tabela externa (do Oracle) e utilizaremos o prprio MS-Access como Front-End para interagir com o BD Oracle. Preparao dos dados para importao no Oracle O primeiro passo ser exportar os dados da tabela Access e/ou planilha Excel para ento import-los no Oracle. Este processo bem simples, iremos apenas gerar arquivos de texto com os dados a serem exportados. Com esses arquivos criados, s nos restar fazer a importao no Oracle. Exportando os dados do MS-Excel Para este procedimento, vamos considerar a planilha ilustrada na Figura 1.

ntegrando
Vinicius Loureno de Sousa e Ricardo Rezende

o Oracle com o MS-Access

Para efetuar a exportao, utilize o comando Salvar Como, selecionando o formato de arquivo CSV (separado por vrgulas)(*.csv) e especifique o nome para o novo arquivo. O MS-Excel lhe mostrar avisos quanto perda de formatao. Neste caso, estas informaes sero irrelevantes haja visto que queremos apenas um arquivo com os dados em modo texto sem formatao. Clique em OK e depois em Sim. Edite o arquivo criado em um editor simples, como o bloco de notas, retirando a primeira linha do arquivo que conter o nome das colunas (Codigo, Nome e Idade). No desejamos que estas informaes sejam importadas como dados.
Exportando os dados do MS-Access Seguindo a mesma linha de raciocnio do tpico anterior, faremos a exportao da tabela do MS-Access para um arquivo texto. Consideraremos a tabela mostrada na Figura 2. No menu Arquivo Exportar selecione Salvar como tipo: Arquivos de texto. O prprio assistente ir surgeir o nome da tabela como nome do arquivo texto. Clique em Salvar. Agora definiremos qual ser o mtodo de exportao utilizado para separar os dados de cada registro no arquivo texto. Selecionaremos o mtodo Delimitado para mantermos o mesmo padro de exportao da planilha do MS-Excel. Clique em Avanar (Figura 3). A utilizao de um ou outro mtodo no impede a importao dos dados no Oracle, porm a opo de Largura Fixa obriga a utilizao de parmetros adicionais durante a importao. Assim, o caminho mais simples a utilizao do delimitador. Uma vez escolhido o mtodo Delimitado, definiremos qual o delimitador a ser utilizado. No nosso caso, ainda para manter o padro da exportao da planilha, escolheremos Ponto-e-vrgula e em Qualificador de texto, escolheremos Nenhum. Clique em Avanar F2 (Figura 4). Agora s definir a pasta em que o arquivo ser gerado e clicar em Concluir. Pronto, agora j Formato da tabela MS-Access.

F1

Formato da planilha MS-Excel.

sql13.indb 6

20/8/2004 19:19:35

SQL Magazine L1

temos os dois arquivos de texto necessrios para fazer a importao dos dados no Oracle. Em nosso exemplo temos o arquivo TesteArtigo.txt que so os dados da planilha do MS-Excel e o arquivo Conta_Corrente.txt que so os dados da tabela do MS-Access.
Importando os dados atravs do SQL*Loader O Oracle SQL*Loader um utilitrio para importar dados de arquivos externos para tabelas de um BD Oracle. O objetivo

desta parte do artigo no o de ser um tutorial sobre o SQL*Loader e sim, um passo-a-passo de como utiliz-lo para importar os dados vindos de outras aplicaes (MS-Access e MS-Excel, no nosso caso) para uma tabela Oracle de maneira profissional. Antes de qualquer coisa, preciso que o objeto, no caso a tabela, j exista no BD Oracle. A Listagem 1 nos mostra como cri-la.
Preparando o SQL*Loader para importao Inicialmente preciso deF3 finir um arquivo de controle contendo os parmetros para que o SQL*Loader possa fazer a importao. Este arquivo de controle um arquivo texto que pode ser criado em qualquer editor de textos comum. Para o nosso exemplo, criaremos o arquivo TesteArtigo.ctl cujo contedo mostrado na Listagem 2. O parmetro INFILE indica qual o arquivo de origem dos dados. Perceba tambm que posso indicar mais de um arF4 quivo para que o SQL*Loader busque as informaes apenas acrescentando linhas de INFILE para cada arquivo de origem. O parmetro BADFILE define qual o arquivo que conter os registros eventualmente rejeitados pela importao. APPEND uma opo usada quando estamos importando dados para uma tabela que j contenha dados. Os dados sero armazenados na tabela existente sem causar nenhuma perda nas informa-

Criao da tabela no Oracle.


SQL> CREATE TABLE CONTA_CORRENTE 2 (CODIGO NUMBER(4) PRIMARY KEY, 3 NOME VARCHAR2(30), 4 IDADE NUMBER(3));

Contedo do arquivo de controle para o SQL*Loader.


LOAD DATA INFILE testeartigo\TesteArtigo.csv --Gerado pelo MS-Excel INFILE testeartigo\CONTA_CORRENTE.txt --Gerado pelo MS-Access BADFILE testeartigo\TesteArtigo.bad APPEND INTO TABLE CONTA_CORRENTE FIELDS TERMINATED BY ; (CODIGO, NOME, IDADE)

L2

Execuo do SQL*Loader.
C:\>sqlldr teste/teste@dba control = testeartigo\testeartigo.ctl SQL*Loader: Release 9.2.0.1.0 - Production on Ter Jul 6 14:32:48 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Atingido o ponto de commit - contagem de registros lgicos 4 Atingido o ponto de commit - contagem de registros lgicos 8

L3

Definio do formato de exportao dos dados.

es j armazenadas. Por fim, definimos tambm qual tabela ir receber os dados, o tipo de delimitador dos campos cujo arquivo de origem dos dados foi formatado (em nosso caso o ;) e finalmente quais so os campos existentes na tabela. Os campos devem ser colocados na ordem que aparecem no arquivo texto, pois o Oracle ir ler o arquivo e fazer a importao seqencialmente.
Executando a importao Depois de termos criado o arquivo de controle, basta executar o SQL*Loader fornecendo a informao de usurio e senha do BD Oracle e qual o arquivo de controle a ser usado. A Listagem 3 mostra este processo.

Definio do tipo de delimitador.

sql13.indb 7

20/8/2004 19:19:39

ntegrando o Oracle com o MS-Access


a utilizao dos formulrios do prprio MS-Access. Neste caso, invs de gravar os dados em uma tabela prpria, utilizaremos uma conexo ODBC para efetuar a gravao dos dados em uma tabela externa presente, em nosso caso, em um BD Oracle. Veremos a partir de agora como utilizar o MS-Access como front-end do Oracle.
F7

No prompt de comando, executamos o SQL*Loader (sqlldr) fornecendo o usurio, senha e string de conexo ao BD (teste/ teste@dba). Feito isto, entraremos no prompt do SQL*Loader, onde informamos qual o arquivo de controle utilizado (control = testeartigo\testeartigo.ctl). Note que as duas ltimas linhas retornadas pela execuo do SQL*Loader indicam a quantidade de registros importadas em cada arquivo. A primeira linha indica quatro registros, nmero exato de linhas existentes no arquivo TesteArquivo.csv (do MS-Excel) e a segunda linha indica oito registros. Embora o arquivo Conta_Corrente.txt (do MS-Access) contenha quatro linhas, j existiam quatro linhas importadas. Vimos at aqui como exportar dados do MS-Access e Excel para o Oracle. Veremos a partir de agora como utilizar o MS-Access como front-end para um banco de dados Oracle.
MS-Access como Front-End Uma opo prtica para criao de interfaces para um banco de dados Oracle

Tela do Administrador ODBC Data Source.

Criar um novo Data Source.

Configurando o Data Source (ODBC) Tela de conexo ao driver Oracle ODBC. Inicialmente necessrio configurar um data source. Para F8 isto, abra o Painel de Controle do Windows e d um duplo clique em Ferramentas Administrativas. Depois abra a opo Fontes de dados (ODBC) (Figura 5). Em seguida clique na aba File DSN e clique no boto Add (Figura 6). Selecione a opo Oracle em OraHome92 como o driver de conexo e clique em Next. Este driver foi instalado juntamente F5 com seu Oracle. Uma caixa de dilogo aparecer e voc dever digitar um nome para Tela para seleo do Data Source. a conexo do Data Source. Digite TesteArtigo e clique em Next. Access, v ao menu Arquivo -> Obter Ento finalize a gerao do driver de dados externos -> Vincular tabelas. Feito conexo clicando em Finish. isto, aparecer uma tela de dilogo onde Aparecer outra tela de dilogo (Fi- voc dever escolher como tipo de arquivo gura 7) onde voc dever entrar com a ser aberto ODBC Databases. as informaes do banco de dados do Outra tela de dilogo aparecer para que Oracle tais como nome do usurio, seja selecionada a origem dos dados. Voc senha e nome da instncia do banco dever selecionar o Data Source criado de dados. (Figura 8) e depois clicar no boto OK. Depois de informar os dados Em seguida aparecer uma tela para voc referentes conexo com o Ora- logar no Oracle. Algumas informaes j F6 cle clique no boto OK. Perceba iro aparecer, bastando apenas digitar a que o nome digitado para sua senha e confirmar. Depois ser apresentada uma tela fonte de dados aparecer na lista de arquivos DSN. Depois basta listando todas as tabelas do banco de clicar em OK para sair do Admi- dados do Oracle que seu usurio tem nistrador ODBC Data Source. acesso (Figura 9). Voc poder selecionar quantas tabelas quiser e aps confirmar as tabelas selecionadas, estas aparecero Conectando uma tabela no Microsoft Access como tabelas linkaexterna ao MS-Access das (Figura 10). No nosso caso, escolheusando ODBC Tendo definido o data source, mos apenas a tabela TESTE_CONTA_ criaremos agora o front-end. No CORRENTE.

sql13.indb 8

20/8/2004 19:19:41

SQL Magazine

Criando o formulrio O ltimo passo criar o formulrio no MS-Access que far a interface com o BD Oracle. O MS-Access permite criar formulrio de maneira prtica e rpida atravs de seu assistente. Para isso, selecione a opo Formulrios e clique em Criar formulrio usando o assistente (Figura 11). Selecione a tabela externa no campo Tabelas/Consultas e insira todos os campos disponveis em campos selecionados pressionando >> (Figura 12). Feito isto, clique em avanar. O prximo passo selecionar o layout dentre os prdefinidos e clicar em avanar. Utilizaremos o layout Coluna. Agora, definiremos o estilo do formulrio. O MSAccess oferece vrios estilos para tornar seu visual mais agradvel. Nossa opo ser o estilo Padro. Finalmente, indique o ttulo que deseja para o formulrio e clique em concluir. Utilizaremos em nosso exemplo o prprio nome da tabela (Figura 13). Pronto, nosso front-end j est finalizado, totalmente conectado tabela do Oracle. Este formulrio possui uma srie de controles para navegao nos registros e todas as alteraes/ incluses sofrero um commit automti c o n o B D Oracle. A Figura 14 mostra como ficou nosso formulrio. Por fim, vale destacar que tambm possvel criar relatrios baseados em uma tabela ou consulta atravs dos assistentes. A Figura 15 mostra o resultado de um relatrio criado a partir dos dados da nossa tabela.

F9

Tela para seleo das tabelas do Oracle.

F10

MS-Access com a tabela do Oracle linkada.

F11

Opo de criao de formulrio.

F12

Seleo da tabela e campos para o formulrio.

sql13.indb 9

20/8/2004 19:19:51

ntegrando o Oracle com o MS-Access


F13

ltimo passo do assistente de formulrio.

F14

Front-End criado no MS-Access.

F15

Relatrio criado a partir do assistente.

Concluses Neste artigo pudemos perceber a facilidade em se exportar dados tanto de planilhas do MS-Excel quanto do MS-Access e import-las no Oracle atravs do SQL*Loader. Este um procedimento comum principalmente quando se precisa migrar a base de dados para uma soluo mais robusta. Percebemos que esta abordagem relativa apenas a uma carga de dados. Toda a estrutura de integridade referencial, etc. deve ser implementada posteriormente no Oracle. Pudemos tambm criar uma interface fcil de implementar para interagir com o BD Oracle sem a necessidade de maiores investimentos em ferramentas. claro que os recursos so limitados, porm em muitas situaes esta soluo se torna extremamente vivel e econmica. Fiquem vontade para perguntar e interagir conosco atravs de nosso e-mail. At a prxima.

Comente essa matria em: www.sqlmagazine.com.br/sql13


A

Vinicius Loureno de Sousa (vini1@infolink.com.br) membro da equipe editorial da SQL Magazine e analista de sistemas, projetista e desenvolvedor Java/Delphi para projetos Web e Off-Line que utilizam bancos de dados InterBase, Firebird e Oracle 9i na CPM S/A. Ps-Graduado em Anlise, Projetos e Gerncia de Sistemas pela PUC-RJ e possui certificao BrainBench em Delphi e RDBMS. Ricardo Rezende (ricardo@sqlmagazine.com.br) professor das disciplinas de Banco de Dados, Linguagem de Programao e Tcnicas de programao pelo Centro Estadual de Educao Tecnolgica Paula Souza nas unidades de Taubat-SP e Caapava-SP, DBA Oracle com cursos oficiais pela Oracle University, consultor de Bancos de Dados e subeditor da revista SQL Magazine.

10

sql13.indb 10

20/8/2004 19:20:14

SQL Magazine

11

sql13.indb 11

20/8/2004 19:20:17

S
O
12
sql13.indb 12

istemas
Geraldo Zimbro

Gerenciadores de Bancos de Dados Livres

s sistemas gerenciadores de bancos de dados (SGBDs) so uma pea fundamental na infra-estrutura de software de qualquer empresa, seja ela de informtica ou no. Um SGBD confivel deve apresentar uma srie de funcionalidades, tais como: segurana dos dados, consistncia, disponibilidade, recuperao de falhas, desempenho, controle de concorrncia, etc. No entanto, os SGBDs comerciais existentes costumam cobrar muito caro por estes recursos, especialmente devido ao esquema de licenciamento empregado, que costuma levar em considerao o nmero de usurios simultneos e/ou a configurao do servidor. No raro encontrar exemplos de aplicaes, especialmente as mais simples, onde mais da metade do custo da aplicao representado pela licena do SGBD. A situao se torna ainda mais crtica para as aplicaes em produo, pois muitos dos contratos de uso de SGBDs envolvem renovao anual da licena, gerando algum tipo peridico de custo. Contudo, este cenrio est mudando significativamente em especial nos dois ltimos anos. Seguindo o rastro de outras aplicaes livres, tais como navegadores, ferramentas de e-mail, servidores web, editores de texto, planilhas etc., comeam a aparecer opes competitivas de SGBDs open source e gratuitos, tais como o MySQL, PostgreSQL, Firebird, SapDB/MaxDB e BerkeleyDB. Este artigo apresenta uma srie de consideraes estratgicas fundamentais para quem considera a hiptese de adotar um SGBD livre para o desenvolvimento de uma aplicao, realizando algumas comparaes entre os produtos e indicando suas principais vantagens e desvantagens. Em particular, observaremos alguns aspectos tcnicos de cada sistema, ressaltando, no entanto, o ponto de vista estratgico de um tomador de decises. Essa ressalva importante, pois muito comum encontrar opinies extremamente passionais no ambiente da comunidade de software livre. Que fique claro, portanto, que neste artigo no estamos discutindo simplesmente qual o melhor SGBD livre essa seria uma discusso interminvel e infrutfera.

os recursos oferecidos por um bom banco de dados comercial, como por exemplo o Oracle, DB2, SQL Server e alguns outros. Por outro lado, h SGBDs livres que so gratuitos mesmo para uso comercial (PostgreSQL e Firebird) e outros que apresentam uma licena dual (ver nota sobre licena DUAL), mas ainda assim essas licenas so bem mais baratas que os SGBDs comerciais. Se considerarmos o TCO (Total Cost Ownership custo total de propriedade), em diversas situaes um SGBD livre estar em vantagem sobre um SGBD comercial.
Licena DUAL

SGBDs Livres SGBDs Comerciais Antes de prosseguir, sejamos realistas: no h, no momento, nenhum SGBD livre que consiga superar em todos os quesitos

O MySQL possui uma licena DUAL, onde seu uso gratuito para qualquer aplicao distribuda sob a licena GPL (GNU Public License). Nesse modelo, qualquer projeto/software que utilize o MySQL gratuitamente, dever distribuir o cdigo do projeto seguindo os termos da licena GPL. Os que no quiserem distribuir o cdigo do projeto, devero pagar pelo uso do MySQL atravs da aquisio de uma licena comercial. A questo chave : at que ponto determinada aplicao necessita de todos os recursos oferecidos pelos SGBDs comerciais? Ou seja, ser que uma soluo livre no atenderia aos requisitos da aplicao? Alm disso, devemos considerar e analisar o investimento necessrio para implementar uma soluo usando um SGBD livre, tais como: treinamento em uma nova tecnologia, compra de livros e outros materiais didticos, desenvolvimento de uma cultura dentro da organizao, e at mesmo troca de hardware para compensar uma possvel queda de desempenho do SGBD, ou adicionar segurana atravs de redundncia (espelhamento, etc). Para tornar a questo ainda mais difcil, acrescente o fato de que temos uma variedade cada vez maior de SGBDs livres disponveis. O suporte sempre foi apontado como um ponto fraco no uso de qualquer software livre. No entanto, a comunidade de desenvolvedores e usurios de SGBDs livres cresceu bastante nos ltimos anos. Com isso, houve demanda suficiente para o aparecimento de empresas que oferecem contratos comerciais de suporte para SGBDs livres, criando dessa forma uma alternativa para os que no querem depender exclusivamente da documentao existente, ou da boa vontade de desconhecidos que embora

20/8/2004 19:20:18

SQL Magazine

atendam quase sempre os problemas no oferecem a segurana de uma responsabilidade definida por contrato. No Brasil podemos citar a DBExperts (PostgreSQL), a FireBase (Firebird) e MySQLBrasil (MySQL e MaxDB), entre outras.
Critrios para a Escolha de um SGBD Os SGBDs comerciais tm evoludo muito rapidamente nos ltimos anos. Ao contrrio do que se poderia esperar, contudo, os SGBDs tm convergido mais que divergido isso se deve de certa forma pela fora dos padres ANSI para o SQL. Em outras palavras, hoje mais fcil executar a mesma query em diferentes SGBDs se comparado h alguns anos atrs, pois os fabricantes vm se adequando cada vez mais aos padres. Um exemplo o left join, que exigia sintaxe especial no Oracle 8, e que agora pode ser feito com a sintaxe Ansi no Oracle 9. Mais do que isso, os diversos SGBDs comerciais comeam a se tornar cada vez mais semelhantes, tanto em funcionalidade quanto em desempenho. Apesar da minha predileo pessoal pelo Oracle, posso desenvolver em SQL Server ou DB2 sem fazer qualquer sacrifcio.
ANSI

comunidade em desenvolver novas verses SGBDs livres como potenciais candidatos de um produto. De uma forma geral, na hi- a serem utilizados no desenvolvimento de ptese da descontinuidade de um SGBD, a aplicaes. So eles: BerkeleyDB, MySQL, migrao para outro banco torna-se muito Postgresql, SapDB/MaxDB e Firebird. mais fcil e menos dispendiosa quando se Todos esses bancos oferecem as seguintes utiliza os padres abertos. Assim, a facili- funcionalidades bsicas, salvo onde mendade da migrao cionado o contrrio: est diretamente 1. Conceitos de regis...no h, no momento, nenhum SGBD tros, tabelas, ndices e relacionada ao uso de construes SQL livre que consiga superar em todos os chaves primrias; quesitos os recursos oferecidos por um padronizadas. Em bom banco de dados comercial, como por 2. Controle de transaparticular, a falta de exemplo o Oracle, DB2, SQL Server e es (commit / rollback) e concorrncia; padronizao nas alguns outros. 3. Integridade refelinguagens de triggers e stored procedurencial, restries (exres uma fonte de problemas para portar ceo: BerkeleyDB e algumas verses do uma aplicao de um SGBD para outro. MySQL); Uma soluo para este problema pode ser 4. Linguagem SQL (exceo: Berkeencontrada na SQL Magazine Edio 11, no leyDB); artigo Um tradutor de triggers. 5. Mecanismos de backup sem a necessiApenas para frisar o quanto isto impor- dade de parar o servidor (hot backup); tante, podemos citar o desenvolvimento de 6. Vises, Triggers e stored procedures (exaplicaes nos ambientes proprietrios de cees: BerkeleyDB e MySQL); mainframe (Natural e Adabas, por exemplo) 7. Write-Ahead Log (tambm chamado h 20 anos atrs, consideradas na poca so- de redo log exceo: Firebird, que utiliza lues sem risco, e que hoje so o pesadelo a tecnologia de Versioning); de muitas organizaes. Afinal, no pode8. Suporte a replicao e bancos stand mos descartar o risco de algo inesperado by, ainda que atravs de produtos de teracontecer. O que aconteceria, por exemplo, ceiros. se a Microsoft comprasse a Oracle?
Write Ahead Log

O American National Standards Institute, uma poderosa organizao privada norteamericana, sem fins lucrativos, que define uma srie de padres para a indstria. Por conta da globalizao e da fora da economia norte-americana, esses padres so seguidos mundialmente. Com isto em mente, do ponto de vista empresarial, os SGBDs caminham para se tornarem commodities e como tal, o fator custo adquire uma grande importncia: se so todos equivalentes, escolhe-se pelo preo. Para avaliarmos um SGBD iremos usar os critrios de TCO, desempenho, uso de padres abertos, funcionalidades de segurana e backup, disponibilidade, integridade dos dados, e controle de concorrncia. Em se tratando de SGBDs, usar padres abertos na construo de comandos SQL significa conformidade aos padres definidos pelo ANSI. A vantagem no uso de padres abertos torna-se evidente quando se leva em conta um dos riscos inerentes ao software livre: o possvel desinteresse da

Desempenho Existem diversas formas de se medir o desempenho de um SGBD. O TPC (Transaction Processing Performance Council www.tpc.org) disponibiliza uma srie de benchmarks que medem o desempenho de um SGBD simulando o comportamento de diversos tipos de aplicaes OLTP, data warehouse e lojas Web para comrcio eletrnico. Alm disso, podemos citar projetos open source para avaliao de SGBDs, tais como o OSDL-DBT (www.osdl. org/lab_activities/ kernel_testing/osdl_data base_test_suite) ou o OSDB (osdb.sourceforge.net). Embora a melhor avaliao de desempenho de um determinado SGBD sempre a prpria aplicao que ele dever suportar, nem sempre possvel arcar com os custos de desenvolver uma aplicao que efetivamente rode em mais de um banco. Da o mrito dos benchmarks. SGBDs Livres Podemos considerar atualmente cinco

Famlia de tcnicas utilizadas para garantir a atomicidade e a durabilidade das alteraes realizadas. A mais comum escrever as alteraes em um arquivo de log antes de escrever nas tabelas propriamente ditas. Em caso de falha do servidor, a informao no log utilizada para refazer ou desfazer as alteraes no banco de dados (undo ou redo). A seguir, iremos analisar cada um dos produtos em separado, avaliando suas vantagens e desvantagens.
BerkeleyDB O BerkeleyDB no exatamente um SGBD, mas uma biblioteca para ser acoplada a uma aplicao, e que oferece uma srie de funcionalidades de bancos de dados, tais como tabelas e ndices, atravs de uma API disponibilizada em diversas linguagens, entre elas C/C++ e Java. Tem como grande vantagem ser leve, ocupando aproximadamente 500k no executvel

13

sql13.indb 13

20/8/2004 19:20:20

istemas Gerenciadores de Bancos de Dados Livres


MySQL para desenvolver sites dinmicos: em geral, as atualizaes so pequenas e isoladas, e executadas por poucos usurios autorizados (catlogos de produtos, por exemplo). Essa caracterstica permite que muitas tabelas sejam criadas e disponibilizadas sem controle transacional.
Bloqueios a nivel de linha (row level lock)

final. , portanto, uma tima escolha para diversos mecanismos de armazenamento embutir em uma aplicao, um mecanis- fsico (MyISAM, InnoDB, BerkeleyDB etc). mo que oferea funcionalidades de SGBD. H uma verso do MySQL para operar Est disponvel em diversas plataformas, e em cluster utilizando bancos de dados possui mecanismos avanados para operar em memria RAM, e que oferece grande em cluster, tais como replicao e distri- escalabilidade de desempenho a nica buio de carga. No entanto, no pode ser restrio que o tamanho total do banco considerado um SGBD relacional pois no fica limitado pela memria disponvel. Ele possui, entre outras coisas, uma linguagem desenvolvido pela MySQL AB, e requer lide consulta nem a noo de esquema de cena comercial para uma srie de casos. dados. Com isto, fica a cargo da aplicao Avaliao: O MySQL, at a verso 3.23, manter, por exemplo, a integridade referen- no oferecia mecanismos de integridade cial dos dados. Outro ponto importante referencial, nem suportava o conceito de transaes. Isso agora que o BerkeleyDB no possvel atravs do um servidor, ele fica Os SGBDs comerciais tm evoludo InnoDB e do Berkeembutido na aplicao e funciona no espao muito rapidamente nos ltimos anos. Ao leyDB este ltimo contrrio do que se poderia esperar, conde endereamento tudo, os SGBDs tm convergido mais que suporta somente trandela. O suporte a aces- divergido isso se deve de certa forma pela saes. No entanto, o suporte a restries so remoto, no estilo fora dos padres ANSI para o SQL. de integridade ainda cliente/servidor, deve deficiente em parte ser programado pelo desenvolvedor usando sockets, ou qual- por que possvel utilizar tabelas que no quer outro mecanismo de comunicao suportam transaes. Alm disso, no h remota. suporte para views, triggers, nem stored proAvaliao: O BerkeleyDB pode ser en- cedures, embora isto esteja planejado para carado como uma biblioteca genrica para as prximas verses (stored procedures para a construo de SGBDs especficos para a verso 5.0 e, views e triggers para a 5.1). uma determinada aplicao, ou seja, um Em particular, a ausncia de triggers pode mecanismo de armazenamento de dados. dificultar demais o trabalho de garantir De fato, o prprio MySQL usa o Berke- a consistncia dos dados, pois as verificaleyDB como um de seus mecanismos de es ficam totalmente dependentes e sob armazenamento. A falta de funcionalidades responsabilidade da aplicao, tornando a bsicas tais como integridade referencial manuteno muito mais difcil e aumene linguagem SQL, limita a sua aplicao. tando consideravelmente o risco de falhas Contudo, quando estas funcionalidades (bugs). O suporte a sub-selects dentro de um no so necessrias, ele se torna uma boa opo, principalmente para aplicaes mo- comando SQL restrito, o que dificulta nousurio com esquemas de dados simples. muito o trabalho do programador, obriganOutro ponto forte a baixa necessidade de do-o muitas vezes a trabalhar com tabelas configurao e manuteno. temporrias. Outro ponto fraco que a ferramenta de hot backup para as tabelas do InnoDB vendida separadamente. Sem MySQL O MySQL sem dvida um dos SGBDs ela, necessrio realizar uma exportao livres mais conhecidos e utilizados atual- do banco (dump) como forma de backup, mente. Em particular, reina quase absoluto utilizando locks de leitura para garantir a em uma situao especfica: sites na Web consistncia o que muitas vezes pode ser com contedo dinmico, em geral utilizan- invivel, dependendo do tamanho da base do PHP como linguagem de acesso. Uma de dados. O que torna o MySQL um SGBD com das vantagens mais enfatizadas do MySQL frente os outros SGBDs o desempenho alta performance justamente a ausncia superior e flexibilidade. Possui suporte de determinadas funcionalidades no a SQL, multiplataforma, os limites so espere o mesmo desempenho obtido sem generosos (64 ndices em uma nica tabela, e com o uso de transaes. Dessa forma, por exemplo). Trabalha em conjunto com explica-se a preferncia mundial pelo

Tcnica de controle de concorrncia onde um bloqueio feito apenas nas linhas envolvidas em uma consulta, e no na tabela ou pgina inteira. Por exemplo, se um usurio est alterando um registro de uma tabela, apenas este registro estar bloqueado durante essa alterao os outros registros podero ser lidos ou mesmo alterados. Bancos como o DB2 e o SQL Server bloqueiam um registro enquanto ele est sendo atualizado, impedindo que outras transaes possam acess-los, mesmo que o acesso seja somente para leitura.
MaxDB (SAP DB) O MaxDB o novo nome dado ao SAP DB, o banco de dados comprado pela SAP da AdabasD e que era disponibilizado gratuitamente, e que agora suportado pela MySQL AB, a mesma empresa por trs do MySQL. Com isso, sua licena passou a ser a mesma licena dual do MySQL. Ele certificado pela SAP, significando basicamente que as aplicaes do mySAP ERP rodam nele. Segundo dados do fabricante, o MaxDB utilizado por cerca de 6.000 usurios em todo o mundo, incluindo grandes empresas multinacionais. Assim como o MySQL, necessrio a aquisio de uma licena comercial para uma srie de casos.

Avaliao: Em se tratando de backups, o MaxDB o que apresenta mais funcionalidades dentre todos os bancos aqui apresentados. Alm do hot backup e do backup incremental, ele possui um mecanismo de arquivamento de logs, semelhante ao do Oracle, que combinado com mecanismos prprios de redundncia, permite que o banco seja recuperado at a ltima transao gravada imediatamente antes de uma falha de hardware, mesmo que seja uma falha fsica de discos, pois os logs correntes podem ser duplicados e direcionados para mais de um disco. Ou seja, o prprio SGBD

14

sql13.indb 14

20/8/2004 19:20:21

SQL Magazine

faz a redundncia. Para obter uma funcionalidade semelhante, os outros SGBDs precisam utilizar mecanismos de RAID ou de replicao. O arquivamento de logs oferecer a mesma funcionalidade de um backup incremental automtico a cada transao, porm de forma muito mais rpida e eficiente. Alm disso, o arquivamento de logs permite point in time recovery (o MySQL tambm permite isso, mas somente para as tabelas MyISAM). O SQL suportado pelo MaxDB bastante abrangente e compatvel com o padro ANSI, suportando consultas bastante complexas. Possui subtransaes, ou seja, possvel definir uma transao dentro de outra, desfazendo apenas parte de uma transao, quando isso for conveniente. O MaxDB a escolha bvia quando o objetivo for executar alguma aplicao SAP. De fato, o banco foi aperfeioado ao longo do tempo para executar essas aplicaes, e a grande maioria de seus usurios o utiliza com essa finalidade. As desvantagens do MaxDB so poucas,

e de certa forma difcil avaliar o quanto elas podem impactar no desenvolvimento de uma aplicao. A principal de todas que a comunidade que desenvolve software livre o v com certa indiferena no h tantos entusiastas de MaxDB como h dos outros bancos livres. Grande parte de seu desenvolvimento foi bancado pela SAP e agora pela MySQL AB, e no por programadores voluntrios. De certa forma isso vai de encontro filosofia do movimento de software livre, o que no futuro pode se tornar um problema, pois dificultar a obteno de suporte gratuito. Sua licena comercial tambm a mais cara de todas: cerca de 1.200,00 euros por servidor. Outra desvantagem a complexidade de aprendizado e operao, segundo alguns comparvel do Oracle. Ou seja, pode sair caro treinar e manter um DBA para o MaxDB, em especial para que se possa tirar proveito de todas as vantagens oferecidas pelo sistema. Finalmente, h uma srie de consideraes que dizem respeito modernidade

do MaxDB. O suporte a tipos de dados mais complexos pequeno (apenas BLOBS), sendo impossvel definir novos tipos de dados. No h nenhum suporte a orientao a objetos, nem a modelos de dados objetorelacional. No entanto, muitos sistemas no precisam disso.
Backup Incremental

Consiste em um backup por diferenas, ou seja, apenas os dados modificados aps o ltimo backup so gravados. Com isso, consegue-se diminuir o tempo gasto em um backup do banco de dados, em particular bancos grandes.
Point in time recovery

Capacidade de voltar o banco ao estado em que ele estava em qualquer um dos instantes entre o momento de um backup completo e o momento atual. Note que essa poderosa operao permite que erros do usurio ou do administrador (apagar uma tabela, por exemplo) sejam desfeitas sem que o banco tenha de retornar ao estado do ltimo backup.

15

sql13.indb 15

20/8/2004 19:21:50

istemas Gerenciadores de Bancos de Dados Livres


No entanto, existem verses comerciais que rodam nativamente no Windows sem esses problemas. Novamente, a equipe de desenvolvimento promete para breve uma verso nativa para o Windows.
MVCC (multi-version concurrency control) Tcnica de controle de concorrncia que cria verses dos dados durante atualizaes, permitindo que operaes de leitura sejam realizadas sobre as verses antigas dos dados. Basicamente o MVCC garante que operaes de leitura no bloqueiem operaes de escrita e vice-versa. O MVCC utilizado pelo Oracle, que oferece tambm bloqueios em nvel de linha.
Firebird

O PostgreSQL oferece controle de conPostgreSQL O PostgreSQL o SGBD livre mais bem corrncia multiversionado (MVCC), o que visto pela comunidade acadmica. Isso se garante um excelente desempenho mesmo deve em parte ao fato de ter sido desen- quando h um grande nmero de operavolvido a partir do cdigo do Postgres, na es de escrita e leitura concorrentes. Em universidade de Berkeley, em um projeto termos de segurana, h o suporte nativo liderado pelo Prof. Michael Stonebraker, a conexes criptografadas (SSL) e autentiat hoje um dos cientistas mais proemi- cao via Kerberos. A equipe do PostgreSQL se vangloria nentes na rea de pesquisa em banco de dados. Ele tambm foi o lder do projeto de ter o melhor otimizador de consultas que criou o Ingres, antepassado de bancos dentre todos os bancos de dados livres, o que resultaria nos como Sybase, SQL Server, Informix e o melhores tempos de Hoje, usar um SGBD livre para o desen- execuo para as conprprio Postgres. O projeto oficial do Pos- volvimento de uma aplicao comercial sultas complexas. Essa ou um sistema de informao corporativo tgres terminou no in- uma opo a se considerar. Deve-se, afirmativa controcio dos anos 90, porm sobretudo, levar em conta os requisitos versa, pois a definio dois alunos resolveram de disponibilidade da aplicao e integri- de consultas compleadicionar o suporte dade dos dados, bem como o desempenho xas um tanto quanto a linguagem SQL ao mnimo aceitvel. vaga. Postgres, dando oriAs principais desgem ao PostgreSQL. A partir de ento ele vantagens do banco PostgreSQL dizem vem sendo mantido por um grande grupo respeito aos backups. O backup feito com de desenvolvedores voluntrios ao redor do o banco no ar deve sempre ser completo, mundo, verdadeiros entusiastas, muitos dos feito atravs do utilitrio pgdump, que quais estudantes das melhores universida- na verdade um backup lgico que exporta des de computao do planeta. Ao contr- toda a base de dados. Essa exportao rio do MySQL e do MaxDB, o PostgreSQL consistente ao momento em que o ba gratuito para qualquer uso comercial ou ckup foi iniciado, ou seja, modificaes no. A coordenao do desenvolvimento e nos dados confirmadas (commited) aps liberao de verses est a cargo do Post- o incio do backup no sero exportadas. greSQL Global Development Group, uma Embora o mecanismo de MVCC garanta comunidade mantida por vrias empresas que essa operao no ir bloquear as ligadas ao PostrgreSQL ao redor do mundo. operaes de escrita, de certa forma isso H diversas empresas oferecendo contratos ir consumir recursos de CPU e memria, de suporte ao PostgreSQL. realizando um grande nmero de acessos ao disco. Dependendo do tamanho da base Avaliao: Alm de suportar muito bem de dados, um backup pode demorar muito quase todo o padro SQL ANSI, o PostgreS- tempo, o que pode tornar invivel backups QL possui a vantagem de oferecer suporte freqentes. No entanto, a equipe de desena novos tipos de dados, permitindo que o volvimento do PostgreSQL promete para usurio defina realmente tipos de dados breve a capacidade de se realizar backups abstratos no banco de dados: possvel incrementais. No h previso, contudo, no somente criar uma estrutura, como para o arquivamento de logs, no estilo do definir operaes sobre ela. Suporta tipos que realizado pelo MaxDB, e nem para de dados geogrficos, com operaes de point in time recovery. Para sobreviver a busca e distncia, BLOBS e tipos de dados uma falha de disco deve-se utilizar RAID textuais grandes. possvel criar funes ou replicao. em outras linguagens (C++ por exemplo) Outra desvantagem do PostgreSQL a e acrescent-las ao banco de dados, utilizan- ausncia de uma verso nativa livre para do-as em consultas em SQL, o que torna o ser executada em ambiente Windows: banco bastante extensvel. A compilao do atualmente o PostgreSQL roda no Wincdigo fonte do PostgreSQL muito fcil, dows de forma emulada, sob o Cygwin, sendo esta a nica forma de instal-lo em ocorrendo alguns pequenos problemas de algumas distribuies de Linux. desempenho, escalabilidade e segurana.

O Firebird um banco de dados livre que foi desenvolvido a partir do cdigo fonte do Borland InterBase 6.0, liberado ao pblico em 2000. A origem do InterBase remonta a 1984, tornando-se bastante popular entre os desenvolvedores que utilizam as linguagens da Borland, por ser distribudo junto com elas. Atualmente o cdigo fonte do Firebird j foi bastante modificado, tendo sido portado de C para C++ na verso 1.5, constituindo-se num produto que se distancia cada vez mais do InterBase original, tanto em desempenho quanto em funcionalidade. A exemplo do PostgreSQL, o Firebird tambm livre para aplicaes comerciais. Uma organizao chamada FirebirdSQL Foundation foi criada com a funo de arrecadar e distribuir fundos para os principais desenvolvedores do Firebird. Avaliao: O Firebird tem como ponto forte a sua simplicidade de instalao, manuteno e operao, bem como o fato de rodar em mais de 10 sistemas operacionais de forma nativa. possvel inclusive criar bases de dados somente de leitura, o que permite a distribuio de uma aplicao completa com o Firebird e a base de dados em CDs ou DVDs, tornando-o uma tima escolha para este tipo de situao. A partir da verso 1.5, o Firebird oferece como opo uma verso embedded do servidor, onde o SGBD completo distribudo em uma nica DLL, dispensando a instalao do servidor e facilitando ainda mais a criao de catlogos em CD e

16

sql13.indb 16

20/8/2004 19:21:51

SQL Magazine

softwares de demonstrao. Os arquivos executveis do Firebird ocupam menos de 4 megabytes. O suporte ao padro ANSI SQL bastante completo, permitindo diversos tipos de subselects. No entanto, o recurso de select from select ainda no est disponvel, sendo prometido para a verso 1.6. Nesse caso, pode-se contornar o problema atravs do uso de views. O Firebird suporta a criao de funes externas escritas em outras linguagens, e sua utilizao em consultas SQL, triggers e procedures. No entanto, no permitido criar novos tipos de dados, nem h suporte a modelos de dados orientados a objetos ou objeto-relacional. O Firebird implementa um modelo de controle de concorrncia chamado MGA (Multi-Generational Architecture ou Versioning) que semelhante ao MVCC, de modo que operaes de leitura no bloqueiam operaes de escrita e vice-versa. O otimizador de consultas, um ponto fraco do InterBase 6.0, foi bastante melhorado na verso 1.5 resultando em bons ganhos de desempenho. Finalmente h o recurso de criao de shadows, que so arquivos espelhos da base de dados original, e que podem residir em discos distintos, minimizando o problema de perda de dados devido a defeitos fsicos do HD. O espelhamento funciona da seguinte forma: qualquer operao de escrita no banco de dados original feita tambm nos arquivos de espelhamento. Se houver uma falha fsica no disco onde est a base original, pode-se optar pela ativao automtica da shadow, permitindo dessa forma tolerncias a falhas de disco sem perdas de dados. Note que o objetivo da shadow aumentar a segurana contra falhas fsicas de HD, e no a melhoria de
Descrio Licena SQL bsico SQL ANSI (subselect etc) Trigers/SP Pode ser embutido na aplicao Backup incremental Point in time recovery
1

desempenho pelo contrrio, segundo o manual h uma ligeira degradao de desempenho, mas que certamente vale a pena pela segurana obtida. As desvantagens do Firebird so relativas ao pouco tempo de mercado que o produto tem como SGBD livre: cerca de 4 anos, desde a liberao do cdigo fonte do InterBase. A documentao disponvel um pouco confusa, e deficiente quando comparada aos tutoriais existentes para os outros SGBDs. Tambm no h muitos relatos de grandes corporaes rodando grandes bases de dados com muitos usurios simultneos, como h dos outros SGBDs livres. Ao contrrio dos outros SGBDs, o Firebird tambm no permite um controle fino sobre a localizao das tabelas, ndices e outras estruturas internas. Todas essas estruturas coexistem em arquivos gerenciados pelo banco, o que por um lado simplifica a instalao e a configurao do servidor. No entanto, isso impossibilita a separao de tabelas e ndices em discos separados, um recurso geralmente utilizado para melhorar o desempenho dos bancos de dados. Outra desvantagem diz respeito aos backups, com limitaes semelhantes ao PostgreSQL. Somente backups completos podem ser feitos com o banco no ar, no h backups incrementais nem point in time recovery. No entanto, a verso 2.0, j em desenvolvimento, ir oferecer o recurso de backup incremental.
Concluso Neste artigo procuramos mostrar um pouco das funcionalidades disponveis em cada um dos principais bancos de dados livres. Hoje, usar um SGBD livre para o desenvolvimento de uma aplicao comercial
MySQL Dual Sim No No Sim No1 No1 MaxDB Dual Sim Sim Sim No Sim Sim PostgreSQL Livre Sim Sim Sim No No No Firebird Livre Sim Sim Sim Sim No No

ou um sistema de informao corporativo uma opo a se considerar. Deve-se, sobretudo, levar em conta os requisitos de disponibilidade da aplicao e integridade dos dados, bem como o desempenho mnimo aceitvel. Eventualmente um hardware especializado (RAID, SMP, unidades de Storage de rede, clusters) ser necessrio para se obter o mesmo desempenho, disponibilidade, ou funcionalidade que o obtido com alguns SGBDs comerciais. sempre importante lembrar que o custo com esse hardware especializado deve ser abatido na conta da economia feita com licenas de SGBDs comerciais. Para aplicaes de misso crtica, talvez ainda compense esperar um pouco mais para se utilizar SGBDs livres. Para finalizar, a Tabela 1 apresenta um resumo dos pontos discutidos neste artigo, comparando funcionalidades considerando apenas verses de produo. Nota: Enquanto esta revista estava sendo diagramada, foi anunciada a verso 8.0.0 Beta do PostgreSQL (http://www.postgresql. org/news/216.html). Dentre as principais novidades temos a verso nativa para Windows (NT, 2000, XP e 2003), savepoints dentro de transaes e o arquivamento do log permitindo point-in-time recovery e tambm um servidor stand by. Com estas novas funcionalidades o PostgreSQL se torna uma opo bem mais confivel para aplicaes crticas.
S

Comente essa matria em: www.sqlmagazine.com.br/sql13

BerkeleyDB Dual No No No Sim Sim Sim

T1

Geraldo Zimbro (zimbrao@cos.ufrj.br) pesquisador da COPPETEC, professor de informtica da UFRJ e membro da equipe editorial da SQL Magazine. doutor em Banco de Dados pela COPPE desde 1999. Participa de projetos de consultoria pela Fundao COPPETEC desde 1995, tendo atuado no projeto de diversas bases de dados de instituies como Embratel, Marinha, Ministrio da Defesa e DataSus. Site: www.cos.ufrj.br/~zimbrao

Para as tabelas InnoDB oferecido por ferramentas pagas. Para as outras gratuita.

17

sql13.indb 17

20/8/2004 19:21:52

P
M
18
sql13.indb 18

rojeto
Rodrigo Oliveira Spnola,

de software utilizando UML

uito se fala sobre a curva de aprendizado associado orientao a objetos. Esta curva de aprendizado fruto da necessidade e troca de paradigma ao deixar de projetar e desenvolver estruturado para faz-lo seguindo os princpios da orientao a objetos. Em alguns aspectos, a mudana pode ser at fcil. Aqueles que no trabalharam por muito tempo com o paradigma estruturado tendem a ter mais facilidades. Vale deixar claro aqui que no estamos questionando o quo difcil programar em uma linguagem orientada a objetos mas sim, aprender a tirar proveito das vantagens que estas linguagens fornecem.

sos, no ambguos e completos. Construir: os modelos construdos utilizando a UML podem ser conectados a uma srie de linguagens de programao permitindo uma traduo entre os modelos construdos e o cdigo. Este mapeamento permite tambm a engenharia reversa na qual os modelos so gerados a partir do cdigo fonte. Vale uma ressalva aqui, UML no uma linguagem visual de programao. Documentar: neste caso, os modelos criados durante o desenvolvimento fazem parte da documentao do software. A Figura 1 nos d uma boa metfora da importncia da UML para a construo de software. Da mesma forma que precisamos de um projeto bem feito antes de construirmos um edifcio, precisamos tambm para software. Perceba que a planta de uma casa facilita a comunicao entre os envolvidos na construo, permite uma avaliao do cliente e assim por diante. Como o prprio nome nos diz, a UML uma linguagem de modelagem, no um mtodo. Ou seja, ela nos diz o que podemos modelar, mas no como. Modelos servem para possibilitar o entendimento do ambiente no qual o sistema ir operar, a comunicao entre as pessoas envolvidas em um projeto, promover a melhor compreenso dos requisitos do projeto, promover a difuso deste conhecimenF1 to entre os envolvidos e, avaliar diferentes solues atravs da modelagem da soluo. Nota: UML apenas uma notao e no prope/define como organizar as atividades de projeto. Por isto, pode ser ajustada para satisfazer a diferentes situaes de desenvolvimento e ciclos de vida de software. A UML possui dois grandes conjuntos de dia-

Nota: Segundo Rumbaugh, a tecnologia baseada em objetos mais do que apenas uma forma de programar. Ela mais importante como um modo de pensar em um problema de forma abstrata, utilizando conceitos do mundo real e no idias computacionais. Neste contexto situamos a UML, linguagem de modelagem unificada. At certo ponto podemos dizer que ela foi projetada para ajudar as pessoas a focarem nas vantagens provenientes do uso do paradigma orientado a objetos. UML utilizada para visualizar, especificar, construir e documentar artefatos de software. Veremos agora o que significa cada um desses contextos de utilizao. Visualizar: para muitos programadores, a distncia entre pensar em uma soluo para o problema e transform-la em cdigo prxima de zero. Ele cria a soluo e ele mesmo a desenvolve. Ainda assim, ele de alguma forma est modelando mentalmente o sistema que ir construir. Entretanto, existem srios problemas com esta abordagem. Primeiro, comunicar o modelo criado mentalmente para outros desenvolvedores uma tarefa cujo risco de perda de informao durante a comunicao alto. E segundo, imagine que o projeto em questo grande e a equipe envolvida no se restringe a um ou dois programadores. Teramos srias dificuldades na construo do sistema. Isso sem falar que no existiria documentao para o software e sua manuteno no futuro traria dor de cabea, com certeza. Assim, o uso da UML prov uma notao comum para o entendimento compartilhado sobre o software que se est construindo. Especificar: a UML permite a construo de modelos preci-

20/8/2004 19:21:55

SQL Magazine

gramas (ver Figura 2): Estrutural: modela aspectos estticos do software focando nas entidades participantes e seus relacionamentos. Os diagramas deste conjunto so: diagrama de classes, objetos, componentes e implementao. Comportamental: modela aspectos dinmicos do software focando, na maioria das vezes, como as entidades interagem para prover uma determinada funcionalidade para o usurio. Os diagramas deste conjunto so: diagrama de casos de uso, seqncia, colaborao, estados e atividades. Veremos a partir de agora como elaborar os principais (mais utilizados) diagramas da UML atravs de um estudo de caso.
Estudo de Caso e Especificao dos Requisitos Considerando a descrio de requisitos apresentada na Listagem 1 sobre um sistema de aluguel de automveis, podemos identificar quatro requisitos funcionais. So eles: cadastrar cliente, cadastrar carro, efetuar aluguel, dar baixa no aluguel. Para cada um desses requisitos funcionais preciso fazer sua especificao. Neste caso, escolheremos cadastrar cliente e efetuar aluguel e, faremos a especificao seguindo o modelo
L1

apresentado no artigo Desenvolvimento de aplicaes orientadas a objeto apoiado por tecnologias Java Parte II Anlise publicado nesta edio. Assim, temos para o caso de uso cadastrar cliente a Tabela 1 e para o caso de uso efetuar aluguel a Tabela 2. Perceba que neste caso, a associao entre requisitos identificados e casos de uso de um para um, mas nem sempre isso verdade. Para saber mais sobre como identificar atores e casos de uso veja Box 1. A Figura 3 apreNome do Caso de Uso Descrio Ator Envolvido Cadastrar Cliente

senta o diagrama de casos de uso criado. O Funcionrio o ator que interage com o sistema, os casos de uso, as funcionalidades a serem disponibilizadas.
Modelagem de Classes Com o diagrama de casos de uso criado e sua especificao elaborada, podemos iniciar a definio do diagrama de classes. De forma simplificada, um diagrama de classes descreve os
T1

Este caso de uso permite o cadastro (incluso) de clientes na locadora. Funcionrio Funcionrio O caso de uso iniciado quando o funcionrio clica no boto Cadastrar Cliente. Sistema

Interao entre Ator e Sistema

Sistema apresenta janela com os campos RG, nome, CPF, telefone, endereo e contato. Funcionrio preenche campos e clica no boto Efetuar Cadastro. Sistema valida as informaes preenchidas pelo usurio. (EX01) Sistema cadastra cliente (EX02) e volta para a tela inicial. Neste momento, este caso de uso encerrado. Os campos devem estar todos preenchidos e de acordo com o domnio do atributo. Por exemplo: o campo RG (o mesmo vale para CPF) deve conter apenas nmeros e representar um nmero de identificao vlido. Se houver problemas no preenchimento do formulrio, o sistema exibe a mensagem de erro: Existem dados invlidos no formulrio ou algum campo no foi preenchido. Caso o cliente j se encontre cadastrado, a mensagem Este cliente j possui cadastro. apresentada.

EX01 Excees

EX02

Nome do Caso de Uso Descrio Ator Envolvido

Efetuar Aluguel Este caso de uso permite o aluguel de um veculo da locadora. Funcionrio Funcionrio O caso de uso iniciado quando o funcionrio clica no boto Efetuar Aluguel. Sistema apresenta janela com o campo identificao do usurio. Funcionrio preenche campo com o RG do cliente e clica em Avanar. Sistema

T2

Uma locadora de veculos deseja um sistema para facilitar o atendimento a seus clientes. O processo de aluguel de carros atual confuso e est gerando insatisfao entre os clientes. A locadora formada basicamente pelos seus clientes e carros para aluguel. Os carros esto divididos em diversos tipos: popular, luxo e utilitrio. As informaes importantes sobre os carros a serem armazenadas so: cdigo (placa do carro), tipo, modelo, ano, cor, chassis, quilometragem e valor do aluguel (diria). Os funcionrios sero responsveis pelo cadastro dos clientes e dos carros adquiridos pela locadora, por efetuar o aluguel de um carro para o cliente e dar baixa no aluguel. Existem clientes especiais e clientes comuns. Os especiais possuem uma taxa de desconto e um valor de quilometragem extra para seus aluguis. Qualquer cliente identificado por RG, nome, CPF, telefone, endereo e contato.

Interao entre Ator e Sistema Funcionrio preenche campo com o cdigo do carro escolhido pelo cliente e clica em Avanar.

Sistema verifica se o cliente est cadastrado e se no est bloqueado. (EX01, EX02) Sistema exibe janela com o campo cdigo do carro.

Sistema verifica se o carro est disponvel. Funcionrio clica em Finalizar Aluguel. Sistema altera o status do carro para alugado e armazena as informaes sobre o aluguel: cliente, cdigo do carro, valor da diria e data do aluguel. Excees EX01 EX02 Se o cliente no estiver cadastrado a mensagem Usurio no cadastrado apresentada. Se o cliente estiver bloqueado a mensagem O cliente est bloqueado apresentada.

19

sql13.indb 19

20/8/2004 19:21:56

rojeto de software utilizando UML


F2

Em cinza temos os diagramas estruturais e em branco, os comportamentais.

Elas so uma descrio de um conjunto de objetos que compartilham os mesmos atributos, operaes, relacionamentos e semntica e representam o principal bloco de construo de um sistema orientado a objetos. Para identific-las, procuramos na especificao de requisitos por conceitos que representem objetos do mundo real. Para nosso estudo de caso, aps uma leitura das especificaes feitas, temos a seguinte lista de entidades identificadas: Cliente; Cliente Especial; Locadora; Carro; Aluguel; Funcionrio. Gostaria de atentar para a entidade Funcionrio. O fato de ela representar um ator do sistema no significa que dever estar contemplada no diagrama de classes. Ento, como podemos definir se um ator participar ou no de um diagrama de classes? Basta atentarmos paro o fato de haver a necessidade de manter algum atributo do funcionrio e (ou) realizar alguma operao sobre eles. Como isto no ocorre no nosso exemplo, essa entidade no ser representada no diagrama de classes. Etapa 2 . Identificando Atributos. Com as classes definidas, precisamos especificar quais so seus atributos. Fazendo um paralelo com objetos do mundo real, atributos so propriedades que caracterizam um objeto. Dessa forma, ao procurar por atributos estaremos identificando caractersticas que descrevam sua classe correspondente. A Tabela 3 apresenta as classes e seus atributos. Etapa 3 . Identificando Operaes. Passamos agora identificao das operaes de cada classe. Fazendo um paralelo com objetos do mundo real, operaes so aes que o objeto capaz de efetuar. Dessa forma, ao procurar por operaes estaremos identificando aes que o objeto de uma classe responsvel por desempenhar. A Tabela 3 apresenta as classes e suas operaes. Etapa 4 . Identificando Relacionamentos.

Identificando atores e casos de uso Para identificar atores em uma especificao de requisitos podemos efetuar os seguintes questionamentos: Que grupos de usurios utilizam o sistema para realizar uma tarefa? Que grupos de usurios so necessrios para o sistema executar suas funes? Quais so os sistemas externos que utilizam o sistema para realizar suas tarefas? Quais so os sistemas externos que so gerenciados ou utilizados pelo sistema para executar suas tarefas? Quais so os sistemas externos ou grupo de usurios que enviam informao para o sistema? Quais so os sistemas externos ou grupo de usurios que recebem informao do sistema? Para identificar casos de uso em uma descrio de requisitos basta atentar para as funcionalidades que o sistema prover para seus usurios.

B1

F3

tipos de objetos do software e os vrios tipos de relacionamentos estticos que existem entre eles. De todos os diagramas da UML, este o diagrama mais comumente utilizado por empresas que desenvolvem software orientado a objetos. Quando construmos um diagrama de classes estamos preocupados na identificao de quatro elementos: as entidades (classes) do software, seus atributos, suas operaes e o relacionamento entre elas. Assim, um processo para criao de um modelo de classes pode ser dividido em quatro etapas. Etapa 1 . Identificando as Classes. Classes representam entidades (conceitos) do mundo real, ou seja, do problema para o qual o software estiver sendo desenvolvido.

20

sql13.indb 20

20/8/2004 19:22:06

2604 An

SQL Magazine

QUAL O MENOR CUSTO TOTAL DE PROPRIEDADE: WINDOWS OU LINUX? PERGUNTE A QUEM J TESTOU.

Conduzimos um grande estudo de Custo Total de Propriedade para analisar as solues Microsoft e Linux em relao s nossas necessidades. No fim, conclumos que o Custo Total de Propriedade para a abordagem Windows Server System era aproximadamente 20% menor que os custos com Linux. Keith Morrow, Diretor de Informtica da 7-Eleven, Inc., E.U.A.

A 7-Eleven escolheu a Microsoft e no o Linux devido economia de 20% sobre o custo total de propriedade para o sistema de ponto-de-venda altamente complexo de suas 5.800 lojas americanas e canadenses. Na sua avaliao, a 7-Eleven estava procurando uma opo que atendesse importantes exigncias tcnicas com um baixo custo. Seu estudo detectou que somente a plataforma Microsoft atenderia seus critrios. Para obter o estudo do caso completo da 7-Eleven e outras concluses de terceiros, visite microsoft.com/brasil/getthefacts

2004 Microsoft Corporation. Todos os direitos reservados. Microsoft, o logotipo Windows e Windows Server System so marcas comerciais, registradas ou no, da Microsoft Corporation nos Estados Unidos e/ou em outros pases. 7-ELEVEN e OH THANK HEAVEN so marcas registradas da 7-Eleven, Inc. Os nomes de companhias e produtos mencionados neste documento podem ser marcas comerciais de seus respectivos proprietrios.

21

sql13.indb 21 2604 An Qual o menor 205x275 1

20/8/2004 19:22:07 2/11/04, 8:09:19 PM

rojeto de software utilizando UML


o seguinte: o um objeto do tipo Aula est associado a um nico objeto do tipo Sala. Essa informao transmitida atravs do indicador de multiplicidade; o um objeto do tipo Sala pode estar associado a mais de um objeto do tipo Aula. Essa informao transmitida atravs do indicador de multiplicidade; o um objeto do tipo Aula sabe a qual objeto do tipo Sala ele estar se comunicando. Essa informao transmitida atravs do indicador de navegabilidade. Em cdigo, isso significa que a partir de um objeto do tipo Aula eu tenho acesso a um objeto do tipo Sala, ou seja, existe na minha classe algum atributo do tipo Sala; o um objeto do tipo Sala no sabe que objeto do tipo Aula o est utilizando. Essa informao transmitida atravs do indicador de navegabilidade. Em cdigo, isso significa que a partir de um objeto do tipo Sala eu no consigo referenciar um objeto do tipo Aula.
F4

Resta agora definir os relacionamentos entre as classes do nosso modelo. Antes disso, vamos entender um pouco sobre os tipos de relacionamentos que podem aparecer entre classes em um diagrama de classes. Os quatro tipos de relacionamento mais utilizados so: Generalizao: relaciona classes generalizadas com suas especializaes. Denota relaes um tipo de onde subclasses so especializaes de superclasses e herdam seus atributos e operaes. Na Figura 4 temos um exemplo de generalizao definindo as classes ContaCorrente e ContaPoupana como subclasses de ContaBancria. Associao: representa uma relao estrutural entre duas classes indicando que duas classes se comunicam. representa por uma linha simples ligando duas classes e pode conter atributos como nome, multiplicidade e navegabilidade (ver Figura 5). O nome descreve a semntica do relacionamento; a multiplicidade indica a quantos objetos de uma determinada classe um objeto pode se comunicar; a navegabilidade especifica quem enxerga quem no relacionamento, ou seja, se um objeto tem conhecimento da existncia de outro. Por exemplo, a Figura 5 nos informa
Classes Cliente Atributos Contato CPF Endereo Nome RG Status Telefone Contato CPF Endereo Nome Quilometragem Extra RG Status Taxa de Desconto Telefone CNPJ Endereo Ano Cdigo Cor Disponibilidade Modelo Quilometragem Tipo Valor do Aluguel Diria Data de Aluguel Quilometragem Percorrida Valor do Aluguel

F5

F6

Cliente Especial

Locadora Carro

Aluguel

Agregao: uma associao que expressa a semntica parte de. Neste tipo de relacionamento, temos uma classe representando o todo e outras classes, suas partes. Por exemplo, um carro tem motor T3 e pneus como suas partes Operaes constituintes (ver Figura 6). Cadastrar Cliente Agregao representada Verificar Status por uma linha simples com um losango sem preenchimento do lado do todo. Composio: uma Cadastrar Cliente associao que expressa a Pegar Valor de Desconto semntica parte de mais Pegar Valor de fortemente. Neste caso, Quilometragem Extra se o todo for destrudo, suas partes obrigatoriamente tambm o sero. Por exemplo, pensemos em um forEmitir nota fiscal mulrio de uma aplicao que construmos; quando o Alterar Disponibilidade destrumos, os componenCadastrar Carro Pegar o Valor do Aluguel tes inseridos nele tambm Verificar Disponibilidade so (ver Figura 7). A composio representada por uma linha simples com um losango preenchido do lado Alugar do todo. Calcular Preo Confirmar Aluguel Para identificarmos esses Pegar a Data do Aluguel tipos de relacionamentos,

efetuamos a leitura da especificao dos casos de uso e para relacionamentos de: Generalizao: verificamos se h alguma relao um tipo de entre as classes identificadas. No nosso exemplo, ClienteEspecial um tipo de Cliente. Associao: verificamos se h a necessidade de um objeto de uma classe utilizar servios disponibilizados por um objeto de outra classe ou, simplesmente, conhecer o outro objeto. No nosso exemplo, temos que a disponibilidade do carro alterada durante a efetuao do aluguel. Inserimos ento uma associao entre Aluguel e Carro. Neste caso, utilizamos a navegabilidade no sentido Aluguel Carro por que Carro no precisa utilizar nenhuma das operaes definidas para a classe Aluguel. Agregao: verificamos se h alguma relao parte de entre as classes identificadas. No nosso exemplo, temos que uma Locadora (o todo) formada de carros, alugueis e clientes (as partes). Da modelamos este relacionamento atravs da agregao.

22

sql13.indb 22

20/8/2004 19:22:09

SQL Magazine

F7

deve ser tomada com base em, por exemplo, perspectivas de evoluo do software.
Modelagem de Interaes Diagramas de interao so modelos que descrevem como grupos de objetos colaboram em algum comportamento do sistema. Tipicamente, um diagrama de interao captura o comportamento de um nico caso de uso apresentando vrios objetos e mensagens que so trocadas entre eles. Existem dois tipos de diagrama de interao: Seqncia: enfatiza a seqncia das mensagens enviadas entre os objetos; Colaborao: enfatiza a organizao dos objetos.

Composio: verificamos se h alguma relao parte de forte entre as classes identificadas. No nosso exemplo no houve a necessidade de utilizao deste tipo de relacionamento. Feito isto, chegamos ao nosso diagrama de classes que pode ser visto na Figura 8. No diagrama de classes criado utilizamos uma relao de herana para modelar as similaridades e especificidades entre os tipos de clientes que esto associados a uma locadora. Perceba que embora no seja mostrado no diagrama, todos os atributos e operaes da classe Cliente so herdadas pela classe ClienteEspecial. Temos no diagrama tambm trs relaes de agregao indicando que a locadora formada por carros, clientes e alugueis. Por fim, gostaria de destacar tambm a classe Aluguel. Voc pode perceber que ela est associada a outras trs classes e tem conhecimento apenas de duas delas, Cliente e Carro. Isto por causa da indicao da navegabilidade. Bom, agora que temos nosso modelo de classes podemos definir aspectos comportamentais de nosso software e isso que faremos a partir de agora. Nota: Adiantando um pouco o tempo, a navegabilidade indica que quando estivermos codificando a classe Aluguel, deveremos inserir nela um atributo do tipo Carro para que ela possa enxerg-lo e solicitar, por exemplo, a execuo do mtodo AlterarDisponibilidade(). Nota: Uma observao importante sobre o relacionamento entre as classes Aluguel e Carro a seguinte: se no futuro quisermos acrescentar uma funcionalidade no sistema para gerao de relatrios listando todos os alugueis feitos para cada carro, a melhor soluo de modelagem seria colocar um relacionamento bidirecional entre as classes invs da navegabilidade de Aluguel para Carro como foi projetado. Esta uma deciso (como utilizar a navegabilidade) de projeto e

Ambos possuem a mesma semntica mudando apenas a forma como a informao representada graficamente. Utilizaremos aqui o diagrama de seqncia e no final desta seo apresentaremos um exemplo de diagrama de colaborao para que o leitor possa perceber as diferenas que existem entre eles. Seguindo a deciso tomada quando efetuamos a especificao dos casos de uso, elaboraremos o diagrama de seqncia para os casos de uso Cadastrar Cliente e Efetuar Aluguel. O ideal que o diagrama de seqncia reflita os passos descritos na especificao do caso de uso correspondente. Para isto, ele deve utilizar as classes e operaes definidas no diagrama de classes. A Figura 9

apresenta o diagrama de seqncia do caso de uso Cadastrar Cliente. Vamos agora entender o diagrama de seqncia apresentado na Figura 9. Uma interao entre sistema e usurio geralmente, mas nem sempre, iniciada pelo usurio. Neste caso, temos o ator Funcionrio enviando a mensagem CadastrarCliente() para um objeto do tipo Cliente. Esta mensagem , na verdade, uma chamada a um mtodo existente na classe Cliente. Tendo feito o cadastro, uma mensagem de retorno (seta tracejada) enviada de volta para o ator informando que o cadastro foi efetuado com sucesso. Perceba que neste diagrama de seqncia no consideramos as excees descritas na especificao de casos de uso por se tratarem de cenrios alternativos. Vale destacar aqui que o mapeamento de caso de uso para diagrama de interao no sempre de um para um. Para contemplar os vrios cenrios de um caso de uso pode ser necessria a utilizao de mais de um diagrama de seqncia ou colaborao. Agora, para o caso de uso Efetuar Aluguel, temos o diagrama de seqncia apresentado na Figura 10. Perceba que s h troca de mensagens entre objetos cujas classes possuem algum tipo de relacionamento no diagrama de classes. Perceba tambm que as mensagens referenciam as operaes definidas no diagrama de classe para cada classe que recebe a mensagem. Para comparao, a Figura 11 apresenta o diagrama de colaborao correspondente
F8

23

sql13.indb 23

20/8/2004 19:22:12

rojeto de software utilizando UML


Outros Diagramas da UML Veremos agora rapidamente o que os demais diagramas da UML contemplam. Diagrama de Atividades: permite a modelagem de workflows mostrando o fluxo entre atividades. Diagrama de Componentes: permite apresentar os vrios componentes em um sistema e suas dependncias e interfaces de comunicao. Diagrama de Estados: permite modelar todos os estados possveis de um sistema ou objeto particular e a mudana de estados atravs de eventos que o atingem. Este diagrama bastante interessante para descrever o comportamento de um objeto atravs de vrios casos de uso. Diagrama de Implantao: permite modelar o relacionamento entre compoF10

ao diagrama de seqncia apresentado na Figura 10. Podemos notar que embora a informao transmitida seja semelhante, a visualizao e entendimento do diagrama so dificultados.
F9

nentes de software e hardware no sistema implantado. Diagrama de Objetos: permite apresentar os objetos do sistema em um determinado ponto do tempo.
Concluso Vimos neste artigo como elaborar os diagramas mais utilizados da UML atravs de um estudo de caso. Embora aparentemente simples, no uma tarefa trivial e sua complexidade cresce medida que a complexidade do software a ser construdo aumenta e o conhecimento que a equipe de desenvolvimento tem do domnio da aplicao diminui. Embora existam muitos livros sobre o assunto, recomendo (alm de uma boa leitura, claro) a prtica em estudos de caso. At a prxima.
S

Os diagramas criados neste artigo esto disponveis para download no site da SQL Magazine, www.sqlmagazine.com.br/sql13
A

F11

Rodrigo Oliveira Spnola (rodrigo@sqlmagazine.com.br) editor da SQL Magazine e Analista de Sistemas da e-Dablio. bacharel em cincia da computao pela Universidade Salvador UNIFACS e mestre em Cincias em Engenharia de Sistemas e Computao pela COPPE/UFRJ na linha de Engenharia de Software. Trabalhou com desenvolvimento C++ e XML por dois anos, tendo experincia prtica na academia atravs da implementao de projetos de pesquisa acadmicos. Atualmente trabalha com anlise de requisitos. Suas reas de interesse so: engenharia de software orientada a objetos, mtricas e complexidade estrutural de projetos orientados a objetos, inspees de artefatos de software, ambientes de desenvolvimento de software, engenharia de requisitos, integrao de ferramentas e engenharia de software experimental.

24

sql13.indb 24

20/8/2004 19:22:23

SQL Magazine

TECH WEEK

Vem a o primeiro grande evento


de web e mobile j realizado no

1e2
em So Paulo

de outubro

Brasil

Atualize-se agora!

Maiores informaes pelo telefone (21) 2283-9012,

e-mail info@devmedia.com.br
www.portalwebmobile.com.br/tw
25
sql13.indb 25 20/8/2004 19:22:27

D
N
Etapa do processo abordada neste artigo.

esenvolvimento
de aplicaes orientadas a objeto apoiado por tecnologias Java, Parte II Anlise
Arilo Cludio Dias Neto, Rafael Ferreira Barcelos e Rodrigo Oliveira Spnola

a primeira parte desta srie, apresentamos uma viso geral sobre os conceitos e tecnologias que apiam o desenvolvimento de sistemas orientados a objetos. Vimos alguns conceitos e tecnologias como Java, persistncia de objetos, JDO, JUnit, que podem ser utilizados no desenvolvimento desses sistemas. Nesta segunda parte, iniciaremos o ciclo de desenvolvimento do software seguindo o processo incremental apresentado no artigo passado. Conforme descrito na primeira parte, iremos abordar no restante desta srie somente a execuo de um incremento do processo de desenvolvimento. Para cada incremento, teremos desenvolvido um ou mais mdulos para o usurio. Veremos detalhadamente a etapa de anlise de requisitos (ver Figura 1). Sero apresentados mecanismos para a realizao de suas atividades, ferramentas que a apiam e sua aplicao em um estudo de caso. A etapa de anlise de requisitos preocupa-se com o entendimento e representao do problema atravs de suas funes e comportamentos. Iniciaremos agora apresentando o estudo de caso que ser utilizado nesta srie de artigos.

Estudo de Caso Nosso estudo de caso um sistema de automao de locadora de vdeo. Para isto, vamos supor que fazemos parte da fbrica de software SQLMag e recebemos a seguinte solicitao da locadora LocaVD.

Objetivos do sistema Melhorar o atendimento ao cliente; Melhorar o controle do acervo; Aumentar segurana das informaes de negcio. Lista de funes Deve permitir a incluso e a excluso de filmes no acervo

e de clientes; Um cliente s poder ser excludo do sistema aps a quitao de todos os seus dbitos; Os filmes do acervo podem ser pesquisados por ttulo, assunto, diretores e/ou principais atores; Os filmes includos no acervo podem ter mais de uma fita ou DVD disponvel para locao; O sistema deve permitir a locao e F1 devoluo de fitas e DVDs; Filmes podem ser classificados em trs categorias: lanamento, catlogo e promoo. Sendo que o valor da locao depende da categoria; O nmero de dias teis que cada cliente poder ficar com os vdeos limitado a trs dias; A locao de vdeos s poder ser realizada caso o cliente tenha no esteja em dbito com a vdeo-locadora; O sistema dever fornecer uma estatstica de locaes de vdeos contendo o ttulo e o assunto dos filmes para um perodo selecionado. Alm disso, o sistema dever fornecer informaes sobre clientes que esto em dbito com a locadora.
Tendo recebido a proposta, a SQLMag alo-

26

sql13.indb 26

20/8/2004 19:22:34

SQL Magazine

cou parte de sua equipe para fazer o levantamento e especificao dos requisitos.
Anlise de Requisitos Segundo Shari Pfleeger, requisito uma caracterstica do sistema ou a descrio de algo que o sistema capaz de realizar para atingir seus objetivos. Os requisitos podem servir a trs propsitos. Primeiro, eles permitem aos desenvolvedores explicar seu entendimento de como os clientes querem que o sistema funcione. Em segundo lugar, eles informam aos projetistas que funcionalidades e caractersticas o sistema resultante deve ter. E em terceiro, os requisitos informam equipe de testes o que demonstrar para convencer os clientes de que o sistema est sendo entregue de acordo com o que foi solicitado. Os requisitos podem ser classificados em funcionais e no-funcionais. Um requisito funcional descreve uma interao entre o sistema e seu ambiente, informando como um sistema deve se comportar considerando um determinado estmulo. Um requisito no-funcional (ou requisitos de qualidade) descreve uma restrio no sistema que limita nossas opes para criar uma soluo para o problema. A identificao dos requisitos uma parte especialmente importante do processo de desenvolvimento de software. Mas por que to importante? Estudos realizados em mais de 350 empresas sobre seus mais de 8 mil projetos de software indicaram que 31% dos projetos foram cancelados antes de serem concludos. Alm disso, somente 9% dos projetos foram entregues dentro do prazo e no valor estimado para o oramento. Alguns dos fatores apontados como principais causas foram: 1. Requisitos incompletos (13.1%); 2. Falta de envolvimento por parte do usurio (12,4%); 3. Falta de recursos (10,6%); 4. Expectativas no realistas (9,9%); 5. Falta de apoio dos executivos (9,3%); 6. Modificaes nos requisitos e nas especificaes (8,7%); 7. Falta de planejamento (8,1%); 8. O sistema no era mais necessrio (7,5%). Observe que algumas partes do processo de identificao, definio e gerenciamento dos requisitos esto envolvidos em quase

todas as causas. A falta de cuidado com o entendimento, a documentao e o gerenciamento dos requisitos podem levar a uma grande quantidade de problemas: a construo de um sistema que resolve o problema errado, que no funciona como o esperado, ou que difcil para os usurios entenderem ou utilizarem. A etapa de anlise de requisitos composta por um conjunto de atividades que devem ser realizadas dependendo da complexidade do sistema a ser desenvolvido. Um exemplo de processo de anlise de requisitos pode ser visto na Figura 2. Assim, temos: Levantamento de Requisitos: na qual feito um contato com o cliente para definir os requisitos do software a ser construdo e o escopo do projeto; Prototipao: na qual so elaborados prottipos para auxiliar a atividade de levantamento e fechamento do escopo do projeto. Geralmente esta fase necessria quando o cliente no consegue definir com facilidade suas necessidades. Especificao de Requisitos: na qual os requisitos capturados so detalhados de forma a possibilitar o prosseguimento da construo do software nas fases de projeto, implementao e teste; Validao: na qual os requisitos especificados so enviados para o cliente para que este aprove a especificao feita. Como foi dito, a complexidade do problema influencia nas atividades do processo de especificao de requisitos a serem realizadas. No nosso caso, h a necessidade de realizar as atividades de levantamento e especificao de requisitos uma vez que o domnio do problema conhecido e tambm no h a necessidade de criao de pro-

ttipos. Para a fase de levantamento, existe uma variedade de tcnicas que podem ser utilizadas. Entre elas podemos citar: Entrevistas: uma das mais importantes e utilizadas tcnicas para levantamento de requisitos. Consiste em dilogos entre analistas de requisitos e futuros usurios do sistema para captura de suas necessidades. Laboratrio: onde o analista de sistemas observa como as atividades so executadas no dia a dia da organizao para que ele identifique possveis pontos cuja utilizao de software traga ganho de produtividade. Para este estudo de caso podemos dizer que utilizamos entrevistas como tcnica para detalhamento das funcionalidades especificadas no estudo de caso. Na Tabela 1 apresentada a lista de requisitos funcionais para o estudo de caso apresentado. Percebam que a lista bastante parecida com a apresentada pelo cliente. normal que isto acontea. Mas importante deixar claro aqui que neste passo definimos claramente quais so os requisitos funcionais e o escopo do sistema. Tendo definido os requisitos funcionais, fazemos sua especificao dividindo o sistema em pequenas partes compreensveis. Para esta atividade, diversos modelos podem ser utilizados. Entre eles, destacase o modelo de casos de uso definido pela UML.
Diagramas de Casos de Uso Podem ser aplicados para capturar o comportamento do sistema que est sendo desenvolvido e facilitar a comunicao entre desenvolvedores e usurios finais do sistema. Algumas vantagens na visualizaF2

Processo de Anlise de Requisitos.

27

sql13.indb 27

20/8/2004 19:22:36

esenvolvimento de aplicaes orientadas a objeto apoiado por tecnologias Java . Parte II


F3

o de um sistema em termos de casos de uso so: Podemos examinar cada caso de uso separadamente e entend-lo sem precisar conhecer todos os detalhes do sistema; Podemos utilizar os casos de uso como base para estimar quanto tempo e esforo sero necessrios para o projeto e codificao do sistema; O desenvolvimento pode ser controlado em termos de casos de uso. Isto , os gerentes podem acompanhar o progresso de cada caso de uso, medida que o sistema projetado, codificado e testado. O modelo de casos de uso composto principalmente por dois elementos: atores e casos de uso. Casos de uso indicam as funcionalidades do sistema e atores, os papis que executam os casos de usos. Com base nos requisitos apresentados na Tabela 1, foram identificados o ator funcionrio, e os seguintes casos de uso: Efetuar locao de vdeos; Efetuar devoluo de vdeos; Cadastrar clientes; Cadastrar vdeo; Pesquisar vdeos; Pesquisar clientes; Gerar estatstica de locao; Verificar clientes em dbito. A Figura 3 apresenta o diagrama de casos de uso para o sistema de locadora de vdeos. Muitos pensam que feito o diagrama de
Requisito Funcional 1: Diagrama de casos de uso.

casos de uso podemos passar para as atividades de projeto, mas isso um engano. O diagrama pouco nos fala sobre como as funcionalidades so processadas ou como o ator interage com o sistema para execut-las. Por isso, o diagrama de casos de uso deve ser acompanhado por um documento com a descrio detalhada das funcionalidades que ele representa, a especificao dos casos de uso.
Especificao dos Casos de Uso Como foi explicado na primeira parte deste artigo publicada na edio 12 da SQL Magazine, utilizaremos um processo de desenvolvimento iterativo onde para cada iterao, feita a especificao de alguns casos de uso, ajustes na modelagem, implementao e teste. Para a seleo
T1

Permitir que o funcionrio realize a locao de vdeos (fitas ou DVDs) solicitados pelos clientes registrados na locadora.

Requisito Funcional 2:

Permitir que o funcionrio registre as devolues de vdeos (fitas e DVDs) locados aos clientes da locadora. Neste momento, ser verificado se a data de devoluo estipulada foi ultrapassada. Caso tenha sido, ser calculada uma multa referente ao atraso ocorrido. Permitir que o funcionrio realize o cadastro e edio dos dados de clientes da locadora. Permitir que o funcionrio realize o cadastro de vdeos que compem o acervo da vdeo-locadora. Permitir que o funcionrio realize pesquisas aos dados de vdeos (fitas e DVDs) do acervo, verificando sua disponibilidade. Permitir que o funcionrio realize pesquisa aos dados de clientes, verificando as locaes relacionadas a um cliente. Fornecer estatsticas sobre a locao de vdeos para um perodo especfico. Permitir uma consulta aos clientes que esto em dbito, apresentando informaes sobre o cliente e locao efetuada.

Requisito Funcional 3: Requisito Funcional 4: Requisito Funcional 5: Requisito Funcional 6: Requisito Funcional 7: Requisito Funcional 8:

dos casos que iro compor a primeira etapa de iterao, foi realizada uma anlise sobre os casos de uso identificados de acordo com sua importncia e o seu risco de desenvolvimento, que consiste na gravidade do impacto causado por possveis falhas no desenvolvimento (ver Tabela 2). Considerando as variveis risco de desenvolvimento e importncia para o negcio e tambm por razes didticas, escolhemos os casos de uso Cadastrar Vdeo e Efetuar Locao. Por possurem nvel de importncia e risco de desenvolvimento definidos como alto, essas funcionalidades necessitam de uma maior preocupao por parte da equipe envolvida no desenvolvimento em fases iniciais do projeto. Antes de efetuarmos a especificao, necessrio definir quais os pontos importantes de serem descritos em uma especificao de casos de uso. Estes pontos esto relacionados com: a prpria necessidade de descrever as funcionalidades do sistema; a fase de projeto e implementao, e; a elaborao de casos de teste. E so, para cada caso de uso: Descrio do objetivo do caso de uso; Descrio dos atores envolvidos no caso de uso; Domnio e propriedade de atributos utilizados pelo usurio; Excees; Interao entre ator e sistema; Regras de negcio existentes; Requisitos no funcionais.

Lista de requisitos funcionais para o estudo caso.

28

sql13.indb 28

20/8/2004 19:22:37

SQL Magazine

Com estas informaes, iremos descrever os casos de uso da primeira iterao (ver Tabelas 3 e 4). At aqui utilizamos duas ferramentas. Uma para a criao do diagrama de casos de uso e outra para a especificao. A especificao pode ser feita em qualquer editor de texto, fica ento a cargo do leitor escolher um de sua preferncia. Quanto ferramenta de modelagem, existe uma gama de opes: Rational Rose, Argo UML, Visual Paradigm e Poseidon dentre outras. Como estamos priorizando ferramentas totalmente gratuitas ou que possuam algum tipo de licena que permita sua utilizao sem custo adicional para o desenvolvimento, escolhemos a Poseidon Community Edition na verso 2.4. Veremos agora como utiliz-la para criao do diagrama de casos de uso. Alm disso, como a primeira vez que interagimos com ela, entenderemos sua interface e como criar um novo projeto onde sero mantidos os diagramas.
Poseidon Poseidon uma ferramenta CASE, desenvolvida em Java, que permite manipular todos os modelos pertencentes a UML. Ela uma extenso da ferramenta ArgoUML, uma conhecida ferramenta de modelagem.

Casos de uso Cadastrar cliente Cadastrar vdeos Pesquisar vdeos Pesquisar clientes Efetuar locao de vdeos Efetuar devoluo de vdeos Gerar estatstica de locao Verificar clientes em dbito Anlise dos casos de uso. Nome do Caso de Uso Descrio Ator Envolvido Interao entre Ator e Sistema

Importncia de Negcio Alto Alto Baixo Baixo Alto Alto Baixo Mdio

Risco de Desenvolvimento Alto Alto Baixo Baixo Alto Alto Baixo Mdio

T2

Regras de Negcio Excees

Propriedades dos atributos

Nota: O download do Poseidon pode ser feito em www.gentleware.com.O download do JRE da SUN pode ser feito em http:// java.sun.com/. Sua interface dividida em cinco reas de trabalho (Figura 4). No topo da janela se encontram o menu principal e a barra de ferramenta que fornecem acesso s principais funcionalidades. Os outros quatro painis so: Painel de navegao: permite acessar os diagramas criados em um projeto e organiz-los segundo diferentes perspectivas. Por exemplo, possvel apresentar os elementos da UML de um projeto organizados por diagramas (Figura 5a) ou por pacotes no qual esto inseridos (Figura 5b). Percebam que a visualizao dos elementos por diagrama mais organizada e facilita sua manipulao. Painel de diagramao: permite visualizar e alterar um diagrama selecionado.

T3 Cadastrar Vdeo Este caso de uso permite o cadastro (incluso) de vdeos na locadora. Funcionrio Funcionrio Sistema O caso de uso iniciado quando o funcionrio clica no boto Cadastrar Vdeo. Sistema apresenta janela com os campos ttulo, elenco, direo, ano de lanamento, gnero, tipo (VHS ou DVD), categoria (lanamento, catlogo e promoo), quantidade de cpias e durao para preenchimento pelo funcionrio. Funcionrio preenche campos e clica no boto Efetuar Cadastro. Sistema valida as informaes preenchidas pelo usurio. (EX01) Sistema cadastra vdeo (RN01) e volta para a tela inicial. Neste momento, este caso de uso encerrado. RN01 Caso o vdeo j se encontre cadastrado, uma nova instncia do vdeo gerada. EX01 Os campos devem estar todos preenchidos e de acordo com o . domnio do atributo. Por exemplo: o campo ano deve conter apenas datas vlidas. Se houver problemas no preenchimento do formulrio o sistema exibe a mensagem de erro: Existem dados invlidos no formulrio ou algum campo no foi preenchido. Domnio Acesso Atributo Ttulo String Escrita Elenco String Escrita Direo String Escrita Leitura Ano de Lanamento Date String Leitura Gnero Tipo String Leitura String Leitura Categoria Durao String Escrita F4

Especificao do Caso de Uso Cadastrar Vdeo.

rea de trabalho do Poseidon.

29

sql13.indb 29

20/8/2004 19:22:38

esenvolvimento de aplicaes orientadas a objeto apoiado por tecnologias Java . Parte II


T4

Nome do Caso de Uso Descrio Ator Envolvido Interao entre Ator e Sistema

Efetuar Locao de Vdeos Este caso de uso permite a locao de vdeos (VHS ou DVD) da locadora. Funcionrio Funcionrio O caso de uso iniciado quando o funcionrio clica no boto Efetuar Locao. Sistema

Sistema apresenta janela com os campos cdigo do cliente, nome do cliente e status do cliente. Funcionrio preenche campo cdigo do cliente e clica no boto pesquisar. Sistema verifica se o cliente est cadastrado e apresenta seu nome e status nos campos correspondentes. EX01, RN01 Caso o cliente esteja bloqueado, o funcionrio clica no boto cancelar e o caso de uso encerrado. Caso o cliente esteja Ok, o funcionrio clica no boto Entrar com Dados da Locao. O sistema apresenta uma tela com os seguintes campos: cdigo do vdeo, vdeos para locao, data de devoluo e valor da locao. O funcionrio, para cada vdeo alugado, digita o cdigo e clica no boto Incluir para Locao. O Sistema recupera o nome do vdeo correspondente e insere-o no campo vdeos para locao. EX02 O sistema recupera o valor do vdeo inserido e atualiza o campo valor da locao. O funcionrio clica no boto Fechar Locao. O sistema atualiza a disponibilidade dos vdeos alugados e armazena as informaes de locao: cdigo do cliente, cdigo dos vdeos, data de locao, data de devoluo e preo. Regras de Negcio Excees RN01 EX01 Caso o cliente possua algum dbito ou no tenha devolvido alguma fita ou DVD, o campo status preenchido com o valor Bloqueado. Se o cliente no estiver cadastrado, o sistema exibe a mensagem Usurio no cadastrado e o caso de uso Cadastrar Cliente inicializado. Se a fita no estiver disponvel, o sistema apresenta a mensagem Fita no disponvel no momento e retorna para o passo anterior do caso de uso. Domnio String String String String StringList Date Number Acesso Escrita Leitura Leitura Escrita Leitura Escrita Leitura

Esse painel possui uma barra de ferramentas contextual que permite escolher os elementos (classes, relacionamentos e atores dentre outros) que fazem parte do diagrama que estiver sendo editado e inserilos no diagrama. Painel de detalhes: permite visualizar e editar as caractersticas do elemento selecionado no painel de diagramao. Painel de visualizao: permite visualizar o diagrama como um todo e alterar o nvel do zoom escolhido para a sua visualizao.
F5

(a)

EX02

Propriedades dos atributos

Atributo Cdigo do Cliente Nome do Cliente Status Cdigo do Vdeo Vdeos para Locao Data de Devoluo Valor da Locao

(b)
Diferentes tipos de visualizao do Painel de navegao: (a) organizado por diagrama (b) organizado por pacote

Especificao do Caso de Uso Efetuar locao de vdeos.

30

sql13.indb 30

20/8/2004 19:22:40

SQL Magazine F6

Veremos a partir de agora como utilizar o Poseidon para iniciar um novo projeto e criar os diagramas de casos de uso. Passo 1 . Iniciar novo projeto Para manipular e organizar os diagramas de UML, o Poseidon, assim como diversas ferramentas de desenvolvimento e modelagem, utiliza o conceito de projeto. Desta forma, para comear a modelar um sistema devemos primeiro criar um novo projeto (Figura 6). Para realizar essa tarefa, v ao menu File e em seguida New Project. Ao fazer isso, um diagrama de classe criado automaticamente. Caso o usurio no deseje trabalhar no diagrama de classes, este deve ser selecionado no painel de navegao e excludo. Passo 2 . Criar um novo diagrama Aps ter criado um novo projeto, o usu-

Criando um novo projeto.

31

sql13.indb 31

20/8/2004 19:22:43

esenvolvimento de aplicaes orientadas a objeto apoiado por tecnologias Java . Parte II

rio deve escolher na barra de ferramentas ou no menu Create Diagram o diagrama que desejar criar. Iremos escolher o diagrama de Casos de Uso, selecionando ento a opo Use Case Diagram. Ao criar esse diagrama, o painel de diagramao apresenta uma barra de ferramentas com elementos que fazem parte do diagrama de Caso de Uso, como atores, casos de uso e relacionamentos dentre outros (Figura 7). Selecionando um desses elementos, basta clicar sobre a rea de diagramao para que um novo elemento desse tipo seja criado. As informaes referentes a esse elemento podem ser alteradas atravs do painel de detalhes. A Figura 8 apresenta parte do diagrama de casos de uso criado.
Concluso Neste ponto, encerramos a etapa de levantamento e especificao de requisitos

para a primeira iterao do processo que estamos seguindo para o desenvolvimento de um software para locadora de vdeos. Entendemos a importncia dos requisitos, conhecemos algumas tcnicas para levantamento e como formalizar as informaes obtidas de clientes em diagramas de casos de uso e principalmente, em suas especificaes. As prximas etapas, tema do prximo artigo da srie, sero as definies da arquitetura e projeto do sistema que estamos construindo, dando continuidade primeira iterao. Por fim, gostaramos de informar que voc pode fazer o download do projeto criado at aqui no site da SQL Magazine.
S

Arilo Cludio Dias Neto Bacharel em Cincia da Computao formado na Universidade Federal do Amazonas, atualmente estudante de mestrado na rea de Engenharia de Software da COPPE/UFRJ. Possui 3 anos de experincia em anlise e desenvolvimento de software. Email para contato: acdn@cos.ufrj.br. Rafael Ferreira Barcelos Bacharel em Cincia da Computao formado na Universidade Federal do Amazonas, atualmente estudante de mestrado na rea de Engenharia de Software da COPPE/UFRJ. Possui 3 anos de experincia em desenvolvimento Java de sistemas para Desktop e para Web. Email para contato: barcelos@cos.ufrj.br Rodrigo Oliveira Spnola (rodrigo@sqlmagazine.com.br) editor da SQL Magazine e Analista de Sistemas da e-Dablio. bacharel em cincia da computao pela Universidade Salvador UNIFACS e mestre em Cincias em Engenharia de Sistemas e Computao pela COPPE/UFRJ na linha de Engenharia de Software. Trabalhou com desenvolvimento C++ e XML por dois anos, tendo experincia prtica na academia atravs da implementao de projetos de pesquisa acadmicos. Atualmente trabalha com anlise de requisitos. Suas reas de interesse so: engenharia de software orientada a objetos, mtricas e complexidade estrutural de projetos orientados a objetos, inspees de artefatos de software, ambientes de desenvolvimento de software, engenharia de requisitos, integrao de ferramentas e engenharia de software experimental.

Faa o download e comente essa matria em: www.sqlmagazine.com.br/sql13

F7

Barra de ferramenta do Diagrama de Casos de Uso.

F8

Criando um diagrama de Caso de Uso

32

sql13.indb 32

20/8/2004 19:22:45

SQL Magazine

33

sql13.indb 33

20/8/2004 19:22:48

ando continuidade introduo Leitura Obrigatria ao Oracle 9i, veremos neste SQL Magazine 12, artigo a arquitetura do servidor artigo Introduo ao Oracle. Sero abordadas as estruturas Oracle 9i Abordafsicas, lgicas, de memria e de processos gem passo-a-passo. que esto presentes na conexo, criao de sesses e na execuo de instrues SQL. Muitos dos tpicos que veremos neste artigo so importantes e necessrios para a criao de uma base de dados Oracle. Voc notar que utilizamos muitos desses conceitos no passo-a-passo apresentado na edio 12. Boa leitura e bom divertimento.
Viso geral do Oracle Server O servidor Oracle deve gerenciar de forma confivel e com alta performance uma grande quantidade de informaes em um ambiente multiusurio com muitos acessos simultneos. Deve tambm, dentre outras tarefas, evitar o acesso no autorizado ao BD e prover solues eficientes e eficazes na recuperao por falhas de hardware ou software. Para lidar com isto, o Oracle mantm uma srie de arquivos, processos e estruturas em memria. Basicamente, um servidor Oracle (Oracle Server) formado por dois componentes bem definidos. So eles: Estrutura em memria: composta pela instncia (Oracle Instance) e pela rea global do programa (PGA Program Global Area), e; Banco de dados (Oracle DataBase).

ntroduo
Ricardo Rezende

ao Oracle 9i, Parte II. Entendendo o Oracle Server

estrutura fsica dos arquivos no sistema operacional. Veremos a seguir cada um destes componentes em detalhe.
A instncia A instncia o mecanismo que o Oracle utiliza para gerenciar as requisies de usurio e o BD propriamente dito (arquivos fsicos e sistema operacional) (Figura 1). Sempre que h uma interao com o banco de dados, necessrio que uma instncia seja iniciada. Quando isso acontece, alocada uma poro da memria conhecida como SGA (System Global Area rea Global do Sistema) e os processos em segundo plano so colocados no ar. Uma particularidade da instncia que ela poder acessar um e somente um banco de dados Oracle. System Global Area SGA A SGA usada para armazenar informaes que so compartilhadas com os processos do BD. Ela contm dados e informaes de controle utilizadas pelo servidor Oracle. A SGA formada por vrias subdivises: Shared Pool (Pool compartilhado), Database Buffer Cache (Cache de Buffer de banco de dados), Redo Log Buffer
F1

A Figura 1 ilustra estes dois componentes e suas estruturas formadoras. Uma instncia Oracle nada mais do que a alocao de memria principal (RAM) feita pelo servidor Oracle para interagir com a estrutura fsica (arquivos em disco) e interface de usurio (Delphi ou SQL*Plus, por exemplo), juntamente com os processos em segundo plano (Process Monitor PMON, System Monitor SMON, Database Writer DBWn, Log Writer LGWR, Checkpoint CKPT entre outros). J o banco de dados composto pela

Viso geral de um servidor Oracle.

34

sql13.indb 34

20/8/2004 19:22:50

SQL Magazine

(Buffer de Redo Log) e outras estruturas menores como estrutura de gerenciamento de trava e tranca (lock and latch), estrutura de dados estatsticos, etc. A partir do Oracle 9i, a SGA passou a ser dinmica, ou seja, pode-se alterar suas configuraes sem a necessidade de finalizar a instncia.
Shared Pool Shared Pool onde so armazenados os objetos compartilhados globalmente como os planos de execuo de instrues SQL, pacotes PL/SQL, procedimentos, funes, etc. Pelo fato de armazenar estes objetos que interagem com o dicionrio de dados ou com os objetos dos usurios (tabelas, ndices, etc.), ela dividida em duas reas especficas (Figura 1): Library Cache (Cache de biblioteca): determinada de acordo com o tamanho da Shared Poll e alocada quando uma instruo compilada ou uma unidade de programa chamada. Se a Shared Pool estiver configurada com um tamanho muito pequeno, as instrues sero recarregadas constantemente, comprometendo a performance. A Library Cache dividida em outras duas reas: a rea de SQL compartilhado, que so todas as instrues SQL que podem ser usadas por qualquer sesso de usurio e a rea de PL/SQL compartilhado que so as instrues da linguagem procedural compartilhadas pelas sesses. O gerenciamento do tamanho dessas reas feito pelo prprio servidor Oracle, cabendo ao DBA apenas configurar o tamanho da Shared Pool. Data Dictionary Cache (Cache de dicionrio de dados): trabalha de maneira semelhante Library Cache, porm armazena informaes sobre a estrutura do BD como os dados de contas dos usurios, nome dos arquivos de dados (data files), descrio das tabelas, privilgios dos usurios, entre outros.

SYSTEM SET, como visto no exemplo abaixo, mas no pode ultrapassar o valor limite definido na SGA_MAX_SIZE.
SQL> ALTER SYSTEM SET SHARED_POOL_SIZE = 64M SCOPE=BOTH;

para eliminar da memria os blocos que provavelmente no sero mais utilizados. Abaixo podemos ver exemplos de modificao dinmica destes parmetros:
SQL> ALTER SYSTEM SET DB_CACHE_SIZE = 30M SCOPE=BOTH; SQL> ALTER SYSTEM SET DB_KEEP_CACHE_SIZE = 8M SCOPE=BOTH; SQL> ALTER SYSTEM SET DB_RECYCLE_CACHE_SIZE = 5M SCOPE=BOTH;

Somente atravs do acompanhamento do comportamento do BD que se conseguir definir precisamente o melhor valor para este parmetro. importante salientar que podemos utilizar a opo SCOPE=BOTH para identificar que o escopo da alterao atinge tanto a memria quanto o arquivo de parmetros do servidor. Assim, caso seja omitida a clusula SCOPE a alterao no ser persistente e, numa prxima reinicializao do BD ser adotado o valor antigo do parmetro. Ao utilizar a clusula, o parmetro gravado no SPFILE e o novo valor ser adotado em cada reinicializao. Um detalhe que isso no altera o PFILE, que deve ser configurado manualmente atravs de um editor de textos. Pode-se tambm recriar um PFILE considerando o SPFILE como origem. Para isso basta utilizar o comando abaixo:
CREATE PFILE=<caminho\nome_arquivo.ora> FROM SPFILE;

Redo Log Buffer Todas as operaes de INSERT, UPDATE, DELETE, CREATE, ALTER ou DROP que so executadas no BD so armazenadas nesta rea de memria. O motivo deste armazenamento o de recriar ou refazer as instrues em caso de falha (um disco defeituoso, por exemplo). Para efetuar a recuperao da base de dados, os dados armazenados no Redo Log Buffer sero lidos e aplicados no BD, recriando-o at o momento exato da falha. O parmetro de inicializao que define o montante do Redo Log Buffer o LOG_BUFFER. Ele no pode ser alterado dinamicamente. Deve-se finalizar o BD, alterar o valor no arquivo de inicializao, editando o arquivo (init.ora), e reiniciar o BD. Large Pool uma rea opcional da SGA utilizada para alocar memria para: (1) as sesses em processos de servidor compartilhado (Shared Server) e, (2) processos de backup/recover manuais ou atravs do Recover Manager (RMAN) da Oracle. Caso seja feita a opo de no utiliz-la e estejamos trabalhando com servidor compartilhado ou efetuando um processo de backup/recover, ser utilizada a memria alocada na Shared Pool para execuo das tarefas. Entretanto, isso trar um impacto negativo na performance do sistema, pois as informaes de instrues SQL e PL/SQL freqentemente utilizadas, sero perdidas e haver necessidade de nova compilao destes comandos. A definio do tamanho desta rea de memria feita atravs do parmetro LARGE_POOL_SIZE, que pode ser alterado dinamicamente atravs do comando ALTER SYSTEM SET, conforme exemplo abaixo:
SQL> ALTER SYSTEM SET LARGE_POOL_SIZE = 20M SCOPE=BOTH;

A Shared Pool deve ser configurada para acomodar estas duas estruturas de maneira a evitar a repetio de compilao de instrues SQL, PL/SQL ou consultas a dicionrio de dados. O tamanho da Shared Pool determinado pelo parmetro SHARED_POOL_SIZE. Ele pode ser alterado dinamicamente atravs do comando ALTER

Database Buffer Cache Sempre que uma consulta efetuada, o servidor Oracle procura no Database Buffer Cache para verificar se a informao j se encontra em memria. Caso negativo, o servidor faz uma leitura em disco no arquivo de dados e grava uma cpia em memria, para encontr-la rapidamente em uma consulta futura. O parmetro que define o tamanho do Database Buffer Cache o DB_CACHE_SIZE, que tambm pode ser alterado dinamicamente atravs do comando ALTER SYSTEM SET. Na verdade, podemos configurar trs parmetros para definir o tamanho do Database Buffer Cache: DB_CACHE_SIZE : responsvel pelo dimensionamento do tamanho padro do buffer. Ele obrigatrio e nunca poder estar configurado com valor zero; DB_KEEP_CACHE_SIZE: o tamanho do Database Buffer Cache que ser utilizado para reter os blocos de dados que provavelmente sero reutilizados no futuro; DB_RECYCLE_CACHE_SIZE: utilizado

35

sql13.indb 35

20/8/2004 19:22:51

ntroduo ao Oracle 9i, Parte II. Entendendo o Oracle Server


compartilhada (Shared Pool); Memria de sesso: a memria alocada para armazenar as variveis e outras informaes relativas sesso. Em um servidor compartilhado, a memria de sesso tambm compartilhada; reas de trabalho de SQL: utilizada para operaes intensas de memria como ordenao, junes, fuso e criao de bitmaps.
rea de memria Natureza da memria da sesso Localizao da rea persistente Localizao da rea de tempo de Execuo (SELECT) Localizao da rea de tempo de Execuo (DML/DDL) PGA SGA Servidor Dedicado Privativa PGA PGA Servidor Compartilhado Compartilhada SGA SGA

Java Pool Esta uma rea obrigatria caso seja utilizada uma aplicao em Java na interao com o BD. O seu funcionamento semelhante Shared Pool, diferindo apenas no cdigo que compilado em cada rea. As instrues recebidas pelo servidor Oracle em SQL ou PL/SQL sero compiladas na Shared Pool, enquanto que o cdigo recebido em linguagem Java, ser compilado na Java Pool. simplesmente uma maneira encontrada para distinguir os tipos de informaes, fazendo com que os cdigos que potencialmente poderiam ser reutilizados no sejam retirados da memria pela entrada de um cdigo Java, por exemplo. Cabe salientar que uma instruo hbrida recebida, ou seja, uma instruo em Java que contenha instrues em SQL em seu cdigo, ser separada e enviada s devidas reas correspondentes. Seu tamanho definido atravs do parmetro JAVA_POOL_SIZE, no pode ser alterado dinamicamente e, na verso Oracle 9i, o tamanho padro de 24 Mb. Program Global Area (PGA) uma rea de memria que contm os dados e informaes de controle de um nico processo do servidor ou um nico processo em segundo plano (background process). alocada quando o processo se inicia e desalocada quando finalizado (Figura 2). A PGA formada pelos seguintes componentes: rea SQL privativo: armazena dados como informaes de ligao e estruturas de tempo de execuo. Cada sesso que requisita uma instruo SQL tem sua prpria rea privativa que utiliza uma nica rea
F2

T1

F3

PGA alocada para um nico processo do servidor

Dependendo da maneira com que configurado o esquema de conexes ao BD, processo de servidor com- Conexo do processo do usurio ao processo do servidor. partilhado ou dedicado, a PGA pode assumir maneiras diferentes de do processo do usurio (Figura 4). Como alocao de memria. A Tabela 1 mostra as vimos, um processo do servidor pode ser dediferenas entre estes comportamentos. dicado ou compartilhado. Em um ambiente cujo processo do servidor dedicado, ele iniciado e atende s solicitaes de apenas Estrutura de Processos Um servidor Oracle utiliza vrios tipos de um processo do usurio, e finalizado no processos que podem ser organizados em momento em que o usurio desconecta-se trs segmentos: do BD. J num ambiente configurado com Usurio: iniciado no momento em que processo do servidor compartilhado, ele o usurio solicita uma conexo ao BD; atende s solicitaes de vrios processos de Servidor: conectado instncia e usurio e passa a interagir com os conheci iniciado assim que o usurio estabelece dos dispatchers. uma sesso; Segundo plano: so iniciados no mo- Processos em segundo plano mento em que a instncia iniciada. A arquitetura de um servidor Oracle possui cinco processos em segundo plano obrigatrios e vrios opcionais que sero Processo do usurio Sempre que um usurio necessitar de in- iniciados de acordo com a configurao do formaes do BD, deve primeiro estabelecer BD. Os processos obrigatrios so: uma conexo que inicializa um processo do DBWn (Database Writer): responsvel usurio (Figura 3). Perceba que o processo pela escrita das informaes nos arquivos do usurio no interage diretamente com de dados; o servidor Oracle, ele gera uma chamada LGWR (Log Writer): escreve as inforatravs da interface da aplicao e cria uma maes do buffer de redo log nos arquivos sesso, iniciando um processo do servidor, de redo log; SMON (System Monitor): responsvel que quem realmente est interagindo diretamente com o servidor Oracle (Figura 1). pelo monitoramento do sistema para uma eventual recuperao da instncia em caso de falha; Processo do servidor A partir do momento que o usurio esta PMON (Process Monitor): executa belece uma conexo, um processo do servi- uma reorganizao das informaes aps a dor iniciado para manipular as requisies falha de algum processo do usurio;

36

sql13.indb 36

20/8/2004 19:22:53

SQL Magazine F4

A cada trs segundos.


System Monitor (SMON) Caso haja uma falha na instncia causada, por exemplo, por uma falha no sistema operacional, alguns dados armazenados na SGA que no foram escritos em disco sero perdidos. Para lidar com isso, aps a queda da instncia, o processo de SMON automaticamente executar a recuperao da instncia assim que o banco for reaberto. Para isto, o SMON executar os seguintes passos: Recuperao dos dados que no foram gravados nos arquivos de dados, mas j estavam gravados no arquivo de Redo Log. Estes dados no foram gravados no arquivo de dados pela perda da SGA no momento da falha da instncia. Durante esse processo, o SMON l as informaes do arquivo de Redo Log e as aplica na base de dados; Abertura do BD para conexo dos usurios. So imediatamente liberados todos os blocos de dados que no sofreram trava (lock) por transaes no recuperadas; Todas as transaes no efetivadas (commit) so desfeitas (Rollback). Process Monitor (PMON) O PMON executa uma reorganizao das informaes aps a falha de algum processo do usurio atravs das seguintes aes: Desfaz (Rollback) a transao atual do usurio; Libera qualquer tabela ou linha travada (lock) pela transao do usurio;
F5

Conexo do processo do servidor, criando uma sesso.

CKPT (Checkpoint): responsvel pela sincronizao das informaes entre os arquivos de dados e arquivo de controle. Alguns dos processos opcionais so: ARCn (Archiver): faz o arquivamento dos arquivos de redo log para posterior utilizao em um eventual processo de recuperao; Dnnn (Dispatcher): atende s requisies dos processos de usurio em uma configurao de servidor compartilhado; RECO (Recoverer): utilizado quando existe a necessidade de uma recuperao de dados; Snnn (Shared Server): criado apenas quando o ambiente est configurado para servidor compartilhado. Veremos a partir de agora alguns desses processos.
Database Writer (DBWn) Tudo que efetuado nos blocos de dados (menor unidade de E/S do servidor Oracle), seja uma insero de dados ou alterao, so armazenados no cache de buffer de banco de dados (Database Buffer Cache). Os blocos de dados que sofrem alguma alterao enquanto ainda se encontram no cache de buffer de banco de dados so conhecidos como blocos sujos e o DBWn o responsvel em escrever todos os dados armazenados em memria para o arquivo de dados (Figura 5). J que as alteraes nos blocos de dados so feitas em memria, podemos concluir que existe um ganho de performance, pois h uma reduo sensvel de acesso a disco. O DBWn somente efetua a gravao das informaes nos arquivos de dados quando

um dos seguintes eventos acontece: O processo CKPT (Checkpoint) executado, o que fora a execuo do DBWn; O nmero de blocos sujos atinge um valor elevado; O processo no encontra buffer livre para armazenar informaes; detectado um timeout; H uma solicitao de ping em um ambiente RAC (Real Application Cluster); Uma tablespace normal ou temporria colocada em modo off-line; Uma tablespace colocada em modo read-only; As instrues DROP ou TRUNCATE so efetuadas em uma tabela; iniciado o processo de backup on-line atravs da instruo BEGIN BACKUP.
Log Write (LGWR) As informaes armazenadas no Redo Log Buffer devem ser gravadas no arquivo de Redo Log e esta tarefa executada pelo LGWR (Figura 6).

A operao executada pelo LGWR executada em uma das seguintes situaes: Quando uma transao efetivada (commit); No momento em que um tero (1/3) do Redo Log Buffer estiver ocupado; Caso haja 1 Mb de informaes armazenadas no Redo Log Buffer; Exatamente antes de o processo DBWn entrar em execuo;

Tarefa do DBWn.

37

sql13.indb 37

20/8/2004 19:22:55

ntroduo ao Oracle 9i, Parte II. Entendendo o Oracle Server


plano opcional, ele de grande importncia para recuperao de dados caso haja falha de disco. Como foi visto no artigo Introduo ao Oracle 9i na edio 12 da SQL Magazine, a cada momento em que o arquivo de Redo Log chega sua capacidade total, acontece a operao de switch, que faz com que o LGWR passe a armazenar informaes no prximo arquivo de Redo Log. Esse processo cclico e no momento em que o ltimo arquivo de Redo Log est cheio, o LGWR passa a sobrescrever o primeiro, impedindo a recuperao completa da base de dados desde o ltimo backup. Para resolver este problema, configura-se o servidor Oracle para trabalhar em modo de arquivamento de arquivos de Redo Log. Desta forma, a cada switch as informaes do arquivo de Redo Log so copiadas para outro arquivo externo, sendo esta operao realizada pelo processo ARCn (Figura 8). Com isso finalizamos a discusso sobre a instncia de um servidor Oracle, com sua estrutura de memria e os processos em segundo plano. A partir de agora, falaremos sobre a segunda parte que compe o servidor Oracle, o banco de dados.
Oracle Database O Oracle Database composto por uma estrutura lgica e uma estrutura fsica. Neste artigo, abordaremos apenas a estrutura fsica que diz respeito aos arquivos de sistema operacional que fornecem armazenamento fsico para as informaes do BD. Esta estrutura composta por trs arquivos obrigatrios: arquivo de dados, de controle e de Redo Log; e trs arquivos adicionais: arquivo de parmetros, de senhas e arquivamento de Redo Log (Figura 1). Arquivos de dados o local onde so armazenados os dados no BD. Os arquivos de dados esto intimamente ligados a tablespaces, que so a estrutura lgica para criao dos objetos do BD (tabelas, ndices, etc.). Cada arquivo de dados somente poder estar associado a uma nica tablespace. Esta associao feita no momento
F6

da criao da tablespace onde definido o arquivo de dados com seu tamanho inicial, crescimento e tamanho mximo. Caso um arquivo de dados alcance seu tamanho mximo, possvel adicionar arquivos de dados para a mesma tablespace. Vejamos um exemplo de criao de tablespace, definindo-se o arquivo de dados.
CREATE TABLESPACE SQLMAGAZINE DATAFILE C:\ORACLE\ORA92\ORADATA\SQLMag\USERS01.DBF SIZE 500M AUTOEXTEND ON NEXT 10M MAXSIZE 2G;

Tarefa do LGWR.

Libera os recursos reservados quele usurio; Reinicializa os processos despachantes (dispatchers) inativos. Falhas em processos do usurio podem ser causadas quando o usurio desconectado do BD por uma falha de rede, ou queda de energia na estao de trabalho.
Checkpoint (CKPT) A cada trs segundos (obrigatoriamente, pois no se pode configurar este valor), o CKPT armazena informaes no arquivo de controle para detectar a partir de que ponto do arquivo de Redo Log se deve iniciar uma recuperao. Dessa forma, o objetivo do checkpoint assegurar que todas as informaes armazenadas no Database Buffer Cache foram armazenadas no arquivo de dados at determinado momento (posio do checkpoint). A Figura 7 apresenta o CKPT e os demais processos com os quais ele interage. Outros benefcios conseguidos atravs do CKPT so: Reduzir o tempo de recuperao de instncia em caso de falha, pois somente as informaes do arquivo de Redo Log que foram armazenadas aps o checkpoint que devero ser recuperadas; Assegurar que os dados efetivados sejam gravados no arquivo de dados antes da finalizao do BD. Archiver (ARCn) Apesar de ser um processo em segundo

No exemplo criada uma tablespace chamada SQLMAGAZINE cujo arquivo de dados C:\ORACLE\ORA92\ORADATA\SQLMag\ USERS01.DBF (note que o nome do arquivo de dados composto pelo seu path completo, e no apenas por nome.extenso como estamos acostumados), e o tamanho inicial de 500 Mb, com crescimento automtico (AUTOEXTEND ON) de 10 Mb em 10 Mb (NEXT 10M) e tamanho mximo de 2Gb. No caso do tamanho mximo do arquivo de dados ser atingido, podemos adicionar um arquivo de dados tablespace em questo, usando o seguinte cdigo:
ALTER TABLESPACE SQLMAGAZINE ADD DATAFILE C:\ORACLE\ORA92\ORADATA\SQLMag\USERS02.DBF SIZE 500M AUTOEXTEND ON NEXT 10M MAXSIZE 2G;

Neste caso utilizaremos o comando ALTER TABLESPACE com a opo ADD


DATAFILE.

No algo obrigatrio, porm a prpria Oracle recomenda e tornou-se uma prtica normal entre os DBAs no permitir que os arquivos de dados se tornem maiores que 2 Gb, pois podem ocasionar problemas de gerenciamento por parte de alguns sistemas operacionais. F7

Trabalho do CKPT.

38

sql13.indb 38

20/8/2004 19:22:57

SQL Magazine F9

Arquivo de Controle O arquivo de controle um arquivo binrio necessrio para a inicializao e operao do BD e est associado a apenas um banco de dados Oracle. Ele lido para verificar se o estado do BD est vlido. Uma particularidade do arquivo de controle que ele sofre atualizaes constantes durante a utilizao do BD. Por esse motivo ele deve estar sempre disponvel enquanto o BD estiver em operao. Na falta do arquivo de controle, o banco de dados sofrer srios problemas e dever passar por uma operao de recuperao (recover) antes de sua inicializao. Como vimos na edio passada da SQL Magazine, uma boa prtica que lhe assegurar um pouco mais de segurana, a multiplexao ou espelhamento do arquivo de controle. Isto possibilita a manuteno de vrios arquivos de controle em unidades de armazenamento diferentes, todos contendo exatamente as mesmas informaes e sofrendo as mesmas alteraes. Este espelhamento pode ser feito atravs do arquivo de parmetros de inicializao (PFILE init. ora) ou atravs do arquivo de parmetros do servidor (SPFILE). Caso a opo seja utilizar o PFILE, deve-se edit-lo acrescentando os espelhos na linha correspondente. A linha indica que haver trs espelhos (ctrl_SQLMAG_01.ctl, ctrl_SQLMAG_ 02.ctl e ctrl_SQLMAG_03.ctl) em unidades diferentes (C:, D: e E) (Veja Destaque 1). No esquea que necessrio reinicializar o BD (Shutdown Startup) para que as alteraes tenham efeito.

Estrutura dos arquivos de Redo Log.

Quando utilizamos o SPFILE, o BD no necessita ser reinicializado e voc poder criar o espelhamento atravs da instruo ALTER SYSTEM. O exemplo (Veja Destaque 2) produz o mesmo efeito de criao de trs espelhos, porm a alterao apenas feita no arquivo de parmetros do servidor (SPFILE).
Arquivo de Redo Log Fornece recursos para refazer transaes em caso de uma falha de BD. Toda transao escrita sincronizadamente no buffer de Redo Log e depois gravadas nos arquivos de Redo Log pelo processo LGWR. Este processo inclui transaes que ainda no foram efetivadas, informaes de undo e instrues de gerenciamento de objetos do BD. Em caso de falha de instncia, todas as transaes cujas informaes no foram gravadas nos arquivos de dados sero refeitas atravs da leitura dos arquivos de
Destaque 1

CONTROL_FILES = (C:\ORACLE\ORA92\ORADATA\SQLMag\ctrl_SQLMAG_01.ctl, D:\ORADATA\SQLMag\ctrl_SQLMAG_02.ctl, E:\ORADATA\SQLMag\ctrl_SQLMAG_03.ctl)

Destaque 2
ALTER SYSTEM SET CONTROL_FILES = C:\ORACLE\ORA92\ORADATA\SQLMag\ctrl_SQLMAG_01.ctl, D:\ORADATA\SQLMag\ctrl_SQLMAG_02.ctl, E:\ORADATA\SQLMag\ctrl_SQLMAG_03.ctl SCOPE=SPFILE

F8

Redo Log. Como vimos anteriormente, necessrio que haja no mnimo dois grupos de arquivo de Redo Log. Junto a isso, possvel tambm executar a operao de multiplexao ou espelhamento nos grupos de arquivo Redo Log, adicionando membros a cada grupo. Esta operao garante a integridade dos dados de Redo Log caso haja uma falha de disco e seja perdido algum arquivo. A Figura 9 mostra esta estrutura. Uma seleo de cpias idnticas do mesmo arquivo de Redo Log chamada de Grupo de Redo Log e o processo em segundo plano LGWR far a gravao simultnea de todos os arquivos do grupo. Cada arquivo em um grupo de Redo Log chamado de membro, que possui a mesma numerao de seqncia e tamanho dos outros membros. Analogamente ao arquivo de controle, podemos criar grupos e membros de Redo Log antes da inicializao do BD, atravs do PFILE, ou aps a colocao do BD em operao. Na Listagem 1 esto sendo criados trs grupos contendo dois membros cada com 10 Mb. Note que os membros esto fisicamente localizados em unidades diferentes, para garantir a segurana. Agora, com o BD inicializado, efetuaremos a mesma operao sem necessidade de encerrar os servios do servidor.
ALTER DATABASE ADD LOGFILE GROUP 3 (C:\oracle\oradata\SQL_Mag\redo03a.log, D:\oracle\oradata\SQL_Mag\redo03b.log) SIZE 10240K;

Cpia dos arquivos de Redo Log.

O exemplo acima indica a criao de um terceiro grupo de Redo Log contendo dois membros com 10 Mb cada. Agora, com o BD ainda em operao, adicionaremos

39

sql13.indb 39

20/8/2004 19:22:59

ntroduo ao Oracle 9i, Parte II. Entendendo o Oracle Server


Arquivo de senhas O servidor Oracle permite duas formas de autenticao de usurio: autenticao pelo Oracle Database ou autenticao pelo sistema operacional. No primeiro caso, todas as informaes referentes a usurios e senhas so armazenadas de forma criptografada no dicionrio de dados do BD. J na autenticao pelo sistema operacional, o armazenamento feito em um arquivo de senhas controlado pelo sistema operacional. A autenticao pelo sistema operacional pode trazer convenincias aos usurios que, uma vez conectado ao sistema operacional, no necessitar informar login e senha para conectar-se ao BD pelo SQL* Plus, por exemplo. importante salientar que esta comodidade pode causar problemas de utilizao indevida do BD caso no haja uma boa poltica de utilizao dos sistemas operacionais por parte da empresa. O utilitrio usado para configurar o arquivo de senha caso seja utilizada a opo de autenticao pelo Oracle o ORAPWD. Este utilitrio usado da seguinte forma:
C:\> orapwd FILE=PWDsid.ora PASSWORD=password ENTRIES=max_users

mais membros aos grupos de Redo Log presentes.


ALTER DATABASE ADD LOGFILE MEMBER E:\oracle\oradata\SQL_Mag\redo01c.log TO GROUP 1, E:\oracle\oradata\SQL_Mag\redo02c.log TO GROUP 2, E:\oracle\oradata\SQL_Mag\redo03c.log TO GROUP 3;

Com isto, foi criado um terceiro membro em cada um dos trs grupos de Redo Log existentes.
Arquivo de parmetros de inicializao um arquivo texto que contm uma lista de parmetros de inicializao. O nome do arquivo de parmetros de inicializao pode variar de acordo com o sistema operacional, mas normalmente possui o nome de init<SID>.ora, onde SID o nome de identificao do BD. No BD criado na edio passada, o arquivo chamava-se initSQLMag.ora. sempre interessante manter as configuraes do BD atualizadas no arquivo de parmetros de inicializao, pois apesar de no ser mais necessrio a sua utilizao a partir da primeira inicializao do BD, ele ser til em um caso de recriao do BD, por exemplo. A Listagem 2 mostra um trecho do arquivo de parmetros de inicializao com alguns parmetros definidos. A inicializao do BD, utilizando o arquivo de parmetros de inicializao feita atravs do seguinte comando:
STARTUP PFILE = <CAMINHO\ARQUIVO>

Arquivamento de Redo Log Quando trabalhamos com o BD em modo de arquivamento de Redo Log, a cada momento que um arquivo de Redo Log preenchido e executado um switch, uma cpia deste arquivo feita em uma unidade de armazenamento. Assim, temos uma cpia em disco exata do arquivo de Redo Log em cada momento. A diferena entre eles que o arquivamento uma cpia do arquivo de Redo Log em um determinado momento, pois o arquivo de Redo Log ser sobrescrito quando o ciclo se fechar. No podemos esquecer que estas cpias dos arquivos de Redo Log ocupam espao em disco. Portanto devemos prever este recurso ao usar esta funcionalidade. Concluses Neste artigo conhecemos a estrutura utilizada pelo servidor Oracle para armazenar informaes e gerenciar instncias. Percebemos que uma estrutura um tanto quanto complexa. Porm, no poderia ser diferente. o preo que se paga para ter um ambiente que proporciona robustez aliada performance e segurana na manuteno da integridade dos dados. Espero que tenha sido muito til e que lhe auxilie nesta caminhada no mundo Oracle. Na prxima edio finalizarei esta srie de artigos implementando um sistema atravs da criao de usurios, tabelas, relacionamentos, restries etc. Espero por voc. At a prxima.
S

Onde: CAMINHO: localizao do arquivo de parmetros de inicializao; ARQUIVO: nome do arquivo de parmetros de inicializao.

Onde: FILE: especifica o nome do arquivo de senha; SID: identifica o nome da instncia; PASSWORD: seleciona a senha do usurio SYS (tem acesso a tudo no BD, semelhante ao root, do Linux); ENTRIES: especifica o nmero mximo de entradas no arquivo de senhas. Isto corresponde ao nmero mximo de usurios distintos com permisso de conexo simultaneamente no BD.
L1

Comente essa matria em: www.sqlmagazine.com.br/sql13

LOGFILE GROUP 1 (C:\oracle\oradata\SQL_Mag\redo01a.log, D:\oracle\oradata\SQL_Mag\redo01b. log) SIZE 10240K, GROUP 2 (C:\oracle\oradata\SQL_Mag\redo02a.log, D:\oracle\oradata\SQL_Mag\redo02b.log) SIZE 10240K, GROUP 3 (C:\oracle\oradata\SQL_Mag\redo03a.log, D:\oracle\oradata\SQL_Mag\redo03b.log) SIZE 10240K;

# Cache and I/O DB_BLOCK_SIZE=4096 DB_CACHE_SIZE=20971520 # Control File Configuration CONTROL_FILES=(/vobs/oracle/oradata/mynewdb/control01.ctl, /vobs/oracle/oradata/mynewdb/control02.ctl, /vobs/oracle/oradata/mynewdb/control03.ctl) # Pools JAVA_POOL_SIZE=31457280 LARGE_POOL_SIZE=1048576 SHARED_POOL_SIZE=52428800

L2

Ricardo Rezende (ricardo@sqlmagazine.com.br) professor das disciplinas de Banco de Dados, Linguagem de Programao e Tcnicas de programao pelo Centro Estadual de Educao Tecnolgica Paula Souza nas unidades de Taubat-SP e Caapava-SP, DBA Oracle com cursos oficiais pela Oracle University, consultor de Bancos de Dados e subeditor da revista SQL Magazine.

40

sql13.indb 40

20/8/2004 19:23:01

SQL Magazine

41

sql13.indb 41

20/8/2004 19:23:03

M
D

odelagem

de Data Warehouses e Data Marts Parte 1


Isabel Cristina Italiano e Luiz Antonio Esteves

e uma forma simples, data waLeitura Obrigatria rehouses e data marts existem SQL Magazine 3, para responder questes que artigo Descubra o as pessoas tm sobre os negcios. So Data Warehouse: uma base de informaes consolidadas, Produtividade e rapidez.. integrada e no voltil, para apoiar os processos de tomada de decises estratgicas, tticas e tambm operacionais de organizaes. Esta funo contrasta fortemente com o propsito dos sistemas transacionais (sistemas que apiam a operao da empresa) e requer que o desenho ou o modelo de dados do data warehouse siga princpios completamente diferentes. Vrios aspectos considerados de extrema importncia na modelagem de sistemas transacionais como a aplicao de rgidas regras de normalizao so, muitas vezes, deixados de lado ao se modelar um data warehouse ou data mart. Na edio 3 - ano 1 desta revista, voc pode encontrar uma viso geral da arquitetura, etapas da implementao e utilizao de um data warehouse. Este artigo tem por objetivo mostrar os detalhes que envolvem uma das tcnicas utilizadas para a modelagem dos dados em data warehouses e tambm em data marts, a modelagem dimensional. Essa tcnica segue a chamada escola Ralph Kimball, introdutor do conceito do star schema. Na segunda parte deste artigo, a ser publicada em edio futura da SQL Magazine, apresentaremos detalhadamente o star schema e sua variao normalizada: o snowflake schema. Na terceira parte, abordaremos outra tcnica utilizada para modelagem apenas de data warehouses, a modelagem relacional desnormalizada, que segue a chamada escola Bill Inmon, considerado o pai do conceito de data warehouse.
A modelagem dimensional e suas implementaes As tcnicas de modelagem dimensional de um data warehouse, se aplicadas corretamente, garantem que (1) o desenho do data warehouse reflita a forma de pensar dos analistas de negcio e gerentes da empresa e (2) possa ser usado eficazmente para atender os seus requisitos de negcio. Alis, este o princpio bsico da modelagem de um data warehouse: discutir diretamente com o usurio final sua viso do modelo de negcios e fazer com que esta viso seja refletida na base de informaes.

O data warehouse deve ser desenhado para transpor os limites de cada um dos sistemas transacionais. Ele construdo para responder questes que no esto limitadas s transaes ou aos sistemas individuais, apresentando, desta forma, uma viso integrada e completa dos negcios. Uma das tcnicas utilizadas para se obter um modelo para o data warehouse que identifique e represente as informaes importantes para o modelo de negcios a modelagem dimensional ou multidimensional. Quando bem definido, o modelo dimensional pode ser uma ajuda de valor incalculvel para as reas de negcio, apoiando e otimizando todo o processo de tomada de decises. O modelo dimensional representa: os indicadores importantes para uma rea de negcios, que so chamados de fatos ou mtricas; os parmetros atravs dos quais estas mtricas so analisadas pelos usurios, que so chamados de dimenses (as dimenses de negcios). A Figura 1 apresenta um modelo dimensional simplificado para um processo de pedidos. As mtricas definidas neste modelo esto no quadro central e as dimenses esto representadas nos quadros ao redor das mtricas. As mtricas so sumariadas (agregadas) ou detalhadas de acordo com o interesse da anlise a ser feita sobre os dados. Este modelo fcil de ser entendido por uma pessoa da rea de negcios, j que as coisas que eu avalio esto na parte central do diagrama e as formas de se olhar para elas esto nos quadros em volta. Fica fcil perceber que estes quadros facilmente se transformaro em tabelas (com alguns atributos adicionais) utilizadas para armazenar toda a informao necessria. Um modelo como este no muda muito ao ser implementado em um banco de dados relacional (RDBMS). Cada quadro com os atributos de uma dimenso se torna uma tabela, chamada de tabela dimenso, e o quadro central se torna uma grande tabela, chamada tabela fato, que contm, por vezes, milhes ou bilhes de linhas. Porm, os modelos dimensionais nem sempre so implementados em bases de dados relacionais. Existem no mercado bancos de dados multidimensionais, ou MDDBS, que armazenam informaes em um formato diferente, freqentemente

42

sql13.indb 42

20/8/2004 19:23:04

SQL Magazine

warehouse como um todo fica armazenado no banco de dados relacional, enquanto que partes ou segmentos deste data warehouse so copiadas e armazenadas em cubos, que so chamados de data marts. Estas arquiteturas bsicas de implementao esto representadas nas Figuras 2 e 3. Nesta parte do artigo ainda no iremos nos preocupar com as tecnoViso de negcios de um modelo para processo de pedidos (note que esta a viso do usurio e que ainda no estamos considerando logias de implementao todos os atributos a serem implementados). fsica dos modelos de chamado de cubos. Os cubos so constru- dados, mas apenas analisaremos as etapas dos de tal forma que, cada combinao de de modelagem necessrias para atender atributos das dimenses com uma mtrica qualquer tipo de implementao, seja ou pr-calculado ou calculado muito em um banco relacional ou multidimenrapidamente. sional. Entretanto, a natureza de um banco de dados multidimensional tambm significa Os passos para a modelagem O processo de modelagem dimensional que no possvel manipular volumes de dados extremamente grandes j que uma composto por algumas etapas cujo objetivo transao de anlise dos dados, com uma levantar e representar as necessidades de ferramenta OLAP (OnLine Analytical Pro- anlise e de informaes dos usurios de cessing), que envolva um grande volume de determinada rea de negcios. A Tabela 1 dados vai consumir grande quantidade de apresenta uma viso geral deste processo. memria ou simplesmente no se efetuar. Nas sees seguintes discutiremos cada Alm disso, o nmero de atributos dimen- uma destas etapas. sionais armazenados em um cubo pode impactar o tempo de carga, o tamanho e o Passo 1 Definindo os fatos ou desempenho do cubo. mtricas Este passo vai definir o que queremos Nota: Ferramentas OLAP so ferramentas avaliar no data warehouse/data mart, ou utilizadas para executar anlises sobre os seja, os fatos. Estes fatos so os nmeros dados de data warehouses e data marts, com que sero medidos e analisados atravs capacidade de visualizar as informaes sob das diferentes dimenses de negcios diferentes ngulos e nveis de agrupamento/ (que sero definidas no passo 2). A seleo detalhamento. dos fatos que iro compor o modelo do data warehouse relativamente simples. Uma das alternativas para solucionar Uma vez definida a rea de negcios estes problemas pode ser a implementa- que estamos modelando, a lista de fatos o do modelo dimensional em um banco a serem utilizados responde a questo: de dados relacional e, aps isto, utiliz-lo como fonte para carga posterior de subPasso Perguntas a serem feitas para o usurio conjuntos de dados nos cubos. Esta abor1 O que estamos avaliando? dagem muito utilizada em empresas que 2 Como sero avaliados ou analisados? querem executar anlises em subconjuntos Qual o nvel mais baixo de detalhe das 3 informaes? de um grande conjunto de dados armazeComo se espera agrupar ou sumariar as nados em um data warehouse. Quando 4 informaes? esta abordagem implementada, o data

F1

O que estamos avaliando?. Estes fatos so os nmeros com os quais o usurio lida. Para exemplificar todo o processo de modelagem, utilizaremos um modelo para a rea comercial. Nosso usurio pode ser um gerente comercial de uma rede de lojas que tem por necessidade avaliar, por exemplo, a quantidade de itens vendidos, o valor de venda, o custo de cada um dos itens e a margem produzida. Note que estes valores devem ser trazidos dos sistemas transacionais onde mantida cada uma destas mtricas. Nem sempre as mtricas so originadas em um s sistema. Por esta razo, necessrio bastante cuidado ao se definir os processos que faro extrao, transformao e carga (ETL) destes valores, dos sistemas transacionais para o data warehouse. Em nosso exemplo da rea comercial, o gestor quer analisar tambm, alm das mtricas realizadas, os valores que haviam sido planejados (devem ser trazidos provavelmente de um sistema de planejamento e oramento), bem como valores calculados do planejado sobre o realizado. Algumas das mtricas podero ser calculadas durante o processo de extrao, transformao e carga e sero armazenadas no data warehouse j calculadas ou ento podero ser calculadas diretamente, em tempo de consulta, pelas ferramentas OLAP. Nesta etapa da modelagem, todas as mtricas (calculadas ou trazidas da base transacional) sero tratadas da mesma forma. Assim, em nosso exemplo, as mtricas ou fatos que este usurio necessita avaliar so: Valor da venda realizado; Valor da venda previsto; Quantidade de itens realizada; Quantidade de itens prevista; Preo mdio de venda; Custo mdio; Margem de venda; % de variao entre o realizado e o planejado.
Elementos a serem definidos no modelo Fatos ou mtricas (sempre um valor numrico). Dimenses de negcios relacionadas s mtricas. Granularidade das informaes em cada dimenso. Hierarquia de agrupamento das informaes em cada dimenso.

T1

43

sql13.indb 43

20/8/2004 19:23:06

odelagem de Data Warehouses e Data Marts Parte 1


F2

Data warehouse implementado em base relacional, acessado por ferramenta OLAP

F3

mos querendo identificar, ao mesmo tempo que ele vai nos informando suas necessidades de anlise das informaes. Em nosso exemplo, as dimenses de negcio a serem implementadas (conforme necessidades especificadas pelo usurio) sero: Dimenso Tempo: que indica os perodos de tempo para a anlise; Dimenso Produto: que indica quais produtos esto relacionados com as mtricas; Dimenso Geografia: que indica a regio geogrfica onde se encontram as lojas que efetuam as vendas.

podemos comear pela dimenso Tempo. Podemos questionar o usurio da seguinte forma: Qual o nvel de detalhe desejado? Faz sentido avaliar a mtrica quantidade vendida por dia?. Assim, para cada uma das mtricas definidas, vamos identificar qual o nvel mais baixo de detalhe que ser armazenado no data warehouse. Se, para a dimenso Tempo o nvel mais baixo de detalhe for dia, ento todas as mtricas devero ser obtidas com valores por dia. Para o nosso exemplo consideraremos o nvel de granularidade mais baixo como sendo: Dia: para a dimenso Tempo; Item de produto: para a dimenso Produto; Loja: para a dimenso Geografia. Assim, os processos de ETL que iro trazer as informaes dos sistemas transacionais para o data warehouse devem fazlo no nvel mais baixo de granularidade especificado para cada uma das dimenses. Desta forma, para a mtrica valor da venda devemos trazer o valor de venda realizado para cada item de produto, em cada dia e em cada loja. A Tabela 2 mostra um subconjunto das informaes necessrias para se preparar o data warehouse do nosso exemplo. Note que apesar do usurio desejar um determinado nvel de granularidade, importante saber se a informao est disponvel neste nvel de detalhe nos sistemas transacionais. Por exemplo, de nada adianta o usurio querer analisar as informaes de vendas dirias se os sistemas transacionais no tm estas informaes disponveis. Como mostrado na Tabela 2, ser preparada uma linha para cada loja, em cada dia com as vendas de cada item de produto e os valores somados ou calculados para cada mtrica. Por exemplo, na primeira linha temos, para o dia 5 de janeiro de 2004, do produto Lpis n 2 Faver Carel, na loja Loja
... ... ... ... ... ... ... ... ...

Agora temos que verificar se cada mtrica se relaciona com todas as dimenses definidas, j que cada conjunto de mtricas Alternativa de implementao com data warehouse em base reladeve ser analisado atravs cional e criao de data marts em banco multidimensional (cubos) do mesmo conjunto de dimenses. Para isto, podemos perguntar se Passo 2 Definindo as dimencada mtrica pode ser analisada ao longo de ses de negcios Aps termos definido as mtricas que cada dimenso, por exemplo: Faz sentido sero armazenadas no data warehouse/ analisar o valor das vendas por produto? E data mart, passamos a definir cada uma das por loja? E ao longo do tempo?. dimenses relacionadas s mtricas. Nesta etapa vamos perguntar ao usurio Como Passo 3 Definindo a granularias mtricas sero analisadas?, ou seja, sob dade das informaes em cada quais dimenses de negcio avaliaremos os dimenso Uma vez definidas as dimenses de nefatos? Por exemplo, cada uma das mtricas precisa ser analisada ao longo do tempo. gcio atravs das quais as mtricas sero Isto significa analisar a quantidade de itens analisadas, importante saber qual o nvel vendidos por ms, ou talvez at mesmo de detalhe, ou granularidade, mais baixo por dia. Poderemos tambm comparar que ser avaliado. Em nosso exemplo, perodos de vendas anaQuantidade Preo mdio Valor da Produto (Item) Geografia (Loja) lisando, por exemplo, a Tempo (Dia) de itens de venda (R$) venda (R$) Lpis n 2 Faver Carel Loja 04 78,00 65 1,20 quantidade de itens ven- 05/01/2004 Lpis n 2 Faver Carel Loja 06 150,00 125 1,20 didos no ltimo ms em 05/01/2004 Caneta Clic azul - fina Loja 04 117,60 84 1,40 comparao com o mes- 05/01/2004 Caneta Clic vermelha - fina Loja 04 39,20 28 1,40 mo ms no ano anterior. 05/01/2004 ... ... ... ... ... ... Atravs de sugestes e 23/03/2004 Caneta Clic azul - fina Loja 06 123,00 82 1,50 exemplos, vamos dando 23/03/2004 Bloco recibo Jordel Loja 12 132,50 53 2,50 dicas para que o usu- ... ... ... ... ... ... rio entenda o que esta- Exemplo de valores a serem carregados no data warehouse, de acordo com o nvel de granularidade escolhido.

T2

44

sql13.indb 44

20/8/2004 19:23:08

SQL Magazine

04, o valor total das vendas, a quantidade total de itens vendidos e assim sucessivamente para as outras mtricas.
Passo 4 Definindo a hierarquia de agrupamento de informaes Os dados estaro armazenados no data warehouse no nvel de detalhe estabelecido, porm, normalmente o usurio desejar analisar agrupamentos destas informaes como: Qual o total de canetas vendidas, nas lojas do estado de So Paulo, no ltimo semestre?. Esta pergunta j indica que deveremos nos preocupar com o agrupamento, ou sumariao das informaes armazenadas no data warehouse. Para isto, necessrio ento definir quais as possibilidades de agrupamento das informaes que o usurio deseja, especificando a hierarquia destes agrupamentos em cada uma das dimenses de negcio. Uma hierarquia que parece natural em nosso exemplo a que se apresenta na dimenso tempo. Meses normalmente so agrupados em bimestres ou trimestres, que por sua vez so agrupados em semestres e em anos. Apesar de ser natural, importante saber o que o usurio necessita j que alguns modelos de negcio requerem agrupamentos temporais diferentes e mesmo para uma hierarquia to natural quanto esta, ainda assim necessrio modelar o data warehouse para que seja possvel efetuar este tipo de agrupamento. Em nosso

exemplo, vamos considerar as seguintes hierarquias: Dimenso Tempo: dia ms semestre ano; Dimenso Produto: item de produto linha de produto categoria; Dimenso Geografia: loja cidade estado regio.
A viso lgica do data warehouse Com estas informaes em mos, podemos iniciar a modelagem do data warehouse/data mart, partindo de uma viso lgica baseada nas informaes obtidas com os usurios. Uma forma de representao bastante simples, porm muito eficaz a apresentada na Figura 4. Com este diagrama, possvel discutir diretamente com o usurio e validar as informaes obtidas. At o momento ainda no iniciamos realmente a modelagem da base de dados que ir conter o data warehouse, porm, todas as atividades realizadas at agora so de extrema importncia para entender o modelo de negcios que iremos representar. importante envolver os usurios finais na validao da viso que obtivemos at este ponto pois, como em todos os tipos de sistemas, qualquer erro pode ser corrigido neste momento ainda com um custo muito baixo. Na segunda parte deste artigo iremos discutir os dois esquemas mais utilizados na modelagem dimensional de data waF4

rehouses e data marts: o Star Schema e o Snowflake Schema com suas principais variaes, dando continuidade ao exemplo aqui analisado.
S

Comente essa matria em: www.sqlmagazine.com.br/sql13


R

Isabel C. Italiano, Joo E. Ferreira, Osvaldo K. Takai Aspectos conceituais em data warehouse Relatrio tcnico RT-MAC-2001-08 Departamento de Cincia da Computao Instituto de Matemtica e Estatstica Universidade de So Paulo, 2001. C. Adamson, M. Venerable Data Warehouse Design Solutions John Wiley & Sons, 1998. Carlos Barbieri BI Business Intelligence Axcel Books do Brasil Editora, 2001.
A

Isabel Cristina Italiano Gerente de Business Intelligence da Consist, com 20 anos de experincia em tecnologia da informao. Mestre em Cincia da Computao pelo Instituto de Matemtica e Estatstica da USP e doutoranda em Computao pela Escola Politcnica da USP, ambos com rea de concentrao em Bancos de Dados e Data Warehouse. Professora em cursos de graduao e ps-graduao, nas reas de bancos de dados, data warehouse e business intelligence. Luiz Antonio Esteves Diretor da LT Consultoria e Tecnologia, atuando h mais de 25 anos na rea de tecnologia da informao, em atividades relacionadas a desenvolvimento de software, consultoria e planejamento em bancos de dados e sistemas de suporte deciso. Graduado em Engenharia de Produo, Mestre em Management Engineering pelo Rensselaer Polytechnic Institute-USA. Professor e palestrante em Data Warehousing / Business Intelligence.

Representao das informaes a serem modeladas no data warehouse/data mart.

45

sql13.indb 45

20/8/2004 19:23:10

S
M
46
sql13.indb 46

QL Server 2005
e agora DBA, o que mudou?
Paula Silva

uitos de ns estamos ansiosos para saber o que vem por a na nova verso do SQL Server, o SQL Server 2005 (conhecido como Yukon). E certamente viro grandes mudanas. A Microsoft define a chegada da nova verso como a quarta onda de banco de dados, caracterizada por melhorias de trace e debugging, melhor aproveitamento das potencialidades do hardware e avanos na auto-configurao do software de forma a facilitar o trabalho dos DBAs. Viajando no tempo um pouco, lembramos que o SQL Server 6.0 foi a primeira verso lanada somente pela Microsoft. Dez meses depois, a companhia anunciava a edio 6.5, cujos principais ajustes eram a integrao do DTC (o coordenador de transaes distribudas) e novas caractersticas de replicao do banco. Na verso 7.0, o SQL Server foi totalmente reescrito. Os devices foram substitudos pelos filegroups; o processador de queries tambm sofreu modificaes na sua arquitetura de forma a melhorar o tempo de reposta e a grande novidade foi a incluso do Analysis Services (antes OLAP) no mesmo pacote que continha o servidor de banco de dados, facilitando, assim, o uso de consultas analticas pelo usurio. Com o SQL Server 2000, o Analysis Services passou a ganhar ferramentas de data mining e uma melhor granularidade de segurana para o acesso aos cubos. Alguns utilitrios ganharam nova cara e passaram a ser executados de forma online. Surgiram tambm os ndices indexados e as tabelas particionadas que usavam todo o potencial do nosso ambiente de servidores, alm de XML nativo. Focado em misses crticas, o SQL Server 2000 teve tambm ajustes no Cluster e a introduo do conceito de Log Shipping como uma outra alternativa de alta disponibilidade para o usurio final em ambientes de misso crtica. Nas prximas pginas, vamos ver o que nos espera nesta nova verso do SQL Server, a 2005, que chamaremos por enquanto de Yukon.
Alteraes no Sistema O SQL Server 2005 poder suportar mais de 50 instncias no mesmo servidor (a verso 2000 suportava at 16 instncias). Todos os servios Analysis services, FullText Search, Notification Services, Reporting Services, SQL Server Agent, Service Broker

tero verses 32 bit e 64 bit. A maior parte das configuraes ser dinmica e no ser necessrio efetuar uma parada e reinicializao do servidor aps a alterao de configuraes como aumento de memria suportada. Com um hardware apropriado e Windows Server 2003, voc poder adicionar memria em um sistema que estar rodando e o SQL Server ir reconhecer esta mudana imediatamente e fazer uso dela. Apenas a configurao de I/O affinity mask at agora permanecer esttica. Alm dos acessos via TCP/IP, Named Pipes e shared Memory, teremos acesso via HTTP onde o prprio SQL Server escutar as requisies feitas via HTTP. O DBA ir configurar quais usurios, stored procedures ou databases podero utilizar este tipo de acesso. Ou seja, ser possvel gerar requisies e comunicar-se como se voc estivesse trabalhando com um Web Service. Em termos de monitorao do servidor, novas tabelas, chamadas virtuais, refletiro o estado interno do banco de dados. Sero pelo menos 25 tabelas virtuais para ajudar os DBAs a monitorarem o servidor e diagnosticar problemas. A tabela sys waits um bom exemplo. Ela permite verificar os locks que estiverem ocorrendo no SQL Server 2000 esse processo feito por meio da anlise das tabelas sys processes e sys lock info. Com relao ao SQL Server Trace, seu engine foi alterado para que o nvel de granularidade dos eventos capturados fosse menor e para que fosse executado de forma mais rpida e com impacto mnimo no servidor. Com isso, o DBA poder executar os traces mais freqentemente. Novos eventos sero inclusos e tambm haver um filtro de segurana para capturar eventos baseados em caracteres como, no omitir nada que tenha o string password. Alguns eventos tambm podero ser monitorados, como a execuo de comandos do tipo DML e DDL. Alm disso, o Profiler agora estendeu seu uso ao Analysis Services, mostrando o plano de execuo de eventos. Tambm suportar a execuo da anlise em mais de um processador. Com relao a utilitrios de performance, os eventos que so mostrados via showplan tambm podero produzir outputs em XML para uso interno dos utilitrios ou outro tipo de consumo.

20/8/2004 19:23:10

SQL Magazine

Gerenciamento Em termos de gerenciamento, foi criado um novo conjunto de utilitrios integrados para suportar todos os produtos que fazem parte do SQL Server. Por exemplo, para facilitar o trabalho dos desenvolvedores, ser possvel integrar o Visual Source Safe e muitos gerenciadores de projetos que fazem uso das capacidades do Visual Studio. O catlogo de sistema do banco tambm sofreu grandes alteraes. Isso foi feito para que as atualizaes fossem realizadas de forma rpida e segura evitando acesso direto s tabelas de sistema. Vrios filtros de segurana sero aplicados ao catlogo, oferecendo melhor controle sobre o acesso s informaes. Alguns objetos de sistema que ficavam no master (como os procedimentos de replicao), agora estaro em um banco separado, chamado resource database. Todos os objetos do sistema tambm faro parte do schema sys. As views de catlogo fornecero todas as informaes relacionadas aos metadados e tero total compatibilidade com as tabelas de sistema e com as schema views do SQL Server 2000. Programabilidade A grande novidade que poderemos escrever funes, stored procedures e data types em CLR, incluindo Visual Basic .NET e C#. As stored procedures escritas em CLR podero ser evocadas como se estivessem escritas em transact-sql. Tudo isso sem perder a funcionalidade dos objetos. Tambm haver a incluso dos synonym, permitindo que mudemos nomes ou localizaes de objetos, sem termos a necessidade de referenci-los pelas quatro partes do nome do objeto. As funes de agregao e estatsticas tambm podero ser definidas como User functions, o que possibilitar seu armazenamento no database. Ainda sero introduzidos MARs (multiple active results sets) que nos do habilidade de ter mltiplas consultas rodando dentro de uma nica conexo. Por exemplo, voc poder ter um conjunto de resultados e, a partir deles, gerar uma consulta para cada um dos resultados obtidos. Data types No Yukon, as linhas podero exceder o

O Index Tuning Wizard no ser aplicado tamanho das pginas. Teremos tambm os data types Varchar(max), Nvarchar(max), somente para ndices e views indexadas. Varbinary(max) que podem armazenar Ele deu espao para o Database Tuning mais de 8 mil caracteres. Advisor, podendo ser aplicado em tabelas Finalmente, teremos o tipo data separa- particionadas e incluindo anlises What do da hora no data type date/time, alm If para as alteraes que ele sugerir, mostrando quais sero de um novo tipo de os resultados (ganhos e data type, o XML, A disponibilidade de ndices passar perdas) das alteraes o que facilitar o trabalho de comu- a ser feita online, o que permite criar, aplicadas. reorganizar ou apagar os ndices nas Ainda falando de alta nicao com Web tabelas ao mesmo tempo em que estamos Services. Os UDTs inserindo, atualizando ou apagando um disponibilidade, temos o Database Mirroring (User Defined Data dado nelas. como uma nova opo Types) podero ser de contingncia. Ele construdos usando funciona como uma cpia para ser usada CLR. em caso de falha, onde o log de uma base de dados movido e aplicado em outra base. Disponibilidade Outra novidade que o Fast Recovery Voc deve estar pensando Ah, mas j existe estar disponvel a partir da nova verso. outra tecnologia com esta finalidade. O Log Toda vez que o SQL Server reinicializa, Shipping, e verdade. Esse recurso utiliza necessrio verificar se todas as transaes um backup de log de uma base de dados e esto consistentes. Este processo chamado o move para um site remoto e depois aplica de recovery compreende duas fases. A o mesmo em outra base. O que o Database primeira, a redo, comea em algum ponto Mirroring faz aplicar os registros de log do tempo e traz o banco de dados para ao sistema enquanto o sistema est no ar. um estado consistente at o ponto em que O tempo tambm de colocar esta cpia na o sistema saiu, por algum motivo, do ar. rede caso ocorra algum problema mniA segunda, chamada de undo, desfaz as mo e pode ser feito de forma manual ou transaes no efetivadas. No SQL Server automtica com nenhuma perda de dados. 2000, o banco ficava disponvel somente Os clientes tambm so redirecionados de aps a fase dois ter sido finalizada. No forma transparente para o novo servidor. Yukon, o banco estar disponvel quando a No h compartilhamento de storage e primeira etapa (redo) for finalizada e dessa o impacto no tempo de resposta da apliforma, o database ser disponibilizado para cao mnimo. O servidor principal o servidor que hospeda a instncia utilizada os usurios mais rapidamente. Outra nova caracterstica a Snapshot no momento corrente. por ele que os Isolation, um novo tipo de nvel de isolao usurios se conectam ao database e efetude transao que aumenta a disponibilidade am atualizaes nos dados. O servidor que dos dados para aplicaes que efetuam a armazena a instncia que mantm a cpia leitura. Ela faz com que usurios que este- dos dados chamado de mirror Server. Em jam escrevendo no banco no bloqueiem caso de falha do servidor principal, o mirror assume o seu lugar. Este processo pode ser usurios que esto lendo e vice-versa. A disponibilidade de ndices passar a efetuado de forma automtica. Neste caso, ser feita online, o que permite criar, reor- teremos um terceiro servidor, o Witness ganizar ou apagar os ndices nas tabelas ao que monitora o status do principal e do mesmo tempo em que estamos inserindo, mirror. Uma outra caracterstica, que atualizando ou apagando um dado nelas. o redirecionamento feito pelo servio de Durante esta operao, os ndices velhos MDAC. Veja a Figura 1 com a arquitetura so mantidos enquanto os novos so cria- resumida do Database Mirroring. dos ou atualizados. Ser possvel tambm desabilitar um ndice. Ou seja, poderemos Manuteno e Operaes dar stop e, ento, reconstru-lo mais Outra novidade que teremos uma conetarde deixando-o online novamente de xo dedicada para os DBAs, ou seja, mesmo forma rpida. quando o nmero mximo de conexes

47

sql13.indb 47

20/8/2004 19:23:11

QL Server 2005: e agora DBA, o que mudou?


F1

um servidor SQL Server. Com relao replicao Merge, os especialistas apostam em um tempo de sincronizao mais rpido e tambm ser possvel sincronizar uma replicao por meio de um Web Server. Haver ainda a possibilidade de inicializar uma subscrio transacional a partir de um backup. Monitorar um ambiente de replicao tambm ser mais fcil graas interface de administrao simplificada que possibilita gerenciar os avisos de performances, alguns deles antes que eles se tornem crticos.
Segurana No item segurana, uma das novidades do SQL Server 2005 foi a incluso da poltica de expirao e de tamanho das senhas, forando os usurios a serem mais cautelosos com seu acesso ao banco, tudo isso integrado com o Windows 2003. Alm disso, passa a ser possvel separar os usurios por schema, tornando mais fcil o gerenciamento. Analysis Services O Analysis Services mais um servio que entrou na categoria de misso crtica, tendo agora suporte a cluster. Haver tambm suporte a anlise de consultas executadas no Analysis Services e teremos a possibilidade de ver consultas MDX (expresses utilizadas para monitorar banco de dados multidimensionais) que ele constri atrs de uma tabela dinmica. O Yukon tambm traz grandes novidades relacionadas a Data Mining. Alm dos seus algoritmos de Cluster e rvore de Deciso que j estavam presentes na verso 2000, teremos time series, sequence clustering, association, naive bayes e redes neurais. Houve um grande investimento para facilitar a visualizao de todos os resultados destes algoritmos pelo usurio. Outro fato muito interessante que toda a soluo de Data Mining est intimamente ligada com o DTS, OLAP e o SQL Reporting Services. Reporting Services Introduzido no SQL Server 2000, o SQL Reporting Services no teve como esperar at o lanamento do Yukon devido ao grande nmero de usurios que testaram o produto na verso beta. O SQL Reporting

Arquitetura resumida do Database Mirroring.

para aquele servidor for atingido, sempre ser possvel que o DBA acesse o servidor para fazer seu trabalho. O DBA no ter que matar uma conexo para acessar o banco nestas situaes. Imagine agora que voc tenha um banco de 10 terabytes distribudos em muitos discos e voc queira substituir um dos discos. Com o novo SQL Server 2005, voc no precisar deixar indisponvel todo o banco de dados para fazer isto, mas apenas o disco a ser trocado. Esta caracterstica chamada de Fine Grained Online Repairs e a menor unidade de disponibilidade o Filegroup. Tambm ser possvel efetuar o backup de dados e log concorrentemente. Somente um backup de dados poder ser feito de cada vez, mas os backups de logs e os filegroups podero ser feitos concorrentemente. O backup e o restore agora incluem suporte ao Full text. Vamos falar sobre particionamento. Esta caracterstica do Yukon permite quebrar um banco de dados em pores menores, onde a menor granularidade a linha. Esta caracterstica melhora a performance e transparente para a aplicao. Todas as parties rodam em um nico banco de dados SQL Server em uma nica instncia. As parties podem ser criadas ou apagadas sem perdermos a disponibilidade da tabela. Um bom exemplo deste uso seria o cenrio onde temos um grande banco de dados contendo todas as relaes de vendas da empresa, separadas por trimestre. Poderamos, ento, colocar as vendas mais recentes

no storage com mais performance e as mais antigas (dados histricos), em um storage mais barato.
Data Transformation Services (DTS) Quem no conhece as facilidades de transferncia de dados, execuo de pacotes e cubos que fazem parte do DTS agora tem mais motivos ainda para conhecer. O DTS est de cara nova e ainda mais poderoso, sendo considerado uma ferramenta de ETL completa, prtica e totalmente integrado com o .NET. Distribuio de processamento de tarefas entre servidores, visual debugging, controle de fluxo de dados e um maior nmero de transformaes j pr-definidos e disponveis para o usurio, tudo isso faz parte da nova verso do DTS Replicao Em termos de gerenciamento, tambm podemos dizer que agora alterar a coluna de uma tabela que est sendo replicada ficou bem mais simples. No SQL Server 2000, ns temos que utilizar uma stored procedure especfica para adicionar ou remover uma coluna em uma tabela que est sendo replicada. Agora, com os Server Events, basta alterar a tabela como se esta fosse uma tabela comum ao banco de dados e voc ser notificado desta alterao. Outra caracterstica que um servidor Oracle poder publicar seus dados em um ambiente de replicao onde o distribuidor

48

sql13.indb 48

20/8/2004 19:23:12

SQL Magazine

Services uma plataforma para criao de relatrios que suporta todo o ciclo de vida - desde a criao do relatrio, gerenciamento e entrega. O SQL Reporting Services totalmente integrado com o Microsoft Office System, DTS e Analysis Services e utiliza o Visual Studio .NET para o desenvolvimento de relatrios. Recupera dados tanto de fontes OTP (SQL Server, Oracle e etc.) ou de bases OLAP, sendo uma forma rpida e simples de criao de relatrios estticos ou interativos. O usurio pode acessar os relatrios pela Internet / Intranet da empresa e exportar para o formato que mais o agradar (TIFF, PDF, XLS, XML, etc). A exportao de relatrios nativa do software. possvel tambm subscrever estes relatrios para que eles sejam entregues por e-mail ou

colocados em um file share para serem acessados posteriormente.


Concluso Com todo este conjunto de recursos, o Yukon umas das releases mais inovadoras do SQL Server. Todas as novas caractersticas tm como finalidade tornar o banco de dados cada vez mais acessvel para os usurios, aprimorando os recursos de gerenciamento para os administradores. A grande quantidade de recursos disponveis e a facilidade de uso fazem do Yukon o primeiro banco de dados de uma nova gerao. Espero que voc tenha gostado deste pequeno tour que fizemos nas principais caractersticas do produto, mas caso voc queira saber mais, acesse o site www.microsoft.com/sql/yukon/productinfo/ e descubra mais detalhes do que vem por a!

Comente essa matria em: www.sqlmagazine.com.br/sql13

Paula Silva (paulasil@microsoft.com) formada em matemtica pela USP e possui 11 anos de experincia na rea de banco de dados, tendo exercido a funo de DBA no mercado financeiro, alm de consultorias no ramo. Praticante de volei e jogging e amante da literatura relacionada psicologia, Paula uma das responsveis pelo SQL Server na Microsoft Brasil.

49

sql13.indb 49

20/8/2004 19:23:15

R
50

esenha
Reinaldo Viana
eu ltimo trabalho nesta coluna ocorreu na edio 7. Naquela ocasio, comentei sobre um livro utilizado bastante em minhas aulas de banco de dados e agora estou tendo a oportunidade de escrever uma resenha para Dominando o Oracle 9i: Modelagem e Desenvolvimento. Vrios fatos justificam minha motivao: Tive contato com o trabalho da autora, na ocasio da edio de seus dois artigos sobre funes analticas no Oracle, publicados nas edies 8 e 9 desta revista; O SGBD Oracle domina o mercado em diversos segmentos; Ministro aulas de banco de dados e considero importante acompanhar e avaliar publicaes relacionadas ao tema. Ento segui o conselho do Fernando Anselmo que na edio 10 incentivava as pessoas a tomarem coragem para enviar e-mail para o autor do livro. Entrei em contato com a autora e tirei algumas dvidas sobre PL/SQL e modelagem de dados. Esses esclarecimentos foram bastante teis para o desenvolvimento desta resenha. Agora vamos ao livro. Ele dividido em trs grupos principais: Modelagem de dados: este grupo descreve os principais conceitos utilizados em banco de dados, inclusive explicando o mecanismo para acesso a banco de dados via web. O captulo 02 aborda o assunto modelagem de dados, descrevendo e exemplificando os componentes do modelo de entidades e relacionamentos, alm de construir um projeto utilizando a ferramenta

Dominando o Oracle 9i: Modelagem e Desenvolvimento


Autora: Damaris Fanderuff Ano: 2003 ISBN: 85-346-1513-6 Pginas: 440 Preo: R$ 104,00 Editora: Pearson Education do Brasil Site: www.pearsonedbrasil.com

CASE Oracle Designer 6i; Desenvolvimento SQL e PL/SQL: atravs da ferramenta SQL * Plus, so estudados comandos para criao e manipulao de tabelas e outros objetos de banco de dados, criao de consultas bsicas e avanadas, entre outras. So mostrados tambm neste grupo, as novidades da vero 9i. Os assuntos referentes ao PL/SQL tambm so apresentados e exemplificados; Administrao bsica de BD no Oracle: so quatro captulos (30 a 33) dedicados ao assunto, abordando as ferramentas do Oracle para tarefas como criao de vises e ndices, backup e recover, e o acesso ao Oracle a partir de outras ferramentas. Um ponto positivo do livro o fato de todos os exerccios terem suas respostas publicadas na sua parte final. Isto bastante interessante principalmente se considerarmos que em diversos estudos realizados em outras publicaes, na tentativa de resolver os exerccios propostos, temos uma sensao, no mnimo, no agradvel quando no conseguimos resolver algum exerccio proposto e no termos onde consultar a resposta correta. Segundo a autora, este livro referncia basicamente para dois tipos de pblico: aqueles que conhecem muito pouco ou nada sobre Oracle, e desejam obter um conhecimento gradativo em SQL, PL/SQL ou modelagem de dados; aqueles que j conhecem qualquer um dos assuntos, e desejam usar o livro como guia de referncia/consulta rpida.

sql13.indb 50

20/8/2004 19:23:22

SQL - Magazine

51

sql13.indb 51

20/8/2004 19:23:24

-o Store Procedures Parte Is t o d a v e z q u e p a s s a s e u e - m a i l p a r a a l g u m , lvez voc n tenha se dado con ta, ma PTaostgreSQL

a c a b a f a z e n d o p ro p a g a n d a d o p ro v e d o r. P i o r, a i n d a p a g a p a r a f a z e r i s s o . S e m c o n t a r o inconveniente de ter que ficar inventando apelidos, abreviaturas, codinomes para o seu e-mail. No seria muito mais fcil se os e-mails tivessem o nome das pessoas? No s mais fcil, como muito mais seguro. Basta ter um e-mail na LocaWeb. O Locamail oferece e-mails seguros contra vrus, SPAMs, tem suporte 24 horas e a melhor e mais premiada infra-estrutura do Pas. Hospede seu e-mail na LocaWeb. Acesse j www.locaweb.com.br
PORQUE HOSPEDAGEM A COISA MAIS IMPORTANTE PARA O SEU SITE.

MARCELO@IG, TEREZA@TERRA, PEDRO@UOL, LAURA@HOTMAIL. EST MAIS DO QUE NA HORA DO SEU E-MAIL LEVAR O SEU NOME@SOBRENOME.

52

sql13.indb 52
DUEZT REVISTA

20/8/2004 19:23:29