Você está na página 1de 537

VIDAL DE CARVALHO ANA AZEVEDO ANTNIO ABREU

BASES DADOS
DE COM

MICROSOFT
ACCESS 2007

Portugal/2008

Microsoft is a registered trademark of Microsoft Corporation in the United States and/or other countries and is used by Centro Atlntico under license from owner. Bases de Dados com Microsoft Access 2007 is an independent publication not affiliated with Microsoft Corporation.

Reservados todos os direitos por Centro Atlntico, Lda.


Qualquer reproduo, incluindo fotocpia, s pode ser feita com autorizao expressa dos editores da obra.

BASES DE DADOS COM MICROSOFT ACCESS 2007


Coleco: Tecnologias Autores:

Antnio Joo Vidal de Carvalho Ana Isabel Rojo Loureno Azevedo Antnio Jos Abreu da Silva

Direco grfica: Centro Atlntico Reviso tcnica: Vtor Emanuel Pereira Capa: Paulo Buchinho Centro Atlntico, Lda., 2008 Ap. 413 4760-056 V. N. Famalico Portugal Tel. 808 20 22 21

geral@centroatlantico.pt www.centroatlantico.pt Impresso e acabamento: Inova 1 edio: Janeiro de 2008 ISBN: 978-989-615-050-1 Depsito legal: /08

Marcas registadas: Todos os termos mencionados neste livro conhecidos como sendo marcas registadas de produtos e servios foram apropriadamente capitalizados. A utilizao de um termo neste livro no deve ser encarada como afectando a validade de alguma marca registada de produto ou servio. O Editor e os Autores no se responsabilizam por possveis danos morais ou fsicos causados pelas instrues contidas no livro nem por endereos Internet que no correspondam s Home-Pages pretendidas.

ndice

PARTE I I.1 OS SISTEMAS DE INFORMAO E AS ORGANIZAES ....... 17


1.1 Caractersticas de um Sistema .......................................................................... 18 1.2 A organizao vista como um Sistema .............................................................. 19 1.3 A Informao ..................................................................................................... 19
1.3.1 Caractersticas da informao ........................................................................... 20 1.3.2 A Informao nas organizaes......................................................................... 20 1.3.3 Tipos de informao nas organizaes ............................................................. 21

1.4 Os Sistemas de Informao Organizacionais .................................................... 22


1.4.1 Evoluo histrica dos Sistemas de Informao ............................................... 23 1.4.2 Planeamento e desenvolvimento de Sistemas de Informao .......................... 25 1.4.3 A introduo dos Sistemas de Informao nas organizaes .......................... 28 TERMOS CHAVE ................................................................................................................. 30 PARA REVER .................................................................................................................. 31 PARA INVESTIGAR ........................................................................................................ 31

I.2 AS BASES DE DADOS ..................................................... 33


2.1 As razes histricas: Ficheiros e Sistemas de Ficheiros .................................... 34
2.1.1 Gesto de dados nos Sistemas de Ficheiros..................................................... 35 2.1.2 Dependncia dados-aplicaes ......................................................................... 38 2.1.3 Redundncias nos dados .................................................................................. 38

2.2 Sistemas de Bases de Dados ............................................................................ 39


2.2.1 Caractersticas de um Sistema de Bases de Dados .......................................... 40 2.2.2 Intervenientes num Sistema de Bases de Dados .............................................. 41 2.2.3 As funes do Sistema de Gesto de Bases de Dados .................................... 42 2.2.4 Arquitectura do Sistema de Gesto de Bases de Dados e Independncia dos Dados ......................................................................................................................... 44 2.2.5 Linguagens fornecidas pelo SGBD .................................................................... 46 2.2.6 Classificao dos SGBDs ................................................................................. 48

BASES DE DADOS COM MICROSOFT ACCESS 2007

2.3 Modelos de Bases de Dados ............................................................................ 48


2.3.1 Modelo Hierrquico ........................................................................................... 49 2.3.2 Modelo em Rede ............................................................................................... 51 2.3.3 O Modelo Relacional ......................................................................................... 53 2.3.4 Novos modelos: Modelos Orientados a Objectos e Extenses ao Modelo Relacional .................................................................................................................. 54

2.4 Outras Aplicaes das Base de Dados ............................................................. 59


2.4.1 Data Warehouses ............................................................................................. 59 2.4.2 OLAPs .............................................................................................................. 62 2.4.3 Data Mining ...................................................................................................... 63 2.4.4 Integrao com a Web ...................................................................................... 65 TERMOS CHAVE ................................................................................................................ 67 PARA REVER ................................................................................................................. 68 PARA INVESTIGAR ........................................................................................................ 69

I.3 O MODELO RELACIONAL DE BASES DE DADOS ................ 71


3.1 Terminologia bsica .......................................................................................... 72 3.2 Atributos Chave................................................................................................. 75
3.2.1 Super-Chave ..................................................................................................... 75 3.2.2 Chave Candidata .............................................................................................. 75 3.2.3 Chave Primria ................................................................................................. 76 3.2.4 Chave Estrangeira ............................................................................................ 76 3.2.5 Um exemplo ...................................................................................................... 77 3.3.1 Integridade de Entidade .................................................................................... 79 3.3.2 Integridade Referencial ..................................................................................... 79

3.3 Regras de Integridade ....................................................................................... 79

3.4 Operadores da lgebra Relacional ................................................................... 80


3.4.1 O Operador SELECT ........................................................................................ 81 3.4.2 O operador PROJECT ...................................................................................... 81 3.4.3 O operador PRODUCT ..................................................................................... 82 3.4.4 O operador UNION ........................................................................................... 84 3.4.5 O Operador DIFFERENCE ............................................................................... 85 3.4.6 O Operador INTERSECT .................................................................................. 85 3.4.7 O operador JOIN ............................................................................................... 86 3.4.8 O operador DIVIDE ........................................................................................... 87

3.5 SQL Uma linguagem de bases de dados relacionais ..................................... 88


3.5.1 Definio de dados ........................................................................................... 89 3.5.2 Insero e actualizao de dados ..................................................................... 92 3.5.3 Queries com SQL.............................................................................................. 94

NDICE

3.6 As regras de Codd ............................................................................................. 98


TERMOS CHAVE ............................................................................................................... 101 PARA REVER ................................................................................................................ 102 PARA INVESTIGAR ...................................................................................................... 109

I.4 MODELAO DE DADOS ............................................... 111


4.1 A importncia da modelao de dados ............................................................ 111 4.2 O modelo Entidade-Relacionamento (E-R) ...................................................... 112
4.2.1 Entidades e Atributos ....................................................................................... 113 4.2.2 Relacionamentos ............................................................................................. 115 4.2.3 Entidades fracas .............................................................................................. 123 4.2.4 Entidades compostas....................................................................................... 124 4.2.5 Uma comparao de notaes ........................................................................ 127

4.3 Desenvolvendo um Diagrama E-R................................................................... 128 4.4 Correspondncia entre o modelo E-R e o modelo relacional ........................... 133
TERMOS CHAVE ............................................................................................................... 136 PARA REVER ................................................................................................................ 137 PARA INVESTIGAR ...................................................................................................... 142

I.5 DEPENDNCIAS FUNCIONAIS E NORMALIZAO ............. 143


5.1 A Importncia da Normalizao ....................................................................... 145 5.2 Dependncias funcionais ................................................................................. 146 5.3 O processo de Normalizao ........................................................................... 147
5.3.1 Primeira Forma Normal .................................................................................... 149 5.3.2 Segunda Forma Normal ................................................................................... 151 5.3.3 Terceira Forma Normal .................................................................................... 152 5.3.4 Forma Normal de Boyce-Codd ........................................................................ 153 5.3.5 Multi-dependncia e Quarta Forma Normal ..................................................... 156 5.3.6 Dependncia de juno e Quinta Forma Normal ............................................. 157 TERMOS CHAVE ............................................................................................................... 160 PARA REVER ................................................................................................................ 161 PARA INVESTIGAR ...................................................................................................... 165

BASES DE DADOS COM MICROSOFT ACCESS 2007

PARTE II

II.1 O MICROSOFT ACCESS ................................................ 169


1.1 Caractersticas gerais ...................................................................................... 169 1.2 O Microsoft Access 2007................................................................................. 170

II.2 NOVIDADES DO MICROSOFT ACCESS 2007 ................... 173


2.1 Comear rapidamente a controlar as informaes .......................................... 173
2.1.1 Excelentes modelos para introduo ............................................................... 173 2.1.2 Criao rpida avanada utilizando o separador Criar .................................... 174 2.1.3 Criao rpida de tabelas com a vista Folha de Dados melhorada................. 175 2.1.4 Filtrar e classificar dados ................................................................................. 175 2.1.5 Campos com valores mltiplos ........................................................................ 176 2.1.6 Anexar documentos e arquivos Base de Dados ........................................... 177 2.1.7 Texto formatado em campos Memo ................................................................ 177 2.1.8 Calendrio automtico para seleco da data................................................. 177 2.1.9 Linha de total nas folhas de dados .................................................................. 178 2.1.10 Macros incorporadas ..................................................................................... 178 2.1.11 Dividir formulrios .......................................................................................... 178 2.1.12 Visualizador de Ajuda melhorado .................................................................. 179

2.2 Partilhar informaes controladas com outros utilizadores ............................. 179

2.2.1 Recolher dados usando o Outlook 2007.......................................................... 179 2.2.2 Colaborao na Web com o Windows SharePoint Services ........................... 180 2.2.3 Trabalhar off-line com as listas do Windows SharePoint Services .................. 180 2.2.4 Integrao com o fluxo de trabalho do Windows SharePoint Services ............ 181 2.2.5 Exportar para PDF e XPS ................................................................................ 181 2.2.6 Experincia melhorada de importao e exportao ....................................... 181 2.3.1 Edio dos modos Relatrio e Esquema ......................................................... 182 2.3.2 Painel de campos dos Relatrios .................................................................... 183 2.3.3 Informaes agrupadas em Relatrios ............................................................ 183 2.4.1 Segurana avanada ....................................................................................... 184 2.4.2 Auditoria de dados ........................................................................................... 185 2.4.3 Histrico da reviso ......................................................................................... 185 2.4.4 Configurao de permisso ............................................................................. 185 2.4.5 Reciclagem ...................................................................................................... 185

2.3 Criar e adaptar relatrios para responder s necessidades ............................ 182

2.4 Gerir e auditar informaes confidenciais ....................................................... 184

NDICE

II.3 A INTERFACE DO MICROSOFT ACCESS 2007 ................. 187


3.1 Interface de utilizador orientada a resultados...................................................187 3.2 O friso ..............................................................................................................188
3.2.1 Os separadores do friso ................................................................................... 188 3.2.2 Seces contextuais......................................................................................... 189

3.3 O Boto Microsoft Office ..................................................................................190 3.4 Barra de Ferramentas de Acesso Rpido ........................................................191 3.5 Painel de Navegao .......................................................................................192 3.6 Barra de Estado ...............................................................................................193

II.4 CRIAO DE UMA BASE DE DADOS COM O ACCESS 2007 195


4.1 Compreender as Bases de Dados do Access ..................................................195 4.2 Iniciar o Access 2007 .......................................................................................197 4.3 Alternativas para a criao de uma Base de Dados ........................................198
4.3.1 Criar uma Base de Dados utilizando um Modelo ............................................. 199 4.3.2 Criar uma Base de Dados vazia ....................................................................... 200 4.4.1 Gravar Bases de Dados num formato diferente ............................................... 201 4.4.2 Abrir uma Base de Dados ................................................................................ 202

4.4 Gravar e Abrir Base de Dados do Access ........................................................201

II.5 CONSTRUO DE TABELAS EFICIENTES ........................ 205


5.1 Opes para a criao de uma tabela .............................................................205 5.2 Criao de uma tabela com base num modelo predefinido .............................206 5.3 Criao de uma tabela por Insero de Dados ................................................206 5.4 Criao de uma tabela na vista de estrutura ....................................................207
5.4.1 Escolher tipos de dados ................................................................................... 208 5.4.2 Propriedades dos campos ................................................................................ 209 5.4.3 Campo chave primria ..................................................................................... 217 5.5.1 Criao de relacionamentos ............................................................................. 219 5.5.2 Integridade Referencial .................................................................................... 220 5.5.3 Tipos de relacionamentos ................................................................................ 221 5.5.4 Alterao da estrutura de relacionamentos ...................................................... 222 5.5.5 Navegao nos relacionamentos ..................................................................... 223

5.5 Relacionamentos entre tabelas ........................................................................218

10

BASES DE DADOS COM MICROSOFT ACCESS 2007

5.6 Manipulao da Folha de Dados: Formatar, ordenar, filtrar e procurar ........... 225

5.6.1 Navegao na Folha de Dados ....................................................................... 226 5.6.2 Formatao da Folha de Dados ...................................................................... 227 5.6.3 Rearranjar Colunas.......................................................................................... 227 5.6.4 Colunas escondidas ........................................................................................ 228 5.6.5 Ordenao ....................................................................................................... 229 5.6.6 Filtragem .......................................................................................................... 229 5.6.7 Pesquisa .......................................................................................................... 233 5.6.8 Imprimir a Folha de Dados............................................................................... 234 5.7.1 Importar dados................................................................................................. 236 5.7.2 Exportar dados ................................................................................................ 237

5.7 Importao e exportao de dados ................................................................. 235

5.8 Exerccio guiado .............................................................................................. 238

II.6 MANIPULAO DE DADOS COM CONSULTAS .................. 247


6.1 Tipos de consultas com o Access ................................................................... 247 6.2 Criao de uma consulta simples com o assistente ........................................ 248 6.3 Criao de uma consulta com a Vista de Estrutura ......................................... 250
6.3.1 Descrio da janela para a criao de uma consulta ...................................... 251 6.3.2 Caracterizao da grelha da consulta ............................................................. 252 6.3.3 Insero de campos nas consultas.................................................................. 252 6.3.4 Visualizar a consulta atravs da Folha de Dados ............................................ 254 6.3.5 Especificar o tipo de ordenao....................................................................... 254 6.3.6 Valores superiores ........................................................................................... 255

6.4 Definio de critrios em consultas ................................................................. 255 6.5 Criao de consultas com tabelas relacionadas ............................................. 257 6.6 Consultas com parmetros.............................................................................. 258 6.7 Criao de campos calculados........................................................................ 260 6.8 Consultas de Referncia Cruzada ................................................................... 265
6.8.1 Criao de uma consulta de referncia cruzada com o Assistente ................. 266 6.8.2 Criar uma consulta de referncia cruzada com a Vista de estrutura ............... 269 6.9.1 Impedir que o modo Desactivado bloqueie uma consulta ............................... 271 6.9.2 Consulta criar tabela ........................................................................................ 271 6.9.3 Consulta eliminao ........................................................................................ 273 6.9.4 Consulta acrescentar ....................................................................................... 275 6.9.5 Consulta actualizao ...................................................................................... 276

6.9 Consultas de Aco ........................................................................................ 270

NDICE

11

6.10 Consultas SQL ...............................................................................................278

6.10.1 Visualizao ou modificao de uma declarao SQL................................... 279 6.10.2 Consultas SQL especficas ............................................................................ 279 6.10.3 Utilizao de Subconsultas ............................................................................ 282

6.11 Exerccio guiado.............................................................................................282

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS .......... 289


7.1 Aplicao de formulrios ..................................................................................289 7.2 Opes para a criao de formulrios .............................................................290 7.3 Formulrio de Criao Rpida .........................................................................291 7.4 Formulrios usando o Assistente .....................................................................293
7.4.1 Criao de um novo formulrio com Assistente ............................................... 293

7.5 Formulrios em branco ....................................................................................294 7.6 Formulrios usando a Vista de Estrutura .........................................................295
7.6.1 Criao de um formulrio com a Vista de Estrutura ......................................... 296 7.7.1 Accionar as seces do formulrio ................................................................... 297 7.7.2 Alterar o tamanho de uma seco .................................................................... 298 7.7.3 Seleccionar as propriedades de uma seco ou do prprio formulrio ............ 298 7.8.1 Controlos dependentes, independentes e de clculo ....................................... 299 7.8.2 Inserir campos na rea do formulrio ............................................................... 300 7.8.3 Criar outros controlos ....................................................................................... 300 7.8.4 Criar controlos que calculem valores................................................................ 301 7.8.5 Criar controlos tipo etiqueta.............................................................................. 302 7.8.6 Alterar as propriedades de um controlo j existente ........................................ 303 7.8.7 Grupo de Opes ............................................................................................. 304 7.8.8 Caixa de Listagem e Caixa de Combinao..................................................... 307 7.8.9 Subformulrios ................................................................................................. 311 7.8.10 Clculos num formulrio ................................................................................. 313 7.8.11 Clculos num subformulrio ........................................................................... 314 7.8.12 Botes de comandos ...................................................................................... 317 7.8.13 Quebras de pgina ......................................................................................... 318 7.8.14 Moldura de objecto dependente e independente ........................................... 319

7.7 Seces do formulrio .....................................................................................297

7.8 Controlos num formulrio .................................................................................299

7.9 Tabelas Dinmicas...........................................................................................321 7.10 Efeitos especiais de construo .....................................................................324


7.10.1 Como obter uma grande seleco de cores ................................................... 324 7.10.2 Formatao dos controlos do formulrio ........................................................ 325

12

BASES DE DADOS COM MICROSOFT ACCESS 2007

7.10.3 Caixas de informao para os controlos........................................................ 326

7.11 Exerccio guiado ............................................................................................ 327

II.8 IMPRESSO DE RELATRIOS ........................................ 335


8.1 Aplicao de relatrios .................................................................................... 335 8.2 Modos de Criao de relatrios....................................................................... 336 8.3 Relatrio de Criao Rpida ........................................................................... 337 8.4 Relatrios usando o Assistente ....................................................................... 338 8.5 Relatrios em branco ...................................................................................... 341 8.6 Relatrios usando a Vista de Estrutura ........................................................... 343
8.6.1 Seces do relatrio ........................................................................................ 344 8.6.2 Controlos em relatrios .................................................................................... 346

8.7 Filtragem, Ordenao e Agrupamento ............................................................ 348

8.7.1 Filtragem de um relatrio ................................................................................. 348 8.7.2 Ordenao de dados ....................................................................................... 349 8.7.3 Agrupamento dos dados .................................................................................. 351

8.8 Grficos em relatrios ..................................................................................... 353 8.9 Etiquetas com relatrios .................................................................................. 356 8.10 Impresso de um relatrio ............................................................................. 358 8.11 Exportar relatrios ......................................................................................... 359 8.12 Exerccio guiado ............................................................................................ 360

II.9 MACROS ..................................................................... 365


9.1 Aces e argumentos ...................................................................................... 365 9.2 Criao de uma macro .................................................................................... 366 9.3 Execuo e Teste de uma macro .................................................................... 368
9.3.1 Executar uma macro a partir do Painel de Navegao.................................... 368 9.3.2 Executar uma macro com recurso a um boto de comando ........................... 369 9.3.3 Testar uma macro passo-a-passo ................................................................... 370

9.4 Criao de grupos de macros ......................................................................... 371 9.5 Criar macros condicionadas ............................................................................ 372 9.6 Atribuir macros a acontecimentos ................................................................... 374

NDICE

13

9.6.1 Atribuir uma macro a um acontecimento .......................................................... 374 9.6.2 Criar uma nova macro para um acontecimento................................................ 375

9.7 Exerccio Guiado ..............................................................................................376

II.10 GESTO DA BASE DE DADOS ..................................... 381


10.1 Sistema de Navegao ..................................................................................381
10.1.1 Construo do Painel de Navegao ............................................................. 381 10.1.2 Designao do Sistema de Navegao como formulrio de arranque da aplicao ................................................................................................................... 383

10.2 Fazer Cpias de Segurana...........................................................................384 10.3 Utilizar uma palavra-passe para encriptar uma BD ........................................385
10.3.1 Encriptao utilizando uma palavra-passe ..................................................... 386 10.3.2 Desencriptar e abrir uma base de dados........................................................ 387 10.3.3 Remover uma palavra-passe ......................................................................... 387

10.4 Segurana para Bases de Dados Distribudas...............................................388 10.5 Diviso de Base de Dados .............................................................................389 10.6 Analisar o desempenho .................................................................................391 10.7 Analisar Tabelas ............................................................................................393

PARTE III III. 1 INTRODUO PROGRAMAO EM VBA .................... 399 III.2 CARACTERSTICAS DA PROGRAMAO EM VBA ........... 401
2.1 Programao Orientada por Objectos ..................................... 401 2.2 O ambiente de desenvolvimento do VBA ................................ 402
2.2.1 Objectos e Classes .................................................................. 402 2.2.2 Propriedades e Mtodos .......................................................... 404 2.2.3 Eventos .................................................................................... 410

14

BASES DE DADOS COM MICROSOFT ACCESS 2007

2.3 Procedimentos e Mdulos ........................................................ 412


2.3.1 SubProcedimentos ................................................................... 415 2.3.2 Funes ................................................................................... 418

2.4 Janelas do Editor de Visual Basic VBE Windows ................. 423 2.5 Conceitos e Estruturas de Controlo em VBA ........................... 428
2.5.1 Tipos de dados ......................................................................... 428 2.5.2 Variveis e Constantes ............................................................ 429 2.5.3 Variveis declaradas e no declaradas ................................... 430 2.5.4 mbito das variveis e constantes ........................................... 432 2.5.5 Operadores .............................................................................. 435 2.5.6 Estruturas de controlo .............................................................. 437

2.6 Funes do VBA ...................................................................... 451

III.3 MODELO DE OBJECTOS NO ACCESS 2007/VBA ........... 473


3.1 Arquitectura DAO ..................................................................... 474
3.1.1 Microsoft Data Access Objects ................................................ 476

3.2 Arquitectura ADO ..................................................................... 506


3.2.1 A Metodologia ADO no Access/VBA ........................................ 508 3.2.2 Modelo de Objectos ADO ........................................................ 508 3.2.3 Objectos ADO no Access 2007 ................................................ 510

III.4 TRANSIO DA METODOLOGIA DAO PARA ADO .......... 521

ANEXO I: GLOSSRIO DE ABREVIATURAS ........................... 525 ANEXO II: FUNES DO VBA ............................................. 529 BIBLIOGRAFIA ................................................................... 533

PARTE

Na primeira parte deste livro feito um enquadramento terico sobre bases de dados. Neste sentido, comeamos por abordar os Sistemas de Informao organizacionais, dos quais fazem parte os Sistemas de Bases de Dados. Posteriormente veremos alguns conceitos importantes relacionados com estes assuntos. Exploramos tambm o modelo relacional de Bases de Dados, apresentando os operadores da lgebra Relacional e fazendo uma breve abordagem linguagem SQL. Seguidamente veremos o modelo Entidade-Relacionamento para modelao de dados. Abordaremos, por fim, o conceito de Dependncia Funcional e a sua aplicao Normalizao de relaes. No final de cada captulo so apresentados os termos chave, algumas questes para reviso e alguns tpicos para investigao.

I.1 Os Sistemas de Informao e as Organizaes

difcil conceber a sociedade de hoje sem a omnipresena dos computadores e dos sistemas informticos. A maior parte dos lares portugueses tem j um computador, ou pelo menos algum dos seus elementos j trabalhou com um. Esta presena torna-se mais significativa quando nos restringimos ao mundo empresarial. Qualquer empresa, por mais pequena que seja, tem pelo menos um computador. A utilizao que deles feita vai desde o simples processamento de texto aos modernos sistemas que integram todo o processo produtivo da empresa. Em muitas organizaes os sistemas de informao e as aplicaes informticas so considerados como essenciais para a conquista de vantagens competitivas. No entanto, eles no so a panaceia do sucesso. necessrio determinar as necessidades e estabelecer os seus limites. Eles no surgem por si s. Em vez disso, so o produto de um processo de planeamento e desenvolvimento cuidadosos que requerem o empenhamento efectivo de toda a organizao. As bases de dados, assunto principal deste livro, so um dos componentes da vasta realidade que o sistema de informao. Sem pretendermos ser exaustivos, consideramos importante enquadrar e clarificar este tema. Assim sendo, comeamos por nos referir, em 1.1, s caractersticas de um sistema, para, logo de seguida, em 1.2, vermos a organizao como um sistema aberto. Seguidamente, em 1.3, vamos abordar o conceito de informao e a importncia desta nas organizaes actuais. Finalmente, em 1.4, iremos centrar-nos nas caractersticas e evoluo histrica dos sistemas de informao organizacionais bem como referiremos aspectos referentes ao seu planeamento e desenvolvimento.

18

BASES DE DADOS COM MICROSOFT ACCESS 2007

1.1 CARACTERSTICAS DE UM SISTEMA


Na dcada de 50, o bilogo alemo Ludwig Von Bertalanffy observou que quaisquer organismos vivos pesquisados, embora se diferenciassem uns dos outros por uma grande variedade de caractersticas, mantinham algumas caractersticas comuns. Von Bertalanffy estendeu estas observaes a outros tipos de organismos como, por exemplo, organismos mecnicos ou organismos sociais, tendo constatado que algumas caractersticas se mantinham, independentemente da natureza do organismo. A mais importante caracterstica que se podia sempre destacar era o objectivo (propsito) que o organismo atingia. Embora o organismo em observao fosse composto por uma srie de elementos, percebia-se claramente a interaco desses elementos com vista a atingir um objectivo, que seria a finalidade daquele organismo. Com base nesses estudos e observaes, Von Bertalanffy apresentou a chamada Teoria Geral dos Sistemas. Desde essa altura muitos cientistas de todo o mundo tm efectuado estudos nessa rea. Das vrias definies de Sistema que podemos encontrar, salientamos a de Chiavenato [Chiavenato, 1992]: Um Sistema um conjunto de elementos dinamicamente inter-relacionados, desenvolvendo uma actividade ou funo para atingir um ou mais objectivos ou propsitos. Chiavenato acrescenta que quando falamos em natureza sistmica, geralmente queremos nos referir a esse funcionamento global, total e integrado, no qual o todo maior (ou diferente) do que a soma das suas partes. Cada sistema pode ser subdividido em vrios sistemas os subsistemas, dependendo dos interesses da pessoa que pretende estud-lo. Por exemplo, o computador um sistema que tem como objectivo processar dados e armazenar dados e informao. Podemos considerar que existem subsistemas que compem o computador: o subsistema teclado, o subsistema CPU, etc. Para conhecer um sistema temos de estudar a razo fundamental da sua existncia (o objectivo), as partes dinamicamente inter-relacionadas (os componentes), a relao entre os componentes e a fronteira entre o sistema e o meio ambiente (a estrutura), a forma como o sistema reage s mudanas externas do seu ambiente (comportamento) e o seu ciclo de vida (que genericamente inclui evoluo, desgaste, envelhecimento, substituio e morte).

I.1 OS SISTEMAS DE INFORMAO E AS ORGANIZAES

19

Qualquer sistema apresenta maior ou menor entropia, que a tendncia que o sistema tem para o desgaste e a desintegrao e que aumenta com o decorrer do tempo. Por outro lado, um sistema possui tambm alguma homeostasia, que o equilbrio dinmico entre as partes do sistema, ou seja, os sistemas tm uma tendncia para se adaptarem, a fim de alcanar um equilbrio interno, em face das mudanas externas do meio ambiente.

1.2 A ORGANIZAO VISTA COMO UM SISTEMA


Uma organizao composta por pessoas ou grupos de pessoas, interagindo entre si para atingir objectivos comuns. Com o surgir da Teoria dos Sistemas tornou-se clara a natureza sistmica de qualquer organizao e em particular da empresa. O objectivo de qualquer empresa obter lucro. Os componentes das empresas so, por exemplo, os departamentos1 e a sua estrutura, ou relao entre esses departamentos, pode ser expressa, por exemplo, atravs de um organograma. O seu comportamento consiste na forma como a empresa reage ao seu ambiente, por exemplo, o que acontece quando recebe uma factura. Uma organizao pode ser identificada como um sistema aberto tal como definido por Chiavenato [Chiavenato, 1992]: Os sistemas abertos trocam matria e energia regularmente com o meio ambiente e so fundamentalmente adaptativos, pois para sobreviver precisam reajustar-se continuamente s condies mutveis do meio. Essa adaptabilidade um processo contnuo de aprendizagem e auto-organizao do sistema aberto.

1.3 A INFORMAO
Diz-nos Chiavenato [Chiavenato, 1992] que os recursos so meios que as empresas possuem para realizar as suas tarefas e atingir os seus objectivos: so bens ou servios consumidos na realizao das actividades empresariais. Os recursos empresariais assumem uma grande variedade de formas, sendo geridos no sentido de alcanar objectivos de auto-sustentao e lucratividade. Molnar [Molnar, 1978] identificou a Informao co1

Conforme o tipo de abordagem pretendido poderamos considerar outros componentes: pessoas, equipamentos, etc.

20

BASES DE DADOS COM MICROSOFT ACCESS 2007

mo um recurso e, assim sendo, ela deve ser gerida como o so os restantes recursos de uma organizao. Qualquer organizao para sobreviver necessita de informao. Esta permite que a organizao possa alcanar os objectivos que se prope atingir.

1.3.1 Caractersticas da informao


Em 1979, Jean-Louis Le Moigne2 define informao como sendo um objecto formatado (dotado de formas reconhecveis), criado artificialmente pelo homem a fim de representar um acontecimento percebido por ele no mundo real. Os informticos definem informao como sendo dados processados. necessrio que a informao seja clara, precisa, rpida e orientada. A informao dever estar disponvel na organizao de uma forma facilmente utilizvel e compreensvel, disponvel em tempo til e obtida a um custo razovel. A utilizao dos sistemas informticos, nomeadamente os sistemas de bases de dados, cada vez mais fundamental para que a informao seja obtida, pela organizao, com estas caractersticas.

1.3.2 A Informao nas organizaes


Rob e Coronel [Rob e Coronel, 2002] identificam em qualquer organizao um ciclo dados-informao-deciso, esquematizado na figura I.1.1. O utilizador aplica a sua inteligncia sobre os dados, produzindo informao. Esta a base do conhecimento que utilizado na tomada de decises. As decises geram determinadas aces que produzem mais dados...
Utilizador Dados Informao

Aces

Tomadas de decises Figura I.1.1 Ciclo dados-informao-deciso

Conhecimento

Citado em [Almeida, 1997]

I.1 OS SISTEMAS DE INFORMAO E AS ORGANIZAES

21

A informao flui numa organizao de duas formas (figura I.1.2): entre os nveis de gesto da organizao e dentro de cada nvel de gesto. Mais uma vez referimos que os sistemas informticos podem ser um auxiliar precioso para que a informao flua na organizao de forma eficiente.

Estratgico Tctico Operacional


Figura I.1.2 Fluxo de informao na organizao

1.3.3 Tipos de informao nas organizaes


Numa organizao podem ser identificados dois tipos de Informao: Operacional Sendo utilizada diariamente, permite que a organizao leve a cabo as suas actividades de rotina, de forma eficiente; De Gesto Serve de suporte tomada de deciso nos trs nveis da gesto.

Na figura I.1.3 feito um resumo das caractersticas de cada um dos dois tipos de informao, no que concerne a raio de aco, nvel de detalhe, sntese, idade, exactido e fonte.

22
Caractersticas Operacional

BASES DE DADOS COM MICROSOFT ACCESS 2007


Gesto

Raio de aco Detalhe Sntese Idade Exactido Tipo Fonte

Reduzida Muito detalhada Geralmente em bruto Tem de ser actual Precisa de ser exacta Mais quantitativa Principalmente interna

Ampla Geral Geralmente sumariada Pode ser antiga Podem bastar estimativas Mais qualitativa Principalmente externa

Figura I.1.3 Caractersticas dos tipos de Informao nas organizaes

1.4 OS SISTEMAS DE INFORMAO ORGANIZACIONAIS


As empresas actuais tm necessidade de desenvolver, implementar e gerir toda uma infra-estrutura capaz de dar apoio aos processos de recolha, armazenamento, criao e distribuio de informao. Essa infra-estrutura, que constitui o Sistema de Informao da organizao, deve ser composta por recursos computacionais, humanos e organizacionais, que devem agir de forma integrada, com o objectivo de suportar as funes operacionais e de gesto da organizao. As modernas tecnologias de informao permitem, quando devidamente integradas, que as organizaes desenvolvam a qualidade dos seus servios e produtos. Como afirma Serrano, existe a conscincia de que o sistema de Informao e as Tecnologias de Informao e Comunicao no cumprem as suas funes sem a cumplicidade activa dos membros da organizao, quer ao nvel dos utilizadores quer ao nvel dos decisores. A adopo da tecnologia pela tecnologia, por mais sofisticada que se apresente, no resolve qualquer problema. A adeso das pessoas inovao, a cultura da partilha de conhecimento e a criao de memria organizacional so fundamentais para o funcionamento de um Sistema de Informao Organizacional.. A United Kindgom Academy for Information Systems, na sua newsletter em 1995, considera o estudo de Sistemas de Informao como sendo uma rea multidisciplinar que abrange as actividades de nvel estratgico, tc-

I.1 OS SISTEMAS DE INFORMAO E AS ORGANIZAES

23

tico e operacional, envolvendo a recolha, processamento, distribuio e utilizao da informao e as tecnologias que lhe esto associadas, na sociedade e nas organizaes. Como todos os sistemas, o Sistema de Informao constitudo por vrios subsistemas e por outro lado faz parte integrante de um sistema maior que constitui o seu ambiente. Ao longo deste livro iremos analisar um dos subsistemas do Sistema de Informao: o Sistema de Bases de Dados.

1.4.1 Evoluo histrica dos Sistemas de Informao


De uma forma geral, podemos sintetizar a evoluo dos Sistemas de Informao na empresa atravs de quatro fases ou eras (figura I.1.4). O despontar de uma fase no implica o desaparecimento de outra, havendo coexistncia das eras 1, 2 e 3.

ERA 1 Aumentar a eficincia das operaes internas TPS, MIS, DBMS ERA 2 Aumentar a eficcia da gesto OIS, DSS ERA 3 Alterar as bases da concorrncia ES, EIS 1960 1970 1980 1990

ERA 4 Aumentar a eficincia nas trocas interempresas. Redesenhar os processos de gesto ERP, CRM, SCM, KMS, BI

2000

Figura I.1.4 A evoluo dos sistemas de informao na empresa

Numa primeira fase, pretendia-se que, com a implementao dos sistemas de informao na empresa, houvesse um aumento da eficincia das suas operaes internas. Numa segunda fase, o objectivo era aumentar a eficcia da gesto. Numa terceira fase, houve a inteno de alterar as bases de concorrncia. Na quarta fase, pretende-se aumentar a eficincia nas trocas inter-empresas, redesenhar os processos de gesto e mudar a estrutura dos prprios sectores industriais.

24

BASES DE DADOS COM MICROSOFT ACCESS 2007

Ao longo dos anos tm surgido vrios tipos de sistemas de informao, habitualmente conhecidos por siglas. Na figura I.1.4 apresenta-se cada um deles de acordo com a poca em que surgiu. Os Sistemas de Processamento de Transaces (TSP Transaction Processing Systems) surgiram na dcada de 50 tendo como objectivo substituir o processamento manual de tarefas morosas e repetitivas, lidando normalmente com grandes quantidades de informao. Vender um item de mercadoria, efectuar um pagamento com carto de crdito, fazer a devoluo de uma mercadoria, so exemplos de transaces. Os sistemas de processamento de transaces actuais so o sustentculo da grande maioria das empresas e muitas delas no suportariam muito tempo (por vezes horas) sem o sistema a operar. Nos anos 60 surgem os Sistemas de Informao de Gesto (MIS Management Information Systems). Estes pretendiam servir de suporte s actividades e funes de gesto e tomada de deciso numa organizao. Inicialmente eram utilizados para diversas actividades prticas, tais como obteno da folha de pagamentos ou manter-se a par das contas a pagar ou a receber. Na mesma poca emergem os Sistemas de Gesto de Bases de Dados (DBMS DataBase Management Systems), que permitem o acesso aos dados de uma base de dados e que sero alvo de maior ateno no captulo seguinte. Refere-se tambm o aparecimento, na dcada de 70, dos Sistemas de Informao de Escritrio (OIS Office Information Systems) e dos Sistemas de Apoio Deciso (DSS Decision Support Systems). Um Sistema de Informao de Escritrio um sistema baseado em computadores que modela as actividades de um escritrio, permitindo a automao total ou parcial das actividades rotineiras. Um Sistema de Apoio Deciso um sistema de informao baseado em computadores que analisa e apresenta os dados do negcio de forma a facilitar e apoiar a tomada de decises. So muitas vezes talhados medida do utilizador. Na dcada de 80 tm sucesso os Sistemas Periciais (ES Expert Systems) e os Sistemas de Informao para Executivos (EIS Executive Information Systems). Um sistema pericial simula o comportamento de um especialista humano com experincia e conhecimento numa determinada rea. Inclui uma base de conhecimento que contm a experincia acumulada e um conjunto de regras que permitem aplicar a base de conhecimento a situaes especficas. Um exemplo bastante conhecido um sis-

I.1 OS SISTEMAS DE INFORMAO E AS ORGANIZAES

25

tema que joga xadrez. Um sistema de informao para executivos fornece informao actual e apropriada a gestores de topo, atravs de um ambiente amigvel. Fornece acesso a informao quer interna quer externa, que vai de encontro aos objectivos estratgicos da organizao. Em finais do sculo XX surgiram os chamados sistemas ERP Enterprise Resource Planning. Um ERP consiste em vrios mdulos independentes que integram os vrios processos de uma organizao e de uma base de dados que guarda todos os dados necessrios aos diversos mdulos. Surgiram tambm os sistemas designados por CRM, SCM e KMS. CRM Customer Relationship Management um termo utilizado pelas organizaes para referir metodologias e aplicaes informticas, que habitualmente utilizam a Internet, e que apoiam a organizao na gesto das suas relaes com os clientes. Um SCM Supply Chain Management um sistema integrado de planeamento da produo e distribuio. Engloba o planeamento e a gesto das operaes da cadeia de fornecimentos. Inclui tambm a coordenao e a colaborao com fornecedores, intermedirios, fornecedores de servios e clientes. Um KMS Knowledge Management System permite gerir conhecimento numa organizao. Pode guardar e gerir informao no estruturada numa grande variedade de formatos electrnicos. No apenas uma soluo tecnolgica, mas o software pode auxiliar a captura, categorizao, uso eficaz, pesquisa, descoberta ou comunicao de conhecimento. Nos ltimos anos tem vindo a aumentar a utilizao do termo Business Intelligence BI. Pode-se dizer que o BI procura a definio de contextos para os dados e, a partir da, atribuir-lhes significado, de forma a que possam ser utilizados como ajuda a uma melhor gesto dos negcios, atravs da deciso. Neste processo esto envolvidas uma grande diversidade de tecnologias, aplicaes e prticas de negcio.

1.4.2 Planeamento e desenvolvimento de Sistemas de Informao


Entende-se por Planeamento de Sistemas de Informao a actividade de identificao de polticas, definio de objectivos e construo de planos e oramentos em que sejam contemplados os objectivos de gesto da organizao e do Sistema de Informao. [Carvalho e Amaral, 1993]. O Planeamento de Sistemas de Informao deve ser conjugado com o desenvolvimento de Sistemas de Informao. Por desenvolvimento de Sistemas

26

BASES DE DADOS COM MICROSOFT ACCESS 2007

de Informao dever entender-se um processo de mudana que visa melhorar o desempenho de um (sub-)sistema de Informao. [Carvalho e Amaral, 1993]. O Desenvolvimento de um Sistema de Informao pode ser dividido em vrias fases. Podemos considerar como fases tpicas as apresentadas na figura I.1.5. As fases no so obrigatoriamente sequenciais, existindo a possibilidade de retroceder s fases anteriores sempre que necessrio.
Estudo preliminar

Identificao de requisitos

Anlise detalhada

Desenho

Codificao

Testes e implantao

Manuteno

Figura I.1.5 Fases de desenvolvimento de um Sistema de Informao

Estudo Preliminar Nesta primeira fase definem-se os objectivos (quais so os problemas, o que ir melhorar) e verifica-se a viabilidade quer tcnica, quer operacional, quer econmica. Identificao de requisitos Nesta fase, indicam-se todos os requisitos necessrios ao Sistema

I.1 OS SISTEMAS DE INFORMAO E AS ORGANIZAES

27

de Informao, utilizando tcnicas de recolha de informao tais como entrevistas e observao directa. importante analisar os diferentes tipos de utilizadores do Sistema de Informao. Estes so: utilizadores directos que, como a prpria designao indica, utilizam directamente o Sistema de Informao, utilizadores indirectos, que usam mapas produzidos pelos sistemas e utilizadores administrativos, que controlam as actividades desenvolvidas. Anlise detalhada Durante a anlise detalhada organizam-se regras e procedimentos, atravs dos dados recolhidos, em modelos coerentes para o sistema em causa. Na parte I deste livro iremos estudar alguns modelos utilizados na anlise de Sistemas de Bases de Dados. Desenho Durante a fase de desenho, o modelo lgico, obtido na fase anterior, complementado com o desenho dos processos, incluindo todas as especificaes tcnicas necessrias. Codificao Este fase consiste na construo da aplicao atravs de linguagens de programao (por exemplo, Visual Basic, C, ...) ou de Sistemas de Gesto de Bases de Dados (por exemplo, Access, Oracle, ...). Testes e Implantao Atravs de testes e antes de introduzir o novo sistema, deve-se garantir que o sistema satisfaz os objectivos, funcionalidades e requisitos especificados. necessrio formar os diferentes utilizadores na utilizao do sistema. Manuteno Nesta ltima fase estabelecem-se os tipos de manuteno. Esta pode ser correctiva, respondendo a erros do sistema, perfectiva, melhorando o sistema e adaptativa, havendo a necessidade de alterar a funcionalidade do sistema, devido a alteraes do ambiente de negcio.

Existem vrios mtodos, tcnicas e ferramentas disponveis que apoiam no desenvolvimento de sistemas de informao. No entanto, citando Whitten e Bentley [Whitten e Bentley, 1998], o desenvolvimento no uma activi-

28

BASES DE DADOS COM MICROSOFT ACCESS 2007

dade mecnica. No existem segredos mgicos para o sucesso, no existem ferramentas, tcnicas ou mtodos perfeitos.

1.4.3 A introduo dos Sistemas de Informao nas organizaes


O processo de adopo de novas tecnologias/sistemas de informao numa organizao pode ser sintetizado atravs do modelo dos seis estdios de crescimento de Nolan (1979), apresentados na figura I.1.6. Este um dos modelos mais conhecidos de evoluo dos Sistemas e Tecnologias de Informao (SI/TI).
I Iniciao II Expanso III Controlo IV Integrao V Administrao de dados VI Maturidade

Numa primeira fase feita a instalao do computador na empresa e introduzioa a automatizao (Iniciao). A instalao seguida de uma rpida proliferao e crescimento dos sistemas informticos (Expanso). Este crescimento rpido leva a um grande aumento dos custos na empresa prvocando a necessidade de interveno por parte da gesto (Controlo). Numa prxima fase sentida a necessidade de, alm de controlar o crescimento, integrar as diversas aplicaes em sistemas coerentes (Integrao)

Crescimento

II

III

IV

VI

Era do Computador

Ponto de Mudana

Era da Informao

Figura I.1.6 Estdios de crescimento de Nolan

I.1 OS SISTEMAS DE INFORMAO E AS ORGANIZAES

29

passamos para a gesto de informao. Seguidamente feita a concluso do desenvolvimento e implantao de um sistema integrado de Bases de Dados (Administrao de Dados) e por fim uma fase em que o sistema est integrado no sistema produtivo da empresa (Maturidade).

30

BASES DE DADOS COM MICROSOFT ACCESS 2007

TERMOS CHAVE

Sistema Informao Sistema de Informao TPS MIS DBMS OIS DSS ES

SIS EIS ERP CRM SCM KMS Planeamento de Sistemas de Informao Desenvolvimento de Sistemas de Informao Estdios de crescimento de Nolan

I.1 OS SISTEMAS DE INFORMAO E AS ORGANIZAES

31

PARA REVER
1. Explique sucintamente o que entende por: a. Sistema b. Informao c. Sistema de Informao d. Planeamento de Sistemas de Informao e. Desenvolvimento de Sistemas de Informao. 2. Explique o ciclo dados-informao-deciso que pode ser identificado em qualquer organizao. 3. De que duas formas a informao flui numa organizao? 4. Identifique os tipos de informao numa organizao e apresente as suas caractersticas. 5. Defina Sistema de Informao Organizacional. 6. Sintetize a evoluo histrica dos sistemas de informao. 7. Distinga Planeamento de Sistemas de Informao de Desenvolvimento de Sistemas de Informao. 8. Explique o modelo dos seis estdios de crescimento de Nolan. Qual a sua importncia na gesto dos sistemas de informao de uma organizao?

PARA INVESTIGAR
1. Depois de explicar o que entende por ERP, procure descrever quais os mdulos que tipicamente o constituem. Apresente exemplos dos principais ERPs existentes no mercado e descreva sumariamente as principais tendncias de evoluo. 2. Os Sistemas de Informao de Apoio Deciso tm assumido uma importncia crescente no panorama dos SI/TI nas organizaes.

32

BASES DE DADOS COM MICROSOFT ACCESS 2007

Apresente as principais razes de negcio e tecnolgicas que contriburam para tal desenvolvimento e investigue sobre a sua evoluo histrica. 3. O ciclo de vida do desenvolvimento de sistemas de informao (em ingls, Systems Development Life Cycle SDLC) um modelo conceptual que descreve as etapas envolvidas num projecto de desenvolvimento de sistemas de informao. Investigue e descreva as principais metodologias que tm vindo a ser desenvolvidas para guiar os processos envolvidos (por exemplo, o modelo da cascata). 4. Refere-se em 1.4.3 que o modelo dos seis estdios de Nolan um dos mais conhecidos modelos de evoluo dos SI/TI numa organizao. Apresente e descreva outros, apresentando as fraquezas e as foras de cada um deles.

I.2 As Bases de Dados

De uma forma genrica podemos dizer que uma base de dados um conjunto de dados relacionados, acessveis a uma comunidade de utilizadores. Desde tempos imemoriais o homem guardou em armrios, gavetas (...) os dados importantes relativos s suas diversas actividades as primeiras bases de dados. A partir de meados do sculo XX verificou-se um grande crescimento das organizaes o que provocou um grande aumento no volume dos dados nelas utilizados. Ao mesmo tempo verificou-se um grande desenvolvimento dos computadores, que se tornaram mais acessveis. Surge assim, de forma natural, a introduo dos computadores nas organizaes com o objectivo de servir de suporte s bases de dados nelas existentes. Numa primeira fase surgem os chamados Sistemas de Ficheiros e s posteriormente so desenvolvidos os Sistemas de Bases de Dados. Com ambos se pretende obter acesso rpido aos dados gerando a informao necessria s diversas actividades. Os dados so guardados em ficheiros e a partir deles so gerados relatrios com a informao pretendida. Actualmente, quando nos referimos a bases de dados, queremos referir-nos s bases de dados em suporte informtico. Embora se possa considerar que os Sistemas de Ficheiros esto desactualizados e que no far sentido abord-los, pensamos que s se podero compreender as potencialidades de um Sistema de Bases de Dados se houver a compreenso dos Sistemas de Ficheiros, que os antecederam. Neste captulo iremos comear por abordar, em 2.1, as razes histricas das bases de dados, nomeadamente os Sistemas de Ficheiros. Em 2.2 veremos as caractersticas de um Sistema de Bases de Dados e os seus intervenientes. Abordaremos ainda alguns aspectos importantes de um Sistemas de Gesto de Bases de Dados. Os modelos de Bases de Dados

34

BASES DE DADOS COM MICROSOFT ACCESS 2007

sero abordados em 2.3. Por fim, em 2.4, abordaremos outras aplicaes das bases de dados.

2.1 AS RAZES HISTRICAS: FICHEIROS E SISTEMAS DE FICHEIROS


Num Sistema de Ficheiros guardam-se diversos registos, de forma permanente3, em vrios ficheiros. Existem tambm diversas aplicaes ou programas que permitem efectuar uma variedade de operaes com esses ficheiros: inserir dados, recuperar dados, alterar dados e apagar dados. Na figura I.2.1 apresenta-se um exemplo de um Sistema de Ficheiros para gesto de encomendas.
APLICAES FICHEIROS DE DADOS

Aplicao 1
Efectuar encomenda

Clientes

Aplicao 2
Inserir novo produto

Encomendas

Aplicao 3
Inserir novo cliente

Produtos

Aplicao 4
Imprimir notas de encomenda

Figura I.2.1 Um Sistema de Ficheiros

Por permanente entende-se que, depois de um registo ser colocado numa base de dados, atravs de uma operao de insero de dados, s pode ser eliminado atravs de uma operao de eliminao de dados.

I.2 AS BASES DE DADOS

35

Neste exemplo, utilizam-se trs ficheiros: Um ficheiro Clientes, no qual se armazena informao genrica sobre os cliente (nome, morada, contactos,); Um ficheiro Produtos, no qual se armazena informao genrica sobre os diversos produtos existentes (descrio, preo, existncias,); Um ficheiro Encomendas, que contm informao sobre as encomendas realizadas. Esta informao inclui, alm da informao genrica sobre a encomenda (nmero, data, valor total, ), informao sobre o cliente que faz a encomenda e sobre os vrios produtos que foram encomendados.

No exemplo, apresentam-se quatro aplicaes, nomeadamente: Aplicao1: Efectuar encomenda, que permite a realizao de novas encomendas; esta aplicao efectua operaes nos trs ficheiros existentes; Aplicao 2: Inserir novo produto, que permite a insero de novos produtos e que realiza operaes apenas no ficheiro Produtos; Aplicao 3: Inserir novo cliente, que permite a introduo de novos clientes e que realiza operaes apenas no ficheiro Clientes; Aplicao 4: Imprimir notas de encomenda, que permite imprimir notas de encomenda e que realiza operaes apenas no ficheiro Encomendas.

Evidentemente este conjunto de aplicaes no suficiente para que o sistema funcione, como veremos j de seguida.

2.1.1 Gesto de dados nos Sistemas de Ficheiros


Os ficheiros de um Sistema de Ficheiros possuem uma determinada estrutura fsica que tem de ser conhecida para que cada uma das aplicaes do sistema possa ser elaborada. Na figura I.2.2 apresentamos um

36

BASES DE DADOS COM MICROSOFT ACCESS 2007

exemplo do ficheiro Clientes, pertencente ao sistema de ficheiros apresentado na figura I.2.1.


CLI-COD CLI-NOME CLI-MORADA CLI-TELEF

campo

1 2 3 4 5 6

a n a m a r i a j o s t i a g o p e d r o j o a q u i m

p o r t o g a i a l i s b o a s e t b a l c o i m b r a m a i a

1 2 3 4 5 6 7 8 9 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 9 9 9 8 8 8 9 9 9 6 6 6 5 5 5 4 4 4 3 3 3 2 2 2 1 1 1

registo

Figura I.2.2 Exemplo do ficheiro Clientes

Antes de avanarmos, vamos definir alguma terminologia bsica sobre ficheiros: Campo um caracter ou conjunto de caracteres com um significado especfico, como por exemplo um nome; Registo um conjunto de um ou mais campos relacionados que descrevem uma pessoa, um lugar ou um objecto (concreto ou abstracto); Ficheiro conjunto de registos relacionados.

Cada ficheiro presente no sistema de gesto de ficheiros precisa, pelo menos, de cinco aplicaes que permitam: Criar a estrutura do ficheiro; Introduzir dados no ficheiro; Eliminar dados do ficheiro; Modificar dados contidos no ficheiro; Listar o contedo do ficheiro.

I.2 AS BASES DE DADOS

37

Cada uma dessas aplicaes envolve vrias operaes, mais ou menos complexas. Por exemplo, para eliminar o cliente Ana, do ficheiro de clientes do exemplo apresentado, ser necessrio: Abrir o ficheiro de clientes; Procurar o registo relativo ao cliente Ana; Eliminar o registo encontrado; Fechar o ficheiro Clientes.

Se pretendemos inserir novos registos, a situao torna-se ainda mais complicada, dado que necessrio ter ainda em ateno o tamanho de cada um dos campos. Suponhamos que, no exemplo considerado, pretendemos inserir um novo cliente de nome Ana Isabel. Repare-se que a estrutura fsica do ficheiro apenas permite a insero de oito caracteres e o nome a introduzir precisa de dez. Este aspecto tem de ser tido em conta na introduo e tambm na modificao dos dados de um ficheiro. Podemos, atravs deste exemplo simples, reconhecer a dificuldade e morosidade existentes na implementao de um sistema de ficheiros, ainda mais se pensarmos que todo este trabalho ter de ser multiplicado pelo nmero de ficheiros existentes no sistema. Por outro lado, a sua manuteno tambm difcil. Consideremos novamente o exemplo da figura I.2.1. Depois de implementado o sistema, os gestores da empresa onde ele foi implementado consideram importante obter relatrios mensais, contendo informaes sobre os valores das encomendas realizadas por cada um dos clientes. Passa a haver a necessidade de, em cada ms, elaborar uma aplicao que possa produzir esse relatrio. Conforme se conseguem satisfazer algumas necessidades surgem imediatamente novas necessidades, o que implica a escrita de novas aplicaes. Muitas vezes torna-se incomportvel fazer uma gesto eficiente do sistema, devido ao elevado nmero de aplicaes necessrias sua manuteno. Outro aspecto a ter em conta na gesto dos dados num sistema de ficheiros prende-se com a integridade dos dados, isto , os valores guardados nos ficheiros devem satisfazer determinadas regras as restries de integridade. No exemplo j apresentado, considerando o ficheiro enco-

38

BASES DE DADOS COM MICROSOFT ACCESS 2007

mendas, s pode existir uma encomenda se contiver algum produto ou s so aceites encomendas de valor superior a 5 , so exemplos de duas restries de integridade. Estas restries so introduzidas no sistema adicionando cdigo (programao) apropriado em vrias aplicaes, implicando um grande esforo adicional. Todas estas consideraes tm a ver com sistemas utilizados por um s utilizador. Imagine-se o esforo necessrio para implementar e manter um sistema no qual exista a possibilidade de vrios utilizadores (no simultneos). Neste caso, seria preciso definir para, cada utilizador, se ele poderia ou no aceder aos dados, se poderia aced-los apenas para consulta ou se poderia alterar os dados, etc.

2.1.2 Dependncia dados-aplicaes


Como j verificmos, num sistema de ficheiros as aplicaes esto directamente relacionadas com os ficheiros, isto , quando uma aplicao acede a um ficheiro, deve dizer ao computador no s a que aceder mas tambm como aced-lo. Diz-se que existe dependncia entre os dados e as aplicaes. Assim sendo, qualquer alterao na estrutura dos ficheiros provocar alteraes em todas as aplicaes que com elas se relacionam, com todos os inconvenientes da resultantes.

2.1.3 Redundncias nos dados


Nos sistemas de ficheiros difcil evitar que existam dados repetidos desnecessariamente em diversos ficheiros. Quando isto acontece, diz-se que existem redundncias nos dados. No exemplo da figura I.2.1 os dados relativos a cada cliente no ficheiro clientes surgem repetidos no ficheiro encomendas. Estas redundncias conduzem a custos mais elevados ao gravar e ao aceder aos dados, alm de outros aspectos. Um aspecto importante a considerar o facto de estas redundncias poderem gerar inconsistncias nos dados, isto , vrias cpias do mesmo dado no serem coincidentes. Consideremos, no exemplo da figura I.2.1, a situao de, ao realizar uma encomenda se verificar que a morada do cliente que fez essa encomenda foi alterada. Como o utilizador est a efectuar o pedido de encomenda com a aplicao destinada para esse efeito, inclui a nova morada apenas no ficheiro encomendas. Nesse

I.2 AS BASES DE DADOS

39

momento surge um pedido de encomenda de um outro cliente. Como, para efectuar a alterao da morada do cliente anterior, necessrio recorrer a outra aplicao, o utilizador aproveita o facto de estar a utilizar a aplicao destinada ao pedido de encomendas para efectuar a nova encomenda. Entretanto esqueceu-se da alterao que deveria ter sido realizada! Desta forma os dados relativos morada do referido cliente no so coincidentes, isto , so inconsistentes.

2.2 SISTEMAS DE BASES DE DADOS


UTILIZADORES

APLICAES

SISTEMA DE GESTO DE BASES DE DADOS (SGBD)

DADOS

Figura I.2.3 Imagem simplificada de um Sistema de Bases de Dados

Os Sistemas de Bases de Dados surgiram como resposta aos problemas apresentados pelos sistemas de ficheiros. Um Sistema de Bases de Dados (SBD) um sistema baseado em computador(es) que tem como principal objectivo armazenar dados de modo a permitir aos utilizadores consultarem e actualizarem a informao solicitada. Caracterizam-se por terem um repositrio de dados que acedido pelos diversos utilizadores atravs de

40

BASES DE DADOS COM MICROSOFT ACCESS 2007

um sistema o Sistema de Gesto de Bases de Dados (SGBD)4 (figura I.2.3). Pela sua importncia, o Sistema de Gesto de Bases de Dados ser estudado de forma mais pormenorizada em 2.2.3 a 2.2.6.

2.2.1 Caractersticas de um Sistema de Bases de Dados


Vrias caractersticas distinguem os Sistemas de Bases de Dados dos Sistemas de Ficheiros. Seguidamente apontamos algumas que consideramos importantes: Catlogo do sistema Uma das caractersticas fundamentais dos Sistemas de Bases de Dados que contm, no s a base de dados, mas tambm a definio completa ou descrio da base de dados o catlogo do sistema ou dicionrio de dados5. A informao contida no catlogo chamada de metadados (dados sobre dados). O catlogo do sistema est acessvel ao Sistema de Gesto de Bases de Dados e aos utilizadores e automaticamente criado pelo sistema. A existncia do catlogo do sistema permite que um s SGBD possa ser eficientemente utilizado com diversas bases de dados. Independncia Dados-Aplicaes Outra caracterstica importante dos Sistemas de Bases de Dados a independncia entre os dados e as aplicaes: a estrutura dos ficheiros de dados est gravada no catlogo do SGBD, separada das aplicaes que lhe acedem. Abstraco dos dados O Sistema de Base de Dados deve fornecer ao utilizador uma representao abstracta dos dados, isto , o sistema deve esconder detalhes sobre a forma como os dados so fisicamente armazenados e mantidos abstraco dos dados.

Existe, por vezes, alguma confuso entre o Sistema de Bases de Dados (SBD) e o Sistema de Gesto de Bases de Dados (SGBD). Isto prende-se, talvez, com o facto de as empresas de software venderem o SGBD, como sendo o SBD. No entanto, o SBD mais abrangente que o SGBD. 5 Alguns autores distinguem catlogo do sistema de dicionrio de dados. Por exemplo, em [Rob e Coronel, 2002] o catlogo do sistema interpretado como um dicionrio de dados muito detalhado.

I.2 AS BASES DE DADOS

41

Vistas mltiplas dos dados Normalmente, uma base de dados tem vrios utilizadores. Cada utilizador necessita de ter acesso a perspectivas diferentes da base de dados vistas da base de dados (figura I.2.4). Uma vista pode ser um subconjunto da base de dados, como por exemplo, a rea de produo, do marketing, etc. Na vista incluem-se tambm as permisses relativas ao tipo de acessos que cada utilizador pode ter: s leitura, escrita ou ambos.
Utilizadores Base de Dados

S G B D

Figura I.2.4 Vistas da Base de Dados

2.2.2 Intervenientes num Sistema de Bases de Dados


Podemos classificar as pessoas intervenientes num Sistema de Bases de Dados em quatro categorias (que por vezes se sobrepem): Administrador de dados e Administrador da Base de Dados O Administrador de Dados o gestor responsvel pela administrao dos recursos da base de dados, passando pela planificao, pelo estabelecimento de polticas e procedimentos. O Administrador da Base de Dados tem o controlo centralizado dos dados e dos programas que acedem a esses dados. o responsvel tcnico que assegura que todo o sistema funciona de forma

42

BASES DE DADOS COM MICROSOFT ACCESS 2007

conveniente. Em algumas organizaes no existe distino entre estes dois papis. Analistas da base de dados So as pessoas que fazem o desenho da base de dados. So os responsveis pela identificao dos dados a serem armazenados na base de dados e pela definio das estruturas fsicas necessrias para armazenar esses dados. Para que a sua funo seja cumprida de forma efectiva, os analistas devem estar envolvidos com as regras do negcio e com os utilizadores finais. Programadores de aplicaes Implementam as funcionalidades pretendidas pelos utilizadores finais, obtidas a partir de especificaes fornecidas pelo analista de sistemas. Alm disso, testam, corrigem erros, documentam e mantm os programas escritos. Podem utilizar diversas linguagens de programao. Utilizadores finais So as pessoas que acedem ao sistema para obter a informao necessria s suas actividades na organizao. Alguns desses utilizadores acedem base de dados a partir de programas e interfaces j definidos, que pretendem simplificar o mais possvel o acesso. Existem outros utilizadores mais sofisticados, familiarizados com as facilidades fornecidas pelo SGBD, que podem eles prprios escrever algumas das suas aplicaes.

2.2.3 As funes do Sistema de Gesto de Bases de Dados


O Sistema de Gesto de Bases de Dados (SGBD) uma aplicao informtica que faz a gesto de toda a base de dados fornecendo, aos seus utilizadores, acessos controlados. Vamos, de seguida, apresentar algumas das funes de um SGBD que consideramos mais importantes: Gesto do armazenamento dos dados O SGBD cria as estruturas necessrias ao armazenamento, e utilizao dos dados, libertando o utilizador da difcil tarefa de definir e programar as suas caractersticas fsicas. criado o dicionrio de dados que facilita este processo.

I.2 AS BASES DE DADOS

43

Gesto da Interface O SGBD formata os dados consultados de modo a que tenham um aspecto facilmente perceptvel pelo utilizador. So disponibilizadas determinadas linguagens de programao que permitem essa interface (seco 2.2.5). Os SGBDs mais recentes apresentam interfaces amigveis que facilitam grandemente o acesso base de dados por parte de utilizadores no especializados. Fornecem tambm capacidades para comunicar em ambiente de redes de computadores, nomeadamente atravs da Internet. Gesto da Segurana O SGBD cria um sistema de segurana que protege a base de dados de acessos no autorizados. So impostas regras que definem quais os utilizadores que podem ter acesso base de dados e, para os utilizadores autorizados, a forma como pode ser feito esse acesso, isto , quais os ficheiros que podem ser acedidos e as operaes permitidas (ler, adicionar, apagar ou modificar). Devero existir procedimentos que efectuem cpias de segurana e recuperao dos dados em caso de falhas, de modo a assegurar a segurana e a integridade dos dados. Manuteno da Integridade dos dados O SGBD assegura a verificao de restries de integridade de modo a que a base de dados contenha sempre dados vlidos, minimizando a redundncia nos dados e maximizando a sua consistncia. Existem restries de integridade intrnsecas ao SGBD6 e outras definidas pelos utilizadores do sistema. Outro aspecto a considerar a gesto das transaces7. Uma transaco uma srie de aces levada a cabo por um utilizador ou por uma aplicao, como por exemplo, inserir um novo cliente na base de dados. Se uma transaco interrompida antes do seu fim (devido, por exemplo, a uma falha de energia ou um sector danificado no disco), a base de dados estar num estado de inconsistncia, isto , algumas alteraes foram efectuadas e outras no. O

Cada um dos modelos de bases de dados que abordaremos em 2.3 possui restries de integridade inerentes ao prprio modelo, includas no SGBD. 7 O estudo aprofundado destes assuntos sai fora do mbito deste livro. Para uma abordagem mais aprofundada poder consultar, por exemplo, [Elmasri e Navathe, 2004] (Part 5) ou [Date, 2004] (Part IV).

44

BASES DE DADOS COM MICROSOFT ACCESS 2007

SGBD dever ser capaz de desfazer o que foi feito at essa altura, de modo a devolver a base de dados a um estado de consistncia. Controlo de acessos por vrios utilizadores em simultneo Em bases de dados multi-utilizador (seco 2.2.6), pode acontecer que tentem aceder aos mesmos dados vrios utilizadores em simultneo. O SGBD deve fornecer mecanismos que assegurem que a base de dados actualizada correctamente quando isso acontece controlo da concorrncia8.

2.2.4 Arquitectura do Sistema de Gesto de Bases de Dados e Independncia dos Dados


Utilizadores Finais Vista externa 3

Nvel externo

Vista externa 1

Vista externa 2

Correspondncia entre nvel conceptual e nvel externo

Nvel conceptual

Esquema Conceptual

Correspondncia entre nvel conceptual e nvel interno

Nvel interno

Esquema Interno

Base de Dados

Figura I.2.5 A arquitectura ANSI/SPARC

IDEM.

I.2 AS BASES DE DADOS

45

Um dos objectivos de um Sistema de Base de Dados o de fornecer aos utilizadores uma viso abstracta dos dados, isto , o sistema esconde, aos utilizadores, detalhes sobre a forma como os dados so armazenados e mantidos fisicamente. Para atingir esse objectivo foi apresentada, em 1975, a chamada arquitectura ANSI/SPARC9 na qual so propostos trs nveis de abstraco, que podemos observar na figura I.2.510. Vejamos um pouco mais em pormenor cada um dos trs nveis referidos: Nvel Interno o nvel mais baixo de abstraco. Existe um esquema interno, o qual descreve a forma como os dados so fisicamente armazenados. Neste nvel as estruturas de baixo nvel dos dados so descritas em pormenor. Nvel conceptual No nvel seguinte existe um esquema conceptual que descreve a estrutura dos dados para uma comunidade de utilizadores: quais os dados que esto armazenados e quais as relaes existentes entre esses dados. No esquema conceptual escondem-se os detalhes das estruturas fsicas que esto armazenadas na base de dados. Nvel externo O nvel mais elevado de abstraco inclui um nmero de vistas externas, ou vistas do utilizador, que descrevem apenas uma parte da base de dados.

Alm destes trs nveis a arquitectura envolve ainda correspondncias entre eles: Correspondncia entre nvel conceptual e nvel externo; Correspondncia entre nvel conceptual e nvel interno.

9 American National Standards Institute/Standards Planning And Requirement Commitee 10 Uma proposta anterior para uma arquitectura geral de bases de dados surgiu em 1971 pelo DBTG (DataBase Task Group) indicado pela CODASYL, 1971 (Conference On DAta SYstems and Languages). O grupo reconheceu a necessidade da existncia de dois nveis: um do sistema e outro do utilizador.

46

BASES DE DADOS COM MICROSOFT ACCESS 2007

Esta arquitectura de trs nveis pode ser utilizada para explicar o conceito de independncia dos dados, a qual pode ser definida como a capacidade de alterar o esquema de um determinado nvel do sistema de base de dados sem alterar o esquema do prximo nvel [Elmasri e Navathe, 2004]. Podemos definir dois tipos de independncia dos dados que so a independncia lgica e a independncia fsica. Independncia lgica a capacidade de alterar o esquema conceptual sem ter de alterar os esquemas externos ou as aplicaes. Podemos alterar o esquema conceptual para expandir a base de dados, para alterar restries ou para reduzir a base de dados. Neste caso, os esquemas externos, relativamente aos dados que se mantm inalterados, no devem ser afectados. Num SGBD que suporta independncia lgica, apenas preciso alterar as definies de vistas e a correspondncia entre o nvel externo e o nvel conceptual [Elmasri e Navathe, 2004]. Independncia fsica a capacidade de alterar o esquema interno sem alterar o esquema conceptual (ou o externo) [Elmasri e Navathe, 2004]. As alteraes no esquema interno podem ser feitas por ser necessrio reorganizar fisicamente os ficheiros, para melhorar o desempenho do sistema. Se a base de dados continuar a ter os mesmos dados, no devero haver alteraes no esquema conceptual. mais fcil conseguir a independncia fsica do que a independncia lgica, porque aquela tem apenas a ver com o isolamento das aplicaes e das estruturas fsicas armazenadas.

Apesar de esta arquitectura de trs nveis no se ter tornado uma norma11, pois muitos dos SGBDs existentes no separam completamente os trs nveis, fornece uma boa base para o entendimento de algumas das funcionalidades de um SGBD.

2.2.5 Linguagens fornecidas pelo SGBD


O SGBD coloca ao dispor de cada utilizador vrias linguagens que permi11

Do ingls standard.

I.2 AS BASES DE DADOS

47

tem a definio dos trs esquemas e das respectivas correspondncias. Podem ser considerados vrios tipos de linguagens. As mais comuns so: uma linguagem de definio de dados DDL12; uma linguagem para manipulao de dados DML13.

Uma DDL utilizada para definir um esquema ou para modificar um esquema j existente. Uma DML utilizada para efectuar todas as operaes bsicas de manipulao de dados, tais como, inserir novos dados, modificar os dados armazenados ou apagar dados da base de dados. Estando claramente definidos os trs nveis da arquitectura ANSI/SPARC, alguns autores falam ainda de: linguagens de definio do armazenamento SDL14; linguagens de definio de vistas VDL15.

A SDL utilizada para especificar o esquema interno. A VDL utilizada para especificar as vistas de cada um dos utilizadores. Nos SGBDs correntes as linguagens no so consideradas em separado. Existe uma nica linguagem que as inclui. Uma das linguagens mais utilizadas nos SGBDs relacionais a SQL16, que iremos abordar em 3.5. Muitos SGBDs apresentam ainda interfaces amigveis tais como QBE17, geradores de formulrios e geradores de relatrios (na parte II veremos exemplos para o SGBD Access). Alguns SGBDs permitem que as sublinguagens sejam embutidas numa linguagem de alto nvel como, por exemplo, Java, C++ ou VBA18.

12 13

Data Definition Language Data Manipulation Language 14 Storage Definition Language 15 View Definition Language 16 Structured Query Language 17 Query By Example 18 No caso do Microsoft Access

48

BASES DE DADOS COM MICROSOFT ACCESS 2007

2.2.6 Classificao dos SGBDs


A classificao de um SGBD pode ser feita atendendo a vrios critrios, nomeadamente: o modelo no qual o SGBD se baseia; o nmero de utilizadores; o nmero de locais pelos quais a base de dados est distribuda.

Atendendo ao modelo, os SGBDs classificam-se em relacionais, em rede, hierrquicos ou outros. Em 2.3 abordaremos mais em pormenor cada um destes modelos. Quanto ao nmero de utilizadores, podemos classificar os SGBDs em SGBDs mono-utilizador, se suportam apenas um utilizador de cada vez, ou multi-utilizador, se suportam a utilizao simultnea de vrios utilizadores. Os SGBDs mono-utilizador esto normalmente ligados utilizao dos computadores pessoais. Exemplos de SGBDs multi-utilizador encontram-se em sistemas para reservas de viagens de avio ou sistemas para gesto de contas correntes em bancos, etc. Um SGBD multi-utilizador dever possuir capacidades de controlo da concorrncia, isto , possibilitar o acesso simultneo de vrios utilizadores mantendo a base de dados num estado de integridade. Quanto distribuio, os SGBDs podem-se classificar em centralizados, se os dados estiverem armazenados apenas num local, ou SGBDs distribudos se a base de dados e as suas aplicaes estiverem distribudas por diversos locais, ligados atravs de uma rede. Os SGBDs distribudos19 apresentam caractersticas internas especficas e uma maior complexidade que os SGBDs centralizados. No entanto, isso no deve ser visvel para os utilizadores.

2.3 MODELOS DE BASES DE DADOS


Diz-nos Chiavenato que para se estudar ou analisar um sistema, utilizam-se modelos e que modelo a representao de um sistema. Ao longo
19 O estudo aprofundado destes assuntos sai fora do mbito deste livro. Para uma abordagem mais aprofundada poder consultar [Elmasri e Navathe, 2004] (chapter 25) ou [Rob e Coronel, 2004] (chapter 21).

I.2 AS BASES DE DADOS

49

dos anos tm vindo a ser delineados vrios modelos para representar um Sistema de Bases de Dados. Um modelo de bases de dados uma coleco de estruturas lgicas utilizadas para representar a estrutura dos dados e as relaes existentes entre eles na base de dados. Podemos distinguir entre dois tipos de modelos, os modelos conceptuais ou de alto nvel e os modelos de implementao ou fsicos. Os modelos conceptuais so utilizados para se obter uma descrio lgica do sistema e preocupam-se com o que est representado na base de dados. Um dos mais populares o modelo Entidade-Relacionamento (E-R), que abordaremos no captulo 4. Os modelos de implementao descrevem a forma como os dados esto representados na base de dados e preocupam-se com o como as estruturas de dados so representadas e implementadas. Podemos dividir estes modelos em trs geraes. Na primeira gerao colocam-se o modelo hierrquico, que abordaremos em 2.3.1, e o modelo em rede, que ser abordado em 2.3.2. Na segunda gerao temos o modelo relacional, que ser abordado em 2.3.3 e que ser estudado mais em pormenor no captulo 3. No ponto 2.4 abordaremos os chamados modelos de 3 gerao.

2.3.1 Modelo Hierrquico


As duas estruturas bsicas do modelo hierrquico so os registos e os relacionamentos pai-filho. Como o prprio nome do modelo indica, existem vrios registos relacionados atravs de uma estrutura hierrquica do tipo pai-filhos, com vrios nveis. Um registo uma coleco de valores de campos que fornece informao sobre uma entidade ou instncia de um relacionamento. Um relacionamento do tipo pai-filho um relacionamento de 1:M20, entre dois registos. O primeiro registo o registo pai e os registos que com ele esto relacionados so os registos filhos. O esquema de uma base de dados hierrquica pode ser representado por uma estrutura como a apresentada na figura I.2.6, que representa uma parte da base de dados de uma empresa. Neste diagrama, cada registo representado por um rectngulo e o relacionamento, por uma linha que liga o registo pai ao registo filho. Ao registo
L-se um para muitos e significa que, cada registo pai pode estar relacionado com vrios registos filho, mas cada registo filho s est relacionado com um registo pai.
20

50

BASES DE DADOS COM MICROSOFT ACCESS 2007

que se encontra no nvel 0 chama-se raiz, no exemplo apresentado, Departamento (D). O computador no v a estrutura lgica que consiste numa rvore. A estrutura deve ser representada atravs de um caminho. O acesso a qualquer um dos registos deve ser feito a partir da raiz e correndo cada um dos ns da rvore da esquerda para a direita e de cima para baixo. No exemplo considerado, para aceder ao registo projecto (P), teriam de se percorrer os registos D, E, S, F, R e P. Existem algumas restries inerentes ao modelo hierrquico, como por exemplo: apenas o registo raiz pode ocorrer sem estar relacionado com um registo pai; se um registo filho tem dois ou mais registos pai, ento o filho deve ser duplicado para cada um dos pais.

D Nvel 0

Departamento Dnome Dnumero NomeChefe DataInicioChe

E Nvel 1

Empregado Nome BI DataNasc

Projecto Pnome Pnumero PLocal

F Nvel 2

Dependente nome sexo DataNasc

Supervisor nome BI

Trabalhador nome BI Horas

Figura I.2.6 Uma estrutura hierrquica21

As bases de dados hierrquicas apresentam alguns problemas, tais como:


21

dificuldades de representao de relacionamentos do tipo M:N22;

Adaptado de [Elmasri e Navathe, 2004].

I.2 AS BASES DE DADOS

51

existem redundncias nos dados, inerentes ao prprio modelo, pois quando um registo filho tem mais do que um pai deve ser repetido para cada um dos pais; falta de independncia lgica; a utilizao e a programao nos Sistemas de Bases de Dados hierrquicos muito exigente, diz-se mesmo que um sistema de prgramadores para programadores; a no existncia de padres, o que dificulta a portabilidade.

Um dos mais difundidos SGBDs, comercialmente disponvel, concebidos segundo o modelo hierrquico foi desenvolvido pela IBM na dcada de 60 e ficou conhecido como MIS (Management Information System).

2.3.2 Modelo em Rede


O modelo em rede surgiu tendo por base o modelo hierrquico; assim sendo, apresenta com ele algumas semelhanas. Neste modelo um relacionamento chama-se set e -lhe atribudo um nome. O registo pai chama-se owner e o registo filho chama-se member. Ao contrrio do que acontece no modelo hierrquico, no qual um registo filho s pode ter um pai, um member pode ter mais do que um owner. O acesso aos dados feito de forma semelhante do modelo hierrquico. O esquema de dados em rede pode ser representado por uma estrutura como a representada na figura I.2.7. Existem algumas restries que devem ser impostas aos membros de um set e que devem ser definidas no momento do desenho da base de dados, dependendo da forma como queremos que eles se comportem. Existem opes chamadas de insero (manuais e automticas) e opes chamadas de reteno (opcionais, mandatrias ou fixas). Apesar de apresentar vrias vantagens, nomeadamente facilitar a representao de relacionamentos de M:N e do acesso aos dados ser mais flexvel do que no modelo hierrquico, o modelo em rede apresenta tambm
22

L-se muitos para muitos. Por exemplo, numa escola do ensino superior, uma disciplina pode ser frequentada por muitos alunos e um aluno pode frequentar muitas disciplinas. Diz-se que existe um relacionamento de muitos para muitos entre disciplina e alunos.

52

BASES DE DADOS COM MICROSOFT ACCESS 2007

algumas desvantagens. Uma das grandes desvantagens tem a ver com o facto de o sistema ser muito complexo, exigindo um conhecimento profundo por parte dos programadores, para que a sua utilizao seja feita de forma eficiente, e um grande esforo na sua manuteno, devido ao facto de no existir verdadeiramente independncia dados-aplicaes. Alm disso, o ambiente pouco amigvel para os utilizadores finais.

Empregado Nome BI DataNasc Morada Sexo Salrio Supervisiona -um-supervisor Departamento Nome Nmero Local DataIniChe Nome_Dept Trabalha-para

Gere

Supervisor S-BI E-Trabalha-em

Controla

Trabalha-Em E-BI P-Nmero Horas

P-Trabalha-em

Depende-de

Projecto Nome Nmero Localizao Dependente

E-BI Nome Sexo DataNasc Relao

Figura I.2.7 Uma estrutura em rede

23

Ao contrrio daquilo que acontecia no modelo hierrquico, para o qual no existiam normas definidas, o modelo em rede surgiu a partir das normas
23

Adaptado de [Elmasri e Navathe, 2004].

I.2 AS BASES DE DADOS

53

estabelecidas pelo DBTG, indicado pela CODASYL em 1971. Um dos mais conhecidos SGBDs concebidos segundo este modelo o IDMS (Integrated Database Management System), desenvolvido pela Computer Associates Internacional, Inc.

2.3.3 O Modelo Relacional


O modelo relacional de bases de dados, apresentado por Edgar F. Codd em 1970, num artigo intitulado A relational Model of Data for Large Shared Data Banks, representa uma quebra com os modelos anteriores e uma verdadeira revoluo. A estrutura bsica do modelo relacional a tabela, tambm chamada relao24. Uma base de dados relacional formada por um conjunto de tabelas que se relacionam atravs da partilha de atributos comuns (figura I.2.8). Apesar da tabela do modelo parecer um ficheiro, existe uma diferena fundamental entre eles: uma tabela fornece total independncia quer dos dados quer funcional, pois uma estrutura puramente lgica.

Empregado CodEmpregado 1 2 3 4 NomeEmpregado Jos Manuel Tiago Pedro Projnum 1 2 1 3 Projecto Projnum 1 2 3 Proj-descr Colocar Tapete Pintar parede Colocar portas Local Porto Gaia Maia

Figura I.2.8 Tabelas do Modelo Relacional

24 Em [Codd, 1982] afirma-se que as tabelas esto num nvel de abstraco mais baixo do que as relaes, visto que do a impresso de que a ordem das colunas e das linhas da tabela importante, o que no acontece, pois a relao independente da ordem. Ainda assim, as tabelas continuam a ser a representao conceptual mais importante das relaes, pois so universalmente compreendidas.

54

BASES DE DADOS COM MICROSOFT ACCESS 2007

As primeiras implementaes comerciais de SGBDs concebidos segundo este modelo surgiram na dcada de 1980. Referimos o SQL/OS da IBM ou o SGBD Oracle. Actualmente, algumas das aplicaes mais populares so o DB2 e o Informix (da IBM), o Oracle e Rdb (da Oracle), o Ingress (da Computer Associates International, Inc), o SQL Server e o Access (da Microsoft). Um dos motivos que levaram ao grande sucesso do modelo relacional a facilidade que possui para responder a questes ad-hoc, atravs de uma linguagem prpria SQL (Structured Query Language). Abordaremos mais em pormenor este modelo no prximo captulo. Apesar de todas as vantagens apresentadas, o modelo relacional apresenta tambm algumas desvantagens. Uma delas tem a ver com o facto de o SGBD relacional ser muito exigente quer a nvel do hardware, quer a nvel do sistema operativo, devido sua complexidade. Este aspecto tem vindo a ser ultrapassado devido crescente capacidade dos computadores. Outro aspecto a considerar o facto de, devido ao seu ambiente amigvel, os SGBDs relacionais serem utilizados sem ter em linha de conta o desenho cuidado das estruturas necessrias, gerando muitas vezes problemas semelhantes aos dos sistemas de ficheiros. Nos captulos 4 e 5 sero abordadas tcnicas que permitem fazer o desenho de uma base de dados apropriada.

2.3.4 Novos modelos: Modelos Orientados a Objectos e Extenses ao Modelo Relacional


As bases de dados relacionais tm tido grande aceitao em aplicaes clssicas nas organizaes, nomeadamente no processamento de ordens de encomendas, no controlo de inventrios, marcao de reservas e muitas outras. Nos ltimos anos, as bases de dados tm aumentado quer em tamanho quer em complexidade nas suas aplicaes, colocando exigncias com as quais difcil lidar com a utilizao de tecnologias relacionais clssicas. Nestas aplicaes, incluem-se os Sistemas de Informao Geogrfica (SIG), aplicaes mdicas e cientficas, os sistemas CAD e CAM, os sistemas multimdia, entre outras. Em qualquer destes casos, o volume de informao a tratar grande e o tipo de objectos a guardar na base de dados complexo. Desta forma, surgiram novos modelos de representa-

I.2 AS BASES DE DADOS

55

o de dados, nomeadamente os modelos orientados a objectos25, que tm origem nas linguagens de programao orientadas a objectos. Como resposta surgiram tambm extenses ao modelo relacional, de modo a suportarem caractersticas dos modelos orientados a objectos. Um objecto uma representao conceptual de uma entidade do mundo real (por exemplo, factura) contendo os atributos que o descrevem (por exemplo, nmero, data, valor total) e o seu comportamento, ou seja, as aces que lhe esto associadas (por exemplo, criar ou imprimir). Isto significa que um objecto contm quer a estrutura dos dados quer o conjunto de aces que podemos definir encapsulamento. Estas aces chamam-se mtodos. Um atributo pode ser uma referncia a outro objecto. Cada objecto contm um identificador nico que independente dos seus atributos e invisvel para o utilizador. O estado de um objecto o conjunto de valores que os atributos do objecto tm num dado momento. Os metodos podem ser utilizados para alterar o estado dos objectos. Os objectos comunicam entre si atravs de mensagens. Uma mensagem um pedido de um objecto a outro (pode ser o mesmo objecto) solicitando-lhe que execute um dos seus mtodos. Uma classe uma coleco de objectos semelhantes que partilham a estrutura e o comportamento (por exemplo, a classe documentos), permitindo que os atributos e os mtodos associados possam ser definidos uma vez para a classe em vez de separadamente para cada objecto. As classes esto organizadas atravs de uma estrutura hierrquica, na qual os objectos de uma classe herdam os atributos e mtodos das suas super-classes herana alm de possurem atributos e mtodos prprios. A herana permite que uma classe seja definida como caso especial de uma classe mais geral. Os casos especiais so conhecidos como sub-classes e os casos mais gerais so conhecidos como super-classes (por exemplo, factura e nota de encomenda so sub-classes da super-classe documentos). Podemos falar de herana simples, sendo que neste caso um objecto pode ter apenas uma super-classe pai e de herana mltipla, sendo que neste caso um objecto pode ter duas ou mais super-classes pai. O polimorfismo uma caracterstica importante dos sistemas orientados a objectos. Significa que a mesma mensagem enviada a objectos pertencentes a classes diferentes, origina a resposta correcta em cada caso, ou
25

Do ingls Object-Oriented.

56

BASES DE DADOS COM MICROSOFT ACCESS 2007

seja, podemos utilizar o mesmo nome para mtodos em classes diferentes, pois o seu comportamento ser adequadamente diferente em resposta mesma mensagem. O processo de seleccionar o mtodo apropriado baseado num tipo de objecto chama-se binding. Quando este tem lugar ao executar o programa, diz-se que existe binding dinmico. Um SGBD orientado a objectos resulta da combinao das caractersticas tradicionais de um SGBD (tais como gesto do armazenamento dos dados, gesto da segurana, manuteno da integridade dos dados) e das caractersticas de sistemas orientados a objectos, tais como, herana, encapsulamento e polimorfismo. O Manifesto dos sistemas de bases de dados orientados a objectos apresentado por Atkinson, et al em 198926, apresenta treze regras que descrevem todas as caractersticas desejveis de um SGBD orientado a objectos. O manifesto contm dois conjuntos de regras, apresentadas na figura I.2.9. J na dcada de 90 foi formado por vrios vendedores de SGBDs um grupo de trabalho com o qual se pretendia a definio de normas no que concerne a este assunto o Object Database Management Group (ODMG). Este grupo concluiu o seu trabalho em 2001, apresentando-se as concluses sob a forma de um livro: The object Data Standard ODMG 3.0. Prope-se um modelo de dados orientado a objectos que consiste de trs partes: um modelo de objectos; uma linguagem de definio de objectos (equivalente a uma linguagem de definio de dados de um SGBD convencional); uma linguagem para questes (queries), em ambientes orientados a objectos, com sintaxe semelhante do SQL.

Actualmente, o grupo est a trabalhar no desenvolvimento daquilo a que chamam 4 gerao de padres para bases de dados orientadas a objectos.

Este manifesto foi escrito em 1989 por Malcolm Atkison, Franois Bancilhon, David st DeWitt, Klaus Dittrick, David Maier e Stanley Zdonik na 1 International Conference in Deductive and Object-Oriented Database em Kioto, Japo. (http://www.cs.cmu.edu/People/clamen/OODBMS/Manifesto/htManifesto/Manifesto.html)

26

I.2 AS BASES DE DADOS Deve ser um sistema orientado a objectos 1. O sistema deve suportar objectos complexos 2. O sistema deve suportar a identidade de um objecto 3. O sistema deve suportar encapsulamento 4. Devem ser suportados tipos ou classes 5. O sistema deve suportar herana na estrutura hierrquica de classes Deve ser um SGBD

57

9. Os dados devem ser permanentes

10. O SGBD deve ser capaz de lidar com bases de dados muito grandes 11. O SGBD deve suportar utilizadores concorrentes 12. O SGBD deve ser capaz de recuperar de falhas de hardware e software 13. As questes a colocar sobre os dados devem poder ser efectuadas de forma simples

6. O sistema deve suportar binding dinmico 7. A linguagem de manipulao de dados deve ser completa 8. O conjunto de tipos de dados deve ser extensvel Figura I.2.9 Regras do Manifesto dos Sistemas de Bases de Dados Orientados a Objectos

Como exemplos, disponveis comercialmente, de sistemas de bases de dados orientados a objectos apresentamos os seguintes: GEMSTONE/ OPAL, ONTOS, Objectivity, Versant, ObjectStore, ARDENT e POET. Um exemplo de um sistema open source o db4o. As rpidas mudanas que se tm vindo a verificar no ambiente das bases de dados foraram os defensores das bases de dados relacionais a uma resposta ao desafio colocado pelos ambientes orientados a objectos, atravs da criao de extenses ao modelo relacional. No existe um modelo relacional estendido nico. Existem sim vrias propostas que diferem na forma como as extenses so feitas. Em comum existem as tabelas do modelo relacional, a linguagem para questes e a incorporao de alguns conceitos de modelos orientados a objectos.

58

BASES DE DADOS COM MICROSOFT ACCESS 2007

Alguns exemplos comerciais incluem o DB2 Universal Database, Oracle Universal Server, Postgre SQL, TITANIUM, GigaBase, entre outros. Stonebrakers27 props uma visualizao do mundo das bases de dados classificando-as segundo quatro quadrantes, como apresentado na figura I.2.10.

Relacionais

Extenses de Relacional

Capacidade de procura/pesquisa

Suporte multi-utilizador

Sistemas de Ficheiros

Orientados a objectos

Complexidade / Extensibilidade

Figura I.2.10 Os quatro quadrantes de Stonebraker

Apesar de esta classificao ser interessante, existem muitas aplicaes de bases de dados que no se revem facilmente num dos quadrantes. Alm disso, com o trabalho realizado pelo grupo ODMG a distino entre extenso ao modelo relacional e modelo orientando a objectos cada vez menos clara. Actualmente existem debates entre os proponentes dos dois modelos. Ambos esto de acordo em que o modelo relacional insuficiente para certos tipos de aplicaes, diferindo, no entanto, na sua opinio quanto melhor soluo. C. J. Date defende que as chamadas extenses ao modelo relacional no so mais do que o modelo relacional propriamente dito, dado que este, atravs do conceito de domnio, contm todas
27

Citado em [Connoly e Begg,1998].

I.2 AS BASES DE DADOS

59

as propriedades desejadas. Afirma ele que o problema reside no facto de estas caractersticas no terem sido implementadas pelos fabricantes de SGBDs relacionais. A evoluo dos sistemas de bases de dados parece indicar que as extenses ao modelo relacional se tornaro dominantes em aplicaes complexas de negcios, enquanto que os modelos orientados a objectos ocuparo um nicho de mercado que consistir de aplicaes que requeiram grandes quantidades de dados com relaes complexas e tipos de dados especializados.

2.4 OUTRAS APLICAES DAS BASE DE DADOS


No final do sculo XX surgiram novos desenvolvimentos na rea das bases de dados. As data warehouses, as ferramentas OLAP, as ferramentas de data mining e a integrao das bases de dados com a Web so realidades cada vez mais presentes nos sistemas de informao das organizaes.

2.4.1 Data Warehouses


Uma Data Warehouse28 uma base de dados que agrupa um grande volume de dados. Esses dados so optimizados para futuras anlises, servindo de base tomada de decises nas organizaes. O chamado pai das Data Warehouses, Bill Inmon, define-as como uma coleco de dados integrados, orientada para determinados assuntos, varivel no tempo e no voltil, que fornece apoio na tomada de deciso. Os dados dizem-se integrados pois, numa Data Warehouse, consolidam-se os dados provenientes de diversas fontes, muitas vezes com formatos distintos. A integrao dos dados implica um esforo bem organizado para os definir e padronizar, de modo a torn-los consistentes, para que possam ser apresentados aos utilizadores de forma centralizada. A coleco de dados diz-se orientada para determinados assuntos, visto estar organizada de modo a fornecer respostas a questes provenientes de diversas reas funcionais de uma companhia (tais como, clientes, produtos, vendas,...).

28

Numa traduo directa de Data Warehouse, obtemos Armazm de Dados.

60

BASES DE DADOS COM MICROSOFT ACCESS 2007

Na medida em que os dados, na Data Warehouse, representam o fluxo de dados ao longo de um determinado perodo (a ltima semana, o ltimo ms, o ltimo ano,...) diz-se que so variveis no tempo. Alm disso, a variabilidade no tempo tambm est presente na medida em que os dados so periodicamente actualizados, provocando que todas as agregaes que dependem da varivel tempo sejam novamente calculadas. Visto que os dados, na Data Warehouse, no so actualizados em tempo real, mas sim regularmente recolhidos a partir dos sistemas operacionais (OLTPs29 ou sistemas de processamento de transaces) e visto que os dados existentes no so nunca removidos sendo os novos dados adicionados continuamente, diz-se que os dados so no volteis. Pela breve descrio apresentada, podemos verificar que estas bases de dados tm caractersticas diferentes das bases de dados dos chamados sistemas de processamento de transaces, que apresentmos ao longo das seces 2.1 a 2.3. Estas so concebidas de modo a maximizar a capacidade de processamento de um grande nmero de transaces que so previsveis, repetitivas e utilizadas muitas vezes, enquanto que aquelas so concebidas de modo a maximizar a capacidade de resposta a um nmero relativamente baixo de transaces, que so de natureza imprevisvel e requerem respostas a questes ad-hoc, no estruturadas e heursticas. Naturalmente, sendo de naturezas distintas, apresentam caractersticas distintas. Na figura I.2.11 apresentamos uma comparao entre as bases de dados utilizadas nos sistemas OLTP e as Data Warehouses, utilizadas pelos sistemas de apoio deciso (DSS Decision Support Systems). Dado que a criao das Data Warehouses envolve custos elevados, muito tempo despendido e um esforo considervel por parte da gesto, muitas empresas iniciam a sua incurso no mundo das Data Warehouses por um conjunto de dados mais manejveis, orientados para pequenos grupos dentro da organizao as Data Marts30. Podemos definir uma Data Mart como um subconjunto de uma Data Warehouse que suporta as exigncias de um dado departamento ou de uma funo do negcio. Uma Data Mart pode estar isolada ou pode estar ligada a uma Data Warehouse central.
29 30

On Line Transaction Processing. Numa traduo directa de Mart, obtemos mercado, centro de comrcio, emprio comercial.

I.2 AS BASES DE DADOS Bases de dados utilizadas em OLTPs Mantm dados actuais Guardam dados detalhados Os dados so dinmicos Processamentos repetitivos Grande nmero de transaces Padro de utilizaes previsvel Orientadas para transaces Orientadas para aplicaes Suportam decises do dia-a-dia Servem um grande nmero de utilizadores de nvel operacional Data Warehouses Mantm dados histricos Guardam dados detalhados e grandemente resumidos Os dados so maioritariamente estticos Processamentos ad hoc, no estruturados e heursticos Mdio a baixo nvel de transaces Padro de utilizaes no previsvel Orientadas para anlise Orientadas para determinados assuntos Suportam decises estratgicas Servem um nmero relativamente baixo de utilizadores de nvel administrativo

61

Figura I.2.11 Comparao entre bases de dados utilizadas em OLTPs e Data 31 Warehouses

Os dados armazenados numa Data Warehouse serviro para responder a questes sobre determinados factos analisados de vrias formas perspectiva multi-dimensional. O star schema uma tcnica de modelao de dados que gera um modelo facilmente utilizvel numa perspectiva de anlise multi-dimensional dos dados, preservando, ainda assim, as estruturas relacionais. At h muito pouco tempo, as ferramentas disponveis para aceder a grandes volumes de dados forneciam apenas uma anlise limitada e relativamente simplista desses dados. O nascimento das Data Warehouses tem sido acompanhado por uma exigncia crescente por parte dos seus utilizadores no que concerne a ferramentas de acesso mais poderosas. Como resposta, tm vindo a ser desenvolvidas ferramentas tais como On-Line

31

Adaptado de [Connoly e Begg, 1998].

62

BASES DE DADOS COM MICROSOFT ACCESS 2007

Analytical Processing (OLAPs) e Data Mining, que fornecem capacidades analticas avanadas.

2.4.2 OLAPs
OLAP, do ingls On-Line Analytical Processing, so ferramentas que proporcionam ambientes para anlise avanada de dados, fazendo a sntese, anlise e consolidao de grandes volumes de dados, armazenados numa perspectiva multi-dimensional. A perspectiva multi-dimensional dos dados permite que a anlise dos dados do negcio seja feita sob vrias perspectivas (dimenses): vendas por cliente, vendas por regio, vendas por vendedor, etc. As tcnicas de anlise de dados numa perspectiva multi-dimensional podem ser ampliadas atravs das seguintes funes: funes de representao de dados tais como grficos 3-D; funes para agregao, consolidao e classificao de dados que permitem ao analista dos dados do negcio a criao de nveis de agregao mltiplos, a visualizao dos dados sob diferentes perspectivas e a apresentao dos dados pormenorizados, contidos nos dados consolidados; funes de clculo, tais como variveis de negcio (margens de venda, cotas de mercado, etc.), rcios financeiros e contabilsticos (lucro, retorno, etc.), funes estatsticas, etc.; funes de modelao de dados tais como cenrios do tipo Se-Ento e programao linear.

As caractersticas dos OLAPs tornam-se muito mais teis se o acesso a elas for simples. Assim sendo, importante a existncia de interfaces amigveis. Um dos objectivos do processamento de dados processar os dados contidos em bases de dados com uma complexidade crescente, sem sacrificar os tempos de resposta. As arquitecturas cliente/servidor permitem dividir o sistema OLAP em vrios componentes que podem ser colocados no mesmo computador ou podem ser distribudos por vrios computadores. As ferramentas OLAP podem ser organizadas segundo duas categorias principais:

I.2 AS BASES DE DADOS

63

MOLAP (Multidimensional OLAP) As ferramentas MOLAP utilizam estruturas de dados apropriadas e SGBDs multi-dimensionais para organizar, navegar e analisar os dados. Os dados so organizados na forma de matrizes multidimensionais. O utilizador final visualiza os dados como um cubo a trs dimenses o cubo de dados. O nmero de dimenses pode crescer at n dimenses temos o chamado hipercubo. ROLAP (Relational OLAP) As ferramentas ROLAP so a categoria de OLAPs que se tem desenvolvido mais rapidamente. As ferramentas ROLAP utilizam SGBDs relacionais, atravs da utilizao de camadas de metadados, evitando assim a criao de estruturas de dados multi-dimensionais estticos.

A tendncia actual que as ferramentas MOLAP e ROLAP convirjam, produzindo um novo tipo de SGBDs que utilizem as melhores capacidades de cada uma das ferramentas.

2.4.3 Data Mining


S conseguimos perceber o verdadeiro valor de uma Data Warehouse se formos capazes de extrair caractersticas dos dados, relaes, dependncias ou tendncias (padres) previamente desconhecidos. As ferramentas de data mining so uma das melhores formas de o conseguir. As ferramentas de data mining so pr-activas, isto , em vez de ser o utilizador a definir o problema e seleccionar os dados e as ferramentas que vo analis-los, as ferramentas de data mining pesquisam os dados de forma automtica, procura de anomalias e relaes, identificando problemas no identificados previamente pelo utilizador final. Segundo [Fayad et al, 1996], os dois principais objectivos de alto nvel do data mining tendem a ser, na prtica, a previso e a descrio. A previso envolve a utilizao de algumas variveis da base de dados para prever valores desconhecidos ou futuros ou outras variveis de interesse. A descrio concentra-se em encontrar padres que descrevem os dados de forma compreensvel para as pessoas.

64

BASES DE DADOS COM MICROSOFT ACCESS 2007

O Gartner Group descreve data mining como sendo o processo de descobrir novas correlaes, padres e tendncias teis, examinando minuciosamente grandes volumes de dados guardados em repositrios, utilizando tecnologias de reconhecimento de padres, bem como tcnicas da matemtica e em particular da estatstica. O data mining tambm apresentado como uma das fases do processo de descoberta de conhecimento em bases de dados, processo este que composto por seis fases [Larose, 2005]: Seleco de dados; Limpeza de dados; Enriquecimento; Transformao de dados ou codificao; Data mining; Interpretao, avaliao e apresentao dos resultados.

As tecnologias de data mining so recentes pelo que, por vezes, difcil identificar metodologias padro. No entanto, existe j algum trabalho desenvolvido nesse sentido: A metodologia CRISP-DM (http://www.crisp-dm.org); A metodologia SEMMA (http://www.sas.com/technologies/analytics/datamining/miner/semma.html).

A metodologia CRISP-DM (Cross-Industry Standard Process for Data Mining) foi desenvolvida a partir de 1996 por um consrcio que inicialmente era formado por trs empresas, nomeadamente a Daimler Chrysler, a SPSS e a NCR. Actualmente, a OHRA integra tambm o consrcio. Esta metodologia fornece um processo padro que ajusta o data mining estratgia geral de resoluo de problemas de uma unidade de negcio ou de uma unidade de investigao. De acordo com a CRISP-DM um projecto de data mining tem um ciclo de vida de seis fases: Estudo do negcio Estudo dos dados

I.2 AS BASES DE DADOS

65

Preparao dos dados Modelao Avaliao Implementao

A SEMMA (Sample, Explore, Modify, Model, Assessment) foi desenvolvida pelo Instituto SAS, Inc. Segundo a SEMMA temos um ciclo de vida de cinco etapas: Amostragem (Sample); Explorao (Explore); Modificao (Modify); Modelao (Model); Avaliao (Assessment).

Um exemplo de um resultado obtido por ferramentas de Data Mining pode ser que 90% dos clientes que compraram uma televiso tm uma apetncia de 88% para comprar um vdeo nas 4 semanas seguintes. Este resultado pode ser utilizado na tomada de deciso relativa a uma campanha de marketing de vdeos. Exemplos de ferramentas de Data Mining incluem Clementine da SPSS, Itelligent Miner da SAS , MineSet da Purple Insight, etc.

2.4.4 Integrao com a Web


A World Wide Web32 ou de forma abreviada a Web ou WWW, para muitas pessoas sinnimo de Internet. O pai da Web Tim Berners-Lee, do CERN33, que teve a ideia de criar uma teia electrnica de informao sobre investigao. Cada uma das pginas Web um documento em hipertexto. O conceito de Hipertexto foi inventado nos anos 50, por Ted Nelson, e significa que uma poro de texto num documento pode remeter para outros pedaos de texto dentro do mesmo documento ou de outros documentos. Inicialmente as pginas da Web eram baseadas apenas em texto mas
32 33

Teia espalhada pelo mundo. O laboratrio Europeu de Fsica das Partculas.

66

BASES DE DADOS COM MICROSOFT ACCESS 2007

actualmente apresentam caractersticas de multimdia. Hoje encontramos na Web informao sobre quase tudo. Foi desenvolvida uma linguagem chamada HTML Hyper Text Mark-up Language que consiste num conjunto de instrues, inseridas pelo programador em texto simples. Os navegadores34 da Internet apresentam as pginas de forma compreensvel ao utilizador final. Existem pginas Web cujo contedo no se altera a no ser que o prprio ficheiro (em HTML) seja alterado pginas estticas. cada vez mais comum a existncia de pginas Web que so geradas de cada vez que so acedidas pginas dinmicas. As bases de dados, pelas suas caractersticas eminentemente dinmicas, prestam-se a uma integrao na Web atravs da criao de pginas dinmicas. Nesta situao, o hipertexto deve ser automaticamente gerado pelos servidores, atravs da utilizao de plug-ins e outras extenses que so includas no lado cliente, ou servidor (com PHP, por exemplo). Estas extenses adicionam algumas funcionalidades ao navegador da Internet. As extenses mais comuns so plug-ins, linguagem Java e Java Scripts, ActiveX e VBScript, embora existam outras. O Microsoft Access 2007 inclui algumas funcionalidades para a Web, que poder consultar nas partes II e III deste livro. Nos ltimos tempos tem-se verificado um grande desenvolvimento de tecnologias que permitem a integrao de sistemas de gesto de bases de dados com a Web, atravs da utilizao de arquitecturas adequadas. Um exemplo so os sistemas de comrcio electrnico. Os documentos HTML podem ser formatados de forma a que as pessoas os possam efectivamente compreender. No entanto, difcil interpret-los automaticamente atravs da utilizao de aplicaes informticas. medida que as aplicaes de comrcio electrnico e outras aplicaes da Web se vo tornando cada vez mais automatizadas, crucial que a troca de documentos entre computadores e a interpretao dos seus contedos seja feita de forma automtica. Neste contexto, surgiu uma nova linguagem de programao, a linguagem XML. XML (Extensible Markup Language) uma metalinguagem utilizada para representar e manipular elementos de dados. Foi concebida de forma a facilitar a troca de documentos estruturados (tais como notas de encomenda e facturas), atravs da Web. Esta linguagem tem vindo a tornar-se o padro na troca de dados em aplicaes de comrcio electrnico.
34

Do ingls browser.

I.2 AS BASES DE DADOS

67

TERMOS CHAVE

Base de dados Sistema de Ficheiros Sistema de Bases de Dados Redundncias nos dados Independncia Dados-Aplicaes Sistema de Gesto de Bases de Dados Catlogo do Sistema Abstraco dos dados Vistas dos dados Administrador de Dados Administrador da Base de Dados Analista da base de dados Programador de Aplicaes Utilizador Final

Funes de um SGBD Arquitectura ANSI/SPARC Independncia Lgica Independncia Fsica Linguagem de Definio de Dados Linguagem de Manipulao de Dados Modelo Hierrquico Modelo em Rede Modelo Relacional Modelos Orientados a Objectos Extenses ao modelo relacional Data Warehouses OLAP Data Mining Integrao das Bases de Dados com a Web

68

BASES DE DADOS COM MICROSOFT ACCESS 2007

PARA REVER
9. Explique sucintamente o que entende por: a. Base de dados; b. Sistema de ficheiros; c. Sistema de base de dados; d. Sistema de gesto de base de dados; e. Desenvolvimento de sistemas de informao; f. Linguagem de definio de dados; g. Linguagem de manipulao de dados; h. Linguagem de definio do armazenamento; i. Linguagem de definio de vistas; j. Data Warehouses; k. OLAP; l. Data Mining; m. XML. 10. Explique o funcionamento de um Sistema de Ficheiros. Poder utilizar um exemplo. 11. Explane os dois principais problemas na utilizao de um Sistema de Ficheiros. 12. Neste captulo explica-se o conceito de Sistema de Base de Dados. a. O que um Sistema de Base de Dados e quais as suas principais caractersticas? b. Quais so as vantagens e desvantagens de um SBD? 13. Apresente os possveis intervenientes num Sistema de Bases de Dados. 14. Apresente trs das principais funes de um Sistema de Gesto de Bases de Dados. 15. A partir da explicao da arquitectura ANSI/SPARC, explique os conceitos de independncia lgica e independncia fsica. 16. Um Sistema de Gesto de Bases de Dados coloca ao dispor de cada utilizador diversos tipos de linguagens. Apresente e explique cada uma delas.

I.2 AS BASES DE DADOS

69

17. A classificao de um Sistema de Gesto de Bases de Dados pode ser feita atendendo a diversos critrios. Apresente os diversos critrios e respectivas classificaes. 18. Apresente as principais caractersticas de cada um dos seguintes modelos de bases de dados: a. Modelo hierrquico b. Modelo em rede c. Modelo relacional d. Modelo orientado a objectos e. Extenses ao modelo relacional 19. Apresente as principais diferenas entre uma base de dados operacional e uma data warehouse. 20. Quais as principais diferenas entre ROLAP e MOLAP. 21. Apresente um exemplo de aplicao de ferramentas de data mining. 22. Distinga pginas Web estticas de pginas Web dinmicas.

PARA INVESTIGAR
5. Durante este captulo foi abordada a arquitectura ANSI/SPARC, para sistemas de bases de dados. Anteriormente a esta arquitectura tinha sido apresentada uma outra arquitectura de apenas dois nveis, proposta em 1971 pelo DBTG (DataBase Task Group) indicado pela CODASYL, 1971 (Conference On DAta SYstems and Languages). Apresente as principais caractersticas dessa arquitectura. 6. Alm dos modelos de bases de dados apresentados neste captulo, alguns autores apresentam bases de dados concebidas segundo outros modelos. Um exemplo so as bases de dados baseadas na

70

BASES DE DADOS COM MICROSOFT ACCESS 2007

lgica, mais concretamente o modelo lgico-dedutivo. Investigue e apresente uma descrio deste modelo de bases de dados. 7. Uma das reas emergentes de aplicao das data warehouses, das ferramentas OLAP e do data mining a rea do Business Intelligence. Caracterize o conceito de Business Intelligence e apresente alguns exemplos de aplicaes. 8. As metodologias CRISP-DM e SEMMA so duas metodologias utilizadas em projectos de data mining. Descreva as vrias fases da cada uma dessas metodologias e efectue um estudo comparativo. 9. No final deste captulo referem-se algumas extenses aplicadas meta-linguagem HTML, tais como plug-ins, linguagem Java e Java Scripts, ActiveX e VBScript. Refere-se tambm que existem outras. Descreva as extenses aqui referidas e apresente mais alguns exemplos.

I.3 O Modelo Relacional de Bases de Dados

O Modelo Relacional de Bases de Dados actualmente o modelo mais popular, devido ao facto de apresentar grande simplicidade e ainda assim possuir grande capacidade de resposta s necessidades dos utilizadores. O Modelo Relacional foi apresentado por Edgar F. Codd em 1970 num artigo publicado na Communications of the ACM, intitulado A Relational Model of Data for Large Shared Data Banks e representou, poca, uma verdadeira revoluo. A sua implantao foi difcil e havia bastante cepticismo em relao ao modelo apresentado, como referido pelo prprio Codd, em 1982, no artigo Relational Database: A practical Foundation for Productivity, no ponto 6, Septicism about relational systems. Pensamos que a afirmao do modelo relacional teve lugar por assentar numa base terica forte, que lhe confere mais firmeza. Codd, que possua uma forte formao matemtica, baseou-se nas teorias matemticas de conjuntos e de lgica de predicados para a concepo do modelo relacional de bases de dados. Ao longo deste captulo iremos abordar vrios aspectos importantes do modelo relacional. Em 3.1 veremos alguma terminologia bsica sobre o modelo relacional e em 3.2 abordaremos um aspecto fundamental do modelo: os atributos chave. Em 3.3 estudaremos as regras de integridade inerentes ao modelo relacional. Os operadores da lgebra Relacional sero apresentados em 3.4. Uma importante linguagem de bases de dados relacionais a SQL ser abordada em 3.5. Finalmente, em 3.6, apresentamos as chamadas regras de Codd, que permitiriam saber se um SGBD ou no relacional.

72

BASES DE DADOS COM MICROSOFT ACCESS 2007

3.1 TERMINOLOGIA BSICA


No modelo relacional os dados so representados como um conjunto de relaes. Uma relao uma estrutura lgica representada por uma tabela com linhas e colunas. importante no confundir esta estrutura lgica com a estrutura fsica que contm os dados. No modelo relacional as relaes so utilizadas para guardar informao sobre os objectos que queremos representar na base de dados. Na figura I.3.1 apresentado um exemplo de uma relao que guarda informao sobre os empregados de uma determinada empresa. Um atributo uma coluna de uma relao qual atribumos um nome. Um tuplo uma linha de uma relao. A ordem pela qual os tuplos aparecem na relao no importante, sendo que os tuplos podero aparecer em qualquer ordem e continuaremos a ter a mesma relao e o mesmo significado. De forma idntica, a ordem dos atributos no importante, desde que a correspondncia seja mantida nos tuplos. O grau de uma relao o nmero de atributos que ela contm. A cardinalidade de uma relao o nmero de tuplos que ela contm. Enquanto que o grau de uma relao fixo, a no ser que o significado da relao seja intencionalmente modificado para incluir novos atributos, a cardinalidade da relao muda frequentemente medida que novos tuplos so adicionadas ou removidos.

atributos EMPREGADO
Cod-Empre Nome-Empre Morada-Empre 1 2 Ana Jos Pedro Tiago Joo Antnio Rua Nova Rua Moderno Rua Antiga Rua Inclinada Rua Direita Rua Torta Cidade Porto Gaia Matosinhos Ovar Porto Gaia Telef-Empre Cod-Proj 123456789 987654321 456456456 789789789 123123123 147258369 1 2 1 3 2 3

Cardinalidade = 6

tuplos

3 4 5 6

Grau = 6 Figura I.3.1 Exemplo de uma relao

I.3 O MODELO RELACIONAL DE BASES DE DADOS

73

Cada atributo no modelo relacional est definido num domnio. Um domnio o conjunto de valores permitidos para um ou mais atributos. O conceito de domnio importante, pois permite que sejam definidos o significado e a fonte dos valores para cada um dos atributos, podendo assim evitar operaes semanticamente incorrectas. Uma base de dados relacional consiste num conjunto de relaes apropriadamente estruturadas, ou seja, um conjunto de relaes normalizadas35. As relaes interligam-se atravs da existncia de atributos comuns. Existem terminologias alternativas para o modelo relacional. Na tabela da figura I.3.2 apresentamos a correspondncia entre duas das terminologias alternativas mais utilizadas. Ao longo da primeira parte deste livro optamos por utilizar os termos formais.

Termos Formais Relao Tuplo Atributo

Alternativa Tabela Linha Coluna

Figura I.3.2 Terminologia Alternativa

Mais formalmente, definimos o esquema de uma relao, cuja notao R(A1, A2, ... , An), como sendo um conjunto de atributos: R = {A1, A2, ... , An} Cada atributo A1, A2, ... , An tem domnios D1, D2, ... , Dn. Tomando como exemplo o apresentado na figura I.3.1, temos como esquema da relao EMPREGADO:
EMPREGADO(cod-empregado,

nome-empregado, morada-empregado,

cidade-empregado, telefone-empregado, cod-projecto)

Uma relao (ou instncia da relao) r, do esquema R(A1, A2, ... , An), tambm representada por r(R), um conjunto de n-tuplos r = {t1, t2, ... , tm}. Cada um dos n-tuplos t uma lista ordenada de n valores t(v1, v2, ... ,
35

A normalizao ser discutida no captulo 5.

74

BASES DE DADOS COM MICROSOFT ACCESS 2007

vn), onde cada valor vi (1 i n) um elemento de Di, ou o valor especial nulo. Nulo um valor especial que significa ausncia de um valor, valor desconhecido ou no aplicvel. No o mesmo que o valor zero ou espao. Retomando o exemplo da figura I.3.1 temos r(EMPREGADO) = {(1,Ana,Rua Nova,Porto,123456789,1), (2,Jos,Rua Moderna, Gaia, 987654321,2), (3,Pedro,Rua Antiga, Matosinhos, 456456456,1), (4,Tiago,Rua Inclinada, Ovar, 789789789,3), (5,Joo,Rua Direita, Porto, 123123123,2), (6,Antnio,Rua Torta, Gaia, 147258369,3)}

A definio apresentada pode ser reformulada da seguinte forma: uma relao r(R) um subconjunto do produto cartesiano dos domnios que definem R: r(R) D1 D2 ... Dn

O produto cartesiano dos conjuntos D1, D2, ... ,Dn , representado por D1 D2 ... Dn especifica todas as combinaes possveis de valores desses conjuntos. Formalmente, D1 D2 ... Dn = {(d1, d2, ... , dn):d1 D1, d2 D2, ... , dn Dn}

Uma relao apresenta diversas caractersticas que importante realar: Uma determinada relao tem um nome que diferente dos nomes de todas as outras relaes, de uma base de dados; Cada clula (interseco de uma linha com uma coluna ou equivalentemente um elemento de um tuplo) contm um valor atmico; Cada atributo tem um nome distinto; Os valores de um atributo pertencem a um mesmo domnio; No existem tuplos duplicados, isto , cada tuplo distinto;

I.3 O MODELO RELACIONAL DE BASES DE DADOS

75

A ordem dos tuplos numa relao no tem significado, pois uma relao definida como um conjunto de tuplos e, como tal, a sua ordem no tem significado; A ordem dos atributos no importante desde que a correspondncia entre atributos e valores seja mantida.

3.2 ATRIBUTOS CHAVE


Um conceito importante no modelo relacional o conceito de chave. Uma chave constituda por um atributo ou conjunto de atributos. Uma chave constituda por mais do que um atributo diz-se composta. Existem vrios tipos de chave, que apresentaremos de seguida.

3.2.1 Super-Chave
Como cada tuplo numa relao distinto, necessrio que possamos identific-lo de forma nica pelos valores dos seus atributos. Um atributo ou conjunto de atributos que identificam de forma nica um tuplo numa relao diz-se uma super-chave. No exemplo da figura I.3.1 podemos indicar como super-chaves, por exemplo, os atributos ou conjuntos de atributos seguintes: cod-empregado; nome-empregado36; cod-empregado + nome-empregado + morada-empregado; cod-empregado + nome-empregado + morada-empregado + cidade-empregado + telefone-empregado + cod-projecto.

3.2.2 Chave Candidata


Uma super-chave pode ter atributos que no so necessrios para a identificao dos tuplos de forma nica. Interessa-nos identificar aquelas que contm apenas os atributos necessrios a essa identificao. Dessa forma obtemos uma super-chave tal que nenhum subconjunto prprio dessa
36

considerando que no existem duas pessoas com o mesmo nome.

76

BASES DE DADOS COM MICROSOFT ACCESS 2007

super-chave uma super-chave temos uma chave candidata. De entre as super-chaves apresentadas para o exemplo da figura I.3.1, so chaves candidatas as duas seguintes: cod-empregado nome-empregado

Para identificar uma chave candidata necessrio conhecer o significado dos atributos em contexto real de forma a podermos decidir se existem ou no duplicados.

3.2.3 Chave Primria


De entre as chaves candidatas escolhemos uma para identificar de forma nica cada tuplo da relao. Esta chave chama-se chave primria. Os atributos que formam a chave primria surgem sublinhados no esquema da relao. Retomando o exemplo da relao EMPREGADO, escolhemos codempregado como chave primria e temos:
EMPREGADO

(cod-empregado, nome-empregado, morada-empregado,

cidade-empregado, telefone-empregado, cod-projecto)

3.2.4 Chave Estrangeira


Um atributo ou conjunto de atributos de uma relao que existe tambm como a chave primria de outra relao diz-se uma chave estrangeira (ver figura I.3.3). O atributo Proj-Num chave primria da relao PROJECTO, mas tambm existe na relao EMPREGADO. Dizemos que o atributo ProjNum chave estrangeira na relao EMPREGADO37.

37 No exemplo apresentado, o atributo que chave estrangeira tem o mesmo nome que a chave primria correspondente. O Access admite nomes distintos. A chave estrangeira tem de ser claramente identificada atravs da definio das chamadas relaes. (Ver na parte II a seco 5.5.1).

I.3 O MODELO RELACIONAL DE BASES DE DADOS

77

EMPREGADO Cod-Empre Nome-Empre Morada-Empre 1 2 3 4 5 6 Ana Jos Pedro Tiago Joo Antnio Rua Nova Rua Moderno Rua Antiga Rua Inclinada Rua Direita Rua Torta Cidade Porto Gaia Telef-Empre Proj-Num 123456789 987654321 1 2 1 3 2 3

Matosinhos 456456456 Ovar Porto Gaia 789789789 123123123 147258369

Chave Estrangeira

PROJECTO Proj-Num 1 2 3 Descr-Proj Colocar Tapetes Pintar Parede Colocar Portas Local Porto Gaia Maia

Chaves Primrias

Figura I.3.3 Exemplo de uma base de dados relacional, simples

3.2.5 Um exemplo
Suponhamos que pretendemos guardar numa base de dados a informao relativa aos empregados e aos projectos em que eles trabalham. De uma forma muito simplificada podemos utilizar o esquema seguinte:
EMPREGADO

(cod-empre, nome-empre, morada-empre, cidade, telefone-empre, cod-proj)

PROJECTO

(Proj-Num, Descr-Proj, Local)

Na figura I.3.3 apresenta-se uma instncia deste esquema. No exemplo apresentado, supe-se que cada empregado apenas participa num projecto. Suponhamos agora que um empregado pode participar em mais do que um projecto. Nesta situao, h a necessidade de criar uma

78

BASES DE DADOS COM MICROSOFT ACCESS 2007

relao que contenha a informao sobre os empregados que trabalham em cada projecto38. Podemos utilizar o esquema seguinte, do qual apresentamos uma instncia na figura I.3.4:
EMPREGADO PROJECTO

(cod-empre, nome-empre, morada-empre, cidade,telef-empre)

(Proj-Num, Descr-Proj, Local) Proj-Num,Nhoras)

EMPREGADOnoPROJECTO(cod-empre,

EMPREGADO Cod-Empre Nome-Empre Morada-Empre 1 2 3 4 5 6 Ana Jos Pedro Tiago Joo Antnio Rua Nova Rua Moderno Rua Antiga Rua Inclinada Rua Direita Rua Torta Cidade Porto Gaia Matosinhos Ovar Porto Gaia Telef-Empre 123456789 987654321 456456456 789789789 123123123 147258369

PROJECTO Proj-Num 1 2 3 Descr-Proj Colocar Tapetes Pintar Parede Colocar Portas Local Porto Gaia Maia

EMPREGADOnoPROJECTO Cod-Empre 1 2 3 4 5 6 1 4 Proj-Num 1 2 1 3 2 3 2 1 Nhoras 10 20 15 13 12 16 19 23

Figura I.3.4 Exemplo de uma base de dados relacional

Verifique que a chave primria da relao EMPREGADOnoPROJECTO, composta pelos atributos Cod-Empre e Proj-Num, permite identificar de forma nica cada tuplo da tabela.
38 Nos captulos 4 e 5 veremos como podemos obter as tabelas adequadas do modelo relacional, para um determinado problema.

I.3 O MODELO RELACIONAL DE BASES DE DADOS

79

Na relao EMPREGADOnoPROJECTO o atributo Cod-Empr uma chave estrangeira, visto que chave primria na relao EMPREGADO. De forma anloga, o atributo Proj-Num uma chave estrangeira na relao EMPREGA DOnoPROJECTO, visto que chave primria na relao EMPREGADO.

3.3 REGRAS DE INTEGRIDADE


Em qualquer modelo de bases de dados importante definir um conjunto de regras que garantam a adequao dos dados regras de integridade. Alm das regras de integridade que podem ser definidas pelo utilizador da base de dados (como, por exemplo, o salrio de um funcionrio no pode ser inferior ao salrio mnimo nacional ou a idade de um cliente tem de ser um nmero positivo), existem regras de integridade inerentes ao prprio modelo relacional. Existem duas regras de integridade inerentes ao modelo relacional que so a regra de Integridade de Entidade e a regra de Integridade Referencial.

3.3.1 Integridade de Entidade


Esta regra diz-nos que, numa relao, nenhum dos valores da chave primria pode ser nulo, isto , ter de lhe ser atribudo algum valor. Considerando o exemplo da figura I.3.3, e aplicando esta regra de integridade, a informao de um empregado s poder ser inserida na relao se lhe for atribudo um nmero como cdigo.

3.3.2 Integridade Referencial


Esta regra diz-nos que, existindo uma chave estrangeira numa relao, ou o seu valor existe num tuplo da relao onde chave primria, ou o(s) atributo(s) que a constitui(em) (so) nulo(s). Tomando o exemplo da figura I.3.3, e considerando esta regra de integridade, um empregado no pode estar afecto ao projecto 4 (isto , no pode ter Cod-Proj=4), dado esse projecto no existir na relao PROJECTO. No entanto, poder existir um empregado sem que lhe tenha sido atribudo qualquer projecto nesse caso o valor do atributo Proj-Num ser nulo.

80

BASES DE DADOS COM MICROSOFT ACCESS 2007

3.4 OPERADORES DA LGEBRA RELACIONAL


Product Select Project
a b c x y a a b b c c x y x y x y

Union Intersection Difference

Join
a a1 a2 a3 b1 b2 b3 b1 b2 b3 c1 c2 c3 a1 a2 a3 b1 b2 b3 b1 b2 b3 c1 c2 c3 a b b c c x y x y x y

Divide

x y a

Figura I.3.5 Viso grfica dos oito operadores da lgebra Relacional39

A lgebra Relacional define um conjunto de operaes utilizadas para definir novas relaes sem alterar as relaes originais. O estudo da lgebra Relacional importante pois serve de base definio de qualquer DML. A primeira verso da lgebra Relacional foi definida por Codd no
39

Adaptado de [Date, 2004].

I.3 O MODELO RELACIONAL DE BASES DE DADOS

81

artigo Relational Completeness of Data Base Sublanguages em 1972. Os operadores originais da lgebra Relacional so oito: SELECT, PROJECT, PRODUCT, UNION, DIFFERENCE, JOIN, INTERSECT e DIVIDE. Na figura I.3.5 apresenta-se uma viso informal de como funcionam estes operadores. Iremos de seguida abordar sucintamente cada um deles, utilizando como exemplo a base de dados da figura I.3.3.

3.4.1 O Operador SELECT


A operao SELECT utilizada para seleccionar um subconjunto dos tuplos de uma relao que satisfazem uma determinada condio. Este operador representa-se por

condio(R)
onde o smbolo utilizado para representar o operador SELECT e condio uma expresso booleana, especificada sobre os atributos da relao considerada, R, podendo ser utilizados os operadores lgicos (E) ou (OU). Por exemplo, podemos pretender seleccionar os empregados que trabalham no projecto 2. Para isso utilizamos o operador SELECT:

cod-projecto=2(EMPREGADO)

EMPREGADO Cod-Empre Nome-Empre Morada-Empre 2 5 Jos Joo Rua Moderno Rua Direita Cidade Gaia Porto Telef-Empre Proj-Num 987654321 123123123 2 2

Figura I.3.6 Resultado do Operador SELECT

3.4.2 O operador PROJECT


Se estamos interessados apenas em determinados atributos de uma relao, utilizamos a operao PROJECT, sendo eliminados, da relao assim obtida, possveis tuplos duplicados. Este operador representa-se por

lista(R)

82

BASES DE DADOS COM MICROSOFT ACCESS 2007

onde o smbolo utilizado para representar o operador PROJECT e lista a lista dos atributos que queremos seleccionar na relao R. Suponhamos que pretendemos seleccionar o nome e o telefone dos empregados. Para o conseguir utilizamos o operador PROJECT:

nome-empregado,telefone-empregado(EMPREGADO)
Obtemos o resultado apresentado na figura:
EMPREGADO Nome-Empre Ana Jos Pedro Tiago Joo Antnio Telef-Empre 123456789 987654321 456456456 789789789 123123123 147258369

Figura I.3.7 Resultado do operador PROJECT

3.4.3 O operador PRODUCT


Os dois operadores anteriores apenas extraem informaes de uma relao. Obviamente, h situaes em que interessa combinar informao de vrias relaes. O operador PRODUCT define uma relao que a concatenao de todos os tuplos de uma relao R com todos os tuplos de uma relao S e representa-se por RS

Por exemplo, aplicando o operador PRODUCT s relaes EMPREGADO e PROJECTO (EMPREGADO PROJECTO) obtemos a relao representada na figura I.3.8.

I.3 O MODELO RELACIONAL DE BASES DE DADOS

83

Cod- NomeEmpre Empre 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 Ana Ana Ana Jos Jos Jos Pedro Pedro Pedro Tiago Tiago Tiago Joo Joo Joo Antnio Antnio Antnio

MoradaEmpre Rua Nova Rua Nova Rua Nova Rua Moderno Rua Moderno Rua Moderno Rua Antiga Rua Antiga Rua Antiga Rua Inclinada Rua Inclinada Rua Inclinada Rua Direita Rua Direita Rua Direita Rua Torta Rua Torta Rua Torta

Cidade Porto Porto Porto Gaia Gaia Gaia

Telef-Empre 123456789 123456789 123456789 987654321 987654321 987654321

E.Proj- P.Proj- Descr-Proj Local Num Num 1 1 1 2 2 2 1 1 1 3 3 3 2 2 2 3 3 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Colocar Tapetes Pintar Parede Colocar Portas Colocar Tapetes Pintar Parede Colocar Portas Colocar Tapetes Pintar Parede Colocar Portas Colocar Tapetes Pintar Parede Colocar Portas Colocar Tapetes Pintar Parede Colocar Portas Colocar Tapetes Pintar Parede Colocar Portas Porto Gaia Maia Porto Gaia Maia Porto Gaia Maia Porto Gaia Maia Porto Gaia Maia Porto Gaia Maia

Matosinhos 456456456 Matosinhos 456456456 Matosinhos 456456456 Ovar Ovar Ovar Porto Porto Porto Gaia Gaia Gaia 789789789 789789789 789789789 123123123 123123123 123123123 147258369 147258369 147258369

Figura I.3.8 Resultado do operador PRODUCT40

Podemos combinar os operadores. Suponhamos, por exemplo, que pretendemos obter os nomes e os telefones dos empregados afectos aos
40

Dado que existem dois atributos com o mesmo nome, Proj-Num, um da relao

EMPREGADO e outro da relao PROJECTO, atribumos os nomes E.Proj-Num e

P.Proj-Num, respectivamente.

84

BASES DE DADOS COM MICROSOFT ACCESS 2007

projectos 1 e 3 bem como o local onde se realizam esses projectos. Para isso utilizamos os operadores da seguinte forma:
(e.proj-num=1 e.proj-num=3) e.pro-numj=p.proj-num (nome-empre,telef-empre, e.proj-num(EMPREGADO)

p.proj-num, local (PROJECTO))

Obtemos a relao apresentada na figura:


NomeEmpre Ana Pedro Tiago Antnio Telef-Empre 123456789 456456456 789789789 147258369 E.ProjNum 1 1 3 3 P.ProjNum 1 1 3 3 Local Porto Porto Maia Maia

Figura I.3.9 Resultado do operador PRODUCT

3.4.4 O operador UNION


O resultado da operao UNION, aplicada a duas relaes R e S, e representada por RS uma relao que inclui todos os tuplos pertencentes a R ou a S ou a ambas as relaes. Os possveis tuplos duplicados, resultantes da relao assim obtida, so eliminados. As relaes devem ser compatveis para ser feita a unio, isto , devem ter o mesmo nmero de atributos com os domnios correspondentes iguais. Podemos utilizar o operador PROJECT para obter relaes compatveis. Obtenhamos todas as cidades onde os empregados vivem ou trabalham:

cidade(EMPREGADO) local(PROJECTO)
O resultado obtido encontra-se na figura I.3.10.

I.3 O MODELO RELACIONAL DE BASES DE DADOS

85

RS Porto Gaia Matosinhos Ovar Maia

Figura I.3.10 Resultado do operador UNION

3.4.5 O Operador DIFFERENCE


O resultado da operao DIFFERENCE, aplicada a duas relaes R e S e representada por RS uma relao que inclui todos os tuplos que esto em R mas no em S. R e S devem ser compatveis. Obtenhamos todas as cidades onde os empregados vivem, mas onde no est a ser desenvolvido nenhum dos projectos:

cidade(EMPREGADO) - local(PROJECTO)
O resultado obtido encontra-se na figura:
R-S Matosinhos Ovar Figura I.3.11 Resultado do operador DIFFERENCE

3.4.6 O Operador INTERSECT


O resultado da operao INTERSECTION, aplicada a duas relaes R e S e representada por RS uma relao que inclui todos os tuplos pertencentes a ambas as relaes. R e S devem ser compatveis.

86

BASES DE DADOS COM MICROSOFT ACCESS 2007

Como exemplo, obtenhamos as cidades onde vive algum dos empregados e tambm onde esto a ser desenvolvidos projectos:

cidade(EMPREGADO) local(PROJECTO)
Obtemos o resultado apresentado na figura:
RS Porto Gaia Figura I.3.12 Resultado do operador INTERSECT

3.4.7 O operador JOIN


A operao JOIN permite-nos combinar tuplos relacionados, pertencentes a duas (ou mais) relaes. Esta operao uma das mais importantes da lgebra Relacional. Deriva do operador PRODUCT e equivalente a aplicar uma seleco ao produto cartesiano de duas relaes. De uma forma geral, a operao JOIN aplicada a duas relaes R e S pode ser definida como: R
<condio>

S = <condio>(R S)

Como exemplo, listemos os nomes e o trabalho desenvolvido pelos operrios que trabalham na mesma cidade onde vivem. Consegu-lo-emos da seguinte forma:

nome-empre,cidade,e.proj-num(EMPREGADO)

cidade=local e.proj-num=p.proj-num

p.proj-num,descr-proj,local(PROJECTO)
O resultado apresentado na figura:
NomeEmpre Ana Jos Cidade Porto Gaia E.Proj- P.Proj- Descr-Proj Local Num Num 1 2 1 2 Colocar Tapetes Pintar Parede Porto Gaia

Figura I.3.13 Resultado do operador JOIN

I.3 O MODELO RELACIONAL DE BASES DE DADOS

87

As operaes JOIN mais comuns envolvem condies com comparaes de igualdade. Neste caso temos uma operao que se chama EQUI-JOIN, como o caso do exemplo apresentado. Ao efectuar uma operao deste tipo temos sempre um ou mais pares de atributos que tm o mesmo valor para todos os tuplos (no nosso exemplo temos e.proj-num vs p.proj-num e cidade vs local). Visto que um desses atributos suprfluo surge uma nova operao, por forma a que o segundo desses atributos, obtidos por um EQUIJOIN, no surja na relao obtida. Essa operao chama-se NATURAL JOIN. Quando os atributos que se correspondem tm o mesmo nome, no necessitamos da condio e esta operao representa-se por RS

3.4.8 O operador DIVIDE


Consideremos uma relao R definida por um conjunto de atributos A, e a relao S definida por um conjunto de atributos B, tal que B A. Seja C = A B, isto , C o conjunto de atributos de R que no so atributos de S. O resultado da operao DIVISION uma relao T, definida apenas em C, que inclui os tuplos de R, tais que os valores dos restantes atributos de A41 nesse tuplo, so iguais aos valores dos tuplos correspondentes de S. O operador DIVIDE representa-se por: R:S

A operao DIVIDE til para responder a questes do tipo: Obter os nomes de todos os empregados que trabalham no projecto 1. Para isso utilizamos a expresso da lgebra relacional seguinte:

nome-empre,e.proj-num(EMPREGADO) : p.proj-num=1(proj-num(PROJECTO))
O resultado apresentado na figura I.3.14.

41 Estes tuplos so aqueles que so comuns a R e a S.

88

BASES DE DADOS COM MICROSOFT ACCESS 2007

Nome-Empre E.Proj-NUm Ana Jos Pedro Tiago Joo Antnio 1 2 1 3 2 3 Proj-Num 1 Nome-Empre Ana Pedro

nome-empre,cod-proj(EMPREGADO) : num-proj=1(num-proj(PROJECTO))

Figura I.3.14 Resultado do operador DIVIDE

Considerando A o conjunto dos atributos de R, B o conjunto dos atributos de S e C = A B, a operao DIVISION pode ser expressa como uma sequncia dos trs operadores , e da seguinte forma: T1 = c(R) T2 = c((S T1) - R) T = T1 T2 sendo T = R : S

3.5 SQL UMA LINGUAGEM DE BASES DE DADOS RELACIONAIS


Geralmente classifica-se a lgebra Relacional como uma linguagem de alto nvel. No entanto, existem muito poucos SGBDs baseados directamente na lgebra Relacional. A maioria dos SGBDs comerciais fornece uma linguagem declarativa de alto nvel. A mais conhecida a SQL, do ingls Structured Query Language. A linguagem SQL a linguagem padro do modelo relacional. Em 1974, D. Chamberlin definiu uma linguagem chamada Structured English Query Language ou SEQUEL, sendo depois produzida uma verso revista chamada SEQUEL2. Posteriormente, a IBM produziu um prottipo de um SGBD, chamado SystemR, baseado na SEQUEL2. O projecto deu origem SQL. Em 1982 a ANSI iniciou trabalhos para a definio de normas para a SQL. As normas iniciais foram

I.3 O MODELO RELACIONAL DE BASES DE DADOS

89

publicadas em 1987 tendo recebido algumas crticas. Em 1992 foram publicadas as normas revistas que so conhecidas como SQL2 ou SQL92. Visto que as normas so limitadas, os produtos comercialmente disponveis apresentam melhorias que os tornam distintos, dificultando a portabilidade de aplicaes baseadas na SQL. A partir de 1992 o comit ANSI H2 iniciou o desenvolvimento de extenses ao padro SQL/92 o SQL:99. A maior mudana que o novo padro j no est ligado ao modelo relacional de 1970, suportando caractersticas de modelos orientados a objectos, tais como, herana e polimorfismo. Permite tambm a existncia de tipos e de rotinas definidas pelo utilizador e de grandes objectos: BLOBs (Binary Large Objects) e CLOBs (Character Large Objects). Outra grande mudana que a SQL:1999 consiste de partes individuais, que formam o seu ncleo, e vrios pacotes independentes de entre os seguintes: Enhanced Datetime Facilities, Enhanced Integrity Management, PSM42, CLI43, Basic Object Support, Enhanced Object Support, Active Database, SQL/MM44 e OLAP. Em 2003 foi apresentada a reviso SQL:2003, que introduz capacidades relacionadas com a linguagem XML. No stio da ANSI (http://www.ansi.org) pode-se aceder (e comprar) as ltimas actualizaes feitas em 2006 e 2007. Seguidamente iremos fazer uma apresentao resumida de alguns dos comandos45 da SQL, comeando pelos comandos de definio de dados passando depois para os comandos de insero e actualizao de dados e por fim veremos queries em SQL. As normas da SQL no utilizam os termos formais, relaes, atributos e tuplos. Em vez disso utilizam-se os termos tabelas, colunas e linhas.

3.5.1 Definio de dados


A SQL disponibiliza um conjunto de comandos para criar, alterar e apagar tabelas e outras estruturas. Os comandos so CREATE, ALTER e DROP, respectivamente.
Persistent Stored Models Call Lever Interface 44 Multi Media 45 Os comandos referidos so geralmente mais complexos do que aqui apresentamos e variam de implementao para implementao. Dever sempre ser feita a consulta do manual de referncia do sistema com que se est a trabalhar. Na parte II deste livro, na seco 3.12, encontram-se exemplos para o Access.
43 42

90

BASES DE DADOS COM MICROSOFT ACCESS 2007

CREATE Para definir a estrutura da base de dados que ir conter as tabelas utilizamos o comando CREATE DATABASE <nome-base-dados> Depois de definida a estrutura da base de dados estamos prontos para definir a estrutura das tabelas na base de dados. A sintaxe bsica do comando 46: CREATE TABLE <nome-tabela>( <atributo1> <atributo2> caractersticas, caractersticas,

.............................. <atributoN> caractersticas,

[PRIMARY KEY (<nomes dos atributos>)] [FOREING KEY (<nomes dos atributos>) REFERENCES <nome-tabela> (<nome atributos>)]);

Na tabela da figura I.3.15 apresentamos os tipos de dados definidos nas normas, para a linguagem SQL.
Tipos de dados Caracter Bit Nmero exacto Nmero aproximado Data/Hora Intervalo Declaraes CHAR, VARCHAR BIT, BIT VARYING NUMERIC, DECIMAL, INTEGER, SMALLINT FLOAT, REAL, DOUBLE PRECISION DATE, TIME, TIMESTAMP INTERVAL
Figura I.3.15 Tipos de dados na SQL

Os nomes entre <...> sero substitudos pelos nomes respectivos. Aquilo que se encontra entre parnteses recto opcional. O smbolo | indica que apenas uma das opes utilizada.

46

I.3 O MODELO RELACIONAL DE BASES DE DADOS

91

Implementemos, em SQL, a estrutura das tabelas EMPREGADO e PROJECTO, da figura I.3.3. Devemos criar a tabela PROJECTO em primeiro lugar devido existncia de uma chave estrangeira na tabela EMPREGADO. CREATE TABLE PROJECTO( PROJ-NUM DESCR-PROJ LOCAL PRECO-HORA INTEGER NOT NULL UNIQUE, CHAR(50) NOT NULL, CHAR(20) NOT NULL, FLOAT,

PRIMARY KEY (PROJ-NUM));

CREATE TABLE EMPREGADO( COD-EMPRE NOME-EMPRE MORADA-EMPRE CIDADE MORADA-EMPRE TELEF-EMPRE PROJ-NUM INTEGER NOT NULL UNIQUE, CHAR(20) NOT NULL, CHAR(50), CHAR(15), CHAR(50), CHAR(9), INTEGER NOT NULL,

PRIMARY KEY (COD-EMPRE), FOREING KEY (PROJ-NUM) REFERENCES PROJECTO (PROJ-NUM) ON DELETE RESTRICT ON UPDATE CASCADE;

ALTER O comando ALTER TABLE permite efectuar alteraes na estrutura da tabela, de trs formas possveis: adicionando uma nova coluna, alterando as caractersticas de uma coluna j existente ou eliminando uma coluna. A sintaxe bsica a seguinte:

92

BASES DE DADOS COM MICROSOFT ACCESS 2007

Adicionar: ALTER TABLE <nome-tabela> ADD <atributo> caractersticas

Alterar: ALTER TABLE <nome-tabela> MODIFY <atributo> caractersticas

Eliminar: ALTER TABLE <nome-tabela> DROP <atributo> caractersticas

DROP O comando DROP DATABASE permite remover uma determinada base de dados, eliminando todas as tabelas e estruturas associadas. A sua sintaxe bsica a seguinte: DROP DATABASE <nome-base-dados>

Existe tambm o comando DROP TABLE que permite eliminar uma determinada tabela. A sua sintaxe : DROP TABLE <nome-tabela>

3.5.2 Insero e actualizao de dados


Nesta seco veremos alguns comandos SQL para insero e actualizao de dados. So eles INSERT, UPDATE e DELETE.

INSERT O comando INSERT permite inserir dados numa tabela, uma linha de cada vez. utilizado para realizar a primeira entrada de dados numa nova tabela ou para adicionar dados a uma tabela que j existe. A sintaxe bsica : INSERT INTO <nome-tabela> [(<lista atributos>)] VALUES (<lista-valores>);

I.3 O MODELO RELACIONAL DE BASES DE DADOS

93

Voltemos ao nosso exemplo das tabelas EMPREGADO e PROJECTO. Para inserir dados na tabela PROJECTO, fornecendo dados para todas as colunas, teremos: INSERT INTO PROJECTO VALUES (1,Colocar Tapetes,Porto, 2,Pintar Parede,Gaia, 3,Colocar Portas,Maia);

Para inserir dados na tabela, fornecendo dados apenas para algumas colunas, teremos: INSERT INTO EMPREGADO(cod-empre,nome-empre,proj-num) VALUES (1,Ana,1, 2,Jos,2, 3,Pedro,1, 4,Tiago,3, 5,Joo,2, 6,Antnio,3);

UPDATE O comando UPDATE permite-nos efectuar alteraes nos dados j existentes. A sua sintaxe bsica a seguinte: UPDATE <nome-tabela> SET <atributo1> = valor1[,<atributo2> = valor2,...] [WHERE <condio>]

Suponhamos que pretendemos que o empregado Ana (cod-empr=1) passe a estar afecto ao projecto 2. Para isso utilizaremos o comando: UPDATE EMPREGADO SET proj-num=2 WHERE cod-empre=1;

94

BASES DE DADOS COM MICROSOFT ACCESS 2007

Suponhamos agora que pretendemos efectuar um incremento de 5% no preo por hora do projecto 1. Para isso efectuamos o seguinte comando: UPDATE PROJECTO SET preco-hora=preo-hora*1,05 WHERE proj-num=1;

DELETE O comando DELETE permite-nos eliminar uma ou mais linhas de dados. A sua sintaxe bsica a seguinte: DELETE FROM <nome-tabela> [WHERE<condio>]

Para exemplo, eliminaremos da tabela EMPREGADO todos os empregados afectos ao projecto 3: DELETE FROM EMPREGADO WHERE proj-num=3;

A utilizao do comando DELETE FROM EMPREGADO elimina todos os registos (tuplos ou linhas) da tabela EMPREGADO.

3.5.3 Queries com SQL


Podemos traduzir Query como questo ou consulta. Uma query uma questo que o utilizador coloca base de dados, como por exemplo Quais os funcionrios afectos ao projecto 3? ou Quais os funcionrios que trabalham no mesmo local onde vivem?. A SQL permite colocar questes base de dados apresentando os resultados pretendidos.

I.3 O MODELO RELACIONAL DE BASES DE DADOS

95

Todas as questes so baseadas no comando SELECT cuja sintaxe bsica : SELECT [DISTINCT|ALL] <lista-atributos1>|* FROM <nome-tabela> [WHERE <condio1>] [GROUP BY <lista-atributos2>] [HAVING <condio2>] [ORDER BY <lista-atributos3>] onde SELECT FROM WHERE GROUP BY especifica os atributos que iro surgir na resposta; especifica a tabela ou tabelas a serem utilizadas; filtra as linhas que satisfazem a condio especificada; forma grupos de linhas com os valores dos atributos indicados iguais, permitindo a utilizao de funes de agregao: MAX (o valor mximo encontrado para aquele atributo), MIN (o valor mnimo encontrado para aquele atributo), COUNT (o nmero de linhas contendo o atributo especificado), SUM (a soma de todos os valores para um atributo) e AVG (a mdia aritmtica de todos os valores de um atributo); filtra os grupos que satisfazem a condio2; especifica quais os atributos que iro funcionar como chave de ordenao.

HAVING ORDER BY

Se pretendermos eliminar as repeties existentes nas linhas resultantes de um comando SELECT, utilizamos a clusula DISTINCT. A clusula ALL mantm as caractersticas associadas por omisso ao comando SELECT, mostrando todo o conjunto de registos. Utilizamos uma das duas clusulas, sendo que, por omisso, a clusula ALL se encontra associada ao comando SELECT. Podemos utilizar o comando SELECT numa lista de atributos ou utilizar o smbolo * quando pretendemos especificar todos os atributos.

96

BASES DE DADOS COM MICROSOFT ACCESS 2007

Veremos de seguida alguns exemplos de utilizao do comando SELECT. Obter todas as linhas e colunas de EMPREGADO: SELECT * FROM EMPREGADO;

Obter o cdigo, o nome do empregado e o projecto a que est afectado, para todos os empregados: SELECT cod-empr, nome-empre, proj-num FROM EMPREGADO;

Obter os preos dirios dos projectos, supondo que o dia de trabalho de oito horas: SELECT proj-num, descr-proj, 8*preco-hora FROM PROJECTO;

Obter todos os empregados do projecto 1, do Porto: SELECT cod-empre, nome-empre, cidade, proj-num FROM EMPREGADO WHERE cidade=Porto AND proj-num=1;

Obter uma lista de todos os projectos, ordenada por preo-hora: SELECT * FROM PROJECTO ORDER BY preco-hora;

Obter o nmero de empregados em cada uma das cidades: SELECT COUNT(cod-empre), cidade FROM EMPREGADO GROUP BY cidade;

I.3 O MODELO RELACIONAL DE BASES DE DADOS

97

A linguagem SQL permite-nos combinar resultados utilizando os operadores UNION, INTERSECT e EXCEPT (semelhantes aos operadores da lgebra Relacional UNION, INTERSECT e DIFFERENCE). Alguns dialectos de SQL no suportam os operadores INTERSECT e EXCEPT e outros dialectos utilizam MINUS em vez de EXCEPT. Obtenhamos, por exemplo, os locais onde vivem ou trabalham empregados: SELECT local FROM EMPREGADO UNION SELECT cidade FROM PROJECTO;

Outra possibilidade a combinao de informao contida em diferentes tabelas num s comando SELECT atravs do uso da operao JOIN. Podemos faz-lo indicando mais do que uma tabela na clusula FROM, separadas por uma vrgula, e utilizando a clusula WHERE para especificar a coluna relacionada para a juno. Por exemplo, se pretendermos especificar o custo por hora de cada um dos empregados utilizaremos: SELECT cod-empre, nome-empre, proj-num, preo-hora FROM EMPREGADO, PROJECTO WHERE empregado.proj-num = projecto.proj-num;

A SQL permite a utilizao de outros tipos de operaes JOIN o que pode ser especificado na clusula FROM, tais como CROSS JOIN, LEFT JOIN ou FULL JOIN. Dado que uma abordagem mais aprofundada da linguagem SQL sai fora do mbito deste livro, no iremos detalhar mais este assunto47.

Para uma abordagem mais aprofundada sugerimos [Connoly e Begg, 1998] ou [Damas, 1999].

47

98

BASES DE DADOS COM MICROSOFT ACCESS 2007

3.6 AS REGRAS DE CODD


Com o aparecimento do modelo relacional, muitos dos SGBDs baseados nos modelos hierrquico e em rede foram adaptados de modo a apresentar algumas caractersticas do modelo relacional. Codd especificou, em 1985, algumas regras que poderiam servir para identificar um SGBD relacional. As regras de Codd provocaram grande controvrsia, tendo Codd sido acusado de as suas regras se tratarem de um exerccio meramente acadmico. Ainda assim, consideramos importante apresentar as regras de Codd. Regra 0: Regra inicial Qualquer sistema anunciado como sendo um SGBD relacional, deve ter a capacidade de gerir bases de dados baseado apenas nas suas capacidades relacionais.

Regra 1: Representao da Informao Qualquer informao, numa base de dados relacional, explicitamente representada a nvel lgico e de forma nica pelos valores nas tabelas;

Regra 2: Acesso garantido Qualquer valor atmico numa base de dados relacional logicamente acessvel atravs da combinao do nome da tabela, do valor da chave primria e do nome da coluna;

Regra 3: Tratamento de nulos Os nulos so utilizados de forma sistemtica, independentemente do tipo de dados, para representar falta de dados ou informao no aplicvel;

Regra 4: Catlogo dinmico on-line, baseado no modelo relacional A descrio da base de dados representada a um nvel lgico da mesma forma que os dados ordinrios, de forma a que os utilizadores possam aplicar-lhe a mesma linguagem relacional que aplicam aos dados;

I.3 O MODELO RELACIONAL DE BASES DE DADOS

99

Regra 5: Sub-linguagem de dados completa Um sistema relacional deve suportar vrias linguagens sendo que, pelo menos uma delas, deve permitir efectuar: definio de dados, definio de vistas, manipulao de dados, restries de integridade, autorizaes e limites de transaces;

Regra 6: Actualizao de vistas Todas as vistas so teoricamente actualizveis e tambm actualizveis pelo sistema;

Regra 7: Insero, actualizao e eliminao de alto-nvel A capacidade de lidar com uma relao (incluindo vistas) implica no s a recuperao dos dados mas tambm a sua insero, actualizao e eliminao;

Regra 8: Independncia fsica dos dados As aplicaes e actividades interactivas continuam logicamente intactas quando so feitas alteraes no armazenamento e acesso fsico aos dados;

Regra 9: Independncia lgica dos dados As aplicaes e actividades interactivas continuam logicamente intactas quando so feitas alteraes na estrutura da base de dados, que no impliquem perda de informao;

Regra 10: Independncia de Integridade As restries de integridade especficas de uma determinada base de dados relacional devem ser definidas numa sublinguagem de dados, no nas aplicaes, devendo tambm ser armazenadas no catlogo;

100

BASES DE DADOS COM MICROSOFT ACCESS 2007

Regra 11: Independncia da distribuio A sublinguagem de manipulao de dados de um SGBD relacional deve permitir que as aplicaes e actividades interactivas se mantenham quer o sistema seja fisicamente centralizado ou distribudo;

Regra 12: Regra da no-subverso Se um sistema relacional tem uma linguagem de baixo nvel, esta no pode ser utilizada para subverter ou contornar as regras de integridade expressas na linguagem relacional de mais alto nvel.

I.3 O MODELO RELACIONAL DE BASES DE DADOS

101

TERMOS CHAVE
Relao Atributo Tuplo Grau de uma relao Cardinalidade de uma relao Domnio Base de dados relacional Esquema de uma relao Super-chave Chave candidata Chave primria Chave estrangeira Regra de integridade Integridade de entidade Integridade referencial Operadores da lgebra Relacional SQL Regras de Codd

102

BASES DE DADOS COM MICROSOFT ACCESS 2007

PARA REVER
23. Explique sucintamente o que entende por: a. Relao b. Atributo c. Tuplo d. Grau de uma relao e. Cardinalidade de uma relao f. Domnio

g. Base de dados relacional h. Esquema de uma relao i. j. Super-chave Chave candidata

k. Chave primria l. Chave estrangeira

m. Regra de integridade n. Integridade de entidade o. Integridade referencial 24. Refira e explique sucintamente os oito operadores originais da lgebra Relacional. 25. Para cada uma das tabelas seguintes identifique, a partir dos dados fornecidos, as super-chaves, as chaves candidatas e a chave primria: a.

I.3 O MODELO RELACIONAL DE BASES DE DADOS

103

b.

c.

d.

104

BASES DE DADOS COM MICROSOFT ACCESS 2007

26. Para cada um dos exemplos de bases de dados relacionais apresentados, identifique as chaves primrias e as chaves estrangeiras. a.
CURSO

FORMADOR

CURSO

FORMANDO

I.3 O MODELO RELACIONAL DE BASES DE DADOS

105

b.
ACTIVIDADES DEPARTAMENTOS

PROJECTOS

EMPREGADOS

c.
BANDA

106 CATEGORIA

BASES DE DADOS COM MICROSOFT ACCESS 2007

ALBUM

PISTA

27. So duas as regras de integridade inerentes ao modelo relacional: integridade de entidade e integridade referencial. Alguns SGBDs, por exemplo o Access, no obrigam satisfao destas regras. Fica ao critrio do utilizador a sua definio (Parte II, seco 5.5.1).

I.3 O MODELO RELACIONAL DE BASES DE DADOS

107

Explique, para cada uma das regras, quais os problemas resultantes do facto de no as definir.

28. Para cada uma das questes seguintes indique as afirmaes verdadeiras. a. No modelo relacional: i. Os atributos da chave primria no podem pertencer a outra chave primria; ii. Uma relao pode ter dois tuplos iguais; iii. Nenhum atributo de uma chave estrangeira pode ser NULL; iv. Nenhuma das opes anteriores.

b. O modelo fsico da base se dados: i. o conjunto das estruturas de dados criadas pelo sistema de gesto de bases de dados para gerir a informao nos discos; ii. Corresponde estrutura da informao tal como ela vista pelos utilizadores e pelas aplicaes: iii. o mesmo, qualquer que seja o sistema de gesto de bases de dados utilizados; iv. Nenhuma das anteriores.

c. O princpio da integridade referencial estabelece o seguinte: i. No podem existir nulos na chave primria; ii. No podem ocorrer nulos numa coluna; iii. Qualquer valor de uma chave externa tem de existir na tabela referenciada; iv. Nenhuma das anteriores.

d. Uma entidade: i. a representao abstracta de uma classe de objectos do mundo real; ii. S pode ser utilizada para representar classes de objectos que tenham existncia material;

108

BASES DE DADOS COM MICROSOFT ACCESS 2007

iii. Pode possuir um conjunto infinito de atributos; iv. Nenhuma das anteriores.

29. Considere a base de dados relacional do exerccio 26.c). Especifique as expresses da lgebra Relacional que lhe permitem responder s questes seguintes, apresentando, em cada caso, a relao resultante. a. Liste ordenadamente pelo nome, a informao referente a cada lbum. Inclua o nome da banda e a categoria musical. b. Quais os lbuns existentes de determinada categoria de msica. Dever incluir o ttulo do lbum, o nome da banda, a editora, a data de lanamento. c. Qual a informao referente a cada banda que foi criada na dcada de 80. Contemple na listagem a informao dos seus lbuns.

30. Considere a base de dados relacional do exerccio 4. b). a. Escreva o cdigo SQL que permite criar a estrutura. b. Escreva o cdigo SQL que lhe permite introduzir os dados apresentados no exemplo. c. Escreva o cdigo SQL que permite responder s seguintes questes: i. Empregados do Departamento de Desenvolvimento (DV) com Salrio Base inferior a 1500, ordenados ascendentemente por Data de Admisso; ii. Lista dos projectos que incluam funcionrios do sexo feminino. iii. Projectos e Departamentos envolvidos nas suas Actividades (mostrar apenas Designaes) com indicao do Total de Horas Extraordinrias, por ordem descendente do No. de Horas; iv. Nmero total de horas extraordinrias dedicadas por cada departamento aos diversos projectos; v. Valor das horas extra pagas em cada projecto, considerando que o valor de hora extra deve ser introduzido pelo utilizador;

I.3 O MODELO RELACIONAL DE BASES DE DADOS

109

PARA INVESTIGAR
10. Pode ser encontrada na Internet a verso integral do artigo de E. F. Codd A Relational Modelo of Data for Large Shared Data Banks, no qual foi apresentado o modelo relacional. Encontre, leia e analise o artigo referido. 11. Elabore uma pequena biografia de E. F. Codd que permita conhecer o homem e o cientista responsvel pelo modelo relacional de bases de dados. 12. Alm da lgebra Relacional h uma outra linguagem formal do modelo relacional. Essa linguagem o clculo relacional. Descreva as principais caractersticas dessa linguagem e apresente exemplos de aplicao. (Nota: Pode utilizar o mesmo exemplo que foi utilizado para apresentar a lgebra Relacional ao longo deste captulo.)

I.4 Modelao de Dados

Diz-nos Chiavenato que para se estudar ou analisar um sistema, utilizam-se modelos. Modelo a representao de um sistema. O dicionrio de Lngua Portuguesa da Porto Editora diz-nos que um modelo a imagem ou desenho que representa o objecto que se pretende reproduzir. Sendo uma representao da realidade, um modelo ser sempre imperfeito ou incompleto. Efectuar o desenho de uma base de dados , ao mesmo tempo, uma cincia e uma arte. Felizmente, existem ferramentas poderosas que apoiam no desenho de bases de dados. Ao longo deste captulo iremos apresentar uma dessas ferramentas o modelo Entidade-Relacionamento (E-R). Inicialmente, em 4.1, iremos debruar-nos sobre a importncia da modelao de dados. Seguidamente, em 4.2, iremos abordar o modelo E-R e em 4.3 iremos desenvolver um diagrama E-R a partir de um exemplo prtico, aplicando alguns dos conceitos desenvolvidos em 4.2. Em 4.4 iremos estabelecer a correspondncia entre o modelo E-R e o modelo relacional de bases de dados.

4.1 A IMPORTNCIA DA MODELAO DE DADOS


A modelao de dados uma tcnica que permite fazer a organizao e a documentao de dados de um sistema e crucial para um bom desempenho do sistema. Como vimos, no captulo 1, os dados so utilizados por um sistema, transformando-os em informao, sendo esta informao vital para a empresa. Alm disso, os dados so partilhados por diversos sectores de uma organizao. Como resultado, os dados devem estar organizados de modo a serem flexveis e de modo a que se possam adaptar para responder a necessidades, partida, imprevisveis obter dados com

112

BASES DE DADOS COM MICROSOFT ACCESS 2007

estas caractersticas o principal objectivo da modelao de dados. Alm deste aspecto, um modelo de dados importante, pois permite que os analistas de um sistema cheguem rapidamente a um consenso com os utilizadores, sobre a terminologia e as regras do negcio. A utilizao de um modelo de dados passa por um processo de abstraco. A abstraco um processo de identificao dos aspectos importantes de um sistema ignorando os outros. No desenho de bases de dados significa que nos devemos concentrar primeiro nas entidades ou objectos e nas suas caractersticas e relaes, antes de decidirmos sobre a forma como eles devem ser implementados. Assim, obtemos um modelo que independente do sistema no qual a base de dados vai ser implementada. Um modelo de dados uma representao de um sistema assim como uma planta uma representao de uma casa. Tal como pouco provvel que possamos construir uma boa casa sem ter sido desenhada uma boa planta, tambm pouco provvel que possamos implementar um bom sistema de bases de dados sem realizar primeiro um bom modelo de dados. Um bom modelo de dados deve ser simples, no redundante, flexvel e adaptvel a necessidades futuras. Nas prximas seces iremos estudar o modelo E-R, que uma ferramenta que permite a obteno de bons modelos de dados. O modelo E-R tornou-se dominante como ferramenta para o desenho de bases de dados, dado ser simples e ao mesmo tempo poderoso. No entanto, sendo suficiente para o desenho da maioria dos sistemas de bases de dados, apresenta algumas limitaes quando utilizado no desenho de sistemas mais complexos. Assim sendo tm vindo a ser desenvolvidos novos conceitos envolvendo aspectos semnticos, incorporados no modelo E-R original com sucesso. Tm tambm sido propostos vrios modelos de dados diferentes. Alguns destes conceitos tm vindo a ser desenvolvidos em reas relacionadas tais como a rea da representao de conhecimento, da inteligncia artificial, ou a rea da modelao de objectos, da engenharia de software.

4.2 O MODELO ENTIDADE-RELACIONAMENTO (E-R)


O modelo Entidade-Relacionamento (E-R) um modelo de dados conceptual, com um elevado nvel de abstraco, desenvolvido por Peter

I.4 MODELAO DE DADOS

113

Chen. O modelo foi descrito pela primeira vez por Chen em 1976, num artigo intitulado The Entity-Relationship Model toward a unified view of data. O modelo E-R permite que as diferentes perspectivas dos dados apresentados pelos gestores, pelos utilizadores e pelos analistas se aproximem, formando uma estrutura comum e um auxiliar precioso na concepo de bases de dados. Os conceitos fundamentais do modelo E-R incluem entidades, atributos e relacionamentos. Basicamente, o processo consiste na identificao de entidades, das suas propriedades e dos relacionamentos entre essas entidades, representados atravs de um diagrama chamado Diagrama E-R (DER). Veremos seguidamente alguns desses conceitos de uma forma mais pormenorizada.

4.2.1 Entidades e Atributos


Uma entidade um conjunto de pessoas, lugares, objectos, acontecimentos ou conceitos sobre o qual pretendemos guardar dados. Por exemplo, numa Editora podemos identificar as seguintes entidades: autor o conjunto de todos os autores, livro o conjunto de todos os livros, coleco o conjunto de todas as coleces, venda o conjunto de todas as vendas, ...

Autor

Livro

Venda

Coleco

Figura I.4.1 Exemplos de entidades

114

BASES DE DADOS COM MICROSOFT ACCESS 2007

As entidades so representadas no diagrama E-R por um rectngulo no qual escrevemos o seu nome. Na figura I.4.1 apresentamos exemplos de representao das entidades referidas. Uma instncia ou ocorrncia de uma entidade um elemento desse conjunto. Por exemplo, Software Obrigatrio ou Tecnologias so ocorrncias da entidade Coleco. Um atributo de uma entidade uma caracterstica especfica dessa entidade. Por exemplo, a entidade Autor ter como atributos: cdigo do autor, nome do autor, data de nascimento, morada, idade, nmero de contribuinte, contacto telefnico. Cada atributo tem um domnio que o conjunto dos valores que podem ser atribudos a esse atributo. Os atributos podem partilhar domnios. Por exemplo, a morada de um Autor e a morada de um Revendedor so atributos com o mesmo domnio. Um atributo representa-se, no diagrama E-R, atravs de uma elipse contendo o nome do atributo, ligada entidade correspondente. Na figura I.4.2 representamos, num diagrama, a entidade Autor e os seus atributos. Um atributo pode ser simples ou composto. Um atributo composto pode ser subdividido, gerando novos atributos. Por exemplo, o atributo morada pode ser dividido em rua, porta, cidade e cdigo postal. No diagrama representam-se os novos atributos por uma elipse, ligada ao atributo correspondente. Um atributo simples no pode ser subdividido. Um atributo pode ter um s valor ou pode apresentar a possibilidade de ter vrios valores. Por exemplo, um autor pode ter mais do que um contacto telefnico. No diagrama indicamos este facto atravs de uma elipse com linha dupla. Existem atributos cujos valores so derivados a partir dos valores de outros atributos atributos derivados. Por exemplo, a idade do Autor um atributo derivado, visto que pode ser calculada a partir da data de nascimento do Autor. No diagrama E-R os atributos derivados representam-se por uma elipse com linha tracejada.

I.4 MODELAO DE DADOS

115

Figura I.4.2 Representao de uma entidade e seus atributos

Existe a necessidade de identificar de forma nica cada ocorrncia de uma entidade. Esta identificao faz-se atravs da chave primria48. Uma chave primria escolhida de entre as chaves candidatas. Uma chave candidata um atributo, ou conjunto de atributos, cujo valor permite identificar de forma nica cada ocorrncia da entidade. Por exemplo, na entidade Autor, podemos identificar duas chaves candidatas: cdigo autor e n contribuinte. Escolhemos cdigo autor como chave primria e identificamo-la sublinhando o nome no diagrama (ver figura I.4.2). Uma chave candidata que consiste em um ou mais atributos, diz-se uma chave composta.

4.2.2 Relacionamentos
Um relacionamento uma associao til entre duas entidades. A cada relacionamento atribudo um nome que descreve a sua funo. Por exemplo, considerando as entidades apresentadas anteriormente, podemos identificar os seguintes relacionamentos:
48

Autor escreve Livro, Livro pertence a Coleco.

Ou atributo(s) identificador(es).

116

BASES DE DADOS COM MICROSOFT ACCESS 2007

No diagrama E-R, um relacionamento representa-se por um losango ligado com as entidades associadas (figura I.4.3).

Autor

escreve

Livro

Figura I.4.3 Representao de um relacionamento

Um relacionamento um conjunto de ligaes entre duas (ou mais) ocorrncias de uma entidade. Cada uma dessas ligaes chama-se uma ocorrncia do relacionamento.

Participantes e grau As entidades envolvidas num determinado relacionamento chamam-se participantes nesse relacionamento. Ao nmero de participantes num relacionamento chama-se grau do relacionamento. A um relacionamento de grau dois chama-se relacionamento binrio. Um exemplo o relacionamento escreve apresentado na figura I.4.3. Um relacionamento de grau trs chama-se relacionamento ternrio. Consideremos o exemplo de uma empresa txtil que satisfaz encomendas. Uma encomenda contm vrios produtos (seda, polister, l, ...) de vrias categorias (calas, saias, casacos, ...). necessrio conhecer as encomendas de cada categoria de produto e quais as categorias de cada produto que so produzidas (saias de seda, casacos de l, calas de polister,...). Existem trs entidades: encomenda, produto e categoria. Este relacionamento est representado na figura I.4.4. Podem-se definir relacionamentos de grau superior a trs, sendo no entanto uma situao pouco frequente.

I.4 MODELAO DE DADOS

117

Produto

contm

Categoria

Encomenda

Figura I.4.4 Um relacionamento ternrio Produto, Categoria, Encomenda

Consideremos ainda o exemplo de uma pizzaria na qual existem estafetas que fazem a entrega de encomendas numa determinada mota. importante conhecer em que mota o estafeta efectuou determinada encomenda. Identificamos trs entidades estafeta, mota e encomenda e identificamos tambm um relacionamento ternrio: um estafeta entrega uma encomenda numa determinada mota.

estafeta

entrega

mota

Encomenda

Figura I.4.5 Um relacionamento ternrio estafeta, mota, encomenda

Por vezes uma entidade participa mais do que uma vez num relacionamento com papis diferentes. Neste caso o relacionamento diz-se recursivo ou unrio. Consideremos uma empresa na qual um funcionrio faz a superviso de outros funcionrios. Estamos perante um relacionamento

118

BASES DE DADOS COM MICROSOFT ACCESS 2007

recursivo da entidade funcionrio cujo nome supervisionar e que representamos na figura I.4.6.

Supervisiona

Empregado

Figura I.4.6 Um relacionamento Recursivo

Podem existir situaes em que exista mais do que um relacionamento entre entidades. Consideremos o exemplo de uma empresa que comercializa vrios produtos atravs de vendedores. Os clientes so angariados pelos vendedores, ficando afectos a esse vendedor at que ele deixe a empresa ou at que a direco deseje substitu-lo. Os vendedores visitam regularmente os seus clientes. importante para a empresa conhecer o vendedor que angariou cada cliente, bem como as visitas efectuadas. Nesta situao podemos identificar as entidades vendedor e cliente e dois relacionamentos entre vendedor e cliente. A um dos relacionamentos chamamos angaria e ao outro chamamos faz visita. Na figura I.4.7 podemos visualizar a representao destes relacionamentos.

Figura I.4.7 Duas entidades / dois relacionamentos

I.4 MODELAO DE DADOS

119

Um aspecto que consideramos importante referir que um relacionamento ternrio no pode ser substitudo por trs relacionamentos binrios, podendo alis coexistir, pois representam coisas distintas. Voltemos ao exemplo, j referido, da empresa txtil. Alm do relacionamento ternrio entre as trs entidades de nome contm (encomenda contm produto de categoria), identificamos tambm um relacionamento entre produto e categoria de nome subdivide-se que nos permite conhecer quais as categorias existentes para cada um dos produtos e vice-versa.

encomenda

contm

produto

subdivide-se

categoria

Figura I.4.8 Relacionamento ternrio vs Relacionamento binrio

O relacionamento ternrio permite-nos conhecer quais os produtos de cada categoria presentes em cada encomenda. Por exemplo, na encomenda 1, existem calas de polister e blusas de seda. Se substitussemos este relacionamento ternrio por trs relacionamentos binrios, conheceramos outros aspectos, nomeadamente: atravs do relacionamento entre a entidade produto e a entidade encomenda, os produtos presentes em cada encomenda, por exemplo, na encomenda 1 existem ls e sedas; atravs do relacionamento entre a entidade categoria e a entidade encomenda, as categorias presentes em cada encomenda, por exemplo, na encomenda existem calas e saias;

120

BASES DE DADOS COM MICROSOFT ACCESS 2007

atravs do relacionamento entre a entidade produto e a entidade categoria, as categorias existentes para cada produto, por exemplo, existem calas de polister, saias de seda, polister e l, casacos de polister e l (mas no quais os encomendados).

Verificamos assim que os trs relacionamentos binrios no podero substituir o relacionamento ternrio, pois no fornecem a mesma informao.

Cardinalidade A cardinalidade o nmero de instncias de uma entidade associadas com uma ocorrncia das entidades que com ela se relacionam. A cardinalidade pode ser de trs tipos: um para um (1:1) um para muitos (1:M) muitos para muitos (M:N)

Consideremos uma empresa com vrios departamentos, em que cada departamento gerido por um dos seus empregados, sendo que um empregado no pode gerir mais do que um departamento e cada departamento s pode ter um gestor. Identificamos as entidades departamento e empregado e um relacionamento entre as duas entidades, a que chamamos gere. Para concluirmos sobre a cardinalidade deste relacionamento verifiquemos que cada empregado pode gerir um departamento e cada departamento gerido por um empregado. Nesta situao dizemos que existe um relacionamento de 1:1 e indicamo-lo no diagrama colocando o nmero apropriado junto de cada entidade (figura I.4.9). Podemos ler o diagrama da seguinte forma: cada empregado gere um departamento e cada departamento gerido por um empregado.

I.4 MODELAO DE DADOS

121

empregado

gere

departamento

Figura I.4.9 Um relacionamento com cardinalidade 1:1

Consideremos agora o relacionamento angaria entre as entidades cliente e vendedor, apresentado na figura I.4.7. Vejamos qual a cardinalidade desse relacionamento. Nesta situao cada cliente angariado por um vendedor, mas cada vendedor pode angariar vrios clientes. A cardinalidade deste relacionamento de 1:M. No diagrama colocamos M, junto da entidade cliente e 1, junto da entidade vendedor (figura I.4.10). Podemos ler o diagrama da seguinte forma: cada vendedor angaria vrios clientes, sendo que cada cliente angariado por um vendedor.

Figura I.4.10 Um relacionamento com cardinalidade 1:M

Por fim, consideremos o relacionamento visita entre as entidades cliente e vendedor, da figura I.4.7. Determinemos a cardinalidade do relacionamento. Nesta situao verificamos que cada vendedor faz visita a vrios clientes e, por seu lado, cada cliente pode ser visitado por vrios vendedores. No diagrama colocamos em M junto de uma das entidades e um N junto da outra entidade (figura I.4.11). Podemos ler o diagrama da seguinte forma: cada vendedor visita vrios clientes e cada cliente visitado por vrios vendedores. Na figura I.4.12 apresentamos as cardinalidades dos relacionamentos apresentados nos exemplos das figuras I.4.3 a I.4.8.

122

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura I.4.11 Um relacionamento de cardinalidade M:N

Figura I.4.12 Cardinalidade de vrios relacionamentos

I.4 MODELAO DE DADOS

123

Participao A participao de uma ocorrncia de uma entidade num relacionamento opcional ou obrigatria. Consideremos o exemplo do relacionamento gere, apresentado na figura I.4.9. Um departamento obrigatoriamente deve ser gerido por algum empregado participao obrigatria. No entanto, existem empregados que no gerem qualquer departamento, isto , existem empregados que no participam no relacionamento participao opcional. No diagrama, indicamos a participao obrigatria, colocando uma linha dupla no lado da entidade cuja participao obrigatria (figura I.4.13).

empregado

gere

departamento

Figura I.4.13 Participao opcional num relacionamento

4.2.3 Entidades fracas


Uma entidade fraca uma entidade cuja existncia depende de outra entidade e que herda, no todo ou em parte, a sua chave primria. No diagrama E-R representa-se uma entidade fraca atravs de um rectngulo com linha dupla. Consideremos a situao em que se pretendemos realizar um seguro dos dependentes de um empregado de determinada empresa. A entidade dependente no pode existir sem a entidade empregado, isto , no pode ser feito um seguro como dependente a no ser que seja a um dependente de um funcionrio da empresa. Este relacionamento entre as entidades funcionrio e empregado est representado na figura I.4.14. A entidade dependente uma entidade fraca.

124

BASES DE DADOS COM MICROSOFT ACCESS 2007

nom e em pr c o d -e m p r d a ta n a s c em pr

n u m -d e p

nom e dep
d a ta n a s c dep

c o d -e m p r

e m p re g a d o

depende de

d e p e n d e n te

Figura I.4.14 Relacionamento com uma entidade fraca empregado e dependente

Consideremos ainda um outro exemplo. Suponhamos que se pretende guardar informao sobre uma coleco de msica, constituda por vrios lbuns49. Cada lbum contm vrias pistas (01, 02, 03, ) sendo que cada pista s existe num determinado lbum e herda a sua chave primria. Identificamos duas entidades: a entidade lbum e a entidade pista. A entidade pista diz-se dependente da entidade lbum e representa-se este relacionamento na figura I.4.15.

coda lb u m

...

...
c o d -a lb u m
N

n u m -p is ta

...
p is ta

lb u m

c o n t m

Figura I.4.15 Relacionamento com uma entidade fraca lbum e pista

4.2.4 Entidades compostas


No modelo E-R inicialmente apresentado por Chen, os relacionamentos no podiam ter atributos. No entanto, existem situaes, nos relacionamentos de M:N, em que esta situao causa alguns problemas, dado que
49

Com diversos formatos, tais como CD, DVD, Vinil,

I.4 MODELAO DE DADOS

125

existe a necessidade de conhecer algumas caractersticas que no so especficas das entidades que esto relacionadas, mas sim do prprio relacionamento. Alguns autores permitem a existncia de atributos nos relacionamentos, como forma de resolver este problema. No entanto, um relacionamento de M:N apresenta outros tipos de implicaes se tivermos em mente o modelo relacional. No modelo relacional podem apenas existir relacionamentos de 1:1 e de 1:M (presentes atravs do conceito de chave estrangeira), existindo a necessidade de criar uma ponte entre as entidades para os relacionamentos de N:M. Essa ponte uma entidade composta que se representa no diagrama atravs de um rectngulo circunscrito ao losango e que pode ter o mesmo nome do relacionamento ou outro nome. A entidade composta tem como atributos as chaves primrias das entidades que esto relacionadas, bem como outros que forem necessrios. A chave primria composta, pelo menos, pelos atributos que so chave primria das entidades que esto relacionadas, podendo ainda existir atributos adicionais. Passam tambm a existir relacionamentos 1:M, entre a entidade composta e as entidades relacionadas. Comecemos pelo relacionamento da figura I.4.11. Neste relacionamento existe a necessidade de conhecer a data da visita. Poderamos considerar a data como atributo da entidade vendedor, mas isso implicaria que o vendedor visitasse todos os seus clientes na mesma data. Algo idntico se passaria se considerssemos a data como atributo do cliente. Transformamos ento o relacionamento em dois relacionamentos de 1:M, atravs da criao de uma entidade composta a que chamamos visita. A nova situao est representada na figura I.4.16.
cod vendedor cod cliente
1 M

cod cliente

........

data

cod vendedor

........

cliente

visita

vendedor

Figura I.4.16 Uma entidade composta

126

BASES DE DADOS COM MICROSOFT ACCESS 2007

A entidade visita tem atributos cod cliente e cod vendedor, que obrigatoriamente faro parte da chave primria. O atributo data faz tambm parte da chave primria, pois se assim no fosse um determinado cliente s poderia ser visitado uma vez por um determinado vendedor50, dado que, por definio, um valor da chave primria de uma entidade dever identificar de forma nica uma ocorrncia dessa entidade. Com a criao da entidade composta obtemos dois relacionamentos do tipo 1:M, pois: um cliente pode ter vrias visitas de um vendedor, em datas diferentes, sendo que cada visita de um vendedor efectuada a um cliente; um vendedor efectua vrias visitas a um cliente, sendo que cada visita a um cliente efectuada por um vendedor.

Um outro exemplo que poderemos apresentar o do relacionamento apresentado na figura I.4.17, entre a entidade encomenda e a entidade produto: uma encomenda contm vrios produtos sendo que cada produto pode estar contido em vrias encomendas.
encomenda
M contm N

produto

n encomenda

........

cod produto n encomenda


1 M

quantidade

cod produto

........

encomenda

linha encomenda

produto

Figura I.4.17 Relacionamento entre a entidade encomenda e a entidade produto

Crimos a entidade composta linha-encomenda, sendo que cada encomenda contm vrias linhas-encomenda, cada uma com um produto, e cada produto est presente numa linha-encomenda, que pertence a uma
Na situao apresentada aqui, considera-se que cada cliente s visitado uma vez num dia, pois caso contrrio este conjunto de atributos no seria chave primria.
50

I.4 MODELAO DE DADOS

127

encomenda. A chave primria constituda pelos atributos n encomenda e cod produto. O atributo quantidade, da entidade composta linha-encomenda, existe pois necessrio conhecer a quantidade de produto em cada linha-encomenda, de uma encomenda.

4.2.5 Uma comparao de notaes


A notao que aqui temos vindo a apresentar tpica do modelo desenvolvido por Chen. importante referir que outros estilos de diagramas tm vindo a ser apresentados. Os mais comuns so: p-de-galinha, desenvolvido por C. W. Bachman, Rein85, desenvolvido por D. Reiner em 1985, IDEF1X, derivado de estudos do ICAM51, conduzidos no final de 1970.
Chen Entidade P-de-galinha Rein85 IDEFIX

Linha relacionamento Relacionamento

Smbolo de opcional Smbolo para 1 1 |

Smbolo para muitos

Entidade composta

Entidade fraca

Figura I.4.18 Uma comparao de notaes

51

Integrated Computer-Aided Manufacturing

128

BASES DE DADOS COM MICROSOFT ACCESS 2007

Apesar destes modelos serem baseados nos mesmos conceitos de modelao, foram desenvolvidos porque so mais fceis de utilizar com ferramentas de modelao baseadas em computador, do que o modelo original de Chen. Na figura I.4.18 apresentamos uma comparao destas notaes.

4.3 DESENVOLVENDO UM DIAGRAMA E-R


O processo de desenhar uma base de dados iterativo, isto , baseia-se numa repetio de processos e procedimentos. Por exemplo, a elaborao de um diagrama E-R comea, geralmente, com uma narrativa das operaes e procedimentos da organizao em estudo. O processo repete-se at que os utilizadores finais e os analistas do sistema concordem que o diagrama E-R representa o sistema real de uma forma adequada52. De seguida, iremos desenvolver uma proposta de diagrama E-R, para uma determinada organizao, da qual apresentamos a seguinte descrio: Uma editora deseja informatizar os registos das vendas dos livros que publica. Para cada livro guardam-se as seguintes informaes: ISBN, ttulo, coleco a que pertence, data da edio, imagem da capa, nmero de unidades editadas e os seus autores. Alm disso, necessrio conhecer os autores que escrevem o livro, bem como os royalties usufrudos. Para cada autor necessrio conhecer o seu nome, telefone, nmero de contribuinte, a sua nacionalidade e os vrios livros que escreveu. Para cada venda, dever ser conhecida a data da sua realizao bem como o revendedor que a efectuou. Dever ainda ser conhecida a lista dos livros vendidos, a sua quantidade e o seu preo unitrio. Para os revendedores necessrio guardar informao sobre o seu nome, nmero de contribuinte, bem como a regio a que pertence. Da leitura atenta da descrio do sistema em causa, identificamos as seguintes entidades:
52

Livro Autor Nacionalidade

Para um mesmo sistema podem ser apresentados diversos diagramas E-R adequados.

I.4 MODELAO DE DADOS

129

Coleco Venda Revendedor.

Passamos agora identificao de relacionamentos entre estas entidades:

Relacionamento entre as entidades venda e livro

Identificamos um relacionamento de muitos para muitos (M:N), entre as entidades venda e livro, visto que cada venda pode conter vrios livros e cada livro pode estar contido em vrias vendas. Este relacionamento representado na figura I.4.19.

Figura I.4.19 Relacionamento entre as entidades venda e livro

Relacionamento entre as entidades coleco e livro

Identificamos um relacionamento de 1:M entre as entidades coleco e livro, dado que uma coleco pode conter vrios livros e cada livro pertence a uma determinada coleco. Representa-se este relacionamento na figura I.4.20.

coleco

1 pertence

livro

Figura I.4.20 Relacionamento entre as entidades livro e coleco

130

BASES DE DADOS COM MICROSOFT ACCESS 2007

Relacionamento entre as entidades livro e autor

Identificamos um relacionamento M:N entre as entidades livro e autor, dado que um livro pode ser escrito por vrios autores e um autor pode, por seu lado, escrever vrios livros. O relacionamento representado na figura I.4.21.

Figura I.4.21 Relacionamento entre as entidades paciente e aparelho

Relacionamento entre as entidades autor e nacionalidade

Identificamos um relacionamento 1:M entre as entidades nacionalidade e autor, visto que cada autor tem uma nacionalidade (principal), sendo que cada nacionalidade pode ser comum a vrios autores. O relacionamento representado na figura I.4.22.

Figura I.4.22 Relacionamento entre as entidades paciente e aparelho

Relacionamento entre as entidades revendedor e venda

Identificamos um relacionamento 1:N entre as entidades revendedor e venda, dado que um revendedor pode efectuar vrias vendas e cada venda feita por um revendedor. Na figura I.4.23 representa-se este relacionamento.

I.4 MODELAO DE DADOS

131

Figura I.4.23 Relacionamento entre as entidades paciente e aparelho

Podemos agora apresentar o diagrama E-R resultante. Fazemo-lo na figura I.4.24.

Figura I.4.24 Diagrama E-R para o exemplo apresentado

Passemos agora aos atributos. Quanto ao autor, ser necessrio guardar os seus dados pessoais: nome do autor, telefone e nmero de contribuinte. Alm disso, necessria e existncia de uma chave primria. Assim sendo, podemos considerar os atributos seguintes para a entidade autor: CodAutor, Nome, Telefone, Contribuinte, sendo CodAutor a chave primria. De forma anloga podemos identificar os atributos das restantes entidades. A entidade livro apresenta os atributos ISBN, Ttulo, Data edio, Capa, e NUnidadesEd, sendo ISBN a chave primria. Para a entidade venda temos os atributos NVenda e data, sendo NVenda a chave primria. Para a entidade revendedor consideramos os atributos CodRevendedor, Nome, Contribuinte, e Regio, sendo CodRevendedor a chave primria.

132

BASES DE DADOS COM MICROSOFT ACCESS 2007

Para a entidade coleco identificamos os atributos CodColeco e Designao, sendo CodColeco a chave primria. A entidade nacionalidade tem os atributos CodNacionalidade e Nacionalidade, sendo CodNacionalidade a chave primria.

Figura I.4.25 Diagrama E-R com atributos

tambm necessrio transformar os relacionamentos escreve e contm em entidades compostas. Optmos por alterar os nomes para autorDOlivro e vendaDOlivro, respectivamente. Como j vimos, fazem obrigatoriamente parte da chave primria os atributos que so chaves primrias das entidades que se relacionam. Alm destes, fazem tambm parte da lista de atri-

I.4 MODELAO DE DADOS

133

butos da entidade composta autorDOlivro o atributo royalties e da entidade composta vendaDOlivro os atributos quantidade e preo unitrio. Obtemos assim o diagrama E-R apresentado na figura I.4.2553.

4.4 CORRESPONDNCIA ENTRE O MODELO E-R E O MODELO


RELACIONAL O esquema relacional, de que falmos no captulo 3, pode ser derivado a partir do diagrama E-R. Existe um conjunto de procedimentos que nos permitem faz-lo e que passamos a descrever. 1. Para cada entidade (simples) no diagrama E-R, criamos uma relao que inclui todos os atributos simples dessa entidade, incluindo como chave primria dessa relao a chave primria identificada no diagrama E-R. No caso de atributos compostos inclumos cada um dos atributos simples que o constituem. Para o diagrama apresentado na figura I.4.2 obtemos a relao seguinte54: Autor (cod autor, nome, rua, porta, cidade, cdigo postal, data nascimento, n contribuinte)

2. Para uma entidade fraca no diagrama E-R, os seus atributos so includos na relao obtida a partir da entidade, da qual essa entidade fraca dependente. chave primria dessa relao deve(m) ser adicionado(s) o(s) atributo(s) que formam a chave primria da entidade fraca. Tomando como exemplo o da figura I.4.14, obtemos a relao: Empregado (cod-empre, num-dep, nome-empr, data-nasc-empr, nomedep, data-nasc-dep)

3. Para cada relacionamento de 1:1, escolhemos uma das relaes obtidas a partir de uma das entidades e inclumos a(s) chave(s) primria(s) da(s) outra(s) como chave(s) estrangeira(s). melhor escolher uma reComo o diagrama E-R fica muito sobrecarregado com as elipses dos atributos, muitas vezes opta-se por colocar a lista dos atributos junto das entidades, sem as elipses, ou mesmo fora do diagrama E-R. 54 O caso do atributo telefone, que tem mais do que um valor, ser tratado no ponto 6.
53

134

BASES DE DADOS COM MICROSOFT ACCESS 2007

lao cuja entidade tenha participao total no relacionamento. Para o exemplo da figura I.4.13, obtemos o seguinte esquema relacional: Empregado (cod empregado, ...) Departamento (cod departamento, ..., cod empregado)

4. Para cada relacionamento de 1:M, identificamos a entidade que, no diagrama, se encontra do lado 1 e inclumos a chave primria desta entidade como chave estrangeira da entidade que se encontra do lado N. A partir do exemplo da figura I.4.10 obtemos as seguintes relaes: Cliente (cod cliente, ..., cod vendedor) Vendedor (cod vendedor, ....)

5. Cada relacionamento de M:N foi previamente transformado numa entidade composta. Cada uma dessas entidades compostas d lugar a uma nova relao no esquema relacional, com os atributos identificados, incluindo a chave primria. Por exemplo, a partir do diagrama apresentado na figura I.4.16 obtemos as relaes seguintes: Cliente (cod cliente, ...) Vendedor (cod vendedor, ...) Visita (cod cliente, cod vendedor, data)

6. Para os atributos com mais do que um valor, criamos uma nova relao que inclui o prprio atributo composto e a chave primria da entidade de que ele atributo. A chave primria desta nova relao formada por esses dois atributos. No exemplo da figura I.4.2, obtemos o seguinte esquema relacional: Autor (cod autor, nome, rua, porta, cidade, cdigo postal, data nascimento, n contribuinte) Telefone-autor (cod autor, telefone)

I.4 MODELAO DE DADOS

135

Aplicando estas regras ao diagrama E-R apresentado na figura I.4.25, obtemos o esquema relacional seguinte: Livro (ISBN, Ttulo, CodColeco, DataEdio, Capa, NUnidadesEd) Autor (CodAutor, Nome, Telefone, Contribuinte, CodNacionalidae) Nacionalidade (CodNacionalidade, Nacionalidade) Coleco (CodColeco, Designao) Venda (NVenda, Data, CodRevendedor) Revendedor (CodRevendedor, Nome, Contribuinte, Regio) autorDolivro (CodAutor, ISBN, Royalties) vendaDolivro (Nvenda, ISBN, Quantidade, PreoUnitrio)

Este esquema relacional ir ser utilizado nas partes II e III deste livro, como exerccio guiado, sendo que cada relao deste esquema relacional uma tabela do Microsoft Access.

136

BASES DE DADOS COM MICROSOFT ACCESS 2007

TERMOS CHAVE

Modelo ER Diagrama ER Entidade Atributo Atributo simples Atributo composto Atributo derivado Relacionamento Participante de um relacionamento

Grau de um relacionamento Relacionamento recursivo Relacionamento binrio Relacionamento ternrio Cardinalidade de um relacionamento Participao obrigatria Participao opcional Entidade fraca Entidade composta

I.4 MODELAO DE DADOS

137

PARA REVER
31. Explique por palavras suas cada um dos termos chave apresentados. 32. Em que medida importante a modelao de dados? 33. Considere o seguinte esquema no modelo Entidade Relacionamento:
comprimento Montanha 1
origina

Rio

localizao

nome

altitude

nome

Apresente as tabelas do modelo relacional associadas a este esquema. 34. Considere o diagrama E-R seguinte:
Curso 1

divide

M Professor 1 ensino M Turma M M Contm N Aluno

requere

N Sala

a. Com base no diagrama, apresente uma descrio do sistema real. b. Transforme o diagrama de modo a conter apenas relacionamentos com cardinalidade 1:M.

138

BASES DE DADOS COM MICROSOFT ACCESS 2007

c. A partir deste diagrama, obtenha as tabelas do modelo relacional, considerando atributos convenientes. 35. Para cada um dos DERs apresentados na figura I.4.12 estude o tipo de participao (obrigatria ou no) e actualize os diagramas com a indicao adequada. 36. Desenvolva um DER para cada um dos exemplos seguintes: a. A famlia Silva chegou de umas frias e apesar de estarem todos de acordo de que as mesmas foram excelentes, no se entendem quanto aos gastos. O Sr. Silva tinha frequentado um curso de base de dados em Access e resolveu criar uma base de dados com as despesas que tinham feito. Antes de iniciar o trabalho analisou os dados de que dispunha para tratar e concluiu que tinha o seguinte: Durante a viagem todos os elementos da famlia efectuaram despesas; A viagem durou vrios dias e visitaram diferentes pases; Alguns dos elementos da famlia tinham um ou mais cartes de crdito; As despesas foram pagas em dinheiro ou com o carto de crdito; A famlia guardou todos os tales de despesa, o que facilita a criao da base de dados; Todos os valores de que dispunha j estavam na moeda do pas em que foram efectuados; Tinha uma tabela fornecida pelo banco com as cotaes das moedas para os diferentes dias.

Com base na informao disponvel, o Sr. Silva pretende criar as seguintes listagens para a totalidade da viagem e por cada pas visitado: Mapa com os gastos efectuados por cada um dos elementos da famlia; Mapa com os gastos efectuados por cada carto de crdito; Mapa com os gastos por tipo de despesa (exemplo: alimentao, dormida, gasolina, etc.).

I.4 MODELAO DE DADOS

139

b. A PIZZARIA, empresa de entrega ao domiclio de pizzas, encomendou-lhe uma aplicao em Access para fazer o controlo das entregas das encomendas recebidas telefonicamente bem como das motorizadas utilizadas nas mesmas. A empresa pretende que a aplicao contemple os seguintes pontos: Os clientes so identificados pelo seu nmero de telefone; Os tempos e a quilometragem de cada entrega devero ser armazenados, bem como os valores dirios de quilometragem e consumo de cada mota; A informao relativa carta de conduo de cada estafeta dever ser armazenada para evitar a afectao do estafeta a um veculo para o qual a sua carta no vlida; A empresa dever poder, em qualquer altura, comunicar com o estafeta encarregado da entrega duma encomenda.

c. A SILVA & ABREU, uma empresa de comercializao de artigos alimentares, tem vrios vendedores que angariam clientes para a sua carteira prpria. Um cliente, depois de angariado por um vendedor, ter todas as suas compras afectadas a esse vendedor at que este saia da empresa ou a administrao resolva realocar os clientes. Por vrias vezes tm surgido conflitos entre os vendedores pois todos reclamam a angariao dos bons clientes para si. A administrao tem dificuldade em confirmar as verses dos vendedores pois no tem registos com o angariador e as datas de angariao de um cliente. Para solucionar este problema a administrao da SILVA & ABREU resolveu contrata-lo para construir uma base de dados em Access que solucione este problema e que j agora faa o lanamento automtico das encomendas dos vendedores. A sua base de dados dever contemplar os seguintes pontos: Registar as angariaes dos novos clientes; Registar os diversos contactos (pessoas) dentro de cada empresa cliente; Registar as visitas de cada vendedor aos seus clientes e as encomendas, caso existam;

140

BASES DE DADOS COM MICROSOFT ACCESS 2007

Visualizar ou imprimir listagem com os clientes visitados por cada vendedor entre duas datas dadas; Visualizar ou imprimir listagem com as encomendas por cada vendedor entre duas datas dadas; Visualizar ou imprimir listagem com as comisses a receber por vendedor.

d. Uma empresa que comercializa produtos txteis deseja informatizar o seu sistema de informao usando uma base de dados relacional do tipo do Microsoft Access.

Os Produtos Os produtos esto divididos em vrias categorias (casacos, calas, coletes, etc.). Para cada categoria existe um cdigo e uma descrio. Para cada produto existe a seguinte informao: cdigo, nome e preo unitrio.

O Processo de Encomenda Sempre que um cliente coloca uma encomenda verifica-se primeiro se j existe ficha de cliente, caso no exista ficha preenchida uma para o cliente em questo. A informao que consta na ficha a seguinte: Cdigo, Nome, Morada, Cidade, Pas, Cdigo Postal, Telefone e Fax. Preenchida a ficha de cliente procede-se ao registo da encomenda. A informao a incluir na encomenda a seguinte: Por cada encomenda N Enc., Cdigo do vendedor, Nome do Vendedor, Nome do Cliente, Morada do Cliente, Data da Encomenda, Data de Entrega (solicitada pelo cliente); Por cada produto a incluir numa encomenda Cdigo do Produto, Quantidade Encomendada, Preo Unitrio. Quando uma encomenda se encontra pronta procede-se ento sua entrega. Uma vez entregue a encomenda regista-se a data de entrega real.

I.4 MODELAO DE DADOS

141

Relatrios O sistema de informao dever possibilitar a obteno de relatrios que apresentem a seguinte informao: Valor das vendas por produto e por ms. Valor das vendas por categoria e por ms. Atraso mdio das entregas entre datas. Valor das vendas por ms e por vendedor. Peso total dos produtos contidos nas encomendas de cada ms.

Note que: No existem produtos repetidos numa encomenda. Os preos unitrios dos produtos podem ser actualizados todos os meses. e. O consultrio dentrio do Dr. Dentinho deseja informatizar os registos dos tratamentos efectuados aos seus pacientes, aos quais se atribui um cdigo interno. Para cada paciente guardam-se as seguintes informaes pessoais: nome do paciente, Caixa (ADSE, geral, PSP, ...), nmero de beneficirio, regime, data de validade do carto, morada do paciente, telefone do paciente, data da primeira consulta, ... necessrio registar, para cada tratamento, o custo e a data em que foi efectuado, dado que o mesmo tipo de tratamento pode ser efectuado em datas distintas, ao mesmo paciente. Existem dois tipos de tratamentos distintos: os tratamentos gerais (destartarizao, gengivectomia, ortopantomografia, teleradiografia) e os tratamentos aplicados especificamente a um dente (restaurao, endodontia, exodontia, prtese acrlica, prtese esqueltica, coroa, elemento de ponte). A ficha de cada cliente apresenta os vrios dentes e o tratamento efectuado a cada um dos dentes, numa determinada data. Apresenta tambm os tratamentos gerais e as datas em que foram efectuados. Cada dente representado por um cdigo especfico: 11 a 18, 21 a 28, 31 a 38 e 41 a 48.

142

BASES DE DADOS COM MICROSOFT ACCESS 2007

Existe a possibilidade de colocar aparelhos na boca. Existem quatro tipos de aparelhos distintos (aparelho fixo superior, aparelho fixo inferior, aparelho removvel superior e aparelho removvel inferior). Os aparelhos necessitam de controlos peridicos, dos quais importante registar a data. Mensalmente preciso obter relatrios dos tratamentos e controlos efectuados nesse ms, para cada um dos pacientes.

f.

Pretende-se conceber uma base de dados que permita efectuar a gesto da informao inerente a uma coleco de msica. Considere toda a informao associada a um conjunto de discos de vinil, CDs e DVDs, nomeadamente as Bandas e/ou Artistas, as categorias musicais bem como as msicas existentes em cada lbum. De destacar a informao de cada pista (nmero, nome e tempo) pertencente a cada lbum e a informao relativa aos diferentes tipos de Msica (Categorias).

37. A partir de cada um dos DERs obtidos na questo anterior, obtenha os respectivos esquemas relacionais.

PARA INVESTIGAR
13. Pode ser encontrada na Internet a verso integral do artigo de Peter Chen The Entity-Relathionship Model Toward a Unified View of Data, no qual foi descrito pela primeira vez o modelo ER. Encontre, leia e analise o artigo referido. 14. Em algumas situaes as noes do modelo ER clssico, que foi apresentado ao longo deste captulo, tm-se demonstrado insuficientes. Assim sendo, surgiram extenses a este modelo. Apresente a descrio do modelo EER (do ingls, Enhanced ER). 15. Apresente a correspondncia entre o modelo EER e o modelo relacional.

I.5 Dependncias Funcionais e Normalizao

Quando realizamos o desenho de uma base de dados relacional, o primeiro objectivo que pretendemos atingir o de criar uma representao adequada dos dados, utilizando boas estruturas de dados. Em princpio, o desenho de bases de dados atravs, por exemplo, do modelo E-R, produz boas estruturas de dados. A dificuldade consiste em distinguir as boas das ms estruturas. A normalizao uma forma de o fazer. Nesta situao, a normalizao utilizada como uma tcnica de validao e podemos afirmar que ao utilizar o modelo E-R seguida da validao das estruturas obtidas, atravs da normalizao, estamos a fazer uma abordagem Top-Down ao desenho de bases de dados. Podemos tambm utilizar a normalizao como uma abordagem Bottom-up, ao desenho de bases de dados, o que nos permite identificar um conjunto apropriado de relaes. A normalizao uma tcnica que consiste em vrias fases chamadas Formas Normais. Em cada uma das fases feita uma anlise de relacionamentos entre atributos. primeira fase chama-se Primeira Forma Normal (1FN), segunda fase chama-se Segunda Forma Normal (2FN) e terceira fase chama-se Terceira Forma Normal (3FN). Existem ainda a Forma Normal de Boyce-Codd (FNBC), a Quarta Forma Normal (4FN) e a Quinta Forma Normal (5FN). De um ponto de vista estrutural, as formas normais mais elevadas so melhores pois reduzem as redundncias nos dados e consequentemente ajudam a eliminar as anomalias que resultam dessas redundncias. No devemos, no entanto, supor que o nvel de normalizao mais elevado sempre o mais desejvel. Geralmente, uma forma normal mais elevada produz uma base de dados com uma capacidade de resposta mais lenta.

144

BASES DE DADOS COM MICROSOFT ACCESS 2007

Devemos encontrar sempre o ponto de equilbrio adequado a cada caso. Alguns autores afirmam que, para a maioria dos sistemas, basta efectuar a normalizao at 3FN, existindo, no entanto, algumas aplicaes especiais que requerem nveis de normalizao mais elevados. Ao longo deste captulo iremos demonstrar o processo de normalizao, transferindo os dados, inicialmente gravados num formulrio, para a forma de uma tabela, com linhas e colunas e procedendo depois sua normalizao. Antes, porm, iremos reflectir sobre a importncia da normalizao, em 5.1. Em 5.2 iremos analisar o conceito de dependncia funcional. Na seco 5.3 iremos estudar cada uma das formas normais, nomeadamente a 1FN, a 2FN, a 3FN, a FNBC, a 4FN e a 5FN. O exemplo que servir de base ao nosso trabalho o mesmo que utilizaremos nas partes II e III deste livro, como exerccio guiado, e que j abordmos em 4.3.

Figura I.5.1 Formulrio de tabela no normalizada

Figura I.5.2 Tabela no normalizada

I.5 DEPENDNCIAS FUNCIONAIS E NORMALIZAO

145

Consideremos o formulrio apresentado na figura I.5.1. Podemos propor a relao (tabela) apresentada na figura I.5.2 como sendo uma relao cujo contedo corresponde s necessidades do relatrio. Ser este o ponto de partida para o trabalho a desenvolver ao longo deste captulo.

5.1 A IMPORTNCIA DA NORMALIZAO


Um dos principais objectivos que pretendemos atingir ao efectuar o desenho de uma base de dados relacional o de agrupar os atributos em relaes de forma a minimizar as redundncias dos dados, reduzindo assim o espao que a base de dados ocupar em disco. Alm deste problema, a existncia de redundncias est associada a um conjunto de anomalias de insero de dados, anomalias de eliminao de dados e anomalias de alterao de dados.

Anomalias de insero

Uma das anomalias de insero que podem acontecer prende-se com o facto de inserir dados inconsistentes. Por exemplo, ao inserir o autor Ana Paula Afonso para o livro com ISBN 9728426550, devemos ter o cuidado de inserir o nome dessa autora de forma correcta: pode vir a acontecer, por exemplo, que exista um autor de cdigo 63 com nomes distintos. Outro tipo de anomalias de insero acontece quando tentamos inserir, na base de dados, dados que possam existir sem estarem dependentes da existncia de outros, por exemplo, uma nova coleco, para a qual ainda no foi publicado qualquer livro. Isso obrigaria a que fosse inserido o valor nulo no cdigo do livro o que, sendo esse atributo chave primria, conduziria a uma quebra na restrio de integridade. Assim sendo, s poderemos inserir novas coleces na tabela da figura I.5.2 se j existir algum livro publicado dessa coleco55.

Evidentemente a situao normal esta: a coleco existe, desde que exista algum livro que pertena a essa coleco. No entanto, poder ser do interesse da editora que seja inserida uma coleco na base de dados para a qual existam livros projectados, mas que ainda no tenham sido publicados.

55

146

BASES DE DADOS COM MICROSOFT ACCESS 2007

Anomalias de eliminao

As anomalias de eliminao prendem-se com o facto de poderem ser eliminados dados inadvertidamente. Por exemplo, ao eliminarmos o livro com ISBN 9728426852, eliminamos tambm os dados sobre os seus autores e sobre a coleco de cdigo 5.

Anomalias de alterao

Se houver uma alterao na data de edio inicialmente inserida para o livro com ISBN 9728426542, essa alterao dever ser feita em todas as linhas existentes para esse livro. Se isso no acontecer a base de dados ficar num estado de inconsistncia. Para evitar as anomalias aqui apresentadas utilizamos a normalizao. Atravs da aplicao desta tcnica a relao apresentada na figura I.5.2 vai ser decomposta em vrias relaes, eliminando anomalias em cada uma das fases do processo de normalizao.

5.2 DEPENDNCIAS FUNCIONAIS


Um dos principais conceitos associados normalizao o conceito de dependncia funcional, que descreve os relacionamentos entre os atributos. Sendo A e B atributos de uma relao R, dizemos que B depende funcionalmente de A se cada valor de A est associado com exactamente um valor de B (A ou B podem conter mais do que um atributo). Esta dependncia funcional representada por

A B

O atributo A designa-se por determinante. Tomemos o exemplo da relao apresentada na figura I.5.2. O atributo Designao coleco depende funcionalmente do atributo Cod coleco, ou de forma equivalente, Cod coleco determina Designao coleco. Cod coleco Designao coleco

I.5 DEPENDNCIAS FUNCIONAIS E NORMALIZAO

147

pois cada valor de Cod coleco est associado com exactamente um valor de Designao da coleco: 3 Tecnologias 5 Desafios

No entanto, o atributo Cod Autor no depende funcionalmente do atributo Cod coleco pois existem valores do atributo Cod coleco associados com mais do que um valor do atributo Cod Autor: 3 63 3 66 3 67 3 68

5.3 O PROCESSO DE NORMALIZAO


A normalizao executada como uma srie de passos. Cada passo corresponde a uma Forma Normal com propriedades conhecidas, que sero apresentadas nas seces 5.3.1 a 5.3.5. medida que procedemos normalizao, as relaes tornam-se cada vez mais restritivas e menos vulnerveis a anomalias. Inicialmente uma relao pode apresentar um ou mais grupos repetitivos: dizemos que ela se encontra numa forma no normalizada. No exemplo da figura I.5.2, podemos verificar que, para cada livro, existem vrias entradas do grupo de atributos Cod Autor, Nome Autor, Telefone Autor, Contribuinte, Cod Nacionalidade, Nacionalidade, Royalties. As notaes mais comuns para apresentar as estruturas no normalizadas, indicando os grupos repetitivos, so a notao DeMarco e a notao Gane and Sarson.

Notao DeMarco

Nesta notao, os grupos repetitivos so apresentados entre chavetas. Assim, para o exemplo da figura I.5.2 teremos:

148

BASES DE DADOS COM MICROSOFT ACCESS 2007

Livro = ISBN, Ttulo, Data Edio, Capa, N Unidades Ed, Cod Coleco, Designao Coleco, {Cod Autor, Nome Autor, Telefone Autor, Contribuinte, Cod Nacionalidade, Nacionalidade, Royalties}

Notao Gane and Sarson

Nesta notao atribumos um nome ao grupo repetitivo e indicamo-lo com um * (asterisco). Os atributos que constituem o grupo repetitivo so indentados. Para o exemplo da figura I.5.2 teremos:

Livro ISBN Ttulo Data Edio Capa N Unid. Ed Cod Coleco Designao Coleco Autores* Cod Autor Nome Autor Telefone Autor Contribuinte Cod Nacionalidade Nacionalidade Royalties

Passemos agora apresentao das caractersticas de cada uma das formas normais.

I.5 DEPENDNCIAS FUNCIONAIS E NORMALIZAO

149

5.3.1 Primeira Forma Normal


O termo Primeira Forma Normal (1FN) descreve uma relao na qual: os atributos chave esto definidos; no existem grupos repetitivos; todos os atributos dependem funcionalmente da chave primria.

Para eliminar os grupos repetitivos comeamos por identificar um atributo ou conjunto de atributos como chave primria da relao. Seguidamente decompomos a estrutura removendo os atributos que formam os grupos repetitivos juntamente com o(s) atributo(s) que forma(m) a chave primria, formando desta forma duas relaes e identificamos a chave primria das relaes obtidas. Por vezes existe mais do que um grupo repetitivo ou existem grupos repetitivos dentro de grupos repetitivos. Nestes casos, devemos repetir o processo indicado at eliminarmos todos os grupos repetitivos. No exemplo que temos vindo a considerar obtemos (os atributos sublinhados formam a chave primria): Notao DeMarco Livro = ISBN, Ttulo, Data Edio, Capa, N Unidades Ed, Cod Coleco, Designao Coleco Livro/Autor = ISBN, Cod Autor, Nome Autor, Telefone Autor, Contribuinte, Cod Nacionalidade, Nacionalidade, Royalties

Notao Gane and Sarson


Livro ISBN Ttulo Data Edio Capa N Unidades Ed Cod Coleco Designao Coleco Livro/Autor ISBN Cod Autor Nome Autor Telefone Autor Contribuinte Cod Nacionalidade Nacionalidade Royalties

150

BASES DE DADOS COM MICROSOFT ACCESS 2007

Vamos agora verificar todas as dependncias funcionais presentes em ambas as relaes. evidente que todos os atributos dependem funcionalmente da chave primria. A relao Livro apresenta as seguintes dependncias funcionais: f1: ISBN Ttulo, Data Edio, Capa, N Unidades Ed, Cod Coleco, Designao Coleco f2: Cod Coleco Designao Coleco

A relao Livro/Autor apresenta as seguintes dependncias funcionais: f3: ISBN, Cod Autor Nome Autor, Telefone Autor, Contribuinte, Cod Nacionalidade, Nacionalidade, Royalties f4: Cod Autor Nome Autor, Telefone Autor, Contribuinte, Cod Nacionalidade, Nacionalidade f5: Cod Nacionalidade Nacionalidade

Apresentamos o diagrama de dependncias de cada uma das relaes obtidas, na figura I.5.3.
Livro: ISBN Ttulo f1:

Data edio

Capa

N unid.ed

Cod coleco

Designao coleco

f2: Livro/Autor: ISBN Cod Autor Nome Autor Telefone Autor Contrib uinte Cod Nacionalidade Naciona lidade Royal ties

f3: f4: F5: Figura I.5.3 Diagrama de dependncias

I.5 DEPENDNCIAS FUNCIONAIS E NORMALIZAO

151

5.3.2 Segunda Forma Normal


A Segunda Forma Normal (2FN) baseia-se no conceito de dependncia parcial (dependncia funcional parcial). Uma dependncia funcional diz-se parcial se o determinante representar apenas uma parte dos atributos que formam a chave primria. evidente que apenas as relaes cujas chaves primrias so compostas por dois ou mais atributos apresentam dependncias parciais. No nosso exemplo, dependncia parcial f4 (ver figura I.5.3). Uma relao est na 2FN se: est na 1FN; no inclui dependncias parciais.

A normalizao de relaes que se encontram na 1FN para relaes na 2FN envolve a remoo das dependncias parciais. Para eliminar uma dependncia parcial removemos os atributos que so parcialmente dependentes juntamente com uma cpia do determinante, formando uma nova relao. A chave primria dessa nova relao o determinante. No nosso exemplo obtemos: Notao DeMarco Livro = ISBN, Ttulo, Data Edio, Capa, N Unidades Ed, Cod Coleco, Designao Coleco Livro/Autor = ISBN, Cod Autor, Royalties Autor = Cod Autor, Nome Autor, Telefone Autor, Contribuinte, Cod Nacionalidade, Nacionalidade

Notao Gane and Sarson


Livro ISBN Ttulo Data Edio Capa Livro/Autor ISBN Cod Autor Royalties

152 N Unidades Ed Cod Coleco Designao Coleco

BASES DE DADOS COM MICROSOFT ACCESS 2007

Autor Cod Autor Nome Autor Telefone Autor Contribuinte Cod Nacionalidade Nacionalidade

5.3.3 Terceira Forma Normal


A Terceira Formal Normal (3FN) baseia-se no conceito de dependncia transitiva. Existe uma dependncia transitiva quando os atributos distintos A, B e C de uma relao apresentam as dependncias: A B e B C. Neste caso dizemos que C depende transitivamente de A, via B (supondo que A no depende funcionalmente de B nem de C). No nosso exemplo, f2 e f5 so dependncias transitivas, pois Cod Coleco Designao Coleco Cod Nacionalidade Nacionalidade

Uma relao est na 3FN se: est na 2FN; no contm dependncias transitivas.

A normalizao de relaes que se encontram na 2FN para relaes que se encontram na 3FN envolve a remoo das dependncias transitivas. Para eliminar uma dependncia transitiva de uma relao removemos os atributos transitivamente dependentes dessa relao, juntamente com uma cpia do determinante, formando uma nova relao. Continuando com o nosso exemplo, obtemos:

I.5 DEPENDNCIAS FUNCIONAIS E NORMALIZAO

153

Notao DeMarco Livro = ISBN, Ttulo, Data Edio, Capa, N Unidades Ed, Cod Coleco Coleco = Cod Coleco, Designao Coleco Livro/Autor = ISBN, Cod Autor, Royalties Autor = Cod Autor, Nome Autor, Telefone Autor, Contribuinte, Cod Nacionalidade Nacionalidade = Cod Nacionalidade, Nacionalidade

Notao Gane and Sarson


Livro ISBN Ttulo Data Edio Capa N Unidades Ed Autor Cod Autor Coleco Cod Coleco Designao Coleco Nome Autor Telefone Autor Contribuinte Livro/Autor ISBN Cod Autor Royalties

Nacionalidade Cod Nacionalidade Nacionalidade

5.3.4 Forma Normal de Boyce-Codd


Uma relao encontra-se na Forma Normal de Boyce-Codd (FNBC) se: Est na 3FN Qualquer determinante uma chave candidata.

154

BASES DE DADOS COM MICROSOFT ACCESS 2007

A normalizao de uma relao que se encontre na 3FN para relaes que se encontrem na FNBC faz-se separando o(s) atributo(s) que depende(m) do determinante que no chave candidata. evidente que se uma relao possui apenas uma chave candidata, a 3FN e a FNBC so equivalentes, ou seja, apenas as relaes com mais de uma chave candidata podem no corresponder FNBC. No exemplo da editora que temos vindo a considerar todas as tabelas que esto na 3FN esto tambm na FNBC. Para exemplificar a FNBC consideremos a relao Consulta-Paciente (CodPaciente, data, hora, CodMedico, sala)

que contm os detalhes das consultas marcadas numa clnica. Num determinado dia, o mdico est afecto a uma determinada sala. No entanto, uma sala pode ser alocada a vrios mdicos, consoante as necessidades desse dia. Um paciente s pode ser consultado uma vez por dia, mas pode ter vrias consultas em dias diferentes. A relao tem trs chaves candidatas: CodPaciente + data CodMedico + data + hora sala + data + hora

Escolhamos CodPaciente + data como chave primria: Consulta-Paciente (CodPaciente, data, hora, CodMedico, sala)

Esta relao tem as seguintes dependncias funcionais: CodPaciente + data hora, CodMedico, sala CodMedico + data + hora CodPaciente, sala sala + data + hora CodMedico, CodPaciente CodMedico + data sala Estas dependncias funcionais esto representadas no diagrama da figura I.5.4.

I.5 DEPENDNCIAS FUNCIONAIS E NORMALIZAO

155

CodPaciente f1:

Data

Hora

CodMedico

Sala

f2:

f3:

f4:

Figura I.5.4 Diagrama de dependncias da relao consulta-paciente

Analisando as dependncias apresentadas, verificamos a ausncia de dependncias parciais e de dependncias transitivas, pelo que a relao se encontra na 3FN. No entanto, esta relao no se encontra na FNBC pois o determinante CodMedico + data no uma chave candidata. Para normalizar a relao consulta-paciente devemos criar duas novas relaes chamadas consulta e sala-mdico, separando o atributo que depende do determinante que no chave primria esse atributo sala: Consulta (CodPaciente, data, hora, CodMedico) Sala-medico (CodMedico, data, sala)

Por vezes ao decompor uma relao de modo a obter a FNBC, as dependncias funcionais no so preservadas, isto , pode haver algum determinante que separado dos atributos que o determinam. Nesta situao so perdidas restries importantes. No nosso exemplo perdemos a dependncia funcional sala + data + hora CodMedico, CodPaciente, pois os atributos que formam o determinante desta dependncia j no pertencem mesma relao. No entanto, se esta dependncia funcional no fosse removida a relao apresentaria redundncias nos dados. O

156

BASES DE DADOS COM MICROSOFT ACCESS 2007

analista ter de decidir qual a melhor opo no caso real que estiver a ser considerado.

5.3.5 Multi-dependncia e Quarta Forma Normal


Apesar de a 3FN ou a FNBC serem suficientes para a maioria das bases de dados, existem algumas situaes em que so necessrios nveis de normalizao mais elevados, associados com outros tipos de dependncias. A Quarta Forma Normal (4FN) baseia-se no conceito de Multi-dependncia. Uma relao que est na FNBC e no contm multi-dependncias no triviais est na 4FN. Consideremos uma relao com atributos A, B, C, D, ... Dizemos que B multi-dependente de A, se existe um conjunto de valores de B para cada valor de A, e B independente dos restantes atributos. Representa-se esta multi-dependncia por A B

A multi-dependncia pode ser trivial ou no trivial. Uma multi-dependncia, A B, diz-se trivial se se verifica uma das seguintes condies: o o

B A

A B = R

Se no se verifica nenhuma destas condies a multi-dependncia diz-se no trivial. Vejamos um exemplo concreto. Para isso consideremos a situao em que, na nossa editora, o autor indica vrios contactos telefnicos e endereos de correio-electrnico. Para isso consideremos a relao: Contactos-autor (cod autor, telefone, e-mail)

Na figura I.5.5 apresentamos uma instncia desta relao. Verifica-se que:

I.5 DEPENDNCIAS FUNCIONAIS E NORMALIZAO

157

Cod autor Cod autor

telefone e-mail

mas telefone e e-mail so atributos independentes. Estas multi-dependncias so no triviais. Assim sendo, esta relao no se encontra na 4FN.
Cod autor 66 66 66 66 67 67 Telefone 12345 12345 12222 12222 12121 12121 e-mail aaa@aa.pt bbb@bb.pt aaa@aa.pt bbb@bb.pt abc@aa.pt abc@bb.pt

Figura I.5.5 Instncia de uma relao com multidependncias

Para obter a 4FN, decompomos esta relao nas duas relaes seguintes: Telefone-autor (cod autor, telefone) e-mail-autor (cod autor, e-mail)

Na figura I.5.6 apresentamos uma instncia destas relaes.


Cod autor 66 66 67 Telefone 12345 12222 12121 Cod autor 66 66 67 67 e-mail aaa@aa.pt bbb@bb.pt abc@aa.pt abc@bb.pt

Figura I.5.6 Instncias de uma relao na 4FN

5.3.6 Dependncia de juno e Quinta Forma Normal


Podemos verificar que ao voltar a ligar as relaes apresentadas na figura I.5.6 atravs de um NATURAL JOIN, obtemos a mesma relao sem que tenham sido inseridos tuplos corrompidos. Dizemos que no existe uma

158

BASES DE DADOS COM MICROSOFT ACCESS 2007

dependncia de juno na relao contactos-autor. Logo a relao est na 5FN. Quando uma relao apresenta dependncias de juno, isto , quando ao decompor a relao, atravs de operaes PROJECT, obtemos relaes tais que a sua juno, atravs de um NATURAL JOIN, provoca a insero de tuplos que no fazem parte da relao original, dizemos que essa relao no est na 5FN. Vejamos um exemplo concreto. Para isso, consideremos uma clnica que com vrios consultrios. A relao Cons-paci-med (Cod consultrio, Cod paciente, Cod medico)

contm a informao sobre os mdicos e pacientes em cada um dos consultrios. Apresentamos uma instncia desta relao na figura I.5.7.
Cod consultorio 1 1 2 2 3 Cod paciente 1 2 1 3 2 Cod medico 1 2 2 1 3

Figura I.5.7 Instncia de uma relao com dependncia de juno

Esta relao est na 4FN, mas no est na 5FN, dado que, decompondo a relao nas trs relaes Consultrio-paciente (cod consultrio, cod paciente) Consultrio-medico (cod consultrio, cod medico) Paciente-medico (cod paciente, cod medico)

das quais apresentamos instncias na figura I.5.8, verificamos que no podemos obter a relao original atravs de um NATURAL JOIN de pares de relaes assim obtidas (ver figura I.5.9), dado que se obtm tuplos que no pertencem relao original.

I.5 DEPENDNCIAS FUNCIONAIS E NORMALIZAO R1 cod consultrio 1 1 2 2 3 cod paciente 1 2 1 3 2 R2 cod paciente 1 1 2 2 3 cod medico 1 2 2 3 1 R3 cod consultorio 1 1 2 2 3

159

cod medico 1 2 1 2 3

Figura I.5.8 Instncias de relaes na 5 FN

R1 R2 cod consultrio 1 1 1 1 2 2 2 3 3 cod paciente 1 1 2 2 1 1 3 2 2 cod medico 1 2 2 3 1 2 1 2 3 cod consultorio 1 2 1 2 1 2 1 2 3

R2 R3 cod paciente 1 1 2 2 1 1 3 3 2 cod medico 1 1 2 2 2 2 1 1 3

Figura I.5.9 Instncias de R1 R2 e R1 R3

160

BASES DE DADOS COM MICROSOFT ACCESS 2007

TERMOS CHAVE

Forma normal 1FN 2FN 3FN FNBC 4FN 5FN

Dependncia funcional Determinante Grupos repetitivos Dependncia parcial Dependncia transitiva Multidependncia Dependncia de juno

I.5 DEPENDNCIAS FUNCIONAIS E NORMALIZAO

161

PARA REVER
38. Explique por palavras suas cada um dos termos chave apresentados. 39. Considere o seguinte esquema relacional: Vendedor (cod-vendedor, apelido, nome, data-contrato, local-trabalho, supervisor, salrio, comisses) Cliente (cod-cliente, empresa, morada, localidade, cod-postal, pas) Peas (cod-pea, local, descrio, custo-unitrio, existncias) Facturas (cod-factura, cod-pea, quantidade, data-venda, codvendedor, cod-cliente)

sabendo que: salrio e comisses dependem de cod-vendedor supervisor depende de local-trabalho descrio e custo-unitrio dependem de cod-pea existncias dependem de cod-pea e de local data-venda, cod-vendedor e cod-cliente dependem de codfactura quantidade depende de cod-factura e de cod-pea i. Elabore o diagrama de dependncias. ii. Indique, justificando, que correces faria ao esquema apresentado.

40. Numa determinada escola pretende-se conceber um sistema de informao para auxiliar na elaborao de horrios. Obteve-se, entre outras, a seguinte estrutura, HORRIO, adequada ao modo de funcionamento daquela escola: Cd. Horrio Cd. Curso Nome Curso Cd-Ano Turma

162

BASES DE DADOS COM MICROSOFT ACCESS 2007

Dia* Cd. Dia Nome dia Caractersticas* Cd. Disciplina Nome Disciplina Tipo Disciplina Cd. Tempo Cd. Sala a. Elabore o diagrama de dependncias. b. Diga, justificando, em que forma normal se encontra esta estrutura. c. Normalize a estrutura at terceira forma normal, indicado convenientemente os passos realizados.

41. Uma empresa de camionagem tem vrios meios de transporte que aluga para diversas viagens. Existem tambm diversos motoristas da empresa. Pretende-se conceber o esquema de uma base de dados que guarde informao sobre as viagens dessa empresa. Considere a estrutura seguinte, como sendo adequada ao funcionamento da empresa e normalize-a. VIAGEM Nmero-viagem Confirmao* nmero-conf data-conf transporte* cod-transporte tipo-transporte

I.5 DEPENDNCIAS FUNCIONAIS E NORMALIZAO

163

destino-transporte destino-viagem data-sada data-chegada cod-motorista nome-motorista

42. Normalize a estrutura de dados seguinte, referente a uma plantao que contm vrias estufas. As plantas que se encontram nas estufas apresentam cuidados especiais, sendo necessrio saber quantas plantas, de cada variedade, foram plantadas em cada estufa. Cdigo estufa Descrio da estufa rea Plantas* Cdigo planta Descrio planta Data plantao Origem planta Localizao planta Quantidade plantada Cuidados especiais* Cdigo cuidado especial Descrio cuidado especial Durao cuidado especial

43. A tabela seguinte mostra as marcaes de consultas numa clnica dentria. A cada paciente atribuda uma consulta, numa data e

164

BASES DE DADOS COM MICROSOFT ACCESS 2007

hora determinadas, com um dentista, numa dada sala. Em cada dia de consultas o dentista colocado numa determinada sala.
N Dentista S1011 S1011 S1024 S1024 S1032 S1032 Nome dentista Antnio Silva Antnio Silva Maria Rodrigues Maria Rodrigues Rui Almeida Rui Almeida N Paciente P100 P105 P108 P108 P105 P110 Nome paciente Ana Sousa Mrio Silva Maria Almeida Maria Almeida Mrio Silva Jos Pedro Consulta Data Hora 03-Fev-2003 10:00 03-Fev-2003 12:00 03-Fev-2003 10:00 05-Fev-2003 14:00 05-Fev-2003 16:00 06-Fev-2003 18:00 N da sala S15 S15 S10 S10 S15 S13

a. A tabela est sujeita a anomalias. Explique e fornea exemplos de anomalias de insero, eliminao e actualizao. b. Efectue a normalizao da tabela.

44. Considere a relao R (a, b, c), na qual (a b, c) e (b a, c). a. Elabore o diagrama de dependncias. b. Qual a forma normal da relao? c. Normalize a relao.

45. Considere a relao R(a,b,c,d,e), em que {a,b} a chave primria e d e. a. Indique todas as dependncias da relao R. b. Qual a forma normal da relao R? c. Assuma agora que a chave primria R {a,b,d}. Em que forma normal a relao R passa a estar?

I.5 DEPENDNCIAS FUNCIONAIS E NORMALIZAO

165

d. Considere novamente a relao R, tal como enunciada no incio da pergunta. Indique a forma normal de R se o atributo {e} for chave candidata de R.

46. Considere a relao R(a,b,c,d,e) com as seguintes dependncias: a,b c; c,d e; d,e b. O conjunto de atributos {a, b} uma chave candidata? E {a, b, d}? Explique a sua resposta.56

PARA INVESTIGAR
16. Alguns autores apresentam outras formas normais, alm das descritas neste livro, nomeadamente: Domain-Key Restriction-union 6FN Apresente uma descrio de cada uma delas, apresentando exemplos.

56

Traduzido de [Elmasri e Navathe, 2004].

PARTE II

Na Parte II deste livro vamos fazer uma abordagem prtica ao Sistema de Gesto de Base de Dados (SGBD) Microsoft Access, sustentada em conceitos tericos abordados na Parte I. Essa abordagem ser feita de forma simples e objectiva, proporcionando ao utilizador um conhecimento de nvel intermdio e avanado das tcnicas necessrias ao desenvolvimento e implementao de uma base de dados. Nesta perspectiva, sero abordados os diferentes objectos do SGBD Microsoft Access 2007 e, simultaneamente, sero apresentados, para cada um, procedimentos e funcionalidades no mbito de um exerccio guiado baseado numa base de dados de uma Editora que ser construda e optimizada ao longo dos diversos captulos.

II.1 O Microsoft Access

O Microsoft Access um Sistema de Gesto de Base de Dados relacional em ambiente grfico, que possibilita ao utilizador o armazenamento, organizao e gesto dos dados de uma forma simples e directa. uma aplicao interactiva para o Windows, o que significa que tem capacidade para relacionar dados provenientes de diferentes origens. Nesta qualidade uma ferramenta poderosa de organizao, localizao e apresentao de grandes quantidades de informao. Este Sistema de Gesto de Base de Dados relacional constitudo por um conjunto de objectos como tabelas, consultas, formulrios, relatrios, macros e mdulos, que visam o armazenamento, edio, apresentao ou gesto de um conjunto de dados.

1.1 CARACTERSTICAS GERAIS


O Access consegue introduzir qualquer utilizador num mundo at ento fechado: o das bases de dados. As capacidades de estruturao, interligao e de consulta ajudam o utilizador na manipulao e localizao de informao, independentemente do formato ou do local onde ela se encontra. Os programas de gesto de base de dados clssicos apenas consideram como base de dados os ficheiros de dados, gravando todas as formas de apresentao destes dados em ficheiros separados. A filosofia do Access difere desta abordagem, na medida em que considera uma base de dados como um conjunto das tabelas de informaes com os respectivos modos

170

BASES DE DADOS COM MICROSOFT ACCESS 2007

de apresentao. Assim, um ficheiro de base de dados em Access pode conter uma ou vrias tabelas de dados, relatrios, consultas, formulrios, macros e mdulos de programao, possibilitando ao utilizador o desenvolvimento da base de dados gradualmente, incluindo novos elementos e combinando-os com elementos existentes em funo das suas necessidades. As ferramentas de criao WYSIWYG (What You See Is What You Get) disponveis ajudam na produo de Tabelas, Consultas, Formulrios e Relatrios sofisticados e eficazes para atender s especificaes mais exigentes. De facto, atravs dos Assistentes, o Access possibilita a criao dos referidos objectos com imagens, objectos grficos e sons sem qualquer necessidade de programao. Com o Access conseguimos, de uma forma rpida, elaborar representaes que nos ajudaro a acompanhar o rumo da nossa actividade, permitindo assim tomar eventuais decises de alterao do rumo delineado. Podemos tambm elaborar relatrios que filtram a nossa informao, apresentando apenas os dados estritamente necessrios, inviabilizando assim a apresentao de informao excedente que poderia provocar uma disperso e consequente demora na retirada de concluses.

1.2 O MICROSOFT ACCESS 2007


Com uma interface melhorada e recursos de design interactivo que no requerem conhecimento profundo de bases de dados, o Microsoft Access 2007 ajuda a registar e controlar informaes de modo rpido e fcil. De facto, possvel comear a trabalhar facilmente (Captulo 4), usando solues de bases de dados pr-formatadas que podero ser modificadas e adaptadas de acordo com as suas necessidades e opes da sua actividade. Se pretendermos definir a estrutura da nossa base de dados, o Access ajuda-nos na construo de tabelas eficientes (Captulo 5) que se podem relacionar de forma harmoniosa. Com o recurso ao objecto Consultas do Access, possvel colocar um conjunto de questes para que seja filtrada a informao das tabelas da base de dados, de forma a obter apenas a informao pretendida (Captulo 6).

II.1 O MICROSOFT ACCESS

171

Adicionalmente, o Access permite a recolha de informaes por meio de formulrios em e-mail ou a importao de dados a partir de aplicaes externas. Este objecto funciona como uma interface para o utilizador que proporciona uma viso mais apelativa e amigvel do contedo da base de dados (Captulo 7). Com o Access criamos, editamos e imprimimos relatrios detalhados (Captulo 8) que exibem informaes variadas, filtradas e agrupadas para facilitar a tomada de decises fundamentadas. Compartilhamos as informaes com outros colaboradores, usando as listas da tecnologia do Microsoft Windows SharePoint Services, onde poderemos gerir, auditar, recuperar informaes anteriormente apagadas, definir permisses de acesso aos dados e fazer regularmente cpias de segurana das informaes. A estreita integrao entre o Access 2007 e o Microsoft Office System (incluindo o Excel 2007, o Outlook 2007, o InfoPath 2007 e o Windows SharePoint Services) proporciona novas maneiras de criar, manter e distribuir informaes. Essas ferramentas vo mais alm do que nunca no derrube das barreiras que impedem o fluxo de informaes, ajudando a conseguir a informao que precisamos, com o formato desejado, na altura certa e no local pretendido. Tambm os indivduos com mais competncias no desenvolvimento e programao podem aperfeioar uma aplicao do Access 2007 com macros (Captulo 9) ou com o Microsoft Visual Basic. Estes profissionais podem at usar as ferramentas do sistema de desenvolvimento do Microsoft Visual Studio para acrescentar capacidades adicionais a uma aplicao do Access, e at transformar uma pequena aplicao utilizada de forma eficiente por um pequeno grupo, numa grande aplicao que uma organizao inteira possa utilizar (sem ter que reescrev-la do zero). Na verdade, as aplicaes do Access criadas actualmente podem facilmente crescer medida que crescem as nossas necessidades e as necessidades da organizao onde estamos inseridos. No final desta segunda parte (Captulo 10) veremos como gerir a base de dados atravs de um sistema de navegao e das ferramentas de anlise de desempenho, e como incrementar a segurana das nossas bases de dados, quer sejam centralizadas ou distribudas, atravs de cpias de segurana e acessos controlados.

II.2 Novidades do Microsoft Access 2007

2.1 COMEAR RAPIDAMENTE A CONTROLAR AS INFORMAES


Com o Access 2007 podemos registar, acompanhar e analisar as informaes de que precisamos de uma forma rpida e eficiente. Uma nova interface ajuda-nos a comear a trabalhar com aplicaes de acompanhamento rpido e fcil, sem nos obrigar a ter uma grande experincia com bases de dados ou conhecimentos sobre programao. Agora, com o Access 2007, comeamos a trabalhar imediatamente com recursos orientados aos resultados.

2.1.1 Excelentes modelos para introduo


Com a nova janela de Introduo do Access (figura II.2.1) podemos comear rapidamente a criar uma base de dados. possvel criar a nossa prpria base de dados ou iniciar com um dos diversos modelos criados e preparados profissionalmente. Com efeito, a nova janela de entrada do Access 2007 inclui uma variedade de solues de bases de dados predefinidas. possvel usar essas aplicaes pr-configuradas exactamente como esto, ou ento trat-las como modelos que numa fase posterior sero melhorados. Com efeito, os modelos so criados para uso imediato, por isso esto prontos a serem utilizados. Se a estrutura do modelo atender as nossas necessidades, ento estamos prontos a comear. Caso contrrio, poderemos utilizar o modelo para obter uma estrutura inicial que sofrer as alteraes que se adeqem s nossas necessidades especficas.

174

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.2.1 Janela de entrada do Access 2007 com a apresentao dos diferentes modelos pr-configurados

De realar que cada modelo uma aplicao de gesto de informao completa, com tabelas, formulrios, relatrios, consultas, macros e relaes predefinidas.

2.1.2 Criao rpida avanada utilizando o separador CRIAR


O separador CRIAR do friso (figura II.2.2) oferece-nos uma nova forma de adicionar novos objectos. Agora, possvel criar rapidamente novos formulrios, relatrios, tabelas, listas do SharePoint, consultas, macros, mdulos e muito mais.

Figura II.2.2 Funcionalidades do separador CRIAR do friso

O processo de criao de um objecto tem em considerao o objecto que estiver activo, portanto, se uma tabela estiver aberta, poderemos criar um novo formulrio baseado nessa tabela com apenas um duplo clique.

II.2 NOVIDADES DO MICROSOFT ACCESS 2007

175

2.1.3 Criao rpida de tabelas com a vista FOLHA DE DADOS melhorada


O processo de criao de tabelas foi consideravelmente facilitado com o Access 2007. De facto, possvel trabalhar directamente dentro de uma FOLHA DE DADOS para criar e personalizar tabelas (figura II.2.3). Para isso, basta comear a digitar informaes numa clula de dados, tal como acontece no Excel. Quando se insere um novo valor, o Access 2007 automaticamente adiciona um novo campo e detecta o tipo de dados (como data, nmero e texto). Podemos at copiar tabelas do Excel para uma nova folha de dados e o Access 2007 automaticamente cria todos os campos e reconhece os respectivos tipos de dados.

Figura II.2.3 Vista FOLHA DE DADOS no processo de criao de tabelas

Adicionalmente, podemos usar o painel de tarefas LISTA DE CAMPOS (figura II.2.4) para inserir campos pr-definidos. Basta arrast-los para a tabela.

Figura II.2.4 Painel de tarefas LISTA DE CAMPOS

2.1.4 Filtrar e classificar dados


O Access 2007 exponencia os j avanados recursos de filtragem e permite-nos obter rapidamente os dados que procuramos. Neste sentido, poderemos rapidamente escolher entre os valores exclusivos de uma coluna, ou classificar valores utilizando as opes do MENU DE CONTEXTO de lingu-

176

BASES DE DADOS COM MICROSOFT ACCESS 2007

agem simples, como Classificar do Mais Antigo para o Mais Recente ou Classificar do Menor para o Maior. Poderemos localizar as opes de filtro mais comuns, exibidas nos comandos do menu ou poderemos utilizar os filtros rpidos para limitar as informaes com base nos dados que inserimos (figura II.2.5). As opes de FILTRO RPIDO so alteradas automaticamente com base no tipo de dados, portanto, poderemos visualizar opes com distino de texto, data e informaes numricas.

Figura II.2.5 Utilizao de filtros rpidos na Vista FOLHA DE DADOS

Notar que existe uma coerncia neste procedimento de filtragem entre o Excel 2007 e o Access 2007 para que os utilizadores no necessitem de aprender um novo modo de encontrar as informaes que precisam.

2.1.5 Campos com valores mltiplos


Agora, o Access 2007 suporta tipos de dados complexos, ou seja, j possvel nesta nova verso criar colunas que aceitem mais que um valor em cada clula. Por exemplo, se atribuirmos uma tarefa a mais de uma pessoa, podemos incluir ambos os nomes na clula (figura II.2.6). A tecnologia Windows SharePoint Services compatvel com esses tipos de dados complexos, para ajudar a garantir a simetria de dados entre o armazenamento local e o baseado na Web.

Figura II.2.6 Exemplo da utilizao de uma clula com valores mltiplos

II.2 NOVIDADES DO MICROSOFT ACCESS 2007

177

2.1.6 Anexar documentos e arquivos Base de Dados


Com o novo tipo de dados Anexo as aplicaes podem registar informaes mais interessantes e teis do que nunca. De facto, possvel anexar vrios tipos de arquivos tais como fotos, documentos ou grficos a registos individuais dentro do armazenamento de dados atravs de uma fcil referncia. Se o arquivo no estiver no formato compactado, o Access 2007 far essa compactao de uma forma automtica economizando espao em disco.

2.1.7 Texto formatado em campos MEMO


O Access 2007 oferece um novo suporte de texto formatado (podemos formatar texto com opes, como negrito, itlico, diferentes tipo de letra e cores, bem como com outras opes frequentes de formatao) para os dados armazenados dentro das tabelas. Alm disso, tambm suporta hyperlinks nas tabelas e campos MEMO. O formato RTF baseado em HTML e compatvel com o tipo de dados de RTF do Windows SharePoint Services. Desta forma, os dados so adequadamente formatados quando exibidos em qualquer folha de dados, formulrio ou relatrio.

2.1.8 Calendrio automtico para seleco da data


Os campos e controlos que utilizam o tipo de dados Data/Hora ganharam automaticamente um novo recurso: suporte para calendrio interactivo interno para escolha da data. O boto do calendrio exibido automaticamente direita da data. Para tirar partido desta nova funcionalidade, clicamos neste boto e o calendrio ser exibido automaticamente para podermos localizar e escolher a data (figura II.2.7). Tambm possvel desactivar o calendrio de um campo ou o controlo alterando a respectiva propriedade.

Figura II.2.7 Configurao do calendrio interactivo para escolha da data

178

BASES DE DADOS COM MICROSOFT ACCESS 2007

2.1.9 Linha de total nas folhas de dados


Um novo recurso no modo FOLHA DE DADOS a linha TOTAIS, onde poderemos adicionar vrios tipos de funes de agrupamento, nomeadamente soma, contar, mdia, mximo, mnimo, desvio padro ou varincia.

Figura II.2.8 Exemplo da utilizao da linha Total na Vista FOLHA DE DADOS

2.1.10 Macros incorporadas


possvel, com toda a confiana, utilizar as novas macros incorporadas evitando assim escrever cdigo. Uma macro incorporada armazenada numa propriedade do objecto ao qual pertence. Podemos modificar a estrutura de uma macro incorporada sem termos que nos preocupar com outros controlos ou objectos que possam vir a usar a mesma macro, pois cada macro incorporada independente.

As macros incorporadas so fidedignas, na medida em que so impedidas automaticamente de executar determinadas operaes potencialmente no seguras.

2.1.11 Dividir formulrios


Os formulrios podem ser divididos por forma a combinar uma Vista de FOLHA DE DADOS e uma Vista de FORMULRIO (figura II.2.9). Podemos definir uma propriedade que transmita ao Access se deve colocar a folha de dados na parte superior, inferior, esquerda ou direita.

II.2 NOVIDADES DO MICROSOFT ACCESS 2007

179

Figura II.2.9 Diviso de Formulrios combinando a Vista de FOLHA DE DADOS e uma Vista de FORMULRIO.

2.1.12 Visualizador de Ajuda melhorado


O Access 2007 proporciona um acesso fcil ajuda do utilizador final e ajuda de programao a partir da mesma janela de visualizao de ajuda. A nova AJUDA foi reestruturada em resposta aos comentrios dos utilizadores. Se pretender, poder limitar facilmente o mbito da procura apenas ajuda de programao, sendo que todo o contedo de utilizador final e de programao ficar disponvel no Office Online.

2.2 PARTILHAR INFORMAES CONTROLADAS COM OUTROS


UTILIZADORES Podemos utilizar o Access 2007 para recolher e compartilhar informaes de forma fcil e segura. possvel criar aplicaes de bases de dados colaborativas, utilizando o Access e o Windows SharePoint Services. As informaes podem ser armazenadas em listas num website do SharePoint e acedidas por meio de tabelas vinculadas a uma base de dados do Access, ou ento armazenar o ficheiro inteiro do Access no site do SharePoint. Neste contexto, o Access 2007 permite obter facilmente informaes e disponibiliz-las para os outros colaboradores com mais segurana e flexibilidade.

2.2.1 Recolher dados usando o Outlook 2007


O Access 2007 simplifica o processo de recolha de informaes de outras pessoas. Utilizando o novo recurso RECOLHA DE DADOS, o Access 2007 pode criar automaticamente um formulrio Microsoft InfoPath 2007 ou

180

BASES DE DADOS COM MICROSOFT ACCESS 2007

HTML e incorpor-lo no corpo de um e-mail. possvel enviar o formulrio a diversos destinatrios usando endereos de e-mail dos nossos contactos (armazenados no Outlook ou no prprio Access). O Outlook 2007 processa os formulrios de entrada (depois de preenchidos pelos destinatrios) e guarda os dados no dispositivo de armazenamento de dados do Access 2007, actualizando efectivamente e de forma imediata a aplicao, sem que haja necessidade de nova digitao.

2.2.2 Colaborao na Web com o Windows SharePoint Services


Os sites da Web baseados no Windows SharePoint Services fornecem um local onde um grupo de trabalho pode comunicar, compartilhar documentos e colaborar no mbito de um projecto. Com o Access 2007 podemos publicar os nossos ficheiros do Access 2007 nas bibliotecas ou mover a aplicao para o Windows SharePoint Services, permitindo que o grupo interaja facilmente com ele por meio do navegador. Formulrios, relatrios e informaes podem ser visualizadas, actualizadas ou apagadas directamente no site do Windows SharePoint Services de acordo com configuraes de permisso estabelecidas. Os benefcios imediatos de uma soluo compartilhada do Windows SharePoint Services incluem o acesso baseado num navegador compartilhado, backup centralizado, implantao da base de dados no site do SharePoint e todas as vantagens inerentes a uma soluo baseada num servidor.

2.2.3 Trabalhar off-line com as listas do Windows SharePoint Services


Usando o Access 2007 podemos trabalhar com o Windows SharePoint Services off-line. Por exemplo, se estivermos em casa, podemos manter uma cpia local de uma lista do Windows SharePoint Services no nosso computador, onde podemos editar e consultar a lista como se ela estivesse em qualquer outra tabela do Access 2007. Formulrios e relatrios que utilizam a lista do Windows SharePoint Services so totalmente interactivos e o Access 2007 pode posteriormente sincronizar a lista local com a lista on-line, quando for restabelecida a ligao do nosso computador Web.

II.2 NOVIDADES DO MICROSOFT ACCESS 2007

181

2.2.4 Integrao com o fluxo de trabalho do Windows SharePoint Services


O Access 2007 oferece suporte ao fluxo de trabalho utilizando o Windows Workflow Services localizado no Windows SharePoint Services. O fluxo de trabalho pode ser usado para automaticamente assinalar tarefas para outros utilizadores, relatar o estado do projecto e ajudar a assegurar que as tarefas sejam concludas a tempo. Todas as tarefas do Windows SharePoint Services podem ser visualizadas dentro do Access 2007 ou do Outlook 2007.

2.2.5 Exportar para PDF e XPS


Com o Access 2007 possvel guardar um relatrio como um arquivo Portable Document Format (PDF) ou em formato XML Paper Specification (XPS) para impresso ou distribuio por e-mail. Ao guardar um relatrio como um ficheiro em PDF ou XPS podemos capturar as informaes do relatrio num formato que pode ser facilmente distribudo e que retm todas as suas caractersticas de formatao, sem exigir aos destinatrios a instalao do Access para aceder, imprimir ou examinar o seu relatrio.

A exportao de um formulrio, relatrio ou folha de dados para um ficheiro PDF ou XPS pode ser feita desde que instale primeiro o suplemento PUBLICAR COMO PDF OU XPS.

2.2.6 Experincia melhorada de importao e exportao


As novas funcionalidades no Access 2007 facilitam a importao e exportao de dados. Podemos guardar uma operao de importao ou exportao e reutilizar a operao guardada da prxima vez que tenhamos de executar a mesma tarefa. O Assistente de IMPORTAO DE FOLHAS DE CLCULO permite-lhe substituir o tipo de dados escolhido pelo Access e importar, exportar e ligar aos novos formatos de ficheiro do Excel 2007.

182

BASES DE DADOS COM MICROSOFT ACCESS 2007

2.3 CRIAR E ADAPTAR RELATRIOS PARA RESPONDER S


NECESSIDADES Com o Access 2007 podemos facilmente analisar e entender a complexidade das informaes apresentadas em relatrios, possibilitando assim tomadas de deciso mais fundamentadas. O novo recurso CRIAO RPIDA gera automaticamente relatrios com designs de aparncia profissional, com cabealhos que incluem logtipo, ttulo, data e hora, rodaps informativos e totais.

2.3.1 Edio dos modos Relatrio e Esquema


As capacidades de design destes dois novos modos de visualizao proporcionam uma experincia do tipo what you see is what you get (WYSIWYG), isto , o que vs o que tens. Na verdade, agora possvel desenhar e alterar a estrutura do relatrio de forma interactiva e em tempo real, fazendo a pr-visualizao do relatrio medida que se constri (figura II.2.10). Utilizando o novo modo RELATRIO possvel navegar numa apresentao precisa e rica em recursos, sem precisar de a imprimir ou pr-visualizar. Para seleccionar determinados registos utilizamos a filtragem (recurso FILTRO) ou uma operao de localizao para encontrar os dados correspondentes. Podemos utilizar o comando de cpia para capturar o texto para as operaes COPIAR e COLAR, utilizando a REA DE TRANSFERNCIA. Enquanto que o modo RELATRIO permite a navegao, o modo ESQUEMA permite que se faam alteraes na estrutura enquanto se navega. Este recurso permite-nos realizar grande parte das alteraes estruturais mais comuns enquanto se exibe um relatrio dinmico. Por exemplo, possvel adicionar um campo arrastando-o do novo painel LISTA DE CAMPOS ou alterar as propriedades utilizando a FOLHA DE PROPRIEDADES. O modo ESQUEMA oferece tambm suporte a novos esquemas empilhados e tabulares (grupos de controlos que podemos manipular como um s, por isso podemos reorganizar os campos, as colunas, as linhas ou esquemas inteiros facilmente). Alm disso, podemos remover um campo ou adicionar formatao facilmente no modo ESQUEMA. A VISTA DE ESTRUTURA ainda permanece disponvel para trabalho mais detalhado, tendo sido melhorada para oferecer suporte a esquemas.

II.2 NOVIDADES DO MICROSOFT ACCESS 2007

183

Figura II.2.10 Modo ESQUEMA para visualizao de Relatrios

2.3.2 Painel de campos dos Relatrios


O novo painel LISTA DE CAMPOS (figura II.2.11) mais avanado que o seleccionador de campos das verses anteriores do Access. Podemos arrastar e soltar campos da tabela no objecto activo em tabelas relacionadas ou tabelas no relacionadas na base de dados. O Access 2007 inteligente para criar a infra-estrutura necessria, portanto, se uma relao entre tabelas for necessria, ela ser criada automaticamente ou o programa solicitar essa criao no decorrer do processo.

Figura II.2.11 O novo painel LISTA DE CAMPOS do Access 2007

2.3.3 Informaes agrupadas em Relatrios


Este novo recurso do Access 2007 proporciona uma maneira mais adequada e acessvel de agrupar e classificar relatrios, bem como de adicionar totais. De facto, a nova interface de utilizador mais fcil de navegar e de entender e quando ela for utilizada com o novo modo ESQUEMA o resultado das suas alteraes poder ser visualizado instantaneamente. O PAINEL DE AGRUPAMENTO (figura II.2.12) aperfeioado fornece uma clara exibio dos agrupamentos de dados, de modo que possamos prvisualizar as alteraes medida que so aplicadas aos relatrios.

184

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.2.12 O novo PAINEL DE AGRUPAMENTO

Podemos facilmente adicionar totais, subtotais, contagens e outros elementos que nos ajudem a analisar os dados. Para isso, utilizamos o modo ESQUEMA e o novo PAINEL DE AGRUPAMENTO para adicionar um nvel de grupo e, assim, solicitar um total (podemos visualizar as alteraes no nosso relatrio imediatamente). A nova lista suspensa TOTAIS (figura II.2. 13) facilita a adio da soma, mdia, contagem, mximo ou mnimo nos cabealhos ou rodaps do relatrio. Agora os totais simples no exigem a criao manual de um campo calculado. Basta apontar e clicar.

Figura II.2.13 A nova lista suspensa TOTAIS

2.4 GERIR E AUDITAR INFORMAES CONFIDENCIAIS


O Access 2007 torna mais fcil e transparente a gesto das informaes. Com efeito, os recursos avanados de segurana do Access 2007 e a slida integrao com o Windows SharePoint Services permitem a gesto de uma forma mais eficaz e ajudam a proteger as aplicaes de tratamento de informaes. Ao armazenar os dados da aplicao nas listas do Windows SharePoint Services podemos auditar o histrico da reviso, recuperar informaes eliminadas e definir permisses de acesso a dados.

2.4.1 Segurana avanada


Para tornar o Access 2007 ainda mais seguro e manter a consistncia com outros produtos do Microsoft System, o Access 2007 inclui recursos de segurana novos e aperfeioados. As Unified trust decisions (Decises de

II.2 NOVIDADES DO MICROSOFT ACCESS 2007

185

confiana unificadas) so integradas na Office Trust Center (Centro de Confiana do Office). Neste local mais fcil armazenar todas as bases de dados em pastas seguras. Podemos carregar uma aplicao do Access 2007 com cdigo ou macros desactivados para obter uma experincia mais segura, chamada Sandbox. Muitas macros seguras so executadas no modo Sandbox.

2.4.2 Auditoria de dados


Sem precisarmos do apoio de profissionais de Tecnologias de Informao (TI) pode-se facilmente migrar os dados de um arquivo local de base de dados para um servidor com o Windows SharePoint Services que os profissionais de TI da organizao possam gerir, proteger, ajudar a tornar seguros e copiar de acordo com as polticas da empresa.

2.4.3 Histrico da reviso


Esta nova funcionalidade permite-nos acompanhar e ver quem criou, editou e apagou os registos. Podemos tambm visualizar quando as informaes foram modificadas e, se necessrio, voltar ao nvel anterior das edies.

2.4.4 Configurao de permisso


Usando o Windows SharePoint Services possvel permitir ou negar selectivamente o acesso a determinados utilizadores. Podemos atribuir permisses de leitura limitadas ou direitos completos de edio.

2.4.5 Reciclagem
possvel, agora, recuperar dados que foram eliminados por engano usando a nova Reciclagem no Windows SharePoint Services.

II.3 A interface do Microsoft Access 2007

3.1 INTERFACE DE UTILIZADOR ORIENTADA A RESULTADOS


O Access 2007 utiliza uma nova interface de utilizador, criada inteiramente para nos tornar mais produtivos. Na verdade, com esta interface poderemos trabalhar, aprender e localizar mais rapidamente as funcionalidades desejadas. O Access 2007 foi actualizado com uma nova aparncia que facilita a criao, a alterao e o trabalho nas aplicaes de bases de dados. Esta facilidade de utilizao decorre do facto dos comandos serem disponibilizados de uma forma clara e organizada quando necessitamos deles. A nova interface de utilizador substitui os antigos menus, barras de ferramentas e a maior parte dos painis de tarefas do Access. Essa nova interface sensvel ao contexto e optimizada para proporcionar eficincia e capacidade de descoberta. No obstante quase 1.000 comandos estarem disponveis, a nova interface exibe apenas aqueles que so relevantes para a tarefa que estamos a realizar num determinado momento. Alm disso, a exibio de janelas com separadores, uma nova barra de estado, novas barras de deslocamento e uma nova barra de ttulo do s aplicaes do Access 2007 uma aparncia muito moderna e profissional.

A nova interface de utilizador do Access 2007 exibe apenas os recursos que so relevantes em cada momento. Como se ilustra na figura II.3.1, a janela apresenta os comandos que permitem criar os objectos da base de dados.

188

BASES DE DADOS COM MICROSOFT ACCESS 2007

o boto Microsoft Office

barra de acesso rpido

friso

painel de navegao

barra de estado

Figura II.3.1 Janela do Access 2007

3.2 O FRISO
A nova interface utiliza uma rea padro na parte superior da janela da aplicao chamada FRISO. Esta barra de opes substitui as camadas de menus e as barras de ferramentas usadas nas verses anteriores do Access. O friso apresenta comandos organizados num conjunto de separadores que exibem apenas os comandos mais relevantes para cada uma das reas de procedimentos do Access 2007.

3.2.1 Os separadores do friso


O friso permite-nos localizar grupos de comandos relacionados de uma forma rpida pois estes esto organizados em separadores (figura II.3.2). Por exemplo, se pretendemos criar um novo formulrio ou relatrio, torna-se muito fcil localizar o boto respectivo no separador CRIAR. Com efeito,

II.3 A INTER RFACE DO MICROSO OFT ACCESS 2007

189

a nova estrutura fa acilita a loca alizao do os comando os necessr rios e, assim m, oberta de re ecursos que e, de outro o modo, pas ssariam despossibilita a desco dos. Isto oc corre porqu ue, com os separadore es utilizado os no Acces ss percebid 2007, os o comando os so coloc cados mais perto da su uperfcie, em vez de se erem aninhados no fundo dos menus. m Ago ora no preciso perder tanto tem ms fcil encontr-los. po na procura dos comandos e ser mais
S Separadores

Figura II.3.2 Separadores do friso o

m as tabe elas, as co onsultas, os s formulrio os, os rela atrios e as s Tamb macros s so exibidos como documentos d s com sepa aradores (figura II.3.3) ). A visua alizao de e janelas de e document tos com sep paradores facilita f a navega o pois apre esenta todo os os objeto os abertos na n mesma janela.

Figura a II.3.3 Separa adores no ace esso a docume entos abertos

3.2.2 Seces S co ontextuais s


A barra a de opes s friso, alm m de ser di ividida em separadore es, concentra um conj junto de co omandos ag grupados de acordo co om seu con ntexto (figura II.3.4) depende do d objecto em e que est tamos a tra abalhar ou da d tarefa qu ue estamos s a execut tar. Na verd dade, esta barra cont tm os com mandos com maior probabilidad p de de serem m aplicados ao que est tamos a faz zer, pois ce ertos conj juntos de co omandos apenas a so relevantes quando editados objectos de um u determin nado tipo.

190

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.3.4 Seces de contexto no separador CRIAR

Por exemplo, se escolhermos o separador CRIAR, imediatamente vemos os comandos usados para criar os objectos da base de dados tais como tabelas, formulrios, relatrios ou consultas o que facilita significativamente a localizao e a utilizao dos comandos necessrios para a operao em questo.

3.3 O BOTO MICROSOFT OFFICE


Muitos dos mais valiosos recursos das verses anteriores do Microsoft Office no estavam associados ao processo de criao de documentos. Eles estavam relacionados a tudo o que se pode fazer com um documento: partilhar, proteger, imprimir, publicar e enviar. As verses anteriores das aplicaes do Microsoft Office no tinham um local central e nico onde um utilizador pudesse ver todos esses recursos, pois os recursos associados ao tratamento de ficheiros estavam misturados com os recursos de criao e de desenvolvimento. A nova interface do utilizador rene os recursos do Microsoft Office System num nico ponto de entrada: o BOTO MICROSOFT OFFICE (figura II.3.5). Isto proporciona duas importantes vantagens: em primeiro lugar facilitado o processo de localizao desses recursos valiosos; em segundo lugar so simplificados os principais cenrios de criao, permitindo que o friso se concentre na criao de documentos importantes.

Figura II.3.5 Opes disponveis atravs do BOTO MICROSOFT OFFICE

II.3 A INTERFACE DO MICROSOFT ACCESS 2007

191

3.4 BARRA DE FERRAMENTAS DE ACESSO RPIDO


Na extremidade esquerda da barra de ttulo do programa encontra-se a BARRA DE FERRAMENTAS ACESSO RPIDO (figura II.3.6). Esta barra muito pessoal, pois apresenta os comandos que mais utilizamos ou que simplesmente pretendemos aceder de uma forma instantnea.

Figura II.3.6 Opes da BARRA DE FERRAMENTAS DE ACESSO RPIDO

Como configurao padro, esta barra apresenta um conjunto de botes que contm cones com os comandos GUARDAR, DESFAZER e REFAZER. Contudo, esta barra pode ser personalizada com a adio ou remoo de botes. Tambm pode ser posicionada abaixo do friso.

Para personalizar a BARRA DE FERRAMENTAS DE ACESSO RPIDO, podemos utilizar o boto e seleccionar os comandos que pretendemos disponibilizar (figura II.3.7). Em alternativa, podemos utilizar os prprios botes do friso, como se explica de seguida.

Figura II.3.7 Opes para a personalizao da BARRA DE FERRAMENTAS DE ACESSO RPIDO

Por exemplo, se pretendermos colocar o comando de criao de tabelas em vista de estrutura, posicionamos o cursor no respectivo comando e premimos o boto do rato do lado direito. No menu escolhemos a primeira opo Adicionar BARRA DE FERRAMENTAS ACESSO RPIDO (figura II.3.8).

192

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.3.8 Adicionar comandos BARRA DE FERRAMENTAS DE ACESSO RPIDO atravs do boto direito do rato

Depois deste procedimento o comando permanecer na barra de acesso rpido de forma permanente para ser usado de uma forma rpida (figura II.3.9).

Figura II.3.9 Configurao da BARRA DE FERRAMENTAS ACESSO RPIDO depois de inserido um novo comando

3.5 PAINEL DE NAVEGAO


Nesta verso j no existe a janela Base de Dados que era o principal ponto de referncia do Access. Em sua substituio existe agora um painel chamado PAINEL DE NAVEGAO (figura II.3.10) que est posicionado no lado esquerdo da janela e que agrupa de uma forma lgica os objectos da base de dados. Com efeito, possvel configurar este painel por forma a agrupar os objectos por tipo ou por outra caracterstica como seja data de criao, data da modificao, tabela relacionada (com base nas dependncias do objecto) ou por grupos personalizados que podemos criar e que se enquadrem nas especificidades do nosso trabalho.

Figura II.3.10 PAINEL DE NAVEGAO com os respectivos objectos da base de dados

II.3 A INTERFACE DO MICROSOFT ACCESS 2007

193

Precisamos de mais espao para trabalhar na estrutura do formulrio? O Painel de Navegao localiza-se esquerda e possvel recolh-lo rapidamente clicando em permanea disponvel. . Assim, ele ocupar pouco espao, embora

3.6 BARRA DE ESTADO


Esta barra est localizada na parte inferior da janela e exibe um conjunto de informaes teis, tais como a vista usada no momento, utilizao de teclas (Num Lock, Caps Lock), etc. Alm disso, inclui botes que permitem alternar rapidamente entre as diferentes vistas (figura II.3.11).

Figura II.3.11 BARRA DE ESTADO com os respectivos botes que permitem alternar entre as diferentes vistas

II.4 Criao de uma Base de Dados com o Microsoft Access 2007

Ao longo dos anos a Microsoft tem feito grandes esforos para facilitar a utilizao do Access, pois existe a opinio generalizada que esta a aplicao do Office mais complexa e difcil de utilizar. De facto, a forma como as bases de dados so desenhadas e manipuladas obedecem a um conjunto de regras que devem ser respeitadas, obrigando os seus utilizadores a ter um conhecimento bastante profundo desta tecnologia. Com o Access 2007, construir uma base de dados mais fcil do que nunca. Desde a criao inicial da estrutura da base de dados at criao dos diversos objectos, vamos constatar que o Access 2007 respeita e impe as melhores prticas, facilitando a criao de aplicaes eficientes e funcionais, independentemente dos conhecimentos do utilizador.

4.1 COMPREENDER AS BASES DE DADOS DO ACCESS


Como sabemos, as bases de dados so coleces de informaes devidamente estruturadas e organizadas. No Access, todas as bases de dados so armazenadas num nico ficheiro que contm os seus respectivos objectos. Os objectos da base de dados so os seus principais componentes, pois asseguram os diversos procedimentos associados sua utilizao e manipulao. Os seguintes objectos esto disponveis no PAINEL DE NAVEGAO e so apresentados numa orientao vertical.

196

BASES DE DADOS COM MICROSOFT ACCESS 2007

Objecto que apresenta todas as Tabelas da base de dados. As tabelas so coleces de dados sobre um determinado tema, que sero armazenados sobre a forma de registos e campos.

Objecto que apresenta todas as Consultas da base de dados. As Consultas so utilizadas para seleccionar um conjunto de informao, normalmente segundo condies pr-estabelecidas. Tambm podem ser utilizadas como origem de dados para Formulrios e Relatrios.

Objecto que apresenta todos os Formulrios da base de dados. Tambm designados por ecrs de apresentao, so utilizados para introduzir ou apresentar dados numa base de dados. Um Formulrio pode representar um painel de navegao que abre outros Formulrios e Relatrios na base de dados ou uma caixa de dilogo personalizada que aceita as entradas do utilizador e executa uma aco com base nessa entrada.

Apresenta todos os Relatrios da base de dados. Os Relatrios so uma forma eficaz de apresentar os dados num formato impresso e podem assumir diversas formas, desde uma simples tabela a listagens com agrupamento de dados e clculos numricos.

Apresenta todas as Macros da base de dados. As Macros so constitudas por um conjunto de comandos que tm por objectivo automatizar tarefas comuns na base de dados. Ao utilizar grupos de macros pode-se desempenhar vrias tarefas em simultneo.

II.4 CRIAO DE UMA BASE DE DADOS COM O MICROSOFT ACCESS 2007

197

Os Mdulos so um conjunto de declaraes, instrues e procedimentos executados na linguagem de programao do Access (Visual Basic for Applications VBA) com o objectivo de facilitar a gesto da informao, executando aces difceis de conseguir em modo de utilizao.

Uma base de dados no Access no apenas um ficheiro de dados, mas sim uma entidade formada por um conjunto de objectos, armazenados num ficheiro do tipo Microsoft Access 2007 Database (accdb).

4.2 INICIAR O ACCESS 2007


Ao activar o Access 2007, atravs do boto INICIAR, comando PROGRAMAS ACCESS, surge um ecr de incio de trabalho (figura II.2.1), que nos apresenta um conjunto de alternativas para o acesso a uma base de dados, nomeadamente: Abertura de uma base de dados j existente; Criao de uma base de dados vazia; Criao de uma base de dados com base num modelo predefinido.

Para alm destas opes, temos ainda a possibilidade de aceder ao Microsoft Office Online para obter informaes adicionais sobre a aplicao. A janela inicial do Access 2007 inclui uma coleco de modelos de base de dados, na caixa do lado esquerdo. Os modelos fornecidos esto organizados por categorias e incluem: Negcios, Educao e Pessoais. Na zona central da janela podemos aceder ao Microsoft Office Online e fazer o download dos modelos novos mais recentes ou dos modelo revistos. Na parte direita da janela so apresentadas as bases de dados recentemente utilizadas que esto acessveis para arranque (figura II.4.1).

198

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.4.1 rea da janela INICIAR do Access onde so apresentadas as bases de dados recentemente utilizadas

Temos tambm a possibilidade de criar uma nova base de dados. Este boto possibilita a abertura de um ficheiro novo em branco para comear a trabalhar, cria uma nova pgina Web, ou cria um ficheiro de Access para o acesso a uma base de dados Microsoft SQL Server.

Para alm da caixa de dilogo inicial que apresenta as referidas alternativas de acesso a uma base de dados, tambm podemos, em qualquer altura, aceder ao menu disponibilizado pelo BOTO MICROSOFT OFFICE, onde temos os habituais comandos: NOVO e ABRIR BASE DE DADOS.

Figura II.4.2 Opes para abrir uma base de dados atravs do BOTO MICROSOFT OFFICE

A nova janela INTRODUO AO ACCESS 2007 fornece acesso rpido nova experincia de comear a trabalhar com o Access, incluindo o acesso a uma biblioteca de modelos de base de dados projectados profissionalmente.

4.3 ALTERNATIVAS PARA A CRIAO DE UMA BASE DE DADOS


O Access 2007 fornece dois mtodos para criar uma base de dados. Podemos utilizar um modelo de base de dados para criar com uma nica

II.4 CRIAO DE UMA BASE DE DADOS COM O MICROSOFT ACCESS 2007

199

operao as Tabelas, Formulrios e Relatrios necessrios para o tipo de base de dados pretendida (esta a forma mais fcil de comear a criar a base de dados). Podemos tambm criar uma base de dados vazia e, em seguida, adicionar Tabelas, Formulrios, Relatrios e outros objectos (este o mtodo mais flexvel, mas requer ao utilizador a definio personalizada de cada elemento da base de dados). Independentemente do mtodo escolhido, possvel modificar e complementar a base de dados em qualquer altura, depois de esta ter sido criada. Partindo do princpio que nos encontramos com o Access 2007 activo, vamos executar as seguintes etapas para os dois mtodos de criao de uma base de dados.

4.3.1 Criar uma Base de Dados utilizando um Modelo


1. Clicamos num dos modelos disponveis na janela INICIAR do Access 2007. 2. Na parte direita da mesma janela aparece uma rea para introduzirmos o nome da base de dados.

Figura II.4.3 rea da janela INICIAR do Access onde devemos inserir o nome da base de dados

3. Por omisso, a base de dados ser armazenada na pasta Os Meus Documentos. Se pretendermos outra localizao para armazenar a base de dados clicamos em .

4. Depois de digitar o nome da base de dados, pressionar o boto no caso de Modelos do Microsoft Online ou , no caso dos modelos locais.

200

BASES DE DADOS COM MICROSOFT ACCESS 2007

A base de dados est pronta a ser utilizada e o Access 2007 sugere j a insero de dados numa das suas tabelas, tal como apresentado na seguinte figura.

Figura II.4.4 Configurao da janela do Access depois de escolher a base de dados baseada no modelo Lista de Contactos

Tal como outro ficheiro qualquer, o nome dos ficheiros do Access 2007 pode conter uma combinao de letras, espaos, nmeros, parntesis, hfen (-) e sublinhado (_).

4.3.2 Criar uma Base de Dados vazia


1. Clique em BASE DE DADOS VAZIA na janela INICIAR do Access 2007. 2. Na parte direita da mesma janela aparece uma rea para introduo do nome da base de dados e da sua localizao.

Figura II.4.5 rea da janela INICIAR do Access onde devemos inserir o nome da base de dados

II.4 CRIAO DE UMA BASE DE DADOS COM O MICROSOFT ACCESS 2007

201

3. Depois de digitar o nome da base de dados pressionar o boto . A base de dados est pronta a ser desenvolvida e o Access sugere j a criao da primeira tabela, tal como apresentado na figura.

Figura II.4.6 Configurao da janela do Access depois do processo de criao da base de dados

Uma vez criada a base de dados, a janela do Access apresenta agora uma configurao diferente. Neste momento j temos no topo o friso e do lado esquerdo o PAINEL DE NAVEGAO (ver captulo 3. A Interface do Microsoft Access 2007).

4.4 GRAVAR E ABRIR BASE DE DADOS DO ACCESS


Ao contrrio de outras aplicaes do Office, o Access 2007 no necessita que faamos a gravao do nosso trabalho. A prpria aplicao faz a gravao automtica de qualquer alterao detectada. Quando criamos uma nova base de dados, o Access grava pela primeira vez o ficheiro respectivo. Da mesma maneira, quando criamos uma nova tabela ou outro objecto qualquer, o Access grava a nossa base de dados de uma forma quase instantnea.

4.4.1 Gravar Bases de Dados num formato diferente


Se decidirmos gravar a nossa base de dados com um nome diferente, numa localizao diferente ou num formato antigo, podemos utilizar uma das opes que nos oferece o comando GUARDAR COMO do BOTO MICROSOFT OFFICE.

202

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.4.7 Opo para guardar uma bases de dados num formato diferente atravs do BOTO MICROSOFT OFFICE

Se apenas seleccionarmos a opo GUARDAR COMO, a gravao ser feita sobre o objecto que estiver activo. Portanto, para gravar a base de dados inteira escolher uma das opes do submenu que se encontra por baixo de GUARDAR A BASE DE DADOS NOUTRO FORMATO.

4.4.2 Abrir uma Base de Dados


Depois de criarmos a nossa base de dados, muito fcil abri-la mais tarde, quer seja atravs de um duplo clique no nome do ficheiro quando recorremos ao WINDOWS EXPLORER, quer seja atravs do menu associado ao BOTO MICROSOFT OFFICE.

Figura II.4.8 Opo de abertura de uma base de dados atravs do BOTO MICROSOFT OFFICE

Quando abrimos uma base de dados possvel que aparea uma nova barra na janela do Access 2007 (figura II.4.9). Essa barra apresenta um aviso de segurana que nos informa que o Access no confia totalmente na nossa base de dados, ou seja, o Access abre a base de dados em

II.4 CRIAO DE UMA BASE DE DADOS COM O MICROSOFT ACCESS 2007

203

modo de segurana prevenindo a mesma da execuo de operaes que contenham algum risco.

Figura II.4.9 Barra que apresenta um aviso de segurana informando que o Access no confia totalmente na nossa base de dados

Entretanto, se quisermos retirar esta barra da nossa janela, podemos clicar no boto que se encontra na extremidade do lado direito.

II.5 Construo de Tabelas eficientes

Uma Base de Dados constituda por grupos de campos organizados em Tabelas. Por sua vez, uma Tabela uma estrutura de dados que tem o propsito de armazenar um grupo especfico de informao organizada em registos e campos. Cada grupo de informao ser armazenado na sua tabela especfica, sendo possvel estabelecer, entre as mesmas, relaes que facilitem a compreenso e utilizao dos seus respectivos dados. Conforme referimos no captulo 4 da I Parte deste livro, o planeamento de uma base de dados comea precisamente pela definio e estruturao de um conjunto de Tabelas. Por conseguinte, este processo poder condicionar o sucesso da aplicao, pois os restantes objectos como consultas, formulrios ou relatrios assentam em tabelas pr-definidas.

5.1 OPES PARA A CRIAO DE UMA TABELA


O Access 2007 disponibiliza um conjunto de opes para a criao de uma nova tabela. Antes de iniciarmos este procedimento temos de considerar os diferentes modos de criao, bem como as particularidades associadas a cada um. Para criar uma tabela no Access devemos partir do separador CRIAR do friso. Depois de activado este separador, surge uma rea com quatro botes que possibilitam as seguintes opes de criao de tabelas: TABELA a criao da tabela feita a partir da insero de um conjunto de dados, sendo estes configurados automaticamente.

206

BASES DE DADOS COM MICROSOFT ACCESS 2007

MODELOS DE TABELA a criao da tabela feita com base em modelos predefinidos. LISTAS DO SHAREPOINT cria listas para o site do Sharepoint. ESTRUTURA DA TABELA a criao da tabela feita totalmente pelo utilizador, indicando os campos e suas propriedades.

5.2 CRIAO DE UMA TABELA COM BASE NUM MODELO


PREDEFINIDO Quando criamos uma tabela ela est vazia, como seria de esperar. A forma mais fcil de criar uma tabela atravs de MODELOS DE TABELA, onde podemos escolher tipos especficos de tabelas e os seus respectivos campos. O Access 2007 oferece algumas opes como: contactos, tarefas, problemas, eventos e activos. Mas como podemos constatar, existe um conjunto limitado de temas que podem ser utilizados. Para criar uma tabela no Access com recurso a esta opo devemos partir do separador CRIAR do friso e posteriormente premir o boto MODELOS DE TABELA. Posteriormente, escolhemos o tema desejado a partir do seguinte menu.

Figura II.5.1 Menu que possibilita a escolha dos diversos modelos de tabelas

Se no encontrarmos os formatos e a configurao desejada para a criao de uma tabela, ento inevitvel o recurso criao de uma tabela com as opes TABELA ou ESTRUTURA DA TABELA.

5.3 CRIAO DE UMA TABELA POR INSERO DE DADOS


Uma opo bastante vlida para utilizadores com poucos conhecimentos de Access a de recorrerem ao modo de criao de tabelas por insero

II.5 CONSTRUO DE TABELAS EFICIENTES

207

de dados. Este processo possibilita a insero de um conjunto de dados que sero interpretados pelo Access quando a tabela for gravada. Nessa altura, a atribuio do tipo de dados em cada coluna da tabela feita automaticamente respeitando os dados inseridos. No entanto, ser sempre possvel fazer, a posteriori, alteraes estrutura da tabela de forma a adequ-la s nossas necessidades. Para criar esta tabela devemos partir do separador CRIAR do friso e posteriormente premir o boto TABELA.

Figura II.5.2 Exemplo da criao de uma tabela atravs da Insero de dados

Depois de concluda a insero dos dados, devemos fechar a janela clicando no boto e, em seguida, gravar a tabela. Com este procedimento ser feita automaticamente a configurao da estrutura da tabela e dos respectivos campos.

5.4 CRIAO DE UMA TABELA NA VISTA DE ESTRUTURA


Embora os dois processos anteriormente descritos tenham a sua utilidade, o modo de criao de tabelas mais utilizado o modo ESTRUTURA DA TABELA, pois o que nos possibilita uma maior liberdade de configurao. Para criar uma tabela no Access utilizando este mtodo, devemos partir do separador CRIAR do friso e, em seguida, premir o boto ESTRUTURA DA TABELA. Como podemos verificar na figura II.5.3, deparamos com a janela de DEFINIO DA ESTRUTURA DA TABELA, que est dividida em duas partes. Na parte superior, o utilizador dever indicar o nome de cada campo da tabela, o respectivo tipo e, opcionalmente, uma descrio do significado do campo. Na parte inferior indicam-se outras propriedades que complementam a caracterizao do campo.
Figura II.5.3 Definio da estrutura da tabela

208

BASES DE DADOS COM MICROSOFT ACCESS 2007

5.4.1 Escolher tipos de dados


Na coluna NOME DO CAMPO digitamos o nome que pretendemos dar a cada campo da tabela (o Access permite uma grande flexibilidade na atribuio do nome, cujo comprimento poder ter no mximo 64 caracteres). Depois de teclarmos ENTER ou movimentarmos o cursor para a direita, entramos na coluna TIPO DE DADOS. Na tabela seguinte, mostramos os vrios tipos de dados disponibilizados pelo Access.
Tipo de dados Texto Memo Significado Caracteres Alfa numricos Caracteres Alfa numricos (normalmente usado para comentrios, observaes ou explicaes detalhadas) Valores numricos (inteiros ou fraccionrios) Datas e horas em diferentes formatos Valores monetrios Valor numrico definido automaticamente quando adicionado um registo Valores booleanos (utilizado para campos que s podem ter uma de duas opes) Objectos OLE, grficos e outros dados binrios Tamanho At 255 caracteres At 64.000 bytes

Nmero Data/Hora Moeda Numerao Automtica Sim/No

1, 2, 4, ou 8 bytes 8 bytes 8 bytes 4 bytes

1 bit

Objecto OLE Hiperligao

At um gigabyte

Alfanumrico (utilizado para armazenar endereos que Cada uma das 3 acedam a um ficheiro ou pgina Web) partes pode ter at 2.048 caracteres Um ou mais ficheiros separados. O contedo destes ficheiros copiado para a base de dados Cria um campo que permite escolher um valor de outra tabela ou de uma lista de valores utilizando uma caixa de combinao Normalmente 4 bytes

Anexo

Assistente de pesquisa

Figura II.5.4 Tipos de dados que podem ser utilizados na definio de um campo

Quando criamos um campo, ele assume automaticamente o tipo de dados Texto. Se quisermos que o tipo de dados seja outro, podemos defini-lo atravs do boto de listagem, que mostrado direita do tipo do campo.

II.5 CONSTRUO DE TABELAS EFICIENTES

209

5.4.2 Propriedades dos campos


Tal como os tamanhos dos campos, as suas restantes propriedades so definidas na parte inferior da janela de DEFINIO DA ESTRUTURA DA TABELA. Todos os campos possuem propriedades, sendo algumas comuns e outras especficas. Com a utilizao destas propriedades podemos controlar a aparncia dos dados, prevenir inseres incorrectas, especificar valores por omisso, entre outras opes. A tabela seguinte mostra-nos todas as propriedades dos campos e as suas funes:
Propriedade Tamanho do Campo Funo Ajusta o tamanho de um campo tipo Texto, ou limita o tamanho de valores admissveis no campo tipo Nmero. Mostra datas e nmeros num certo formato de visualizao, como o formato Inteiro Longo, Data ou Moeda. Mostra um certo nmero de casas a seguir ao ponto decimal, quando usado o formato de tipo Nmero ou Moeda. Permite definir uma mscara de regras para a introduo dos dados. Especifica a etiqueta que ir ter aquele campo, nos formulrios ou relatrios. Define um certo valor para um campo, na insero de um novo registo. Limita dados inseridos num campo, para valores que conhecem uma certa exigncia. Apresenta uma mensagem no ecr, quando a regra de validao infringida. Exige que este campo tenha que ter informao. Permitir (ou no) que o contedo de um campo tipo Texto ou Memo seja zero Determinar se o campo est indexado. Permite que as pesquisas efectuadas ao contedo do campo sejam mais rpidas. Determinar se o contedo do campo pode (ou no) ser comprimido atravs do standard unicode Definir a tipologia e o contexto de insero de caracteres asiticos atravs do teclado normal.

Formatar

Casas Decimais

Mscara de Introduo Legenda

Valor Predefinido Regra de Validao

Texto de Validao

Necessrio Permitir Comprimento Zero Indexado

Compresso Unicode

Modo IME

Figura II.5.5 Propriedades que podem ser associadas aos campos de uma tabela

210

BASES DE DADOS COM MICROSOFT ACCESS 2007

Como definir as propriedades de um campo numa tabela: Abrir a tabela e, em seguida, seleccionar o boto VISTA do separador BASE do friso. 1. Escolher o campo para o qual se desejam definir as propriedades. 2. Para escolher as vrias opes de cada propriedade devemos premir com rato na seta invertida, que se situa direita de cada propriedade. 3. Premir o rato na opo desejada. 4. No final, escolher a opo GUARDAR para gravar toda a tabela incluindo as propriedades dos seus campos.

Ajustar o tamanho dos campos Podemos ajustar o tamanho dos campos de tipo Texto ou Nmero, seleccionando a propriedade TAMANHO DO CAMPO. Para campos com dados tipo Texto, podemos definir o nmero mximo de caracteres que pode ter o campo. Para os campos tipo Nmero, podemos definir o tipo de valores que pode conter o campo, para alm das casas decimais. Por omisso, o Access define a propriedade TAMANHO DO CAMPO como Inteiro Longo. No entanto, poderemos escolher outro tipo de formato numrico com base nas seguintes opes:
Tipo Numrico Byte Inteiro Inteiro Longo Simples Duplo Extenso 0 at 255 -32.768 at 32.767 -2.147.483.648 at 2.147.483.647 -3,4*10 at 3,4*10 -1,797*10
308 38 38

Casas Decimais Nenhuma Nenhuma Nenhuma At 7


308

Bytes 1 2 4 4 8

at 1,797*10

At 15

Figura II.5.6 Tipos de dados numricos

II.5 CONSTRUO DE TABELAS EFICIENTES

211

Formato Nmero e propriedade de casas decimais Se no se especificar um formato para os dados numricos, o Access mostra nmeros com o seu aspecto mais simples. Contudo, o Access apresenta um conjunto de formatos pr-definidos que se adequam s diferentes utilizaes. A tabela seguinte mostra os formatos disponveis para os campos com o tipo de dados Nmero e o modo como so visualizados.
Formato Nmero Geral Moeda Euro Fixo Padro Percentagem Cientfico Nmero 1234,5 1234,5 1234,5 1234,5 1234,5 0,824 1234,5 Modo de visualizao 1234,5 1234,50 1234,50 1235 1234,50 82,40% 1,23E+03

Figura II.5.7 Tipos de formatos para dados numricos

Formato Data/Hora A tabela seguinte mostra os formatos disponveis para campos com dados de tipo Data/Hora e a forma como so visualizados no Formulrio ou na Folha de Dados.
Formato Data Geral Data por Extenso Data Normal Data Abreviada Hora Completa Hora Normal Hora Abreviada Modo de visualizao 26-11-05 16:30:00 Domingo, 26 de Novembro de 2005 26/Nov/05 26-11-2005 20:36:23 8:36 PM 20:36

Figura II.5.8 Tipos de formatos para datas e horas

212

BASES DE DADOS COM MICROSOFT ACCESS 2007

Formato Sim/No Para campos com dados deste tipo, o Access define por omisso o formato como Sim/No, apesar de existirem ainda o formato Verdadeiro/Falso.

Mscara de Introduo Se desejarmos ter um campo com uma estrutura diferente de todos os outros e que facilite a insero de dados, teremos que utilizar a propriedade MSCARAS DE INTRODUO. Esta funcionalidade facilitaria, por exemplo, a insero de dados no campo que regista um nmero de telefone especfico de um pas, ou no campo que regista a matrcula de um automvel. Apresentamos, na seguinte tabela, um conjunto de definies de MSCARAS DE INTRODUO e respectivos valores:
Mscaras de introduo (000) 000-0000 (000) AAA-AAAA 000-00-0000 00000-9999 >L?????????????? ISBN 0-&&&&&&&&&-0 >LL00000-0000 Exemplo (206) 555-0248 (206) 555-TELE 539-88-3736 98115-3007 MARIA ISBN 0-13-964262-5 DB51392-0493

Figura II.5.9 Exemplos de Mscaras de Introduo

Para facilitar a criao de uma mscara de introduo num campo de uma tabela, o Access disponibiliza-nos um conjunto de mscaras tipo que esto acessveis no assistente MSCARAS DE INTRODUO. Este assistente poder ser accionado clicando no boto direito do rato e, em seguida, na opo COMPILAR que aparece no menu rpido.

II.5 CONSTRUO DE TABELAS EFICIENTES

213

Em alternativa podemos premir boto CONSTRUTOR do separador ESTRUTURA do friso.

Figura II.5.10 Janela do assistente de Mscaras de Introduo

Usar Valores por omisso Se desejarmos que um determinado campo tenha um valor por omisso, seleccionamos a propriedade VALOR PREDEFINIDO e inserimos o valor que o campo dever apresentar sempre que inserimos um novo registo na tabela. Por exemplo, caso queiramos que o valor por omisso da data de uma venda seja a data actual, inserimos, na propriedade, a expresso =Data(), tal como se apresenta na seguinte figura.

Figura II.5.11 Exemplo da utilizao da propriedade VALOR PREDEFINIDO

214

BASES DE DADOS COM MICROSOFT ACCESS 2007

Insero de dados requerida Todos os registos necessitam de um conjunto mnimo de informao para fazerem sentido. Contudo, sem a nossa ajuda, o Access no distingue a informao crtica dos simples detalhes. Por esta razo, todos os campos de uma tabela so opcionais (excepto a chave primria). Se desejarmos que a insero de dados num determinado campo seja obrigatria, seleccionamos a propriedade NECESSRIO desse mesmo campo, passando-a para Sim. O valor por omisso desta propriedade No, ou seja, no obrigatria qualquer insero de informao neste campo.

Valores nulos ou espaos em branco Relacionada com a propriedade NECESSRIO, os campos com o tipo de dados Texto ou Memo tm a propriedade PERMITIR COMPRIMENTO ZERO. Esta propriedade determina que um campo pode apresentar um contedo sem quaisquer caracteres.

Regras de validao para limitar os valores num campo Para alm do prprio tipo de dados, que j uma regra de validao, temos tambm a propriedade REGRA DE VALIDAO. Essa validao consiste numa regra que pode ser restrita a uma palavra, no caso de campos do tipo Texto ou maior que um valor em caso de Nmero. Na tabela seguinte apresentamos alguns exemplos de expresses que podem ser utilizadas como regras de validao.

Regra de Validao <>0 0 ou >100 Como C??? <#1/1/99# >#1/1/98# e <#1/1/01#

Definio dessa regra Valor diferente de zero Valor que tem que ser zero ou maior que 100 Valor com 4 caracteres que comece por C Data inferior a 1999 Datas entre 1998 e 2000

Figura II.5.12 Exemplos de regras de validao

II.5 CONSTRUO DE TABELAS EFICIENTES

215

Criao de indexaes Para facilitar a procura de um registo numa tabela podemos indexar um campo. O campo a ser indexado deve ser de pequeno tamanho e de preferncia de simples memorizao para que a procura de registos numa tabela seja feita da forma mais rpida possvel. As opes associadas a esta propriedade so apresentadas na seguinte tabela.

Propriedade de indexao No

Significado No cria uma indexao nesse campo (ou apaga uma existente) Criar uma indexao nesse campo Criar uma nica indexao nesse campo

Sim (Duplicao Autorizada) Sim (Duplicao No Autorizada)

Figura II.5.13 Opes de indexao

A indexao sem duplicados (Sim (Duplicao No Autorizada)) deve ser utilizada sempre que se pretende impossibilitar a insero nesse campo de um conjunto de dados que j exista noutro registo. Por exemplo, o campo Nome do Autor poder ser sujeito a esta propriedade pois dever apresentar sempre valores diferentes. Se desejarmos visualizar ou editar indexaes, podemos abrir a janela NDICES na VISTA DE ESTRUTURA da tabela. Esta janela poder ser acedida atravs do boto NDICES, disponvel no separador ESTRUTURA do friso.

Figura II.5.14 Janela para criao de ndices

216

BASES DE DADOS COM MICROSOFT ACCESS 2007

Compresso Unicode Determina se o contedo do campo (texto ou memo) pode ou no ser comprimido atravs do Standard Unicode1. Assim, poder ser feita a correcta apresentao de documentos, independentemente da linguagem em que estes foram escritos.

Listas de Pesquisa No mbito do processo de criao de tabelas possvel desde logo criar listas de pesquisa que permitem a seleco de informao existente na base de dados, em vez da sua constante digitao. Com efeito, este mecanismo providencia uma lista de possveis valores para uma coluna. Vamos supor que se pretende evitar que o utilizador digite os cdigos das Nacionalidades, quando estiver a registar um novo Autor. Neste caso deveramos: 1. Abrir a tabela AUTORES, com a VISTA DE ESTRUTURA. 2. Seleccionar o campo CodNacionalidade, cujos valores iro ser disponibilizados numa CAIXA DE COMBINAO. 3. Seleccionar o separador PESQUISA.

Figura II.5.15 Propriedades do separador PESQUISA

Padro internacional de codificao adoptado no Office.

II.5 CONSTRUO DE TABELAS EFICIENTES

217

4. Alterar a propriedade Mostrar controlo para CAIXA DE COMBINAO e, na propriedade Origem da linha, indicar o nome da tabela que contm os cdigos das Nacionalidades.

Durante a insero dos registos na tabela do exemplo o contedo do campo CodNacionalidade j poderia ser seleccionado e no digitado, tal como mostra a figura II.5.16.

Figura II.5.16 Exemplo da utilizao de uma Lista de Pesquisa na vista FOLHA DE DADOS

O segredo para uma boa lista de pesquisa referenciar dois tipos de informao. Normalmente a chave primria (no exemplo anterior o cdigo da nacionalidade) e um campo mais descritivo (neste caso, a nacionalidade).

5.4.3 Campo chave primria


A definio da estrutura de uma tabela pode ainda incluir a indicao de um campo como chave primria. Este campo utilizado para podermos mais facilmente identificar de modo nico cada registo de uma tabela. Esta chave permite ao Access manter a tabela sempre ordenada pelo campo escolhido e possibilita o relacionamento entre tabelas. Os conceitos e definies associados s chaves primrias foram abordados em 4.2 na Parte I deste livro. Para fcil identificao e procura de dados numa tabela, o campo chave deve ter um tamanho pequeno, como por exemplo um cdigo identificador. Um campo como o cdigo do Autor poderia ser utilizado como chave primria, uma vez que cada Autor tem um cdigo exclusivo que no ser igual ao de outro Autor.

218

BASES DE DADOS COM MICROSOFT ACCESS 2007

Para definir um campo-chave: 1. Seleccionamos o campo ou campos que iro ser chave primria. 2. No separador ESTRUTURA do friso, escolhemos a opo CHAVE PRIMRIA

Campos-chave mltiplos Se uma tabela no contm apenas um campo com valores nicos, ser necessrio ter mais do que um campo como campo chave primria. Podemos ter tantos atributos numa chave-primria quantos os necessrios. O modo de seleco de campos-chave mltiplos idntico ao modo de seleco de um nico campo chave primria.

5.5 RELACIONAMENTOS ENTRE TABELAS


Para uma base de dados funcionar de forma eficiente, as suas tabelas devem estar devidamente relacionadas, caso contrrio no haver um fluxo de dados coerente e lgico, provocando normalmente problemas de redundncias e de inconsistncia de dados. Adicionalmente, este processo fornece uma plataforma de navegao muito prtica que facilita o acesso a informaes relacionadas de vrias tabelas. Alm de prevenir o aparecimento dos problemas referidos, o Access usa os relacionamentos para: Criar ligaes entre novas consultas; Mostrar registos relacionados num SUBFORMULRIO ou num SUBRELATRIO; Reforar a integridade referencial para proteger o relacionamento entre as tabelas quando se inserem, alteram ou eliminam registos.

possvel relacionar tabelas especificando um ou mais campos que contm o mesmo valor nos registos relacionados. Esses campos ligados tm normalmente o mesmo nome em cada tabela. Em muitos casos poderemos relacionar a chave primria de uma tabela com um campo ligado noutra tabela.

II.5 CONSTRUO DE TABELAS EFICIENTES

219

5.5.1 Criao de relacionamentos


Para criar um relacionamento entre dois campos de duas tabelas diferentes comeamos por abrir a janela RELAES clicando no boto RELAES que se encontra no separador FERRAMENTAS DA BASE DE DADOS do friso. Posteriormente, devemos seleccionar as tabelas que sero alvo dos relacionamentos e, finalmente, definimos as relaes com base nos seguintes procedimentos: 1. Clicamos sobre o campo de uma das tabelas que vai entrar nesse relacionamento (normalmente dever ser uma chave primria ou uma chave estrangeira). 2. Mantendo o boto pressionado, arrastamos o rato at ao campo correspondente na outra tabela. Este procedimento d origem ao aparecimento da janela de relacionamentos que apresenta os nomes das tabelas, os campos que estabelecem o relacionamento, bem como o tipo de associao em causa.

Figura II.5.17 Janela para a configurao de relacionamentos entre tabelas

Podemos simplesmente seleccionar o boto OK para concluir o processo de definio de um relacionamento entre tabelas. No entanto, na maioria dos casos, ser aconselhvel assinalar as opes relacionadas com a INTEGRIDADE REFERENCIAL. Como vamos ver mais frente, esta opo obriga os dados dos campos em causa a respeitarem as regras de integridade. Esta aco cria o relacionamento entre duas tabelas, estabelecendo uma ligao entre os campos seleccionados, tal como mostra a figura II.5.18. O Access usa uma linha para ligar os campos relacionados e nas extremidades coloca o 1 e o infinito () para atribuir o tipo de relacionamento de um-para-muitos.

220

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.5.18 Exemplo grfico do relacionamento entre duas tabelas

indiferente seleccionar um campo de uma tabela e arrast-lo para o campo correspondente na outra tabela, ou fazer esta operao no sentido inverso, pois o Access cria exactamente o mesmo relacionamento. O Access sabe identificar correctamente o tipo de relacionamento, em funo do tipo de campos escolhidos (chave primria de uma tabela e chave estrangeira de outra tabela).

5.5.2 Integridade Referencial


Em alguns relacionamentos o Access pode reforar a integridade referencial, quando podemos inserir ou apagar registos em tabelas relacionadas. A integridade referencial ajuda a garantir que os relacionamentos entre os registos so vlidos e que ns no apagamos acidentalmente dados relacionados. O Access pode reforar a integridade referencial quando as condies so conhecidas: O campo relacionado pela primeira tabela chave primria ou tem uma nica indexao. Os campos relacionados tm o mesmo tipo de dados. Ambas as tabelas pertencem mesma base de dados do Access (se as tabelas esto ligadas, elas tm que pertencer mesma base de dados do Access).

Na janela da figura II.5.17 podemos assinalar as opes relacionadas com a integridade referencial. No entanto, s assinalando a primeira opo poderemos assinalar as outras duas. As opes so as seguintes:

II.5 CONSTRUO DE TABELAS EFICIENTES

221

IMPOR INTEGRIDADE REFERENCIAL No permitido introduzir um valor de um registo num campo que chave estrangeira, se esse valor no existir num registo da tabela onde aquele campo chave primria.

PROPAGAR ACTUALIZAO DOS CAMPOS RELACIONADOS A alterao de um valor de um registo num campo que chave primria implica a alterao de todas as ocorrncias, numa tabela relacionada, dos registos que apresentam esse mesmo valor no campo correspondente (chave estrangeira).

PROPAGAR ELIMINAO DOS REGISTOS RELACIONADOS A eliminao de um valor de um registo num campo que chave primria implica a eliminao de todas as ocorrncias, numa tabela relacionada, dos registos que apresentam esse mesmo valor no campo correspondente (chave estrangeira).

5.5.3 Tipos de relacionamentos


Para relacionamentos em que a integridade referencial reforada existe a possibilidade de estabelecer um de dois tipos de relacionamento: um-para-muitos e um-para-um. No caso do tipo de relacionamento ser de um-para-muitos, cada registo na primeira tabela pode ser associado com muitos registos na tabela relacionada, ou seja, cada valor do campo chave primria aparece muitas vezes na tabela relacionada. No relacionamento de um-para-um cada registo da primeira tabela pode ser associado apenas com um registo da tabela relacionada. Na maioria dos casos ambas as tabelas esto ligadas pelo campo chave primria. Este tipo de relacionamento no muito usual, utilizando-se normalmente para dividir tabelas com muitos campos em tabelas mais pequenas.

Muitos-para-muitos em campos de mltiplos valores Conforme j referimos no captulo 2, esta uma nova funcionalidade do Access 2007. Como o prprio nome sugere, este um campo que pode guardar vrios valores de uma s vez. Para configurar um campo com

222

BASES DE DADOS COM MICROSOFT ACCESS 2007

estas caractersticas teremos de recorrer s suas propriedades, mais concretamente LISTA DE PESQUISA (ver ponto 5.4.2). Nesta seco, seleccionamos a tabela que contm os valores a serem inseridos neste campo e accionamos a propriedade PERMITIR VRIOS VALORES (alterar o NO para SIM).

Figura II.5.19 Exemplo da utilizao de campos de mltiplos valores na vista FOLHA DE DADOS

No exemplo ilustrado na figura II.5.19 a tabela Livros tem um campo denominado Autor que nos permite inserir simultaneamente vrios cdigos de autor.

Campos de mltiplos valores estaro apenas disponveis nas bases de dados com o novo formato .accdb. Se usarmos bases de dados com formato .mdb (uma base de dados criada com Access 2003 que ainda no foi convertida) no poderemos tirar partido desta funcionalidade.

5.5.4 Alterao da estrutura de relacionamentos


Caso seja necessrio, podemos efectuar alteraes numa estrutura de relacionamentos j criada e guardada. Para tal, devemos comear por aceder janela de relacionamentos, clicando sobre o boto RELAES no separador FERRAMENTAS DA BASE DE DADOS do friso. Para alterar as opes de INTEGRIDADE REFERENCIAL deveremos seleccionar o relacionamento respectivo e posteriormente seleccionar o boto EDITAR RELAES.

II.5 CONSTRUO DE TABELAS EFICIENTES

223

Para eliminar uma linha de relacionamento entre duas tabelas basta clicar sobre ela uma vez (o que provoca a sua seleco) e, em seguida, clicar ELIMINAR. Para visualizar os relacionamentos da nossa base de dados devemos no separador FERescolher a opo TODAS AS RELAES RAMENTAS DA BASE DE DADOS. Para visualizar um relacionamento em particular devemos escolher a opo RELAES DIRECTAS no mesmo separador.

Para alterar um relacionamento j existente devemos premir duas vezes com o rato na linha do relacionamento que queremos editar. Em seguida, devemos definir as opes de relacionamento e, finalmente, premir OK.

5.5.5 Navegao nos relacionamentos


Tal como j foi referido, a utilidade da imposio de relacionamentos entre tabelas no se resume preveno de erros na gesto da base de dados. Os relacionamentos so teis tambm para podermos navegar entre dados relacionados. Com efeito, quando estamos a visualizar na FOLHA DE DADOS uma tabela que est envolvida numa qualquer relao poderemos consultar os registos relacionados clicando na CAIXA ADIO que se encontra na extremidade esquerda de cada linha.

Figura II.5.20 Utilizao da CAIXA ADIO na navegao entre relacionamentos

224

BASES DE DADOS COM MICROSOFT ACCESS 2007

Ao seleccionarmos a CAIXA ADIO aparecer uma pequena FOLHA DE DADOS que nos possibilitar a consulta e edio da informao relacionada. De facto, poderemos utilizar esta pequena FOLHA DE DADOS tal como utilizamos a FOLHA DE DADOS original, o resultado das nossas aces ser exactamente o mesmo.

Figura II.5.21 Exemplo da utilizao da CAIXA ADIO na navegao entre relacionamentos

Uma tabela poder estar ligada a mais do que uma tabela. Neste caso, o Access permite proceder escolha da tabela que ser utilizada quando seleccionamos a CAIXA ADIO. Para o efeito, o Access apresentar uma caixa com a lista de todas as tabelas existentes na base de dados.

Figura II.5.22 Janela com a lista de todas as tabelas existentes na base de dados

Podemos abrir quantas FOLHA DE DADOS desejarmos e se houver encadeamentos nos relacionamentos entre tabelas (figura II.5.23) essa informao ser tambm apresentada. Esta complexidade, que normalmente aparece em bases de dados mais elaboradas, permite fazer aquilo que conhecido por DrillDown da informao.

II.5 CONSTRUO DE TABELAS EFICIENTES

225

Figura II.5.23 Exemplo da visualizao de encadeamentos nos relacionamentos entre tabelas

5.6 MANIPULAO DA FOLHA DE DADOS: FORMATAR, ORDENAR, FILTRAR E PROCURAR


Quando estamos na rea de construo de tabelas podemos apenas alterar o nome dos campos, as suas caractersticas e o seu tamanho. Por sua vez, com a FOLHA DE DADOS podemos inserir a informao contida nesses campos, ou seja, podemos inserir os registos. Para aceder a esta rea basta simplesmente fazer duplo clique no nome da tabela desejada no PAINEL DE NAVEGAO. Contudo, se estivermos a trabalhar na construo de uma tabela e pretendermos aceder sua FOLHA DE DADOS, devemos seleccionar o boto VISTA apresentado na imagem. Depois de activarmos o modo FOLHA DE DADOS, vamos deparar com uma tabela bidimensional com o aspecto semelhante ao apresentado na figura II.5.24, que possibilita a manipulao de dados relativos aos campos (colunas) e aos registos (linhas).

226

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.5.24 Tabela Livros na vista FOLHA DE DADOS

5.6.1 Navegao na Folha de Dados


medida que inserimos os registos na tabela surge no lado esquerdo da janela no modo FOLHA DE DADOS um conjunto de smbolos informativos, cujo significado apresentado na tabela seguinte.
Smbolo Significado Registo em edio Fim do ficheiro / novo registo Registo corrente

Figura II.5.25 Smbolos informativos na vista FOLHA DE DADOS

Na parte inferior da janela do modo FOLHA DE DADOS surge tambm um conjunto de smbolos que permitem a movimentao entre os registos do ficheiro. O seu significado apresentado na tabela seguinte.
Smbolo Significado Posicionamento imediato no primeiro registo Avana registo a registo na direco do primeiro Avana registo a registo na direco do ltimo Posicionamento imediato no ltimo registo Permite, por digitao, posicionar num registo especfico

Figura II.5.26 Smbolos para a movimentao de registos na vista FOLHA DE DADOS

II.5 CONSTRUO DE TABELAS EFICIENTES

227

Em alternativa, tambm podemos accionar os mesmos botes de navegao que esto disponveis na seco LOCALIZAR do friso.

5.6.2 Formatao da FOLHA DE DADOS


O Access permite-nos fazer a formatao da FOLHA DE DADOS com diferentes cores e formatos de letras. Embora estas alteraes no condicionem a forma de trabalhar destas folhas de dados, em determinados projectos ser importante utilizar estas formataes para realar determinadas informaes. A maior parte das opes de formatao da folha de dados encontra-se na seco TIPO DE LETRA do friso (separador BASE).
Alterar o tipo de letra Mostra linhas de grelha

Alterar a cor do texto

Alterar a cor do fundo

Figura II.5.27 Configurao da seco TIPO DE LETRA usada para a Formatao da FOLHA DE DADOS

5.6.3 Rearranjar Colunas


Os campos na FOLHA DE DADOS podem ser movidos por forma a apresentarem uma disposio diferente da original e que facilite o processo de insero de dados.

228

BASES DE DADOS COM MICROSOFT ACCESS 2007

Naturalmente, podemos efectuar este procedimento sem redesenhar a tabela. Basta simplesmente arrastar a coluna para a sua posio final, tal como se apresenta na figura seguinte.

Figura II.5.28 Ex. do processo de movimentao de uma coluna na vista FOLHA DE DADOS

Notar que as alteraes efectuadas na disposio das tabelas no tm repercusso nos dados armazenados na base de dados.

5.6.4 Colunas escondidas


Por vezes as tabelas tm tantas colunas que se torna impossvel visualiz-las todas ao mesmo tempo. Obviamente que ser possvel visualizar toda a informao recorrendo s barras de deslocamento horizontal. Contudo, em algumas situaes podemos no necessitar de ver todos os campos de informao de uma vez. Neste caso, podemos ocultar temporariamente algumas colunas da tabela visualizando apenas as colunas mais importantes num dado momento. Para esconder uma coluna de uma tabela seleccionamos o cabealho da mesma e posteriormente clicamos no boto direito do rato. No menu de contexto que aparece no ecr escolhemos a opo OCULTAR COLUNAS. No mesmo menu tambm podemos esconder/mostrar um conjunto de colunas de uma s vez, seleccionando a opo MOSTRAR COLUNAS. Neste caso, a caixa de dilogo que aparece no ecr permite seleccionar simultaneamente as colunas a esconder/mostrar.

Figura II.5.29 Janela do Menu Rpido usada para esconder/mostrar um conjunto de colunas de uma s vez

II.5 CONSTRUO DE TABELAS EFICIENTES

229

5.6.5 Ordenao
A ordenao um processo bastante til quando trabalhamos com um grande volume de dados. Normalmente os dados estando ordenados apresentam-se de uma forma lgica e organizada que facilita a sua anlise e compreenso. Para ordenar uma tabela por um determinado campo de informao basta seleccionar o cabealho da coluna pretendida e clicar na lista descendente na extremidade direita da coluna . No menu que aparece no ecr seleccionar alfabeticamente pela ordem ascendente (ORDENAR DE A A Z) ou descendente (ORDENAR DE Z A A). No caso de dados numricos, ORDENAR DO MAIS PEQUENO AO MAIOR ou ORDENAR DO MAIOR AO MAIS PEQUENO.

Figura II.5.30 Ordenao de dados na vista FOLHA DE DADOS atravs do menu rpido

Em alternativa, tambm podemos escolher os botes de ordenao que esto disponveis na seco ORDENAR E FILTRAR do friso. O boto permite retirar qualquer tipo de ordenao que tenha sido feita e colocar os registos na sua disposio original.

5.6.6 Filtragem
Quando estamos a trabalhar com tabelas com dezenas ou centenas de registos, o processo de pesquisa de informao pode-se tornar montono

230

BASES DE DADOS COM MICROSOFT ACCESS 2007

e pouco produtivo. Frequentemente, precisamos aceder a informao de forma selectiva e no global. Nestes casos, devemos partir a FOLHA DE DADOS de uma forma que apenas a informao necessria seja apresentada. Para filtrar um conjunto de registos devemos definir uma ou mais condies que os mesmos devem respeitar para serem apresentados na FOLHA DE DADOS.

Filtros rpidos Os filtros rpidos permitem-nos escolher os valores que sero considerados na condio de seleco que pretendemos implementar. Para aplicar o filtro rpido devemos: 1. Escolher a coluna que contm os dados a seleccionar. 2. Clicar na caixa descendente na extremidade direita do cabealho da coluna ou seleccionar o boto FILTRO na seco ORDENAR E FILTRAR do friso. 3. Na lista que aparece no ecr com os diferentes valores armazenados na coluna retirar o visto em SELECCIONAR TUDO. 4. Seleccionar o valor ou valores que pretendemos incluir na filtragem. No exemplo ilustrado na figura II.5.31, seleccionamos os livros da Coleco 3 (Tecnologias). Como resultado, a FOLHA DE DADOS apresenta apenas os registos com este cdigo de coleco.

Figura II.5.31 Filtragem de dados na vista FOLHA DE DADOS atravs do menu rpido

II.5 CONSTRUO DE TABELAS EFICIENTES

231

Depois de executada a filtragem, a BARRA DE ESTADO apresenta um boto que depois de seleccionado coloca a tabela na sua disposio original. Em alternativa, podemos remover todos os filtros activos numa coluna clicando na caixa descendente na extremidade direita do cabealho da mesma e, finalmente, seleccionando LIMPAR FILTRO.

Filtros por seleco Os filtros por seleco permitem-nos seleccionar os dados existentes na nossa tabela. Com efeito, a seleco de um dado valor feita na prpria clula da tabela que pretendemos filtrar. Para aplicar o filtro por seleco, devemos: 1. Procurar na tabela o valor a partir do qual pretendemos fazer a filtragem. 2. Seleccionar o valor na sua prpria clula. 3. Clicar no boto direito do rato. 4. Na lista que aparece no ecr, seleccionar uma das opes de filtragem.

No exemplo ilustrado na figura II.5.32 seleccionamos inicialmente o valor 3 (Coleco Tecnologias) e posteriormente seleccionamos a opo IGUAL A 3. Como resultado a FOLHA DE DADOS apresenta apenas os registos com este cdigo de coleco.

Figura II.5.32 Filtragem por seleco na vista FOLHA DE DADOS atravs do menu rpido

232

BASES DE DADOS COM MICROSOFT ACCESS 2007

O mesmo procedimento poder ser feito na seco ORDENAR E FILTRAR do friso. Ao seleccionarmos o boto SELECO deparamos com as mesmas opes de filtragem.

Dependendo do tipo de dados seleccionado, podemos ter diferentes opes de filtragem. Podemos tambm filtrar os registos de uma tabela no s pelo valor integral de uma clula, mas tambm por um valor parcial. Por exemplo, se tivermos o valor Software Obrigatrio na descrio de um campo da nossa tabela, podemos seleccionar apenas Software. Possivelmente, o resultado da pesquisa ser mais abrangente e sero apresentados novos livros com esta palavra.

Filtros por condio At agora, os filtros utilizados foram baseados em valores existentes nas nossas tabelas. Contudo, sempre que quisermos executar seleces de dados com base em valores especficos temos de recorrer a filtros mais avanados, ou seja, temos de utilizar os filtros por condio. Vamos supor que pretendemos seleccionar os livros vendidos depois de 01-01-2004. Atravs dos processos de filtragem anteriores apenas poderamos visualizar as vendas efectuadas nesta data, isto se elas existissem. Com os filtros por condio o problema seria facilmente resolvido. Para aplicar o filtro por condio, devemos: 1. Escolher a coluna que contm os dados a seleccionar.

2. Clicar na caixa descendente na extremidade direita


do cabealho da coluna ou seleccionar o boto FILTRO na seco ORDENAR E FILTRAR do friso. 3. Na lista que aparece no ecr, seleccionar FILTROS DE DATA.

II.5 CONSTRUO DE TABELAS EFICIENTES

233

Figura II.5.33 Exemplo da utilizao de Filtros de Data

4. Na caixa de dilogo que aparece no ecr, digitar o valor que ser considerado na filtragem.

Figura II.5.34 Filtro personalizado com a introduo de uma data

5.6.7 Pesquisa
O Access tambm disponibiliza um mecanismo de pesquisa rpida que percorre toda a FOLHA DE DADOS procura de uma determinada informao. Embora o processo de filtragem nos ajude a encontrar um conjunto de registos de uma tabela, a pesquisa ser mais indicada quando queremos encontrar um simples dado escondido num enorme volume de informao. Alm disso, ao contrrio da filtragem que altera o aspecto da FOLHA DE DADOS, a pesquisa mantm inalterada essa mesma FOLHA DE DADOS, apenas assinalando a informao que procuramos. A forma mais rpida de pesquisar uma determinada informao ser digitar a mesma na BARRA DE ESTADO tal como apresentado na figura seguinte:

234

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.5.34 Pesquisa com a introduo de um valor

Se pretendemos fazer uma pesquisa mais elaborada, considerando outras opes mais especficas, devemos seleccionar o boto LOCALIZAR que se encontra na seco LOCALIZAR do friso.

Figura II.5.35 Pesquisa atravs da opo LOCALIZAR

5.6.8 Imprimir a Folha de Dados


Para imprimir uma FOLHA DE DADOS temos de aceder ao BOTO DO OFFICE. No menu respectivo encontramos a opo IMPRIMIR, que disponibiliza trs opes adicionais: Impresso com a possibilidade de escolher e configurar a impressora; Impresso imediata em que a FOLHA DE DADOS seleccionada ser enviada para a impressora sem possibilidades de alteraes; Pr-visualizao da impresso, que possibilita um conjunto completo de configuraes conhecidas de outras aplicaes do Office.

II.5 CONSTRUO DE TABELAS EFICIENTES

235

A figura seguinte apresenta a FOLHA DE DADOS referente tabela Autores no modo PR-VISUALIZAR. Nesta figura, podemos confirmar que o friso inclui um conjunto alargado de botes que facilitam o processo de configurao das pginas antes de efectuarmos a impresso.

Figura II.5.36 FOLHA DE DADOS referente tabela Autores no modo PR-VISUALIZAR

5.7 IMPORTAO E EXPORTAO DE DADOS


O Access tem a grande vantagem de permitir o acesso a dados armazenados noutros formatos, quer sejam de aplicaes pertencentes ao Office, quer sejam outros processadores de texto, folhas de clculo ou Sistemas de Gesto de Base de Dados. O Access permite-nos obter dados a partir de uma fonte exterior (importar) e gravar dados em ficheiros que podem ser abertos em outras aplicaes (exportar). Estas operaes so accionadas a partir de comandos que se encontram no separador DADOS EXTERNOS do friso.

Figura II.5.37 Configurao da seco DADOS EXTERNOS usada para a Importao/Exportao de dados

236

BASES DE DADOS COM MICROSOFT ACCESS 2007

5.7.1 Importar dados


Para importar dados de outras aplicaes deveremos accionar o boto correspondente ao tipo de dados que pretendemos importar. Depois de feita esta primeira escolha, ser aberta uma caixa de dilogo na qual podemos indicar a localizao e o nome do ficheiro que contm os dados pretendidos. Para finalizar o processo, devemos ainda seleccionar a opo para armazenamento na nossa base de dados, tal como apresentado na caixa seguinte.

Figura II.5.38 Caixa de dilogo para registar a localizao e o nome do ficheiro que contm os dados pretendidos

A segunda opo na caixa de dilogo em cima permite incluir na nossa base de dados uma tabela proveniente de um ficheiro externo base de dados, mantendo a possibilidade dessa tabela ser actualizada fora da base de dados e fazer com que essas actualizaes sejam transmitidas para o interior da mesma (com base nas tcnicas de ligao de dados OLE Object Linking and Embeding). No caso dos dados que se querem importar estarem numa base de dados, surgir uma nova janela onde poderemos escolher o objecto pretendido, quer seja uma tabela, consulta ou relatrio.

Figura II.5.39 Janela para escolher o objecto de uma base de dados que pretendemos importar

II.5 CONSTRUO DE TABELAS EFICIENTES

237

Depois de realizarmos a importao ou ligao de uma tabela externa, ser conveniente que se identifiquem as suas propriedades, especialmente o campo chave.

5.7.2 Exportar dados


Para exportar dados de uma tabela ou consulta do Access para uma outra aplicao deveremos: 1. Abrir a base de dados que contm a tabela ou consulta que se deseja exportar; 2. Seleccionar a tabela ou consulta a exportar na BARRA DE NAVEGAO; 3. No separador DADOS EXTERNOS escolher o boto que corresponda ao tipo de aplicao que armazenar os dados a exportar (exemplo, EXCEL). 4. Na caixa de dilogo que se apresentar no ecr indicar o local e o nome ao ficheiro que ir ter os dados bem como o tipo de ficheiro pretendido.

Figura II.5.40 Caixa de dilogo para registar a localizao, nome e tipo do ficheiro que se pretende exportar

5. Premir OK.

238

BASES DE DADOS COM MICROSOFT ACCESS 2007

O tipo de ficheiro definido na janela EXPORTAR caracteriza o tipo de aplicao que ir receber os dados a exportar. As possibilidades de escolha do tipo de ficheiro so as mesmas que podero ser utilizadas no processo de importao, nomeadamente uma tabela do Excel, um ficheiro de texto, ou um ficheiro de dBASE ou Paradox, um documento em HTML, etc.

5.8 EXERCCIO GUIADO


Criar a Base de Dados A base de dados que iremos implementar para exemplificao das operaes com o Access a base de dados EDITORA cuja estrutura foi desenvolvida na Parte I deste livro. Depois de executar o Access deparamos com um conjunto de opes de criao de base de dados. Para a criao da nossa base de dados, deveremos escolher a opo BASE DE DADOS VAZIA e posteriormente atribuir o nome Editora.

Criar as Tabelas da Base de Dados Comecemos por criar a tabela Autores composta pelos seguintes campos: CdAutor, Nome, Morada, CdPostal, Telefone, Contribuinte e CdNacionalidade. Para criar esta tabela no Access devemos partir do separador CRIAR do friso e posteriormente premir o boto ESTRUTURA DA TABELA.

Inserir campos nas tabelas No caso da tabela Autores, o primeiro campo vai ser designado por CdAutor. Para este campo podemos optar pelo tipo de dados Numerao Automtica, uma vez que pretendemos estabelecer um cdigo sequencial diferente para cada Autor. O tamanho deste campo dever ser Nmero Inteiro Longo.

II.5 CONSTRUO DE TABELAS EFICIENTES

239

Todos os restantes campos sero do tipo texto exceptuando o campo do tipo numrico CdNacionalidade. Para os campos de tipo texto deveremos considerar um tamanho que se adeqe informao a registar no campo respectivo. No final, a nossa tabela de Autores dever apresentar a estrutura de campos que indicada na figura.

Figura II.5.41 Estrutura da tabela Autores

Introduzir a chave primria A definio da estrutura de uma tabela deve ainda incluir a indicao de uma chave primria. Como se sabe, a chave primria o campo que tem a funo de identificar univocamente cada registo de uma tabela. No caso da tabela Autores, a chave primria dever ser o campo CdAutor, uma vez que foi criado precisamente para identificar de modo nico cada registo. Assim sendo, devemos seleccionar o campo CdAutor e, no separador ESTRUTURA do friso, escolher a opo CHAVE PRIMRIA.

Definir as propriedades dos campos Tal como os tamanhos dos campos, as suas restantes propriedades devem ser definidas na parte inferior da janela VISTA DE ESTRUTURA. Essas propriedades podem variar consoante a especificidade de cada campo. Como exemplo, poderemos definir para o campo Contribuinte uma mscara de introduo que facilite e uniformize a entrada destes dados para cada autor. Assim, na propriedade Mscaras de Introduo deveremos accionar o respectivo assistente, clicando no boto e posteriormente escolher uma mscara que se adeqe a este campo.

240

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.5.42 Definio da propriedade Mscaras de Introduo para o campo contribuinte

Partindo do princpio que a grande maioria dos autores desta editora so portugueses, podemos definir para o campo CdNacionalidade uma propriedade que introduza automaticamente o valor 1 sempre que se regista um novo autor. Desta forma, deveremos introduzir na propriedade valor predefinido o valor 1.

Definio das restantes tabelas Seguindo os mesmos procedimentos j utilizados para a definio da tabela Autores, vamos em seguida definir a configurao de cada uma das restantes tabelas da nossa base de dados. Deveremos respeitar a estrutura da base de dados, que foi idealizada na primeira parte deste livro, introduzindo os campos de cada tabela bem como as respectivas chaves primrias.

Figura II.5.43 Estrutura das tabelas da base de dados Editora

II.5 CONSTRUO DE TABELAS EFICIENTES

241

Definio de relacionamentos entre tabelas Depois de definirmos a estrutura das tabelas, deveremos definir os relacionamentos existentes entre elas. Para entrar no modo de definio de relacionamentos entre tabelas, deveremos accionar o separador FERRAMENTAS DA BASE DE DADOS que est disponvel no friso. Em seguida, pressionamos o boto RELAES. Este comando permite aceder janela MOSTRAR TABELA, onde podemos escolher as tabelas da nossa base de dados que sero adicionadas janela RELAES.

Figura II.5.44 Janela MOSTRAR TABELA usada para adicionar tabelas janela RELAES

Vamos comear por introduzir na janela RELAES as tabelas Autores, Autores/Livro e Livros. Nesta janela, a disposio das tabelas dever ser semelhante apresentada na figura seguinte.

Figura II.5.45 Janela RELAES para estabelecer os relacionamentos entre as tabelas Autores, Autores/Livro e Livros

Neste primeiro exemplo pretendemos estabelecer relacionamentos entre as entidades Autores e Livros que apresentam uma cardinalidade M para N, visto que um Autor pode editar vrios Livros e um Livro pode ser escrito por vrios Autores. Para traduzir directamente este tipo de relacionamento tivemos de criar uma terceira tabela, correspondente ao relacionamento

242

BASES DE DADOS COM MICROSOFT ACCESS 2007

existente entre as duas anteriores. Assim, passamos a ter dois relacionamentos do tipo 1 para N. Os dois relacionamentos que salvaguardam a situao anterior so os seguintes: Entre a tabela Autores e a tabela Autores/Livro, atravs do campo comum a essas duas tabelas: CodAutor. O relacionamento do tipo 1 para N. Entre a tabela Livros e a tabela Autores/Livro, atravs do campo comum a essas duas tabelas: ISBN. O relacionamento do tipo 1 para N.

Na tabela Autores/Livro cada autor pode ser registado vrias vezes e cada livro tambm. Na figura II.5.46 podemos visualizar que o autor com o cdigo 70 escreveu dois livros diferentes (9728426658 e 9728426844). Simultaneamente, o livro com o ISBN 9728426542 foi escrito por trs autores (66, 67 e 68).

Figura II.5.46 Exemplo do registo de um autor com vrios livros

Estabelecer os relacionamentos O primeiro relacionamento ser definido clicando sobre o campo CdAutor da tabela Autores e arrastando o rato at ao mesmo campo da tabela Autores/Livro. Na janela que aparece no ecr devemos activar as opes que impem a integridade referencial e posteriormente clicar em CRIAR.

II.5 CONSTRUO DE TABELAS EFICIENTES

243

Figura II.5.47 Janela de edio das RELAES para estabelecer os relacionamentos entre as tabelas Autores e Autores/Livro

Impor integridade referencial Na janela de definio de relacionamentos podemos assinalar opes relacionadas com a integridade referencial, que provocam as seguintes imposies: Activando a primeira opo IMPOR A INTEGRIDADE REFERENCIAL no ser possvel introduzir um valor no campo CdAutor da tabela Autores/Livro, se esse valor no existir no campo CdAutor da tabela Autores. Activando a segunda opo PROPAGAR ACTUALIZAO DOS CAMPOS RELACIONADOS implica que uma alterao de um CdAutor na tabela Autores se registe em todas as ocorrncias desse cdigo na tabela Autores/Livro. Activando a terceira opo PROPAGAR ELIMINAO DOS CAMPOS RELACIONADOS, faz com que uma eliminao de um CdAutor na tabela Autores provoque a eliminao de todos os registos que contm esse cdigo na tabela Autores/Livro.

Para definir o segundo relacionamento clicamos sobre o campo ISBN da tabela Autores/Livro e arrastamos o rato at ao mesmo campo da tabela Livros. Na janela que aparece no ecr devemos activar as opes que impem a integridade referencial e posteriormente clicar em CRIAR. Depois de definirmos os dois relacionamentos referidos, veremos aparecer na janela RELAES a sua representao atravs de linhas ligando as tabelas.

244

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.5.48 Janela RELAES ilustrando os relacionamentos entre as tabelas Autores, Autores/Livro e Livros

Definio dos restantes relacionamentos da Base de Dados Para inserirmos mais tabelas na janela RELAES, podemos clicar no boto MOSTRAR TABELA e, em seguida, adicionamos a esta janela todas as tabelas da nossa base de dados. Posteriormente, acrescentamos os seguintes relacionamentos: Entre a tabela Localidades e a tabela Autores, atravs do campo comum a essas duas tabelas: CodPostal. O relacionamento do tipo 1 para N. Entre a tabela Nacionalidades e a tabela Autores, atravs do campo comum a essas duas tabelas: CodNacionalidade. O relacionamento do tipo 1 para N. Entre a tabela Coleco e a tabela Livros, atravs do campo comum a essas duas tabelas: CodColeco. O relacionamento do tipo 1 para N. Entre a tabela Revendedores e a tabela Vendas, atravs do campo comum a essas duas tabelas: CodRevendedor. O relacionamento do tipo 1 para N. Entre a tabela Vendas e a tabela Venda/Livro, atravs do campo comum a essas duas tabelas: NVenda. O relacionamento do tipo 1 para N. Entre a tabela Livros e a tabela Venda/Livro, atravs do campo comum a essas duas tabelas: ISBN. O relacionamento do tipo 1 para N.

II.5 CONSTRUO DE TABELAS EFICIENTES

245

No final da definio destes relacionamentos o esquema da base de dados estar pronto e com a configurao apresentada na figura II.5.49. Antes de abandonar a janela RELAES podemos pedir para guardar a estrutura de GUARDAR. relacionamentos anteriormente definida, clicando no boto

Figura II.5.49 Estrutura final das RELAES da base de dados Editora

Introduzir dados nas tabelas Para introduzirmos os dados que iro constituir o contedo das tabelas devemos passar da VISTA DE ESTRUTURA para o modo de tabela ou FOLHA DE DADOS. Por exemplo, os dados que poderemos introduzir na tabela Autores so os seguintes:

Figura II.5.50 Introduo de registos na tabela Autores atravs da vista FOLHA DE DADOS

Depois de introduzirmos um dado numa clula, basta teclar ENTER para passarmos seguinte. Ao teclar ENTER no ltimo campo abre-se uma nova linha que nos possibilita a introduo de um novo registo. Aps a introdu-

246

BASES DE DADOS COM MICROSOFT ACCESS 2007

o dos dados devemos pedir para gravar a informao. Para tal, basta clicar no boto GUARDAR. Seguindo os mesmos procedimentos j utilizados para a insero de dados na tabela Autores, vamos em seguida inserir dados em cada uma das restantes tabelas da nossa base de dados.

II.6 Manipulao de dados com Consultas

Uma consulta (query) uma forma de visualizar os dados de uma tabela ou de um conjunto de tabelas relacionadas entre si. Assume um formato semelhante ao de uma tabela, embora a consulta seja virtual, uma vez que no existe na realidade, mas apenas por via da definio de alguns parmetros. Este objecto do Access pode incidir sobre todos os campos de uma tabela ou de um conjunto de tabelas, ou poder incidir apenas sobre alguns campos. Pode apresentar todos os registos ou efectuar uma filtragem de modo a apresentar apenas os dados que correspondem a determinada condio. Os dados seleccionados numa consulta podem ser alterados, apagados ou tratados como se pertencessem a uma tabela.

6.1 TIPOS DE CONSULTAS COM O ACCESS


O Access permite formular diferentes tipos de consultas, utilizando diversos mtodos e procedimentos: Consultas de Seleco: So as consultas mais usadas pela maioria dos utilizadores, sendo possvel seleccionar um conjunto de campos de uma ou vrias tabelas, filtrar um conjunto restrito de registos e criar campos calculados.

248

BASES DE DADOS COM MICROSOFT ACCESS 2007

Consultas de Referncia Cruzada: Com consultas deste tipo podemos sumariar grandes quantidades de informao num formato de fcil leitura. Os dados obtidos surgem da interseco entre dois campos e so apresentados em linhas e colunas, como uma folha de dados. Consulta de Aco: Faz alteraes em registos numa s operao. Usa-se este tipo de consulta para criar uma nova tabela, apagar, adicionar ou fazer alteraes de registos de uma tabela. Consultas SQL (Structured Query Language): Utiliza uma linguagem especfica de interrogao da base de dados. Nas consultas SQL podemos destacar: o Consulta Unio: Combina campos unidos em duas ou mais tabelas. Consulta Pass-through: Envia declaraes para uma base de dados de SQL como Microsoft ou Sybase SQL Server. Consulta Definio dos Dados: Cria, altera, ou apaga tabelas numa base de dados do Access, usando declaraes de SQL.

Depois de acedermos informao gerada pela consulta podemos imprimir ou editar essa informao numa FOLHA DE DADOS, da mesma forma que interagimos com uma tabela.

6.2 CRIAO DE UMA CONSULTA SIMPLES COM O ASSISTENTE


O ASSISTENTE DE CONSULTAS provavelmente a melhor forma de comear a construir consultas mas, conforme vamos ver, no a nica forma e em certos casos nem sequer a mais recomendada. Na verdade, o ASSISTENTE DE CONSULTAS disponibiliza-nos uma forma rpida e fcil de questionar a base de dados, mas tambm nos limita a parametrizao e especificao a definir na filtragem dos dados. Para criar consultas com a ajuda do ASSISTENTE DE CONSULTAS devemos partir do separador CRIAR do friso. Depois de activado este separador, surgem na seco OUTRO dois botes para criao de consultas, designadamente a criao de consultas com a vista de estrutura e a criao de consultas com a ajuda

II.6 MANIPULAO DE DADOS COM CONSULTAS

249

do assistente. Neste caso, seleccionamos o boto ASSISTENTE DE CONSULTAS e ento surgir no ecr a seguinte caixa de dilogo, onde devemos indicar qual o processo de criao.

Figura II.6.1 Opes da janela do ASSISTENTE DE CONSULTAS para a criao de uma nova consulta

Como se pode visualizar na figura II.6.1, o Access apresenta-nos um conjunto de Assistentes que possibilitam a criao de diferentes consultas, nomeadamente: CONSULTAS SIMPLES Cria consultas que obtm dados de campos de uma ou mais tabelas ou consultas. CONSULTAS DE REFERNCIA CRUZADA Apresenta os dados num formato compacto e sumariado. CONSULTAS LOCALIZAR DUPLICADOS Encontra registos duplicados numa tabela ou consulta. CONSULTAS LOCALIZAR NO CORRESPONDENTES Encontra todos os registos numa tabela que no esto relacionados com registos de outra tabela.

Se escolhermos a primeira opo (CONSULTAS SIMPLES), ento ser apresentado o primeiro quadro onde poderemos escolher um conjunto de campos de vrias tabelas que iro ser utilizados na consulta.

250

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.6.2 Primeiro ecr do ASSISTENTE DE CONSULTAS SIMPLES

Com a ajuda deste assistente podemos construir uma consulta simples de uma forma fcil e rpida. Para isso, seguimos as instrues apresentadas nas caixas de dilogo do assistente. Para finalizar o processo escolhemos a tabela ou tabelas e respectivos campos que contenham os dados que iro ser utilizados na consulta. Se decidirmos utilizar o ASSISTENTE DE CONSULTAS para criamos a nossa consulta provavelmente teremos de a refinar mais tarde usando a VISTA DE ESTRUTURA.

6.3 CRIAO DE UMA CONSULTA COM A VISTA DE ESTRUTURA


O ASSISTENTE DE CONSULTAS uma ferramenta til na criao de consultas simples que no sejam muito exigentes na definio especfica da informao a ser filtrada. De facto, quando pretendemos criar uma consulta com especificidades prprias teremos de recorrer a um processo mais trabalhoso mas tambm mais configurvel. Para iniciar a definio de uma consulta QBE (Query By Example), ou seja, consulta atravs de um exemplo, devemos partir do separador CRIAR do friso. 1. Depois de activado o separador CRIAR, premir o boto ESTRUTURA DA CONSULTA 2. Surge uma caixa de dilogo MOSTRAR TABELA, a partir da qual podemos seleccionar a(s) tabela(s)/consulta(s) que iro servir de base para essa consulta.

II.6 MANIPULAO DE DADOS COM CONSULTAS

251

Figura II.6.3 Janela MOSTRAR TABELA usada para escolher a(s) tabela(s) a incluir na consulta

3. Depois de seleccionar a(s) tabela(s)/consulta(s) pretendida(s) premir o boto ADICIONAR. 4. Premir o boto FECHAR. Depois de escolher a(s) tabela(s) que iro fazer parte da consulta e de fechar a caixa de dilogo MOSTRAR TABELA, surge no ecr a janela de definio da consulta (apresentada no prximo tpico). A caixa de dilogo MOSTRAR TABELA surge de uma forma automtica no incio do processo de criao da consulta. Contudo, possvel aceder a esta caixa em qualquer altura bastando para isso seleccionar o boto MOSTRAR TABELA da seco (do friso) CONFIGURAO DA CONSULTA.

6.3.1 Descrio da janela para a criao de uma consulta


A janela para a criao de uma consulta em modo VISTA DE ESTRUTURA divide-se em duas zonas distintas, nomeadamente: a parte superior da janela onde so mostradas as tabelas/consultas seleccionadas para a consulta que pretendemos criar; a parte inferior da janela que apresenta uma grelha (QBE: query-by-example), na qual poderemos indicar os campos a incluir na consulta, bem como critrios ou condies para filtragem de dados.

252

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.6.4 Janela para a criao de uma consulta na vista de ESTRUTURA

6.3.2 Caracterizao da grelha da consulta


As vrias linhas da grelha da consulta tm os nomes e os significados que so apresentados na seguinte tabela.
Nomes Campo Tabela Significado Onde indicamos cada um dos campos que pretendemos ver na consulta Indica-nos os nomes das tabelas a que pertencem os campos referenciados na linha de cima Permite-nos ordenar a consulta com base nesse campo, por ordem ascendente ou descendente Possibilita-nos alternar entre exibir ou no exibir esse campo na consulta Permite-nos especificar um critrio ou condio para nos serem mostrados apenas os dados que correspondam a essa indicao

Ordenar

Mostrar Critrio

Figura II.6.5 Descrio dos parmetros de configurao da grelha da consulta

6.3.3 Insero de campos nas consultas


Para inserirmos um campo na grelha da consulta podemos utilizar duas alternativas: Com o rato, arrastar o nome do campo da tabela para a coluna da grelha em que se deseja inserir. Se pretendermos incluir todos os campos da tabela, podemos seleccionar o asterisco e arrast-lo para a grelha; Fazer clique sobre a primeira linha da grelha e abrir a caixa de listagem. Esta caixa de listagem apresenta-nos os campos das tabelas seleccionadas para a consulta, permitindo

II.6 MANIPULAO DE DADOS COM CONSULTAS

253

assim a escolha do campo a inserir na coluna onde nos encontramos. Temos ainda outras aces que podem ser realizadas na janela de construo da consulta que apresentamos de seguida. Como mover um campo: 1. Premir o rato na barra cinzenta que se situa na coluna do seu campo, por cima do nome deste. 2. Manter o dedo no boto esquerdo do rato e mov-lo para o local desejado. Alterar o tamanho das colunas: Esta aco pode ser til para o caso de existirem campos com tamanho excessivamente grande ou demasiado pequeno. Para que o tamanho de uma coluna fique com a dimenso que pretendemos, devemos colocar o ponteiro do rato na sua extremidade direita. Em seguida, movemos a cruz que representa o ponteiro para a direita ou para a esquerda por forma a ajustar o tamanho da coluna.

Figura II.6.6 Processo de alterao do tamanho das colunas da consulta atravs do indicador do rato

Como apagar um campo: 1. Seleccionar o campo que se deseja apagar, da mesma forma que se selecciona um campo para se mover. 2. Premir a tecla DEL. Alterar o nome dos campos numa consulta: A alterao do nome dos campos pode ser til em futuras criaes de formulrios ou relatrios em que estas consultas sejam referenciadas. Assim, para alterar o nome dos campos devemos: 1. Colocar o cursor no campo que ir ser renomeado na grelha QBE.

254

BASES DE DADOS COM MICROSOFT ACCESS 2007

2. Antes do nome antigo do campo e separado por dois pontos, inserir o novo nome do campo apenas para esta consulta.

6.3.4 Visualizar a consulta atravs da FOLHA DE DADOS


Existem vrias opes para activar uma consulta: Fazer clique no boto EXECUTAR do friso Atravs do boto VISTA transitar do modo VISTA DE ESTRUTURA para o modo VISTA FOLHA DE DADOS.

A apresentao grfica de uma consulta em tudo semelhante a uma tabela. Nos cabealhos das colunas so exibidos os nomes dos campos e nas linhas so includos os registos correspondentes ao critrio da consulta. Na figura II.6.7 apresentada uma consulta que foi gerada em funo da tabela Autores, ou seja, a sua estrutura ser constituda pelos campos Cdigo do Autor, Nome, Telefone, Contribuinte e CodNacionalidade.

Figura II.6.7 Descrio dos parmetros de configurao da grelha da consulta

6.3.5 Especificar o tipo de ordenao


O tipo de ordenao pode ser til numa consulta para melhorar a organizao da respectiva informao. Essa ordenao pode ser crescente ou decrescente com base num determinado campo ou em vrios campos. Como especificar a ordenao dos campos: 1. Depois de escolher o campo sobre o qual ir ser feita a ordenao, premir o rato no respectivo rectngulo em branco, correspondente opo ORDENAO.

II.6 MANIPULAO DE DADOS COM CONSULTAS

255

2. Escolher Ascendente (0-9 ou A-Z) ou Descendente (9-0 ou Z-A). Os registos ficaro ordenados conforme a escolha anteriormente feita. possvel fazer ordenaes com base em vrios campos. O processo referido anteriormente dever ser repetido para os vrios campos tendo em conta que o primeiro critrio de ordenao ser o primeiro campo a contar da esquerda.

6.3.6 Valores superiores


Quando executamos uma consulta visualizamos todos os registos que respeitam as condies definidas. Contudo, o Access possibilita a visualizao de uma determinada percentagem ou nmero de registos, em relao ao total de registos obtidos pela consulta. Para isso, devemos estar no modo VISTA DE ESTRUTURA e posteriormente seleccionar a opo VALORES SUPERIORES na seco CONFIGURAO DA CONSULTA do friso.

Figura II.6.8 Caixa de combinao com os VALORES SUPERIORES

O valor definido por defeito a opo Tudo, no entanto, podemos seleccionar ou inserir um valor especfico ou uma determinada percentagem de registos a visualizar. Para que o conjunto de valores a visualizar seja o pretendido, devemos impor anteriormente a ordenao dos registos com base num campo da consulta.

6.4 DEFINIO DE CRITRIOS EM CONSULTAS


A principal aco associada construo de uma consulta a criao de critrios que possibilitam a apresentao de um conjunto filtrado de dados. As condies podem ser simples ou mltiplas, consoante impliquem uma

256

BASES DE DADOS COM MICROSOFT ACCESS 2007

ou mais restries aos dados a pesquisar. Para conhecermos um pouco melhor a forma de definir os critrios associados s consultas vamos abordar a utilizao de seus diferentes tipos. Consulta com condio simples O Access d-nos uma grande flexibilidade na forma de inserir as expresses referentes aos critrios. Quando identificamos a expresso de filtragem que pretendemos impor na nossa consulta, introduzimos a mesma na linha CRITRIO na coluna do respectivo campo. Para identificar conjuntos de registos, costuma-se usar a expresso ENTRE... E... ou sinais de comparao (<, >, <>, <=, =>). Estes operadores de comparao podem ser usados no apenas com campos numricos mas tambm com campos de texto ou data. Tambm podemos recorrer aos operadores lgicos E e OU para especificar critrios. Podemos escrever estes operadores em portugus ou ingls, pois o Access reconhecer qualquer das formas. No quadro seguinte encontramos alguns exemplos de critrios usados para a seleco de vrios registos:
Expresso >10% Entre #1/2/05# #6/6/06# Norte >=Tecnologias Maria* >2000 E <=2500 E Significado Autores com comisso superiores a 10% Vendas da Editora efectuadas entre 1 de Fevereiro de 2005 e 6 de Junho de 2006 Revendedores da Regio Norte Todos as Coleces que sejam alfabeticamente superiores a Tecnologias Todos os nomes de Autores que comecem por Maria Vendas da Editora superiores a 2000 e inferiores ou iguais a 2500

Figura II.6.9 Exemplos de critrios utilizando operadores de comparao

Seleccionar registos que no tenham qualquer valor num campo Para encontrar um registo que no contenha qualquer valor utiliza-se o operador No, por exemplo, No C*. Esta expresso faz com que a con-

II.6 MANIPULAO DE DADOS COM CONSULTAS

257

sulta no apresente qualquer registo em que este campo se inicie com a letra C. Consulta com condio mltipla Para aumentar a flexibilidade de uma consulta, a grelha QBE pode comportar mais do que um critrio (usamos as expresses E ou OU num campo). Como exemplo deste tipo de consulta vamos usar o critrio 1 no campo CdNacionalidade da tabela Autores e ao mesmo tempo usar 22* no campo tipo texto Telefone da mesma tabela. Assim, a consulta seleccionar apenas os registos dos Autores Nacionais que sejam moradores na zona do Porto.

Figura II.6.10 Consulta com condio mltipla

Como se pode constatar na figura II.6.10, depois de activar a consulta, surge uma FOLHA DE DADOS em que os registos correspondem s condies impostas.

6.5 CRIAO DE CONSULTAS COM TABELAS RELACIONADAS


Uma das grandes potencialidades de um SGBD relacional reside na possibilidade de podermos efectuar consultas que envolvem ao mesmo tempo mais do que uma tabela. Desta forma, podemos obter informaes mais especficas no contexto dos relacionamentos existentes numa base de dados. Por exemplo, no caso da nossa base de dados Editora, podemos saber o nome dos autores dos livros editados nas diferentes coleces. Para criar a nova consulta precisamos de utilizar as tabelas Livros, Coleces, Autores/Livro e Autores. Atravs do modo VISTA DE ESTRUTURA da consulta inserimos as respectivas tabelas e deveremos confirmar se os relacionamentos entre elas so visveis. Se esses relacionamentos no aparecerem, teremos de os definir

258

BASES DE DADOS COM MICROSOFT ACCESS 2007

na janela RELAES (conforme vimos em Criao de Relacionamentos). Posteriormente, seleccionamos os campos de cada tabela que pretendemos incluir na consulta. A estrutura e o resultado desta consulta so apresentados na figura seguinte.

Figura II.6.11 Consulta com tabelas relacionadas

Atravs da tabela Livros poderemos aceder informao de cada Livro editado. Contudo, alguma dessa informao no muito esclarecedora pois aparece em forma de cdigo numrico. Para aceder a informao mais detalhada teremos de criar uma consulta que faa referncia a essa informao atravs das vrias tabelas relacionadas com a tabela Livros. Quando executamos uma consulta bem possvel que seja visualizada informao repetida. No entanto, esta duplicao normalmente resultado da utilizao de vrias tabelas e no resultado de uma m estruturao da base de dados. Quando usamos mais de uma tabela numa consulta corremos o risco de ter campos com nomes iguais. Este no ser um problema se no utilizarmos os campos com o mesmo nome de tabelas diferentes na consulta, contudo, se usarmos esses campos ser conveniente alterar o nome de um deles para uma melhor distino.

6.6 CONSULTAS COM PARMETROS


As consultas parametrizadas so utilizadas para restringir a filtragem de um conjunto de registos que esteja condicionada por um critrio incompleto, ou seja, uma parte da informao associada ao critrio de filtragem no definida a priori mas sim na altura em que a consulta executada. De facto, estas consultas apresentam um critrio que poder ser varivel. No entanto, quando executamos a consulta parametrizada no temos a necessidade de abrir a janela de consulta e fazer alteraes na grelha

II.6 MANIPULAO DE DADOS COM CONSULTAS

259

QBE, pois durante a execuo deste tipo de consultas apresentada uma caixa de dilogo solicitando a entrada de um valor. Para criar um parmetro da consulta, devemos: 1. Criar uma consulta e adicionar a(s) tabela(s) desejadas. 2. Colocar os campos pretendidos na consulta na grelha QBE. 3. No espao em branco do critrio, no campo que se usar como parmetro, inserir uma questo (prompt) entre parntesis recto.

Figura II.6.12 Consulta com parmetros

Em alternativa seleccionamos o boto PARMETROS na seco MOSTRAR/OCULTAR do friso. Inserir a mesma questo com tipo de dados TEXTO.

Figura II.6.13 Janela para a introduo de uma questo em consultas com parmetros

4. Escolher a opo FOLHA DE DADOS ou premir o boto EXECUTAR no friso. 5. Inserir um valor na caixa de dilogo com a questo e premir OK.

Figura II.6.14 Caixa de dilogo que apresenta a questo que condiciona a consulta

260

BASES DE DADOS COM MICROSOFT ACCESS 2007

A introduo de um critrio dentro de parntesis recto actua como parmetro, ou seja, ao pedirmos a visualizao dos dados da consulta o Access pede-nos a introduo de um valor, o qual vai actuar como critrio ou filtro da consulta.

Neste exemplo, consideramos uma consulta que apresenta a informao dos livros editados no mbito de uma determinada coleco. Ao executar esta consulta aparecer uma caixa de dilogo que solicitar a introduo de um valor. Neste caso ser a designao da coleco.

Figura II.6.15 Execuo de uma consulta com parmetros

O valor introduzido ir actuar em conformidade com a expresso indicada, pois os parmetros (dentro de parntesis recto) aparecem associados aos operadores de comparao. Assim, apenas so apresentados os registos com livros e respectivos autores associados coleco introduzida no parmetro.

6.7 CRIAO DE CAMPOS CALCULADOS


Uma consulta no tem necessariamente de conter apenas os campos que pertencem s tabelas da base de dados. Podemos tambm criar novos campos resultantes de operaes aritmticas entre campos utilizados na consulta. Alis, quando comeamos a desenhar bases de dados aprendemos que nunca se deve armazenar informao que resultante de clculos baseados em campos j referenciados na base de dados. As consultas apresentam-se como uma soluo perfeita para minimizar a redundncia de informao nas bases de dados. Com efeito, atravs de campos calculados poderemos aceder a informao que nunca ser arma-

II.6 MANIPULAO DE DADOS COM CONSULTAS

261

zenada, pois o Access gera essa informao cada vez que a consulta executada. Consideremos o exemplo em que se pretende criar uma consulta que dever apresentar o valor da venda de um livro ao revendedor. Para criar esta nova consulta precisamos de utilizar as tabelas Vendas, Venda/ Livro e Livros. Uma vez aberta a consulta na VISTA DE ESTRUTURA, vamos inserir os respectivos campos de cada tabela para complementar a sua informao. Posteriormente, vamos posicionar o indicador do rato na linha CAMPO e na primeira coluna vazia da grelha. Nessa clula escrevemos [Quantidade]*[PreoUnitrio]. Depois de teclarmos ENTER o programa reescrever a expresso.

Figura II.6.16 Consulta com um campo calculado

Ao activar a consulta ir obter um conjunto de registos com o resultado do clculo efectuado. O campo calculado aparece na ltima coluna com o nome Expr1. Os valores apresentados nesse campo so resultado da expresso introduzida. Se quisermos, podemos atribuir um nome mais descritivo ao novo campo. Para isso, na grelha de consulta, posicionamos o cursor na clula onde introduzimos a expresso, e substitumos Expr1 por Valor.

Figura II.6.17 Resultado da consulta estruturada na figura II.6.16

262

BASES DE DADOS COM MICROSOFT ACCESS 2007

Consultas com Funes Normalmente, uma funo recebe dados que ns fornecemos, executa um clculo e apresenta o resultado. A grande vantagem de utilizar as funes em detrimento dos operadores matemticos resulta do facto das primeiras poderem ser usadas em operaes mais complexas. As regras e a sintaxe a respeitar na utilizao das funes so exactamente as mesmas, independentemente de estas serem simples ou complexas. Para utilizar uma funo devemos inserir o nome da mesma e, em seguida, inserimos (entre parntesis curvos) a informao sobre a qual a funo vai executar os clculos. O Access disponibiliza um catlogo de dezenas de funes direccionadas para diferentes tarefas, nomeadamente as operaes matemticas e estatsticas. Para aceder rapidamente a estas funes o Access providencia uma ferramenta chamada CONSTRUTOR DE EXPRESSES que poder ser utilizada da seguinte forma: 1. Abrir uma consulta na VISTA DE ESTRUTURA. 2. Posicionar o cursor na coluna vazia da grelha onde pretendemos inserir a expresso e seleccionar a opo COMPILAR no menu rpido que aparece no ecr.

Figura II.6.18 Menu rpido para aceder opo COMPILAR

Em alternativa seleccionar CONSTRUTOR na seco CONFIGURAO DA CONSULTA do friso.

3. No CONSTRUTOR DE EXPRESSES que aparece no ecr, definir a expresso recorrendo s vrias funcionalidades disponveis.

II.6 MANIPULAO DE DADOS COM CONSULTAS

263

Expresso a construir Botes que inserem operadores

rea para seleccionar campos dos objectos BD e funes

Funes disponveis na Categoria seleccionada Categorias da Funo

Figura II.6.19 Configurao do CONSTRUTOR DE EXPRESSES

4. Depois de Clicar OK, o Access copia a expresso para a caixa onde pretendemos inserir a expresso. O CONSTRUTOR DE EXPRESSES uma ferramenta prpria no s para criar expresses usadas em campos calculados, mas tambm para estabelecer condies de filtragem, recorrendo neste caso aos operadores lgicos E, Ou e No e/ou aos operadores relacionais >, <, Clculos automticos em funo de agrupamentos de dados As consultas do Access permitem-nos ainda efectuar outros tipos de clculos que se baseiam nos possveis agrupamentos de dados associados aos campos da consulta, ou seja, poderemos fazer questes acerca de grupos de dados como, por exemplo, saber o n de livros vendidos e o n total de vendas para cada livro, etc. Atravs destas consultas podem ser obtidos resultados numricos a partir da utilizao das seguintes funes estatsticas:
Funo de Clculo Soma Mdia Min Max Contar DesvP Var Primeiro ltimo Encontra A soma de todos os valores num campo A mdia de todos os valores num campo O menor valor num campo O maior valor num campo O nmero de valores num campo (no contando os nulos) O desvio padro dos valores num campo A varincia de valores num campo O valor do campo do primeiro registo numa tabela ou consulta O valor do campo do ltimo registo numa tabela ou consulta

264
Funo de Clculo Expresso Onde Encontra

BASES DE DADOS COM MICROSOFT ACCESS 2007

Um campo calculado quando desejar utilizar mltiplas funes numa expresso Oculta o campo nos resultados da consulta desmarcando a caixa de verificao MOSTRAR

Figura II.6.20 Funes de clculo para utilizao no agrupamento de dados

Como calcular totais para todos os registos na tabela Para efectuar consultas que nos proporcionem clculos deste tipo, teremos de: 1. Criar uma consulta e seleccionar os campos que se desejam para calcular totais na grelha QBE. 2. Premir o boto TOTAIS no friso. Aparecer uma nova linha na grelha com a designao Total: e que apresenta em cada uma das suas clulas a indicao Agrupar Por. 3. Na caixa de combinao associada a cada campo e simultaneamente opo TOTAL, seleccionar o tipo de total (Soma, Mdia, ou Min).

Figura II.6.21 Caixa de combinao associada opo TOTAL

4. Premir o boto FOLHA DE DADOS no friso para ver o resultado da consulta. Como exemplo, poderemos utilizar a seguinte questo: Qual o n de livros vendidos e o n total de vendas para cada livro? Para construir uma consulta que responda a esta questo, deveremos utilizar as tabelas Livros, Venda/Livro e Vendas. Depois de adicionar as tabelas janela VISTA DE ESTRUTURA da consulta, vamos colocar o campo Titulo na primeira coluna da grelha QBE. Posteriormente, vamos colocar o campo Quantidade na segunda coluna, e, finalmente, inserimos o campo Data na terceira coluna da mesma grelha.

II.6 MANIPULAO DE DADOS COM CONSULTAS

265

Depois de activar o boto TOTAIS vamos agrupar os registos da consulta pelo campo Titulo e, em seguida, impomos para o campo Quantidade o clculo SOMA e para o campo Data o clculo CONTAR que esto disponveis na caixa de combinao da linha Total:. A seguinte figura apresenta o aspecto final da consulta na VISTA DE ESTRUTURA, bem como os resultados obtidos.

Figura II.6.22 Execuo de uma consulta com clculos automticos associados ao agrupamento de dados

Se desejarmos aceder a sub-agrupamentos da informao, ou seja, entrarmos em nveis de maior detalhe teremos de usar a ferramenta do Access CONSULTAS DE REFERNCIA CRUZADA.

6.8 CONSULTAS DE REFERNCIA CRUZADA


As consultas de referncia cruzada so consideradas como uma ferramenta poderosa que analisa um grande volume de dados. So normalmente utilizadas para calcular e reestruturar dados de forma a facilitar a sua anlise. Este tipo de consulta apresenta uma grande sumarizao dos dados, proporcionando assim uma fcil comparao entre eles. As consultas de referncia cruzada permitem apresentar a informao numa tabela, construda com o propsito de compactar dados que calculam uma soma, mdia, contagem ou outro tipo de total, agrupados em dois tipos de informaes, uma no canto inferior esquerdo da FOLHA DE DADOS e outra na parte superior. A criao de uma consulta de referncia cruzada obedece essencialmente a trs procedimentos: Inicialmente, escolhem-se os campos cujos valores devem ser utilizados para a definio das linhas de uma nova tabela;

266

BASES DE DADOS COM MICROSOFT ACCESS 2007

Depois, indica-se um outro campo para, a partir dos seus dados, serem criadas as colunas dessa nova tabela. Finalmente, definimos o campo que servir de referncia para o clculo automtico a utilizar na interseco de uma coluna com uma linha.

Desta forma, criada uma nova tabela, em cujas clulas aparecero nmeros relativos quantidade de ocorrncias dos valores em linha, em correspondncia com os valores em coluna.

6.8.1 Criao de uma consulta de referncia cruzada com o Assistente


O Access disponibiliza duas formas de criar consultas de referncia cruzada. Podemos usar o Assistente para o efeito ou, podemos construir a consulta usando a VISTA DE ESTRUTURA. Naturalmente o Assistente ser mais indicado para definir as bases da consulta e no caso de ser necessrio um refinamento da mesma ento deveremos usar a VISTA DE ESTRUTURA. Para criar a consulta de referncia cruzada com a ajuda do assistente, devemos: Seleccionar o separador CRIAR do friso. Posteriormente premir o boto ASSISTENTE DE CONSULTAS na seco OUTRO do friso. 1. Na caixa de dilogo NOVA CONSULTA seleccionar a opo ASSISTENTE DE CONSULTAS DE REFERNCIA CRUZADA e, em seguida, clicar em OK.

Figura II.6.23 Janela do ASSISTENTE DE CONSULTAS para a criao de uma nova consulta

II.6 MANIPULAO DE DADOS COM CONSULTAS

267

2. Seguir as instrues apresentadas nas caixas de dilogo do assistente. Primeiro, escolher a tabela ou consulta que contenha os dados que iro ser confrontados (no exemplo corrente vamos seleccionar a consulta Valor Vendas).

Figura II.6.24 Janela do ASSISTENTE DE CONSULTAS DE REFERNCIA CRUZADA para seleccionar a tabela/consulta que contm os dados

3. Em funo dos campos disponveis na consulta seleccionada escolher o campo (Titulo) que representar a informao das linhas da tabela.

Figura II.6.25 Janela do ASSISTENTE DE CONSULTAS DE REFERNCIA CRUZADA para escolher o campo que representar a informao das linhas da tabela

4. Escolher o campo que representar a informao das colunas da tabela (no seguinte exemplo a escolha recaiu na Data, possibilitando uma nova escolha para o intervalo de tempo desejado: Trimestre).

268

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.6.26 Janelas do ASSISTENTE DE CONSULTAS DE REFERNCIA CRUZADA para escolher o campo que representar a informao das colunas da tabela

5. Finalmente, escolher o campo de informao que ser considerado como o critrio de agrupamento entre as informaes das linhas e colunas. Este campo ser alvo de um clculo escolhido na lista da direita da seguinte caixa de dilogo (no nosso exemplo escolhemos o campo Valor e a funo Soma).

Figura II.6.27 Janela do ASSISTENTE DE CONSULTAS DE REFERNCIA CRUZADA para escolher o campo considerado como o critrio de agrupamento

Como exemplo, apresentamos na figura II.6.28 uma consulta de referncia cruzada que apresenta as vendas trimestrais dos diferentes livros da Editora. Na concepo desta consulta utilizamos no uma tabela mas uma consulta que foi previamente configurada. Assim, foi considerado o campo Titulo para a definio das linhas, enquanto o campo Data de venda condiciona o nmero de colunas. Em cada clula resultante do cruzamento de uma linha com uma coluna aparecem as vendas trimestrais de cada livro.

II.6 MANIPULAO DE DADOS COM CONSULTAS

269

Figura II.6.28 Resultado da execuo de uma CONSULTAS DE REFERNCIA CRUZADA

Se pretendermos mostrar na tabela uma coluna com o total dos valores apresentados em todas as colunas (ver na figura II.6.28 a segunda coluna da tabela), devemos seleccionar a opo SIM, INCLUIR AS SOMAS DAS LINHAS na caixa de dilogo do passo 5. Se a consulta resultante no for exactamente a que pretendemos, podemos executar novamente o assistente ou, ento, alteramos a consulta na VISTA DE ESTRUTURA.

6.8.2 Criar uma consulta de referncia cruzada com a VISTA DE


ESTRUTURA

Tal como outra consulta qualquer, podemos criar uma Consulta de referncia cruzada atravs da VISTA DE ESTRUTURA. Neste sentido devemos: Seleccionar o separador CRIAR do friso e, posteriormente, premir o boto ESTRUTURA DA CONSULTA na seco OUTRO do friso. 1. Adicionar as tabelas ou consultas a usar atravs da caixa de dilogo MOSTRAR TABELA. 2. Seleccionar o Boto CRUZAR da seco TIPO DE CONSULTA do friso.

Figura II.6.29 Configurao da seco TIPO DE CONSULTA usada para a aceder ao Boto CRUZAR

270

BASES DE DADOS COM MICROSOFT ACCESS 2007

O Access converte a consulta numa consulta de referncia cruzada inserindo na grelha QBE um novo parmetro com o nome REFERNCIA CRUZADA.
Escolher a forma como o campo vai ser usado (agrupamento, calculo de sumarizao)

Escolher onde o campo ser colocado (linha, coluna ou valor de agrupamento)

Figura II.6.30 Configurao da grelha de uma CONSULTAS DE REFERNCIA CRUZADA na VISTA


DE ESTRUTURA

Quando utilizamos as Consultas de referncia cruzada com a VISTA DE ESTRUTURA, podemos com facilidade estabelecer critrios de filtragem pois temos disposio o parmetro CRITRIO que j tivemos a oportunidade de conhecer em Definio de critrios em consultas.

6.9 CONSULTAS DE ACO


Alm dos diferentes tipos de consultas anteriormente abordadas, o Access permite-nos ainda definir outros tipos de consultas, genericamente designadas por CONSULTAS DE ACO. Estas consultas tm em comum o facto de produzirem alteraes reais sobre a base de dados. Na verdade, com as consultas de aco podemos criar novas tabelas ou alterar dados que elas contm. Existem no Access quatro tipos de consultas de aco, designadamente: CONSULTA CRIAR TABELA Cria uma nova tabela a partir da totalidade ou de uma parte dos dados existentes numa ou vrias tabelas. CONSULTA ELIMINAO Apaga um grupo de registos de uma ou mais tabelas. CONSULTA ACRESCENTAR Adiciona um grupo de registos de uma ou mais tabelas para outra ou outras tabelas. CONSULTA ACTUALIZAO Efectua Alteraes a um grupo de registos numa ou mais tabelas.

II.6 MANIPULAO DE DADOS COM CONSULTAS

271

6.9.1 Impedir que o modo Desactivado bloqueie uma consulta


Se abrirmos uma base de dados que no esteja armazenada numa localizao fidedigna, ou se tivermos optado por no considerar uma base de dados fidedigna, o Access ir impedir a execuo de todas as CONSULTAS DE ACO. De facto, se tentarmos executar uma CONSULTA DE ACO e no acontecer nada, devemos verificar se uma nova mensagem aparece na barra de estado do Access.

Figura II.6.31 Barra que apresenta um aviso informando que esta aco ou evento foi bloqueado pelo MODO DESACTIVADO

Activar contedo bloqueado Quando aparecer uma mensagem semelhante apresentada na figura II.6.31 que inviabilize a execuo de uma CONSULTA DE ACO, procedemos da seguinte forma: 1. Na barra de mensagens clicamos em OPES; 2. Na caixa de dilogo OPES DE SEGURANA DO MICROSOFT OFFICE clicamos em ACTIVAR ESTE CONTEDO e, em seguida, clicamos em OK. Se a Barra de Mensagens no aparecer no ecr, devemos clicar na opo BARRA DE MENSAGENS, existente na seco MOSTRAR/OCULTAR do separador FERRAMENTAS DE BASE DE DADOS.

6.9.2 Consulta criar tabela


Este tipo de consultas tem o objectivo de criar tabelas com base num determinado conjunto de campos e registos. De facto, quando criamos tabelas atravs deste processo temos a possibilidade de escolher os campos e os dados da nossa base de dados que desejamos incluir numa nova tabela, quer esta seja armazenada na nossa base de dados, quer seja

272

BASES DE DADOS COM MICROSOFT ACCESS 2007

armazenada em qualquer outra. Alm disso, revelam-se muito teis quando pretendemos: Criar relatrios que mostrem dados numa determinada altura; Fazer cpias de segurana de uma tabela; Criar uma tabela que contenha registos antigos (histrico). Improvisar um tipo de formulrios ou relatrios baseados em consultas tipo tabelas-mltiplas.

Para criar uma consulta de criao de uma nova tabela devemos: 1. Criar uma consulta, seleccionando as tabelas ou consultas que contm os campos que desejamos incluir na nova tabela. Opcionalmente, adicionamos critrios linha CRITRIOS da grelha de estrutura.

Figura II.6.32 Exemplo de uma consulta a utilizar no processo CONSULTA CRIAR TABELA

2. No separador ESTRUTURA, escolher a opo CRIAR TABELA existente na seco TIPO DE CONSULTA. 3. Na caixa de dilogo que activada, inserir o nome da nova tabela que desejamos criar (se desejamos criar uma nova tabela para fazer a substituio por uma existente, seleccionamos a tabela na caixa de combinao).

Figura II.6.33 Caixa de dilogo que permite Criar tabela baseada numa consulta aberta na VISTA DE ESTRUTURA

II.6 MANIPULAO DE DADOS COM CONSULTAS

273

4. Na mesma caixa, indicar a nova base de dados do Access inserindo o nome desta e, em seguida, seleccionar OK. 5. Executar a Consulta, clicando no boto EXECUTAR existente no separador ESTRUTURA. 6. Na caixa de dilogo de confirmao aparece o nmero de registos que sero copiados para a nova tabela.

Figura II.6.34 Caixa de confirmao do processo Consulta Criar Tabela

7. Finalmente, confirmamos a criao da nova tabela seleccionando o boto SIM.

6.9.3 Consulta eliminao


A CONSULTA ELIMINAO a consulta mais perigosa das consultas de aco. Com efeito, esta consulta funciona como uma consulta de seleco que filtra um conjunto de registos que respeitam determinada condio. Contudo, esta consulta no apresenta apenas os registos filtrados mas tambm os elimina da base de dados. Efectivamente, para apagar uma srie de registos que respeitem uma determinada condio, mais rpido utilizar uma CONSULTA DE ELIMINAO que apagar um registo de cada vez. Assim, esta consulta permite-nos excluir, da tabela ou tabelas intervenientes numa consulta um conjunto de registos que correspondam a um critrio introduzido. Com as CONSULTAS ELIMINAO eliminamos sempre registos inteiros e no apenas campos seleccionados dentro dos registos. Por exemplo, podemos utilizar este tipo de consultas para eliminar toda a informao associada aos livros editados antes do ano 2001, que por se terem tornado obsoletos no so mais comercializados. Para criar uma consulta que apague registos devemos:

274

BASES DE DADOS COM MICROSOFT ACCESS 2007

1. Criar uma consulta, seleccionando a(s) tabela(s) em que se deseja(m) apagar registos usando um critrio (no nosso exemplo apenas necessitamos da tabela livros). 2. Levar os seguintes campos para a grelha QBE: O campo com asterisco para tabela, na qual se desejam apagar os registos. Os campos nos quais se especificam critrios (DataEdio). 3. Especificar o critrio necessrio. Ter ateno ao facto do Access eliminar todos os registos da tabela se no existir uma condio.

Figura II.6.35 Exemplo de uma consulta para eliminar livros editados at 31-12-2000

4.

No separador ESTRUTURA, escolher a opo ELIMINAR existente na seco TIPO DE CONSULTA.

Figura II.6.36 Grelha da consulta com uma nova linha ELIMINAR

5. Aceder FOLHA DE DADOS que apresentam os resultados desta consulta, ou seja podemos visualizar os registos que sero excludos da base de dados. 6. Depois de nos certificarmos das repercusses deste processo, voltar VISTA DE ESTRUTURA e, no separador ESTRUTURA, escolher a opo EXECUTAR existente na seco RESULTADOS.

II.6 MANIPULAO DE DADOS COM CONSULTAS

275

Figura II.6.37 Caixa de dilogo que alerta para o facto de um conjunto de registos serem eliminados de uma forma irreversvel

7.

Para completar a consulta e apagar os registos, escolher SIM.

6.9.4 Consulta acrescentar


A CONSULTA ACRESCENTAR usada para adicionar registos de uma tabela do Access a outra tabela j existente. Este tipo de consulta permite, com base num critrio, seleccionar um conjunto de registos de uma consulta para os adicionar ao fim de uma ou vrias tabelas da mesma base de dados ou de qualquer outra. Por exemplo, suponhamos que alguns Autores novos residem em locais cujos cdigos postais ainda no esto registados na nossa base de dados, embora os mesmos se encontrem numa tabela de uma outra base de dados. Para evitar ter de introduzir manualmente todas estas informaes, seria possvel acrescentar de uma forma automtica as mesmas, tabela Localidades. Para criar uma Consulta Acrescentar: 1. Criar uma consulta, seleccionando as tabelas ou consultas que contm os registos que se desejam juntar a outra tabela. No nosso exemplo seleccionamos a tabela CodPostais de uma base de dados Comercial.

Figura II.6.38 Estrutura da consulta criada na base de dados Comercial.accdb onde se encontra a tabela (CodPostais) cujos registos se pretendem adicionar

2. Especificar um critrio se necessrio.

276

BASES DE DADOS COM MICROSOFT ACCESS 2007

3.

No separador ESTRUTURA, escolher a opo ACRESCENTAR existente na seco TIPO DE CONSULTA.

4. Inserir o nome da tabela (Localidade) a que se deseja juntar os registos. Esta pode ser a tabela actual ou outra de uma outra base de dados. Se escolher outra base de dados do Access, inserir o nome da base de dados (Editora) e o caminho, se necessrio.

Figura II.6.39 Caixa de dilogo que permite identificar a base de dados e a respectiva tabela onde se encontram os registos a acrescentar

5. Premir OK. 6. No separador ESTRUTURA, escolher a opo EXECUTAR existente na seco RESULTADOS.

Figura II.6.40 Caixa de confirmao do processo Consulta Acrescentar

7. Para completar a consulta e juntar os registos, premir o boto SIM, na habitual caixa de dilogo informativa.

6.9.5 Consulta actualizao


As CONSULTAS ACTUALIZAR procuram registos e modificam-nos. Normalmente, limitamos as modificaes a um nico registo, mas com este processo o Access permite fazer alteraes a um conjunto de registos de uma s vez. Este tipo de consulta permite efectuar alteraes reais nas tabelas que estiverem associadas consulta, pois permitem alterar o contedo de um ou vrios campos de uma tabela j existente, de acordo com um conjunto de condies. De facto, com esta consulta, podemos introduzir novos valores ou expresses nos campos pretendidos.

II.6 MANIPULAO DE DADOS COM CONSULTAS

277

Como exemplo de utilizao de uma CONSULTA ACTUALIZAR, vamos aumentar em 10% os royalties de todos os Autores da Editora. Assim, para criar uma consulta actualizao devemos: 1. Criar uma consulta, seleccionando as tabelas ou consultas que incluam os registos que se desejam alterar. No nosso exemplo, seleccionamos a tabela Autores/Livros que contm o campo Royalties.

Figura II.6.41 Estrutura da consulta criada para modificar registos

2. No separador ESTRUTURA, escolher a opo ACTUALIZAR existente na seco TIPO DE CONSULTA. 3. Escolher os campos que iro sofrer as alteraes da informao. Especificar o critrio na grelha QBE se necessrio. 4. Inserir a expresso ou valor que ser nova informao do campo especificado.

Figura II.6.42 VISTA DE ESTRUTURA da consulta que actualiza em 10% as comisses a pagar aos autores da editora

5. No separador ESTRUTURA, escolher a opo EXECUTAR existente na seco RESULTADOS.

278

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.6.43 Caixa de confirmao do processo Consulta Actualizar

6. Para completar a consulta e mudar a informao dos registos, escolher SIM.

6.10 CONSULTAS SQL


Uma consulta SQL uma consulta criada atravs de instrues da linguagem SQL. As instrues SQL so muitas vezes usadas para consultar, actualizar e gerir bases de dados relacionais como o caso do Access. Na verdade, sempre que criada uma consulta na VISTA DE ESTRUTURA o Access constri, de uma forma automtica, as instrues SQL equivalentes em segundo plano. Essas instrues SQL podem ser visualizadas ou editadas na VISTA DE SQL. A figura II.6.44 apresenta uma consulta de seleco criada atravs do modo VISTA DE ESTRUTURA, e apresenta tambm a respectiva instruo SQL criada automaticamente pelo Access.

Figura II.6.44 Exemplo de uma consulta na VISTA DE ESTRUTURA e o correspondente cdigo em linguagem SQL gerado automaticamente pelo Access

II.6 MANIPULAO DE DADOS COM CONSULTAS

279

6.10.1 Visualizao ou modificao de uma declarao SQL


Se estivermos familiarizados com a linguagem SQL podemos manipular uma consulta, modificando-a ou visualizando-a atravs das declaraes de SQL, em vez de usar a grelha de QBE. Neste caso devemos: 1. Criar uma consulta, ou abrir uma j existente na VISTA DE ESTRUTURA. 2. No separador ESTRUTURA escolher a opo VISTA existente na seco RESULTADOS. No menu associado a este boto, seleccionar a opo SQL. 3. Se desejarmos fazer alteraes, devemos inseri-las na janela que apresenta as instrues SQL. 4. Voltar VISTA DE ESTRUTURA. A grelha QBE reflecte as alteraes anteriormente realizadas.

6.10.2 Consultas SQL especficas


Algumas consultas SQL, chamadas consultas SQL especficas, no podem ser criadas na GRELHA DE ESTRUTURA, mas sim directamente na VISTA SQL. As consultas SQL sero abordadas com mais detalhe na Parte III deste livro. Os trs tipos de consultas so: Consulta de UNIO Combina campos correspondentes de mais do que uma tabela ou consulta numa s linha de registo. Consulta de Ligao PASS-THROUGH Envia declaraes imediatamente para uma base de dados de SQL, ou seja, uma base de dados exterior. Consulta de DEFINIO DE DADOS Cria ou altera objectos de bases de dados como tabelas de bases de dados do Access.

Consulta de UNIO As consultas de unio so particularmente vantajosas quando: Combinam dados de muitas tabelas ou consultas; necessrio criar tabelas com dados de muitos tipos;

280

BASES DE DADOS COM MICROSOFT ACCESS 2007

necessrio criar relatrios para sumariar os dados de muitas bases de dados. Para criar uma consulta de UNIO devemos: 1. Depois de activado o separador CRIAR, premir o boto ESTRUTURA DA CONSULTA. 2. Premir o boto FECHAR na caixa de dilogo MOSTRAR TABELA. 3. No separador ESTRUTURA, escolher a opo seco TIPO DE CONSULTA. existente na

4. Inserir as condies de SQL SELECT para a consulta de unio. 5. Aceder FOLHA DE DADOS que apresenta os resultados desta consulta.

Consulta de Ligao Este tipo de consulta SQL envia declaraes directamente para uma base de dados exterior, possibilitando a obteno de registos ou a alterao de dados. Para criar uma Consulta de Ligao devemos: 1. Depois de activado o separador CRIAR, premir o boto ESTRUTURA DA CONSULTA. 2. Premir o boto FECHAR na caixa de dilogo MOSTRAR TABELA. 3. No separador ESTRUTURA, escolher a opo seco TIPO DE CONSULTA. 4. Na folha das propriedades existente na

, seleccionar a propriedade Cadeia de ligao ODBC para especificar a informao da base de dados a conectar.

5. Inserir a consulta de passagem de dados.

II.6 MANIPULAO DE DADOS COM CONSULTAS

281

6. Na folha de propriedades da consulta, passar a propriedade Devolve Registos para SIM se a consulta devolve registos, ou NO se esta no devolver. 7. No separador ESTRUTURA, escolher a opo EXECUTAR existente na seco RESULTADOS.

Consulta de Definio de Dados Utiliza-se este tipo de consulta para criar ou alterar objectos da bases de dados, apesar de tambm ser possvel fazer estes procedimentos a partir da forma normal de construo. Cada consulta de definio de dados consiste em apenas uma declarao que pode ser: CREATE TABLE ALTER TABLE Cria uma tabela. Altera a estrutura de uma tabela existente, por exemplo, adicionando ou removendo um campo. Remove uma tabela de uma base de dados. Cria uma indexao para um campo. Remove uma indexao de um campo.

DROP TABLE CREATE INDEX DROP INDEX

Para criar uma consulta de definio de dados devemos: 1. Depois de activado o separador CRIAR, premir o boto ESTRUTURA DA CONSULTA. 2. Premir o boto FECHAR na caixa de dilogo MOSTRAR TABELA. 3. No separador ESTRUTURA, escolher a opo na seco TIPO DE CONSULTA. 4. Inserir a condio para a consulta de definio de dados. 5. No separador ESTRUTURA, escolher a opo EXECUTAR existente na seco RESULTADOS. existente

282

BASES DE DADOS COM MICROSOFT ACCESS 2007

6.10.3 Utilizao de Subconsultas


Uma SUBCONSULTA uma declarao tipo SQL SELECT dentro de outra CONSULTA DE SELECO ou CONSULTA DE ACO, ou seja, a SUBCONSULTA uma consulta que se baseia na consulta principal. possvel criar uma SUBCONSULTA que defina um campo, ou podemos usar uma SUBCONSULTA que defina o critrio de um campo. Para definir um critrio para um campo, insere-se a declarao SELECT na linha de critrio na grelha de QBE. Podemos utilizar uma SUBCONSULTA para: Calcular totais; Testar a existncia de algum resultado (se existe ou no uma certa palavra ou informao de um campo); Encontrar algum valor que seja maior, menor ou to grande, como um valor da SUBCONSULTA; Criar SUBCONSULTA dentro de SUBCONSULTA.

6.11 EXERCCIO GUIADO


Consideremos novamente a nossa base de dados para exemplificao das operaes de consultas com o Access. Vamos fazer uma abordagem a grande parte dos procedimentos associados s consultas, recorrendo a exemplos que se enquadrem na utilizao da base de dados Editora.

Criao de consultas com base em vrias tabelas Vamos comear por criar uma consulta que apresente os dados referentes s vendas dos livros da editora. A consulta dever apresentar a data, o ttulo, a quantidade e o preo unitrio do livro. Para criar a nova consulta devemos accionar o separador CRIAR do friso. Posteriormente, seleccionamos o Boto ESTRUTURA DA CONSULTA na seco OUTRO. A partir do quadro MOSTRAR TABELA adicionamos as tabelas cujos campos vo ser utilizados na consulta, nomeadamente Vendas, Venda/Livro e Livros.

II.6 MANIPULAO DE DADOS COM CONSULTAS

283

Figura II.6.45 Quadro MOSTRAR TABELA que permite a adio das tabelas cujos campos vo ser utilizados na consulta

As referidas tabelas devero aparecer na parte superior da janela da VISTA DE ESTRUTURA ligadas pelos respectivos relacionamentos. Em seguida seleccionamos os campos que pretendemos incluir na consulta. Vamos incluir nesta primeira consulta os campos Nmero, Data da venda, Ttulo, Quantidade e PreoUnitrio do respectivo livro. Para inserir um campo na grelha de consulta, como j referimos, podemos arrast-lo da respectiva tabela para a grelha ou seleccion-lo na caixa de listagem, que podemos abrir na primeira linha da grelha.

Figura II.6.46 VISTA DE ESTRUTURA da consulta Valor Vendas

No final, a nossa consulta deve apresentar uma estrutura como a que pode ser vista na figura II.6.46. Depois de concluda a primeira fase da elaborao da consulta, devemos efectuar a sua gravao. Para tal, clicamos no respectivo boto GUARDAR e digitamos o nome Valor Vendas na janela que aparece no ecr.

284

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.6.47 Caixa de dilogo usada para atribuir um nome e efectuar a gravao da consulta

Estabelecer uma ordenao Vamos estabelecer uma ordenao dos registos da nossa consulta pela data da venda, de forma a aparecem primeiro as vendas mais recentes. Neste sentido, devemos premir com o rato no rectngulo em branco da coluna Data correspondente opo ORDENAR. Em seguida, devemos escolher a opo DESCENDENTE que aparece na caixa de combinao.

Figura II.6.48 Escolha da opo de ordenao na grelha da VISTA DE ESTRUTURA da consulta Valor Vendas

Critrios para a consulta Podemos, a partir desta consulta, definir os mais variados critrios de seleco. Por exemplo, vamos elaborar a consulta que apresente apenas as Vendas do Livro Desenho e Implementao de bases de dados com Microsoft Access XP em 2004. Vamos chamar a esta consulta Vendas Access 2004, que ter a mesma estrutura de campos da consulta anterior. Em seguida, vamos introduzir na linha CRITRIO as respectivas condies, tal como mostra a figura.

Figura II.6.49 VISTA DE ESTRUTURA da consulta que apresenta apenas as vendas do livro Desenho e Implementao de bases de dados com Microsoft Access XP em 2004

II.6 MANIPULAO DE DADOS COM CONSULTAS

285

Consultas com parmetros Suponhamos que, ao abrir a consulta Vendas dos Livros, queramos indicar um determinado intervalo de datas para visualizar as respectivas vendas, sem sermos obrigados a alterar a condio no modo VISTA DE ESTRUTURA da consulta. Para resolver este problema, vamos criar uma nova consulta com o nome Vendas Access Ms que ter como base a consulta anterior. Adicionalmente, vamos impor que o intervalo de tempo ser definido no incio da sua execuo. A figura seguinte apresenta a sequncia dos procedimentos a adoptar, desde a configurao dos critrios da consulta, at sua execuo.

Figura II.6.50 Consulta que apresenta as vendas do livro Desenho e Implementao de bases de dados com Microsoft Access XP nos meses de Agosto e Setembro 2004

Campos calculados Ainda recorrendo consulta Vendas dos Livros, vamos efectuar algumas alteraes que permitam introduzir um campo calculado. Neste caso, vamos inserir um novo campo que apresente o valor da venda de cada livro, ou seja, vamos multiplicar a quantidade pelo preo unitrio de cada livro vendido. Uma vez aberta a consulta em VISTA DE ESTRUTURA, vamos posicionar o indicador do rato na linha CAMPO e na primeira coluna da grelha que estiver vazia. Nessa clula escrevemos Valor: que ser a legenda a apresentar

286

BASES DE DADOS COM MICROSOFT ACCESS 2007

para esta nova coluna e, finalmente, digitamos a expresso que efectua o clculo.

Figura II.6.51 VISTA DE ESTRUTURA e folha de dados da consulta que calcula valor da venda de cada livro atravs de um campo calculado

Clculos automticos em funo de agrupamentos de dados Considerando de novo as vendas da Editora, vamos criar uma nova consulta que nos permita saber, para cada Revendedor, o total de vendas j efectuadas pela nossa Editora. Para construir esta consulta deveremos utilizar as tabelas Vendas, Vendas/Livro e Revendedores. Depois de adicionar as tabelas janela VISTA DE ESTRUTURA da consulta, vamos colocar o campo Nome do Revendedor na primeira coluna da grelha QBE. Posteriormente, vamos colocar o campo Quantidade e Preo Unitrio nas duas colunas seguintes da mesma grelha, uma vez que estes campos vo ser alvo de um clculo (Quantidade * PreoUnitrio) que ser definido na ltima coluna. Depois de activar o boto TOTAIS vamos agrupar os registos da consulta pelo campo Nome do Revendedor e, em seguida, vamos impor para o valor da venda o clculo automtico Soma. De notar que os campos Quantidade e Preo Unitrio no so mostrados nesta consulta.

II.6 MANIPULAO DE DADOS COM CONSULTAS

287

Figura II.6.52 VISTA DE ESTRUTURA da consulta que nos permite saber para cada Revendedor o total de vendas j efectuadas pela nossa Editora

Consultas de aco Para a abordagem a este tipo de consultas vamos criar uma consulta de aco que provoque alteraes informao da nossa base de dados. Suponhamos que pretendemos alterar o nmero de unidades editadas para cada livro, pois a empresa que faz a impresso dos livros ofereceu um bnus de 50 livros para encomendas de 1500. Para atingir este objectivo vamos utilizar uma consulta de actualizao que dever efectuar a substituio do valor 1500 por 1550 e simultaneamente regist-la para todos os Livros da Editora. Para criar esta consulta de actualizao devemos: 1. Criar uma consulta, seleccionando a tabela Livros que contm o campo a alterar (NUnidadesEd). 2. No separador ESTRUTURA, escolher a opo ACTUALIZAR existente na seco TIPO DE CONSULTA. 3. Levar o campo NUnidadesEd para a grelha QBE.

288

BASES DE DADOS COM MICROSOFT ACCESS 2007

4. Na linha Actualizar para: da grelha QBE introduzir o novo valor 1550 e na linha Critrio: introduzir o valor antigo 1500.

Figura II.6.53 VISTA DE ESTRUTURA da consulta que actualiza o nmero de unidades editadas para cada livro

5. No separador ESTRUTURA, escolher a opo EXECUTAR existente na seco RESULTADOS. 6. Para completar a consulta e alterar a informao dos registos, escolher SIM, na caixa de dilogo que pergunta se deseja actualizar os 77 registos encontrados.

Figura II.6.54 Caixa de confirmao do processo Consulta Actualizar

II.7
Construir uma interface com Formulrios

O nome formulrio foi atribudo a este objecto do Access por representar, em vrias ocasies, o formulrio de papel que as pessoas utilizam no dia-a-dia para registar informaes.

De facto, podemos criar formulrios em forma de facturas, recibos, extractos bancrios, etc. Contudo, na maioria das vezes, os formulrios que criamos no tm o seu equivalente no mundo real, apenas so usados para aceder informao armazenada na nossa base de dados. Os formulrios constituem uma forma melhorada de apresentar os dados das tabelas e consultas. Pode-se tambm utilizar um formulrio como um painel de navegao que abre outros formulrios e relatrios na base de dados ou como uma caixa de dilogo personalizada que aceita as entradas do utilizador e executa uma aco com base nessas entradas.

7.1 APLICAO DE FORMULRIOS


Um formulrio oferece uma boa apresentao para insero, alterao ou visualizao de registos da nossa base de dados. Na verdade, as ferramentas de construo que o Access nos disponibiliza ajudam a criar formulrios com as seguintes caractersticas:

290

BASES DE DADOS COM MICROSOFT ACCESS 2007

Apresenta os dados de uma forma atractiva com tipos de letra especiais e outros efeitos grficos como cores ou sombras; Assemelha-se a uma folha de papel com os respectivos cabealhos e rodaps; Calcula totais; Permite a execuo de pesquisas de informao com a introduo de critrios de seleco; Cria grficos; Utiliza botes de comando que desencadeiam determinadas aces; Apresenta dados de mais do que uma tabela ou consulta; Automatiza tarefas comuns por ns idealizadas.

7.2 OPES PARA A CRIAO DE FORMULRIOS


Antes de criarmos um formulrio temos que considerar os dados que faro parte do mesmo, ou seja, qual a tabela ou consulta que lhe servir de base. Contudo, podemos ter ainda formulrios que no sejam suportados por uma tabela ou uma consulta, como um painel de navegao que abre outros formulrios e relatrios da base de dados. No Access, os formulrios podem ser construdos de diferentes maneiras e assumir formas muito diversificadas. As diferentes formas de criao de um formulrio so: Formulrio de criao rpida Assistente Formulrio em branco Vista de estrutura

Embora as duas primeiras opes sejam bastante prticas e fceis de utilizar na construo de diversos tipos de formulrios, a verdade que nem sempre so as mais indicadas porque apresentam insuficincias e limitaes que s podero ser colmatadas com a utilizao da VISTA DE ESTRUTURA.

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

291

No que diz respeito aos Modos de visualizao dos formulrios, poderemos ter: VISTA DE ESQUEMA: Esta vista permite visualizar o formulrio com os seus diferentes elementos, incluindo os dados. Com esta vista podemos rearranjar os dados e aplicar diferentes formataes. VISTA DE ESTRUTURA: Enquanto a VISTA DE ESQUEMA providencia a forma mais simples de refinar o nosso formulrio, a VISTA DE ESTRUTURA apresenta a gama completa das potencialidades associadas a este procedimento. Nesta vista, no vemos os dados da base de dados, mas sim elementos (controlos dependentes) que os representam. VISTA DE FORMULRIO: As vistas anteriores so usadas para criarmos os nossos formulrios. Uma vez este processo concludo, a VISTA DE FORMULRIO usada para trabalhar os dados, ou seja, inserir, consultar, filtrar, ordenar, etc.

Quando abrimos um formulrio no PAINEL DE NAVEGAO, fazendo duplo clique sobre o seu nome, este ser aberto no modo VISTA DE FORMULRIO. Contudo, se quisermos abrir o formulrio com outra vista ento devemos seleccionar o formulrio e clicar no boto direito do rato. Desta forma, aparecer um menu rpido que possibilitar outro tipo de escolha.

7.3 FORMULRIO DE CRIAO RPIDA


O FORMULRIO DE CRIAO RPIDA a forma mais simples de criao de um formulrio. Normalmente, utilizado quando necessitamos rapidamente de editar os dados de uma tabela ou de uma consulta. Quando usamos um formulrio para visualizar dados, devemos conectar o formulrio tabela ou consulta que fornecer os dados. Esta forma de criao de formulrio apresenta todos os campos e registos existentes na tabela (ou consulta) previamente escolhida. Contudo, no possvel ao utilizador, durante o processo de criao, fazer qualquer tipo de personalizao.

292

BASES DE DADOS COM MICROSOFT ACCESS 2007

Para criar um FORMULRIO DE CRIAO RPIDA devemos seguir os seguintes passos: 1. No PAINEL DE NAVEGAO, seleccionar a tabela ou consulta que pretendemos usar no formulrio. 2. No separador CRIAR do friso, seleccionar o boto FORMULRIO na seco FORMULRIOS.

Depois de seleccionado o boto FORMULRIO, aparecer automaticamente no ecr um formulrio com a informao da tabela (ou consulta) devidamente organizada e alinhada. Como podemos comprovar na figura II.7.1, os campos de informao so dispostos na mesma ordem pela qual foram inseridos na tabela (ou consulta) original. No entanto, a sua disposio e dimenso podem ser facilmente alteradas, pelos procedimentos apresentados na figura seguinte:

Arrastar os campos de informao para alterar a sequncia

Redimensionar os campos de informao

Figura II.7.1 Procedimentos para ajustar os campos de informao na VISTA DE ESQUEMA

Opcionalmente, podemos editar o texto apresentado nos campos de informao, clicando no seu interior. Podemos tambm alterar o formato do texto para o tornar mais atractivo, seleccionando as opes (tamanho, tipo de letra, alinhamento, cor, etc.) da seco TIPO DE LETRA do friso.

Figura II.7.2 Configurao da seco TIPO DE LETRA existente no friso

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

293

Se pretendermos seleccionar vrios campos de informao de uma s vez, seleccionamos esses campos enquanto pressionamos a tecla CTRL. Desta forma, poderemos atribuir rapidamente o mesmo formato a vrios elementos do formulrio.

Depois de construdo o formulrio, podemos grav-lo atravs do boto GUARDAR. Na prxima vez que o abrirmos poderemos constatar que o Access apresentar o formulrio com as mais recentes alteraes aos dados.

7.4 FORMULRIOS USANDO O ASSISTENTE


O ASSISTENTE DE FORMULRIOS permite criar automaticamente os formulrios com base num conjunto de opes, como a seleco de campos das tabelas ou consultas e criao de um layout personalizado. Contudo, as questes colocadas no assistente so um pouco bsicas, fazendo com que este processo seja simplesmente considerado como um bom meio para comear a construir formulrios.

7.4.1 Criao de um novo formulrio com Assistente


1. No friso, seleccionamos o separador CRIAR e, posteriormente, premimos o boto MAIS FORMULRIOS que se encontra na seco FORMULRIOS. 2. No menu associado a esta opo seleccionamos a opo ASSISTENTE DE FORMULRIOS. 3. Na caixa de dilogo que aparece no ecr seleccionamos a origem dos dados para o formulrio. Assim sendo, na caixa TABELA/ CONSULTA seleccionamos a tabela ou consulta que contm os dados que sero apresentados no formulrio.

294

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.7.3 Primeiro quadro do assistente usado para possibilitar a escolha de campos a inserir no formulrio

4. Inserimos campo a campo atravs do boto pos atravs do boto .

, ou todos os cam-

5. Escolhemos o esquema de apresentao dos dados: Colunas, Tabela, Folha de Dados ou Justificado.

Figura II.7.4 Quadro do assistente usado para possibilitar a escolha do esquema do formulrio

6. Escolhemos o estilo de apresentao grfica que configura os dados e o fundo do formulrio. 7. Finalmente, introduzimos o nome a dar ao formulrio.

7.5 FORMULRIOS EM BRANCO


Em alternativa aos processos de criao anteriormente abordados, podemos usar a ferramenta do Access FORMULRIO EM BRANCO. Este processo tambm pode ser bastante rpido e fcil, especialmente quando planeamos construir um formulrio com poucos campos. Os procedimentos seguintes explicam como podemos criar um formulrio com esta funcionalidade:

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

295

1. No friso, seleccionar o separador CRIAR e, em seguida, premir o boto FORMULRIO EM BRANCO que se encontra na seco FORMULRIOS. 2. Em seguida, arrastar do Painel LISTA DE CAMPOS o(s) campo(s) desejado(s) para a rea em branco do formulrio (notar que, neste momento, estamos a trabalhar com o formulrio na VISTA DE ESQUEMA). 3. Finalmente, podemos alterar a disposio dos campos. Atravs do boto podemos dispor os campos em coluna substituindo a sua disposio original em linha.

Figura II.7.5 Funcionalidade do Access para alterar a disposio dos campos

Se o Painel LISTA DE CAMPOS no estiver visvel, ento teremos que premir o boto ADICIONAR CAMPOS EXISTENTES que se encontra na seco CONTROLOS.

7.6 FORMULRIOS USANDO A VISTA DE ESTRUTURA


A construo de formulrios atravs da VISTA DE ESTRUTURA transporta-nos para um nvel superior onde ser possvel utilizar um conjunto alargado de tcnicas e ferramentas. Na verdade, atravs desta vista temos liberdade total para construir mo todos os centmetros quadrados do nosso formulrio.

296

BASES DE DADOS COM MICROSOFT ACCESS 2007

7.6.1 Criao de um formulrio com a VISTA DE ESTRUTURA


1. No friso, seleccionar o separador CRIAR e, posteriormente, premir o boto ESTRUTURA DE FORMULRIO que se encontra na seco FORMULRIOS. 2. Em seguida, arrastar do Painel LISTA DE CAMPOS o(s) campo(s) desejado(s) para a rea em branco do formulrio.

Figura II.7.6 Configurao do Painel LISTA DE CAMPOS

As linhas verticais e horizontais da grelha que aparecem apenas na VISTA DE ESTRUTURA do formulrio so usadas para ajudar o utilizador a inserir os diferentes componentes do relatrio de uma forma precisa, alinhada e organizada. De salientar que o modo VISTA DE ESTRUTURA uma forma diferente de olharmos para um formulrio. Ao contrrio do VISTA DE ESQUEMA, nesta vista no visualizamos a informao da nossa base de dados, mas sim referncias aos campos da mesma. Claro que enquanto trabalhamos com o formulrio podemos facilmente alternar entre estas duas vistas, seleccionando um dos botes apresentados na BARRA DE ESTADO, ou seleccionando a opo respectiva no menu VISTA.

Figura II.7.7 Opes para alterar a vista do Formulrio

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

297

7.7 SECES DO FORMULRIO


O modo VISTA DE ESTRUTURA dos formulrios apresenta um conjunto de zonas de introduo de controlos que se assemelham a uma folha de papel com os respectivos corpo, cabealho e rodap. Contudo, quando um formulrio criado de novo, apenas a seco DETALHE apresentada, pois esta que mostra os registos da base de dados.

Figura II.7.8 VISTA DE ESTRUTURA de um formulrio com a apresentao das seces respectivas

CABEALHO DO FORMULRIO Esta seco normalmente usada para o ttulo do formulrio, data ou para botes de comando que abram formulrios relacionados. O seu contedo ir aparecer no topo do formulrio quando este estiver activo. DETALHE o corpo do formulrio. Mostra principalmente os comtrolos que representam os registos. Podemos visualizar um registo no ecr, um em cada pgina, ou vrios numa s. RODAP DO FORMULRIO Mostra informao do tipo: instrues para utilizao do formulrio, botes de comando, controlos ilimitados que aceitem insero. O seu contedo ir aparecer na parte inferior do formulrio quando este estiver activo. Este tipo de rodap no aparece na vista de Folha de Dados.

7.7.1 Accionar as seces do Formulrio


O formato original do formulrio apresenta apenas a seco de detalhe. Contudo, sempre que desejarmos aceder s seces de CABEALHO e RODAP, devemos premir o boto direito do rato e seleccionar a opo CABEALHO/RODAP DE FORMULRIO do menu rpido que aparece no ecr.

298

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.7.9 Menu que contm o comando que permite adicionar as seces do formulrio

7.7.2 Alterar o tamanho de uma seco


Para que o tamanho de cada seco fique com a dimenso que pretendemos, devemos colocar o ponteiro do rato numa das barras que delimitam as seces do formulrio. Em seguida, movemos a cruz que representa o ponteiro para cima ou para baixo por forma a ajustar o tamanho da seco.

Figura II.7.10 Processo de redimensionamento das seces do Formulrio

7.7.3 Seleccionar as propriedades de uma seco ou do prprio formulrio


As propriedades de um formulrio podem ser usadas para a alterao de uma seco. Vrias caractersticas so apresentadas nestas propriedades, tais como cores, nome, visibilidade, etc. Para aceder s propriedades de uma seco devemos premir o boto direito do rato e seleccionar a opo PROPRIEDADES do menu rpido que aparece no ecr.

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

299

Figura II.7.11 Menu que contm o comando que permite seleccionar as propriedades das seces do formulrio

7.8 CONTROLOS NUM FORMULRIO


7.8.1 Controlos dependentes, independentes e de clculo
Os controlos so os objectos que inserimos no interior de um formulrio. Estes objectos tm normalmente finalidades e caractersticas diferentes, por isso, quando se cria um controlo temos que considerar a informao que ele representar. Essa informao pode ser referente a dados da base de dados, instrues, legendas ou a valores de clculo.
Controlo independente com formato tipo texto

Controlos dependentes

Figura II.7.12 Formulrio com diferentes tipos de controlos

Controlo dependente um controlo cujo tipo de dados um campo de uma tabela ou consulta. Usamos estes controlos para inserir e alterar valores dos campos. Esses valores podem ser texto, datas, nmeros, figuras ou grficos. A caixa de texto o controlo dependente mais comum.

300

BASES DE DADOS COM MICROSOFT ACCESS 2007

Controlo independente um controlo que no est associado a campos ou expresses). utilizado para mostrar informao, linhas, rectngulos e figuras. Controlo de Clculo um controlo cujo tipo de dados uma expresso. Mais que um campo um controlo de clculo. Este controlo contempla expresses que podem combinar operadores, nomes de controlos, nomes de campos, funes e constantes.

7.8.2 Inserir campos na rea do formulrio


Para inserir um campo clicamos sobre ele na caixa de listagem e arrastamo-lo para a posio desejada. Um campo inserido num formulrio tem duas componentes: O nome do campo (que pode ser alterado) e o espao (rectangular) onde so apresentados os dados do campo.

Figura II.7.13 Processo de insero de um campo de informao na rea do formulrio

Com o ponteiro do rato podemos clicar sobre um campo inserido no formulrio e manipul-lo conforme desejarmos. Podemos arrast-lo para outra posio, expandir ou reduzir as respectivas caixas.

7.8.3 Criar outros controlos


No friso, seleccionar o separador ESTRUTURA e, em seguida, premir um dos botes que se encontram na seco CONTROLOS. Se quisermos criar controlos independentes ou de clculo, normalmente usamos a respectiva FOLHA DAS PROPRIEDADES que tem um papel fundamental para a sua personalizao.

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

301

Caixa de combinao Caixa de listagem

Grupo de opes objectos Rectngulo Botes de alternar Linha Quebra de pgina Seleccionar Assistentes de controlo Mais controlos

Subformulrio/Subrelatrio Moldura de objecto dependente Boto de opes

Imagem Controlo separador Caixa de verificao

Figura II.7.14 Configurao da seco CONTROLOS existente no friso

7.8.4 Criar controlos que calculem valores


Quando desejamos mostrar um valor que seja o resultado de um clculo, usa-se uma expresso como tipo de dados para um controlo. Cada vez que abrimos o formulrio o Access calcula os valores correctos com base nos ltimos dados disponveis e actualizados (ver seco 7.8.10). Para criar uma caixa de texto calculado devemos: 1. No friso, seleccionar o separador ESTRUTURA e, de seguida, premir o boto CAIXA DE TEXTO que se encontra na seco CONTROLOS. 2. Inserir a CAIXA DE TEXTO no formulrio clicando no seu interior e, em seguida, ajustar para o tamanho desejado. 3. Colocar o ponteiro do rato dentro da CAIXA DE TEXTO, clicando no seu interior. 4. Escrever o sinal de igual seguido da expresso que faz parte desta CAIXA DE TEXTO.

302

BASES DE DADOS COM MICROSOFT ACCESS 2007

7.8.5 Criar controlos tipo etiqueta


As etiquetas so controlos utilizados para mostrar um texto descritivo como ttulo, legenda ou resumo de instrues. As etiquetas no mostram valores de campos ou expresses e so sempre ilimitadas. So tambm estticas, ou seja, nunca se alteram sempre que se abre um formulrio, ao contrrio dos registos ou valores calculados. A etiqueta pode servir tanto de etiqueta de um campo como de etiqueta de uma caixa de texto. Normalmente os controlos utilizados para mostrar texto devem apresentar o mesmo tipo de formatao. Assim sendo, podemos seleccionar (com o rato) vrios controlos ao mesmo tempo pressionando a tecla CTRL e, em seguida, aplicar um formato (tamanho, cor, tipo de letra, etc.) que seja aplicado a todos.

Como criar uma etiqueta: 1. No friso, seleccionar o separador ESTRUTURA e premir o boto RTULO que se encontra na seco CONTROLOS. 2. Criar uma etiqueta, transportando-a para o local pretendido no formulrio. Como ligar uma etiqueta a um controlo 1. No friso, seleccionar o separador ESTRUTURA e, posteriormente, premir o boto RTULO que se encontra na seco CONTROLOS. 2. Inserir a etiqueta no formulrio, clicando no seu interior. 3. No boto que aparece posicionado esquerda do controlo, seleccionar a opo ASSOCIAR RTULO A UM CONTROLO

Figura II.7.15 Processo de associao de um rtulo a um CONTROLO na VISTA DE ESTRUTURA do formulrio

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

303

4. Na janela que aparece no ecr, seleccionar o campo do formulrio ao qual ser associada a etiqueta.

Figura II.7.16 Caixa de dilogo que possibilita a escolha de um campo para associar a um rtulo

5. Finalmente, clicar em OK.

7.8.6 Alterar as propriedades de um controlo j existente


Depois de criarmos um formulrio podemos alterar as propriedades de alguns controlos. Para mudar as propriedades de um controlo existente devemos: 1. No friso, seleccionar o separador ESTRUTURA e, s depois, premir o boto FOLHA DE PROPRIEDADES que se encontra na seco FERRAMENTAS.

Figura II.7.17 Processo de alterao das propriedades do CONTROLO nome

2. No topo do quadro das propriedades pode-se escolher a categoria de propriedades que se deseja configurar. As diferentes categorias de propriedades so apresentadas na tabela seguinte:

304

BASES DE DADOS COM MICROSOFT ACCESS 2007

Propriedade Tudo Dados

Descrio Mostra todas as propriedades do controlo. Determina as caractersticas dos dados que so mostrados no controlo, como o valor por omisso, o nmero de casas decimais, o formato dos dados, etc. Especifica uma macro ou procedimentos (procedures) que o Access executa quando a aco decorre. Define as caractersticas de aparncia do controlo, como o tamanho ou cor do controlo. Mostra caractersticas adicionais do controlo, como o nome, a descrio que aparece no rodap, etc.

Acontecimentos

Formato

Outra

Figura II.7.18 Tabela com a descrio das diferentes categorias de propriedades

3. Na FOLHA DE PROPRIEDADES, seleccionar a propriedade que se deseja alterar ou inserir (caso esta esteja em branco). Pode aparecer uma lista de opes para esta propriedade ou, ento, pode existir um valor por omisso que poder ser alterado.

Caso queiramos alterar as propriedades de um conjunto de controlos, basta seleccionar esse conjunto e proceder da mesma forma que se procede para a alterao das propriedades de um nico controlo.

7.8.7 Grupo de Opes


Um GRUPO DE OPES um controlo que tem como objectivo facilitar a escolha de dados no formulrio. As escolhas feitas pelo utilizador podem ser feitas atravs de um clique do rato, em vez de digitar um conjunto de caracteres. Podemos usar um GRUPO DE OPES para um conjunto limitado de alternativas que ficam necessariamente associadas a um campo de uma tabela. As alternativas de um GRUPO DE OPES podem ser apresentadas em BOTES DE OPO, CAIXAS DE VERIFICAO ou BOTES DE ALTERNAR, embora apenas uma possa ser activada.

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

305

Como exemplo, vamos construir um GRUPO DE OPES no formulrio Revendedores. Neste sentido, vamos facilitar o processo de escolha das designaes das Regies de onde so originrios os Revendedores.

Como criar um Grupo de Opes com o assistente 1. Abrir o Formulrio Revendedores em VISTA DE ESTRUTURA e, em seguida, eliminar o controlo que representa a Regio (este controlo ir ser substitudo pelo GRUPO DE OPES que vamos criar). 2. No friso, seleccionar o separador ESTRUTURA e, posteriormente, premir o boto ASSISTENTE DE CONTROLOS que se encontra na seco CONTROLOS. 3. No mesmo separador premir o boto GRUPO DE OPES que se encontra na seco CONTROLOS. 4. Desenhar um rectngulo na rea desejada do formulrio. Automaticamente o Assistente do GRUPO DE OPES ir ser despoletado. Em alternativa, arrastar para a rea do formulrio o campo Regio, do painel LISTA DE CAMPOS. 5. Na primeira caixa de dilogo deve-se digitar os nomes que pretendemos para cada opo. Considerando o nosso exemplo, digitamos as trs possibilidades para a Regio do Revendedor.

Figura II.7.19 Assistente do GRUPO DE OPES que permite a entrada do nome das opes

6. Na caixa de dilogo seguinte, indicar a opo que deve estar seleccionada por predefinio. No nosso exemplo, no pretendemos que isso acontea, pelo que seleccionamos a segunda opo.

306

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.7.20 Assistente do GRUPO DE OPES que permite a escolha da opo predefinida

7. Na caixa de dilogo, indicar quais os valores que ficaro armazenados na tabela, consoante a opo seleccionada pelo utilizador.

Figura II.7.21 Assistente do GRUPO DE OPES que permite a introduo de valores para as opes

8. Em seguida, indicar o nome do campo da tabela que ir armazenar o valor seleccionado. O campo que dever armazenar a opo escolhida, no nosso exemplo, o campo Regio.

Figura II.7.22 Assistente do GRUPO DE OPES que permite a escolha do campo que ir armazenar os dados

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

307

9. Escolher o estilo que ir estar associado ao GRUPO DE OPES, tanto ao nvel do formato dos botes como ao nvel do contorno exterior.

Figura II.7.23 Assistente do GRUPO DE OPES que permite a escolha do estilo associado ao grupo de opes

10. Na ltima caixa de dilogo, indicar o nome que ir caracterizar o GRUPO DE OPES e premir o boto CONCLUIR. Depois de concluir o processo de criao do GRUPO DE OPES, verificar se o funcionamento est correcto e se o aspecto respeita as opes escolhidas.

Figura II.7.24 Aspecto final de um GRUPO DE OPES com trs opes

7.8.8 Caixa de Listagem e Caixa de Combinao


As CAIXAS DE LISTAGEM e as CAIXAS DE COMBINAO so utilizadas nos formulrios para disponibilizarem uma lista de opes. Estes controlos tm funes muito semelhantes e podem-se revelar muito teis em procuras rpidas de informao. A escolha por um dos controlos depende do tipo de informao que desejamos mostrar nas linhas da lista. Com a ajuda do assistente podemos escolher uma de trs opes para definir a informao a apresentar nas linhas das caixas, nomeadamente:

308

BASES DE DADOS COM MICROSOFT ACCESS 2007

Podemos mostrar os dados directamente de uma tabela ou de uma consulta. Podemos inserir os valores exactos que desejamos mostrar na lista de valores. Podemos ainda apresentar os dados a partir de um ou mais campos de uma tabela, em que o valor seleccionado ir fazer com que os outros registos do formulrio sejam automaticamente actualizados.

Como exemplo, vamos construir uma CAIXA DE COMBINAO ou de LISTAGEM que apresente as designaes das coleces de Livros editadas e que facilite a respectiva escolha na altura do registo de um novo livro.

Como criar uma CAIXA DE LISTAGEM ou CAIXA DE COMBINAO usando o assistente 1. Abrir o Formulrio Livros em VISTA DE ESTRUTURA e, em seguida, eliminar o controlo que representa o cdigo da coleco (este controlo ir ser substitudo pela CAIXA DE COMBINAO ou de LISTAGEM que vamos criar). 2. No friso, seleccionar o separador ESTRUTURA e, posteriormente, premir o boto ASSISTENTE DE CONTROLOS, que se encontra na seco CONTROLOS. 3. No mesmo separador do friso, seleccionar o boto COMBINAO ou CONTROLOS. CAIXA DE

CAIXA DE LISTAGEM que se encontra na seco

4. Desenhar um rectngulo na rea desejada do formulrio. Automaticamente o Assistente da CAIXA DE LISTAGEM ou CAIXA DE COMBINAO ir ser executado. Em alternativa, arrastar para a rea do Formulrio o campo CodColeco do Painel LISTA DE CAMPOS 5. Na primeira caixa de dilogo, indicar a origem dos dados a apresentar na CAIXA DE COMBINAO ou de LISTAGEM. Considerando o nosso exemplo, escolher a primeira opo.

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

309

Figura II.7.25 Assistente da CAIXA DE COMBINAO que permite a entrada da origem dos dados

6. Nas caixas de dilogo seguintes indicar o nome da tabela ou da consulta onde os valores a apresentar na CAIXA DE COMBINAO esto armazenados.

Figura II.7.26 Assistente da CAIXA DE COMBINAO que permite a escolha da tabela ou consulta e respectivos campos

7. Escolher a sequncia de ordenao que pretende para a lista.

Figura II.7.27 Assistente da CAIXA DE COMBINAO que possibilita a escolha de um campo para a ordenao da lista

8. Em seguida, confirmar os dados a apresentar na CAIXA DE COMBINAO e ajustar a largura da coluna.

310

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.7.28 Assistente da CAIXA DE COMBINAO que possibilita a correco da largura da coluna da lista

9. Na caixa de dilogo seguinte, indicar o nome do campo da tabela ou da consulta que ir armazenar o valor seleccionado.

Figura II.7.29 Assistente da CAIXA DE COMBINAO que sugere a escolha do campo que ir armazenar os dados

10. Finalmente, indicar o nome que ir caracterizar a CAIXA DE COMBINAO e premir o boto CONCLUIR.

Depois de concluir o processo de criao da CAIXA DE COMBINAO ou de LISTAGEM, podemos usufruir de um formulrio que nos permita localizar de uma forma fcil e rpida a descrio das coleces de livros editados.

Figura II.7.30 Aspecto final de uma CAIXA DE COMBINAO e de uma CAIXA DE LISTAGEM com onze opes

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

311

A utilizao destas ferramentas nem sempre se mostra til quando os valores listados tm valores duplicados. Nestes casos ser conveniente inserir na lista no apenas um campo, mas sim dois campos de informao.

7.8.9 Subformulrios
Uma base de dados devidamente estruturada contempla um conjunto de tabelas que se relacionam entre si. Os SUBFORMULRIOS so objectos que podem tirar partido dessas relaes para apresentar informao ligada. Com efeito, um SUBFORMULRIO usado para incluir num FORMULRIO informao de mais do que uma tabela. Um SUBFORMULRIO um formulrio dentro de outro formulrio. No Access o primeiro formulrio chamado formulrio principal e entre estes dois formulrios indispensvel que haja uma ligao, normalmente uma relao do tipo um-para-muitos. Como exemplo, vamos construir um SUBFORMULRIO que apresente a informao dos livros editados por cada Autor. O SUBFORMULRIO a criar ter de estar includo no formulrio principal da ficha do Autor. Neste exemplo, iremos utilizar o Cod. Autor como campo de ligao entre os Autores e os Livros por eles editados.

Como criar um Subformulrio usando o assistente 1. Abrir o formulrio Autores em VISTA DE ESTRUTURA. 2. No friso, seleccionar o separador ESTRUTURA e, posteriormente, premir o boto ASSISTENTE DE CONTROLOS que se encontra na seco CONTROLOS. 3. Ainda no separador ESTRUTURA, premir o boto SUBFORMULRIO que se encontra na seco CONTROLOS. 4. Desenhar um rectngulo na rea desejada do formulrio (normalmente disponibiliza-se uma rea considervel na zona inferior do formulrio principal). Automaticamente o Assistente do SUBFORMULRIO ir ser despoletado.

312

BASES DE DADOS COM MICROSOFT ACCESS 2007

5. Na primeira caixa de dilogo, indicar que se vai utilizar uma tabela e no uma consulta para a criao do SUBFORMULRIO.

Figura II.7.31 Assistente de SUBFORMULRIOS que sugere a entrada da origem dos dados

6. Em seguida, indicar qual a tabela e quais os campos a incluir no SUBFORMULRIO. Para o nosso exemplo, devemos seleccionar os campos ISBN e Royalties (tabela: Autores/Livros) e Titulo e DataEdio (tabela: Livros).

Figura II.7.32 Assistente de SUBFORMULRIOS que sugere a escolha da tabela ou consulta e respectivos campos

7. Na caixa de dilogo seguinte, o Access ir questionar qual o campo de ligao entre o formulrio e o SUBFORMULRIO. No nosso exemplo, devemos seleccionar a ligao reconhecida pelo Access.

Figura II.7.33 Assistente de SUBFORMULRIOS que permite definir o tipo de ligao que ser feita

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

313

7. Finalmente, na ltima caixa de dilogo, indicar o nome que ir identificar o SUBFORMULRIO e premir o boto CONCLUIR.

Depois de concluir o processo de criao do SUBFORMULRIO, podemos usufruir de um formulrio que nos permita localizar facilmente os livros editados por cada Autor, tal como se demonstra na figura.

Figura II.7.34 Aspecto final de um formulrio Ficha de Autores com um SUBFORMULRIO que apresenta os respectivos livros editados

7.8.10 Clculos num formulrio


Para criar um campo calculado no FORMULRIO vamos utilizar como exemplo o clculo dos dias de edio de um determinado livro, ou seja, vamos impor o clculo do nmero de dias entre a data de edio e o dia de hoje.

Criao de um clculo no FORMULRIO: 1. Abrir o formulrio Livros em VISTA DE ESTRUTURA. 2. No friso, seleccionar o separador ESTRUTURA e, posteriormente, premir o boto CAIXA DE TEXTO que se encontra na seco CONTROLOS.

Figura II.7.35 Insero de uma CAIXA DE TEXTO na rea de detalhe de um formulrio

314

BASES DE DADOS COM MICROSOFT ACCESS 2007

3. Activar a CAIXA DE PROPRIEDADES. Alterar as propriedades Nome, Origem de controlo, Formatar e Casas decimais de acordo com a figura.

Figura II.7.36 Alterao das propriedades Nome, Origem de controlo, formatar e casas decimais

4. Ainda na CAIXA DE PROPRIEDADES, seleccionar o RTULO da CAIXA DE TEXTO e alterar a sua propriedade Legenda para Dias de Edio. 5. Gravar as alteraes no FORMULRIO e activ-lo em modo VISTA DE FORMULRIO. Ser apresentado o conjunto de campos referentes informao de cada livro, bem como o novo campo calculado Dias de edio.

Figura II.7.37 Aspecto final de um clculo efectuado para apresentar o nmero de dias de edio de um livro

7.8.11 Clculos num subformulrio


Para criar um campo calculado no SUBFORMULRIO vamos utilizar como exemplo um campo que calcula a mdia das comisses atribudas aos autores de cada livro editado.

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

315

Criao de um clculo no SUBFORMULRIO: 1. Abrir o formulrio Autores em VISTA DE ESTRUTURA e, posteriormente, seleccionar o subformulrio Autores/Livro. 2. Na sua rea interior, abrir a zona RODAP DO FORMULRIO e inserir o controlo que se encontra no friso (seleccionar o separador ESTRUTURA, em seguida premir o boto CAIXA DE TEXTO que se encontra na seco CONTROLOS).

Figura II.7.38 Insero de uma CAIXA DE TEXTO na rea de rodap de um formulrio

3. Activar a FOLHA DE PROPRIEDADES. Alterar as propriedades Nome, Origem de controlo e Formatar de acordo com a figura.

Figura II.7.39 Alterao das propriedades Nome, Origem de controlo e formatar

4. Ainda na FOLHA DE PROPRIEDADES, seleccionar o RTULO da CAIXA DE TEXTO e alterar a sua propriedade legenda para Mdia dos Royalties. 5. Seleccionar o canto superior esquerdo do SUBFORMULRIO e carregar no boto direito do rato. Activar a CAIXA DE PROPRIEDADES do SUBFORMULRIO e alterar a propriedade Vista predefinida.

316

BASES DE DADOS COM MICROSOFT ACCESS 2007

,
Figura II.7.40 Processo de activao da CAIXA DE PROPRIEDADES do SUBFORMULRIO e posterior alterao da propriedade Vista predefinida

6. Gravar as alteraes no formulrio e activ-lo em modo VISTA DE FORMULRIO. Confirmar se o valor apresentado reflecte a mdia dos royalties dos diferentes livros editados por um Autor.

Figura II.7.41 Aspecto final de um clculo efectuado para apresentar a mdia dos Royalties de um Autor atribudo aos diferentes livros editados

Se num Subformulrio a disposio dos controlos for EMPILHADA, na maioria das vezes ser conveniente alterar para uma disposio TABULAR. Neste caso, devemos seleccionar todos os controlos e, em seguida, premir o boto direito do rato. No menu rpido escolher a opo ESQUEMA e posteriormente a opo TABULAR.

Figura II.7.42 Opes do menu rpido para alterar a disposio dos campos de Empilhada para Tabular

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

317

7.8.12 Botes de comandos


As aces que um BOTO DE COMANDO pode executar so muito diversificadas. Se optarmos pelo Assistente na criao do BOTO DE COMANDO, vamos deparar com um conjunto de categorias, cada uma das quais apresentando um conjunto de aces. Contudo, podemos ainda alargar o leque de escolhas, alterando as propriedades deste controlo ou recorrendo configurao de uma macro. Normalmente usamos um BOTO DE COMANDO num formulrio para iniciar uma aco. Podemos criar assim um BOTO DE COMANDO para aumentar a rapidez de execuo de tarefas. Como exemplo, vamos criar no formulrio Autores um boto que possibilite, atravs de um clique, fechar este formulrio.

Criao de um boto de comando com Assistente: 1. Abrir o formulrio Autores em VISTA DE ESTRUTURA. 2. No friso, seleccionar o separador ESTRUTURA e, posteriormente, premir o boto ASSISTENTE DE CONTROLOS que se encontra na seco CONTROLOS. 3. No mesmo separador premir o boto BOTO que se encontra na seco CONTROLOS. 4. Premir com o rato no local onde se deseja colocar o canto superior esquerdo do BOTO DE COMANDO. Automaticamente o Assistente ir ser executado. 5. Na caixa de dilogo possvel escolher a CATEGORIA e a respectiva ACO que o boto ir desempenhar. No nosso exemplo devemos seleccionar a CATEGORIA Operaes de Formulrios e, posteriormente, seleccionar a ACO Fechar Formulrio.

Figura II.7.43 Assistente de BOTES DE COMANDO que sugere a seleco do tipo de aco que deve ter o boto

318

BASES DE DADOS COM MICROSOFT ACCESS 2007

6. Na caixa de dilogo seguinte o Access sugere a escolha de uma imagem ou texto que caracterize o boto. No nosso exemplo vamos seleccionar o texto Fechar formulrio.

Figura II.7.44 Assistente de BOTES DE COMANDO que sugere a escolha do aspecto associado ao boto

6. Finalmente, na ltima caixa de dilogo, indicar o nome que ir identificar o BOTO DE COMANDO e premir o boto CONCLUIR. possvel associar ao boto uma imagem de vrios formatos (.bmp, .jpeg, .gif). Contudo, deve ser uma imagem de tamanho reduzido para se enquadrar nas dimenses do boto.

7.8.13 Quebras de pgina


Se acharmos conveniente associar uma quebra de pgina a um formulrio, para que determinada informao (que esteja abaixo da quebra) passe para a pgina seguinte, devemos realizar esta tarefa com o recurso ao controlo QUEBRA DE PGINA. Como introduzir uma quebra de pgina num formulrio: 1. Abrir o formulrio com a VISTA DE ESTRUTURA. 2. No friso, seleccionar o separador ESTRUTURA e, posteriormente, premir o boto QUEBRA DE PGINA, que se encontra na seco CONTROLOS. 3. Premir com o rato no local do formulrio onde desejamos colocar a quebra de pgina. O Access assinala a existncia desta quebra com uma pequena linha no lado esquerdo do formulrio.

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

319

7.8.14 Moldura de objecto dependente e independente


Um objecto uma unidade de informao criada e manipulada numa aplicao do Windows. Um Objecto de Ligao Embutida (Object Linking Embedding OLE) pode ser toda a informao de um ficheiro ou apenas parte dele. Na realidade, o OLE no s d acesso a objectos criados noutras aplicaes como edita esses objectos directamente para um formulrio ou para um relatrio. No que diz respeito manipulao de objectos, temos de considerar os conceitos embutido e ligado. Quando embutimos um objecto num formulrio ou num relatrio este fica a fazer parte da base de dados (.accbd). Um objecto ligado, por outro lado, fica apenas representado num formulrio ou num relatrio, sendo armazenado no ficheiro em que foi criado. Quando realizamos o acto de embutir ou ligar um objecto para um formulrio ou para um relatrio, este mostra um controlo chamado objecto tipo figura. Na verdade, existem dois tipos destes objectos: OBJECTOS INDEPENDENTES Usados quando queremos um objecto OLE, num formulrio ou num relatrio, sem que este seja apresentado como campo da tabela que lhe serve de base. O objecto permanece constante sempre que percorremos os registos do formulrio ou do relatrio. OBJECTOS DEPENDENTES Usados quando queremos que um objecto OLE, num formulrio ou num relatrio, seja armazenado num campo da tabela que lhe serve de base. apresentado um objecto diferente medida que percorremos os registos do formulrio ou do relatrio

Para ligar ou embutir um objecto novo numa estrutura de objecto independente devemos: 1. Abrir o formulrio com a VISTA DE ESTRUTURA. 2. No friso, seleccionamos o separador ESTRUTURA e, posteriormente, premimos o boto MOLDURA DE OBJECTO INDEPENDENTE que se encontra na seco CONTROLOS.

320

BASES DE DADOS COM MICROSOFT ACCESS 2007

4. No formulrio, premimos com o rato no local onde pretendemos colocar o canto superior esquerdo da estrutura de objecto (este posicionamento pode ser alterado). 5. Seleccionamos a opo Criar novo. Na lista TIPO DE OBJECTO, seleccionamos o tipo de objecto que desejamos inserir (figura II.7. 45).

Figura II.7.45 Janela para a definio do novo objecto que desejamos inserir no formulrio

6. Se desejarmos mostrar o objecto no formulrio como cone, em vez de objecto propriamente dito, devemos seleccionar a opo Mostrar como cone. 7. Premir OK. 8. Criar o objecto (no nosso exemplo, vamos criar uma folha de clculo). 9. Para voltar ao Access, escolhemos a opo SAIR no menu FICHEIRO da aplicao onde o objecto foi criado. Se aparecer a mensagem que pergunta se desejamos fazer a transformao (update) do objecto, a resposta deve ser SIM. 10. Para ser possvel abrir o documento atravs de um duplo clique teremos de alterar a sua propriedade ACTIVADO para Sim. Por outro lado, para ligar ou embutir um objecto existente numa estrutura de objecto independente devemos: 1. Abrir o formulrio com a VISTA DE ESTRUTURA. 2. No friso, seleccionamos o separador ESTRUTURA e, posteriormente, premimos o boto MOLDURA DE OBJECTO INDEPENDENTE que se encontra na seco CONTROLOS.

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

321

3. No formulrio, premimos com o rato no local onde ir ser colocado o canto superior esquerdo da estrutura de objecto (este posicionamento pode ser alterado). 4. Na janela da figura II.7.46 seleccionamos o boto Criar a partir do ficheiro.

Figura II.7.46 Janela para a definio de um objecto j existente que desejamos inserir no formulrio

5. Na janela da figura II.7.46 inserirmos o nome e o caminho (path do campo que contm o objecto que se deseja embutir ou ligar) em FICHEIRO. Tambm se pode premir o boto PROCURAR para seleccionar o campo desejado. 6. Se desejarmos ligar um objecto em vez de o embutir, seleccionamos a opo Ligar. 7. Se desejamos mostrar o objecto no formulrio como cone, em vez de objecto propriamente dito, devemos seleccionar a opo Mostrar como cone. 8. Premir OK. 9. Para ser possvel abrir o documento atravs de um duplo clique, teremos de alterar a sua propriedade ACTIVADO para Sim.

7.9 TABELAS DINMICAS


Os formulrios esto preparados para comportar objectos que permitem realizar aces de anlise de dados de forma rpida e flexvel. De facto, atravs dos GRFICOS DINMICOS e das TABELAS DINMICAS possvel analisar os dados da nossa base de dados com base em estruturas muito simples e manuseveis.

322

BASES DE DADOS COM MICROSOFT ACCESS 2007

Como exemplo das funcionalidades associadas anlise de dados vamos criar uma TABELA DINMICA que fornea informao sobre as vendas de cada livro da Editora. Assim sendo, vamos comear por: 1. Seleccionar a origem dos dados a analisar. No nosso exemplo, seleccionamos a consulta Valor Vendas, existente no PAINEL DE NAVEGAO. 2. No separador CRIAR, clicamos no boto MAIS FORMULRIOS e, posteriormente, seleccionamos TABELAS DINMICAS. 3. Ser visualizada a VISTA DE ESTRUTURA da Tabela Dinmica. Com o auxlio do rato arrastamos e largamos os campos (da janela LISTA DE CAMPOS) para as respectivas zonas.

Figura II.7.47 VISTA DE ESTRUTURA da Tabela Dinmica

4. No nosso exemplo pretendemos, numa primeira anlise, cruzar os ttulos dos livros (linhas) com as vendas (dados do detalhe) anuais (colunas).

Figura II.7.48 Insero de campos na Tabela Dinmica

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

323

5. Se pretendemos alterar os clculos associados aos campos inseridos devemos seleccionar a zona de detalhe da nossa tabela e posteriormente accionar o boto CLCULO AUTOMTICO.

Figura II.7.49 Insero de clculos na Tabela Dinmica

Nveis de visualizao de dados A excelente flexibilidade desta ferramenta permite, apenas com o auxlio do rato, incrementar ou diminuir os nveis de visualizao de dados. Com efeito, tanto para as linhas como para as colunas, podemos utilizar os e para aumentar ou diminuir o detalhe da informao a apresinais sentar na tabela.

Filtragem dos campos Podemos tambm, de uma forma directa, filtrar a informao a apresentar na tabela. Para isso acontecer, devemos simplesmente seleccionar a caixa de combinao associada a um dos campos cuja informao se pretende filtrar, tal como se apresenta na seguinte figura.

324

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.7.50 Filtragem dos campos na Tabela Dinmica

7.10 EFEITOS ESPECIAIS DE CONSTRUO


Existem vrios efeitos grficos que podem ajudar a melhorar o aspecto de um formulrio, nomeadamente rectngulo, linha, imagem, cores, linhas limtrofes, etc. No obstante, todos estes efeitos poderem ser formatados com base em procedimentos que so comuns a todas as aplicaes do Microsoft Office vamos exemplificar alguns destes procedimentos recorrendo s funcionalidades da nova verso do Access.

7.10.1 Como obter uma grande seleco de cores


A formatao das cores dos controlos representados nos formulrios pode ser feita de uma forma rpida atravs das opes disponveis na seco TIPO DE LETRA do friso. Contudo, se desejarmos aceder a um conjunto mais alargado de cores devemos aceder s propriedades do controlo, tal como se descreve a seguir. 1. Seleccionamos os controlos ou as suas seces, aos quais desejamos atribuir uma cor. 2. Abrimos a janela de PROPRIEDADES. 3. Seleccionamos a propriedade que reflecte as cores que pretendemos alterar (ex. cor dos limites, cor do fundo, cor do primeiro plano) 4. Premimos o boto dade. Compilar depois de ter escolhido a proprie-

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

325

5. Escolhemos a cor desejada. 6. Premimos o boto OK.

7.10.2 Formatao dos controlos do Formulrio


No Access possvel utilizar um conjunto de formataes predefinidas que permitem melhorar o aspecto do nosso formulrio. Esta melhoria passa pela aplicao de uma determinada cor de fundo, tipos de letra, limites ou at formatos especficos para cada objecto do formulrio. Para activar esta opo de formatao automtica, devemos: 1. Abrir o formulrio em VISTA DE ESTRUTURA. 2. No friso, seleccionamos o separador DISPOR e premimos o boto FORMATAO AUTOMTICA que se encontra na seco com o mesmo nome.

Figura II.7.51 Quadro com diferentes estilos pre-configurados que podemos associar a um formulrio

3. Se pretendermos usar o ASSISTENTE DE FORMATAO AUTOMTICA devemos seleccionar a ltima opo do quadro apresentado na figura II.7.51.

Figura II.7.52 Janela para a formatao automtica

326

BASES DE DADOS COM MICROSOFT ACCESS 2007

7.10.3 Caixas de informao para os controlos


Com o objectivo de proporcionar ao utilizador um complemento de informao sobre cada um dos controlos, nomeadamente dos campos das respectivas tabelas, o Access disponibiliza dicas no ecr, que surgem quando o apontador do rato se desloca sobre determinado controlo. Vamos utilizar o campo Data de Edio de um livro para exemplificar este procedimento. Assim, devemos: 1. Na VISTA DE ESTRUTURA do formulrio Livros seleccionar a caixa de texto Data de Edio. 2. Activar a FOLHA DE PROPRIEDADES e alterar a sua propriedade Texto da descr. do controlo, digitando o texto Data em que o livro comeou a ser comercializado, tal como apresentado na figura II.7.53

Figura II.7.53 Folha de Propriedades com a insero de texto em Texto da descr. do controlo

3. Activar o formulrio e posicionar o rato sobre o controlo.

Figura II.7.54 Exemplo da utilizao de uma caixa de informao no campo DataEdio

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

327

7.11 EXERCCIO GUIADO


Dando continuidade ao desenvolvimento da nossa aplicao, vamos agora criar um conjunto alargado de formulrios que representem tanto as nossas tabelas como as nossas consultas. Assim sendo, vamos comear por criar alguns formulrios simples, que sero feitos, cada qual, a partir de uma nica tabela. Na nossa base de dados Editora temos um conjunto de tabelas primrias em relao s quais podemos criar formulrios simples, que nos permitiro no s visualizar os dados com uma melhor apresentao, como tambm fazer sempre que necessrio a sua manipulao. Nesta perspectiva, vamos criar vrios formulrios com a mesma estrutura e com o mesmo aspecto grfico. Vamos exemplificar este procedimento recorrendo ao assistente de formulrios para a tabela Autores. Criao de formulrios com o assistente Para criar um formulrio simples que apresente a informao dos autores temos de seleccionar, no friso, o separador CRIAR e, em seguida, premir o boto MAIS FORMULRIOS que se encontra na seco FORMULRIOS. No menu que aparece no ecr seleccionamos a opo ASSISTENTE DE FORMULRIOS. Depois de arrancar com o assistente seleccionamos a consulta Autores Nacionais que contm os dados que sero apresentados no formulrio e, posteriormente, inserimos todos os campos no formulrio clicando em .

Figura II.7.55 Quadro do assistente usado para possibilitar a escolha de campos a inserir no formulrio

No quadro seguinte do assistente de formulrios escolhemos o esquema de apresentao dos dados em colunas. Depois, escolhemos o estilo de

328

BASES DE DADOS COM MICROSOFT ACCESS 2007

apresentao grfica Escritrio que configura os dados e o fundo do formulrio. Finalmente, atribumos o nome Autores a este formulrio. Para as restantes tabelas primrias da nossa base de dados, vamos utilizar exactamente os mesmos procedimentos adoptados na tabela Autores exceptuando a escolha do esquema grfico que poder ser tipo Tabela quando o nmero de campos reduzido como o caso das tabelas Revendedores, Nacionalidades, Localidade e Coleco.

Figura II.7.56 Aspecto final de dois formulrios com esquemas diferentes

Alterao de formulrios atravs da vista de estrutura Para personalizar os formulrios criados atravs do Assistente temos ao dispor um conjunto bastante alargado de procedimentos que so disponibilizados pelo Access. A ttulo de exemplo podemos aumentar a rea de detalhe, para alterar a disposio dos campos da tabela.

Figura II.7.57 Procedimento adoptado para aumentar a rea de DETALHE do formulrio

Podemos tambm seleccionar, mover, redimensionar, alinhar e formatar os controlos que fazem parte do formulrio. Com o intuito de melhorar a aparncia dos formulrios, o Access oferece 25 novos temas profissionais que sero imediatamente aplicados depois de seleccionados. Para o efeito, seleccionamos a VISTA DE ESTRUTURA e,

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

329

em seguida, clicamos numa das opes (ver figura II.7.58) apresentadas na seco FORMATAO AUTOMTICA do separador DISPOR, do friso.

Figura II.7.58 Escolha da FORMATAO AUTOMTICA adoptada nos formulrios da Base de dados Editora

Inserir cabealho A insero do cabealho nos formulrios feita na rea CABEALHO DO FORMULRIO. Como o processo de criao de um formulrio simples apresenta esta rea fechada, a primeira tarefa a realizar ser a de utilizar o rato para criar algum espao de forma a inserir um ttulo.

Figura II.7.59 Procedimento adoptado para aumentar a rea do CABEALHO


DO FORMULRIO

Depois de disponibilizar espao na rea CABEALHO DO FORMULRIO, vamos seleccionar o controlo RTULO (na seco CONTROLOS do separador ESTRUTURA do friso) e accion-lo na referida rea com o objectivo de digitar o ttulo que identifique a informao do nosso formulrio. Inserimos IMAGEM. Na tambm o logtipo da editora com o recurso ao controlo perspectiva de uniformizar o aspecto dos formulrios da nossa base de dados, devemos repetir estes procedimentos para todos os formulrios que criarmos.

330

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.7.60 Aspecto final do CABEALHO DO FORMULRIO adoptado nos formulrios da base de dados Editora

Criao de formulrios a partir de vrias tabelas Os prximos formulrios que iremos criar tm o objectivo de facilitar o acesso e manipulao das tabelas de ligao, ou seja, tabelas que resultam do desdobramento entre tabelas primrias com relaes de muitos-para-muitos. Desta forma, pretendemos criar um formulrio que nos apresente dados relativos s vendas da Editora. As tabelas que pretendemos incluir so as Vendas, Revendedores e Venda/Livro. Depois de accionarmos a opo ASSISTENTE DE FORMULRIOS (na seco FORMULRIOS do separador CRIAR do friso), comeamos por seleccionar a tabela Vendas e todos os seus campos. Em seguida, na caixa TABELAS/ CONSULTAS, seleccionamos individualmente as outras tabelas e os campos que pretendemos incluir no formulrio.

Figura II.7.61 Sequncia de passos para criar um formulrio com base em vrias tabelas

No quadro seguinte temos de definir a estrutura do formulrio, definindo qual a tabela que ficar no formulrio principal e as que iro para o SUBFORMULRIO. O Assistente apresenta vrias alternativas para a estruturao do formulrio. A nossa escolha dever recair na estrutura definida na figura II.7.62 que coloca no formulrio principal a tabela Vendas e no SUBFORMULRIO os restantes campos.

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

331

Figura II.7.62 Definio da estrutura de dados do formulrio definido com base em vrias tabelas

Aps a escolha do esquema em TABELA e do estilo em PADRO, gravamos o formulrio e o SUBFORMULRIO resultantes deste procedimento.

Inserir clculos no Subfomulrio e Formulrio Para complementar este formulrio vamos introduzir novos campos que sero alvo de clculos. Por exemplo, vamos inserir um novo campo numa nova coluna do SUBFORMULRIO que apresente o valor da venda de um livro. Depois de acedermos, em modo VISTA DE ESTRUTURA, ao formulrio Vendas, posicionamo-nos no SUBFORMULRIO. Na sua rea interior, aumentamos a sua dimenso atravs do procedimento descrito na figura II.7.57. J com espao disponvel, inserimos o controlo que se encontra no friso (seleccionar o separador ESTRUTURA e o boto CAIXA DE TEXTO da seco CONTROLOS). Em seguida, acedemos FOLHA DE PROPRIEDADES para alterar as propriedades Nome e Origem de controlo.

Figura II.7.63 Insero de um campo calculado

Na propriedade Origem de controlo clicamos em para aceder ao CONSTRUTOR DE EXPRESSES e introduzimos a respectiva expresso, tal como apresentada na figura II.7.64.

332

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.7.64 Configurao da propriedade Origem de controlo atravs do CONSTRUTOR DE EXPRESSES

Na figura seguinte, apresentamos o aspecto final do formulrio Vendas.

Figura II.7.65 Aspecto final do formulrio Vendas

Criao de um Painel de Navegao com insero de botes Os painis de navegao so formulrios que proporcionam um fcil acesso s diversas funes da base de dados. Com um Painel de Navegao bem estruturado e explcito, podemos visualizar e imprimir os dados da base de dados, bem como executar as respectivas macros. O Painel de Navegao que vamos criar ser constitudo por um formulrio, onde incluiremos alguns controlos do tipo RTULO (texto para os ttulos) uma IMAGEM, CONTROLO SEPARADOR e BOTES DE COMANDO (para activar macros). Vamos comear por criar um novo formulrio em modo VISTA DE ESTRUTURA. Antes de inserir os novos controlos vamos maximizar a rea

II.7 CONSTRUIR UMA INTERFACE COM FORMULRIOS

333

de DETALHE do formulrio. Em seguida, vamos inserir na parte superior desta rea um objecto (imagem) recorrendo ao boto . Depois de accionar este boto e de definir a respectiva rea onde a imagem ser inserida, vamos deparar com uma janela onde podemos encontrar o ficheiro que identifica a imagem. Na figura II.7.66 encontramos tambm um ttulo na rea de detalhe do formulrio que dever ser introduzido atravs do boto RTULO.

Figura II.7.66 Configurao da parte superior do Painel de Navegao

Depois de configurar a parte superior do nosso formulrio, vamos criar um conjunto de procedimentos que permitam um acesso fcil s funcionalidaCONTROLO SEPARADOR des da nossa aplicao. Assim, vamos utilizar o para agrupar as diferentes opes da nossa base de dados. Depois de seleccionar este controlo, devemos desenhar um rectngulo na rea do formulrio. O CONTROLO SEPARADOR dever apresentar trs pginas diferentes com os formatos e as legendas que so apresentados na figura.

Figura II.7.67 Controlo separador com trs pginas para o agrupamento de opes

Depois de concluir o processo de configurao do CONTROLO SEPARADOR, vamos inserir um conjunto de botes que permitam abrir os formulrios baseados nas tabelas e consultas assim como os relatrios da nossa aplicao. Para inserir estes botes, procedemos do modo descrito neste captulo na sco Botes de Comandos. No final, teremos um formulrio semelhante ao que ilustrado na figura seguinte.

334

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.7.68 Aspecto final do formulrio Menu Principal

Considerando este formulrio como o Menu Principal de toda a aplicao, que possibilitar o acesso a toda a informao da nossa base de dados, ser conveniente que este aparea logo de incio quando executamos o Access e a partir do qual centralizamos todas as operaes. Assim sendo, devemos aceder ao BOTO DO OFFICE. No menu respectivo, encontramos o boto OPES DO ACCESS e, na caixa que aparece no ecr, seleccionamos a opo BASE DE DADOS ACTUAL que se encontra na lista da esquerda. Finalmente, na seco OPES DA APLICAO, seleccionamos o formulrio Menu Principal na caixa MOSTRAR FORMULRIO.

Figura II.7.69 Janela OPES DO ACCESS onde possvel definir o Menu Principal como formulrio de arranque da base de dados

II.8 Impresso de Relatrios

Um Relatrio um objecto do Access que permite converter a informao contida numa base de dados em documentos. De facto, a apresentao dos dados num relatrio normalmente feita sob a forma de um documento impresso que poder ter vrios tamanhos e formas. Os relatrios constituem uma forma de mostrar os dados das tabelas ou das consultas com uma melhor apresentao e disponibilizam ao utilizador uma variedade de artifcios grficos (cores, texto, figuras, etc.) e um conjunto de funcionalidades (agrupamento de dados, execuo de clculos, sumarizao dos dados) que facilitam a sua leitura e interpretao.

8.1 APLICAO DE RELATRIOS


Um relatrio funciona como uma folha de papel onde podemos construir uma estrutura para a informao. As inmeras ferramentas de construo disponveis ajudam-nos a criar relatrios com base em diversas caractersticas, designadamente: Apresenta os dados de uma forma atractiva com tipos de letra especiais, linhas, figuras e outros efeitos grficos como cores ou sombras; Assemelha-se a uma folha de papel com os respectivos cabealhos e rodaps; Organiza os dados em grupos; Calcula totais simples, grupos de totais e percentagens de totais;

336

BASES DE DADOS COM MICROSOFT ACCESS 2007

Permite a execuo de pesquisas de informao com a introduo de critrios de seleco ou filtragem; Apresenta dados de mais do que uma tabela ou consulta; Faz a impresso dos dados em etiquetas.

8.2 MODOS DE CRIAO DE RELATRIOS


Antes de criarmos um relatrio temos que considerar os dados que faro parte do mesmo, ou seja, a tabela ou consulta que lhe servir de base. Contudo, podemos ter ainda relatrios que no sejam suportados por uma tabela ou uma consulta, como uma carta ou um relatrio que tenha Subrelatrios, apesar desta segunda situao poder contemplar indirectamente tabelas ou consultas. No Access, os relatrios podem ser configurados de diferentes maneiras e assumir formas muito diversificadas. As diferentes formas de criao de um relatrio incluem: Criao Rpida Assistente Em branco Vista de estrutura

Embora a primeira opo seja bastante prtica e fcil de utilizar, a verdade que nem sempre a mais indicada porque apresenta insuficincias e limitaes na personalizao de relatrios. O processo de criao mais utilizado a criao de relatrios com base num assistente. Este processo permite criar desde uma simples listagem em colunas at criao de relatrios que representam informaes oriundas de vrias tabelas, com mltiplos agrupamentos e ordenaes. No entanto, sempre que este processo no cumpra com os objectivos propostos inevitvel o recurso utilizao da VISTA DE ESTRUTURA.

II.8 IMPRESSO DE RELATRIOS

337

Tal como os outros objectos, podemos criar um relatrio com ou sem ASSISTENTE DE RELATRIOS. No entanto, com o ASSISTENTE DE RELATRIOS a sua construo muito mais rpida, tendo apenas o inconveniente de estar limitada a certas estruturas e no possibilitar uma grande liberdade na sua criao.

8.3 RELATRIO DE CRIAO RPIDA


O relatrio de Criao Rpida a forma mais simples de criao de um relatrio. Normalmente, utilizado quando necessitamos de obter rapidamente uma listagem de uma tabela ou consulta. Quando usamos um relatrio para visualizar dados devemos conectar o relatrio a uma tabela ou consulta que fornecer os dados. Esta forma de criao de relatrio apresenta todos os campos e registos existentes na tabela ou consulta previamente escolhida. Contudo, no possvel ao utilizador durante o processo de criao fazer qualquer tipo de personalizao.

Para criar um Relatrio de Criao Rpida devemos seguir os seguintes passos: 1. No PAINEL DE NAVEGAO, seleccionar a tabela ou consulta que pretendemos usar no relatrio. 2. No separador CRIAR do friso, seleccionar o boto RELATRIO na seco RELATRIOS.

Depois de seleccionado o boto RELATRIO, automaticamente aparecer no ecr um relatrio com a informao da tabela (ou consulta) devidamente organizada em colunas e linhas. Como podemos comprovar, os campos de informao so dispostos na mesma ordem pela qual foram inseridos na tabela (ou consulta) original. Contudo, a sua disposio e dimenso podero ser facilmente alterados como se mostra na seguinte figura.

338

BASES DE DADOS COM MICROSOFT ACCESS 2007

Clicar, arrastar e largar as colunas para alterar a sequncia

Figura II.8.1 Procedimentos adoptados na disposio das colunas do relatrio

Opcionalmente, podemos alterar o formato do texto, seleccionando uma das opes (tamanho, fonte, alinhamento, cor, etc.) da seco TIPO DE LETRA do friso.

Figura II.8.2 Seco TIPO DE LETRA do friso para alterar o formato do texto do relatrio

Depois de construdo o relatrio, podemos grav-lo atravs do boto GUARDAR. Na prxima vez que o abrirmos poderemos constatar que o Access apresentar o relatrio com as mais recentes alteraes aos dados.

8.4 RELATRIOS USANDO O ASSISTENTE


O ASSISTENTE DE RELATRIOS permite criar automaticamente os relatrios com base num conjunto de opes como a seleco de campos das tabelas ou consultas e criao de uma estrutura personalizada. De facto, com esta opo podemos ser mais selectivos na escolha dos campos que aparecero no relatrio. Esta modalidade de criao de relatrios apresenta um nmero elevado de opes, facilitando assim uma personalizao bastante mais detalhada.

II.8 IMPRESSO DE RELATRIOS

339

Para criar um novo relatrio com o assistente devemos: 1. No friso, seleccionar o separador CRIAR e premir o boto ASSISTENTE DE RELATRIOS que se encontra na seco RELATRIOS. 2. Na caixa de dilogo que aparece no ecr seleccionamos a origem dos dados para o relatrio. Na caixa TABELA/CONSULTA seleccionamos a tabela ou consulta que contm os dados que sero apresentados no relatrio. Inserir campo a campo atravs do boto , ou todos os campos atravs do boto . No exemplo seguinte, vamos utilizar a tabela de Autores.

Figura II.8.3 Primeiro quadro do assistente, onde se podem escolher os campos a inserir no relatrio.

Se desejarmos incluir no relatrio campos de vrias tabelas, no devemos seleccionar o boto SEGUINTE enquanto no tivermos todos os campos na caixa da direita. Assim, devemos proceder repetidamente seleco da TABELA/CONSULTA e adio dos seus respectivos campos.

3. Na janela seguinte verificar se existe algum tipo de agrupamento de dados. Esta opo permite uma melhor estruturao dos dados e pode ser utilizada para o clculo de subtotais em dados numricos. Por exemplo, se escolhermos o campo CodNacionalidade para estabelecer o agrupamento, ser apresentado um bloco de Autores com a mesma nacionalidade.

340

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.8.4 Janela para a seleco do campo de agrupamento de dados

4. Posteriormente, seleccionar o campo de ordenao dos registos do relatrio. Existe a possibilidade de definir a ordenao crescente e decrescente para quatro campos diferentes.

Figura II.8.5 Janela para a definio da sequncia de ordenao dos registos

5. Definir o tipo de esquema e a orientao da folha para a impresso do relatrio.

Figura II.8.6 Janela para a seleco do esquema a adoptar no relatrio

II.8 IMPRESSO DE RELATRIOS

341

6. Escolher o estilo de apresentao grfica que configura os dados.

Figura II.8.7 Janela para a seleco do estilo do relatrio

7. Finalmente, introduzir o nome a dar ao relatrio. O relatrio obtido apresentado na figura seguinte.

Figura II.8.8 Relatrio elaborado com a ajuda do assistente, com o qual possvel listar os Autores agrupados pela Nacionalidade

8.5 RELATRIOS EM BRANCO


Em alternativa aos processos de criao anteriormente abordados podemos usar a ferramenta do Access RELATRIO EM BRANCO. Este processo tambm pode ser bastante rpido e fcil, especialmente quando planeamos construir um relatrio com poucos campos. Os procedimentos seguintes explicam como podemos criar um relatrio com RELATRIO EM BRANCO:

342

BASES DE DADOS COM MICROSOFT ACCESS 2007

1. No friso, seleccionamos o separador CRIAR e, posteriormente, premimos o boto RELATRIO EM BRANCO que se encontra na seco RELATRIOS. Surgir uma janela com espao em branco para ser usado na construo do relatrio.

Figura II.8.9 Janela com espao em branco para ser usado na construo do relatrio

2. No quadro LISTA DE CAMPOS seleccionamos o cone + para desdobrar os campos da tabela/consulta que pretendemos inserir no relatrio. Se este quadro no estiver visvel, seleccionar o boto ADICIONAR CAMPOS EXISTENTES que se encontra no friso.

Figura II.8.10 Quadro LISTA DE CAMPOS

Neste exemplo escolhemos os campos nome e telefone da tabela autor.

Figura II.8.11 Disposio dos campos nome e telefone da tabela autor, depois de arrastados da LISTA DE CAMPOS

II.8 IMPRESSO DE RELATRIOS

343

3. Utilizar as ferramentas e os controlos existentes na barra de formatao para melhorar a aparncia do relatrio.

Figura II.8.12 Ferramentas e os controlos existentes na barra de formatao a utilizar na melhoria da aparncia do relatrio

Na perspectiva de melhorar a aparncia dos relatrios, o Access oferece 25 novos temas profissionais que sero imediatamente aplicados depois de seleccionados. Para o efeito, seleccionamos a VISTA ESQUEMA e, em seguida, clicamos numa das opes apresentadas na seco FORMATAO AUTOMTICA do friso.

Figura II.8.12 Opes de formatao automtica disponveis na seco FORMATAO AUTOMTICA do friso

8.6 RELATRIOS USANDO A VISTA DE ESTRUTURA


Se desejarmos construir um relatrio totalmente feito por ns podemos comear com uma folha em branco e, a partir da, adicionar os campos de informao, quadros, imagens, controlos, e tudo o mais que desejarmos inserir. O modo VISTA DE ESTRUTURA uma forma diferente de olharmos para um relatrio. Ao contrrio da VISTA DE ESQUEMA, nesta vista no visualizamos a informao da nossa base de dados, mas sim referncias aos campos da mesma. Esta forma de trabalhar com relatrios d-nos uma grande liberdade para a sua criao e configurao.

344

BASES DE DADOS COM MICROSOFT ACCESS 2007

Para criar um novo relatrio sem o assistente devemos: No friso, seleccionar o separador CRIAR e, posteriormente, premir o boto ESTRUTURA DO RELATRIO que se encontra na seco RELATRIOS. Surgir uma janela com espao em branco para ser usado na construo do relatrio.

Figura II.8.12 Aspecto da janela do Access para a construo de um relatrio na VISTA DE ESTRUTURA

Como a grelha do relatrio se encontra completamente vazia, teremos de ser ns a incluir todos os elementos que quisermos apresentar no relatrio. Tal como no modo VISTA DE ESTRUTURA dos formulrios, aqui tambm temos uma Barra de Ferramentas (friso) que nos disponibiliza um vasto leque de opes que nos permitem inserir no relatrio, texto ou outros grafismos e objectos.

As linhas verticais e horizontais da grelha que aparecem apenas na VISTA DE ESTRUTURA do relatrio so usadas para ajudar o utilizador a inserir os diferentes componentes do relatrio de uma forma precisa, alinhada e organizada.

8.6.1 Seces do relatrio


O modo VISTA DE ESTRUTURA do objecto Relatrio apresenta um conjunto de zonas de introduo de controlos que se assemelha a uma folha de papel com os respectivos corpo, cabealhos e rodaps. Quando criado um novo relatrio, o Access apresenta apenas trs seces. Contudo, em funo dos dados inseridos, podero aparecer outras

II.8 IMPRESSO DE RELATRIOS

345

seces. Efectivamente, podemos complementar o relatrio juntando mais seces. O Access disponibiliza, no mximo, sete seces para um relatrio aqui reside uma das poucas diferenas que o distingue de um formulrio. Vamos agora descrever cada uma destas seces: CABEALHO DO RELATRIO Esta seco usada normalmente para o ttulo do formulrio, data ou logtipos. O seu contedo ir aparecer no topo da primeira pgina do relatrio. CABEALHO DA PGINA Utilizada para apresentar o nome das colunas do relatrio. O seu contedo ir aparecer no topo de cada pgina do relatrio. CABEALHO DO AGRUPAMENTO Mostra a informao que descreve o agrupamento de dados. O seu contedo ir aparecer no incio de cada agrupamento de dados. DETALHE o corpo do relatrio. Mostra principalmente os controlos que representam os registos. RODAP DO AGRUPAMENTO Apresenta informao que sumaria os dados de cada agrupamento. O seu contedo ir aparecer no final de cada agrupamento de dados. RODAP DA PGINA Normalmente utilizado para apresentar o nmero de pgina ou nome do autor. O seu contedo ir aparecer na parte inferior de cada pgina do relatrio. RODAP DO RELATRIO Normalmente esta seco utilizada para apresentar os totais gerais de campos numricos impressos no relatrio. O seu contedo ir aparecer na parte inferior da ltima pgina do relatrio.

346

BASES DE DADOS COM MICROSOFT ACCESS 2007

Para redimensionar uma seco deve-se mover o rato para a extremidade da mesma. Quando o cursor alterar o seu formato, arrast-lo para cima ou para baixo at a seco ficar com a rea pretendida.

Figura II.8.13 Procedimento adoptado para redimensionar as seces do Relatrio

Se no desejarmos usar uma determinada seco do relatrio devemos reduzir a zero a sua dimenso, ou seja, redimensionamos a rea da seco at ela deixar de existir.

8.6.2 Controlos em relatrios


Tal como nos formulrios, tambm nos relatrios os controlos so bastante importantes, pois embora no sejam a base de um relatrio, so os elementos que fazem com que um relatrio tenha mais sentido e no seja apenas uma simples visualizao de dados, tal como uma tabela ou uma consulta. Na verdade, o Access representa tudo num relatrio atravs dos controlos. Estes controlos podem ser um campo da tabela base, ou ento podem ser um ttulo ou uma legenda. Os controlos podem tambm ser de clculo representando um papel muito importante, pois nos relatrios so frequentemente apresentados totais (so estes controlos que realizam os clculos para chegar a esses totais).

Adicionar controlos ao Relatrio Alguns controlos so criados automaticamente, como por exemplo os controlos dependentes criados quando adicionamos um campo do PAINEL LISTA DE CAMPOS. Muitos outros podem ser criados atravs da sua seleco no separador ESTRUTURA do friso. A prxima figura apresenta os

II.8 IMPRESSO DE RELATRIOS

347

diferentes controlos independentes disponibilizados pelo Access, para a construo de Relatrios.


Botes para adicionar logtipo, ttulo, n pgina e data Botes para adicionar limites Botes para adicionar controlos diversos

Figura II.8.14 Controlos independentes disponibilizados pelo Access

Lembramos que a definio de controlos dependentes, independentes e de clculo semelhante definio que j foi feita para os formulrios (ver mais informaes no captulo 7).

Adicionar campos do PAINEL LISTA DE CAMPOS Para adicionar um simples campo arrastamos o mesmo da lista para a seco do relatrio onde desejamos que ele seja apresentado. Para adicionar vrios campos de uma s vez pressionamos a tecla CTRL e seleccionamos os campos pretendidos. Em seguida, arrastamos os campos seleccionados para o relatrio.

Figura II.8.15 Procedimento para adicionar campos ao relatrio atravs do PAINEL LISTA DE
CAMPOS

Criar um controlo atravs do friso 1. Clicamos no boto (disponvel no separador ESTRUTURA do friso) referente ao controlo desejado. Por exemplo, para criar uma CAIXA DE VERIFICAO, seleccionamos o boto .

348

BASES DE DADOS COM MICROSOFT ACCESS 2007

2. Clicamos na grelha do relatrio e no local exacto onde desejamos que o controlo seja inserido. O controlo ser apresentado com uma dimenso pr-definida. Para alterar essa dimenso seleccionamos o controlo e efectuamos o seu redimensionamento atravs dos quadradinhos apresentados nos seus limites.

Seleccionar, mover, apagar e colar controlos Dentro da mesma seco, podemos mover o controlo para qualquer local, bastando apenas seleccion-lo e com o rato mov-lo para o local desejado. Se desejarmos mover esse controlo para outra seco, teremos que copiar o controlo e col-lo no local desejado.

Definir o tamanho de um controlo Para definir o tamanho de um controlo necessrio apenas seleccion-lo e colocar o rato num dos diversos quadradinhos que delimitam o controlo, clicando e arrastando de seguida.

8.7 FILTRAGEM, ORDENAO E AGRUPAMENTO


No contexto da manipulao de relatrios, o Access disponibiliza um objecto que oferece um conjunto de funcionalidades similares s oferecidas na utilizao das FOLHAS DE DADOS (ver 5.6.5 e 5.6.6). Adicionalmente, esta ferramenta disponibiliza um conjunto de opes muito teis no agrupamento de dados e no clculo de subtotais. De salientar que o agrupamento de dados uma ferramenta indispensvel para o tratamento de grandes volumes de dados, pois atravs da criao de pequenos grupos ser possvel tornar a informao mais fcil de analisar e interpretar.

8.7.1 Filtragem de um relatrio


O processo de filtragem de informao num relatrio similar ao adoptado na filtragem das FOLHAS DE DADOS. Assim, temos duas possibilidades para aplicar filtros directamente no relatrio:

II.8 IMPRESSO DE RELATRIOS

349

Se desejarmos construir um filtro rpido baseado num valor existente no relatrio, seleccionamos esse valor e, em seguida, clicamos no boto direito do rato. O menu rpido que aparece no ecr apresenta um conjunto de filtros associados a esse valor. Se pretendermos mais flexibilidade na construo do filtro seleccionamos novamente um valor numa coluna do relatrio e, em seguida, clicamos no boto direito do rato. O menu rpido que aparece no ecr apresenta uma opo (por exemplo FILTROS DE TEXTO, FILTROS DE NMERO, ) atravs da qual acedemos a um submenu com um conjunto de filtros mais detalhados que nos permitem criar uma variedade de expresses de filtragem.

Figura II.8.16 Procedimento para filtrar um relatrio atravs de um valor previamente seleccionado

8.7.2 Ordenao de dados


Quando se imprime um relatrio normalmente gostamos de ter uma ordenao na listagem dos registos por ordem alfabtica ou numrica. A forma mais rpida de estabelecer uma ordenao num relatrio executar um procedimento muito semelhante ao adoptado numa FOLHA DE DADOS, ou seja, na VISTA DE ESQUEMA seleccionamos o campo a usar na ordenao e clicamos no boto direito do rato. No menu rpido que aparece seleccionamos uma das opes de ordenao.

350

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.8.17 Procedimento para ordenar um relatrio atravs de um campo previamente seleccionado

Neste caso s podemos estabelecer uma ordenao com base em apenas um campo de informao. Se pretendermos estabelecer uma ordenao mais complexa devemos adoptar outro procedimento, que passa pela execuo dos seguintes passos: 1. Abrir o relatrio no modo VISTA DE ESQUEMA. 2. No friso, escolher a opo AGRUPAR E ORDENAR que se encontra na seco AGRUPAMENTO E TOTAIS. 3. Seleccionar o boto da VISTA DE ESQUEMA. que aparece na parte inferior

4. Escolher os campos de informao a utilizar para a ordenao. 5. Na mesma linha onde seleccionamos o campo e no parmetro da direita devemos especificar se a ordenao dos dados ascendente ou descendente. 6. Se pretendermos adicionar um novo campo para ordenao (ser a chave secundria), seleccionamos novamente o boto e repetimos os passos 4 e 5.

Figura II.8.18 Procedimento para ordenar um relatrio atravs da opo ADICIONAR UMA
ORDENAO

II.8 IMPRESSO DE RELATRIOS

351

No exemplo ilustrado na figura II.8.18, a ordenao principal ser feita de forma decrescente pelo cdigo de nacionalidade e a ordenao secundria ser feita de forma crescente pelo nome do autor.

8.7.3 Agrupamento dos dados


Para muitos relatrios a ordenao dos registos no suficiente para uma boa estruturao dos dados. Na verdade, em muitos casos ser conveniente agrupar os registos de uma tabela ou consulta, atravs da informao de um campo que os caracterize na globalidade. Um agrupamento de dados constitudo pelo cabealho, pelo corpo e pelo rodap. O cabealho do grupo contm dados que identificam o grupo, enquanto que o rodap normalmente sumaria os registos apresentados no corpo do agrupamento.

Para estabelecer um agrupamento nos dados do nosso relatrio devemos percorrer os seguintes passos: 1. Abrir o relatrio no modo VISTA DE ESQUEMA.

2. No friso, escolher a opo AGRUPAR


3. Seleccionar o boto VISTA DE ESQUEMA

ORDENAR que se encontra na seco AGRUPAMENTO E TOTAIS.


E

que aparece na parte inferior da

4. Escolher os campos de informao a utilizar no agrupamento. 5. Na mesma linha onde seleccionamos o campo e no parmetro da direita devemos especificar se a ordenao dos dados dentro do agrupamento ascendente ou descendente. 6. Ainda na mesma linha no parmetro da direita devemos especificar o tipo de agrupamento que ser varivel em funo do tipo de dados do campo de informao. 7. Se pretendermos adicionar um novo campo para agrupamento (ser o agrupamento secundrio), seleccionamos novamente o boto e repetimos os passos 4, 5 e 6.

352

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.8.19 Procedimento para os agrupar dados de um relatrio atravs da opo ADICIONAR UM GRUPO

No exemplo ilustrado na figura II.8.19 o agrupamento das vendas feito pela data, sendo apresentados grupos de registos para cada trimestre. 8. Continuando na mesma linha no parmetro da direita, podemos adicionar totais e subtotais associados aos agrupamentos. Seleccionamos o parmetro TOTAIS e definimos o campo usado para o efeito.
Subtotal

Total Geral

Figura II.8.20 Exemplo de um relatrio com agrupamento de dados e respectivos subtotais e totais

Para este exemplo, optamos por escolher o campo Valor para totalizar o valor das vendas trimestrais. Como vimos, o nosso relatrio no est limitado a apenas um agrupamento de dados. Com efeito, podemos adicionar quantos nveis de orde-

II.8 IMPRESSO DE RELATRIOS

353

nao e agrupamento desejarmos, com o intuito de partir a informao em partes mais pequenas e, assim, mais fceis de analisar.

8.8 GRFICOS EM RELATRIOS


Tal como nos formulrios, tambm nos relatrios possvel inserir grficos, quer tenham ligao s tabelas quer no tenham. De salientar que o grfico inserido nos relatrios e nos formulrios um objecto criado e manipulado a partir da aplicao Microsoft Graph que est associada a todas as aplicaes do Microsoft Office. Para exemplificar a utilizao deste objecto, to til na anlise de dados, vamos incluir no relatrio Valor de Vendas (criado no ponto anterior) um grfico de barras que apresente as vendas trimestrais da nossa editora. Para atingir este objectivo, deveremos considerar as seguintes etapas: 1. Abrir o relatrio (Valor Vendas) em VISTA DE ESTRUTURA. 2. Com o auxlio do rato, aumentar consideravelmente a seco RODAP DO RELATRIO para poder receber o grfico a inserir 3. Seleccionar o boto INSERIR GRFICO que se encontra na seco CONTROLOS do separador ESTRUTURA. 4. Com o auxlio do rato, definir na seco RODAP DO RELATRIO a rea onde o grfico ser construdo. 5. Na primeira caixa de dilogo do ASSISTENTE DE GRFICOS escolher a origem dos dados para a criao do grfico (no nosso exemplo escolhemos a consulta Valor Vendas).

Figura II.8.21 Seleco da origem dos dados no Assistente de Grficos

354

BASES DE DADOS COM MICROSOFT ACCESS 2007

6. No passo seguinte do assistente escolhemos os campos que contm os dados a representar no grfico (Data e Valor).

Figura II.8.22 Seleco dos campos no Assistente de Grficos

7. Em seguida escolhemos o tipo de grfico.

Figura II.8.23 Seleco do tipo de grfico no Assistente de Grficos

8. No quadro seguinte, verificamos a disposio dos dados em relao aos eixos do grfico. Como o intervalo temporal definido o Ms, fazemos duplo clique em de forma a alterar para Trimestre.

Figura II.8.24 Disposio dos dados no grfico e alterao do agrupamento de dados

II.8 IMPRESSO DE RELATRIOS

355

9. Desactive os campos de ligao entre o grfico e o relatrio para que sejam apresentados neste ltimo todos os dados de todos os registos da nossa base de dados.

Figura II.8.25 Desactivar campo de ligao entre o grfico e o relatrio

10. No ltimo quadro atribumos um nome ao grfico e seleccionamos o boto CONCLUIR.

Figura II.8.26 ltima pgina do Relatrio em modo de PR-VISUALIZAO

Depois de concluir este processo, ser aconselhvel fazer duplo clique no grfico em VISTA DE ESTRUTURA de forma a aceder ao Microsoft Graph e assim poder personaliz-lo, ou seja, alterar legendas, cores, tamanhos e tipos de letras, etc.

356

BASES DE DADOS COM MICROSOFT ACCESS 2007

Ao activar o relatrio em modo de PR-VISUALIZAO podemos constatar que o grfico aparecer no final do mesmo com dados que reflectem a informao impressa.

8.9 ETIQUETAS COM RELATRIOS


Se tivermos na nossa base de dados tabelas com informao de moradas (ex. clientes, fornecedores, autores, alunos, empresas, etc.) o Access disponibiliza um assistente que nos facilita o processo de mailing, colocando essas moradas sob a forma de etiquetas numa folha de papel. Se pretendermos criar etiquetas usando campos de informao de diferentes tabelas, teremos inicialmente de criar uma consulta que contemple esses campos e s depois acedemos ao ASSISTENTE DE ETIQUETAS. Os procedimentos seguintes explicam como podemos criar etiquetas com o respectivo assistente: 1. Seleccionamos a tabela/consulta onde se encontra a informao a inserir nas etiquetas. No nosso exemplo seleccionamos a tabela Autores. 2. No friso, seleccionamos o separador CRIAR e, posteriormente, premimos o boto ETIQUETAS que se encontra na seco RELATRIOS. Surgir uma janela que apresenta vrios tipos de tamanhos e disposies para as etiquetas. Ser possvel escolher uma dimenso padro ou definir uma dimenso personalizada.

Figura II.8.27 Janela para a seleco da dimenso das etiquetas

II.8 IMPRESSO DE RELATRIOS

357

3. No quadro seguinte estabelecemos a formatao (tipo de letra, dimenso e cor) para o texto que ser impresso nas etiquetas.

Figura II.8.28 Janela para a formatao do texto a imprimir nas etiquetas

4. Definimos o contedo das etiquetas atravs da escolha de um conjunto de campos. Se necessrio inserir texto (por exemplo, Exmo. Sr.) ou espaos entre os campos de informao.

Figura II.8.29 Janela para a definio dos campos a inserir nas etiquetas

5. Indicamos o campo de informao atravs do qual ser feita a ordenao das etiquetas.

Figura II.8.30 Janela para a definio do campo usado na ordenao da impresso das etiquetas

6. Finalmente, atribumos um nome ao relatrio. O processo est concludo.

358

BASES DE DADOS COM MICROSOFT ACCESS 2007

8.10 IMPRESSO DE UM RELATRIO


Embora seja possvel imprimir tabelas, consultas ou formulrios, so normalmente os relatrios que representam o output em papel da informao de uma base de dados. Para imprimir um relatrio devemos prioritariamente aceder vista PRVISUALIZAR, pois esta vista d-nos uma perspectiva real da impresso. Com esta vista podemos ver se as colunas esto todas alinhadas, se os espaos entre elas esto correctos, se no fica nada de fora, etc. Podemos ainda usar esta vista para ter uma viso geral de toda a pgina, ou para ter uma viso especfica de um ponto do relatrio. Para imprimir um relatrio temos de aceder ao BOTO DO OFFICE. No menu respectivo encontramos a opo de impresso que disponibiliza trs opes adicionais: Impresso com possibilidade de escolher e configurar a impressora; Impresso imediata em que o relatrio seleccionado ser enviado para a impressora sem possibilidades de alteraes; Pr-visualizao da impresso, que possibilita um conjunto completo de configuraes conhecidas de outras aplicaes do Office. A figura seguinte apresenta o relatrio Autores no modo PR-VISUALIZAO de impresso. Nesta figura, podemos confirmar que o friso inclui um conjunto alargado de botes que facilitam o processo de configurao das pginas antes de efectuarmos a impresso.

Figura II.8.31 Janela que apresenta um relatrio modo PR-VISUALIZAO de impresso

II.8 IMPRESSO DE RELATRIOS

359

No precisamos de abrir um relatrio para o imprimir. Precisamos apenas de o seleccionar no PAINEL DE NAVEGAO e, posteriormente, escolher a opo de impresso no BOTO DO OFFICE. Contudo, sem passar na prvisualizao de impresso no nos podemos assegurar que o resultado da impresso ser o melhor.

8.11 EXPORTAR RELATRIOS


O Access suporta um conjunto de formatos para a exportao de um relatrio. Esses formatos incluem, entre outros, documentos em Word, HTML, PDF ou XPS. Independentemente do formato pretendido, devemos entrar na PRVISUALIZAO do relatrio e, em seguida, escolher o boto que permita executar a exportao. Esse boto encontra-se na seco DADOS do friso. Depois de escolher a respectiva opo, devemos inserir no quadro seguinte o nome do documento de destino.

Figura II.8.32 Janela que permite exportar um relatrio para um documento HTML

Lembramos que exportar um relatrio o mesmo que imprimir, ou seja, a informao contida no relatrio ser exactamente aquela que existe no momento. Se desejarmos mais tarde aceder a informao mais recente, deveremos repetir o processo de exportao.

360

BASES DE DADOS COM MICROSOFT ACCESS 2007

Enviar o relatrio como mensagem de e-mail Podemos enviar um relatrio para vrios destinatrios atravs de uma mensagem de e-mail, em alternativa sua impresso. Para o efeito, devemos: 1. No PAINEL DE NAVEGAO, seleccionar o relatrio e, em seguida, clicar no BOTO DO OFFICE. 2. Seleccionamos a opo CORREIO ELECTRNICO. 3. Na caixa de dilogo ENVIAR OBJECTO COMO, seleccionamos o tipo de formato de ficheiro que pretendemos usar.

Figura II.8.33 Janela ENVIAR OBJECTO COMO que permite seleccionar o formato para enviar um relatrio como mensagem de e-mail

4. Na nossa aplicao de e-mail, digitar os detalhes da mensagem e, finalmente, envi-la.

8.12 EXERCCIO GUIADO


Na nossa base de dados Editora temos um conjunto de tabelas primrias em relao s quais podemos criar relatrios simples que nos permitiro imprimir os dados sempre que necessrio.

Relatrios de criao rpida Para iniciar a criao de relatrios na nossa base de dados, vamos utilizar a opo RELATRIO DE CRIAO RPIDA para as diferentes tabelas da nossa base de dados. Nesta perspectiva, vamos criar vrios relatrios com a mesma estrutura e com o mesmo aspecto grfico. Vamos exemplificar este procedimento recorrendo informao associada Tabela Livros.

II.8 IMPRESSO DE RELATRIOS

361

Assim sendo, no PAINEL DE NAVEGAO, seleccionamos a tabela Livros. No separador CRIAR do friso, seleccionamos o boto RELATRIO da seco RELATRIOS. Para as restantes tabelas primrias da nossa base de dados vamos utilizar exactamente os mesmos procedimentos adoptados para a tabela Livros. Criao de relatrios no assistente a partir de uma consulta A criao de um relatrio a partir de uma consulta poder ser idntica criao de um relatrio a partir de uma tabela, caso a consulta tenha sido criada com base numa nica tabela. Contudo, se a consulta tiver sido criada com base em vrias tabelas teremos uma situao mais complexa, uma vez que deveremos compreender, partida, a forma como devemos estruturar os campos das diferentes tabelas e como os devemos dispor no nosso relatrio. Para exemplificar esta ltima situao vamos criar um relatrio a partir da consulta Valor Vendas, anteriormente criada no captulo 6, Consultas. Por ser mais rpido e mais prtico vamos utilizar o assistente de Relatrios. Depois de arrancar com o assistente, seleccionamos a consulta Valor Vendas que contm os dados que sero apresentados no relatrio e, posteriormente, inserimos todos os . campos no formulrio clicando em

Figura II.8.34 Primeiro quadro do assistente, onde escolhemos os campos a inserir no relatrio.

No quadro seguinte do assistente de relatrios escolhemos o tipo de agrupamento dos dados a introduzir no nosso relatrio. Na perspectiva de listar os livros vendidos em cada Venda, vamos escolher por Vendas como campo de agrupamento.

362

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.8.35 Quadro do assistente, onde escolhemos o tipo de agrupamento de dados

No quadro seguinte podemos indicar mais um critrio de agrupamento, seleccionando e incluindo um dos campos posicionados na lista do lado esquerdo. Podemos, por exemplo, querer agrupar as vendas por data, indicando o campo Data. Este novo agrupamento dever ter a prioridade mxima, ou seja, dever ficar no topo da folha exemplo. Devemos tambm para podermos alterar a configurao clicar no boto da data de Ms para Ano. Desta forma, as vendas dos livros sero agrupadas conforme se apresenta na figura.

Figura II.8.36 Quadros para estabelecer o agrupamento por Data de Venda

No quadro seguinte podemos definir a ordenao dos dados atravs dos campos disponveis. No nosso exemplo, vamos impor a ordenao descendente por ttulo. Podemos tambm mandar efectuar clculos sobre os campos dos agrupamentos, atravs do boto . Neste sentido, vamos seleccionar o clculo da soma para o campo Valor.

II.8 IMPRESSO DE RELATRIOS

363

Figura II.8.37 Quadros para estabelecer a ordenao dos dados e para impor clculos aos agrupamentos

Nos ltimos quadros escolhemos a disposio dos dados no relatrio seleccionando o esquema Bloco e a orientao horizontal e escolhemos tambm o estilo Origem para definir a sua apresentao grfica. Para concluir o processo atribumos o nome Mapa de Vendas ao relatrio. vamos constatar Depois de visualizar o relatrio em PR-VISUALIZAO que os campos e os seus rtulos no se encontram totalmente visveis e alinhados. Assim sendo, temos que entrar em modo VISTA DE ESTRUTURA para fazer alguns melhoramentos.

Figura II.8.38 Aspecto do Relatrio Vendas depois de concludo o processo de criao atravs do assistente

364

BASES DE DADOS COM MICROSOFT ACCESS 2007

Alterao de relatrios atravs da vista de estrutura Na personalizao de relatrios criados atravs da VISTA DE ESTRUTURA temos a possibilidade de utilizar um conjunto de procedimentos similares aos utilizados nos formulrios. Vamos, por exemplo, dimensionar e deslocar alguns RTULOS e CAIXAS DE TEXTO para que estes se apresentem visveis e alinhados. Vamos, tambm, inserir na rea CABEALHO DO RELATRIO a imagem que inserimos no formulrio Menu Principal, bem como o ttulo Editora Centro Atlntico. No que diz respeito s legendas dos clculos parciais e totais apresentados no relatrio tambm podemos fazer ligeiras adaptaes. Para simplificar o relatrio eliminamos o Rodap NVenda, apagando o seu contedo. Vamos ainda eliminar o controlo que apresenta um resumo detalhado do clculo e ajustar o posicionamento do Rtulo Soma do Ano.

Figura II.8.39 Processo de configurao do rodap Data

No final, o relatrio dever ter uma configurao como a que apresentada na figura II.8.40.

Figura II.8.40 Aspecto do Final do Relatrio Vendas depois de efectuados os melhoramentos no modo VISTA DE ESTRUTURA

II.9 Macros

As macros permitem executar um conjunto de aces que permitem automatizar tarefas recorrentes na gesto das bases de dados. O processo associado criao de macros est bastante facilitado, pois este objecto do Access disponibiliza ao utilizador um comjunto de aces predefinidas com mltiplas opes. Uma macro um pequeno programa que podemos criar e armazenar na nossa aplicao de base de dados. As macros podem variar entre um simples comando que apresenta um formulrio, at um conjunto complexo de comandos que pode aferir a quantidade de um produto em stock e automaticamente imprimir em duplicado um pedido de fornecimento. De facto, uma macro pode ser composta por uma sequncia de aces ou por um grupo de macros. Pode tambm utilizar uma expresso condicional para determinar se, em alguns casos, deve ser executada uma aco quando a macro accionada. Embora de forma implcita, no decorrer deste livro j usamos macros. Com efeito, no captulo 7, criamos botes que de uma forma automtica executavam tarefas simples, tais como abrir ou fechar formulrios. Para criar estas aces usamos o assistente de BOTES DE COMANDOS, que nos solicita a escolha de algumas opes para gerar uma macro.

9.1 ACES E ARGUMENTOS


As macros so constitudas por aces ou comandos que permitem realizar a tarefa que pretendemos automatizar. Abrir formulrios, fechar uma tabela e ordenar uma consulta, so exemplos de aces que podem ser utilizadas nas macros.

366

BASES DE DADOS COM MICROSOFT ACCESS 2007

Depois de adicionar uma aco a uma macro, so definidos os argumentos para a aco na parte inferior da janela de Macros no modo VISTA DE ESTRUTURA. Contudo, devemos perceber que o nmero de argumentos e o seu objectivo varia consoante a aco que for seleccionada. Os argumentos so blocos adicionais de informaes, necessrios para efectuar uma aco individual. Por exemplo, a aco de uma macro Abrir formulrio precisa de argumentos para identificar o nome do formulrio a abrir, bem como a vista em que ele ser aberto.

Apresentamos algumas consideraes sobre a utilizao dos argumentos de aco: Alguns argumentos so de preenchimento obrigatrio, outros sero facultativos; Em geral, ser conveniente definir os argumentos de aco pela ordem em que so listados, uma vez que as escolhas efectuadas para um determinado argumento podem influenciar os argumentos seguintes; Se adicionarmos uma aco macro, arrastando um objecto da base de dados do PAINEL DE NAVEGAO, o Access define automaticamente argumentos adequados a essa aco; Podemos utilizar uma expresso antecedida de um sinal de igual (=) para definir vrios argumentos de aco.

9.2 CRIAO DE UMA MACRO


Antes de dar incio ao processo de criao de uma macro, devemos estar conscientes das aces que so necessrias para completar a tarefa que pretendemos automatizar. Uma vez que no existem assistentes que nos ajudem a criar a macro, est ser criada inserindo as aces e respectivos argumentos directamente no modo VISTA DE ESTRUTURA.

II.9 MACROS

367

Para criar uma nova Macro, devemos: 1. No separador CRIAR do friso, seleccionamos o boto MACRO na seco OUTROS. 2. Na janela de macros, no modo VISTA DE ESTRUTURA, seleccionamos a primeira linha da coluna ACO. Em seguida, activamos a caixa de combinao que nos apresenta um conjunto diversificado de aces. No nosso exemplo, escolhemos a aco Abrir Formulrio.

Figura II.9.1 Seleco da primeira ACO na janela de macros no modo VISTA DE ESTRUTURA

3. Na terceira coluna da janela de macros no modo VISTA DE ESTRUTURA escrevemos um comentrio para descrever a aco (o preenchimento desta coluna opcional). 4. Na parte inferior da mesma janela, configuramos os argumentos da aco, nomeadamente o nome do formulrio que est disponvel na caixa de combinao do argumento Nome do formulrio.

Descrio do argumento seleccionado

Figura II.9.2 Configurao dos argumentos da aco no modo VISTA DE ESTRUTURA

5. Se pretendermos inserir novas aces temos de repetir os passos 2, 3 e 4. A macro realizar as aces pela ordem estabelecida na listagem.

368

BASES DE DADOS COM MICROSOFT ACCESS 2007

6. Depois de criar a macro, devemos guardar o trabalho, atribuindo macro um nome que identifique as tarefas que esta executa.

Como podemos constatar, as macros so bastante mais recomendveis do que os assistentes de BOTES DE COMANDOS, pois estas oferecem um conjunto mais alargado de aces que permitem uma maior personalizao do seu desempenho. Podemos facilmente alterar a ordem de execuo das aces de uma macro, clicando na margem esquerda de aco e arrastando-a para a nova localizao. O Access automaticamente deslocar as restantes aces para as posies seguintes.

9.3 EXECUO E TESTE DE UMA MACRO


Para que uma macro ponha em prtica as aces que lhe esto associadas, temos que as executar. Existem essencialmente duas possibilidades de execuo de uma macro. Podemos executar as aces de uma macro de uma s vez, ou podemos testar uma macro executando-a de aco em aco, permitindo assim rever os resultados de cada uma e facilitando a deteco de eventuais erros.

9.3.1 Executar uma macro a partir do PAINEL DE NAVEGAO


Para executar uma macro devemos: 1. No PAINEL DE NAVEGAO, seleccionar o nome da macro que desejamos executar.

2. Fazer duplo clique no nome da macro, ou premir o boto direito do


rato e seleccionar a opo EXECUTAR.

Figura II.9.3 Menu rpido para executar uma macro

Se a macro encontrar uma aco que no consegue executar, aparecer uma caixa de mensagem indicando a referida aco. Depois de termos

II.9 MACROS

369

tomado conhecimento da falha da aco, devemos clicar no boto PARAR TODAS AS MACROS.

Figura II.9.4 Caixa de mensagem com a indicao de uma aco que falhou

9.3.2 Executar uma macro com recurso a um boto de comando


Na perspectiva de facilitar o acesso execuo de uma macro frequente a definio de BOTES DE COMANDO posicionados nos respectivos formulrios. Na VISTA DE ESTRUTURA do formulrio que incorporar o boto, devemos: 1. No friso, seleccionar o separador ESTRUTURA e, posteriormente, premir o boto ASSISTENTE DE CONTROLO que se encontra na seco CONTROLOS. 2. No mesmo separador do friso, seleccionar o boto BOTO DE COMANDO que se encontra na seco CONTROLOS. 3. Premir o rato no local onde se deseja colocar o canto superior esquerdo do boto de comando. Automaticamente o assistente do BOTO DE COMANDO ir aparecer no ecr. 4. Na caixa de dilogo possvel escolher a CATEGORIA e a respectiva ACO que o boto ir desempenhar. No caso de executar uma macro, devemos seleccionar a CATEGORIA Diversos e, posteriormente, seleccionar a ACO Executar macro.

Figura II.9.5 Assistente de BOTES DE COMANDO que sugere a seleco do tipo de aco que deve ter o boto

370

BASES DE DADOS COM MICROSOFT ACCESS 2007

5. Em seguida, escolher a macro que se pretende executar. 6. Na caixa de dilogo seguinte, o Access sugere a escolha de uma imagem ou texto que caracterize o boto. 7. Finalmente, na ltima caixa de dilogo, indicar o nome que ir identificar o BOTO DE COMANDO e premir o boto CONCLUIR.

9.3.3 Testar uma macro passo-a-passo


Ao testar uma macro passo-a-passo possvel confrontar os resultados das aces com os resultados esperados e actuar em conformidade, quer fazendo alteraes quer deixando tudo na mesma. Para executar uma macro passo-a-passo, devemos: 1. Visualizar a Macro no modo VISTA DE ESTRUTURA. 2. Activar o boto PASSO A PASSO no friso. 3. Clicar no boto EXECUTAR na mesma barra e na mesma seco FERRAMENTAS.

4. Na janela PASSO INDIVIDUAL, clicar no boto PASSO para executar a


primeira aco na macro.

Figura II.9.6 Caixas de mensagens associadas ao procedimento para testar uma macro passo-a-passo

5. Repetir o procedimento 4 at a macro terminar. Se a macro encontrar uma aco que no consegue executar, aparecer uma janela de mensagem que indicar a aco que falhou.

Identificao do erro

II.9 MACROS

371

Quando um erro ocorre, teremos de parar o processo, clicando no boto PARAR TODAS AS MACROS. Este processo identifica o nmero do erro associado ao problema. Com esta informao podemos requerer ajuda no Microsoft Online Knowledge Base.

9.4 CRIAO DE GRUPOS DE MACROS


Sempre que tivermos um conjunto de macros relacionadas e que devem ser executadas em grupo, o Access disponibiliza-nos um processo que permite gerir a base de dados mais facilmente: Criar Grupos de Macros. Quando o processo de execuo de um grupo de macros iniciado, a primeira macro no grupo ser executada com base na sua primeira aco, executando as aces seguintes at chegar ao nome de uma nova macro ou ltima aco da ltima macro. Para criar Grupos de Macros devemos: 1. Visualizar a macro no modo VISTA DE ESTRUTURA. 2. Activar o boto NOMES DE MACRO no friso.

3. Escrever um nome para o grupo de macros


junto da primeira aco na coluna NOME DA MACRO.

Figura II.9.7 Janela de Macros no modo VISTA DE ESTRUTURA com um grupo de macros

4. Guardar as alteraes. O grupo de macros apresentado na figura II.9.7, denominado por GestaoMenu, constitudo por duas macros relacionadas: AbrirMenu e FecharMenu. A primeira executa as aces AbrirFormulrio e Maxi-

372

BASES DE DADOS COM MICROSOFT ACCESS 2007

mizar, enquanto a segunda envia uma mensagem para o ecr (CxMsg) e fecha o formulrio (Fechar). Podemos executar uma macro de um grupo de macros escrevendo o nome do grupo de macros seguido de um ponto final e, em seguida, o nome da macro. No exemplo anterior, para referir a macro FecharMenu no grupo de macros Gesto Menu, deve escrever GestaoMenu. FecharMenu e, de seguida, pressionar OK.

Figura II.9.8 Procedimento para executar uma macro de um grupo de macros

9.5 CRIAR MACROS CONDICIONADAS


Este tipo de macros utiliza-se quando pretendemos executar uma aco, ou uma srie de aces, numa macro, apenas se uma determinada condio for verdadeira. As condies podem ser definidas utilizando nomes de campos, controlos, frmulas e funes do Access. Por exemplo, podemos criar uma macro que s imprima um relatrio nmero de registos a imprimir for maior que zero. Se utilizarmos macro condicional devemos definir uma expresso que seja alvo de avaliao por parte do Access. Assim, o Access s executa a aco referida expresso for verdadeira. Para criar Macros Condicionadas devemos: 1. Visualizar a Macro no modo VISTA DE ESTRUTURA. 2. Activar o boto CONDIES existente na seco MOSTRA/OCULTAR do friso. 3. Activar o boto CONSTRUTOR existente na seco FERRAMENTAS para abrir o construtor de expresses. se o uma uma se a

II.9 MACROS

373

Figura II.9.9 Janela do CONSTRUTOR DE EXPRESSES

4. Inserir uma expresso que o Access possa avaliar como verdadeira ou falsa. No nosso exemplo vamos inserir a expresso DCon-

tar(*;Vendas)>0 que verifica se o nmero de registos da


tabela Vendas superior a zero. 5. Guardar as alteraes. Quando executamos a macro, o Access avalia a primeira expresso condicional. Se a condio for verdadeira, executa a aco nessa linha e todas as aces imediatamente a seguir que sejam precedidas de reticncias (...) na coluna CONDIO. Se a condio for falsa, o Access ignora a aco e todas as aces imediatamente a seguir que sejam precedidas por reticncias na coluna CONDIO. Em seguida, sero executadas as outras aces na macro que tenham a coluna CONDIO em branco at chegar a outra expresso, ao nome de uma macro ou ao fim da macro.

Figura II.9.10 VISTA DE ESTRUTURA da Macro que contm uma condio

374

BASES DE DADOS COM MICROSOFT ACCESS 2007

9.6 ATRIBUIR MACROS A ACONTECIMENTOS


Consideremos um acontecimento como uma aco especfica que ocorre num objecto ou com um determinado objecto. Os acontecimentos podero ser uma qualquer actividade despoletada pelo utilizador como mover o rato, fazer clique ou duplo clique sobre um controlo, abrir ou fechar um formulrio, etc. Por exemplo, clicar num objecto ou num controlo o acontecimento Ao fazer clique (este acontecimento poder ocorrer no objecto boto). Poderemos tambm atribuir o acontecimento Ao entrar que ocorre quando um utilizador entra num campo clicando nele. Se pretendermos executar uma macro, como resposta a um acontecimento, teremos de configurar as propriedades do objecto, onde sero apresentados todos os acontecimentos aplicveis ao objecto em causa. Depois de depararmos com a janela das propriedades (figura II.9.11), escolhemos um acontecimento e, em seguida, especificamos a macro que ir ser executada quando ocorrer este acontecimento.

Figura II.9.11 Janela com as propriedades do controlo CdAutor com os respectivos acontecimentos

9.6.1 Atribuir uma macro a um acontecimento


Este procedimento normalmente utilizado quando a execuo de uma macro activada quando surge uma determinada alterao num controlo. Para atingir este objectivo devemos: 1. Visualizar o objecto no modo VISTA DE ESTRUTURA. 2. Seleccionar o objecto e clicar no boto FOLHA DE PROPRIEDADES existente na seco FERRAMENTAS do friso.

II.9 MACROS

375

3. Clicar no separador ACONTECIMENTO. 4. Seleccionar a caixa do acontecimento que pretendemos utilizar. 5. Clicar na caixa de combinao e, em seguida, clicar na macro que se pretende associar ao objecto (figura II.9.12).

Figura II.9.12 Seleco de uma macro na janela com as propriedades de um objecto

9.6.2 Criar uma nova macro para um acontecimento


No caso de pretendermos associar um acontecimento a uma macro que ainda no foi criada devemos: 1. Visualizar o objecto no modo VISTA DE ESTRUTURA. 2. Seleccionar o objecto e clicar no boto FOLHA DE PROPRIEDADES existente na seco FERRAMENTAS do friso. 3. Clicar no separador ACONTECIMENTO. 4. Clicar no acontecimento ao qual pretende atribuir uma macro. 5. Seleccionar o boto CONSTRUTOR.

Figura II.9.13 Opes do construtor

376

BASES DE DADOS COM MICROSOFT ACCESS 2007

6. Fazer duplo clique em CONSTRUTOR DE MACROS. 7. Escrever um nome para a macro e definir as aces da macro tal como foi explicado em 9.2.

9.7 EXERCCIO GUIADO


Para exemplificar a utilizao de macros na base de dados Editora, vamos criar uma macro que execute um conjunto de aces de uma forma automtica. O objectivo final desta macro ser o de imprimir o relatrio Mapa de Vendas.

Criar uma macro No separador CRIAR do friso seleccionamos o boto MACRO na seco OUTROS. Depois de depararmos com a janela de Macros no modo VISTA DE ESTRUTURA, colocamos o cursor na primeira linha da coluna Aco e seleccionamos a caixa de combinao de forma a escolher o tipo de aco que pretendemos utilizar. Considerando o nosso exemplo, vamos escolher a aco AbrirRelatrio e escrever um comentrio para descrever a aco. Devemos tambm especificar alguns argumentos para esta aco, nomeadamente o nome do relatrio e a vista a utilizar para a sua visualizao.

Figura II.9.14 Definio da aco AbrirRelatrio para a macro de Impresso do relatrio

Em seguida, vamos introduzir a aco Maximizar que permite visualizar o relatrio em toda a extenso da janela da base de dados. Em seguida, inserimos a aco CxMsg que ter um papel informativo. Na verdade, esta

II.9 MACROS

377

aco provocar o aparecimento de uma caixa que apresentar uma mensagem que antecede a impresso do relatrio.

Figura II.9.15 Definio da aco CxMsg para a macro de Impresso do relatrio

Finalmente, inserimos a aco que ir efectuar a impresso do relatrio.

Figura II.9.16 Definio da aco Imprimir para a macro de Impresso do relatrio

Agora que conclumos o processo de criao, vamos gravar a nossa macro com o nome Impresso de Mapa de Vendas. Executar a macro com o recurso a um boto de comando Na perspectiva de facilitar o acesso execuo desta macro, vamos inserir um boto de comando no menu principal. Assim sendo, na VISTA DE ESTRUTURA do formulrio Menu Principal, devemos: 1. No friso, seleccionar o separador ESTRUTURA e, posteriormente, premir o boto ASSISTENTES DE CONTROLO que se encontra na seco CONTROLOS. 2. No mesmo separador, premir o boto BOTO DE COMANDO que se encontra na seco CONTROLOS.

378

BASES DE DADOS COM MICROSOFT ACCESS 2007

3. Premir o rato no local onde se deseja colocar o canto superior esquerdo do boto de comando. Automaticamente o Assistente do BOTO DE COMANDO ir aparecer no ecr.

Figura II.9.17 Procedimentos adoptados no ASSISTENTE DE BOTES DE COMANDO para associar um boto a uma macro

4. Na primeira caixa de dilogo seleccionar a CATEGORIA Diversos e, posteriormente, seleccionar a ACO Executar macro. 5. Na segunda caixa de dilogo escolher a Impresso de Mapa de Vendas. 6. Na caixa de dilogo seguinte, escolher uma imagem ou texto que caracterize o boto. 7. Finalmente, na ltima caixa de dilogo, indicar o nome que ir identificar o BOTO DE COMANDO e premir no boto CONCLUIR.

Atribuir Macros a acontecimentos Vamos agora criar uma nova macro associada a um acontecimento. Como exemplo, vamos considerar o processo de registo de um novo livro na base de dados Editora. Suponhamos que ao introduzirmos a identificao do livro (ISBN) dever ser inserida de uma forma automtica a data de edio do mesmo, supostamente no dia em que este registo feito. Para salvaguardar esta situao, teremos de criar uma macro associada ao acontecimento de insero do ISBN do Livro. Assim, devemos abrir o formulrio Livros em VISTA DE ESTRUTURA e, em seguida, seleccionamos a caixa de texto referente ao ISBN e clicamos no boto FOLHA DE PROPRIEDADES existente na seco FERRAMENTAS do friso.

II.9 MACROS

379

Figura II.9.18 Definio do acontecimento Depois de actualizar referente ao controlo ISBN

Na janela das propriedades do controlo ISBN devemos seleccionar o acontecimento Depois de actualizar (figura II.9.18) e, em seguida, clicar no boto CONSTRUIR. Na janela (figura II.9.13) que aparecer no ecr seleccionamos CONSTRUTOR DE MACROS para termos a possibilidade de criar uma nova macro. Antes de definir as aces que compem a macro atribumos-lhe o nome Actualizar DataEdio.

Figura II.9.19 Janela que permite gravar a macro com o nome Actualizar DataEdio

Em seguida, vamos introduzir duas aces, a primeira apresentar um aviso com uma informao que antecipar a actualizao da data de edio e a segunda efectuar essa actualizao. Configure a macro com as aces e respectivos argumentos, tal como apresentado na figura II.9.20.

380

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.9.20 Definio das aces CxMsg e DefinirValor para a macro de actualizao da Data de Edio

Quando activar o formulrio Livros e proceder insero de um novo registo, atravs da insero de um novo ISBN do livro, visualizar a caixa de dilogo e depois de fazer OK ser feita a alterao automtica da Data de Edio.

Figura II.9.21 Resultado da execuo da macro depois de inserido um novo livro

II.10 Gesto da Base de Dados

10.1 SISTEMA DE NAVEGAO


Uma das principais preocupaes de quem desenvolve um Sistema de Gesto de Base de Dados o de facilitar o acesso aos diferentes objectos da mesma. Em vez de obrigarmos os utilizadores a percorrer a LISTA DE NAVEGAO procura do objecto pretendido, devemos disponibilizar um gnero de menu que permita escolher as opes atravs de um conjunto de botes (processo alternativo foi abordado em 7.11). Este tipo de menu ser desenvolvido atravs de um formulrio e ser muito til especialmente para os utilizadores que no tenham muita facilidade na utilizao do Access.

10.1.1 Construo do Painel de Navegao


Este formulrio funcionar como menu principal da aplicao. Nesse sentido vamos criar um painel de navegao com um conjunto de botes que permitam aceder a alguns objectos anteriormente criados: 1. No friso, seleccionar o separador FERRAMENTAS DA BASE DE DADOS e, posteriormente, premir o boto GESTOR DE PAINIS DE NAVEGAO que se encontra na seco FERRAMENTAS DA BASE DE DADOS. 2. Na primeira vez que efectuamos este procedimento na nossa base de dados, o Access, como no encontra nenhum Painel de Navegao, pergunta se pretendemos criar um painel. Clicamos em SIM.

382

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.10.1- Caixa informativa que alerta para o facto de no existir Painel de Navegao

3. Se o Painel j existir, aparecer no ecr uma caixa de dilogo que nos permite criar um novo, editar ou eliminar um j existente.

Figura II.10.2 Janela do Gestor de Painis de Navegao

4. Para acedermos pgina do Painel, premimos o boto EDITAR. Em seguida, premimos o boto NOVO para incluir as opes de menu.

Figura II.10.3 Escolha de um comando que ser associado ao Painel de Navegao

5. Para criar um novo comando no menu devemos inserir dois tipos de informao: texto que aparece como legenda e o comando que o Access executar quando o respectivo boto for accionado.

II.10 GESTO DA BASE DE DADOS

383

6. Repetimos os passos 4 e 5 at criarmos os comandos necessrios e s depois devemos premir o boto FECHAR.

Em resultado da criao do menu principal, poderemos ter um formulrio com o seguinte aspecto:

Figura II.10.4 Aspecto final de um menu de opes criado com o Gestor de Painis de Navegao

Um painel de navegao funciona como um simples formulrio. Assim sendo, podemos utilizar todo o tipo de procedimentos abordados no captulo 7, de forma a impor ao painel uma configurao personalizada.

10.1.2 Designao do Sistema de Navegao como formulrio de arranque da aplicao


Depois de concluirmos o desenvolvimento da aplicao, e no sentido de usarmos o Sistema de Navegao (Painel de Navegao) como plataforma para o acesso a todos os objectos anteriormente criados, ser conveniente apresentar este menu de uma forma automtica e imediata quando arrancarmos com o Access. Assim, devemos: 1. Aceder ao BOTO DO OFFICE. 2. No menu respectivo encontramos o boto OPES DO ACCESS. 3. Na caixa que aparece no ecr, seleccionar a opo BASE DE DADOS ACTUAL que se encontra na lista da esquerda.

384

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.10.5 Janela OPES DO ACCESS onde possvel definir o Painel de Navegao como formulrio de arranque da base de dados

4. Na seco OPES DA APLICAO seleccionar o nome do formulrio de arranque na caixa MOSTRAR FORMULRIO. Cada vez que executamos uma tarefa na nossa aplicao devemos retornar ao menu principal de forma a continuar o nosso trabalho. Para facilitar este processo devemos adicionar em cada formulrio um boto que nos permita retornar ao menu principal.

10.2 FAZER CPIAS DE SEGURANA


O processo automtico de gravao pode trazer problemas quando efectuamos uma alterao errada na nossa base de dados. Se formos rpidos na percepo desse erro, sempre podemos recorrer ao comando disponvel na BARRA DE FERRAMENTAS DE ACESSO RPIDO. DESFAZER Contudo, este comando s recupera as ltimas aces, no sendo til quando fechamos a nossa base de dados e a voltamos a abrir. Por esta razo ser conveniente fazer regularmente cpias de segurana da nossa base de dados. Para fazer estas cpias de segurana s temos de fazer a gravao numa nova pasta ou fazer uma gravao com outro nome. Para efectuar a gravao de uma cpia de segurana devemos: 1. Seleccionar o BOTO MICROSOFT OFFICE.

II.10 GESTO DA BASE DE DADOS

385

2. No menu, escolher a opo GERIR. 3. Finalmente, escolher CRIAR CPIA DE SEGURANA DA BASE DE DADOS no respectivo submenu.

Figura II.10.6 Opo para a criao de uma cpia de segurana da base de dados

O Access criar uma cpia da nossa base de dados com o nome e com a localizao que ns definirmos na janela da figura II.10.7. Na janela de gravao, o Access prope um nome muito sugestivo para a nossa base de dados, pois inclui o nome original e a data em que a cpia de segurana foi feita. Desta forma, se tivermos vrias cpias de segurana podemos facilmente saber qual a mais recente.

Figura II.10.7 Janela para a gravao da base de dados na localizao pretendida

10.3 UTILIZAR UMA PALAVRA-PASSE PARA ENCRIPTAR UMA BD


O objectivo desta ferramenta de encriptao no Access 2007 o de tornar os dados ilegveis por parte de outras ferramentas bem como obrigar os utilizadores a identificar-se (introduzir uma palavra-passe) para utilizar a

386

BASES DE DADOS COM MICROSOFT ACCESS 2007

base de dados. De salientar que a encriptao aplicada no Access 2007 utiliza um algoritmo mais forte do que aquele que utilizado em verses anteriores do Access.

10.3.1 Encriptao utilizando uma palavra-passe


Os passos seguintes explicam como criar e aplicar uma palavra-passe a uma base de dados do Office Access 2007. 1. Abrir a base de dados que pretendemos encriptar em modo exclusivo. Para isso, devemos clicar no BOTO MICROSOFT OFFICE e, em seguida, seleccionamos a opo ABRIR. 2. Na caixa de dilogo ABRIR, seleccionamos o ficheiro que pretendemos abrir. 3. Clicamos na seta junto ao boto ABRIR e seleccionamos a opo ABRIR EM MODO EXCLUSIVO.

Figura II.10.8 Menu da opo ABRIR

4. No separador FERRAMENTAS DA BASE DE DADOS da seco FERRAMENTAS DA BASE DE DADOS, seleccionamos o boto ENCRIPTAR COM PALAVRA-PASSE. 5. Na caixa PALAVRA-PASSE, escrever a palavra-passe e voltar a escrev-la no campo CONFIRMAR.

Figura II.10.10 Caixa de dilogo para definir a Palavra-passe da base de dados

6. Finalizamos clicando no boto OK.

II.10 GESTO DA BASE DE DADOS

387

10.3.2 Desencriptar e abrir uma base de dados


Obviamente que fundamental que nos recordemos da palavra-passe, pois no caso de a esquecermos no existe nenhum mtodo para a recuperar. Assim, para desencriptar e abrir uma base de dados devemos: 1. Abrir a base de dados encriptada da mesma forma que abrimos qualquer outra base de dados. 2. Escrever a palavra-passe na caixa INTRODUZA A PALAVRA-PASSE DA BASE DE DADOS.

Figura II.10.11- Caixa de dilogo para introduzir a palavra-passe necessria

3. Finalizamos clicando no boto OK.

10.3.3 Remover uma palavra-passe


Quando removemos uma palavra-passe de uma base de dados, poderemos restaur-la em qualquer altura (ou utilizar outra palavra-passe) repetindo os passos enunciados em 10.3.1. Os passos seguintes permitem remover uma palavra-passe: 1. Abrir a base de dados que pretendemos encriptar em modo exclusivo. Para isso, devemos clicar no BOTO MICROSOFT OFFICE e, em seguida, seleccionar a opo ABRIR. 2. Na caixa de dilogo ABRIR, seleccionamos o ficheiro que pretendemos abrir. 3. Clicamos na seta junto ao boto ABRIR e seleccionamos a opo ABRIR EM MODO EXCLUSIVO. 4. No separador FERRAMENTAS DA BASE DE DADOS da seco FERRAMENTAS DA BASE DE DADOS, seleccionamos o boto DESENCRIPTAR BASE DE DADOS. 5. Na caixa PALAVRA-PASSE, escrever a palavra-passe e clicar em OK.

388

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.10.12 Caixa de dilogo para anular a palavra-passe

10.4 SEGURANA PARA BASES DE DADOS DISTRIBUDAS


Quando uma base de dados usada localmente, ou seja, numa rede local ou num computador pessoal, temos a possibilidade de controlar quem lhe acede quer numa perspectiva de utilizao quer numa perspectiva de desenvolvimento. Contudo, quando a nossa base de dados distribuda para o exterior, ento bem provvel que possamos perder esse controlo. Por razes de segurana possvel criar uma base de dados executvel (ACCDE) que impossibilite a alterao das suas caractersticas estruturais. Na verdade, a criao de um ficheiro ACCDE tem tambm como consequncia o facto de este diminuir o tamanho da base de dados e optimizar o respectivo desempenho. Embora atravs de um processo semelhante, as anteriores verses do Access representavam as bases de dados executveis por ficheiros com extenso MDE (Microsoft Database Executable). Com o Access 2007 as bases de dados executveis so representadas por ficheiros com extenso ACCDE. De salientar que esta aco de gravao de uma base de dados em formato ACCDE impede a ocorrncia de vrios procedimentos, designadamente: Visualizar, editar e criar Formulrios, Relatrios e Mdulos na Vista de Estrutura; Importar ou exportar Formulrios, Relatrios ou Mdulos; Alterar ou eliminar referncias a outros objectos da base de dados; Modificar cdigo VBA.

Para criar uma base de dados em formato ACCDE devemos:

II.10 GESTO DA BASE DE DADOS

389

1. No friso, seleccionar o separador FERRAMENTAS DA BASE DE DADOS e, posteriormente, premir o boto CRIAR ACCDE que se encontra na seco FERRAMENTAS DA BASE DE DADOS. 2. Na caixa de dilogo (GUARDAR COMO) que aparece no ecr, devemos indicar o nome da base de dados.

Figura II.10.13- Caixa de dilogo GUARDAR COMO

Quando o Access cria uma base de dados executvel, representa graficamente a mesma com um cadeado azul em cima do cone padro do Access, tal como se apresenta na figura seguinte.

Figura II.10.14 Representao atravs de um cone de uma base de dados executvel

10.5 DIVISO DE BASE DE DADOS


Com o Access possvel dividir uma base de dados em dois ficheiros: um que contenha as tabelas e um que contenha as consultas, formulrios, relatrios, macros e mdulos. Desta forma, os utilizadores que precisem de aceder aos dados podem personalizar os formulrios, relatrios, pginas e outros objectos, mantendo uma nica origem de dados na rede.

390

BASES DE DADOS COM MICROSOFT ACCESS 2007

Com o intuito de evitar erros com consequncias graves na diviso da base de dados, devemos certificar-nos que todos os objectos que a compem esto efectivamente fechados. Sugere-se ainda que antes de iniciar o processo de diviso seja criada uma cpia de segurana da base de dados, por forma a salvaguardar a estrutura original. Para dividir uma base de dados devemos: 1. Abrir a base de dados que pretendemos dividir. 2. No friso, seleccionar o separador FERRAMENTAS DA BASE DE DADOS e, posteriormente, premir o boto BASE DE DADOS DO ACCESS que se encontra na seco MOVER DADOS. 3. Ser despoletado o ASSISTENTE DIVISOR DE BASE DE DADOS. Na primeira caixa de dilogo, confirmamos o objectivo de dividir a base de dados.

Figura II.10.15 Janela que permite confirmar a diviso da base de dados

4. Em seguida, indicamos qual o local onde dever ser criada a base de dados que ir conter a tabela de dados (Back-end).

Figura II.10.16 Janela para criar a base de dados Back-end

II.10 GESTO DA BASE DE DADOS

391

5. A informao apresentada no quadro seguinte confirma-nos que a diviso foi feita com sucesso.

Figura II.10.17 Janela confirma que a diviso foi feita com sucesso

Depois de concluir o processo de diviso, podemos confirmar que existem dois ficheiros .accbd em ligao e que os PAINIS DE NAVEGAO do mesmo apresentam as seguintes configuraes.

Figura II.10.18 Configuraes dos PAINIS DE NAVEGAO das bases de dados divididas

10.6 ANALISAR O DESEMPENHO


Utilizando as potencialidades mais avanadas do Access na gesto da base de dados podemos, em qualquer altura, avaliar o desempenho dos respectivos objectos. Efectivamente, as possibilidades de anlise distribuem-se por qualquer objecto em particular ou por todos simultaneamente. O Analisador de desempenho apresenta uma lista de trs tipos de resultados da anlise: RECOMENDAO, SUGESTO e IDEIA. O tratamento destes resultados feito quando clicamos num item na lista RESULTADOS DA ANLISE. Nessa altura so apresentadas informaes sobre a optimizao proposta, na caixa NOTAS DA ANLISE existente por baixo da lista. Para executar esta funcionalidade devemos: 1. Abrir a base de dados do Access que desejamos optimizar.

392

BASES DE DADOS COM MICROSOFT ACCESS 2007

2. No separador FERRAMENTAS DA BASE DE DADOS, seleccionar a opo ANALISAR DESEMPENHO. 3. Clicar no separador que corresponde ao tipo de objecto que desejamos optimizar. Em alternativa, clicar no separador TODOS OS TIPOS DE OBJECTO para ver uma lista de todos os objectos de base de dados ao mesmo tempo.

Figura II.10.19 Seleco dos objectos a analisar

4. Seleccionar os nomes dos objectos da base de dados que desejamos optimizar. Em alternativa, clicar no boto SELECCIONAR TUDO para seleccionarmos todos os objectos de bases de dados existentes na lista. 5. Repetir os passos 3 e 4 at seleccionar todos os objectos que desejamos optimizar e, em seguida, clicamos em OK.

Figura II.10.20 Resultados da anlise de desempenho da base de dados Editora

6. Na janela com os resultados da anlise, seleccionamos uma ou mais optimizaes do tipo RECOMENDAO ou SUGESTO que desejamos efectuar e, em seguida, clicamos em OPTIMIZAR.

II.10 GESTO DA BASE DE DADOS

393

O ANALISADOR DE DESEMPENHO efectua as optimizaes e, em seguida, marca-as como CORRIGIDO. Continuamos este processo at que o ANALISADOR DE DESEMPENHO tenha concludo todas as RECOMENDAES e SUGESTES que desejamos que sejam efectuadas. Para efectuar todas as optimizaes do tipo RECOMENDAO ou SUGESTO clicamos em SELECCIONAR TUDO e, em seguida, clicamos em OPTIMIZAR. Para efectuar uma optimizao do tipo IDEIA, clicamos na optimizao e, em seguida, tratamos as instrues apresentadas na caixa NOTAS DA ANLISE.

10.7 ANALISAR TABELAS


O Access disponibiliza um assistente bastante til para os utilizadores que tenham dificuldade na estruturao de dados e que se deparam com tabelas de grande dimenso. Efectivamente, se a nossa base de dados contiver uma tabela enorme, com informaes repetidas num ou mais campos, podemos utilizar o assistente ANLISE DE TABELAS para dividir os dados em tabelas relacionadas. Este processo baseado na tcnica de estruturao de dados denominada Normalizao e que foi abordada na primeira parte deste livro. Com efeito, a ANLISE DE TABELAS divide uma tabela que contm informaes repetidas, em tabelas separadas mais pequenas, nas quais cada tipo de informao armazenado apenas uma vez. De referir tambm que as relaes entre as tabelas resultantes sero implementadas automaticamente (ou com o auxlio do utilizador). Para explicar a utilizao deste assistente, vamos utilizar uma tabela que contm os nomes dos revisores de livros da Editora e cuja informao associada, contempla apenas a Localidade onde estes residem e as respectivas reas de investigao.

Figura II.10.21 Tabela adoptada na utilizao do assistente ANALISAR TABELAS

394

BASES DE DADOS COM MICROSOFT ACCESS 2007

Como podemos constatar na tabela apresentada na figura II.10.21, embora esta seja muito pequena, existe informao repetida que contraria os bons princpios da estruturao de dados. A sua optimizao ser feita com base nos seguintes passos: 1. Abrir a base de dados do Access que contm a tabela que desejamos optimizar. 2. No separador FERRAMENTAS DA BASE DE DADOS, seleccionamos a opo ANALISAR TABELA. 3. Nas duas primeiras caixas de dilogo do assistente devemos ler os objectivos a atingir por esta opo. Se necessrio, devemos tambm consultar os exemplos que fundamentam essa explicao.

Figura II.10.22 Caixas do assistente com carcter informativo

4. Em seguida, indicamos o nome da tabela que ser analisada.

Figura II.10.23 Caixa que permite seleccionar a tabela a analisar

5. Na caixa seguinte, devemos decidir sobre a forma de realizar a diviso da tabela. Se deixarmos o assistente decidir, o Access far a anlise ao contedo dos campos da tabela. Nos campos

II.10 GESTO DA BASE DE DADOS

395

onde encontrar repeties, far a cpia dos mesmos para novas tabelas onde sero criadas chaves primrias que salvaguardam as relaes entre tabelas.

Figura II.10.24 Caixa de dilogo do assistente que permite seleccionar o modo da operao da optimizao da tabela

6. No seguinte quadro, constatamos que o Access dividiu a original em vrias tabelas, consagrando a existncia de novos campos chave primria e de ligao (um-para-muitos).

Figura II.10.25 Caixa de dilogo do assistente que apresenta a sugesto do Access para a optimizao da Tabela1

7. Devemos ainda alterar o nome das tabelas resultantes da diviso proposta pelo Access, seleccionando a tabela e clicando no boto . No caso de pretendermos ajuda ou sugestes do Access seleccionamos o boto .

396

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura II.10.26 Caixa de dilogo do assistente que apresenta a sugesto do Access com os novos nomes para as tabelas

8. Finalmente, o Access sugere a criao de uma consulta para facilitar a utilizao das tabelas relacionadas em futuros formulrios e relatrios, preservando a tabela original.

Figura II.10.27 Caixa de dilogo do assistente que apresenta as opes finais

PARTE III

O VBA (Microsoft Visual Basic for Applications) uma linguagem de programao que permite manipular os diversos objectos existentes na Base de Dados. A sua utilizao permite ao utilizador mais experiente a realizao de tarefas tais como a tomada de uma deciso e a repetio de vrias aces, tarefas estas que so impossveis de realizar sem o recurso a uma ferramenta de prgramao. Neste captulo so abordados os vrios conceitos da estrutura VBA e sua metodologia, que permitiro ao utilizador, de uma forma clara, usar o recurso informao, quer para pesquisa, alterao ou aperfeioamento com o objectivo de tornar mais eficiente e amigvel o tratamento de dados.

III.1 Introduo programao em VBA

O objectivo desta Parte III fornecer um conjunto de noes bsicas e exemplos de programao em VBA que permitam ao leitor, com uma razovel experincia na utilizao do Microsoft Access 2007, construir pequenos programas que aumentem a eficincia e optimizao das suas bases de dados. Ao longo deste captulo sero abordados, de uma forma detalhada, os vrios aspectos de programao em Visual Basic for Applications, bem como situaes de programao que, embora associadas ao contexto da base de dados exemplo Editora Centro Atlntico (figura III.1.1), facilmente se adaptaro s bases de dados a criar pelo leitor.

Figura III.1.1 Abertura da Base de Dados Editora Centro Atlntico

III.2
Caractersticas da programao em VBA

2.1 PROGRAMAO ORIENTADA POR OBJECTOS


Com a utilizao do VBA, o utilizador estar a tomar conhecimento dos diversos objectos existentes no VBA Object Basic (derivado do Visual Basic), o qual tambm a base do Visual Basic for Applications (VBA), que , actualmente, o suporte de programao nas principais aplicaes do Microsoft Office. Deste modo, aumenta-se a eficincia do programador que encontrar mtodos semelhantes no Word, Excel, Project, Access 2007, etc. O utilizador que j possua alguma experincia de programao ir encontrar muitos conceitos e estruturas familiares, como variveis, condies e ciclos repetitivos, entre outros. O VBA uma linguagem de programao estruturada que permite gerir as estruturas de dados e os objectos concebidos pelo prprio Access. Uma das necessidades mais importantes a alterao da forma de pensar do programador. Torna-se fundamental ter sempre presente que o VBA no Access 2007 manipula objectos que vo desde a prpria base de dados, passando pelos nossos conhecidos formulrios, relatrios e consultas, at janelas, caixas de dilogo, folhas de clculo do Excel e documentos do Word. Por outro lado, encontra-se uma filosofia de eventos (aces reconhecidas por um objecto), aos quais se associam determinados mtodos, instrues e funes de VBA, que j se encontram disponveis na prpria linguagem, como por exemplo: Efectuar um clculo num formulrio, aps a escolha de uma determinada opo (OnClick) ou depois de passar com o rato sobre um boto (OnMouseMove); Verificar se um valor ou no vlido, aps a sua alterao (After Update);

402

BASES DE DADOS COM MICROSOFT ACCESS 2007

Activar um conjunto de configuraes do ambiente de trabalho, quando aberto um determinado formulrio (OnOpen);

No entanto, e porque este captulo parte do princpio de que o utilizador no um programador experiente, sero abordados todos os conceitos bsicos necessrios.

2.2 O AMBIENTE DE DESENVOLVIMENTO DO VBA


Como j referimos, o Microsoft Access 2007 suporta a linguagem de programao orientada por objectos VBA, possuindo para tal estruturas prprias, tais como: coleces, objectos, propriedades, mtodos e eventos (figura III.2.1), que passaremos a descrever.

OBJECTOS Tm Associadas
OBJECTS

Tm Associados MTODOS
METHODS

Podem Responder a

PROPRIEDADES
PROPERTIES

EVENTOS
EVENTS

CDIGO
Que constitui a resposta a cada evento

Fig III.2.1 Forma esquemtica de alguns dos elementos fundamentais da programao em VBA

2.2.1 Objectos e Classes


O Visual Basic for Applications uma linguagem de programao orientada por objectos, como j foi referido. Os objectos so entidades das

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

403

mais diversas origens, tais como carros, telemveis, vdeos, etc. Os objectos no VBA possuem propriedades, executam mtodos e respondem a eventos. Os objectos, tal como acontece na vida real, so agrupados por modelos ou espcies (um Nokia 9200, Nokia 9300, Nokia 9500 pertencem classe dos telemveis), tambm em VBA os objectos, por exemplo, Texto1, Texto2, Texto3, num formulrio, pertencem todos classe Caixa de Texto (TextBox). O objecto Aplicao (Application) considerado o objecto de mais alto nvel da aplicao de base de dados, e a ele so acopladas todas as coleces de objectos abertos no momento: Formulrios (Forms), Relatrios (Reports) e Mdulos (Modules). Cada um dos formulrios e relatrios contm, por sua vez, uma coleco de controlos. O objecto Aplicao possui ainda dois objectos especiais: o objecto Screen1 e o objecto DoCmd2. O objecto Screen possui algumas propriedades particularmente importantes e teis: ActiveControl, ActiveDataSheet, ActiveForm, ActiveReport, PreviousControl e MousePointer. O objecto DoCmd permite executar a maior parte das aces das macros no VBA (figuras III.2.2 e III.2.3).

Figura III.2.2 Cdigo exemplificativo da utilizao dos objectos Screen e DoCmd


1

O objecto Screen pode ser utilizado para referenciar em particular um formulrio, relatrio ou controlo, que esteja activo naquele momento. O objecto DoCmd permite que ao serem utilizados os vrios mtodos deste objecto possamos executar diversas aces do Microsoft Access 2007 a partir do Visual Basic for Applications. Por exemplo, podemos utilizar o mtodo OpenForm do objecto DoCmd para abrir um formulrio.
2

404

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.2.3 Resultado do formulrio na utilizao dos objectos Screen e DoCmd

2.2.2 Propriedades e Mtodos


Em programao, o conceito de objecto tem associado a si no apenas o conceito de propriedade como tambm o conceito de mtodo. As propriedades e os mtodos caracterizam a aparncia e o comportamento dos objectos. As propriedades assumem valores e os mtodos fazem executar operaes. A forma (sintaxe) de interligar um mtodo ou uma propriedade a um objecto3 a seguinte: objecto.propriedade ou objecto.mtodo. Por exemplo, TxtCodigo.BackColor especifica a propriedade da cor de fundo do objecto caixa de texto (TextBox) TxtCodigo num determinado formul-

3 O termo objecto est aqui referido no sentido de objecto individual (controlo) ou como coleco de objectos.

III.2 CARAC CTERSTICAS DA PRO OGRAMAO EM VBA V

405

rio. Out tro exemplo o ser Form ms.Item (0) ), que se re efere ao primeiro formulrio da coleco. osoft Acces ss 2007 numera os ob bjectos den ntro de uma a coleco a O Micro partir de e zero (0) at a NomeCo oleco.Co ount - 1. Po or exemplo, , poderamo os determinar o nme ero de form mulrios abe ertos por re eferncia propriedad de d Coleco Formulri ios: Forms. .Count. Count da Podemo os ter aces sso s prop priedades de d um obje ecto da bas se de dado os quando nos encon ntramos no modo de exibio e Modo Des sign (Desig gn F de Propriedad P des ou ent to, clicamos no men nu View) e opo Folha Ferram mentas de Base de Dados D e op po Folha a de Propr riedades (figura III.2.4 e figura a III.2.5, respectivamen nte).

Fi igura III.2.4 Acesso s prop priedades dos objectos pela a barra de ferr ramentas

406

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.2.5 Acesso s propriedades dos objectos atravs do menu

Quando se pretende aplicar uma aco a um objecto da base de dados (por exemplo, abrir uma consulta como um conjunto de registos ou passar para a linha seguinte de um conjunto de registos), aplica-se um mtodo de objecto ou de uma varivel de objecto, que esteja definido para referenciar o objecto.

III.2 CARAC CTERSTICAS DA PRO OGRAMAO EM VBA V

407

Os mtodos (relac cionados co om os objec ctos) so menos m evide entes que a as dades. Enquanto as pr ropriedades s de um obj jecto podem m ser visua alipropried zadas numa n caixa a prpria para isso ex xistente na fase de desenho, n o existe no n ambiente e de trabalh ho nada se emelhante que q nos per rmita identificar os mtodos m de e cada obje ecto. No ent tanto, o Editor de Visu ual Basic d do Microso oft Access 2007 2 (figura a III.2.6) of ferece-nos uma ajuda bastante til nesta questo. Quando escre evemos o no ome de um objecto numa instru o go, associa ado a um ev vento, na fa ase de dese enho, o Edit tor de Visu ual de cdig Basic do d Microsof ft Access 20 007 faz apa arecer uma a caixa de listagem com todas as proprieda ades e mto odos previs stos para o tipo de obje ecto em causa (figura III.2.7).

F Figura III.2.6 Acesso ao Ed ditor de Visual Basic do Mi icrosoft Acces ss 2007

Figu ura III.2.7 Caix xa de listagem m com propried dades e mtodos referente ao objecto

40 08

BASES A DE DADOS CO OM MICROSOFT ACCESS C 2007

Mu uitos mtod dos aceitam m parmetr ros que permitem esp pecificar me elhor o mo odo de actu uao do mtodo m sobr re o objecto o. Por exem mplo, pode-s se indi4 car ao mtodo OpenRec cordset se e este est a criar um conjunto de e regiss de uma ta abela local, um conjunt to dinmico ou apenas s uma cpia a s patos ra leitura. m outro exemplo espe ecialmente importante e o objec cto DoCmd d, visto Um int teragir com uma grand de quantida ade de mtodos a utilizar por qu ualquer utilizador nos s vrios est gios do de esenvolvime ento dos se eus program mas. O oCmd poss sui muitos mtodos, tais como o, Close, OpenForm O , Goto Do Co ontrol, Find dRecord, RunComma R and e muito os outros (fig gura III.2.8) ).

Figura II II.2.8:Alguns Mtodos M do ob bjecto DoCmd d

uitos dos mtodos m do DoCmd re equerem arg gumentos que q especif ficam a Mu for rma de actuar do mt todo e, por r vezes, req querem tam mbm argum mentos op pcionais. Se empre que o utilizador r no espec cifique valo ores para os s argume entos opcio onais, o mt todo utiliza os valores por omiss o para o parme4

E Este mtodo permite p acede er/abrir os registos de uma tabela atrav s do objecto Recordset t. O objecto Recordset R a representao dos regis stos de uma tabela numa base de dad dos. Para utili izar o objecto Recordset te er que recor rrer-se a um outro o objecto, de nvel sup perior, que o Database. Este E objecto re epresenta uma base de dad dos aberta. Po or exemplo o, para abrir a tabela TPacientes implica a as seguintes s instrues: set Bas seDeDados=O OpenDatabase e(Editora.mdb b); Set Tab belaAutores=B BaseDeDados s.OpenRecord dset(Autores, ,dbOpenTable e). As s variveis Ba aseDeDados e TabelaAuto ores so vari veis que ref ferenciam os objectos Da atabase e Rec cordset, logo designam-se por variveis-objecto. Este e e outros obje ectos sero o alvo de estud do mais aprof fundado no po onto III.3 (Mod delo de Objec ctos) deste ca aptulo.

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

409

tro. Por exemplo, sempre que haja necessidade de fechar um formulrio no Microsoft Access 2007, podemos utilizar o mtodo Close do objecto Do Cmd. Este mtodo possui dois argumentos obrigatrios e um opcional. O primeiro argumento obrigatrio indica o tipo de objecto a fechar. Quando se pretende fechar um formulrio utiliza-se acForm (acForm uma constante intrnseca5. Estas constantes so fornecidas pelo Microsoft Access 2007, VBA, ADO ou DAO). O segundo argumento requer o nome do formulrio. O argumento opcional diz ao Microsoft Access 2007 se deve ou no gravar qualquer alterao que tenha sido feita no formulrio, atravs de acSaveYes, caso se pretenda gravar, ou acSaveNo caso contrrio. Podemos invocar o mtodo Close (figura III.2.9) utilizando a seguinte sintaxe:

DoCmd.Close acForm, "Menu Principal EDITORA CENTRO ATLNTICO", acSaveYes

Figura III.2.9 O mtodo Close e os seus argumentos

Muitos dos mtodos do DoCmd esto direccionados para um objecto individual (controlo), como por exemplo o mtodo GotoControl que atribui o focus6 a um controlo especfico no formulrio. Tambm poderamos utilizar o mtodo SetFocus com o mesmo objectivo.

As constantes intrnsecas so constantes fornecidas pelo Microsoft Access 2007, VBA, ADO ou DAO. Quando so fornecidas pelo Microsoft Access 2007, os dois primeiros caracteres iniciam-se com ac, que quer dizer Access. Se so do Visual Basic for Application iniciam-se com os caracteres vb, que quer dizer Visual Basic, etc. Estas constantes esto disponveis no localizador de objectos (Object Browser) que se encontra no menu Ver (View) da janela VBE (Editor de Visual Basic).
6

Focus o nome dado ao estado de um controlo, quando este se encontra activo.

410

BASES A DE DADOS CO OM MICROSOFT ACCESS C 2007

2.2 2.3 Evento os


Em m VBA um evento basicament te uma res sposta de um u objecto a uma ord dem ou ac o do utiliz zador, a partir de cdig go escrito previamente p e e que co onstitui o pr rocedimento o (procedu ure). O evento Click, por exemplo, que utilizamos na a nossa aplicao, res sponde pr resso do dedo d do utilizador obre a tecla esquerda do d rato em cima do co ontrolo Bo oto de Com mando, so ex xecutando o cdigo que e lhe foi inserido. Ca ada objecto possui um conjunto de eventos associados. a . Para sabe er quais ba asta um cliq que na seta a colocada direita da a caixa de eventos, e na a janela de e cdigo, ac co que ab bre uma lista a de evento os.

Figura a III.2.10 Algun ns Eventos po ossveis do obj bjecto Formul rio (Form)

sta lista de eventos po ode ser perc corrida com m recurso barra de de eslocaEs me ento. Para alm a do eve ento Click, temos muit tos outros eventos e com mo, por ex xemplo, qua ando se trab balha com formulrios f e se preten nde validar dados, ac ctivar ou desactivar controlos, troc car o contro olo que pos ssui o focus, abrir um m formulrio o e fechar um formul rio. A ttul lo de exem mplificao, vamos criar um proc cedimento de d evento associado a um Rtu ulo (Label) com o vento MouseMove: ev

Fig gura III.2.11 Evento E MouseM Move aplicado o ao objecto Rtulo24 R

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

411

Sempre que se passe com o ponteiro do rato por cima (MouseMove) do objecto Rtulo (Editora) que contm o texto Editora Centro Atlntico) por aco do mtodo Move, este desloca-se em conformidade com os valores aleatrios (Funo RND) arbitrados pelos argumentos do mtodo (figura III.2.12).

Rtulo24.Move Int((1000 - 700 + 1) * Rnd + 700), Int((2300 - 1300 + 1) * Rnd + 1300), 2380, 500
Figura III.2.12 Cdigo associado ao mtodo Move

Este mtodo apresenta quatro parmetros: esquerda (left), superior (top), largura (width), altura (Height). O primeiro obrigatrio e os restantes trs so facultativos. Neste exemplo, para os valores destes parmetros utilizamos duas funes RND e INT de forma a gerar valores aleatrios para estes quatro parmetros. Como a funo RND gera valores decimais entre zero e um, houve necessidade de recorrer funo INT para converter os valores decimais para inteiros. Tambm tivemos que enquadrar valores, por exemplo, para o parmetro esquerda necessitamos de valores aleatrios no entre zero e um, mas sim entre mil (1000) e setecentos (700). O resultado apresenta-se nas figuras III.2.13 e III.2.14:

Figura III.2.13 Aplicao do evento MouseMove

412

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.2.14 Resultado da aplicao do evento e mtodo Move

2.3 PROCEDIMENTOS E MDULOS


Um conjunto de instrues escritas em Visual Basic for Application criado no interior de unidades designadas por procedimentos. Existem trs tipos de procedimentos: SubProcedimentos (Sub) ou SubRotinas, Funes (Functions) e Propriedades Procedimentais (Property Procedures). Estes ltimos no fazem parte do mbito deste livro. Os procedimentos contm dentro de si conjuntos de instrues que executam determinadas aces sobre os objectos, controlos ou dados da Base de Dados. O cdigo elaborado em VBA, existente em procedimentos, armazenado no interior de Mdulos. O Microsoft Access 2007 oferece-nos tipos de mdulos distintos: Mdulos pertencentes classe de objectos do Microsoft Access 2007 (Microsoft Office Access Class Objects), Mdulos Padro e Mdulos de Classe. Os mdulos pertencentes classe de objectos do Microsoft Access 2007 esto normalmente associados a formulrios e relatrios, sendo muitas vezes designados por mdulo de formulrio ou mdulo de relatrio. Esta caracterstica designada por Code Behind Forms. Sendo assim, podemos associar a cada um destes objectos, e por sua vez aos seus contro-

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

413

los, um conjunto de procedimentos que sero carregados em memria sempre que o formulrio ou relatrio seja activado. Estes procedimentos so associados a eventos de determinados controlos, pelo que sero designados de procedimentos de eventos (figura III.2.15).

Figura III.2.15 Mdulo de Classe ou Mdulo de Formulrio

Os Mdulos Padro so mdulos criados como objectos da Base de Dados onde armazenado cdigo que pretendemos utilizar a qualquer momento, em qualquer objecto da Base de Dados. Podemos tambm associar a estes mdulos um conjunto de procedimentos, isto , o cdigo de programao em VBA deve ser desenvolvido em procedimentos, que sero guardados dentro destes mdulos (figura III.2.16).

Figura III.2.16 Mdulo Padro

Os mdulos de Classe so utilizados quando se pretende criar novas classes. Estes mdulos podem conter a definio de um novo objecto. Quando criada uma nova instncia de uma classe, criado o novo objecto. Os procedimentos definidos nestes mdulos tornam-se as propriedades e os mtodos desse objecto (figura III.2.17).

414

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.2.17 Mdulo de Classe

Concluindo, em VBA podemos utilizar Mdulos pertencentes classe de objectos do Microsoft Access 2007, Mdulos de Classe e Mdulos Padro, sendo todos eles constitudos por procedimentos que podem ser Funes, SubProcedimentos ou Propriedades de Procedimentos, conforme representado na figura seguinte (figura III.2.18):

Projecto em Visual Basic for Application

Mdulos de Classe

Mdulos pertencentes classe de objectos do Microsoft Access 2007

Mdulos Padro

Procedimentos

Funes

SubProcedimentos

Prop. de Procedimentos

Figura III.2.18 Organizao do Cdigo em Visual Basic for Applications

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

415

2.3.1 SubProcedimentos
So procedimentos que executam uma determinada aco, no devolvendo qualquer valor. Estes procedimentos consistem numa srie de instrues em VBA que se encontram entre a palavra reservada SUB e END SUB. A palavra reservada SUB obriga a dar o nome para o SubProcedimento, sendo automtico quando este se encontra ligado a um evento de um determinado objecto (figura III.2.19).

Figura III.2.19 SubProcedimento e SubProcedimento ligado a evento

Os nomes dos SubProcedimentos devem iniciar-se com uma letra e no podem conter mais do que 255 caracteres. Tambm no possvel usar palavras reservadas do VBA e nomes de funes. Os SubProcedimentos podem conter parmetros que sero colocados aps o nome do SubProcedimento entre parnteses. Caso contenha mais do que um parmetro, estes so separados por vrgulas. Uma forma fcil, na familiarizao de SubProcedimentos, consiste na utilizao de um assistente de botes de comando. Estes procedimentos descritos com base nas aces desejadas so geralmente simples e de fcil compreenso, permitindo uma aprendizagem eficaz. Para tal o utilizador s tem que escolher o controlo Boto de Comando e de imediato o assistente activado permitindo escolher uma entre vrias aces para uma determinada categoria (figura III.2.20).

416

BASES A DE DADOS CO OM MICROSOFT ACCESS C 2007

Figura III.2.20 I Assiste ente de botes s de comando o

m seguida, o assistent te cria um SubProced dimento, on nde gera o cdigo Em ne ecessrio pa ara realizar r a aco pretendida p em relao o ao boto de coma ando escolh hido (figura III.2.21).

Figura III I.2.21 SubPro ocedimento ge erado pelo Ass sistente Bote es de Comand do

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

417

Podemos criar procedimentos com instrues VBA atravs de duas formas: ou abrimos a janela de cdigo para um procedimento a realizar por aco de um evento, ou ento criamos um procedimento normal, sem ser desencadeado por um evento. Neste caso, podemos optar pelo item Ferramentas, existente no menu do Microsoft Access 2007, escolher a opo Macro e em seguida optar pelo item Editor do Microsoft Visual Basic. Podemos, ainda, estando situados no Editor de Visual Basic (VBE), escolher a opo Inserir [Insert] existente no menu, em seguida escolher a opo Procedimento [Procedure] e por ltimo o item SubProcedimento [Sub]. Devemos terminar esta opo escrevendo o nome para o SubProcedimento (figuras III.2.22 e III.2.23).

Figura III.2.22 Criar um novo Procedimento

Figura III.2.23 Criar novo SubProcedimento

418

BASES DE DADOS COM MICROSOFT ACCESS 2007

A chamada a um SubProcedimento realizada atravs da palavra reservada do VBA CALL seguida do nome do SubProcedimento ou simplesmente s o nome do SubProcedimento (figura III.2.24).

Invocar os SubProcedimentos

Figura III.2.24 Invocar um SubProcedimento

2.3.2 Funes
As funes so procedimentos que diferem dos SubProcedimentos, basicamente em dois sentidos. Em primeiro lugar, as funes so procedimentos que devolvem valores, como resultado de um clculo. Em segundo lugar, as funes nunca so utilizadas para definir procedimentos desencadeados por eventos. Estas esto associadas a procedimentos que tenham necessidade de retorno de valores, no caso das funes definidas pelo utilizador ou mesmo as funes pr-definidas pelo VBA (figura III.2.25).

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

419

Figura III.2.25 Chamada funo TotalVendas() com retorno do valor da varivel soma

Neste exemplo podemos ver o recurso funo TotalVendas() para clculo do valor total das Vendas. Aps o clculo dentro da funo, existe necessidade que esta devolva o valor calculado para onde foi chamada, de forma a colocar o resultado final (valor calculado) na caixa de texto (texto5).

Fig III.2.26 Resultado da funo TotalVendasl() com retorno do valor da varivel soma

420

BASES DE DADOS COM MICROSOFT ACCESS 2007

As funes so procedimentos realizados atravs de instrues VBA, enquadrados entre as palavras-chave Function e End Function. A chamada a uma Funo realizada da seguinte forma: varivel = NomedaFuno ()

Figura III.2.27 Chamada funo MostrarResultado()

As funes podem conter argumentos, tal como os subprocedimentos. Podem conter vrias expresses de cdigo, mas pelo menos uma delas deve ser igualada ao nome da funo de forma a poder devolver o valor (figura III.2.25). possvel terminar a funo utilizando a palavra reservada Exit Function, mesmo que no tenhamos avaliado a totalidade das expresses. Uma funo pode conter mais do que um Exit Function. Apesar de admitirmos que as funes so diferentes dos SubProcedimentos, estas comportam-se como tal, se admitirmos no requerer a devoluo de valores, ficando o resultado na prpria funo (figura III.2.28). Uma funo pode ser criada utilizando a mesma metodologia dos SubProcedimentos.

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

421

Figura III.2.28 Exemplo de funo com comportamento idntico a um SubProcedimento

Ao premir o boto (Fechar Formulrio atravs de cdigo) do formulrio Autores (figura III.2.29), o evento (Ao clicar) d incio ao conjunto de aces definidas no procedimento, sendo uma das quais a solicitao da funo MostrarValor. O resultado ser o seguinte (figura III.2.30):

Figura III.2.29 Boto de comando Fechar Formulrio atravs de cdigo

Figura III.2.30 Resultado da aplicao da funo

422

BASES DE DADOS COM MICROSOFT ACCESS 2007

No exemplo da figura III.2.28 fica demonstrado que uma funo tem o mesmo comportamento que um SubProcedimento, visto que a funo ao ser chamada no necessita de devolver valores ao SubProcedimento de onde foi chamada. Contudo, a caracterstica mais comum das funes , sem dvida, a possibilidade que estas tm de devolver valores ao procedimento de chamada (figura III.2.31).

Figura III.2.31 Funo com retorno de valores ao procedimento de onde foi chamada

No exemplo da figura III.2.31, a funo Validar devolve a frase Livro editado antes de 2006 ou Livro editado entre 2006 e 2007 de acordo com o parmetro de entrada (Valor), para o procedimento de onde foi chamada. No caso especfico do ano ser 2006, obtido atravs da funo ano (Year), o resultado ser o seguinte:

III.2 CARAC CTERSTICAS DA PRO OGRAMAO EM VBA V

423

Figura III.2.3 32 Resultado da d funo Val lidade

2.4 JANELAS A DO O EDITOR DE VISUA AL BASIC VBE WINDOWS I


Para criar cdigo no n Microsof ft Access 2007 2 nece essrio abrir o ambiente alho do Vis sual Basic, no caso co oncreto a jan nela do edit tor do Visu ual de traba Basic (figura ( III.2. .35). A abe ertura desta a janela implica um do os seguinte es procedimentos: ou Clicar na coleco c de objectos Formulrios ou Re elatrios e, em seguid da, atravs d menu I do Iniciar esc colher a op o Modo D Design e cone Exibir Cdigo (figura ( III.2. 3 34);
Figura III.2.33 cone VB

Entrar no menu m Ferra amentas de Base de Dados D e opo cone d do Visual Bas sic (figura III.2.33);

42 24

BASES A DE DADOS CO OM MICROSOFT ACCESS C 2007

Figur ra III.2.34 con ne VB

ou Entrar r em modo de estrutura a de um for rmulrio ou relatrio e, recorrendo s proprie edades de qualquer objecto o ou controlo, c es scolher a P fim atrav Por vs do construtor de exprese qual o evento a associar. ses , escolh her a opo o Construtor de Cdi igo. Nesta ltima o podemos sempre esc colher um procedimen p nto j existe ente no opo evento o determina ado.

esta janela (figura III.2.35) existem m muitas outras, as qu uais esto associNe ad das a diferen ntes fune es, em conte exto de programao.

Figura III.2.35 I Janela a do Editor de Visual Basic c

Ja anela de Cdigo C (Co ode Windo ow)


Es sta janela (f figura III.2.3 36) utiliza ada para es screver ou alterar cdigo em Vis sual Basic c sob a form ma de proc cedimentos: : SubProcedimentos ou o Fun-

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

425

es. Podem existir vrias janelas de cdigo dependendo do nmero de mdulos existentes.

Figura III.2.36 Janela de Cdigo

Janela do Explorador de Projectos (Project Explorer Window)


Nesta janela (figura III.2.37) so apresentados, hierarquicamente, todos os projectos existentes e todos os objectos neles contidos.

Figura III.2.37 Explorador de Projectos

426

BASES DE DADOS COM MICROSOFT ACCESS 2007

Janela Folha de Propriedades (Properties Window)


Esta janela (figura III.2.38) mostra-nos todas as propriedades dos objectos/controlos seleccionados e a sua configurao actual.

Figura III.2.38 Propriedades

A Janela Imediato (Immediate Window)


Esta janela (figura III.2.39) permite de imediato testar o cdigo de VBA nela digitado.

Figura III.2.39 Janela Imediato

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

427

Janela Local (Locals Window)


Nesta janela (figura III.2.40) so apresentadas todas as variveis declaradas no procedimento corrente, bem como os seus valores actuais.

Figura III.2.40 Janela Local

Janela de Localizao de Objectos (Object Browser Window)


Nesta janela (figura III.2.41) encontram-se todos os objectos: mdulos, classes, mtodos, propriedades dos objectos, constantes ou variveis de uma determinada base de dados, do VBA, do Microsoft Access 2007, etc.

Figura III.2.41 Janela de localizao de objectos

428

BASES DE DADOS COM MICROSOFT ACCESS 2007

Janela de Controlo (Watch Window)


Esta janela (figura III.2.42) surge automaticamente quando so detectadas expresses (numa seco de cdigo identificado como Watch Expression) que correspondem a uma determinada condio, implicando a paragem do cdigo nesse preciso ponto.

Figura III.2.42 Janela de Controlo

2.5 CONCEITOS E ESTRUTURAS DE CONTROLO EM VBA


J ficamos a conhecer algumas das caractersticas principais do Visual Basic for Applications e o seu ambiente de desenvolvimento. agora necessrio conhecer os conceitos e estruturas fundamentais da programao em Microsoft Access 2007.

2.5.1 Tipos de dados


Em Visual Basic for Applications existem sete tipos fundamentais de dados:
Tipo de dados Integer Long Sufixo % & Memria Ocupada 2 bytes 4 bytes de -32.768 a 32.767 de -2.147.483.648 at 2.147.483.647 Negativos: de -3,402823E38 a Single ! 4 bytes -1,401298E-45 Positivos: de 1,401298E-45 a 3,402823E38 Negativo: de -1,797693E308 Double # 8 bytes a -4,940656E-324 Positivos: de 4,940656E-324 a 1,797693E308 Valores

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA


Tipo de dados Currency String Variant Sufixo @ $ Memria Ocupada 8 bytes 8 bytes 1 byte por caracter Valores de -922.337.203.685.477.5808 a 922.337.203.685.477.5807 de 0 a 65.635 caracteres

429

Qualquer valor numrico (at double) ou string

Figura III.2.43 Tipos de dados predefinidos do Visual Basic Applications

De uma forma geral, os tipos de dados do VBA so suficientes para referenciar os tipos de campos existentes nas tabelas do Microsoft Access 2007, mas por vezes necessria uma certa adaptao, como se pode ver pela tabela seguinte:
Tipo de Campo na Tabela Numerao Automtica (AutoNumber) Moeda (Currency) Data/Hora (Date/Time) Memo Nmero: Byte (Number: Byte) Nmero: Inteiro (Number: Integer) Nmero: Inteiro Longo (Number: Long Integer) Nmero: Simples (Number: Single) Nmero: Duplo (Number: Double) Objecto OLE (OLE Object) Texto (Text) Sim/No (Yes/No) Hiperligao (Hyperlink) Tipos de Dados no VBA Long Currency Date String Byte Integer Long Single Double Byte String Boolean String

Figura III.2.44 Tipo de dados das tabelas e correspondente tipo de dados no VBA

Os dados so representados sob a forma de variveis ou constantes.

2.5.2 Variveis e Constantes


Para alm de utilizarmos cdigo VBA para trabalhar com os controlos de qualquer formulrio ou relatrio aberto, podemos declarar e utilizar vari-

430

BASES DE DADOS COM MICROSOFT ACCESS 2007

veis no cdigo VBA, para armazenar temporariamente valores (dados), calcular resultados ou lidar com qualquer objecto da base de dados:

Figura III.2.45 Declarao de variveis

As variveis devem ser declaradas e utilizadas respeitando as seguintes regras: iniciar-se por uma letra, ter a dimenso mxima de 255 caracteres, ser nica no seu mbito de aplicao e no ser uma palavra reservada do VBA. Outra forma de guardar dados no VBA utilizando constantes. Uma constante representa um conjunto de dados fixo, no existindo qualquer alterao ao longo do programa. Sempre que se utilizam constantes devemos colocar antes do nome da constante a palavra-chave CONST: CONST Nome_do_Autor= Antnio Abreu.

2.5.3 Variveis declaradas e no declaradas


O VBA permite utilizar variveis declaradas ou no declaradas. Sempre que se pretenda utilizar variveis declaradas necessrio defini-las no incio do programa. As variveis no declaradas podem simplesmente ser utilizadas durante as instrues de VBA sem as declarar. O VBA possui uma opo que obriga a declarar as variveis no incio do programa, sempre que seja activada a opo Requerer declarao de variveis (Require Variables Declaration) no menu Ferramentas

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

431

(Tools) e item opes (Options), como se apresenta no quadro da figura III.2.46.

Figura III.2.46 Menu de declarao de variveis

Esta opo s de facto activada quando se inicia um novo projecto ou mdulo. Na zona de declarao de variveis ir aparecer Option Explicit, que significa que o utilizador obrigado a declarar explicitamente todas as variveis (figura III.2.47). No caso de a opo no estar activada, as declaraes das variveis sero feitas implicitamente.

Figura III.2.47 Declarao obrigatria de todas as variveis

432

BASES DE DADOS COM MICROSOFT ACCESS 2007

2.5.4 mbito das variveis e constantes


A declarao de uma varivel (figura III.2.48) determina se essa varivel conhecida apenas num procedimento, em todos os procedimentos de um mdulo ou em todos os procedimentos da base de dados.

mbito Local Mdulo Pblico

Declarao Dim, Static ou ReDim (dentro de um procedimento). Dim (na seco Declarations de um mdulo Padro ou de um mdulo de Classe Formulrio/Relatrio) Public (na seco Declarations de um mdulo Padro).

Figura III.2.48 Declarao de uma varivel

Ao declarar uma varivel dentro de um procedimento, esta apenas conhecida dentro deste, ou seja, no reconhecida por outros procedimentos. utilizada em geral para realizar clculos temporariamente. Por exemplo, podemos declarar com um mesmo nome uma varivel dentro de uma srie de procedimentos, pois cada varivel local ao seu procedimento. Cada procedimento poder alterar a sua varivel local sem que por isso sejam afectadas as outras variveis denominadas da mesma forma e existentes nos outros procedimentos, como o caso da varivel Total na figura III.2.49.

Figura III.2.49 Declarao de variveis a nvel local

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

433

Nos procedimentos deste exemplo (figura III.2.49) declara-se a varivel TOTAL, que ser local a cada um dos procedimentos. Cada varivel TOTAL de cada procedimento recebe um valor diferente. A varivel TOTAL declarada no procedimento sub multiplicar() ter um valor de cem (100), ao passo que a varivel TOTAL declarada no procedimento sub soma() ter o valor de vinte (20). As variveis locais s existem e mantm valor enquanto se encontram dentro do seu mbito o procedimento onde foram declaradas, mas perdem o valor e so destrudas quando o procedimento finaliza. Existe outro tipo de variveis de mbito local, que so denominadas estticas (static). Estas diferem das anteriores na medida em que mantm o seu valor e no so destrudas at a aplicao terminar, mas continuam a ser locais e nenhum outro procedimento poder aceder a elas (figuras III.2. 50 e III.2.51).

Figura III.2.50 Procedimento com utilizao de uma varivel esttica

Figura III.2.51 Resultado da utilizao de uma varivel esttica

434

BASES DE DADOS COM MICROSOFT ACCESS 2007

Neste exemplo (figura III.2.50) a varivel esttica contagem permite acumular o nmero de vezes que o utilizador venha a clicar no boto de comando Autores (figura III.2.51) sem sair da aplicao, mostrando em seguida o resultado no controlo com o nome Rtulo34. Caso pretendamos criar uma varivel que seja reconhecida pelos vrios procedimentos dentro de um mesmo mdulo, devemos defini-la na zona Declaraes (Declarations) do objecto mdulo com a palavra reservada Dim ou Private. Estas variveis partilham informao atravs de todos os procedimentos do mesmo mdulo, quer seja mdulo padro ou mdulo de classe de objectos (formulrio/relatrio). A nvel de mdulo padro as variveis so preservadas enquanto a aplicao estiver aberta, ao passo que as variveis declaradas a nvel de mdulo de classe de objectos (formulrio/relatrio) sero preservadas enquanto o formulrio/relatrio estiver carregado em memria (figura III.2.52). No exemplo da figura III.2.52 podemos observar o comportamento das variveis definidas a nvel de mdulo de classe de objectos (formulrio/relatrio). Como esto definidas na zona de declaraes do mdulo, sero acedidas por qualquer procedimento que venha a ser criado.

Figura III.2.52 Variveis declaradas a nvel de mdulo

Para declarar uma varivel ou uma constante que possa ser utilizada por todos os procedimentos da base de dados, devemos declarar essa varivel como pblica, utilizando a palavra reservada Public na seco declaraes de um mdulo. As variveis declaradas com este mbito so mais

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

435

abrangentes, isto , o seu mbito abrange toda a aplicao de tal modo que esto disponveis a partir de qualquer lugar da aplicao. Estas variveis devero ser criadas a nvel de mdulo padro e nunca a partir de mdulo de classe de objectos (formulrio/relatrio) (figura III.2.53).

Figura III.2.53 Variveis declaradas a nvel de mbito geral

Na figura III.2.53 poderemos observar, como exemplo, os diferentes nveis de declarao de variveis no VBA. No procedimento funo (Function) contar possvel aceder s variveis A, B, Var 1 e X, mas no pode aceder a Var 2, Y e Z. No procedimento sub somar pode aceder s variveis A, B, Var 1 e y, mas no pode aceder s variveis Var 2, X e Z. No procedimento funo (Function) multiplicar pode aceder s variveis A, B, Var 2 e Z, mas no pode aceder s variveis Var 1, X e y.

2.5.5 Operadores
Os operadores so fundamentais na construo de expresses no Microsoft Access 2007 e no VBA. Existem vrias categorias de operadores, descritas nos quadros das figuras III.2.54, III.2.55, III.2.56, III.2.57 e III.2. 58).

436

BASES DE DADOS COM MICROSOFT ACCESS 2007

Aritmticos * + / \ ^ Multiplicao Adio Subtraco Diviso (Real) Diviso (Inteira) Exponencial

Figura III.2.54 Operadores Aritmticos

Comparao Numrica < <= > >= = <> Menor que Menor ou igual a Maior que Maior ou igual a Igual a Diferente de

Figura III.2.55 Operadores Comparao Numrica

Concatenao e Comparao de Strings & Like Concatenao de strings Comparao de strings

Figura III.2.56 Operadores Concatenao e Comparao de strings

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

437

Lgicos And Eqv Imp Not Or Xor Conjuno Equivalncia Implicao Negao Disjuno Excluso

Figura III.2.57 Operadores Lgicos

Miscelnea ! Utilizado para separar as partes de um identificador, indicando que o nome do objecto que o precede se refere a um objecto definido pelo utilizador Utilizado para separar as partes de um identificador, precedendo o nome do objecto, mtodo ou propriedade. Verifica se o valor de uma expresso est contido no intervalo apresentado. Verifica se o valor de uma expresso igual a algum dos valores apresentados. utilizado em conjunto com a palavra reservada Null, de forma a verificar se uma expresso nula (no possui contedo; nulo no equivalente a 0).

. Between...And In Is

Figura III.2.58 Operadores Miscelnea

2.5.6 Estruturas de controlo


As estruturas de controlo (estruturas de deciso e ciclos) encontram-se presentes ao longo de quase todo o cdigo desenvolvido em VBA, principalmente no cdigo que exige vrios tipos de solues diferentes. O VBA oferece-nos uma grande escolha na implementao deste tipo de estruturas de controlo. As estruturas de controlo (figura III.2.59) costumam dividir-se em: estruturas de deciso com base numa condio, estruturas de deciso ou seleco com base numa expresso e estruturas de repeti-

438

BASES DE DADOS COM MICROSOFT ACCESS 2007

o (ciclos) que, por sua vez, se dividem em ciclos com base num contador ou com base numa condio. As seces seguintes fazem uma abordagem pormenorizada destas estruturas, recorrendo a vrios exemplos prticos, de forma a permitir uma maior familiarizao com estas estruturas.

Estruturas de Controlo
De deciso
IF... THEN ... <instrues> [ELSE] <instrues> ENDIF FOR ... TO ... <instrues> SELECT CASE ... CASE ... <instrues> case ... <instrues> END SELECT NEXT

De repetio
DO ... <instrues> LOOP ...

Figura III.2.59 Estruturas de controlo

Condies e Decises
As estruturas de deciso avaliam uma condio, que poder ser verdadeira ou falsa, para em seguida executar um conjunto de instrues de acordo com a condio (figura III.2.60)

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

439

Figura III.2.60 Estrutura de Deciso If...Then ...Else

Com o exemplo prtico que apresentamos de seguida (figura III.2.61) fica exposta a forma como se comporta a estrutura de deciso com uma condio.

Figura III.2.61 Estrutura de deciso a uma condio

Como se pode ver pela figura III.2.61, se as vendas totais (Texto5) fossem inferior a 10.000 ento a cor de fundo da caixa de texto (Texto5) mudava para azul RGB(0,0,250) e a cor dos caracteres para branco

440

BASES DE DADOS COM MICROSOFT ACCESS 2007

RGB(250,250,250), devido utilizao da funo RGB e por alterao dos parmetros RGB(vermelho, verde, azul). Os valores dos parmetros devem ser valores inteiros, tendo todos eles como intervalo de aceitao valores entre zero (0) e duzentos e cinquenta e cinco (255). Caso contrrio, a cor de fundo da caixa de texto mudava para branco RGB(250,250,250) e cor dos caracteres azul (RGB(0,0,250)) (figura III.2. 62).

Figura III.2.62 Resultado da aplicao da estrutura de deciso

Imaginemos agora para o formulrio Vendas por Revendedor que a cor de fundo da caixa de texto Texto5 (Vendas Totais) varia segundo os intervalos seguintes: 1<[Vendas Totais]<=1000 - cor azul, 1000< [Vendas Totais]<=10000 - cor verde, [Vendas Totais]>10000 - cor vermelha. Nesta situao existe mais do que uma condio para decidir a cor de fundo da caixa de texto, dando origem a uma estrutura de deciso encadeada (figura III.2.63).

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

441

Figura III.2.63 Estrutura de deciso encadeada

Facilmente podemos notar que a caixa de texto Texto5 ir ter fundos de vrias cores em conformidade com as condies impostas (figura III.2.64):

Valor a determinar para a caixa de texto Texto5 Vendas Totais 1< Vendas Totais < = 1000 1000 < Vendas Totais <=10000 Vendas Totais > 10000

Cor de fundo da caixa de texto Texto5 Azul Verde Vermelho

Figura III.2.64 Tabela de condies para impor a cor de fundo da caixa de texto

Vamos, ento, desenvolver o cdigo necessrio para implementar esta situao. Para isso utilizamos um procedimento de evento (Sub Form_Load()). Este procedimento permite que, ao carregar o formulrio em memria principal, as instrues realizadas sejam automaticamente despoletadas de forma a realizar as aces pretendidas (figura III.2.65).

442

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.2.65 Estrutura de deciso encadeada

Neste exemplo, se o valor das Vendas Totais (Texto5) for superior a 10000,00, ento a cor de fundo da caixa de texto ser cor-de-rosa. Se o valor das Vendas Totais (Texto5) for superior a 1000, mas inferior ou igual a 10000, ento a cor de fundo da caixa de texto ser roxo. Se as Vendas Totais (Texto5) forem superior a 1, mas inferior ou igual a 1000, ento a cor de fundo da caixa de texto ser verde como podemos ver pelo resultado (figura III.2.66). Em qualquer dos casos a cor da letra (Caracteres) ser sempre a branca (RGB(250,250,250)).

Figura III.2.66 Resultado da aplicao da estrutura de deciso encadeada

Na linguagem de programao VBA existe outra estrutura de deciso com a designao SELECT CASE, que apresenta algumas vantagens relativamente estrutura de deciso IF ... THEN ... ELSE.

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

443

A instruo SELECT CASE (figura III.2.67) permite que, em vez de uma srie de IFs encadeados, recorrendo clusula ELSEIF, possamos ter uma listagem de casos previstos, bem como os procedimentos especficos que o procedimento deve executar em cada um desses casos. Normalmente esta estrutura utilizada quando existe um grande conjunto de situaes possveis.

Figura III.2.67 Estrutura de deciso SELECT CASE

Veremos, de seguida, um exemplo no qual utilizaremos esta nova estrutura de programao, em vez de uma srie de IFs encadeados, aplicando as condies indicadas na figura III.2.68.
Cor de fundo da caixa de texto (Texto5) Cor-de-Rosa Azul Cor-de-Laranja Amarelo Verde Vermelho Funo do VBA Condies para deciso (Valores monetrios com duas casas decimais) RGB(250,100,250) RGB(0, 0,250) RGB(250,110,20) RGB(255,255,0) RGB(0, 250,0) RGB(250,0, 0) [0 500,99] ]500,99 1000,99] ]1000,99 1500,99] ]1500,99 30000,99] ]30000,99 60000] > 60000

Figura III.2.68 Condies impostas ao exerccio

444

BASES DE DADOS COM MICROSOFT ACCESS 2007

Utilizando um procedimento prprio, vamos criar as instrues necessrias, utilizando a estrutura SELECT CASE, para resolver o exerccio proposto (figura III.2.69).

Figura III.2.69 Cdigo de programao utilizando a estrutura SELECT CASE

Como se pode analisar pela figura III.2.69, a estrutura de deciso SELECT CASE vai dar origem a vrios fundos de cor diferente, para a caixa de texto Texto5 (figura III.2.70), de acordo com o resultado (valor monetrio) da caixa de texto Texto5, que representa o valor total de vendas. Em qualquer dos casos a cor da letra (Caracteres) ser sempre a cor branca (RGB(250,250,250)).

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

445

Figura III.2.70 Resultado da aplicao da estrutura de deciso SELECT CASE

Estruturas repetitivas (Ciclos) Estruturas repetitivas baseadas num contador (For...Next)


Neste tipo de ciclos as aces so executadas desde o ponto em que a varivel de controlo do ciclo tem o valor inicial at que adquira o valor limite final. Esta estrutura permite repetir a execuo de um conjunto de aces um nmero determinado de vezes, de acordo com o contador do ciclo (figura III.2.71).

446

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.2.71 Ciclo For Next

Quando a ordem For executada, atribudo o valor de incio varivel contador (i) e verifica-se se o valor dessa varivel contador no superior ao valor final. Caso isso se verifique executado o conjunto de aces e passa-se para a instruo NEXT que provoca um incremento ou decremento da varivel contador (i), obrigando depois a executar de novo a comparao entre o valor da varivel contador e o valor final. O ciclo finaliza quando o valor do varivel contador ultrapassar o valor final, produzindo-se um salto para a instruo seguinte depois da ordem NEXT, no voltando a executar o conjunto de aces dentro do corpo da estrutura FOR...NEXT. Neste exerccio vamos criar um procedimento para calcular o nmero de revendedores que a editora Centro Atlntico possui. Para tal vamos recorrer a uma estrutura repetitiva centrada num contador (For...Next), de forma

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

447

a contar o nmero de registos que a tabela Revendedores possui (figura III.2.72).

Figura III.2.72 Procedimento com a estrutura repetitiva For...Next

O Procedimento est associado ao evento Load do formulrio Revendedores. Abrindo o formulrio, em tempo de execuo, desencadeado automaticamente o procedimento, dando origem ao resultado (N Total de Revendedores = 40) apresentado na figura III.2.73.

Figura III.2.73 Resultado da aplicao do ciclo For...Next

Estruturas repetitivas baseadas numa condio (LOOP)


Uma estrutura repetitiva LOOP permite que um determinado bloco de instrues seja executado enquanto que uma condio seja verdadeira.

448

BASES DE DADOS COM MICROSOFT ACCESS 2007

Vamos construir alguns programas (exerccios) para ilustrar a utilizao destas estruturas. Ciclo Do While ... Loop / Do Loop While... Esta estrutura permite que um conjunto de instrues sejam executadas enquanto determinada condio for verdadeira. Existem duas formas bsicas para implementar um ciclo deste tipo. A primeira consiste em testar a condio antes de executar o bloco de instrues (figura III.2.74). Caso a condio se revele falsa partida, o bloco de instrues nunca ser executado.

Figura III.2.74 Ciclo Do While Loop

Neste exemplo vamos recorrer ao ciclo Do While Loop para sabermos quantos livros editou um determinado autor nacional, como se pode ver pelo conjunto de instrues desenvolvidas (figura III.2.75):

Figura III.2.75 Instrues de programao, utilizando o ciclo Do While Loop

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

449

Na figura j referida, a realizao das aces dentro do ciclo Do While so possveis enquanto a condio (Not TabAutNac.EOF) for verdadeira, isto , enquanto no se chegar ao ltimo registo da tabela Autores/Livro traduzida aqui pela varivel objecto TabAutNac, as instrues sero repetidamente executadas. Quando a condio for falsa, termina o ciclo Do While, no repetindo mais as aces, posicionando-se na linha de instruo imediatamente a seguir instruo fim de ciclo Loop, dando origem visualizao da caixa de texto (Texto12) com o resultado (N Livros editados = 4), como se pode verificar pela figura III.2.76.

Figura III.2.76 Resultado da aplicao do ciclo Do While Loop

Na segunda forma de implementao do ciclo o bloco de instrues executado primeiro e a condio s testada no fim (figura III.2.77). Neste caso o bloco de instrues sempre executado pelo menos uma vez.

Figura III.2.77 Ciclo Do Loop While

450

BASES DE DADOS COM MICROSOFT ACCESS 2007

Podemos recorrer ao mesmo exemplo para testar este tipo de estrutura (figura III.2.78):

Figura III.2.78 Cdigo de programao com utilizao do ciclo Do Loop While

O resultado obtido com a utilizao deste ciclo, neste caso, o mesmo da figura III.2.76.

Ciclo Do Until ... Loop / Do Loop Until... O ciclo Do Until ... Loop (figura III.2.79) avalia a condio antes de executar qualquer aco do corpo de ciclo. Se a condio for verdadeira, executar o conjunto de aces e continuar a faz-lo at a condio ser falsa.

Figura III.2.79 Ciclo Do Until ... Loop

No caso do ciclo Do Loop Until ... (figura III.2.80) validada a condio depois de executar o conjunto de aces. Se a condio for verdadeira,

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

451

voltar a executar o conjunto de aces e continuar a faz-lo at a condio ser falsa.

Figura III.2.80 Ciclo Do Loop Until ...

Em sntese, qualquer ciclo possui normas prprias que devemos cumprir para que o controlo da programao esteja sempre do lado do programador e no se produzam situaes no desejadas, como por exemplo ciclos infinitos, ou outras situaes de erro que obriguem o programador a interromper involuntariamente o ciclo atravs da combinao de teclas CONTROL + BREAK.

2.6 FUNES DO VBA


Em diversos pontos anteriores deste captulo criou as suas prprias funes e utilizou algumas das funes internas do VBA. Neste ponto aprender a utilizar outras funes predefinidas pelo VBA. Estas funes esto divididas por categorias, como por exemplo funes data e hora, estatsticas, matemticas, financeiras, etc. Vamos abordar algumas funes que consideramos da maior importncia para o utilizador e, caso este pretenda utilizar outras, que no estejam aqui tratadas, poder recorrer ao anexo II Funes do VBA deste livro.

452

BASES DE DADOS COM MICROSOFT ACCESS 2007

Funo MsgBox
Sempre que o utilizador pretenda receber respostas durante a execuo de qualquer procedimento, poder recorrer funo MsgBox. Esta funo apresenta uma caixa de mensagem, mostrando os dados dentro de uma janela de dilogo e opcionalmente associa um cone apropriado bem como botes de resposta para o utilizador (figuras III.2.81 e III.2.82).

Figura III.2.81 Funo MsgBox

Figura III.2.82 Funo Msgbox

A funo mostra a mensagem na janela de dilogo, ficando espera que o utilizador pressione um dos botes (figura III.2.81), devolvendo um valor inteiro que indica qual o boto pressionado. Na figura III.2.82 no se pretende saber o valor do boto pressionado mas simplesmente informar o utilizador da mensagem pretendida. A sua sintaxe a seguinte: MsgBox prompt[, buttons] [, title] [,helpfile, context] Na figura III.2.83 apresentam-se os parmetros da funo MsgBox.
Parmetros Prompt Descrio Parmetro obrigatrio. Possui a mensagem a mostrar ao utilizador. Esta mensagem possui no mximo 1024 caracteres. Para se utilizar mais que uma linha na Prompt devemos utilizar a constante do VBA vbCrLf. Parmetro opcional. uma expresso numrica que a soma do nmero e tipo de botes a mostrar, o estilo do cone, qual o boto que tem o focus e se o boto modal ou no. No caso de se omitir este parmetro, ele tem o valor de zero. Parmetro opcional. Texto que aparece na barra de ttulo da MsgBox. Se este parmetro for omisso, ir aparecer o nome da aplicao Microsoft Access. Parmetro opcional. Expresso do tipo string que mostra qual o ficheiro de ajuda (Help) a utilizar. Quando este parmetro utilizado, o utilizador ter tambm que utilizar o parmetro seguinte. Parmetro opcional. Ficheiro Help que ir aparecer ao utilizador. Ter que ser utilizado com o parmetro anterior.

Buttons

Title

Helpfile

Context

Figura III.2.83 Parmetros da funo MsgBox

III.2 CARAC CTERSTICAS DA PRO OGRAMAO EM VBA V

453

Os valo ores que o parmetro Buttons pode ter so s os segu uintes (figura III.2.84) ):
Co onstante Valor num mrico Nmero e tipo de bot es a mostrar vbOKOnly y vbOKCancel vbAbortR RetryIgnore vbYesNoC Cancel vbYesNo vbRetryCa ancel 0 1 2 3 4 5 S o bot to OK Botes OK O e Cancel Botes Abort, A Retry e Ig gnore Botes Yes, Y No e Canc cel Botes Yes Y e No Botes Retry R e Cancel Estilo do co one vbCritical vbQuestio on VbExclam mation vbInforma ation 16 32 48 64 Mostra o cone Mostra o cone Mostra o cone Mostra o cone Boto que tem o focus vbDefault tButton1 vbDefault tButton2 vbDefault tButton3 vbDefault tButton4 0 256 512 768 Primeiro o boto tem o fo ocus Segundo o boto tem o fo ocus Terceiro o boto tem o focus Quarto boto b tem o focu us modal? ? vbApplica ationModal 0 Modal em relao aplicao. O utiliza ador deve responder MsgBox antes de continuar a trabalhar na aplica o. Modal em relao ao sistema operativo o. Todas as es ficam suspensas at que o utilizador resaplica ponda MsgBox. Valores adicionais vbMsgBox xHelpButton vbMsgBox xSetForegroun nd vbMsgBox xRight 16384 4 65536 6 524288 8 Mostra boto b Help ca a janela da mensagem m como janela de Especific Foregro ound Alinha o texto direita Descrio D

vbSystem mModal

4096

Figura a III.2.84 valore es assumidos pelo parmet tro Buttons.

45 54

BASES A DE DADOS CO OM MICROSOFT ACCESS C 2007

A tabela t da figura III.2.85 mostra qu ual o valor inteiro de re etorno ao pressiop na ar um dos botes b exist tentes na ja anela de di logo da ca aixa de men nsagem Ms sgBox.

Co onstante vb bOK vb bCancel vb bAbort vb bRetry vb bIgnore vb bYes vb bNo

Valo or numrico 1 2 3 4 5 6 7

Descrio OK Cancel Abort Retry Ignore Yes No

Figura III.2.8 85 Valor de re etorno, aps pr ressionar bot o da caixa de e dilogo Msg gBox.

O exemplo seguinte vai ajudar-nos s a compre eender melh hor a fun o Msg ox, sobretud do a aplica o dos seu us parmetr ros. Bo Ne este exemp plo vamos utilizar u a fu uno MsgB Box para encerrar e ou no a ap plicao que e est abert ta no mome ento. Para tal t vamos utilizar u os parmetro os seguintes s: Promp pt, contend do a mensa agem: Prete ende S A I R deste Fo ormulrio?; Buttons, com os s valores ou u constantes s seguintes: Os botes s Yes e No (vb bYesNo), o cone Info ormao (vb bInformatio on ou valor r numrico 64 4), Titl le contendo o a mensage em: Fechar Formulrio o.

odemos ver r a aplicao destes pa armetros da d funo MsgBox M no procePo dim mento asso ociado ao ev vento click do boto de d comando o (Comando o28) na figura III.2.86.

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

455

Figura III.2.86 Utilizao da Funo MsgBox no procedimento sub Comando28_Click().

Em tempo de execuo, ao clicar no boto Fechar Formulrio atravs de Cdigo, aparecer de imediato a caixa de mensagem da figura III.2.81, obrigando o utilizador a decidir por um dos botes (Yes ou No). Como se pode verificar ir existir um valor devolvido, consoante o utilizador clicar em Yes ou No, sendo o valor guardado numa varivel. A sintaxe para guardar o valor numa varivel ser a seguinte: varivel = MsgBox(prompt[,buttons][,title][,helpfile,context]).

Em seguida devemos comparar o valor da varivel com o valor esperado e escrever a aco pretendida (figura III.2.87). Neste caso, se o valor da varivel for VbYes aparece uma segunda caixa de mensagem (figura III.2.82) a agradecer a utilizao da base de dados e em seguida ao pressionar o boto OK fecha a aplicao. No caso de o valor da varivel ser VbNo, o utilizador continuar com a aplicao aberta, como se pode ver pelo procedimento (Function MostrarValor) da figura III.2.87.

Figura III.2.87 Valor de retorno da MsgBox e posterior escolha

456

BASES DE DADOS COM MICROSOFT ACCESS 2007

Funo InputBox
A funo InputBox permite ao utilizador interagir com um determinado procedimento, isto , o utilizador fica habilitado a enviar valores para dentro do procedimento para um determinado clculo. Esta interaco feita atravs de uma janela de introduo de dados gerada pela funo InputBox.

Figura III.2.88 Funo InputBox

A sintaxe da funo InputBox a seguinte:

InputBox (prompt [,title][,default][,xPos][,yPos][,helpFile, context]

Na figura III.2.89 apresentam-se os parmetros da funo InputBox.

Parmetros prompt

Descrio Parmetro obrigatrio. Possui a mensagem a mostrar ao utilizador. Esta mensagem possui no mximo 1024 caracteres. Para se utilizar mais que uma linha na Prompt devemos utilizar a constante do VBA vbCrLf. Parmetro opcional. Texto que aparece na barra de ttulo da InputBox. Se este parmetro for omitido, ir aparecer o nome da aplicao Microsoft Access. Parmetro opcional. Texto que aparece predefinido na caixa de texto, normalmente um valor esperado, de forma a no obrigar sempre o utilizador a introduzir o mesmo valor. Quando omitido o valor, a caixa de texto aparece vazia. Parmetro opcional. Expresso numrica que define, em twips , a distncia horizontal entre o canto superior esquerdo da janela de dilogo e o canto superior do ecr. Se omitido a janela aparece centrada.
7

Title

default

XPos

Twips uma unidade de medida de ecr independente que assegura que todos os elementos a serem visualizados pelo dispositivo de sada (ecr) tenham a mesma propor-

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA


Parmetros Descrio

457

YPos

Parmetro opcional. Expresso numrica que define, em twips, a distncia vertical entre o canto superior esquerdo da janela de dilogo e o canto superior do ecr. Omitido, a janela aparece posicionada a um tero do ecr, aproximadamente. Parmetro opcional. Expresso do tipo string que mostra qual o ficheiro de ajuda (Help) a utilizar. Quando este parmetro utilizado, o utilizador ter tambm que utilizar o parmetro seguinte. Parmetro opcional. Ficheiro Help que ir aparecer ao utilizador. Ter que ser utilizado com o parmetro anterior.

helpFile

context

Figura III.2.89 Descrio dos parmetros da funo InputBox.

Na tentativa de contextualizar a funo InputBox no projecto Editora Centro Atlntico, vamos apresentar um exemplo. No formulrio Vendas (figura III.2.90), sempre que se ache oportuno, o utilizador poder alterar o nome do Revendedor em tempo de execuo.

Figura III.2.90 Formulrio Tratamento Geral

Para tal basta clicar em cima do boto Alterao Nome Revendedor Actual, aparecendo de imediato a caixa de dilogo InputBox (figura III.2.91) para introduzir o novo nome do revendedor.

o para todos os sistemas. No Microsoft Access 2007 os objectos so medidos em Twips. Por exemplo, se pretendermos o comprimento de um formulrio, o seu resultado ser de 14205 Twips. Um Twip aproximadamente 1/1440 polegadas.

458

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.2.91 Caixa de dilogo InputBox

Ficamos a saber da alterao pela caixa de mensagem, que em seguida surgir, com a mensagem: Nome do revendedor alterado com sucesso (figura III.2.92).

Figura III.2.92 Caixa de dilogo com resultado da funo InputBox

O cdigo de programao que permite resolver o exemplo exposto nas figuras anteriores encontra-se no procedimento: Private Sub Comando15 _Click() (figura III.2.93).

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

459

Figura III.2.93 Cdigo de programao do procedimento sub comando15_click()

Em seguida, recorrendo ao SQL, mais precisamente s consultas de aco e instruo Update (consultas de actualizao), ir ser alterado o valor do registo para o campo PreoUnitrio, referente ao livro do ISBN indicado (figura III.2.94).

Figura III.2.94 Resultado da aplicao depois da instruo UPDATE (SQL)

De facto podemos comprovar pela Tabela Venda/Livro que o valor inicial foi alterado, logo aps a aplicao da consulta de aco atravs da instruo Update (figuras III.2.95 e III.2.96).

460

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.2.95 Tabela Venda/Livro antes da aplicao da instruo UPDATE (SQL)

Figura III.2.96 Tabela Venda/Livro depois da aplicao da instruo UPDATE (SQL), aps confirmao

Devemos ter algum cuidado na utilizao deste tipo de consultas avanadas, visto podermos mesmo eliminar, acrescentar ou actualizar registos com valores no desejados. A pensar na eventual possibilidade de engano por parte do utilizador quer na actualizao, eliminao e insero de valores no desejados, o SQL nas consultas de aco, antes de realizar o UPDATE (actualizao), interroga o utilizador, no sentido de confirmar a actualizao. Esta interrogao realizada atravs de uma caixa de dilogo (MsgBox), podendo o utilizador ter a ltima palavra no que concerne actualizao ou no, atravs dos botes sim ou no. O cdigo VBA gerado para realizar este programa exemplo o seguinte:

Figura III.2.97 cdigo VBA desenvolvido para o exemplo solicitado

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

461

NOTA: O carcter (_) em cdigo de programao permite quebrar uma linha de cdigo, continuando numa outra imediatamente abaixo sem originar erro de programao.

Funo IIF
A funo IIF() permite ao utilizador realizar diferentes aces consoante a avaliao da condio (expresso), devolvendo uma das partes. A sua sintaxe a seguinte: IIF(expresso, ParteVerdadeira, ParteFalsa) O parmetro expresso representa a expresso que queremos avaliar. Os parmetros ParteVerdadeira e ParteFalsa, representam os valores de retorno, caso a expresso seja verdadeira ou falsa, respectivamente (figura III.2.100).

Funes categoria Data e Hora


As funes pertencentes a esta categoria assumem uma importncia vital, nomeadamente as funes Date e Time, quando se pretende saber a hora e a data exacta em que um determinado registo foi introduzido ou ento introduzir num formulrio/relatrio a data e hora. Vamos ento enumerar algumas dessas funes:

=Date()

Esta funo devolve um tipo de dados Variant contendo a data de sistema.

=Time()

Esta funo devolve um tipo de dados Variant contendo a hora de sistema.

=Now()

Esta funo combina as duas funes anteriores, devolvendo um valor Variant que especifica a data e a hora de acordo com o relgio interno do computador.

462

BASES DE DADOS COM MICROSOFT ACCESS 2007

= DateDiff()

Esta funo devolve a diferena entre duas datas. A sua sintaxe a seguinte: DateDiff(interval,date1,date2)

O parmetro Interval representa o tipo de intervalo que pretende adicionar. Os valores so os apresentados na tabela da figura III.2.98.

Valor yyyy q m y d w ww h n s Ano Quadrimestre Ms Dia do Ano Dia

Perodo de tempo

Dia da Semana (Domingo 1, Segunda 2, Tera 3, etc.) Semana Hora Minuto Segundo

Figura III.2.98 Valores assumidos pelo parmetro Interval

Date1 e Date2 so os parmetros que representam os valores das datas para clculo da diferena pretendida. Devemos ter em ateno que a data1 dever ser superior data2, caso contrrio o resultado ser negativo. =DatePart() Esta funo devolve parte de uma data, especificada pelo parmetro Interval. A sua sintaxe a seguinte: DatePart(interval,date).

Para o parmetro interval os valores assumidos so iguais aos da funo anterior e o parmetro date representa a data. =Day(date) Esta funo devolve um tipo de dados Variant, especificando um nmero entre 1 e 31, representando um dia do ms. O parmetro date representa uma data. Existem outras duas funes Month(date) e Year(date) que funcionam da mesma forma, devolvendo o ms e o ano, respectivamente.

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

463

De uma forma sucinta, o exemplo seguinte apresenta a forma como trabalhar com as funes anteriores (figura III.2.99):

Figura III.2.99 Formulrio Principal com aplicao das funes data e hora

O cdigo VBA desenvolvido de forma a mostrar a data e hora actual, dia da semana, ms e dia correspondente o apresentado nas figuras III.2. 100 e III.2.101.

Figura III.2.100:Cdigo VBA para chamada ao SubProcedimento Relgio

464

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.2.101 Cdigo desenvolvido em VBA com referncia s funes Data e Hora

A visualizao da figura III.2.99 revela que a utilizao da funo DatePart no suficiente para o tipo de resultado pretendido. Como referido anteriormente, esta funo devolve um valor numrico representativo do dia e do ms, respectivamente, o que no estaria de acordo com o resultado. Para tal houve necessidade de recorrer estrutura de deciso Select Case, de forma a validar o resultado de sada da funo, isto , se o resultado de sada da funo DatePart igual a um (1), ento o ms correspondente ser Janeiro e assim sucessivamente. O mesmo processo ser realizado para os dias da semana. Neste ltimo caso recorreuse a uma estrutura de deciso Se ...Ento ..Seno.

=Timer()

Esta funo devolve o nmero de segundos desde que o relgio do computador marcou meia-noite.

Por exemplo, se necessitarmos de saber o tempo de durao de uma determinada operao, devemos colocar a funo Timer() antes e depois da

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

465

operao. No final calculamos a diferena entre o resultado dos segundos antes da operao e os segundos depois da operao. O resultado da diferena constituir o tempo de durao da operao pretendida. Vamos supor que a operao era a seguinte: Quanto tempo demorou a decidir fechar ou no a aplicao, ou seja, o formulrio Principal? (figura III.2. 102). necessrio ter em ateno que a diferena de segundos de uma determinada operao s ser vlida tratando-se do mesmo dia.

Figura III.2.102 Caixa de mensagem com a durao em segundos da tarefa executada

Esta questo poder ser facilmente satisfeita recorrendo funo TIMER(), como se pode analisar pelo cdigo seguinte:

Figura III.2.103 Cdigo VBA para clculo do tempo da operao fechar formulrio

Funes categoria Texto


As funes desta categoria revestem-se de uma importncia capital, quando se pretende manipular cadeias de texto (strings) em variveis ou

466

BASES DE DADOS COM MICROSOFT ACCESS 2007

campos das tabelas, cujo tipo de dados seja alfanumrico. Vamos ento enumerar algumas dessas funes, ou seja, as mais usuais:

=Len(string)

Esta funo devolve um valor Long, contendo o nmero de caracteres numa string.

=Left(string,length) Esta funo devolve uma string, contendo o nmero de caracteres (length), a contar da esquerda, da string fornecida pelo utilizador.

=Right(string,length) Esta funo devolve uma string, contendo o nmero de caracteres (length), a contar da direita, da string fornecida pelo utilizador.

Os argumentos destas duas ltimas funes so iguais e string representa o texto a partir do qual os caracteres mais esquerda ou direita sero mostrados e Length representa o nmero de caracteres a serem mostrados, quer esquerda, quer direita.

=Mid(string,start,length)

Esta funo devolve uma string, contendo o nmero de caracteres a partir da especificao feita pelo parmetro start, at ao nmero de caracteres desejados pelo parmetro length.

Esta funo, apesar de se comportar nos mesmos moldes das funes anteriores, mais abrangente, visto ter a possibilidade de devolver caracteres do meio de uma string. Veremos, de seguida, um exemplo de utilizao deste tipo de funes. Neste exemplo, o utilizador ao fazer duplo clique em cima de qualquer caixa de texto referente descrio do nome do revendedor do formulrio Revendedores, de imediato surgir no cabealho trs novas legendas

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

467

com trs caracteres cada uma representando partes do nome do revendedor e uma quarta legenda com a inicial desse revendedor, como se pode verificar na figura III.2.104.

Figura III.1.204 Resultado da aplicao da funo de texto Left e Mid.

A funo de texto Left serviu neste caso para devolver um (1) dos caracteres mais esquerda da caixa de texto referente ao Nome, colocando-o num rtulo com o nome Rtulo19. Os restantes controlos (Rtulos) serviram de apoio funo de texto Mid de forma a isolar os trs caracteres do respectivo Nome em rtulos diferentes para que aparecessem com cores de letra diferentes como se apresenta na figura III.2.104. O cdigo de programao utilizado apresentado na figura III.2. 105.

Figura III.2.105 Cdigo de programao com referencia s funes Mide Left.

468

BASES DE DADOS COM MICROSOFT ACCESS 2007

Funo Format
Esta funo utilizada quando o utilizador pretende formatar uma expresso de acordo com as suas instrues, ou seja, por exemplo, quando pretende que uma determinada string passe para letras maisculas. A sua sintaxe a seguinte: Format(expression[,format]) O parmetro Expression representa qualquer expresso, seja ela nmero, texto, data ou hora e Format refere-se ao formato com o qual ir aparecer a expresso, depois de formatada. Note-se que os parnteses rectos indicam que o parmetro no obrigatrio. Sendo assim, os formatos ou so predefinidos ou so criados pelo utilizador. Por exemplo, se o utilizador recorresse a esta linha de instrues: Format(date(),dd mmmm yyyy), a data visualizada no formulrio correspondente apareceria com o seguinte formato: 09 Agosto 2007, partindo do princpio que esta a data corrente (de sistema) (figura III.2.106). O cdigo VBA gerado para este exemplo est exposto na figura III.2.107.

Figura III.2.106 Resultado da aplicao da funo Format funo Date

Figura III.2.107 Cdigo VBA com recurso funo Format

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

469

Para o formato monetrio a funo apresenta a palavra reservada Currency, como se apresenta no cdigo do procedimento seguinte (figura III.2.108):

Figura III.2.108 Cdigo VBA com recurso funo Format para formato monetrio

Outros formatos podero ser visualizados na ajuda do Microsoft Access 2007.

Funes categoria Financeira


Apesar das caractersticas tcnicas deste tipo de funes, elas so susceptveis de uma utilizao mais generalizada por parte dos programadores, sobretudo no que diz respeito ao desenvolvimento de aplicaes de gesto. Contudo, devido importncia destas funes, sero aqui apresentadas algumas consideraes sobre estas funes. =Pmt() Esta funo refere-se ao clculo dos pagamentos de um emprstimo, a partir de pagamentos constantes e uma taxa de juro constante. A sua sintaxe a seguinte: =Pmt(rate,nper,pv,[,fv[,type]])

=Pv()

Devolve o valor actual de um investimento, isto , o montante total que vale agora uma srie de pagamentos futuros. A sua sintaxe a seguinte: =Pv(rate,nper,pmt[,fv[,type]])

470

BASES DE DADOS COM MICROSOFT ACCESS 2007

=Fv()

Devolve o valor futuro de um investimento a partir de pagamentos peridicos constantes e de uma taxa de juros constante. A sua sintaxe a seguinte: =Fv(rate, nper,pmt[,pv[,type]])

=Nper()

Devolve o nmero de perodos de um investimento, com base em pagamentos peridicos constantes e uma taxa de juro constante. A sua sintaxe a seguinte: =Nper(rate,pmt,pv[,fv[,type]])

=rate()

Devolve a taxa de juros por perodos de um emprstimo ou um investimento. A sua sintaxe a seguinte: =Rate(nper,pmt,pv[,fv[,type]])

Os vrios parmetros das funes so, por si, tambm funes financeiras, tendo a explicao sido dada na respectiva funo. Contudo falta ainda explicar o parmetro type. Este parmetro representa um valor lgico, possuindo dois valores: pagamento no incio do perodo igual a um (1), no final do perodo igual a zero (0) ou omisso. Todas as funes aqui expostas possuem este parmetro. um parmetro opcional. Os parnteses rectos existentes nas vrias funes indicam que os parmetros so opcionais. Uma vez esclarecidos os parmetros e o resultado final das funes financeiras aqui tratadas, vamos de uma forma mais clara apresentar um exemplo concreto da forma como elas trabalham: Vamos considerar que as comisses podero eventualmente ser pagas por prestaes. A Editora permite recorrer a suaves prestaes mensais. Para tal instituiu duas formas para este tipo de pagamento: pagamentos em trs suaves pagamentos e pagamentos em seis suaves prestaes. A taxa de juro aplicada a qualquer destes casos ser sempre uma taxa anual fixa de 8%. Por ltimo interessa saber ao Autor quanto ir receber por mensalidade, em qualquer dos dois casos, perante a comisso total do valor (figuras III.2.109 e III.2.110).

III.2 CARACTERSTICAS DA PROGRAMAO EM VBA

471

Figura III.2.109 Resultado da funo financeira (Pmt) para trs prestaes

Figura III.2.110 Resultado da funo financeira (Pmt) para seis prestaes

O cdigo de programao em VBA gerado para executar esta aplicao encontra-se exposto na figura III.2.111.

472

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.2.111 cdigo VBA com recurso h funo financeira Pmt

Existem outro tipo de funes referentes a mais categorias que no so aqui tratadas uma vez que no fazem parte do objecto de estudo deste livro, ou ento porque foram consideradas de menor importncia para este projecto. Contudo o utilizador poder, sempre que necessitar de outras funes, recorrer ajuda do Microsoft Access 2007 como objecto de estudo mais aprofundado dessas funes.

III.3 Modelo de Objectos no Microsoft Access 2007/VBA

O Microsoft Access permite dois tipos de modelos de objectos8 (arquitecturas) para aceder a dados: o Data Access Objects (DAO) e o ActiveX Data Objects (ADO). Tendo as duas tecnologias sido criadas pela Microsoft (figura III.3.1), esta aconselha os utilizadores a usarem a arquitectura ADO, visto ser um modelo universal de acesso a dados, permitindo, assim, a conectividade entre qualquer tipo de dados.

Figura III.3.1 Modelos de acesso a dados

Um modelo de objectos uma representao da realidade ou um mapa conceptual das vrias funcionalidades do objecto, respeitando a hierarquia a que pertence.

474

BASES DE DADOS COM MICROSOFT ACCESS 2007

3.1 ARQUITECTURA DAO


Esta arquitectura est associada ao motor de base de dados Microsoft Jet (Joint Engine Technology). Este modelo (DAO) possui um conjunto de objectos (figura III.3.2) que permite realizar um conjunto de tarefas tpicas com bases de dados, tais como: inserir, consultar, manipular, criar e eliminar os diversos dados existentes a nvel da base de dados.

Figura III.3.2 Modelo de objectos DAO

A tecnologia JET fornece o motor de acesso fsico base de dados, sendo responsvel por converter em operaes fsicas as operaes indicadas a partir dos objectos DAO. Os objectos deste modelo esto organizados por nveis, semelhana de uma hierarquia. O objecto hierarquicamente mais elevado neste modelo o motor da base de dados Jet (DBEngine). Sendo este um modelo hierrquico, significa que para fazer referncia aos objectos que se encontram abaixo hierarquicamente temos que antes fazer referncia aos que se encontram acima deles. Um grupo de objectos similares pode ser combinado na hierarquia como sendo uma coleco. Na generalidade, os nomes no plural (DataBases,

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

475

Recordsets, etc.) so coleces e os nomes no singular (Database, Recordset, etc.) so os objectos da coleco. Para consultar um objecto numa coleco, a sintaxe a seguinte:

CollectionName.item (chave) ou CollectionName.item (ndice)

O item representa o mtodo por omisso para todas as coleces, consequentemente podemos suprimi-lo, ficando a sua sintaxe da seguinte forma: CollectionName(chave) ou CollectionName(ndice)

A chave de um objecto uma string que identifica univocamente esse objecto na coleco. Por exemplo, o campo (Field) ISBN na coleco Fields de uma tabela poderia ser consultado como Fields (ISBN). O ndice d a posio ordinal do objecto na coleco. Neste caso especfico se o campo ISBN fosse o primeiro campo da coleco Fields, poderia ser consultado como Fields (0). Este modelo de objectos (DAO) fornece uma variedade de coleces e objectos. Cada um destes objectos possui um extenso nmero de mtodos e propriedades. provvel que numa aplicao Access/DAO s se utilizem algumas coleces e objectos deste modelo, sendo os mais usuais os seguintes objectos: DBEngine: um objecto que representa o JET Engine da Microsoft e contm todos os outros objectos da base de dados; Workspace: um objecto que define uma seco de trabalho quando um utilizador inicia a seco no Microsoft Access; Database: o objecto que representa a base de dados aberta;

476

BASES DE DADOS COM MICROSOFT ACCESS 2007

TableDef: o objecto que representa a estrutura de uma tabela, podendo conter vrios campos (Fields) e vrios ndices (Indexes); Field: representa um campo dentro de uma tabela; Index: representa um ndice dento de uma tabela; QueryDef: representa a estrutura de uma consulta (Query) relativa a uma tabela; Recordset: representa um conjunto de registos de uma tabela, isto , representa uma tabela ou parte dela. O Recordset pode ser do tipo tabela (Table), Dynaset ou Snapshot. Dynaset uma estrutura mais verstil do que uma tabela, podendo ser gerado por uma consulta ou uma declarao SQL. Snapshot uma estrutura mais restritiva de uma tabela e os seus dados no podem ser alterados pelo utilizador.

3.1.1 Microsoft Data Access Objects


Antes de usar qualquer objecto de arquitectura DAO necessrio certificar-se que esta se encontra disponvel para trabalhar com a base de dados aberta, caso contrrio, necessrio fazer referncia biblioteca de objectos DAO 3.6. No menu principal do editor Visual Basic Application (VBA) clique em Tools e, de seguida, na opo References. Na caixa de dilogo da opo References devemos activar a caixa de opes de Microsoft DAO 3.6 object library com um visto (figura III.3.3), de forma a disponibilizar os objectos desta biblioteca no VBA.

Figura III.3.3 Menu de activao do DAO

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

477

Uma vez activa a biblioteca de objectos Microsoft DAO 3.6, podemos utilizar todo e qualquer objecto desta biblioteca, suas propriedades e mtodos. Estando a trabalhar directamente no Microsoft Access, ao iniciar o JET automaticamente abre uma seco de trabalho (Workspaces), sendo esta considerada como a primeira. No VBA comea-se a contar os objectos a partir de zero (0, 1, 2, 3, ). Assim, na arquitectura DAO escreve-se desta forma: workspaces (0). Para abrir uma base de dados, caso esta seja a base de dados corrente, no necessitamos de indicar o nome nem o caminho, bastando escrever em DAO da seguinte forma: DBEngine. Workspaces (0). Databases (0)9. Os objectos na arquitectura DAO so separados por ponto (.). Neste caso especfico, como nos referimos rea de trabalho corrente e base de dados aberta, podemos simplificar a expresso anterior: DBEngine (0) (0).

Mtodo OpenDatabase
O mtodo OpenDatabase pertence ao objecto Workspace da coleco Workspaces, sendo Workspaces uma coleco do objecto DBEngine. O objecto Workspace existe em cada seco aberta do motor (Jet) da base de dados (Access). Quando a aplicao DAO se inicia, d origem criao do primeiro objecto Workspace da coleco Workspaces (Workspaces (0)). O Workspaces (0) por natureza o workspace por omisso. A sintaxe do mtodo OpenDatabase a seguinte: OpenDatabase (nome as string, [opes]) as database

O mtodo OpenDatabase requer o argumento nome como string para referenciar a base de dados. Por exemplo: set dbs= DBEngine. Workspaces (0). OpenDatabase (GetAppPath () & Editora). O argumento opes facultativo e neste exemplo no utilizado, visto o mtodo simplesmente se limitar a chamar o ficheiro de base de dados que
9

Como a estrutura DAO hierrquica, temos que nos referir a todos os objectos desde o topo.

478

BASES DE DADOS COM MICROSOFT ACCESS 2007

se encontra no mesmo caminho onde se encontra o programa, atribuindo por ltimo a referncia do objecto varivel definida como varivel da base de dados (dbs). De seguida vamos criar um procedimento para abrir uma base de dados referente rea de trabalho corrente e base de dados aberta, com o nome de abrirBD e o cdigo seguinte:
Public Sub abrirBD() Dim db as DAO.Database Set db=DBEngine(0)(0) Set db=Nothing End Sub

A instruo Dim permite declarar uma varivel. Neste caso, declarada a varivel db do objecto Database. O Set utilizado para dar varivel o valor de um objecto. Na ltima linha de cdigo, dentro do procedimento, passamos o valor de Nothing para dentro da varivel db, a fim de libertar memria, ou ento, podemos utilizar o mtodo Close: db.close.

Mtodo CreateDatabase
Para criar uma base de dados, o objecto DBEngine est equipado com o mtodo CreateDatabase (). A sua sintaxe a seguinte: DBEngine.CreateDatabase (nome, linguagemBD, opes)

Como j anteriormente demonstrado, sempre que se trate de uma base de dados aberta (em utilizao), no necessitamos de mencionar o objecto DBEngine, bastando s chamar o mtodo CreateDatabase, como por exemplo:
Private sub CmdCreate_click() CreateDatabase(Editora.mdb,.) End Sub

Podemos tambm colocar a base de dados numa pasta e drive nossa escolha, bastando para isso indicar o caminho (Path) onde se encontra a base de dados, por exemplo:
Private sub CmdCreate_click() CreateDatabase(c:\Microsoft Access\Editora.mdb,.) End Sub

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

479

A segunda opo (argumento) deste mtodo prende-se com o tipo de linguagem a utilizar pela base de dados (figura III.3.4), como por exemplo:
Private sub CmdCreate_click () CreateDatabase(c:\Microsoft Access\Editora.mdb,dbLangGeneral) End Sub

Constantes dbLangGeneral dbLangArabic dbLangCyrillic dbLangCzech dbLangDutch dbLangGreek dbLangHebrew dbLangHungarian dbLangIcelandic dbLangNordic dbLangNorwdan dbLangPolish dbLangSpanish dbLangSwedfin

Grupo de linguagens Ingls, Alemo, Francs, Portugus, Italiano, e Espanhol Moderno rabe Russo Checo Alemo Grego Hebraico Hngaro Islndia Linguagens Nrdicas (Motor Base de Dados da Microsoft Jet verso 1.0) Noruegus Polaco Espanhol Tradicional Sueco e Finlands

Figura III.3.4 Pases e respectivas linguagens a utilizarem na BD

Para o terceiro argumento deste mtodo podero ser consideradas algumas opes na criao da base de dados. Quando necessitamos de encriptar a base de dados, podemos recorrer constante dbEncrypt para esse efeito, ou, ento, especificar a verso da Microsoft Jet na base de dados relacional. Neste caso, o argumento pode tomar um dos seguin-

480

BASES DE DADOS COM MICROSOFT ACCESS 2007

tes valores: dbVersion10, dbVersion11, dbVersion20 ou dbVersion30, como por exemplo:


Private sub CmdCreate_click()
CreateDatabase(c:\Microsoft Access\Editora.mdb,dbLangGeneral,dbVersion10)

End Sub

Objecto QueryDef
Este objecto permite visualizar/criar consultas, recorrendo a instrues SQL ou executando a aco includa na instruo. Para criar uma consulta, recorremos ao mtodo CreateQueryDef, cuja sintaxe a seguinte: CreateQueryDef ([Nome],[textoSQL])

O item Nome refere-se designao a atribuir consulta. O item TextoSQL um conjunto de instrues em SQL que visa criar a consulta. Vamos neste exerccio criar uma consulta que permita visualizar todos os autores dos livros cujo tema contenha a palavra Access. A consulta realizada na base de dados corrente. Criamos ento o seguinte procedimento:
Public sub criarconsulta_click () Dim db as database Dim qd as querydef Dim sql As String Set dbs=DBEngine(0)(0) sql = "SELECT CdAutor, Nome, Morada FROM Autores, Autores/Livro, Livros WHERE Titulo LIKE *Access*" Set qd = db.CreateQueryDef("editora", sql) qd.Close DoCmd.OpenQuery "editora", acViewNormal, acReadOnly End sub

ou
Sub ver () Set db = DBEngine(0)(0) sql = "SELECT CdAutor, Nome, Morada FROM Autores WHERE Nome like '" & Forms! Autores! Texto1 & "*" & "'" Set qd = db.CreateQueryDef("editora", sql) qd.Close DoCmd.OpenQuery "editora", acViewNormal, acReadOnly

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA db.QueryDefs.Delete ("editora") End Sub

481

Caso a consulta j exista, podemos criar um objecto QueryDefs baseado nessa consulta, como se pode analisar no seguinte procedimento:
Public sub criarconsulta_click() Dim dbs as database Dim qd as querydef Set dbs=DBEngine(0)(0) Set qd=QueryDefs(Editora) Qd.close Db.close End Sub

Podemos ter necessidade de eliminar a consulta criada ou j existente na base de dados. Para tal utilizamos a seguinte instruo: dbs.QueryDefs. delete(Editora).

Objecto TableDef
Este objecto representa uma tabela numa base de dados, podendo ser local ou no, mas nunca representa os dados nela contidos.

Objecto Recordset
Este objecto utilizado para manipular dados de uma base de dados ao nvel de registos. Na arquitectura DAO a manipulao de dados deve-se praticamente utilizao de objectos/mtodos do Recordset. Todos os objectos do Recordset so construdos utilizando registos (linhas) e campos (colunas). Existem cinco tipos de objectos para o Recordset (figura III.3.5): Table Type Recordset: Representa, em termos de cdigo, uma tabela de base de dados, na qual se pode adicionar, alterar ou eliminar registos. A manipulao dos dados feita directamente nos dados da tabela fsica; Dynaset Type Recordset: Representa o resultado de uma consulta (Query). Com um Dynaset podemos extrair e actualizar dados de mais de uma tabela.

482

BASES DE DADOS COM MICROSOFT ACCESS 2007

Snapshot Type Recordset: Representa uma cpia esttica de um conjunto de registos que se podem utilizar para procurar dados ou gerar relatrios. Forward Only Type Recordset: idntico ao Snapshot, mas s pode ver os registos para a frente e nunca para trs. No permite actualizaes. Dynamic Type Recordset: Representa uma consulta (Query) que resulta de uma ou mais tabelas da base de dados, na qual se pode adicionar, alterar ou eliminar registos.

Este objecto apresenta um conjunto vasto de mtodos e propriedades que permite, como foi dito, manipular os dados de uma base de dados, dos quais destacamos os seguintes:

O mtodo OpenRecordset
O mtodo OpenRecordset do objecto Database utilizado para estabelecer uma referncia a um conjunto de registos referentes a uma tabela ou consulta. Para usar e declarar uma varivel do tipo RecordSet, ficando esta com o resultado obtido pelo mtodo OpenRecordset. A sua sintaxe a seguinte: Set RecordsetVariable = DatabaseVariable.OpenRecordset (source, type, options, lockedits)

O argumento Source uma string que representa o nome de uma tabela ou consulta. Podemos tambm utilizar instrues em SQL para definir o Recordset, como a seguir se demonstra pelo seguinte procedimento:
Set RSV = DB.OpenRecordset(SELECT count * as Total_Livros FROM Editoras WHERE Nome= & FORMS!Autores!Nome & )

O resultado desta instruo SQL atribudo varivel objecto RSV e representa o parmetro Source. O parmetro Tipo aqui omisso, sendo assumido por omisso que o objecto do tipo Dynaset. O parmetro Type (figura III.3.5) opcional. uma constante que indica o tipo de Recordset a abrir. Essas constantes so referenciadas da seguinte forma:

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

483

dbOpenTable: tipo Tabela; dbOpenDynamic: tipo Dinmico; dbOpenDynaset: tipo Dynaset; dbOpenSnapshot: tipo Snapshot; dbOpenForwardOnly: tipo Forward-Only.

Tipos de Recordsets Tipos de Recordsets


Table

Source Constantes
dbOpenTable

Vantagens

Inconvenientes

Acesso directo tabela da BD; Permite a utilizao de ndices (Indexes); A procura rpida; Pode actualizar registos na tabela subjacente.

Refere-se exclusivamente a uma nica tabela da base de dados; S procura atravs dos ndices criados, utilizando para isso o mtodo Seek; No limita n registos.

Dynaset

dbOpenDynaset

Pode seleccionar registos e campos especficos; Pode usar partes de instrues em SQL; Permite pesquisas por qualquer campo (utilizando o mtodo FIND).

As pesquisas so mais lentas que no tipo table; No pode fazer uso dos ndices (Indexes).

Snapshot

dbOpenSnapshot

As mesmas vantagens do tipo Dynaset

S de leitura

Figura III.3.5 Tipos de Recordsets

Como j referido anteriormente, por omisso o tipo predefinido dbOpenTable. Considerando ento o objecto tipo tabela (dbOpenTable), este um tipo de Recordset que identifica uma tabela da base de dados, contendo os dados dessa entidade. Para declarar um tipo de objecto como este necessrio ter aberto anteriormente a base de dados e inicializar uma

484

BASES DE DADOS COM MICROSOFT ACCESS 2007

varivel do tipo Database, onde se encontra a tabela que queremos afectar ao objecto tabela (Table), como se poder visualizar pelo procedimento seguinte:
Option Compare Database Dim db As Database Private Sub Form_Activate() Dim tableVar As Recordset Set db = OpenDatabase("C:\Documents and Settings\TO\Ambiente de trabalho\Livro\Editora.Mdb") Set tableVar = db.OpenRecordset("Autores", dbOpenTable) End Sub

Comeamos por declarar a varivel db do objecto Database (para atribuio de uma base de dados no corrente). Dentro do procedimento Private Sub Form_Activate() declaramos a varivel tableVar do objecto Recordset. O set utilizado para dar varivel o valor do objecto, neste caso a varivel db ir representar a base de dados Editora.mdb e a varivel tableVar ir representar a tabela Autores e seus valores. A partir deste momento, sempre que haja necessidade de adicionar, alterar, visualizar ou eliminar dados desta tabela utilizamos a varivel (tableVar) que representa este Recordset. Relativamente ao objecto Dynaset, este encontra-se desenhado de uma forma muito mais flexvel para a utilizao de tabelas que o objecto Table. Este tipo de Recordset (Dynaset) identifica uma ou vrias consultas (Query) da base de dados, contendo os dados de uma ou mais entidades. Para declarar um tipo de objecto como este necessrio ter aberto anteriormente a base de dados e declarar uma varivel do tipo Database, onde se encontra a consulta ou consultas que queremos afectar ao objecto Dynaset (consulta), como se visualiza pelo procedimento seguinte:
Option Compare Database Dim db As Database Private Sub Form_Activate() Dim DysetVar As Recordset Set db = OpenDatabase("C:\Documents and Settings\TO\Ambiente de trabalho\Livro\Editora.Mdb") Set DysetVar = db.OpenRecordset("Autores", dbOpenDynaset) End Sub

Podemos tambm utilizar declaraes SQL na consulta que requeremos afectar o objecto Dynaset, como a seguir se demonstra:

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA Sub analise() Dim db As Database Dim dysetVar As Recordset Dim sql As String Set db = DBEngine(0)(0) sql = "SELECT CdAutor, Nome, Morada FROM Autores WHERE CodPostal>4800" Set dysetVar = db.OpenRecordset(sql, dbOpenDynaset) DoCmd.OpenQuery "dysetVar", acViewNormal End Sub

485

A diferena em relao ao procedimento anterior deve-se essencialmente afectao do objecto Dynaset atravs de instrues SQL (Set dysetVar = db.OpenRecordset(sql, dbOpenDynaset). O argumento Options facultativo e quando utilizado representa uma combinao de constantes que especificam caractersticas do novo Recordset (figura III.3.6). Algumas dessas constantes que possibilitam a combinao so:

Figura III.3.6 Recordset com parmetro opes.

dbAppendOnly permite aos utilizadores acrescentar novos registos ao Recordset, mas nunca eliminar ou alterar registos j existentes; dbSQLPassthrough passa um conjunto de instrues SQL para uma base de dados acedida por ODBC (s para Recordset do tipo Snapshot);

dbSeechanges gera um erro em run time, caso um utilizador esteja a modificar dados que um outro esteja no mesmo momento a utilizar (s para Recordset do tipo Dynaset); dbdenyWrite previne outros utilizadores de modificar ou adicionar registos (s para Recordset do tipo table); dbdenyRead previne outros utilizadores de ver dados numa tabela (s para Recordset do tipo table);

486

BASES DE DADOS COM MICROSOFT ACCESS 2007

dbReadOnly previne os utilizadores de fazerem alteraes no Recordset. O argumento lockedits10 tambm opcional e determina a forma de visualizar o Recordset.

O Mtodo MOVE
Um objecto Recordset mantm a posio do registo corrente, de forma a permitir ao programador movimentar para o primeiro, o ltimo, o prximo ou anterior registo de uma tabela ou dynaset. Para tal utiliza-se os seguintes mtodos: MoveFirst, MovePrevious, MoveNext e MoveLast. Associada a estes mtodos importante a utilizao das propriedades BOF (Begin-of-file) e EOF (End-of-file). Quando se utiliza o mtodo MoveNext (figura III.3.7), existe a possibilidade do registo corrente se encontrar j na ltima posio, ou seja no ltimo registo. Neste caso especfico, ao movimentar-se para o prximo registo ir ultrapassar a ltima posio, causando um erro. A utilizao desta propriedade (EOF) permite testar a posio do registo corrente. Caso o valor desta propriedade seja Verdadeiro, ento a posio do registo corrente passa para o ltimo, como se pode ver na programao do procedimento seguinte:
rs.MoveNext If rs.EOF Then rs.MoveLast End If

Figura III.3.7 Mtodo MoveNext


10

O argumento lockedits no referenciado nos exemplos, no sendo portanto objecto de estudo deste manual.

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

487

Da mesma forma, quando se pretende mover a posio para trs no recordset com o mtodo MovePrevious, existe a possibilidade de j se encontrar no incio do recordset, originando um erro por falta de registo corrente. Por isso, conveniente usar a propriedade BOF. Se ao movimentar-se no recordset a propriedade BOF originar o valor Verdadeiro, a soluo vlida ser mover a posio para o primeiro registo (figura III.3. 8).
rs.MovePrevious If rs.BOF Then rs.MoveFirst End If

Figura III.3.8 Mtodo MovePrevious

Quando se invoca a mesma referncia do objecto em mltiplas instrues (mtodos e propriedades), podemos atravs da clusula With/End With encaixar as vrias instrues de cdigo da seguinte forma:
With rs .MoveNext If .EOF Then .MoveLast End If End With

O Objecto Field
Ao movimentar-se pelos registos de um recordset poder ser necessrio utilizar os valores dos respectivos campos. Para tal, ser necessrio utilizar o objecto Field.

488

BASES DE DADOS COM MICROSOFT ACCESS 2007

Existem trs sintaxes possveis para referenciar o campo pretendido: Fields(0) Fields(nome) Fields![nome]

O zero representa a posio numrica do campo, isto , o primeiro campo tem a posio zero. O nome representa o nome do campo. Caso este inclua espaos em branco dever represent-lo dentro de parnteses rectos (figura III.3.9).

Figura III.3.9 Objecto Field

Propriedade Recordcount
Para o objecto Recordset tipo Table a propriedade RecordCount reflecte o actual nmero de registos existentes na tabela, depois de executado o mtodo OpenRecordset. A figura III.3.10 ilustra a utilizao desta propriedade. O resultado do cdigo mostrado na figura III.3.11. No

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

489

caso de ser um objecto Recordset tipo Dynaset, o RecordCount reflecte simplesmente o nmero de registos visitados. Isto significa que no objecto Dynaset, logo aps ter sido executado o mtodo Recordset, o primeiro registo considerado o registo corrente e o valor da propriedade RecordCount igual a um (1). Caso se necessite do nmero total de registos, necessrio utilizar o mtodo MoveLast e s depois aplicar a propriedade RecordCount (figura III.3.12). Resultado na figura III.3.13.

Figura III.3.10 Propriedade RecordCount numa Tabela

Figura III.3.11 Resultado Propriedade RecordCount

Figura III.3.12 Propriedade RecordCount num Dynaset

490

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.3.13 Resultado RecordCount num Dynaset

Mtodo Index e Seek, Propriedade Nomatch


A propriedade Index11 e o mtodo Seek s podero ser usados num objecto Recordset tipo Table (Tabela). O mtodo Index estabelece uma relao com o nome do ndice (primrio ou no) existente na tabela a utilizar. Os ndices incluem a chave primria e todos os outros ndices existentes na tabela. O mtodo seek s permite realizar procuras em campos ndices. A propriedade NoMatch12 pode ser usada com qualquer tipo de Recordset, isto , quando se realiza uma procura numa tabela com o mtodo Seek ou num Dynaset (consulta (s)) com o mtodo Find. Nos prximos exemplos, teremos oportunidade de entender como estes mtodos e propriedades interagem entre si. Neste exerccio iremos abrir um Recordset do tipo Table e, atravs do mtodo Seek, ir ser localizado o primeiro registo da tabela Autores, cujo campo CdAutor (PrimaryKey) seja igual ao valor da caixa de texto (texto27). O cdigo para este exerccio encontra-se dentro do procedimento Sub PesqAutor_click, associado ao boto de comando Pesq Autor (figura III.3.14).

11

Esta propriedade quando utilizada num objecto recordset tipo Dynaset originar um erro com a seguinte mensagem: O objecto no suporta esta propriedade ou mtodo.

Esta propriedade devolve o valor verdadeiro true se no foi encontrado o registo especificado e falso false caso seja encontrado.

12

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

491

Figura III.3.14 Procedimento do mtodo Seek

Resultado da aplicao do mtodo (figura III.3.15):

Figura III.3.15 Resultado mtodo Seek

Atravs do mtodo Seek ir ser localizado o primeiro registo CdAutor (PrimaryKey) que ter que ser igual ao valor da caixa de texto (texto27). Com este mtodo apenas o primeiro registo ser encontrado, caso exista. Para a existncia de mais que uma ocorrncia ser necessrio utilizar o cdigo do procedimento seguinte:

492

BASES DE DADOS COM MICROSOFT ACCESS 2007 Sub MaisRegistos () Dim db As DAO.Database Dim rs As DAO.Recordset Set db = DBEngine(0)(0) Dim stringactual As String Set rs = db.OpenRecordset("Autores", dbOpenTable) rs.MoveFirst Do While Not rs.EOF If rs.Fields("CdAutor") >= Val(Texto27) Then stringactual = stringactual & rs.Fields(0) & " - " & rs.Fields(1) & vbCrLf End If rs.MoveNext Loop If stringactual = "" Then MsgBox "no existem Autores com cdigo superior ou igual ao digitado" & vbCrLf & "na Caixa de Texto" Else MsgBox stringactual End If End Sub

No exerccio anterior sempre que se introduza um valor numrico na caixa de texto (Texto27), o procedimento pesquisa a tabela (Autores) registo a registo, mostrando todos os registos (cdigo e nome do Autor) cujo cdigo Autor seja igual ou superior a esse valor. Especificando o valor 80 para o cdigo do Autor na caixa de texto, o resultado o seguinte:

Figura III.3.16 Resultado procedimento Sub MaisRegistos()

O Mtodo Find
Quando se pretende procurar registos atravs de um campo no indexado num Recordset tipo Dynaset ou Snapshot utiliza-se o mtodo FIND.

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

493

Podem ser utilizadas quatro extenses deste mtodo, consoante a procura pretendida (procura direccionada): FindFirst Encontra o primeiro registo que satisfaz um determinado critrio; FindNext Encontra o registo seguinte que satisfaz um determinado critrio; FindPrevious Encontra o registo anterior que satisfaz um determinado critrio; FindLast Encontra o ltimo registo que satisfaz um determinado critrio.

Neste exerccio recorremos ao mtodo Find, uma vez que o campo a procurar no indexado. Vamos abrir um Recordset do tipo Dynaset, recorrendo a instrues SQL, como indica o exemplo (figura III.3.17). De seguida criamos uma consulta em SQL relativa a todos os Autores residentes em Lisboa. Finalmente, com o mtodo FindFirst ir ser localizado o primeiro registo que satisfaz um determinado critrio. Caso se pretenda continuar com a pesquisa no sentido de encontrar um novo registo com as mesmas condies, utiliza-se o mtodo FindNext (figura III.3.19).

Figura III.3.17 Procedimento do mtodo FindFirst

494

BASES DE DADOS COM MICROSOFT ACCESS 2007

Resultado da aplicao do mtodo (figura III.3.18):

Figura III.3.18 Resultado aplicao do mtodo FindFirst

Figura III.3.19 Procedimento do mtodo FindNext

Resultado (figura III.3.20):

Figura III.3.20 Resultado aplicao do mtodo FindFirst

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

495

Os Mtodos AddNew, Edit, Update e Delete


O mtodo AddNew cria um espao de memria temporrio, contendo uma estrutura vazia (registo) do Recordset. Caso o registo contenha numerao automtica (AutoNumber), o registo ser incrementado nesse momento. A partir de um procedimento de cdigo de programao iremos atribuir valores aos vrios campos (Fields) do Recordset (figura III.3.22). Aps essa atribuio, dever ser utilizado o mtodo Update para escrever os valores no novo registo do Recordset (figura III.3.23). Declaramos no procedimento geral as variveis tipo objecto (Database e Recordset) necessrias para afectar a Base de Dados Editora.Mdb e o Recordset da tabela Livros (figura III.3.21).

Figura III.3.21 Variveis tipo Database e Recordset

Figura III.3.22 Procedimento para abertura de novo Registo

496

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.3.23 Procedimento de gravao do novo registo inserido.

A gravao s ser bem-sucedida quando utilizado o mtodo Update. At a sempre possvel manter o recordset inicial e abandonar o novo registo e seus dados. Quando um novo registo acrescentado ao recordset, este no ser considerado o registo corrente, para tal teremos que utilizar a propriedade LastModified do Recordset. Resultado:

Figura III.3.24 Formulrio Livros

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

497

Formulrio Livros preparado para introduzir dados no novo registo (figura III.3.24). Aps terminada a insero dos dados, segue-se a fase da gravao de forma a validar o novo registo (figura III.3.25).

Figura III.3.25 Formulrio Livros com dados

Por ltimo, j com o recordset actualizado, ser emitida a mensagem seguinte:

Figura III.3.26 Mensagem de texto

O mtodo Edit cria tambm um buffer de memria temporria, contendo a estrutura e os dados relativos ao registo corrente, isto , o registo cujos dados se pretendem alterar. Aps essa alterao e novamente atravs do

498

BASES DE DADOS COM MICROSOFT ACCESS 2007

mtodo Update, actualiza-se o Recordset com os novos dados existentes (figuras III.3.27 e III.3.28). As alteraes no sero consideradas se por qualquer razo no existir o mtodo Update.

Figura III.3.27 Mtodo Edit

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

499

Figura III.3.28 Mtodo Update

O resultado o da figura III.3.29. Escolhe-se o registo que se pretende alterar, como se observa na imagem.

Figura III.3.29 Caixa de texto a solicitar registo a alterar

500

BASES DE DADOS COM MICROSOFT ACCESS 2007

Depois de digitado o registo pretendido (neste caso o registo 2), podemos alterar os vrios valores (figura III.3.30), para que em seguida, ao premir no boto gravar o registo alterado, se fique com os novos dados nesse registo.

Figura III.3.30 Alterao dos valores do registo com CodRevendedor igual a 2

Como se pode visualizar na figura seguinte:

Figura III.3.31 Registo com CodRevendedor igual a 2 actualizado

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

501

O mtodo Delete elimina o registo corrente do Recordset. Aps ter eliminado o registo, ser necessrio repor novamente um outro registo corrente, atravs da movimentao para a frente ou para trs no recordset. Recorrendo ao mtodo Move, e em particular ao mtodo MoveNext, posicionamo-nos no prximo registo do Recordset, que ser o registo corrente como se pode visualizar no procedimento seguinte:
Private Sub EliminarAutor_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Set db = DBEngine(0)(0) Set rs = db.OpenRecordset("Autores", dbOpenTable) rs.Index = "primarykey" rs.Seek "=", Val(Texto27) If Not rs.NoMatch Then rs.delete rs.MoveNext Else MsgBox "no existe o Autor pretendido com esse cdigo" End If End Sub

Propriedade AbsolutePosition
Esta propriedade permite ao utilizador determinar a posio absoluta de um registo pretendido. O cdigo seguinte permite saber qual a posio absoluta do registo que contm o nmero de contribuinte 14342344, relativo aos revendedores da zona norte. O tipo de recordset utilizado foi um Dynaset recorrendo a instrues de SQL.
Dim d As Database, r As Recordset Set d = CurrentDb Set r = d.OpenRecordset("SELECT * FROM Revendedores WHERE " & "Regio= 1") r.FindFirst "Contribuinte = 14342344" MsgBox r.AbsolutePosition r.Close Set d = Nothing

Propriedades BeginTrans, CommitTrans e RollBack


Estas propriedades esto ligadas Base de Dados, corrente ou no, e permitem o seguinte: BeginTrans: Inicia uma transaco na Base de Dados; CommitTrans: Permite guardar as alteraes feitas;

502

BASES DE DADOS COM MICROSOFT ACCESS 2007

RollBack: Desfaz as alteraes mesmo depois de j terem sido gravadas com o mtodo Update. Vejamos um exemplo (figura III.3.32): Vamos abrir a tabela Autores da Base de Dados corrente e alterar, sujeito a confirmao, o valor do campo Nome de Antnio Abreu para Antnio Abreu S., utilizando as propriedades anteriores. Para alterao dos valores do campo Nome utilizam-se duas caixas de texto, a primeira com o valor a pesquisar e a segunda com o valor a alterar (figura III.3.32).

Figura III.3.32 Formulrio exemplo

Caso o primeiro valor seja encontrado, solicitado que se grave a respectiva alterao na tabela, mediante confirmao na caixa de mensagem.

FiguraIII.3.33 Formulrio com caixa de confirmao

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

503

Aps a confirmao a tabela Autores de imediato actualizada (figura III.3.34).

Figura III.3.34 Extracto da tabela Autores

Contudo, se a inteno no for alterar os dados dessa tabela, escolhendo a opo No da caixa de mensagens Guardar Alteraes, ser desfeita toda e qualquer alterao feita nessa tabela atravs da propriedade Roll Back (figuras III.3.35 e III.3.36).

Figura III.3.35 Formulrio com caixa de texto Guardar Alteraes

Figura III.3.36 Extracto da tabela Autores

O cdigo de programao deste exerccio encontra-se no procedimento Private Sub INIALT_Click() End Sub (figura.III3.37).

504

BASES DE DADOS COM MICROSOFT ACCESS 2007

FiguraIII.3.37 Propriedades BeginTrans, Commitrans e RollBack

Mtodos CompactDatabase e RepairDatabase


Para terminar este priplo pelos mtodos e propriedades do modelo DAO, fazer a compactao e reparao da base de dados muito til para reduzir o seu tamanho da base de dados, aps manipulaes, para a tornar mais rpida. A sintaxe a seguinte:

CompactDatabase:

DBEngine.CompactDatabase(BDAntiga, BDNova, local, opes, password)

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

505

BDAntiga: uma string que representa a base de dados a compactar, desde que esteja fechada. A string deve conter o caminho completo e nome da BD. Argumento obrigatrio; BDNova: uma string que representa o novo nome e caminho da base de dados compactada. Argumento obrigatrio; Local: Argumento opcional. Especifica a ordem para criar a nova base de dados, revista nas propriedades; Opes: Argumento opcional. uma constante ou combinao de constantes que indica uma ou mais opes, a indicar pelas propriedades; Password: Argumento opcional. uma string que contm a password, se a base de dados estiver protegida com password.

RepairDatabase:

DBEngine. RepairDatabase (BDNome)

BDNome: uma string que representa a base de dados a reparar. A string deve conter o caminho completo e nome da BD. Argumento obrigatrio. Vamos ento reparar e compactar a nossa base de dados, recorrendo ao cdigo de programao: Reparar:
DBEngine.RepairDatabase"C:\Documents and ettings\Utilizador\Ambiente de trabalho\Livro 2007\Editora.mdb") MsgBox "Base de Dados reparada com sucesso!" DoCmd.Quit

Compactar:
Dim d As Database Set d = OpenDatabase("C:\Documents and Settings\Utilizador\Ambiente de trabalho\Livro 2007\Editora.mdb") DBEngine.CompactDatabase d,d MsgBox "Base de Dados compactada com sucesso!!!!" DoCmd.Quit

506

BASES DE DADOS COM MICROSOFT ACCESS 2007

Estes dois mtodos s funcionam perante uma base de dados da Microsoft JET.

3.2 Arquitectura ADO


Como j mencionado anteriormente, todos os produtos da Microsoft que utilizam acessos a estruturas de dados esto a convergir para uma estrutura metodolgica universal (UDA) (figura III.3.38), capaz de conciliar e integrar o que de melhor tm as metodologias DAO e RDO13. Normalmente os programadores de Visual Basic14 (VBA, VB5, VB6, , etc.) utilizam a metodologia DAO (Data Access Objects) para interagir com bases de dados locais, tais como o Microsoft Access 2007 e usam RDO (Remote Data Objects) para se ligarem a bases de dados do tipo cliente/servidor, tais como o SQL Server.

Figura III.3.38 Arquitectura Universal Data Access UDA da Microsoft

A concepo que se encontra por detrs da metodologia ADO ActiveX Data Objects (figura III.3.39) mais abrangente do que a anterior arqui13

RDO Remote Data Objects: Este modelo permite aceder a Bases de Dados remotas. Este modelo no ser objecto de estudo neste manual.

14

O Visual Basic uma linguagem de programao produzida pela empresa Microsoft, e parte integrante do pacote Microsoft Visual Studio. A verso mais recente faz parte do pacote Visual Studio .NET voltada para aplicaes .Net. A verso anterior fez parte do Microsoft Visual Studio 6.0, ainda muito utilizado actualmente.

III.3 MODEL LO DE OBJECTOS NO N MICROSOFT ACCESS C 2007/VBA

507

tectura. Trata-se de uma meto odologia un niversal de acesso a a da ados (UDA sal Data Ac ccess). Univers Desta forma, f qualquer mtod do de acesso a dados s poder se er usado po or qualque er origem de d dados. Esta E metodologia reco orre ao para adigma OL LE 15 DB (fig gura III.3.39 9) da Micro osoft, com o qual pos ssvel acede er a qualquer tipo de dados, d esta ando relacio onados ou no, n de uma a forma mais rpida.

Figura III.3.39 Arquitectur ra OLE DB e ADO

A metod dologia AD DO no domnio exc clusivo de uso u por par rte do Visu ual Basic. Esta pode ser utilizada por muita as outras lin nguagens de d programa aentadas por r objectos, bem como por todas as a aplica es do Micro oo orie soft Offi ice, em part ticular pelo Microsoft Access A 2007 7.

15 A tecnologia OLE DB D Object Linking L and E Embedding for f Databases s compos sta por comp ponentes de baixo b nvel, qu ue permitem acesso a a dad dos, qualquer que seja a su ua origem.

508

BASES DE DADOS COM MICROSOFT ACCESS 2007

3.2.1 A Metodologia ADO no Access/VBA


Ao instalar o Microsoft Office 2007 instalado o Microsoft Data Access Components (MDAC) que inclui como componentes o OLE DB e o Microsoft ActiveX Data Objects 2.x (ADO). Ao criar uma base de dados no Access 2007 criada automaticamente uma referncia biblioteca de objectos ADO 2.x, como se pode ver pelo editor de VBA, no menu Tools e opo References (figura III.3.40).

Figura III.3.40 Menu de activao do ADO

3.2.2 Modelo de Objectos ADO


A metodologia ADO permite resolver operaes onde intervenham bases de dados, tais como: obteno/adio de dados, actualizar/editar dados, eliminar dados, etc. Para realizar todas estas operaes, a metodologia ADO apresenta alguns objectos (figura III.3.41), que possuem mtodos e propriedades capazes de resolver e simplificar estas operaes. Em primeiro lugar existe a necessidade de nos ligarmos fonte de dados, usan-

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

509

do para tal o objecto Connection do ADO. Este objecto encontra-se no topo da hierarquia, e como tal manipula toda a comunicao entre a aplicao e a fonte de dados (Base de Dados). De seguida, vamos passar instrues fonte de dados sobre o que se deseja fazer, usando o objecto Command do ADO. Este objecto representa uma instruo em SQL, um stored procedure16, estrutura em tabela ou qualquer outro comando que possa ser processado pela fonte de dados. O resultado da passagem de um comando para uma fonte de dados e da elaborao da sua resposta normalmente representado por um objecto Recordset do ADO. Por vezes, necessrio recorrer ao objecto Parameter para realizar uma ou outra operao especfica. Este objecto utilizado em conjunto com o objecto Command. A resposta dada pelo recordset implica a utilizao do objecto Field onde ser alojada a informao solicitada. Um field (campo) constitui uma pequena parte do Recordset. Cada campo constitudo pelas suas propriedades, como o nome, o tipo de dados e o valor. Normalmente um Recordset constitudo por um conjunto de campos que constituem a informao pretendida.

Figura III.3.41 Modelo de Objectos ADO

16

stored procedure equivalente a um subprocedimento no SQL

510

BASES DE DADOS COM MICROSOFT ACCESS 2007

O objecto Property propriedade faz parte de um conjunto de propriedades que o objecto ADO possui. Estas determinam o comportamento de um objecto. O objecto Error Erro contm a informao da impossibilidade de se estabelecer uma ligao (conexo), um comando, ou efectuar uma operao num objecto que no est disponvel para tal. Actualmente o ADO fornece o objecto Recordset como principal meio para aceder informao nas bases de dados relacionais. No entanto, existem dois objectos alternativos (Record e Stream) que tambm permitem manipular dados. Os objectos do tipo Record funcionam essencialmente como um Recordset. Os Records tm funes limitadas em comparao com os Recordsets e possuem tambm diferentes propriedades e mtodos. O objecto Stream fornece meios para ler, escrever e manipular um conjunto de bytes. O conjunto de bytes pode ser um texto ou um binrio e est limitado em tamanho apenas por recursos do sistema. Estes dois objectos no sero objecto de estudo mais aprofundado neste manual.

3.2.3 Objectos ADO no Access 2007


Um objecto ADO fornece propriedades, eventos, mtodos e coleces. Assim, aps ter criado um objecto ADO e armazenado o objecto numa varivel (varivel objecto), podemos usar essa varivel para aceder s propriedades, executar os mtodos ou aceder aos elementos das coleces desse objecto. De seguida, so apresentados alguns exerccios que manipulam os principais objectos da metodologia ADO, tais como: o objecto Connection, o objecto Command e o objecto Recordset.

Objecto Connection Criar um Objecto ADO usando a instruo DIM


Como j referenciado, para abrir uma base de dados, neste caso especfico, no Microsoft Access 2007, de uma forma programtica, utiliza-se o objecto Connection e a propriedade ConnectionString. Nesta situao necessitamos do motor de base de dados Jet, para que atravs do OLE BD se possa dizer que quem providencia o acesso base de dados o

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

511

Jet, antes de abrir o objecto Connection. Para isso utiliza-se a propriedade Provider deste objecto, especificando a string Microsoft Jet 4.0 OLE DB Provider, como a seguir se demonstra:
Dim conexo as ADODB.Connection Set conexo = New ADODB.Connection Conexo.connectionstring = Provider = Microsoft.jet.OLEDB.4.0; Data Source = c:\livro\Editora.mdb

definida uma varivel conexo para a ligao. Com o comando Set atribumos varivel conexo uma nova ligao. De seguida, ligao conexo definimos qual a nossa ConnectionString para abrir a base de dados Editora.Mdb como se visualiza no procedimento Sub Form_ Load() (figura III.3.42).

Figura III.3.42 Abertura da base de dados com o mtodo ADO

Usar a instruo CreateObject para criar um Objecto ADO


Quando se utiliza a instruo CreateObject as alteraes para abertura do objecto so:
Dim conexo as ADODB.Connection Set conexo = CreateObject("ADODB.Connection")

Podemos tambm utilizar as propriedades Passord e Username, como a seguir se visualiza:


Dim conexo as ADODB.Connection Set conexo = New ADODB.Connection Conexo.connectionstring = Provider = Microsoft.jet.OLEDB.4.0; Password = 1234; Persist Security Info=True=True; User ID= AntonioAbreu; Data Source = c:\livro\Editora.mdb

Perante este cdigo de programao, s ser aberta a base de dados com o nome de utilizador AntonioAbreu e Password 1234.

512

BASES DE DADOS COM MICROSOFT ACCESS 2007

Neste exerccio concreto estamos perante uma base de dados do Microsoft Access, aberta no Access 2007, e reconhecida como base de dados corrente. Como tal podemos utilizar o objecto CurrentProject para atribuir a base de dados a uma varivel objecto e poder abri-la (figura III.3.43).

Figura III.3.43 Abertura da BD com o objecto CurrentProject

Este objecto apresenta vrias coleces que contm objectos AccessObject17 especficos da base de dados actual do Microsoft Access 2007, como se podem observar na tabela seguinte:
Coleces AllForms AllReports AllMacros AllModules Tipo de Objecto Todos os Formulrios Todos os Relatrios Todas as Macros Todos os Mdulos

Figura III.3.44 Coleces e AccessObject do objecto CurrentProject

Objecto Command
Este objecto permite criar consultas, recorrendo a instrues de SQL. Para tal deve recorrer-se propriedade CommandText e colocar as instrues em SQL pretendidas. De seguida, deve atribuir-se propriedade ActiveConnection o valor do objecto Connection e, finalmente,

Os objectos AccessObject representam os vrios objectos que constituem o Microsoft Access 2007, tais como Formulrios, Relatrios, Macros, , etc. Por exemplo um AccessObject que represente um Formulrio membro da coleco AllForms, que uma coleco dos objectos AccessObject contidos na base de dados actual.

17

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

513

atravs do mtodo Execute do objecto em questo d-se ordem de execuo da consulta (figura III.3.45). Este exerccio tem por objectivo alterar um valor concreto num determinado campo, quando a condio estabelecida for satisfeita, recorrendo a instrues SQL e utilizando o objecto Command (figura III.3.45). A instruo SQL utilizada para esta situao a seguinte: UPDATESET. Esta instruo permite atravs do SET atribuir um valor a um campo e a instruo UPDATE grava essa alterao (figura III.3.45).

Figura III.3.45 Objecto Command com a instruo em SQL UPDATESET

Resultado (figura III.3.46, III.3.47, III.3.48). Ao pressionar o boto Alterar dados no Autor com UPDATESET (figura III.3.48) obtemos o seguinte resultado: Antes da aplicao da instruo em SQL:

Figura III.3.46 Extracto da tabela Autores

Depois da aplicao da instruo em SQL:

Figura III.3.47:Extracto da tabela Autores

514

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.3.48 Formulrio Livros por Autor

Recorrendo novamente ao objecto Command e a uma nova instruo SQL INSERT , neste exerccio ter a possibilidade de acrescentar um novo registo numa determinada tabela da base de dados (figura III.3.49), como a seguir se demonstra: Pretende-se acrescentar um novo registo na tabela Autores, com os seguintes dados: Nome Antnio Amrico S, Morada Rua do Almada, Cdigo Postal 4200-200 e Nacionalidade Portuguesa. Aplicando ento a instruo Insert INTO. Value, o cdigo ser o seguinte:

Figura III.3.49 Objecto Command com a instruo em SQL INSERT INTO Value

Resultado:

III.3 MODELO DE OBJECTOS NO MICROSOFT ACCESS 2007/VBA

515

Figura III.3.50 Extracto da tabela Autores

Objecto Recordset
O objecto Recordset uma representao dos registos de uma tabela numa base de dados baseada no motor Microsoft Jet Database, ou em registos resultantes de uma pesquisa (consulta). Para abrir um conjunto de registos (Recordset) utiliza-se o mtodo Open do objecto Recordset, obedecendo seguinte sintaxe: Recordset.Open Fonte, ActiveConnection, CursorType

Fonte: Um objecto Command, uma instruo SQL, nome de uma tabela ou consulta; ActiveConnection: O objecto Connection activo; CursorType: Constante que especifica o tipo de cursor18 a utilizar, quando o objecto Recordset aberto.

18 Os cursores representam as vrias funcionalidades que permitem trabalhar com um conjunto de registos, existindo quatro tipos: Dynamic, Keyset, static e Forward-only. Por omisso o cursor adoptado o Forward-Only, quando no mencionado outro.

516

BASES A DE DADOS CO OM MICROSOFT ACCESS C 2007

Va amos ento analisar o seguinte ex xerccio rela ativo ao ob bjecto Reco ordset na a arquitectur ra ADO. Ap ps ter defin nido uma va arivel objecto Record dset no AD DO, temos acesso a todas t as su uas proprie edades, mtodos e eventos, com mo se v na a figura se eguinte (figu ura III.3.51):

F Figura III.3.51 Objecto Rec cordset, mto odos e proprie edades

Co omo se v na figura, definida uma vari vel objecto o Records set do AD DO com o nome de registo e em segui ida atravs s da activa o do rec curso comp pletar terem mos acesso o relao de todas as a propriedades e m todos da varivel v obje ecto Recor rdset. Po odemos atr ribuir valore es s propriedades do Record dset traduz zida na varivel regi isto (figura a III.3.52).

F Figura III.3.52 2 Atribuio de e valores s pr ropriedades do d objecto Recordset na varivel v R Registo

Po odemos ta ambm ex xecutar um m determinado mtodo do objecto o Recordset R , por exemplo, abrir o conjunto de registos s pretendid do para efe ectuar uma determinad da tarefa ou u funo (fig gura III.3.53 3).

III.3 MODEL LO DE OBJECTOS NO N MICROSOFT ACCESS C 2007/VBA

517

Figura III.3.53 I Execu uo do mtod do Open do objecto o Reco ordset na var rivel Registo o

Um dos s mtodos im mportantes do objecto o Recordse et que perm mite procura ar registos s o mtodo FIND. Este mtodo possui p a seguinte sinta axe: Records set.Find Critrio, Skip pRows, Sea archDirecti ion

O Crit rio represe enta uma string que contm c a ins struo que e especifica o nome do d campo, o operador de compar rao e o valor v a proc curar19. um parme etro obrigat rio. J o parmetro SkipRow ws facult tativo, traba alhando em conjun nto com o parmetro SearchDi irection, especificand e do de comear a procura a (exemplo o, registo a registo). O parmetro por ond Search hDirection, tambm no obriga atrio, perm mite orienta ar a procur ra, conform me os seg guintes valores: adSe earchForw ward par ra a frent te; adSear rchBackward para tr rs. Vamos ento anal lisar o segu uinte exerc ccio relativo o ao Mtod do FIND d do et na arquit tectura ADO O. objecto Recordse xerccio tem m por objec ctivo indicar r os livros que q um aut tor escreveu, Este ex perante e a introdu o do seu cdigo. c

Fig gura III.3.54 Formulrio F de livros l escritos por autor


19

Quando o o valor a pro ocurar alfanumrico, deve er estar entre e plicas.

518

BASES DE DADOS COM MICROSOFT ACCESS 2007

Aps clicar no boto Procura do formulrio obtem-se o seguinte resultado:

Figura III.3.55 Formulrio com resultado da procura com mtodo FIND

O cdigo de programao para realizar esta procura encontra-se no procedimento seguinte:

Figura III.3.56 Pesquisa com o mtodo FIND

III.3 MODEL LO DE OBJECTOS NO N MICROSOFT ACCESS C 2007/VBA

519

Utilizand do o mesm mo recurso (completar r), podemo os aceder a outros ele ementos da coleco do obje ecto Recor rdset, com mo se v na n figura seguinte:

Figura III.3.5 57 Elemento da d coleco Fields F com o nome FieldN Name

Neste cdigo c de programa p o do event to Load da d figura III.3.58 acede emos ao o elemento o da cole eco Fiel lds com o nome FieldName e (FieldN Name = Nom me), e su ua propried dade Value e sendo lid da e armaze enada na a varivel nome, cujo resultado r o seguinte (figura III.3 3.59):

Figu ura III.3.58 Ele emento da cole eco Fields s com o nome e FieldName = NOME

Fi igura III.3.59 Resultado R do procedimento o anterior

III.4 Transio da Metodologia DAO para ADO

H que tirar vantagens do modelo de objectos ADO e das suas caractersticas, de forma a melhorar a velocidade e a funcionalidade das bases de dados. No devemos fazer o salto de uma metodologia para a outra (DAO ADO), por ser mais fcil, estar na moda, ou porque simplesmente a Microsoft entende ser a arquitectura de vanguarda. Devemos faz-lo porque a constante evoluo dos mercados e tecnologias obrigam que cada vez mais estejamos bem preparados e em poder de tecnologia capaz de promover a eficincia, de forma a responder em tempo real s exigncias de mercado. A arquitectura ADO permite escrever cdigo de acesso a dados de uma forma mais simples e rpida, diminuindo assim os tempos de acesso aos dados e consequentemente a diminuio dos tempos de resposta. Como se v, esta arquitectura oferece um conjunto de vantagens em relao arquitectura DAO, incluindo at em relao ao modelo de objectos, que neste caso bem mais simples e eficiente quer a nvel de bases de dados locais quer a nvel de bases de dados remotas.

522

BASES DE DADOS COM MICROSOFT ACCESS 2007

Figura III.4.1 Modelo de objectos DAO versus ADO comparao

De facto, a metodologia ADO possui formas equivalentes para a maior parte das funcionalidades encontradas na metodologia DAO, permitindo assim uma fcil migrao dos processos de uma metodologia para a outra. Por exemplo, o mtodo ADO agrega num s as vrias funcionalidades de cinco mtodos do DAO (FindFirst, FindNext, FindPrevious, FindLast e Seek). Esse mtodo o FIND (figura III.3.56). Ao utilizar um pequeno conjunto de parmetros, este mtodo consegue reproduzir grande parte das funcionalidades do modelo DAO. um facto que no consegue suportar todos os aspectos inerentes aos cinco mtodos, mas consegue realizar tudo aquilo que necessrio, como se demonstra atravs do cdigo de programao dos procedimentos seguintes (procura segundo um determinado critrio o primeiro e os prximos registos que satisfaam o critrio estabelecido):

III.4 TRANSIO DA METODOLOGIA DAO PARA ADO

523

Mtodo FindFirst e FindNext do modelo DAO:


Private Sub PesqAutorNomes() Dim db As DAO.Database Dim rs As DAO.Recordset Dim str As String Dim st As String Dim stringactual As String st = "Nome like '" & Texto27 & "*" & "'" str = "SELECT CdAutor, Nome, CodPostal FROM autores WHERE CodPostal like '4800*' " Set db = DBEngine(0)(0) Set rs = db.OpenRecordset(str, dbOpenDynaset) rs.MoveLast MsgBox rs.RecordCount MsgBox st rs.FindFirst st Do Until rs.NoMatch stringactual = stringactual & rs.Fields(0) & " - " & rs.Fields(1) & vbCrLf rs.FindNext st Loop If stringactual = "" Then MsgBox "no existe o Autor pretendido com esse cdigo" Else MsgBox stringactual End If End Sub

Mtodo Find do modelo ADO:


Private Sub Procura_Click() total = "" maiortitulo = 65 Set conexao = CurrentProject.Connection Set cmd = New Command Set tabe = New Recordset str = "SELECT CdAutor, Nome, Livros.ISBN,Titulo,DataEdio FROM Autores,[Autores/Livro],Livros" & _ "WHERE autores.CdAutor=[Autores/Livro].CodAutor and [Autores/Livro].ISBN=Livros.ISBN" tabe.Open str, conexao st = "CdAutor=" & (Texto2) tabe.Find st, , adSearchForward If Not tabe.EOF Then Texto12 = tabe.Fields("Nome") Lista6.RowSourceType = "Value List" Lista6.AddItem ("ISBN " & " | " & "Titulo" & " | " & "DataEdio") Do While Not tabe.EOF traos = "" t = 0 Lista6.AddItem (tabe.Fields("ISBN") & "| " & titu & "|" & tabe.Fields("DataEdio"))

524 tabe.Find st, 1 Loop Else

BASES DE DADOS COM MICROSOFT ACCESS 2007

MsgBox "No se encontraram Autores com Livros escritos" End If tabe.Close conexao.Close End Sub

A metodologia ADO significa novas funcionalidades no modelo de objectos e uma crescente eficincia/rapidez no acesso a Bases de Dados remotas ou locais, apresentando, assim, razes suficientes para acreditar que a passagem da metodologia DAO para a metodologia ADO poder ser uma realidade a ter em considerao.

ANEXO

Glossrio de Abreviaturas

1FN 2FN 3FN 4FN 5FN

Primeira Forma Normal Segunda Forma Normal Terceira Forma Normal Quarta Forma Normal Quinta Forma Normal And Requirements Committee

ANSI/SPARC American National Standards Institute/Standards Planning BI BLOB CAD/CAM CERN CGI CLI CLOB CODASYL CPU CRISP-DM CRM DBMS DBTG DDL DER DML DSS EIS E-R ERP ES Business Intelligence Binary Large Objects Computer-Aided Manufacturing/Computer-Aided Design Conseil Europen pour la Researche Nuclaire Common Gateway Interface Call Lever Interface Character Large Objects Conference On Data Systems Languages Central Processor Unit Cross Industry Standard Process for Data Mining Customer Relationship Management DataBase Management Systems Data Base Task Group Data Definition Language Diagrama Entidade-Relacionamento Data Manipulation Language Decision Support Systems Executive Information Systems Entidade-Relacionamento Enterprise Resource Planning Expert Systems

FNBC HTML ICAM IDMS IMS KMS MIS MM MOLAP ODMG OIS OLAP OLE OLTP PS PSM QBE ROLAP SBD SCM SDL SEMMA SEQUEL SGBD SIG SIS SI/TI SQL VBA VBE VDL WYSIWYG XME

Forma Normal de Boyce-Codd Hyper Text Mark-up Language Integrated Computer-Aided Manufacturing Integrated Database Management System Information Management System Knowledge Management System Management Information System Multi Media Multidimensional OLAP Object Database Management Group Office Information Systems On-line Analytical Processing Object Linking and Embedding On-line Transaction Processing Processing Systems Persistent Stored Models Query By Example Relational OLAP Sistema de Bases de Dados Supply Chain Management Storage Definition Language Sample, Explore, Modify, Model, Assess Structured English Query Language Sistema de Gesto de Bases de Dados Sistema de Informao Geogrfica Strategic Information Systems Sistemas e Tecnologias de Informao Structured Query Language Visual Basic for Applications Visual Basic Editor View Definition Language What You See Is What You Get eXtensible Markup Language

ANEXO II

Funes do VBA

Como j referimos ao longo deste livro, as funes so procedimentos, em Visual Basic for Application, que devolvem um determinado valor. Em seguida apresentada uma lista com as principais funes do Visual Basic for Application.

Retorna o valor absoluto de qualquer expresso numrica. Abs Sintaxe: Abs(expresso numrica) Retorna o cdigo numrico ASCII do primeiro caracter da expresso alfanumrica. Sintaxe: Asc(expresso alfanumrica) Retorna o arco-tangente da expresso numrica. Atn Sintaxe: Atn(expresso numrica) Retorna a mdia de um conjunto de valores numricos. Avg Sintaxe: Avg(valores numricos) Converte uma expresso numrica num tipo de dado monetrio (Currency). Sintaxe: CCur(expresso numrica) Converte uma expresso numrica num tipo de dado de preciso dupla (Double). Sintaxe: CDbl(expresso numrica) Retorna o caracter ASCII correspondente expresso numrica. Sintaxe: CHr(expresso numrica) Converte uma expresso numrica num tipo de dado inteiro (Integer). Sintaxe: CInt(expresso numrica)

Asc

CCur

CDbl

CHr

CInt

CLng

Converte uma expresso numrica num tipo de dado inteiro longo (Long Integer). Sintaxe: CLng(expresso numrica) Converte uma expresso numrica num tipo de dado de preciso simples (Single). Sintaxe: CSng(expresso numrica) Retorna a data corrente do sistema.

CSng

Date

Sintaxe: Date Converte uma data num nmero que a representa.

DateSerial

Sintaxe: DateSerial(ano,ms,dia) Retorna um nmero que representa a data.

DateValue

Sintaxe: DateValue(data) Retorna a parte inteira de um nmero, eliminando a sua parte fraccionria. Sintaxe: Fix(expresso numrica) Converte um valor em nmero inteiro.

Fix

Int

Sintaxe: Int(expresso numrica) Retorna a posio da primeira ocorrncia de caracteres de uma varivel string localizada numa outra.

InStr

Sintaxe: InStr(posio-incio-procura,varivel-aser-procurada,varivel-onde-procura) Converte uma string em letras minsculas.

LCase

Sintaxe: LCase(expresso string) Carrega desenhos para um controlo.

LoadPicture

Sintaxe: LoadPicture(nome do ficheiro) Suprime espaos esquerda de uma varivel string.

LTrim

Sintaxe: LTrim(string) Retorna um nmero entre 0 e 59 que representa o minuto da hora correspondente ao nmero especificado. Sintaxe: Minute(nmero)

Minute

Suprime espaos direita de uma varivel. RTrim Sintaxe: RTrim(string) Retorna a posio no ficheiro especificado. Seek Sintaxe: Seek(nmero do ficheiro) Retorna uma cadeia de espaos. Space Sintaxe: Space(n de espaos em branco) Desloca um nmero de espaos especificados. Spc Sintaxe: Spc(n de espaos) Retorna a raiz quadrada de um nmero. Sqr Sintaxe: Sqr(nmero) Converte um nmero em expresso string. Str Sintaxe: Str(nmero) Retorna a hora corrente no formato hh:mm:ss. Time Sintaxe: Time Retorna um nmero que representa a hora corrente. TimeSerial Sintaxe: TimeSerial(hora,minutos,segundos) Retorna um nmero que representa a hora fornecida pela funo Time. Sintaxe: TimeValue(Time) Converte uma string em letras maisculas. UCase Sintaxe: UCase(expresso string) Retorna o valor numrico de uma string. Val Sintaxe: Val(varivel)

TimeValue

BIBLIOGRAFIA

[Almeida, 1997] Almeida, Jos M.F., Para uma histria da Informtica, Sistemas de Informao, 6, 1997 (27-46) [Amaral e Santos,1997] Amaral, Lus e Santos, Maribel, Modelos de estdios de crescimento, Sistemas de Informao, 7, 1997 (41-59) [Boctor, 1999] Boctor, David, Microsoft Office 2000 Visual Basic for Applications Fundamentals, Microsoft Press, 1999 [Campos, Vilar e Lcio, 1999] Campos, Lus e Vilar, Sandro e Lcio, Levi, Programao em Visual Basic 6, FCA, 1999 [Carvalho e Amaral, 1993] Carvalho, Joo lvaro e Amaral, Lus, Matriz de actividades: um enquadramento conceptual para as actividades de Planeamento e Desenvolvimento de Sistemas de Informao, Sistemas de Informao, 1, 1993 (37-48) [Chen, 1983] Chen, Peter P., English Sentence Structure and Entity-Relationship Diagrams, Elsevier Science Publishing, 1983 (128-149) [Chen, 1976] Chen, Peter P., The Entity-Relationship Model Toward a Unified View of Data, ACM Transactions on Database Systems, Vol. 1, N1, March 1976 (9-36) [Chen et al, 1999] Chen, Peter P., Thalheim, B. and Wong, L. Y., Future Directions of Conceptual Modelling, 1999 Obtido em: http://link.springer.de/link/service/series/0558/bibs/1565/15650287.htm [Chiavenato, 1992] Chiavenato, Idalberto, Administrao: Teoria, processo e prtica, Makron Books, 1992 2 Edio [Codd] Codd, E. F. et all, Providing OLAP to User-Analysts: an IT mandate, Distributed by Arbor Software, 800-858-1666 and Comshare, 800-922-7979 Obtido em: http://www.hyperion.com/products/whitepapers/ [Codd, 1970] Codd, E. F., A relational Model of Data for Large Shared Data Bank, Communications of the ACM, Volume 13 Number 6, June 1970, (377-387) [Codd, 1972] Codd, E. F., Relational Completeness of Data Base Sublanguages. Data Base Systems, Courant Computer Science Symposia, series 6. Englewood Cliffs N. J. Prentice Hall, 1972 [Codd, 1982] Codd, E. F., Relational Database: A Practical Foundation for Productivity, Communications of the ACM, Volume 25 Number 2, February 1982 (109-117)

[Connoly e Beg, 1982] Connoly, Thomas e Begg, Carolyn, Database Systems A practical approach to Design, nd Implementation and Management, Addison-Wesley, 1998 2 Edition [Damas, 1999] Damas, Lus, SQL, FCA, 1999 [Date, 2004] Date, C. J., An Introduction to Database Systems, Pearson International Editions, 2004 th 8 Edition [Dobson, 1999] Dobson, Rick, Programming Microsoft Access 2000, Microsoft Press, 1999 [Elmasri e Navathe, 2004] Elmasri, Ramez and Navathe, Shamkant B., Fundamentals of Database Systems, Pearson International Editions, 2004 Fourth Edition [Fayyad et all, 1996] Fayyad, Usama M. Et all, Advances in Knowledge Discovery and Data Mining, AAAAI Press/The MIT Press, 1996 [Hall, 1982] Hall, Richard H., Organizaes: Estrutura e processos, Prentice Hall do Brasil, 1982 3 Edio [Hay, 1999] Hay, David C., A Comparison of Data Modelling Techniques, Essential Strategies, Inc, Outubro 1999 Obtido em: http://www.essentialstrategies.com/publications/modeling/compare.htm [Inmon e Chuck, 1984] Inmon, Bill and Chuck,Kelley, The 12 rules of Data Warehouse for a cliente/server world, Data Management Review, vol. 4, May 1994, (6-16) [Larose, 2005] Larose, D. T. Discovering Knowledge in Data An Introduction to Data Mining. Wiley Interscience, 2005 [Magalhes, 1993] Magalhes, Rodrigo, A evoluo dos Sistemas de Informao na empresa: dos MIS aos desafios da mudana estratgica, Sistemas de Informao, 1, 1993 (9-31) [Ramkrishnam e Gehrke, 2000] Ramakrishnam, Raghu e Gehrke, Johannes, Database Management Systems, McGraw nd Hill International Editions, Computer Science Series, 2000 2 Edition [Rob e Coronel, 2002] Rob, Peter e Coronel, Carlos, Database Systems: Design, Implementation, and Management, International Thomson Publishing Company, 2002 Fifth Edition [Santos et al, 2005] Santos, Manuel; Azevedo, Carla. Data Mining Descoberta de Conhecimento em Bases de Dados. FCA. 2005.

[Senn] Senn, James A., Analysis and design of Information Systems, McGraw Hill International Editions Computer Science Series [Serrano] Serrano, Antnio, Sistemas de Informao numa perspectiva organizacional da Informao ao conheciemnto, 1 Encuentro Ibero-Americano de Finanzas y Sistemas de Information [Simpson e Olson, 1997] Simpson, Alan e Olson, Elizabeth, Access 97 for Windows 95/NT, SYBEX, 1997-Fourth Edition [Sousa, 1999] Sousa, Srgio, Domine a 110% Access 2000, FCA, 1999 [Varajo, 1998] Varajo, Joo, A arquitectura da gesto de Sistemas de Informao, FCA, 1998 [Viescas, 1997] Viescas, John L., Running Microsoft Access 97, McGraw-Hill, 1997 [Vilar, 2001] Vilar, Jorge, Programao em Access 2000 com VBA, FCA, 2001 [Whitten e Bentley, 1998] Whitten, Jefrey L. e Bentley, Lonnie D., Systems analysis and Design method, McGraw th Hill, 1998 4 Edition