documento de apoio n.º 1 -...

100
SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de Dados Aluno: ______________________ N.º: _____ Turma: _____ Pág. II / 1 DOCUMENTO DE APOIO N.º 1 Tema: Sistemas de Gestão de Bases de Dados Evolução Histórica Informatização começou pela automatização de tarefas manuais. A tecnologia de gestão de ficheiros, inicialmente utilizada, não responde às necessidades. Necessidade de uma tecnologia que reduza tempo de desenvolvimento e facilite a manutenção. A tecnologia de base de dados vai tentar responder a dois objectivos: Encontrar uma forma mais natural de pensar os sistemas de informação; Acelerar o processo de desenvolvimento de novos sistemas e facilitar a sua manutenção. Dados – elementos concretos ou valores (numéricos, alfanuméricos, nominais, datas, etc.) mantidos pelo sistema que, isoladamente ou desorganizadamente, não têm um significado específico. São valores utilizados como matéria-prima da informação, representada por símbolos (números, letras, etc.) Informação – dados tratados e organizados segundo critérios específicos, que permitem ao utilizador ter ou atribuir um significado acerca dos mesmos Informação = Dados + Modelo* de Dados *entendido como uma visão ou abstracção de uma entidade, com o objectivo de a compreender antes de a construir; pode ser uma simplificação (de parte) do mundo real

Upload: phamphuc

Post on 09-Dec-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 1

DOCUMENTO DE APOIO N.º 1

Tema:

Sistemas de Gestão de Bases de Dados

Evolução Histórica

Informatização começou pela automatização de tarefas manuais.

A tecnologia de gestão de ficheiros, inicialmente utilizada, não responde às necessidades.

Necessidade de uma tecnologia que reduza tempo de desenvolvimento e facilite a manutenção.

A tecnologia de base de dados vai tentar responder a dois objectivos:

•Encontrar uma forma mais natural de pensar os sistemas de informação;

•Acelerar o processo de desenvolvimento de novos sistemas e facilitar a sua manutenção.

Dados – elementos concretos ou valores (numéricos, alfanuméricos, nominais, datas, etc.) mantidos pelo sistema que, isoladamente ou desorganizadamente, não têm um significado específico. São valores utilizados como matéria-prima da informação, representada por símbolos (números, letras, etc.)

Informação – dados tratados e organizados segundo critérios específicos, que permitem ao utilizador ter ou atribuir um significado acerca dos mesmos

Informação = Dados + Modelo* de Dados

*entendido como uma visão ou abstracção de uma entidade, com o objectivo de a compreender antes de a construir; pode ser uma simplificação (de parte) do mundo real

Page 2: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 2

A evolução das Bases de Dados está ligada à evolução dos próprios sistemas de informação e geralmente do ser enquadrada em três gerações ou vagas:

Sistemas de Informação da 1ª Vaga

Na 1ª vaga, os sistemas de informação são mais conhecidos por aplicações. As "aplicações" entendidas como conjuntos de programas com ficheiros privativos, são completamente independentes umas das outras.

Os programas necessitam de conhecer a estrutura física dos dados armazenados sobre a forma de registos.

Os mesmos dados, ao serem necessários em diferentes aplicações, podem estar repetidos em diversos ficheiros.

Problemas:

• Pouca flexibilidade

• Desenvolvimento caro de aplicações

• Redundância e incoerência da informação

Page 3: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 3

Sistemas de Informação da 2ª Vaga

Vários sistemas de informação passam a partilhar os dados que lhe são comuns. Os ficheiros privativos de cada sistema armazenam apenas os dados necessários só a esse sistema. Os dados comuns estão armazenados numa “base de dados”.

Vantagens da partilha:

• lrredundância (ou redundância mínima);

• Economia de meios (menos memória, menos trabalho de recolha);

• Coerência.

Refira-se que por vezes a redundância é necessária para efeitos de, por exemplo, recuperação da informação em caso de falha do sistema e para melhoria dos tempos de acesso.

Page 4: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 4

Desvantagens da partilha:

• Interdependência entre os programas de aplicação: Como evitar ter de alterar todos os programas quando a estrutura de um dos ficheiros é alterada?

• Conflitos quanto à optimização das estruturas físicas: Que programas devem ser privilegiados no acesso aos registos partilhados?

A Tecnologia das bases de dados surgiu precisamente para dar resposta a estes problemas!

Sistemas de Informação da 3ª Vaga

Comunicação entre sistemas heterogéneos (especificados e implementados de modos muito diferentes) por troca de mensagens – em oposição à ligação por partilha de memória correspondente à partilha dos registos na Base de dados.

Em vez de uma Base de Dados (BD) única têm-se K BDs, continuando a existir sistemas a partilhar uma mesma BD. Sistemas em ambientes diferentes e com sistemas operativos diferentes comunicam entre si trocando mensagens.

Page 5: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 5

Base de Dados

• Conjunto organizado de dados (segundo um modelo de dados) existentes num SI

• Disponíveis a todos os utilizadores ou processamentos da organização que deles tenham necessidade

• São partilhados por diversos sistemas com o objectivo de evitar a redundância na recolha e manutenção da informação

Os dados são organizados num único conjunto.

Todos os acessos físicos aos dados passam a ser feitos pelo SGBD.

Grande vantagem dos SGBD’s é a separação dos programas e dos dados

Na tecnologia de gestão de ficheiros o desenvolvimento centrava-se na aplicação, ou seja cada aplicação ditava os dados necessários ao seu processamento e, em função disso, definiam-se os ficheiros correspondentes.

No ambiente de base de dados várias aplicações partilham o mesmo conjunto de dados.

Page 6: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 6

SGBDs

Sistemas de Gestão de Bases de Dados ou Data Base Management System (DBMS)

Software utilizado para gerir Bases de Dados

Empresas fornecedoras: Oracle, Informix, IBM, Sybase, Microsoft

O SGBD é o mecanismo que permite manter um conjunto lógico e organizado de dados, completamente autónomo das aplicações que os processam.

O SGBD permite a partilha concorrente dos dados, incorpora mecanismos que asseguram a validade, a segurança e a recuperação dos mesmos, em caso de falhas ou acidentes.

Por definição, o SGBD é um conjunto de software, destinado a gerir todo o armazenamento e manipulação dos dados do sistema, fazendo a interface entre o nível aplicacional e a base de dados propriamente dita.

O SGBD proporciona ao nível aplicacional um grau de abstracção elevado, que actualmente é já muito próximo do mundo real. Permite a partilha dos dados memorizados (em registos) por diversos programas de aplicação e/ou utilizadores, reduzindo a interdependência entre programas e permitindo alterar as estruturas internas de armazenamento dos dados sem modificar os programas.

O SGBD garante a correspondência entre as representações lógica e física da Base de Dados e entre a representação lógica da Base de Dados e as suas várias perspectivas.

Page 7: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 7

Descrição dos Dados (Níveis de Abstracção)

Entre o computador que só entende "zeros" e "uns" e o utilizador final que fala de empregados e de departamentos, existem naturalmente diversos níveis de descrição dos dados: são os chamados níveis de abstracção. Foram já vistos os três níveis de abstracção através dos quais pode ser observada nos SGBDs actuais uma mesma BD.

BD Física (Nível Físico)

Trata-se da única BD que tem existência real no computador. A BD física é descrita através das estruturas internas de armazenamento e dos métodos de acesso usados no armazenamento dos dados em memória secundária (discos, bandas magnéticas...). A BD física pode, por sua vez, ser observada em diversos níveis de abstracção, variando desde os registos e ficheiros de uma linguagem de programação, passando pelo nível lógico dos registos tal como são suportados pelo Sistema Operativo, até ao nível dos "bits" e dos endereços físicos dos dispositivos de armazenamento.

BD Lógica (Nível Lógico)

No nível lógico a BD é representada por conceitos abstractos que permitem descrever a realidade de um modo mais aproximado à forma como esta é entendida (na empresa), sem serem considerados quaisquer aspectos relativos à organização desses dados no computador.

Perspectivas (Nível Externo)

São fragmentos da BD lógica correspondentes às perspectivas que cada utilizador ou programa tem da realidade.

Os programas precisam de conhecer apenas a estrutura lógica da Base de Dados para aceder aos dados.

Sem um SGBD os programas acedem directamente aos campos dos registos dos ficheiros onde estão armazenados os dados no computador (situação anterior aos SGBDs.

Foi visto que os SGBDs permitem:

• Partilha dos dados;

• Independência lógica;

• Independência física;

• Redundância mínima, economia de meios e coerência dos dados.

Mas os SGBDs devem ainda garantir outros requisitos.

Page 8: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 8

Requisitos Fundamentais de um SGBD

� Segurança

� Integridade

� Controlo da concorrência

� Recuperação de falhas

• Segurança - proteger os dados de acessos não autorizados e garantir que os utilizadores autorizados acedam ao sistema, de acordo com os seus privilégios.

– Segurança física (mais comum no passado)

– Segurança lógica (usernames, passwords, etc.)

Para além dos mecanismos de controlo de acessos é preciso definir a que é que têm acesso e o que é que podem fazer – perfil do utilizador.

• Integridade - uma base de dados está num estado de integridade se contém apenas dados válidos, isto é, que não contradizem a realidade que estão a representar, antes a reflectem correctamente.

• A manutenção da integridade pressupõe proteger a BD de acessos inválidos por parte dos utilizadores autorizados, impedindo-os de executar operações que ponham em risco a correcção dos dados.

• Apenas as operações de actualização da BD (inserção, alteração ou remoção de dados) podem pôr em causa a integridade.

• As operações de actualização são governadas por um conjunto de regras – restrições de integridade, que definem o que é válido e o que não é válido. Exemplos:

– Um funcionário não pode pertencer a mais do que um departamento.

– O preço de venda de um produto deverá ser superior ao seu custo.

– A referência de cada produto deve ser única.

Page 9: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 9

• Controlo da concorrência - relaciona-se com a coordenação da partilha dos dados por várias aplicações e utilizadores.

– A unidade base do controlo de concorrência é a transacção.

– Transacção – conjunto de acções originadas por um utilizador ou aplicação que, como um todo, acedem a uma BD para consultar ou modificar o seu conteúdo.

– Uma transacção só pode ser executada na totalidade – ou são executadas todas as acções ou nenhuma. Exemplo: transferência de valores entre duas contas bancárias.

• Recuperação de falhas - actividade que tem por objectivo o restaurar da base de dados, após a ocorrência de uma qualquer falha para um estado de integridade garantido.

– Falhas possíveis:

• Perda de toda a BD

• Falha de uma transacção (rollback)

– Os mecanismos de recuperação de sistemas de BD baseiam-se na utilização de redundância:

• Backups – são cópias de segurança executadas periodicamente abrangendo toda a BD.

• Transaction logging – ficheiro contendo os registos das operações efectuadas à BD por todas as transacções posteriores ao último backup (rollforward).

• Backup + transaction logging : permitem a reconstrução da BD praticamente até ao momento da falha.

Page 10: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 10

Linguagens de Bases de Dados

• A interacção com o SGBD faz-se à custa de linguagens específicas, que não são linguagens de programação. A linguagem mais comum actualmente é o SQL que se divide em LDD e LMD.

• Linguagem de Definição de Dados (LDD)

– Não é uma linguagem no sentido vulgar dado às linguagens de programação, pois não possui qualquer instrução especifica de processamento.

– É antes uma notação utilizada para descrever a estrutura dos dados a armazenar.

• Linguagem de Manipulação de Dados (LMD)

– Linguagem disponibilizada para a manipulação dos dados propriamente ditos.

– As operações possíveis são as vulgares: inserção, remoção, alteração e consulta de dados.

– Em alguns sistema as instruções LMD podem ser executadas, interactivamente, pelos utilizadores finais a partir do terminal.

Modelos de Dados

• É necessário proceder a uma transformação do modelo lógico num outro modelo directamente suportado directamente pelo SGBD particular em que vai ser implementado.

• Os modelos de bases de dados podem ser classificados em três gerações distintas, correspondendo cada uma delas à utilização de diferentes tecnologias.

• 1ª Geração – primeiros passos da tecnologia de bases de dados com o desenvolvimento dos modelos hierárquico e rede.

• 2ª Geração – caracterizada pelo desenvolvimento e divulgação do modelo relacional.

• 3ª Geração – corresponde ao estado actual de desenvolvimento da tecnologia de bases de dados. Caracteriza-se pelo desenvolvimento, em paralelo, de alguns modelos ainda não estabilizados.

Page 11: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 11

Modelos de dados: são os modelos lógicos em que se baseiam os SGBDs comerciais. Os três modelos mais vulgarizados são:

• Modelo Relacional - os dados são vistos como dispostos em tabelas, em que as colunas se chamam atributos ou campos e as linhas tuplos ou registos.

• Modelo Reticulado – os dados são estruturados em grafos (redes).

• Modelo Hierárquico – os dados são organizados em árvores.

Evolução dos SGBDs

• Linguagem máquina • Sistemas de input/ output • Métodos de acesso • Sistemas de gestão de ficheiros • Sistemas de gestão de bases de dados

| | | | | | | | |- 1974 | |- 1975 | |- 1976 | |- 1977 | |- 1978 | | |- 1980 | | | | | | | | | |

• TOTAL (reticulado) • IMS (hierárquico) • INGRES (relacional) • Sistema R (relacional) • IDMS (reticulado) • ORACLE (relacional) SGBDs relacionais: • DB2 • Rdb • Informix • Unify • DBase • Sql Server • SyBase • Access …

Page 12: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 12

A Necessidade de Novos Modelos

Os SGBD’s convencionais:

• Necessidade de manipular grandes volumes de dados;

• Dados simples, homogéneos e com formatos fixos;

• Modelos de dados relativamente simples e estáveis;

• Transacções curtas não ultrapassando, tipicamente, alguns segundos;

• O conteúdo da base de dados, em cada momento, apenas necessita de reflectir o estado actual da realidade modelada.

As novas áreas de aplicação solicitam SGBD’s:

• A necessidade de suportar tipos de dados complexos;

• A necessidade de suportar modelos de dados semanticamente mais ricos;

• A necessidade de representar formas mais elaboradas de conhecimento;

• A necessidade de transacções com duração relativamente grande;

• A necessidade de manter a evolução dos objectos modelados.

Page 13: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 13

DOCUMENTO DE APOIO N.º 2

Tema:

Modelo Relacional

A utilização das técnicas de modelação conceptual conduz a mais um nível de abstracção na descrição da BD: o nível conceptual.

Entre cada um dos esquemas, que representam as BDs nos diferentes níveis de abstracção, é definido um conjunto de regras de transposição, que fazem corresponder às estruturas de um esquema as estruturas de outro esquema.

Uma vez que os SGBDs comerciais não reconhecem o nível conceptual, a correspondência entre o nível conceptual e o nível lógico não é assegurado por estes, sendo a transposição entre estas estruturas geralmente realizada manualmente.

Page 14: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 14

Modelo Relacional – Principais Conceitos

• Proposto em 1970 por Edgar F. Codd da IBM resulta, em muito, do desenvolvimento da teoria dos conjuntos

• É o modelo mais utilizado de entre os modelos lógicos “tradicionais” (hierárquico, rede e relacional)

• É baseado em três conceitos fundamentais derivados da teoria dos conjuntos: relação, domínio e atributo

RELAÇÃO OU TABELA

– é a estrutura fundamental do modelo relacional

– bidimencional, com um determinado esquema

– cada coluna chama-se atributo ou campo e cada linha chama-se tuplo ou registo

• Esquema de relação

– o nome da relação seguido da lista dos seus atributos

– constituída por um ou mais atributos

– Cada instância do esquema de relação designa-se por tuplo (elemento, linha ou registo)

• Esquema relacional

– conjunto de esquemas de relação de uma base de dados

nº nome morada c_postal

ALUNO (nº, nome, morada, c_postal)

Page 15: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 15

DOMÍNIO

- é um conjunto de valores

Exemplo: Domínio AEROPORTOS = {Lisboa, Porto, Faro, Funchal}

- os atributos de uma relação têm como origem determinado domínio, podendo vários atributos originar do mesmo domínio

- mesmo domínio pode aparecer várias vezes numa relação ou em diferentes relações

o atributo “nº voo” pertence ao domínio dos Números Inteiros

os atributos “origem” e “destino” pertencem ao domínio Aeroportos

os atributos “partida” e “chegada” pertencem ao domínio das Horas

10:30

nº voo origem destino chegada partida

111

112

Lisboa

Porto Funchal

Faro 10:00

11:00 13:00

VOO (nº voo, origem, destino, partida, chegada)

Page 16: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 16

ATRIBUTO

- a cada coluna de uma relação é associado um nome para a distinguir das outras colunas e para tornar irrelevante a sua ordem na relação

- atributo é uma coluna da relação a que se atribui um nome

- traduzem o tipo de dados a armazenar

- a cada atributo corresponde um domínio ou uma gama de valores que este pode ter

- nome do atributo deve ser representativo, diferindo muitas vezes do nome do domínio

• Grau da relação

- número de atributos da relação

• Cardinalidade da relação

- número de tuplos (ou registos) da relação

• Características:

- no cruzamento de uma linha (tuplo) com uma coluna (atributo) só é possível encontrar um valor

- identificadores únicos para atributos de uma relação

- todos os valores de um atributo provêm do mesmo domínio

- tuplos de uma relação devem ser distintos

- a ordem dos tuplos numa relação é irrelevante

- a ordem de atributos num esquema de relação é irrelevante

- valor de alguns atributos poderá ser desconhecido (null)

nº nome morada c_postal

Page 17: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 17

CHAVES

• Chave primária (ou principal)

- uma relação é um conjunto de tuplos, como um conjunto não tem elementos duplicados, numa relação o mesmo tuplo não pode existir duas vezes

- Chave é o atributo ou conjunto de atributos cujos valores identificam univocamente um tuplo numa relação

• Superchave

- conjunto de atributos que contenha uma chave

• Chave candidata

- no caso de existirem várias chaves possíveis estas dizem-se chaves candidatas, então de entre estas escolhe-se uma que passa a ser designada como chave primária e as outras designam-se por chaves alternativas

• Chave estrangeira (ou importada)

- conjunto de um ou mais atributos que é chave primária em outra relação

� Em alguns casos um atributo pode ser simultaneamente chave primária e chave estrangeira.

� Os atributos da chave primária são representados em sublinhado e a chave estrangeira é representada em itálico. Chaves primárias e estrangeiras simultaneamente são representadas em itálico e sublinhado

� Deve sempre escolher-se um atributo ou conjunto de atributos para chave primária, quando nenhum dos atributos sirva de chave acrescenta-se como chave um atributo ID (Identificador De) que será um número inteiro e sequencial

ALUNO (nº, nome, morada, c_postal, nº_bi)

VOO (nº voo, origem, destino, partida, chegada)

TURMA (ano, letra, curso) Ex.: 1º A IG

PESSOA (nº_bi, nº_contribuinte, nº_passaporte, nome, morada, c_postal)

Page 18: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 18

REGRAS DE INTEGRIDADE

• Integridade do Domínio

- os valores de um atributo chave têm sempre como origem o mesmo domínio

- restrições podem ser garantidas pelo SGBD - ex: um atributo só poder assumir como valores possíveis números

• Integridade da Entidade – Unicidade da Chave

- em todas as relações existe uma chave primária;

- nenhum atributo de uma chave primária pode ter o valor nulo

• Integridade Referencial

- a chave estrangeira referencia a relação onde é chave primária

- valor de uma chave estrangeira pode ser nulo, ou

- conter um valor que é chave primária na relação de onde foi importada

Exemplo:

“código passageiro” é chave primária em PASSAGEIRO e chave estrangeira em RESERVA

“data” e “nº voo” são chave primária em PARTIDA e chave estrangeira em RESERVA

PASSAGEIRO (código passageiro, nome, morada, telefone)

RESERVA (código reserva, código passageiro, data, nº voo, confirmado)

PARTIDA (data, nº voo, hora)

Page 19: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 19

DOCUMENTO DE APOIO N.º 3

Tema:

Transposição do Diagrama de Classes para o Modelo Relacional

REGRAS DE TRANSPOSIÇÃO DO MODELO DE CLASSES PARA O MODELO RELACIONAL

- Todas as tabelas têm de ter uma chave primária (caso não existam atributos que satisfaçam esta condição deve-se criar um identificador único designado por ID (Identificador De);

- As tabelas resultam exclusivamente das classes do modelo, e das associações de “muitos para muitos”.

Associações de “um para um”

� A relação que tem como origem a classe que tem menor número de ocorrências potenciais, herda como chave estrangeira a chave primária da relação que tem como origem a outra classe. No caso de não ser possível identificar a classe com menor número de ocorrências, escolhe-se uma das relações para receber como chave estrangeira a chave primária da outra relação.

ATLETA (Cód_atleta, Nome, Data_nasc)

CLUBE (Sigla, Designação, Cód_atleta)

ATLETA CLUBE

1 1

Simboliza

Cód_atleta Nome Data_nasc

Sigla Designação

Page 20: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 20

Associações de “um para muitos”

� A tabela cujos registos são endereçados diversas vezes é que herda a referência cuja correspondência é unitária, ou seja: a relação que tem como origem a classe do lado “muitos” herda como chave estrangeira a chave primária da relação que tem como origem a classe do lado “um” (se existisse alguma classe associativa seria igualmente o esquema de relação do lado “muitos” que herdaria os atributos dessa associação).

CIENTISTA (Cód_cientista, Nome)

IDEIA (Id_ideia, Data, Hora, Conteúdo, Cód_cientista)

CIENTISTA IDEIA

1 *

Gera

Cód_cientista Nome

Data Hora Conteúdo

Page 21: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 21

Associações de “muitos para muitos”

� A associação dá origem a uma relação com o mesmo nome da associação, e em que a sua chave primária é composta pelas chaves primárias das tabelas associadas.

PARTICIPANTE (Código, Nome)

REUNIÃO (IdReunião, Data, Hora, Assunto)

PARTICIPA (Código, IdReunião)

PARTICIPANTE REUNIÃO

1..* 1..*

Participa

Código Nome

Data Hora Assunto

Page 22: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 22

Associações de “muitos para muitos” com classe associativa

� O mesmo que na situação anterior, mas os atributos da classe associativa são incluídos na relação que teve como origem a associação de muitos para muitos.

ADMINISTRATIVO (IdAdministrativo, Nome, Posição)

ACTA (Código, Data, Tipo)

ACEDE (Código, IdAdministrativo, Data)

ADMINISTRATIVO ACTA

1..* 1..* Acede

Nome Posição

Código Data Tipo

Acede

Data

Page 23: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 23

Generalizações – sub-classes com identidade própria

� No caso das sub-classes terem identidade própria, as relações respectivas herdam a chave primária da relação originária da super-classe como chave estrangeira, criando-se um atributo discriminante (tipo) na relação originária da super-classe.

INTERVENÇÃO (Código, Data, tipo)

IDEIA (Cód_Ideia, Conteúdo, Código)

VOTO (Cód_Voto, Valor, Código)

IDEIA

Tipo

Cód_Ideia Conteúdo

INTERVENÇÃO

Código Data

VOTO

Cód_Voto Valor

Page 24: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 24

Generalizações – sub-classes sem identidade própria

� No caso das sub-classes não terem identidade própria, as relações respectivas herdam a chave primária da relação originária da super-classe como sua chave primária, criando-se um atributo discriminante (tipo) na relação originária da super-classe.

PARTICIPANTE (BI, Nome, tipo)

PRESIDENTE (BI,)

VOGAL (BI, Pelouro)

SECRETÁRIO (BI, Cargo)

PRESIDENTE VOGAL

Tipo

Pelouro

PARTICIPANTE

SECRETÁRIO

BI Nome

Cargo

Page 25: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 25

Agregações

� Seguem-se aqui as regras da transposição das associações com a mesma multiplicidade (por exemplo, «de 1 para muitos»)

PARTIDO (Sigla, Símbolo, Programa)

MILITANTE (BI, Nome, Morada, Sigla)

PARTIDO MILITANTE

* Sigla Símbolo Programa

BI Nome Morada

Page 26: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 26

Composições

� A chave primária da(s) relações originárias da(s) classe(s) componente(s) é acrescentada da chave primária da relação originária da classe que compõe.

AGENDA (Cód_Agenda, Assunto, Data)

ITEM (Cód_Agenda, Núm_Item, Descrição)

AGENDA ITEM

1..* Cód_Agenda

Assunto

Data

Núm_Item

Descrição

Page 27: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 27

Exemplo

INTERVENÇÃO (Código, Data, Tipo)

IDEIA (Cód_Ideia, Conteúdo, TipoIdeia, Código)

VOTO (Cód_Voto, Valor, Cód_Ideia, Código)

GRUPOIDEIAS (Cód_Ideia)

IDEIA

Tipo

Cód_Ideia Conteúdo

INTERVENÇÃO

Código Data

GRUPO-IDEIAS

0..* 1

Avaliada

Agrupada

0..*

TipoIdeia

VOTO

Cód_Voto Valor

Page 28: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 28

Optimização do esquema relacional

• A aplicação directa de algumas regras de transposição gera um esquema relacional pouco eficiente. Neste caso, é possível efectuar algumas optimizações ao modelo.

• Optimização de associações de “um para um”

A transposição deste tipo de associação, pode normalmente ser optimizada através da remoção de uma das tabelas e inclusão dos seus atributos na tabela remanescente.

• Optimização de generalizações

Se as subclasses possuem identidade própria independente da super classe, pode normalmente ser optimizada através da remoção da tabela que representa a super classes e inclusão dos seus atributos nas tabelas que representam as subclasses.

Se as subclasses só possuem identidade própria quando associadas à super classe, pode normalmente ser optimizada através da remoção das tabelas que representam as subclasses e inclusão dos seus atributos na tabela que representa a super classe.

• Optimização da chave primária

A chave primária de uma tabela pode ser composta por vários atributos. Quando os atributos são em excesso (mais de três), pode provocar ineficiências no modelo relacional. Neste caso, a optimização é efectuada através da alteração da chave primária para apenas um atributo (criado para o efeito, ou seja um ID), passando os atributos da chave inicial a atributos normais.

Page 29: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 29

Exercício Biblioteca (solução possível)

Restrições:

Na Classe PUBLICAÇÃO

TipoP = {artigo, livro, revista}

Estado = {em conferência, reserva, disponível, consultada, requisitada}

Na Classe AUTOR

TipoA = {autor português}

PUBLICAÇÃO

Número Nome Ano Editora TipoP Estado Cota

1..* 1..*

Escrito por

REQUISITANTE

Nome NúmBI Morada Telefone Apelido

*

*

Requisita

NúmeroA Nome Apelido

AUTOR

AUTOR-PORTUGUÊS

CódigoSPA

PALAVRA-CHAVE

Palavra Assunto

Selecciona

1..* *

NúmeroR Data-Requisição Data-Entrega

REQUISIÇÃO

Page 30: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 30

Esquema Relacional:

PALAVRACHAVE (IdPalavra, Palavra, Assunto)

PUBLICAÇÃO (NúmeroP, Nome, Ano, Editora, Tipo, Estado, Cota)

SELECCIONA (IdPalavra, NúmeroP)

REQUISITANTE (NúmeroBI, Nome, Morada, Telefone, Apelido)

REQUISIÇÃO (NúmeroBI, NúmeroP, NúmeroR, Data-requisição, Data-entrega)

AUTOR (NúmeroA, Nome, Apelido, TipoA)

AUTORPORTUGUÊS (NúmeroA, CódigoSPA)

ESCRITO (NúmeroA, NúmeroP)

Optimização das Classes AUTOR e AUTORPORTUGUÊS (caso CódigoSPA não seja chave):

AUTOR (NúmeroA, Nome, Apelido, TipoA, CódigoSPA)

Page 31: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 31

Exercício Formação Profissional (Solução possível)

Restrições

Na Classe PARTICIPANTE

TipoP = {Formando, Funcionário}

Na Classe FUNCIONÁRIO

TipoF = {Formador, Coordenador, Administrativo}

CURSO

MÓDULO

Nome DataIn. CódCurso

1..*

Sigla Designação NumTotalHoras

Tarefa

Número

PARTICIPANTE

Nome BI Morada TipoP

AULA

HoraInic Data NumSeq

FUNCIONÁRIO

Tarefa

EMPRESA

NPC Firma

empregado em

* *

Núm_func DataAdmissão TipoF

FORMADOR

GrauAcad

COORDENADOR

GrauAcad

ADMINISTRATIVO

FORMANDO

Núm_seq Estado

1 leccionadas

frequenta

* 1..*

está inscrito

1

*

* *

participa

coordena 1

1..*

1..*

1..*

Page 32: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 32

Esquema Relacional:

CURSO (CódCurso, Nome, DataIn, Núm_func )

MÓDULO (Sigla, designação, numTotalHoras)

PROGRAMA (CódCurso, Sigla)

AULA (NumSeq, Data, HoraIníc, Sigla)

PARTICIPANTE (BI, Nome, Morada, TipoP)

EMPRESA (NPC, firma)

PARTICIPA (CódCurso, BI)

EMPREGADO_EM (BI, NPC)

FORMANDO (Núm_seq, Estado, BI, CódCurso)

FREQUENTA (Núm_seq, Sigla)

FUNCIONÁRIO (Núm_func, DataAdmissão, TipoF, BI)

FORMADOR (Núm_func, GrauAcad)

COORDENADOR (Núm_func, GrauAcad)

ADMINISTRATIVO (Núm_func)

Optimização das Classes FUNCIONÁRIO, FORMADOR, COORDENADOR e ADMINISTRAIVO:

FUNCIONÁRIO (Núm_func, DataAdmissão, TipoF, BI, GrauAcad)

Page 33: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 33

FICHA DE TRABALHO N.º 1

Tema:

Transposição do Diagrama de Classes para o Modelo Relacional

Uma empresa possui fornecedores que fornecem várias peças, podendo cada peça ser fornecida por vários fornecedores. Aos fornecedores é atribuído um código que os identifica univocamente. Idêntico procedimento é usado para as peças.

Os fornecedores são ainda caracterizados por nome, morada e telefone. As peças são caracterizadas por designação e cor. As cores possíveis são preto, branco, cinzento e vermelho. Os fornecimentos são feitos a um dado preço e numa dada data.

Cada fornecedor satisfaz várias encomendas de peças. As encomendas são numeradas de um em diante e cada encomenda possui um número variável de posições (linhas da encomenda), cada uma das quais diz respeito a uma peça a encomendar. Cada peça só pode estar numa posição de cada encomenda. As posições numeram-se de um em diante, dentro de cada encomenda.

A encomenda tem uma data e dirige-se a um só fornecedor. As posições incluem o número da posição, o código da peça, o preço unitário e a quantidade encomendada.

Page 34: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 34

A partir do texto anterior pode ser obtido o seguinte diagrama de classes:

-código

-nome

-morada

-telefone

FORNECEDOR

-número encomenda

-data

ENCOMENDA

-código peça

-designação

-cor

PEÇA

-número posição

-quantidade

-preço unitário

POSIÇÃO

fornece

Na Classe PEÇA

cor = {preto | branco | cinzento | vermelho}

1

*

satisfaz

1 1..*

1

0..1

descrita

-preço

-data

FORNECE

1..* 1..*

Tarefa a realizar:

Apresente o esquema relacional deste diagrama utilizando as regras de transposição para o modelo relacional.

Page 35: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 35

FICHA DE TRABALHO N.º 2

Tema:

Transposição do Diagrama de Classes para o Modelo Relacional

Uma dada organização publica regularmente listas de resultados de concursos. Cada lista é numerada com um número natural atribuído de forma crescente e autónoma. Cada lista é composta por um número variável de elementos, sendo estes caracterizados por um número de ordem dentro da lista. Cada elemento da lista referencia uma pessoa, sendo esta identificada univocamente pelo respectivo número de bilhete de identidade, possuindo ainda um dado nome e morada.

Cada concurso é realizado numa dada data e identificado por um número, nele podem participar várias pessoas, originando uma ou mais listas de resultados.

Page 36: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 36

A partir do texto anterior pode ser obtido o seguinte diagrama de classes:

-nº concurso

-data

CONCURSO

-nº bi

-nome

-morada

PESSOA

-nº lista

LISTA

-nº ordem

ELEMENTO

1 1..*

origina

*

1..*

participado

1 *

referenciada

1

*

Tarefa a realizar:

Apresente o esquema relacional deste diagrama utilizando as regras de transposição para o modelo relacional.

Page 37: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 37

FICHA DE TRABALHO N.º 3

Tema:

Transposição do Diagrama de Classes para o Modelo Relacional

Deseja-se guardar informação sobre pessoas com os respectivos nomes, números de telefone pessoais (não profissionais), mnemónica, data de nascimento, morada e código postal.

As pessoas trabalham ou não em organizações as quais podem conter um ou mais locais de trabalho (correspondentes a diversos edifícios e/ou locais diversos no mesmo edifício).

Cada pessoa pode trabalhar em mais do que um desses locais de trabalho. Para cada organização pretende-se guardar a sua designação, as moradas, um número de telefone por morada, telefax e mnemónica (da organização e da morada).

Nas organizações as pessoas podem possuir uma extensão própria e/ou telefone directo e trabalham em determinado sector.

Page 38: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 38

A partir do texto anterior pode ser obtido o seguinte diagrama de classes:

Tarefa a realizar:

Apresente o esquema relacional deste diagrama utilizando as regras de transposição para o modelo relacional.

Page 39: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 39

FICHA DE TRABALHO N.º 4

Tema:

Transposição do Diagrama de Classes para o Modelo Relacional

Pretende-se guardar informação sobre os carros que se encontram em circulação. A informação considerada relevante sintetiza-se nos seguintes pontos:

a) Os carros em circulação são caracterizados pelo ano de fabrico, cor e cilindrada. São ainda determinados univocamente pelo respectivo número de série e pertencem a um modelo específico.

b) Em cada momento a um carro poderá estar associada, no máximo, uma matrícula.

c) Às matriculas é atribuído um determinado número, sendo ainda caracterizadas pelo ano e local de emissão.

d) Os fabricantes podem produzir diversas marcas e caracterizam-se pelo seu nome e nacionalidade. Uma marca é identificada pelo seu nome comercial e nacionalidade. Uma marca pode ser produzida por vários fabricantes.

e) Cada marca pode possuir vários modelos de carros, caracterizados pelo respectivo nome do modelo e ano de concepção.

f) Os carros possuem um proprietário, podendo este possuir mais de um carro.

g) Os proprietários podem ser particulares ou organizações. Ambos têm nome e morada, sendo os particulares identificados pelo seu número do bilhete de identidade e as organizações pelo seu número de pessoa colectiva.

Page 40: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 40

A partir do texto anterior pode ser obtido o seguinte diagrama de classes:

Tarefa a realizar:

Apresente o esquema relacional deste diagrama utilizando as regras de transposição para o modelo relacional.

Page 41: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 41

FICHA DE TRABALHO N.º 5

Tema:

Transposição do Diagrama de Classes para o Modelo Relacional

Alunos

Uma escola profissional tem vários alunos. Os alunos dos Cursos de Especialização Profissional (CEP), sejam diurnos ou nocturnos, são identificados por meio de um número natural, o qual é atribuído de forma crescente. Para o caso dos alunos nocturnos, interessa saber a empresa onde eventualmente trabalham, a posição que ocupam na hierarquia da empresa e a experiência profissional que possuem. Sobre os alunos diurnos sabe-se as suas habilitações literárias.

Existem também alunos dos Cursos Profissionais (CP), sendo estes igualmente identificados por um número natural, atribuído de forma crescente, mas de um modo independente dos alunos dos CEPs. Tanto os alunos dos CPs como os alunos dos CEPs possuem nome, morada e telefone.

Page 42: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 42

A partir do texto anterior pode ser obtido o seguinte diagrama de classes:

Tarefas a realizar:

1) Apresente o esquema relacional deste diagrama utilizando as regras de transposição para o modelo relacional.

2) Após a apresentação do esquema não optimizado faça a respectiva optimização

Page 43: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 43

FICHA DE TRABALHO N.º 6

Tema:

Transposição do Diagrama de Classes para o Modelo Relacional

Estágios

Seguidamente apresenta-se uma das soluções possíveis de modelação de um sistema de apoio à gestão dos estágios de uma escola profissional.

Na Classe ORGANIZACAO: tipo_organizacao = {empresa, outra} aceita_estagiarios = {sim, não} Na Classe ESTABELECIMENTO: aceitou_estagiarios = {sim, não} Na Classe TURMA: ano = {1º, 2º, 3º }

Page 44: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 44

Tarefas a realizar:

1) Apresente o esquema relacional deste diagrama utilizando as regras de transposição para o modelo relacional.

2) Após a apresentação do esquema não optimizado faça a respectiva optimização

Page 45: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 45

FICHA DE AVALIAÇÃO

Tema:

Transposição do Modelo de Classes de Objectos para o Modelo Relacional

Classificação: Data: Rubrica do Formador:

_____________________ ____/____/____ ___________________

Nota prévia: A ficha deve ser resolvida nesta folha, conforme o espaço que lhe é reservado, devendo indicar, obrigatoriamente, o seu nome, nº e turma. A ficha pode ser resolvido a lápis.

Seguros Viva Descansado é uma companhia de seguros especializada em diversas áreas do negócio dos seguros, como por exemplo: Vida, Automóvel e Navegação. Apresenta-se de seguida o diagrama de classes com alguns dos requisitos de informação do sistema, que a companhia pretende desenvolver, para automatização das suas actividades.

Page 46: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 46

Tarefas a realizar:

1. Com base no diagrama de classes apresentado elabore o respectivo esquema relacional.

Sugere-se que utilize a seguinte notação:

Chave Primária – Sublinhado.

Chave Estrangeira – Ondulado.

Chave Primária e Estrangeira – Sublinhado e Ondulado.

2. Após a apresentação do esquema não optimizado faça a respectiva optimização.

Page 47: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 47

CORRECÇÃO DA FICHA DE AVALIAÇÃO

Tema:

Transposição do Modelo de Classes de Objectos para o Modelo Relacional

Nota prévia: A ficha deve ser resolvida nesta folha, conforme o espaço que lhe é reservado, devendo indicar, obrigatoriamente, o seu nome, nº e turma. A ficha pode ser resolvido a lápis.

Seguros Viva Descansado é uma companhia de seguros especializada em diversas áreas do negócio dos seguros, como por exemplo: Vida, Automóvel e Navegação. Apresenta-se de seguida o diagrama de classes com alguns dos requisitos de informação do sistema, que a companhia pretende desenvolver, para automatização das suas actividades.

Page 48: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 48

Tarefas a realizar:

1. Com base no diagrama de classes apresentado elabore o respectivo esquema relacional.

Sugere-se que utilize a seguinte notação:

Chave Primária – Sublinhado.

Chave Estrangeira – Ondulado.

Chave Primária e Estrangeira – Sublinhado e Ondulado.

2. Após a apresentação do esquema não optimizado faça a respectiva optimização.

ESQUEMA RELACIONAL

CORRECTOR (código corrector, vencimento, código cliente)

CLIENTE (código cliente, nome cliente, morada cliente, profissão)

APÓLICE (nº ordem, ano, comissão, código corrector, código cliente)

PARTICIPAÇÃO (nº participação, local, data, descrição, nº ordem)

INSTITUIÇÃO (id instituição, nome, morada, telefone, telex, tipo instituição)

tipo instituição = {clube, associação}

CLUBE (sigla clube, nº modalidades, id instituição)

ASSOCIAÇÃO (npc, nº associados, id instituição)

ÁREA DE NEGÓCIOS (sigla, texto)

PRODUTO (código produto, taxa, tipo produto, sigla)

tipo produto = {produto vida, outro produto}

PRODUTO VIDA (código produto, idade máxima)

OUTRO PRODUTO (código produto)

PERTENCE (código cliente, id instituição, data admissão)

INCLUI (nº ordem, código produto)

OPTIMIZAÇÃO das classes INSTITUIÇÃO, CLUBE e ASSOCI AÇÃO

CLUBE (sigla clube, nº modalidades, nome, morada, telefone, telex, id instituição)

ASSOCIAÇÃO (npc, nº associados, nome, morada, telefone, telex, id instituição)

OPTIMIZAÇÃO das classes PRODUTO, PRODUTO VIDA e OUT RO PRODUTO

PRODUTO (código produto, taxa, tipo produto, idade máxima, sigla)

Page 49: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 49

DOCUMENTO DE APOIO N.º 4

Tema:

Utilização do Microsoft Access: Tabelas e Relações

1. CONTEXTUALIZAÇÃO

Enquanto as aulas do módulo anterior tiveram como objectivo a aprendizagem de uma metodologia de modelização de sistemas de informação (Unified Modelling Language), as deste módulo terão como objectivo a concretização funcional de um sistema de informação tendo por base os modelos disponibilizados pelo UML.

Neste contexto, as aulas práticas serão acompanhadas por uma colecção de documentos de apoio, e que traduzirão todas as fases de desenvolvimento de um sistema de informação – Análise, Desenho e Implementação – pela aplicação a um mini Caso de Estudo. Obviamente, que o enfoque destes elementos de estudo será na fase da implementação, sendo as restantes fases (Análise e Desenho) abordadas do ponto de vista meramente de contextualização e definição do problema em estudo, servindo de elo de ligação com a matéria leccionada nas aulas dos módulos anteriores.

Assim, as aulas serão apoiadas por documentos de apoio, onde será descrito passo a passo o trabalho a desenvolver acompanhado pela apresentação e descrição das potencialidades do Access, que será utilizado como ferramenta de trabalho para a construção de um mini sistema de informação.

O presente documento de apoio apresentará em traços gerais a seguinte estrutura:

• Objectivos – apresentação dos objectivos propostos durante as respectivas sessões de trabalho.

• Plano de Trabalho – trabalho a realizar durante a aula. Esta fase será composta de tarefas devidamente discriminadas a realizar onde serão explicitados todos os passos a dar, bem como tarefas onde o problema será colocado devendo o aluno tentar solucioná-lo da melhor forma atendendo às informações fornecidas pelo manual.

• Anexo – contém uma descrição pormenorizada de algumas funcionalidades/características do Access que não se encontram definidas no corpo do Plano de Trabalho.

Recomenda-se a leitura integral do documento e alerta-se para o facto de que o sucesso e rentabilidade do vosso trabalho estão dela dependentes.

Page 50: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 50

2. O MICROSOFT ACCESS

O Access é um Sistema de Gestão de Bases de Dados Relacional (SGBD) (Relational Database Management System).

O Access foi criado para ser utilizado como um SGBD isolado num único posto de trabalho, ou num modo cliente/servidor compartilhado numa rede. Como os dados podem ser partilhados com outros utilizadores, o Access dispõe de excelentes mecanismos de segurança e integridade dos dados.

Podem ser definidos grupos de utilizadores que possam aceder a tabelas, formulários, etc. o Access fornece automaticamente mecanismos de bloqueio para garantir que dois utilizadores não possam actualizar um objecto ao mesmo tempo.

As principais funções do Access são:

• Definição e armazenamento de dados - podem ser definidos quais os dados que serão armazenados na base de dados, o tipo de dados (por exemplo: números ou caracteres) e como os dados são relacionados. Em alguns casos pode ainda ser definido como se devem formatar os dados e como devem ser validados.

• Manipulação de dados - os dados podem ser trabalhados de muitas formas, nomeadamente seleccionando os campos de dados que se pretendem filtrar ou classificar, e associar os dados a outras informações relacionadas.

• Controlo de dados - pode ser definido quem está autorizado a ler, actualizar ou inserir dados. Em muitos casos também é possível definir como os dados são compartilhados e actualizados por múltiplos utilizadores.

Atendendo à diversidade de funções facultadas, um documento Access, também designado por base de dados (database), é constituído por um conjunto de objectos (objects) relacionados. Assim, uma base de dados pode conter:

• Tabelas (Tables) – estruturas de dados que permitem armazenar informação relativa a um determinado assunto.

• Consultas (Queries) – constituem o resultado de operações efectuadas sobre a informação constante de uma ou mais tabelas da base de dados.

• Formulários (Forms) – objectos gráficos que definem um layout de ecrã, criados para facilitar a visualização e actualização da informação constante da base de dados.

• Relatórios (Reports) – estruturas destinadas à apresentação de dados em relatórios impressos.

• Páginas Web (Pages) – página para publicação e inserção de elementos através da Internet.

• Macros (Macros) – conjunto de acções que serão desencadeadas automaticamente em determinadas circunstâncias.

Page 51: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 51

• Módulos (Modules) – módulos de código escritos em linguagem Visual Basic. A criação de módulos exige conhecimentos e utilização de técnicas de programação. Os módulos de código são utilizados para executar tarefas mais complexas do que aquelas que podem ser executadas através de macros.

Desta forma, importa salientar que com o Microsoft Access, um sistema de informação poderá ser definido num único ficheiro. Nesse ficheiro os dados são separados em “armários” chamados tabelas. Podemos procurar e isolar um subconjunto desses dados mediante critérios de selecção através de consultas à base de dados. Podemos ainda visualizar, adicionar e alterar os dados contidos nas tabelas através de formulários. Finalmente, podemos analisar e imprimir os dados num formato por nós definido através de relatórios.

3. OBJECTIVOS

O presente módulo tem como objectivos:

• Apresentar o Caso de Estudo, objecto de trabalho das próximas aulas.

• Análise do problema proposto. Desta fase de desenvolvimento resultarão os modelos UML de Casos de Uso (Use Cases) e de Classes de Objectos.

• Desenho da base de dados recorrendo à criação do Modelo Relacional a implementar com base no Diagrama de Classes.

• Início do processo de implementação do sistema de informação:

o Definição e implementação da estrutura de dados

o Criação de relações entre as tabelas

o Inserção de dados nas respectivas tabelas

o Verificação das regras de integridade referencial

o Manipulação de registos

Page 52: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 52

4. CASO DE ESTUDO O presente caso de estudo é um mini problema cujo principal objectivo é exemplificar o processo de implementação. Logicamente que se optou por favorecer a intensidade em detrimento da extensidade, i.e., o problema em estudo não visa a implementação de um sistema de grandes dimensões, mas de um mais pequeno onde a complexidade se restringe à diversidade de situações criadas.

A empresa centenária ARTECIDOS – Armazém de Comércio de Tecidos, S.A., com sede no Porto, abastece 60% das indústrias têxteis do Norte. O controlo dos stocks em armazém era realizado, desde do tempo do bisavô Rodrigues, manualmente pelo responsável de armazém que registava em livros ‘bíblicos’ todas as entradas e saídas diárias, calculando a cada movimento os saldos respectivos.

Contudo, pelo recente aumento de facturação, pela competitividade de empresas rivais e pelo aumento da velocidade das transacções era impossível continuar a manter o sistema de controlo vigente. Perante esta situação a actual direcção optou por informatizar esta actividade da empresa, para assim poder responder mais rapidamente e com maior precisão aos seus clientes, libertando o responsável de armazém desta tarefa monótona e rotineira para desempenhar outras tarefas objecto de maior realização pessoal.

A empresa comercializa rolos de tecido a serem utilizados pelas empresas de têxteis na confecção de vestuário e artigos de decoração para o lar. A mercadoria comercializada é identificada internamente por um código composto por letras e números, tem uma designação que refere o tipo de produto (Lã, Seda Chinesa, Linho, Algodão, Cambraia,...), largura da peça de tecido, cor predominante, peso do tecido por m2, e uma pequena descrição para informação pontual variada.

Sendo a ARTECIDOS, S.A. uma empresa comercial, a mercadoria é objecto de transacções com as empresas relacionadas (clientes e fornecedores). Uma transacção ou movimento de armazém resulta do processo de compra/venda de uma mercadoria que se estabelece entre a empresa e as restantes entidades. Cada movimento tem uma identificação e também uma data e quantidade em metros. Como foi salientado existem dois tipos de movimentos distintos: aquisição e venda, sendo que no primeiro caso é armazenado o preço de aquisição do bem e no segundo o preço de venda.

As empresas externas (fornecedoras e clientes) possuem um código interno que as identifica, e sobre cada uma destas entidades é preciso conhecer o Número de Identificação Fiscal (NIF), a sede e designação social. Cada empresa poderá ser em simultâneo cliente e fornecedora da ARTECIDOS, S.A., a natureza da relação será definida pelo tipo de movimento, assim em movimentos de aquisição a empresa externa desempenhará o papel de fornecedora e em movimentos de venda a empresa externa envolvida será cliente.

Cada empresa dispõe de um único e exclusivo representante para o relacionamento comercial com a ARTECIDOS, S.A., facilitando assim o processo de transacção e a imputação de responsabilidades uma vez que estão em causa quantias avultadas. Sobre o representante é importante conhecer: o nome, o cargo que desempenha na empresa em que trabalha e o número de telefone directo.

No novo sistema o Sr. Antunes responsável de armazém será quem dará continuidade à realização das tarefas habituais de registo de movimentos de entrada e saída, registo de novas mercadorias, de novas empresas e respectivos representantes... Contudo, como a tarefa já não é tão exaustiva passará a desempenhar tarefas de gestão logística relacionadas com extracção de análises estatísticas, de rácios económico-financeiros, análise de stock.

Page 53: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 53

5. ANÁLISE

Diagrama de Casos de Uso

Identificação dos Actores

• Gestor de Logística – responsável pela manutenção do nível de stocks, análise de rácios e estatísticas

• Responsável de Armazém – responsável pelo registo de todos os movimentos de entrada e saída de mercadorias do armazém

Identificação e caracterização dos Casos de Uso

• Manutenção de Mercadorias – Registar novas mercadorias, modificar o registo ou eliminá-lo se possível

• Manutenção de Entidades/Responsável – Registar novas entidades externas, modificar a respectiva informação ou eliminá-la se possível. Fazer a manutenção de todos os dados relativos ao respectivo responsável comercial

• Consultar Stock – consultar o nível de stock de determinado produto

• Registar Venda de Mercadoria – registar um movimento de saída de armazém. Para que este registo seja realizado com sucesso é necessário que exista stock suficiente em armazém que possibilite a transacção, para o que deverá ser utilizado o caso de uso Consultar Stock

• Registar Aquisição de Mercadoria – registar um movimento de entrada de mercadoria em armazém.

• Análise Estatísticas – realização de diversas análises estatísticas relacionadas com o movimento de armazém

• Análise Contabilísticas – realização de diversas análises associadas a cálculos para análise económico-financeiro da empresa

Page 54: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 54

Diagrama de Casos de Uso

Sistema de Informação Logística - ARTECIDOS

Gestor Logística

Fazer Análise Estatística

Fazer Análise Contabilística Gestor Logística

Resp. Armazém

Consultar Stocks

Registar Venda de Mercadoria

Registar Aquisição de Mercadoria

<<extend>>

<<use>>

Realizar Manutenção Entidades/Responsável

Resp. Armazém

Realizar Manutenção Mercadorias

Page 55: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 55

Diagrama de Classes

designação = {“Lã”, “Seda Chinesa”, “Linho”, “Algodão”, “Cambraia”,... }

tipoMovimento = {“Aquisição”, “Venda”}

Movimento

data quantidade preço tipoMovimento

Mercadoria codigo designação largura descrição cor peso m2

Entidade codigoInternoNIF sede designaçãoSocial

1..* 1..* 1..* 1..*

movimentada Representante

nome 1

representada

1 1

cargo telefone

Page 56: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 56

6. DESENHO

Uma vez que o Access é um Sistema de Gestão de Bases de Dados Relacional vamos recordar alguns conceitos do modelo relacional.

• Relação ou Tabela

– é a estrutura fundamental do modelo relacional

– bidimencional, com um determinado esquema

• Esquema da relação

– constituída por um ou mais atributos

– cada instância de esquema de relação designa-se por tuplo (elemento, linha ou registo)

• Esquema relacional

– conjunto de esquemas de relação de uma base de dados

• Atributos

– traduzem o tipo de dados a armazenar

– a cada atributo corresponde um domínio ou gama de valores possíveis que este pode ter

• Grau da relação

– número de atributos da relação

• Cardinalidade da relação

– número de tuplos (ou registos) da relação

• Superchave

– conjunto de atributos que contenha uma chave

• Chave candidata

– no caso de existirem várias chaves possíveis estas dizem-se chaves candidatas - a escolhida passa a ser designada como:

• Chave primária (ou principal)

– chave é o atributo ou conjunto de atributos cujos valores identificam univocamente um tuplo numa relação

Page 57: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 57

Esquema Relacional

De forma a ser possível a implementação de uma base de dados, modelizada segundo uma metodologia orientada para objectos, num Sistema de Gestão de Base de Dados Relacional é necessário realizar a devida conversão com a atenção e cuidado necessários. Apresenta-se a seguir o esquema relacional completo do sistema baseado no diagrama de classes anteriormente apresentado:

Mercadoria ( codigo, designação, largura, descrição, cor, peso m2 )

Entidade ( codigoInterno, nif, sede, designaçãoSocial )

Movimento ( IDMovimento, codigo, codigoInterno, data, quantidade, preço, tipoMovimento ) 1

Representante ( IDRepresentante, nome, telefone, cargo, codigoInterno)

Para além da informação que se obtém do modelo relacional é também importante decidir nesta fase quais os tipos de dados de cada atributo (texto, numérico, etc.), a sua dimensão, eventuais validações a efectuar... porém esta informação será facultada atempadamente durante o processo de implementação.

1 A utilização do ID é uma forma utilizada para colmatar algumas imprecisões da transposição do modelo de classes para o relacional. Senão vejamos, a não utilização do ID impossibilitava que o binómio codigo da mercadoria e codigoInterno da entidade se repetissem impossibilitando a existência de mais que uma transacção comercial com uma entidade para a mesma mercadoria. Como esta realidade vai contra a natureza da relação de muitos-para-muitos estabelecida no diagrama de classes a utilização de um ID como chave vai suprir a limitação detectada.

Page 58: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 58

7. IMPLEMENTAÇÃO EM ACCESS CRIAR UMA BASE DE DADOS Como foi referido anteriormente, em Access um ficheiro de base de dados (database) é constituída por um conjunto de objectos (objects) relacionados. Assim, uma base de dados pode conter:

• Tabelas, • Consultas, • Formulários, • Relatórios, • Páginas, • Macros, e • Módulos.

Todos estes objectos estão agrupados num único ficheiro com a extensão .mdb. Para criar uma base de dados Contrariamente às restantes aplicações do Office o Access não permite fazer um “Guardar Como” (Save As), o que significa que o nome utilizado para a criação do documento da base de dados, que corresponde a um novo documento de Access, não poderá ser alterado na respectiva aplicação. Para fazer alteração do nome do ficheiro é necessário recorrer ao comando “Mudar o nome” (Rename) no Windows Explorer ou recorrer ao comando DOS (C:\ren x.mdb basedados.mdb ) 1. Entre no Access. A caixa de diálogo que aparece permite criar ou abrir as bases de dados. Seleccione “Base de dados vazia” (Blank Database). Clique no botão ‘OK’ para criar a nova base de dados. 2. Na caixa de diálogo escreva “ARTECIDOS” em “Nome do ficheiro” (File Name). Ao nome do ficheiro será acrescentada a extensão .mdb. Indique também em que pasta quer guardar o ficheiro. Clique no botão ‘Criar’ (Create) para criar a nova base de dados. Aparece a janela de ‘Base de Dados’ (Database). 3. Veja a janela ‘Base de Dados’. No título aparece o nome do ficheiro que foi criado. 4. Seleccione cada um dos objectos na barra lateral esquerda da janela ‘Base de Dados’. Em cada um deles tem acesso a cada um dos objectos da base de dados.

Neste momento não existe nenhum elemento criado mas existem ferramentas para a criação de cada um deles.

Page 59: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 59

CRIAR TABELAS As tabelas são os elementos da base de dados onde os dados estão permanentemente armazenados. É sobre estes dados que poderão ser realizadas as operações de inserção, consulta, pesquisa, remoção e modificação. Cada relação do Modelo Relacional corresponde a uma tabela da base de dados, cujos atributos serão campos da tabela. Os atributos sublinhados no modelo relacional serão as chaves primárias da tabela. Para criar uma tabela (‘Table’) – Mercadoria Crie a tabela Mercadoria tendo em conta a seguinte transposição para o modelo relacional:

Mercadoria ( código, designação, largura, descrição, cor, peso m2 ) 1. Seleccione o separador ‘Tabelas’ (Tables) e clique em ‘Novo’. Aparecerão cinco formas de criação de tabelas:

� Vista de folha de dados (Create Table by Entering Data) – criação da tabela pelo preenchimento de dados, i.e., uma estrutura genérica já está construída e a pessoa começa por preencher os valores na tabela antes de a construir.

� Vista de Estrutura (Create Table In Design View) – neste modo é possível definir a estrutura da tabela: atributos, chaves, restrições,...

� Assistente de tabelas (Create Table by Using Wizard) – o Access disponibiliza um conjunto de passos para a criação da tabela, mais fácil de utilizar mas bastante mais limitado em termos de opções. Também cria a estrutura da tabela.

� Importação de tabelas – permite importar tabelas de outra aplicação. � Ligação de tabelas – permite ligar diferentes tabelas.

� Poderá utilizar qualquer um dos métodos, mas neste momento aconselhamo-lo a utilizar a Vista de Estrutura, pois é a forma mais metódica de desenvolvimento da solução. 2. Quando selecciona a forma de criação por ‘Vista de Estrutura’ aparece uma janela para definir a estrutura da

tabela. 3. Na coluna intitulada ‘Nome do campo’ (Field Name), deverá introduzir o nome de cada atributo da relação

que se irá traduzir no nome do campo da tabela. Os requisitos de cada atributo são definidos posteriormente. 4. A coluna ‘Tipo de dados’ (Data Type) representa o tipo de dados que o respectivo campo/atributo deve

assumir, que deve estar em consonância com os dados a armazenar. Para auxiliar o seu preenchimento será disponibilizada uma ComboBox com todos os tipos de campos do Access.

5. Na coluna ‘Descrição’ (Description), de preenchimento facultativo, pode colocar uma nota explicativa acerca

do campo. Esta descrição não representa um comentário seu e não tem qualquer significado para a Base de Dados.

6. Na parte inferior da janela designada ‘Propriedades do campo’ (Field Properties) encontram-se o separador ‘Geral’ (General) e ‘Pesquisa’ (Lookup), as opções que apresentam depende do tipo de dados da coluna ‘Tipo de dados’ do atributo nesse momento seleccionado. Nesta secção podem-se definir restrições ou especificações relativamente ao atributo em causa.

Page 60: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 60

� Definir especificações relativamente ao campo – código

�O campo código da tabela ‘Mercadoria’ deve permitir armazenar combinações de letras e números. R: O ‘Tipo de dados’ deve ser ‘Texto’ �O tamanho máximo que este campo pode armazenar é 10 caracteres R: A propriedade do campo ‘Tamanho do campo’ (Field Size) deve ser 10 �Pretende-se que sempre que seja exibido este campo (num écran, p.e.) apareça o descritivo: Código da Mercadoria R: A propriedade ‘Legenda’ deve ser ‘Código da Mercadoria’ �Este código é de preenchimento obrigatório, não devendo ser um valor omitido na inserção de valores na tabela R: A propriedade ‘Necessário’ (Required) deve conter o valor ‘Sim’

�O atributo código é utilizado como elemento de pesquisa de uma mercadoria, como tal deve ser um indexante R: A propriedade ‘Indexado’ (Index) deve conter o valor ‘Sim (duplicação não autorizada)’ pois este campo é chave primária

� Definir especificações relativamente ao campo – designação

�Deve armazenar texto e ter um tamanho máximo de 30 caracteres R: O ‘Tipo de dados’ deve ser ‘Texto’ e a propriedade ‘Tamanho do campo’ deve ser 30 �Não é de preenchimento obrigatório R: O valor da propriedade do campo ‘Necessário’ deve ser ‘Não’ �Pretende-se que sempre que seja exibido este campo (num écran, p.e.) apareça o descritivo: Designação R: A propriedade ‘Legenda’ deve ser ‘Designação’ �O valor deste campo pode-se repetir R: O facto de não pertencer à chave principal da tabela possibilita a sua duplicação.

� Definir especificações relativamente ao campo – largura

�É um número que assume pequenos valores R: O ‘Tipo de dados’ deve ser ‘Número’ (Number) e a propriedade ‘Tamanho do campo’ deve ser ‘Duplo’ (Double) �Não é necessário nenhum formato específico para a sua criação R: O valor da propriedade ‘Formatar’ (Format) do campo deve ser ‘Fixo’ (Fixed) �Necessita de 2 casas decimais R: O valor da propriedade ‘Casas decimais’ (Decimal Places) do campo deve ser 2

Page 61: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 61

�Pretende-se que sempre que seja exibido este campo (num écran, p.e.) apareça o descritivo: Largura em metros R: A propriedade ‘Legenda’ deve ser ‘Largura em metros’ �É de preenchimento obrigatório R: O valor da propriedade ‘Necessário’ do campo deve ser ‘Sim’ �Deve conter valores superiores a 2 R: O valor da propriedade ‘Regra de validação’ (Validation Rule) deve conter a expressão >2 �Sempre que a largura tenha um valor menor ou igual a 0 deve exibir uma mensagem de erro R: O valor da propriedade ‘Texto de validação’ (Validation Text) deve conter a expressão ‘A largura deve ser superior a 2 metros’

7. Crie os restantes campos da tabela recorrendo aos seguintes requisitos: �

descrição: • Deve armazenar texto e ter um tamanho máximo de 50 caracteres • Não é de preenchimento obrigatório • Pretende-se que sempre que seja exibido este campo (num écran, p.e.) apareça o descritivo:

Descrição • O valor deste campo pode-se repetir • Não é utilizado como indexante da tabela

cor:

• Deve armazenar texto e ter um tamanho máximo de 15 caracteres • É de preenchimento obrigatório • Pretende-se que sempre que seja exibido este campo (num écran, p.e.) apareça o descritivo: Cor • O valor deste campo pode-se repetir • Não é utilizado como indexante da tabela

peso m2:

• É um número que assume valores que poderá atingir valores na ordem dos milhares • Não é necessário nenhum formato específico para a sua criação • Não necessita de casas decimais pois este campo traduz o peso do tecido em gramas • É de preenchimento obrigatório • Deve ser definido por valores positivos, caso contrário exibirá uma mensagem de erro • Pretende-se que sempre que seja exibido este campo (num écran, p.e.) apareça o descritivo: Peso

m2 (g)

Page 62: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 62

R:

Código Designação Largura Descrição Cor Peso m2 Tipo de dados Texto Texto Número Texto Texto Número Tamanho do

campo 10 30 Duplo 50 15 Número

inteiro longo

Formatar Fixo Número geral

Casas decimais 2 0 Legenda Código da

Mercadoria Designação Largura em

metros Descrição Cor Peso m2

(g) Regra de validação

>2 >0

Texto de validação

A largura deve ser superior a 2

metros

O peso deve ser um valor positivo

Necessário Sim Não Sim Não Sim Sim Indexado Sim (duplicação

não autorizada) Não Não Não Não Não

Para criar a Chave Primária 1. Seleccione o(s) atributo(s) que constitui(em) a chave primária da tabela (para seleccionar vários atributos não

sequenciais mantenha a tecla CTRL premida enquanto selecciona com o rato) 2. Clique no botão da barra de ferramentas ‘Chave primária’ (Primary Key) (o que tem uma chave) ou

alternativamente com o botão do lado direito do rato (sem desseleccionar os atributos) e escolha ‘Chave primária’ do menu.

n Aparece uma chave junto ao(s) campo(s) seleccionado(s) 3. Como a chave é o elemento que identifica univocamente um registo, nunca pode repetir o valor (Regra da

Unicidade da Chave), então as propriedades do(s) campo(s) que compõe(õem) a chave têm de estar em consonância com esse facto. Assim o Access efectuará alterações na propriedade Indexado dos campos chave por forma a que exibam o valor Sim, e no caso da chave ser composta por um único campo o valor da propriedade será ‘Sim (duplicação não autorizada)’

� Se gravar a tabela, ou a pretender fechar antes de criar a chave, aparecerá uma mensagem indicando que

não foi definida a chave primária e solicitando autorização para criar uma. Se responder ‘Sim’ será criado um novo campo na tabela considerado como campo chave; se responder ‘Não’ a tabela será gravada sem chave, mas se responder ‘Cancelar’ poderá voltar atrás e definir a chave.

Page 63: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 63

Para gravar a estrutura da tabela 1. Seleccione ‘Ficheiro | Guardar’ (File | Save) ou clique no botão ‘Guardar’ (Save) para guardar a tabela. Ser-lhe-á solicitado o nome da tabela, que deverá inserir na caixa ‘Nome da tabela’ (Table Name) 2. Feche a janela ou pode alternativamente seleccionar ‘Ficheiro | Fechar’ (File | Close). 3. Volte à janela ‘Base de dados’. Clique sobre o separador das tabelas e repare que aparece a tabela acabada de criar. � Neste momento está apenas definida a estrutura da tabela. Isto significa que o esqueleto que irá suportar os

dados está construído o que não significa que a tabela já tenha dados, até porque ainda não foram inseridos. Para inserir dados na tabela basta seleccioná-la e abri-la ‘Abrir’ (Open). (Equivalente a um Duplo-Clique).

Contudo só se devem inserir dados na tabela quando todas as tabelas e relações estiverem criadas senão poderão existir incongruências na base de dados (Regra da Integridade Referencial).

� Por exemplo, não se pode inserir movimentos sem antes ter inserido a mercadoria e a entidade externa

envolvida, senão qual o valor a inserir no campo código (da mercadoria) ou códigoInterno (da entidade)? � Problemas na Definição da Estrutura

No caso de pretender alterar a estrutura da tabela após a ter gravado e fechado, basta seleccionar a tabela na janela ‘Base de dados’ e activar a opção ‘Estrutura’.

Page 64: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 64

� Criar a tabela Entidade Crie a tabela Entidade tendo em conta a seguinte transposição para o modelo relacional: Entidade ( codigoInterno , nif, sede, designaçãoSocial ) 1. Siga os passos descritos anteriormente para a criação de tabelas. 2. Fica ao seu critério definir quais os requisitos dos campos da tabela, bem como os tipos de dados e

propriedades de cada campo, à excepção do campo codigoInterno cujos requisitos são os seguintes:

� É um número sequencial de preenchimento automático R: O ‘Tipo de dados’ deve ser ‘Numeração automática’ e a propriedade ‘Tamanho do campo’ deve ser ‘Número inteiro longo’ � Não é necessário nenhum formato específico para a sua criação R: O valor da propriedade ‘Formatar’ do campo deve ser ‘Número geral’ � Os valores não se podem repetir R: Sendo um campo de preenchimento automático e sequencial, a criação de um novo registo implica a geração de um novo número que não voltará a ser atribuído a qualquer outro registo. � De preenchimento obrigatório R: Sendo um campo de preenchimento automático o seu preenchimento está sempre garantido, por outro lado sendo um campo constituinte da chave principal o princípio da Integridade da Chave garante que este campo tem que estar sempre preenchido.

� Atenção: Um campo de preenchimento automático e sequencial é preenchido automaticamente sempre que

um registo é gerado, sendo o seu valor o incremento unitário ao valor atribuído ao último registo gerado. Porém se houver qualquer engano e eliminar um registo, o valor do campo automático não é atribuído a nenhum outro registo que pretenda inserir. Se eventualmente pretender reiniciar a sequência deverá eliminar o campo da tabela e criá-lo de novo, o que poderá ser uma tarefa complexa caso já estejam estabelecidas relações com outras tabelas, as quais (relações) terão de ser previamente eliminadas por forma a não violarem o principio da Integridade Referencial.

� Criar a tabela Representante Crie a tabela Representante tendo em conta a seguinte transposição para o modelo relacional:

Representante ( IDRepresentante, nome, telefone, cargo, codigoInterno) 1. Siga os passos descritos anteriormente para a criação de tabelas. 2. O campo IDRepresentante é de preenchimento automático sequencial. 3. Faça uma máscara para introdução do telefone. 4. Fica ao seu critério definir quais os restantes requisitos dos campos da tabela, bem como os tipos de dados e

propriedades de cada campo. � Atenção: o campo codigoInterno deverá estar associado ao campo codigoInterno da tabela Entidade, como

representam a mesma informação deverão ser do mesmo tipo de dados, senão mais tarde terá problemas!

Page 65: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 65

� Criar a tabela Movimento Crie a tabela Movimento tendo em conta a seguinte transposição para o modelo relacional:

Movimento ( IDMovimento, codigo, codigoInterno , data, quantidade, preço, tipoMovimento ) 1. Siga os passos descritos anteriormente para a criação de tabelas. 2. De seguida serão apresentados alguns requisitos dos campos, a definição dos restantes ficará ao seu

critério:

� IDMovimento:

• Numeração automática e sequencial

data: • Data em formato abreviado (dd-mm-aaaa)

preço:

• Valor em Euros, implicando a utilização de duas casas decimais

tipoMovimento: �Só pode assumir os valores “Aquisição” ou “Venda” Existem duas hipóteses: R1: O utilizador deverá escrever os valores permitidos os quais serão validados por uma ‘Regra de Validação’: ‘Aquisição’ OR ‘Venda’ R2: O utilizador poderá numa caixa de combinação seleccionar um dos dois valores possíveis “Aquisição” ou “Venda”. Para concretizar esta solução deverá realizar as tarefas seguintes:

- na caixa das propriedades existe uma pasta intitulada ‘Pesquisa’ - Na propriedade ‘Mostrar controlo‘(Display Control) seleccione ‘Caixa de

combinação’ (Combobox) – nesse momento aparecerão novas propriedades

- Na propriedade ‘Tipo de origem da linha’ (Row Source Type) seleccione ‘Lista de valores’ (Value List)

- Na propriedade ‘Origem da linha’ (Row Source) construa a lista de valores válidos para o campo e que constituirão as hipóteses de selecção da caixa de combinação, i.e., “Aquisição” ; “Venda”

� Atenção: o campo código deverá estar associado ao campo código da tabela Mercadoria, bem como o

campo codigoInterno deve estar relacionado com o campo codigoInterno da tabela entidade. Como tal, representando a mesma informação, deverão ser do mesmo tipo de dados, senão mais tarde terá problemas!

Page 66: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 66

CRIAR RELAÇÕES (RELATIONSHIPS) Relações entre tabelas

As relações que se estabelecem entre os campos das tabelas têm como finalidade estabelecer a Integridade Referencial, i.e., ao relacionar a chave estrangeira de uma tabela com os atributos que constituem a respectiva chave primária noutra tabela, está-se a impor à Base de Dados que os valores dos campos que constituem a chave estrangeira deverão referenciar valores previamente introduzidos na tabela onde são chave primária. Garantindo assim a coerência e integridade dos dados.

� Por exemplo, se relacionar o campo codigoInterno da tabela Representante (chave estrangeira referente à chave primária codigoInterno da tabela Entidade), com o campo onde codigoInterno é chave principal (tabela Entidade), está a restringir a Base de Dados no sentido de que sempre que se mencionar uma entidade na tabela Representante, o codigoInterno respeitante já deve ter sido inserido na tabela Entidade. No sistema de informação da ARTECIDOS,S.A. existem três relações de dois tipos distintos: • relação de muitos-para-um entre as tabelas Movimento e Entidade • relação de muitos-para-um entre as tabelas Movimento e Mercadoria • relação de um-para-um entre as tabelas Representante e Entidade

Criar relações entre tabelas

1. Seleccione o separador ‘Tabelas’ (Tables)’ na janela ‘Base de Dados’ (Database). Clique no botão ‘Relações’ (Relationships) ou seleccione ‘Ferramentas | Relações’ (Tools | Relationships)...’. n Aparece uma caixa de diálogo com o nome das tabelas da sua base de dados. Nesta etapa deve seleccionar as tabelas necessárias para estabelecer as relações, para isso: Seleccione a tabela ‘Movimento’ e clique em ‘Adicionar’ (Add), e faça o mesmo para a tabela ‘Entidade’. Feche a caixa de diálogo ou clique em ‘Fechar’ (Close). 2. Para estabelecer o relacionamento entre duas tabelas arraste o atributo ‘codigoInterno’ da tabela ‘Entidade’ (Chave Primária) para cima do atributo ‘codigoInterno’ da tabela ‘Movimento’ (Chave Estrangeira). n Aparece a caixa de diálogo ‘Relações’ (Relationships). Em ‘Tabela/consulta:’ (Table/Query) deverá estar a tabela ‘Entidade’ e o campo ‘codigoInterno’. Em ‘Tabela/consulta relacionada:’ (Related Table/Query) deverá estar a tabela ‘Movimento’ e o campo ‘codigoInterno’.

Page 67: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 67

3. Para garantir a integridade dos dados usando as regras de integridade referencial deve-se activar a opção ‘Impor integridade referencial’ (Enforce Referential Integrity). A integridade referencial pode produzir efeitos a dois níveis:

� Caso na tabela Entidade se altere o codigoInterno respectivo essa alteração é repercutida de imediato na tabela Movimento – para isso é necessário activar a opção ‘Propagar actualização dos campos relacionados’ (Cascade Update Related Fields). Se eventualmente não activar esta opção não poderá efectuar alterações no codigoInterno da tabela Entidade que estejam a ser utilizadas pela tabela Movimento.

� Se remover um codigoInterno da tabela Entidade que já esteja mencionada na tabela Movimento, a

coerência deve ser mantida e então os registos da tabela Movimento que estejam associados a essa Entidade também são eliminados da tabela Movimento – para activar este procedimento deverá seleccionar a opção ‘Propagar eliminação dos registos relacionados’ (Cascade Delete Related Records). Contudo este não é o procedimento mais adequado, como tal a não selecção desta opção ao pretender-se apagar uma Entidade a Base de dados não o permitirá se houver Movimentos a ela associados.

4. Clique em ‘Criar’ (Create), para criar a relação e repare que esta é desenhada graficamente no écran. � Atenção: quando executar este comando podem surgir erros indicando a impossibilidade de o fazer.

Normalmente esta impossibilidade está associada ao facto do tipo de dados dos atributos que está a relacionar não serem iguais ou compatíveis (Numeração automática (Autonumber) só é compatível com o tipo Número inteiro longo (Number/Long Integer)), ou então porque a tabela que contém a chave estrangeira já tem elementos inseridos que não estão em consonância com os valores da tabela onde é chave principal.

� Repare que o tipo de associação criado é de um-para-muitos como pretendido. Veja no ‘Ajuda’ (Help) sob o tópico ‘relações’ (Relationships) subtópico ‘Acerca das relações numa base de dados’ (About Relationships in a Database) como criar os outros tipos de relações. 5. Crie as restantes relações: entre as tabelas Mercadoria e Movimento e entre as tabelas Entidade e

Representante � Para adicionar as restantes tabelas às ‘Relações’ (Relationships) seleccione ‘Relações | Mostrar tabela’ (Relationships | Show Table) ...’, ou clique no botão respectivo na barra de ferramentas ou com o botão do lado direito do rato clique sobre uma zona vazia na janela para obter o menu. � Tome cuidado com o sentido de arrastamento dos campos para criação da relação. O sentido deverá ser

sempre Chave Primária → Chave Estrangeira. � Se teve problemas com a criação da relação de um-para-um verifique se na tabela representante o atributo

codigoInterno tem como propriedade a não repetição de valores, i.e., a propriedade ‘Indexado’ (Index) deve assumir o valor ‘Sim (duplicação não autorizada)’ (Yes No Duplicates). Compreende o porquê?

Page 68: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 68

6. Feche a janela ‘Relações’ (Relationships) e grave n A partir de agora sempre que se pretendam usar dados das duas tabelas não é necessário voltar a definir os relacionamentos entre elas. � Para fazer alterações nas relações criadas basta abrir a janela ‘Relações’ (Relationships), seleccionar a

relação e com um duplo clique, ou botão direito do rato editar as opções de configuração da relação. INSERIR DADOS Depois de criadas as tabelas e as respectivas relações, considera-se que a estrutura de dados já está devidamente definida de forma a armazenar, de uma forma organizada e coerente, os dados. Nesta etapa pretende-se testar a robustez e validade das restrições criadas, como tal insira dados nas tabelas e verifique se o SGBD se comporta como esperado. Abrir uma tabela para inserir dados – Mercadoria 1. Seleccione a tabela ‘Mercadoria’ a partir da janela ‘Base de Dados’ (Database)

Clique no botão ‘Abrir’ (Open). n Aparece uma janela onde pode inserir dados na tabela. 2. Nesta janela semelhante a uma folha de cálculo, está reflectida a estrutura que foi definida para a tabela.

Cada coluna representa um dos campos da tabela. Se ao introduzir os dados verificar que a largura da coluna não é suficiente pode modificá-la. Para aumentar a largura de um campo (coluna) posicione-se (na barra com o nome dos campos) entre as duas colunas (a que quer aumentar e a que está à sua direita) e faça um duplo clique ou arraste para a direita. 3. Preencha algumas linhas com os dados fornecidos a seguir:

Código da Mercadoria

Designação Largura Descrição Cor Peso m2 (g)

PLV2001

Pura Lã Virgem

2.10

Serra da Estrela

Cinza

1900

SC105 Seda Chinesa 2.00 Padrão “Possec” Azul 550

L1021 Linho 2.50 Linho Fino Castanho 2100

Page 69: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 69

� Problemas:

� Ao tentar introduzir a largura da Seda Chinesa, verificará que surge uma mensagem indicando que o valor tem que ser superior a 2 metros. Foi um lapso na definição da estrutura da tabela e por isso terá que alterá-la colocando 2 como limite mínimo aceitável. Se tiver problemas consulte o capítulo da criação de tabelas.

� Teste a regra da unicidade da chave � Se houver problemas na criação de um registo e pretender anular, carregue na tecla ‘Esc’ para que o registo

não seja gravado. 4. Os dados são gravados logo que um registo tenha sido introduzido.

Não é necessário efectuar a gravação dos dados de forma explicita. Simbologia 1. Cada linha da tabela é designada por ‘registo’.

Um registo contém um valor para cada um dos campos da tabela. 2. Verifique que à esquerda da janela aparece uma marca indicando o registo em que o cursor está

posicionado. Essa marca indica o registo corrente. Seleccione outra linha, verifique que a marca de registo corrente muda para a linha seleccionada.

3. Na parte inferior esquerda da janela aparecem os seguintes botões:

Estes botões permitem também modificar o registo corrente.

À esquerda da janela aparecem outros dois símbolos: n Assinala o registo que está a ser alterado. * Assinala onde pode ser introduzido um novo registo. • � Insira dados na tabela Entidade 1. Siga os mesmos procedimentos indicados para a tabela ‘Mercadoria’. 2. Preencha algumas linhas com os dados fornecidos a seguir.

Tenha em atenção as notas apresentadas a seguir aos dados.

Código Interno NIF Sede Designação Social

1

910 522 793

Guimarães

Corte & Costura

2 910 710 010 Braga Dedal

3 910 110 305 Porto Comércio Internacional de Tecidos

4 910 220 010 Bragança Lãs & Linho

Page 70: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 70

� Problemas: � Cuidado com o campo Código Interno o qual é de preenchimento sequencial automático. Se tiver

problemas consulte o capítulo da criação da tabela e respectivo campo. � Pretende-se que o nome dos campos esteja consoante aparece nesta tabela.

� Insira dados na tabela Representante 1. Siga os procedimentos indicados anteriormente. 2. Preencha algumas linhas com os dados fornecidos a seguir.

IDRepresentante Nome Telefone Cargo Código Interno

1 Joaquim 222 222 222 Vendedor 1

2 Pedro 333 333 333 Vendedor 2

3 José 444 444 444 Vendedor 3

4 Avelino 555 555 555 Vendedor 4

�Teste a Integridade Referencial inserindo uma Código Interno de Entidade que ainda não tenha sido introduzida na tabela Entidade. � Insira dados na tabela Movimento 1. Siga os procedimentos indicados anteriormente. 2. Preencha algumas linhas com os dados fornecidos a seguir.

ID Movimento

Código Código Interno

Data Quantidade Preço m2 Tipo de Movimento

1 PLV2001 4 01-12-2004 8000 10,50 Aquisição

2 SC105 3 18-12-2004 15000 10,00 Aquisição

3 PLV2001 1 19-12-2004 3000 13,50 Venda

4 SC105 1 19-12-2004 6000 16,00 Venda

5 L1021 4 28-12-2004 7000 13,00 Aquisição

6 SC105 2 07-01-2005 4000 16,50 Venda

7 L1021 2 07-01-2005 3000 16,00 Venda

8 L1021 3 10-01-2005 4000 15,00 Venda

9 L1021 1 18-01-2005 3500 15,00 Aquisição

10 PLV2001 1 19-01-2005 3700 15,00 Venda

11 PLV2001 1 25-01-2005 4000 20,00 Venda

Page 71: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 71

�Verifique se a opção ‘Propagar actualização dos campos relacionados’ (Cascade Update Related Fields) funciona. Para tal sugere-se que:

1. Seleccione a relação entre o Movimento e a Mercadoria no quadro das relações (ver capitulo referente às Relações)

2. Clicando com o botão direito sobre a relação seleccione a opção ’Editar relação’ (Edit Relatinship), desta forma acede às opções da respectiva criação

3. Deseleccione a opção Propagar actualização dos campos relacionados (Cascade Update Related Fields) (se estiver seleccionada)

4. Feche a janela e grave as relações 5. Na tabela Mercadoria altere o código da Seda Chinesa de SC105 para SC1005 6. Ao gravar esta alteração, o Access não permite dando uma mensagem de erro onde indica que

não pode alterar um código que está a ser referenciada na tabela Movimento. Faz sentido, pois é função de um SGBD garantir a integridade referencial !

7. Anule a alteração e regresse às relações (passo 1 e 2) 8. Desta vez seleccione a opção Propagar actualização dos campos relacionados (Cascade Update

Related Fields) 9. Feche a janela e grave as relações 10. De volta à tabela Mercadoria altere o código da Seda Chinesa de SC105 para SC1005 11. Quando grava o Access não revela haver problema. Então o que terá acontecido? Não terá

obedecido à Integridade Referencial? 12. Se abrir a tabela Movimento poderá verificar que os movimentos que envolviam este produto foram

alterados. Conclusão: se a opção ‘Propagar actualização dos campos relacionados’ (Cascade Update Related Fields) estiver activada, qualquer alteração que seja feita na tabela onde o atributo da relação é chave primária (código da mercadoria da tabela Mercadoria) é repercutida na tabela onde se encontra o atributo como chave estrangeira (código da mercadoria na tabela Movimento). Quando esta opção não está activa o Access não tem permissão para repercutir alterações ao longo da relação, logo limita-se a estabelecer a Integridade Referencial.

� O que pensa da opção ‘Propagar eliminação dos registos relacionados’ (Cascade Delete Related Records) �Introduza um novo registo com dados que não correspondam ao tipo do campo. Por exemplo texto num campo numérico ou números decimais num campo numérico do tipo inteiro. Veja as mensagens que obtém do Access. Carregue na tecla ‘Esc’ por forma a que o registo não seja gravado.

Page 72: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 72

MANIPULAÇÃO DE REGISTOS Manter uma base de dados actualizada é a finalidade de qualquer sistema. As operações associadas à manipulação de registos permitirão a actualização de dados: inserção, alteração, remoção e pesquisa! Pesquisar registos numa tabela

Para averiguar se um determinado registo existe numa tabela, por forma a fazer alterações, remoções, ou a respectiva inserção (no caso de não existir), pode-se recorrer a um método básico de pesquisa – Localizar (Find).

1. Abra a tabela onde pretende fazer a pesquisa. Para isso, na janela de ’Base de Dados’ (Database), seleccione a tabela e carregue em ‘Abrir’ (Open)

2. Posicione o rato na coluna do atributo no qual pretende realizar a sua pesquisa e carregue no botão

‘Localizar’ (Find’). n Aparece um diálogo onde são colocadas as restrições de pesquisa. A caixa ‘Localizar no campo’ (Find What:) indica o valor que pretende pesquisar, repare que o elemento ‘Coincidir’ (Look In) aparece com o campo sobre o qual vai fazer a pesquisa. � Se pretender alterar o campo sobre o qual vai realizar a pesquisa, tendo a janela de ‘Localizar’ (Find) aberta, bastará clicar sobre a respectiva coluna da tabela sem ter necessidade de fechar a janela de ‘Localizar’ (Find). � Para proceder à pesquisa bastará clicar sucessivamente em ’Localizar seguinte’ (Find Next) até não haver mais registos que se enquadrem no critério de pesquisa, momento em que o Access emitirá um aviso. Alterar registos duma tabela Após a pesquisa de um registo a alterar, o cursor posicionar-se-á sobre ele. A alteração do registo consistirá na edição do valor de cada campo (clique sobre a célula) e na inserção de um novo valor. Copiar registos duma tabela Para facilitar a inserção de registos muito semelhantes poderá optar pela cópia integral e depois realizar as devidas alterações. 1. Seleccione o registo padrão (registo a copiar), para o que necessitará de posicionar o cursor na coluna

cinzenta ao lado esquerdo do respectivo registo. 2. Copie o registo - Clique no botão ‘Copiar’ (Copy) ou carregue em simultâneo Ctrl+C. 3. Faça a cópia do registo criando um novo - Seleccione a linha em branco que se encontra a seguir ao ultimo

registo preenchido. Clique no botão ‘Colar’ (Paste) ou carregue em simultâneo Ctrl+V. 4. Altere o registo 5. Grave o novo registo - ‘Registos | Guardar registo’ (Records | Save Record) ou carregue em simultâneo em

Shift+Enter.

Page 73: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 73

� Problemas: � É importante não esquecer que as tabelas têm chaves que identificam univocamente os registos e

como tal não devem ter valores iguais para registos distintos. Se fizer a cópia de um registo e não alterar o valor do campo correspondente ao atributo chave, o SGBD não consentirá a nova inserção.

Apagar registos duma tabela 1. Seleccionar o registo a apagar – Clique com o rato sobre a zona cinzenta à esquerda do respectivo registo Apague, clicando com o botão do lado direito e seleccionando ‘Eliminar registo’ (Delete Record) ou premindo a tecla ‘Delete’ do teclado. n Aparece uma caixa com uma mensagem onde se pede a confirmação da operação. � O SGBD poderá impedir a remoção de um determinado registo se verificarem cumulativamente as seguintes condições:

� existir uma relação com a integridade referencial activa, entre atributos da tabela em questão e outras tabelas

� se o valor do atributo relacionado se encontrar referido nas outras tabelas onde constitui chave estrangeira

� e, se a integridade referencial criada não o foi por forma a permitir uma remoção em cascata, i.e., removendo o registo remove todos os que estiverem a ele associados (ver Criar Relacionamentos entre Tabelas).

� Para seleccionar mais que um registo da tabela deverá:

� Se os registos forem contíguos – clicar com o rato na barra lateral esquerda ao lado do registo a seleccionar, e premindo continuamente a tecla Shift seleccione o último registo do grupo a seleccionar. Neste caso de imediato verificará que todos os registos intermédios ficarão seleccionados.

� Se os registos estiverem dispersos na tabela deverá seleccionar os registos através do clique na barra lateral cinzenta mas premindo continuamente a tecla Ctrl.

TERMINAR O TRABALHO Sempre que se realiza qualquer alteração no Access, contrariamente ao que sucede noutras aplicações, o ficheiro é gravado, salvaguardando o trabalho feito em cada momento. Por isso, se ao fechar um ficheiro de Access ele não pedir para gravar é porque todas as alterações estavam gravadas, não havendo necessidade do utilizador se preocupar. 1. Para fechar a base de dados basta fechar a janela ‘Base de Dados’ (Database) ou seleccionar ‘Ficheiro |

Fechar’ (File | Close). Para sair do Access seleccionar ‘Ficheiro | Sair’ (File | Exit) ou fechar a janela do Microsoft Access. Pode também fazer apenas o descrito no ponto seguinte.

2. Seleccionar ‘Ficheiro | Sair’ (File | Exit) ou fechar a janela do Microsoft Access.

Desta forma fecha a Base de Dados e sai do Access.

Page 74: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 74

8. ANEXO Conceitos relacionados com tabelas . Atributo ou Campo (Field) – cada informação específica que se pretende registar, por exemplo o número e nome do empregado. . Tipo de Campo (Data Type) – natureza da informação que pode ser armazenada no respectivo campo e bem como o espaço reservado para a conter. . Campo Chave (Primary Key) – campo utilizado para ordenar as listagens dos dados ou para servir de base ao relacionamento entre tabelas. Este campo deverá ser escolhido entre os campos em que não possa existir a mesma informação em dois registos diferentes. . Tuplo ou registo (Record) – conjunto de campos que estão de algum modo relacionados uns com os outros. A informação de cada empregado é um registo. . Relacionamento entre tabelas (Relationship) – para evitar repetições desnecessárias pode utilizar-se mais que uma tabela. Há então que estabelecer relacionamentos entre elas. . Estrutura (Structure) – após a escolha do nome e características dos campos, definição dos campos chave, etc., dizemos que está definida a estrutura da base de dados. Tipos de Dados . Text – um campo deste tipo pode ser usado para conter sequências de até 255 caracteres. Esses caracteres podem ser constituídos por letras, números, símbolos de escrita, etc. . Number – os campos deste tipo são utilizados para conter dados numéricos que podem ser utilizados em operações matemáticas. A propriedade Field Size de um campo Number pode assumir os seguintes valores: . Byte - pode ser usado para armazenar números de 0 a 255 e ocupa um byte. . Integer - ocupa dois bytes e pode ser utilizado para armazenar números inteiros compreendidos entre -32768 e 32767. . Long Integer - ocupa 4 bytes e pode ser usado para armazenar números inteiros entre -2,147,483,648 e 2,147,483,647 (sem fracções). . Single - ocupa 4 bytes e pode armazenar números entre -3.4x1038 a 3.4x1038 até 7 casas decimais. . Double - ocupa 8 bytes, podendo armazenar número entre -1.797x10308 a 1.797x10380 até 15 casas decimais. . Currency – utilizado para valores que envolvam cálculos monetários. . AutoNumber – campo que cria automaticamente uma numeração sequencial para os registos, começando pelo número 1. . Date/Time - utilizado para armazenar datas e horas. . Yes/No – trata-se de campos que podem conter apenas um de dois valores. A propriedade Formar permite escolher entre Yes/No, True/False, On/Off ou outros valores definidos pelo utilizador.

Page 75: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 75

. Memo – campos usados para conter descrições mais longas e menos estruturadas. Um campo Memo pode conter cerca de 65,535 caracteres. . OLE Object – campos especiais que permitem associar a cada registo um trabalho (objecto) executado por outra qualquer aplicação para Windows. Por exemplo: fotografias, gráficos, imagens, etc. . Hyperlink – campo utilizado para armazenar endereços da World Wide Web (WWW). Composto por texto ou por combinações de texto e número. Pode conter até 2048 caracteres. Propriedades do campo . Field Size - Comprimento máximo dum campo do tipo texto ou o tipo de número (Number). . Format - Forma como os dados são visualizados; é possível utilizar formatações pré-definidas ou construir as próprias formatações. . Decimal Places - Número de casas decimais à direita do ponto decimal. . Input Mask - Caracteres de formatação para a entrada de dados; podem ser usadas máscaras pré-definidas ou construir máscaras próprias. . Caption – Por defeito sempre que o campo é exibido num ecran, relatório, tabela, query,... aparece com o nome com o qual o campo foi definido. Contudo se esta propriedade contiver algum valor, será esse valor a designação que o campo irá assumir sempre que for exibido. . Default Value - Valor dum campo quando um novo registo é criado. . Validation Rule - Expressão que define regras para a introdução de dados. . Validation Text - Texto que aparece quando dados incorrectos são introduzidos num campo. . Required - Determina se é obrigatório ou não o preenchimento do campo. . Allow Zero Lenght - Determina se é permitido ou não a introdução de texto de comprimento zero; representado pela introdução de “”. . Indexed - Indicação se a tabela é ou não indexada pelo campo. Estes índices permitem acelerar a busca e ordenação.

Page 76: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 76

Relações (‘Relationships’) . Um-para-um (One to One) - se a um registo da tabela Departamento corresponde um só registo da tabela Empregado. Para criar uma associação deste tipo, e por não serem muito comuns, o Access exige que os dois a relacionar sejam chaves ou tenham ‘Unique Indexes’. . Um-para-muitos (One to Many) - se um registo da tabela Departamento corresponde a mais que um registo da tabela Empregado, mas a um registo desta tabela só pode corresponder um registo da tabela Departamento. Este é o tipo de relacionamento por defeito atribuído pelo Access quando se associam duas tabelas. . Impor integridade referencial (Enforce Referencial Integrity) - o Access pode evitar que a informação observada de um ponto de vista global fique inconsistente, não permitindo ao utilizador apagar ou acrescentar informação numa tabela de modo não controlado relativamente à outra tabela. Não esquecer que após o estabelecimento do relacionamento, as tabelas deixam de ser independentes uma da outra. Deste modo o Access emite uma mensagem e não permite alterações nos seguintes casos: . Adicionar um registo a uma tabela relacionada (Empregado) sem existir um registo correspondente na tabela principal (Departamento); . Apagar um registo de uma tabela principal (Departamento) se existir pelo menos uma referência a ele, na tabela relacionada (Empregado). . Tabela principal - tabela Departamento porque contém o campo chave para ligar à tabela Empregado. Deverá ser indicado o campo que vai servir para relacionar as duas tabelas. . Tabela relacionada - tabela Empregado porque contém um campo (chave estrangeira) com informação igual à chave primária da tabela principal, através do qual vai ficar relacionado com esta. Deverá ser indicado o nome do campo correspondente ao campo indicado na tabela principal. . Propagar actualização dos campos relacionados (Cascade Update Related Fields) - faz com que alterações no valor dum campo numa tabela principal automaticamente altere todos os valores correspondentes na tabela ou tabelas relacionadas. . Propagar eliminação dos registos relacionados (Cascade Delete Related Records) - faz com que ao apagar um valor numa tabela principal, sejam automaticamente apagados todos os registos na tabela ou tabelas relacionadas.

Page 77: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 77

DOCUMENTO DE APOIO N.º 5

Tema:

Utilização do Microsoft Access: Consultas de Selecção

1. OBJECTIVOS Após ter terminado o plano de trabalho proposto no último documento de apoio, constatará que a estrutura de dados do sistema da ARTECIDOS já está definida, i.e., já se encontram criadas as tabelas e as respectivas relações. Porém qual a finalidade de possuir os dados armazenados senão formos capazes de lhe extrair a informação relevante para o negócio da empresa? Seria o mesmo que possuir um arquivo com todas as informações de compras e vendas de uma empresa e ser incapaz de responder à questão: quanto ainda temos em armazém? Quem é o nosso maior fornecedor da mercadoria X? Assim sendo, o objectivo deste documento de apoio é precisamente o de ensinar a extrair informação das tabelas através do tratamento dos respectivos dados. O questionar da base de dados tem subjacente a criação de uma consulta (query). Mais concretamente neste módulo irão aprender:

• A criar consulta simples com uma ou mais tabelas • A alterar as condições de uma consulta • Criar novos campos com a informação que pretendemos obter dos dados constantes das tabelas o Criação de campos calculados o Criação de campos com informação estatística • Criação de consultas com agrupamentos • Manipulação de consultas com agrupamentos

Page 78: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 78

2. IMPLEMENTAÇÃO EM ACCESS – PARTE II � Antes de iniciar a Parte II verifique se concluiu a Parte I com os seguintes dados nas tabelas Mercadoria, Entidade, Representante e Movimento. Para tal necessita de abrir o ficheiro de trabalho que criou na última aula – ARTECIDOS.mdb. MERCADORIA

Código da Mercadoria

Designação Largura Descrição Cor Peso m2 (g)

PLV2001 Pura Lã Virgem 2.10 Serra da Estrela Cinza 1900

SC105 Seda Chinesa 2.00 Padrão “Possec” Azul 550

L1021 Linho 2.50 Linho Fino Castanho 2100

ENTIDADE

Código Interno NIF Sede Designação Social

1 910 522 793 Guimarães Corte & Costura

2 910 710 010 Braga Dedal

3 910 110 305 Porto Comércio Internacional de Tecidos

4 910 220 010 Bragança Lãs & Linho

REPRESENTANTE

IDRepresentante Nome Telefone Cargo Código Interno

1 Joaquim 222 222 222 Vendedor 1

2 Pedro 333 333 333 Vendedor 2

3 José 444 444 444 Vendedor 3

4 Avelino 555 555 555 Vendedor 4

MOVIMENTO

ID Movimento

Código Código Interno

Data Quantidade Preço m2 Tipo de Movimento

1 PLV2001 4 01-12-2004 8000 10,50 Aquisição

2 SC105 3 18-12-2004 15000 10,00 Aquisição

3 PLV2001 1 19-12-2004 3000 13,50 Venda

4 SC105 1 19-12-2004 6000 16,00 Venda

5 L1021 4 28-12-2004 7000 13,00 Aquisição

6 SC105 2 07-01-2005 4000 16,50 Venda

7 L1021 2 07-01-2005 3000 16,00 Venda

8 L1021 3 10-01-2005 4000 15,00 Venda

9 L1021 1 18-01-2005 3500 15,00 Aquisição

10 PLV2001 1 19-01-2005 3700 15,00 Venda

11 PLV2001 1 25-01-2005 4000 20,00 Venda

Page 79: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 79

DEFINIÇÃO DE CONSULTA Existem diversos tipos de consultas (queries) com finalidades distintas, contudo todas elas têm como função seleccionar um conjunto de registos da Base de Dados mediante os critérios necessários para responder à questão em causa. Assim, qualquer consulta permite:

o seleccionar um conjunto de atributos (ou colunas) de uma ou várias tabelas; o filtrar a informação através de um conjunto de condições; o criar novos campos calculados; o e efectuar operações estatísticas com os dados.

A diferença entre os diferentes tipos de consultas reside na finalidade com que é feita a selecção, assim:

• Consulta de Selecção (Select Query) – é a mais utilizada de todos os tipos de queries disponibilizadas pelo Access e tem como finalidade exibir os dados seleccionados;

• Consulta de Acção (Action Query) – pode ser de uma dos seguintes quatro tipos:

o Consulta para Criação de uma Tabela (Make Table Query) – cria uma nova tabela na base de dados com os registos seleccionados;

o Consulta de Actualização de Dados (Update Query) – actualiza o bloco de registos

seleccionados através da alteração em massa do valor de um determinado campo;

o Consulta para Adicionar Registos (Append Query) – adiciona os registos seleccionados à tabela;

o Consulta para Eliminar Registos (Delete Query) – apaga os registos seleccionados da tabela.

Page 80: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 80

CRIAÇÃO DE UMA CONSULTA DE SELECÇÃO (SELECT QUERY) A Tabela MERCADORIA contém toda a informação relacionada com as mercadorias

comercializadas pela ARTECIDOS. Contudo, é necessário saber qual o peso por m2 e largura de cada tipo de tecido. Para identificar o tipo de tecido basta saber a sua designação. Pretende-se portanto obter um resultado da tabela seguinte:

Designação Largura Peso m2 (g)

Pura Lã Virgem

2.10

1900

Seda Chinesa 2.00 550

Linho 2.50 2100

1. Seleccione o separador ‘consultas’ (Queries) da janela ‘Base de Dados’.

Clique em ‘Novo’ (New) para criar uma nova consulta. Seleccione de seguida ‘Vista de Estrutura’ (Design View) e clique no botão ‘OK’.

2. No diálogo que aparece (‘Mostrar tabela’), aparecem todas as tabelas da base de dados. Deverá seleccionar

as tabelas necessárias para proceder à consulta, i.e., a tabela MERCADORIA, e clique em ‘Adicionar’ (Add). Feche a janela ou clique no botão ‘Fechar’ (Close). 3. Na janela que se lhe depara deverá desenhar a Consulta’. Na parte de cima da janela aparece a tabela (ou tabelas como veremos mais à frente) que participa na Consulta’. Na parte de baixo encontra uma grelha que serve para definir as condições da Consulta. 4. Clique sobre a linha ‘Campo’ (Field) da primeira coluna da grelha. � Aparece uma ‘Caixa de combinação’ (ComboBox) contendo os campos da tabela. Escolha o campo ‘Designação’ – um dos campos que pretende visualizar na selecção. � Existem dois outros processos de seleccionar os campos: pode arrastar o campo pretendido para a linha ‘Campo’ (Field) ou pode fazer um duplo clique sobre o campo pretendido (este será automaticamente colocado na linha ‘Campo’). Escolha também os campos ‘Largura’ e ‘Peso m2 (g)’, campos também eles necessários para o pedido realizado.

Page 81: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 81

5. Seleccione ‘Ver | Vista de folha de dados’ (View | Datasheet View) ou clique no botão ‘Executar’ (Run) da

Barra de ferramentas (em forma de ponto de exclamação). � Aparece o resultado da execução da Consulta sob a forma de uma folha (semelhante à folha de dados).

O resultado é uma nova tabela contendo apenas os campos pretendidos. � A tabela que resulta da execução da Consulta é temporária. É criada com a execução da Consulta e desaparece quando se fecha a Consulta.

6. Para gravar a Consulta, seleccione no Menu ‘Ficheiro | Guardar’ (File | Save) ou clique no botão ‘Guardar’ (Save). Em ‘Nome da consulta’ (Query Name) coloque o nome: ‘Peso Tecido’ e clique em ‘OK’. Feche a janela que contem a consulta.

7. Seleccione o separador Consultas da janela ‘Base de Dados’

Verifique que aparece a Consulta criada. Clique no botão ‘Abrir’ (Open). A Consulta é de novo executada e aparece de novo a janela com o resultado da Consulta. Feche novamente a Consulta.

� Atenção: Quando se grava uma Consulta não está a ser gravado o resultado da Consulta mas antes a sua definição. ADICIONAR CONDIÇÕES A UMA CONSULTA Neste momento a Consulta definida permite consultar a informação de largura e peso relativa a

todos os tecidos comercializados pela organização. Suponha agora que pretende saber quais os tecidos cuja largura é superior a 2.00 e o peso superior a 2000g, e para estas qual a respectiva cor, obtendo assim o seguinte resultado:

Designação Largura Cor Peso m2 (g)

Linho 2.50 Castanho 2100

1. Para modificar a Consulta ‘Peso Tecido’ seleccione o separador Consultas da janela ‘Base de Dados’.

Clique no botão ‘Estrutura’ (Design). � Aparece novamente a janela de criação de Consultas. 2. Adicione à grelha o campo ‘Cor’ da tabela MERCADORIA, para que assim também este campo seja exibido

aquando da execução da consulta.

Page 82: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 82

3. É importante agora impor as restrições de selecção dos registos, que são: largura superior a 2.00 e peso

superior a 2000 g. Para adicionar as restrições utiliza-se a linha ‘Critério’ (Criteria) de cada campo. Assim, na coluna do campo ‘Largura’ na linha ‘Critério’ deverá escrever o critério: > 2, e na coluna do campo ‘Peso m2 (g)’ na mesma linha deverá inserir: >2000.

4. Execute a Consulta.

Aparece apenas um registo, ou seja, aqueles que obedecem às restrições impostas. � Se colocar as condições na mesma linha ‘Critério’ então só serão apresentados os registos que respeitem a primeira ‘e’ a segunda condição. Se pelo contrário colocar as condições em diferentes linhas ‘Critério’ essas serão respeitadas disjuntamente, i.e., obedecendo à operação lógica ‘ou’. 5. Feche a janela e grave as alterações. CRIAR CONSULTAS COM VÁRIAS TABELAS Pretende-se saber o Nome e Telefone do representante de cada organização. Porém da

organização pretende-se saber a respectiva Designação e Sede. Deverá obter-se a tabela seguinte:

Nome Telefone Designação Social Sede

Joaquim

222 222 222

Corte & Costura

Guimarães

Pedro 333 333 333 Dedal Braga

José 444 444 444 Comércio Internacional de Tecidos Porto

Avelino 555 555 555 Lãs & Linho Bragança

1. Seleccione o separador Consultas da janela ‘Base de Dados’.

Clique em ‘Novo’ (New) para criar uma nova Consulta. Seleccione de seguida ‘Vista de estrutura’ (Design View) e clique no botão ‘OK’.

2. Seleccione as tabelas ‘ENTIDADE’ e ‘REPRESENTANTE’ necessárias à exibição da informação solicitada.

� Aparece a janela para definição da Consulta com as tabelas e respectivo relacionamento (definido anteriormente em ‘Relações’).

3. Seleccione para a linha ‘Campo’ os seguintes campos das tabelas:

� Representante: Nome e Telefone � Entidade: Designação Social e Sede

Execute a Consulta. 4. Grave a Consulta com o nome ‘Contactos’ e clique em ‘OK’. Feche a Consulta.

Page 83: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 83

CRIAR CONSULTAS COM CAMPOS CALCULADOS A tabela Movimentos possui os movimentos realizados e sobre estes a quantidade e o preço

unitário. Sabendo que os preços apresentados não incluem IVA e que a taxa praticada para estes produtos é de 19%, pretende-se saber o montante envolvido em cada transacção com e sem IVA. Pretende-se ainda conhecer o nome da empresa que efectuou a transacção.

Mercadoria Designação Social Quantidade Preço m2 Valor Sem IVA Valor Com IVA

PLV2001 Lãs & Linho 8000 10,50 84 000 99 960

SC105 Comércio Internacional de Tecidos

15000 10,00 150 000 178 500

PLV2001 Corte & Costura 3000 13,50 40 500 48 195

SC105 Corte & Costura 6000 16,00 96 000 114 240

L1021 Lãs & Linho 7000 13,00 91 000 108 290

SC105 Dedal 4000 16,50 66 000 78 540

L1021 Dedal 3000 16,00 48 000 57 120

L1021 Comércio Internacional de Tecidos

4000 15,00 60 000 71 400

L1021 Corte & Costura 3500 15,00 52 500 62 475

PLV2001 Corte & Costura 3700 15,00 55 500 66 045

PLV2001 Corte & Costura 4000 20,00 80 000 95 200

1. Seleccione o separador Consultas da janela ‘Base de Dados’.

Clique em ‘Novo’ (New) para criar uma nova Consulta. Seleccione de seguida ‘Vista de estrutura’ (Design View) e clique no botão ‘OK’.

2. Seleccione as tabelas ‘MOVIMENTO’ e ‘ENTIDADE’ � Aparece a janela para definição da Consulta com as tabelas e respectivo relacionamento (definido anteriormente em ‘Relações’). 3. Seleccione para a linha ‘Campo’ os seguintes campos das tabelas:

� Entidade: Designação Social � Movimento: Código da Mercadoria, Preço m2, Quantidade

4. Nesta Consulta pretende-se calcular o valor da transacção com e sem IVA Não existe na tabela nenhum campo que contenha estes valores, como tal serão criados dois novos campos na própria Consulta.

Page 84: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 84

• Na primeira coluna disponível na linha ‘Campo’ escreva:

SemIVA:[Quantidade]*[Preço m2]

• Na segunda coluna disponível na linha ‘Campo’ escreva: ComIVA:[Quantidade]*[Preço m2] *1.19 � SemIVA e ComIVA serão os nomes dados aos novos campos (colunas). Os ‘:’ significam que os valores do campo serão o resultado do cálculo da expressão que se lhe segue.

5. Execute a Consulta. � Aparecem duas novas colunas! Contudo o nome não corresponde exactamente aos exibidos na tabela pretendida. Faça essa alteração!!! � Vimos que é possível acrescentar à Consulta um campo que não exista em nenhuma das tabelas da base de

dados e cujo conteúdo seja calculado no momento da execução da consulta. Nestas situações, diz-se que se trata de um campo calculado.

6. Verifique que a formatação do campo calculado não é igual à dos campos envolvidos no seu cálculo, até

porque estes também são diferentes. Volte ao ecrã de definição da Consulta. Seleccione ‘Campo’ dos campos calculados e clique no botão ‘Propriedades’ (situado na Barra de ferramentas) ou seleccione a opção ‘Propriedades’ no Menu ‘Ver’. � Aparece uma nova janela com as propriedades do campo. Aqui poderá definir propriedades para o campo 7. Grave a Consulta com o nome ‘Montante Movimentos’ e clique em ‘OK’. Feche a Consulta.

Page 85: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 85

CALCULAR TOTAIS Como foi dito anteriormente, as consultas podem também ser utilizadas para efectuar operações

estatísticas sobre os dados. Considere agora o exercício de calcular o número total de transacções, a soma das quantidades e o preço médio unitário sem IVA de cada transacção. Deverá obter-se o seguinte:

1. Seleccione o separador Consultas.

Crie uma nova Consulta. Adicione a tabela ‘MOVIMENTO’.

2. Pretende-se calcular o número total de transacções, a soma das quantidades e o preço médio unitário sem

IVA de transacção. Seleccione para a linha ‘Campo’ os campos ‘ID Movimento’, ‘Quantidade’ e ‘Preço m2’.

3. Seleccione no Menu ‘Ver’ a opção ‘Totais’ (Totals) ou carregue no botão ‘Totais’ ( ? na Barra de ferramentas).

� Aparece uma nova linha com a designação ‘Total’, que tornará possível a utilização de funções como, por exemplo, somatório e média aritmética.

4. Para a coluna ‘ID Movimento’ na linha ‘Total’ seleccione ‘Contar’ (Count) (use a ‘Caixa de combinação’).

Para a coluna ‘Quantidade’ na linha ‘Total’ seleccione ‘Soma’ (Sum). Para a coluna ‘Preço m2’ na linha ‘Total’ seleccione ‘Média’ (Avg).

5. Execute a Consulta. 6. Grave a Consulta com o nome ‘Preço Médio’ e clique em ‘OK’. Feche a janela.

Page 86: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 86

CALCULAR TOTAIS COM AGRUPAMENTOS No exercício anterior calculámos o valor médio de transacção das mercadorias, contudo

interessa-nos saber o número de transacções e respectivo valor médio por mercadoria Como agrupar a informação?

1. Seleccione o separador Consultas.

Crie uma nova Consulta. Adicione as tabelas ‘MOVIMENTO’ e ‘MERCADORIA’.

2. Pretende-se calcular o número total de transacções (Contar de ‘ID Movimento’) e a média de ‘Preço m2’ por

‘Mercadoria’. Seleccione para a linha ‘Campo’ os campos ‘ID Movimento’ e ‘Preço m2’ da tabela MOVIMENTO e o campo ’Designação’ da tabela MERCADORIA.

3. Active a linha ‘Totais’ (seleccionando o Menu ‘Vier | Totais’ ou carregando no botão ‘Totais’- ‘( ? na Barra de

ferramentas). Para a coluna ‘ID Movimento’ na linha ‘Total’ seleccione a função ‘Contar’. Para a coluna ‘Preço m2’ na linha ‘Total’ seleccione a função ‘média’. Para a coluna ‘Designação’ na linha ‘Total’ seleccione ‘Agrupar por’ (Group By).

4. Execute a Consulta.

� Verifique que obtém o número e o valor médio unitário de cada transacção por cada mercadoria. 5. Grave a Consulta com o nome ‘Preço Médio por Mercadoria’ e clique em ‘OK’. Feche a janela.

Page 87: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 87

CALCULAR TOTAIS COM AGRUPAMENTOS, CONDIÇÕES E CAMPOS CALCULADOS O objectivo neste momento é calcular o valor médio do montante sem IVA de cada transacção,

agrupado por mercadoria, mas só deverão ser considerados como válidos os movimentos efectuados no ano 2005.

1. Seleccione o separador Consultas. Crie uma nova Consulta.

Adicione as tabelas ‘MOVIMENTO’ e ‘MERCADORIA’. 2. Pretende-se obter o valor médio do montante sem IVA agrupado por mercadoria. Seleccione no Menu ‘Ver’ a

opção ‘Totais’ (Totals) ou carregue no botão ‘Totais’ na barra de ferramentas. 3. Para agrupar por Mercadoria seleccione o campo Designação da tabela MERCADORIA e na linha Total

decida-se pela opção Agrupado por 4. Para calcular o montante de cada transacção crie um campo calculado para o efeito. 5. Para calcular a média – seleccione na coluna do campo calculado, linha Total a função média 6. Para restringir estes cálculos aos registos referentes ao ano 2005. Insira o campo data da tabela

MOVIMENTO na grelha e na respectiva linha Critério escreva: ano([Data])=2005. Escolha a opção ‘Onde’ (Where) na linha Total.

7. Execute a Consulta e veja o resultado. 8. Grave a Consulta com o nome ’Valores Médios por Agrupamento’ e clique em ‘OK’. Altere a Consulta no sentido de agrupar por mercadoria e entidade envolvida na transacção (acrescente a tabela ENTIDADE e o campo ‘Designação social’. Grave a consulta.

Page 88: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 88

CRIAR UMA CONSULTA DE REFERÊNCIA CRUZADA’ Pretende-se obter a mesma informação, isto é, calcular o valor médio do montante sem IVA de

cada transacção, agrupado por mercadoria e entidade fornecedora/cliente dos movimentos efectuados no ano 2005, mas com uma apresentação diferente, tipo de Folha de Cálculo.

Para resolver esta questão iremos utilizar um outro tipo de consultas disponibilizadas pelo Access - as consultas de referência cruzada (queries Crosstab). Este tipo de consultas permite cruzar a informação numa tabela, com os campos em linhas e colunas, com uma apresentação típica de Folha de Cálculo, composta por: . Título da linha (Row Heading) – campo cujo conteúdo vai ser o cabeçalho das linhas. . Cabeçalho da coluna (Column Heading) – campo cujo conteúdo vai ser o cabeçalho das colunas. . Valor (Value) – campo cujo total, média, etc., vai aparecer na intersecção das linhas com as colunas. 1. Abra a consulta criada no exercício anterior, com o nome ’Valores médios por agrupamento’.

Pretende-se agora utilizar os agrupamentos anteriores para explorar a ‘consulta de referência cruzada’.

2. Clique em ‘Vista de estrutura’. 3. Seleccione no Menu ‘Consulta | Consulta de referência cruzada’ (Query | Crosstab Query) ou clique no botão

‘Consulta de referência cruzada’ situado na Barra de ferramentas. � Aparece uma nova linha ‘Referência cruzada’ na janela de definição da consulta, a seguir à linha ‘Total’. 4. No campo ‘Designação’ seleccione ‘Agrupado por’ na linha ‘Total’ e Cabeçalho de coluna’ na linha

‘Referência cruzada’. No campo ‘Designação Social’ seleccione ‘Agrupado por’ na linha ‘Total’ e ‘título da linha’ na linha ‘Referência cruzada’. No campo calculado seleccione ‘média’ na linha ‘Total’ e ‘Valor’ na linha ‘‘Referência cruzada’.

5. Execute a Consulta.

� Obtém-se assim uma tabela onde cada célula traduz o valor médio transaccionado de cada mercadoria por entidade.

6. Utilize o comando ‘Guardar como’ (Save As) no Menu Ficheiro (File) e grave a Consulta com o nome ‘Valores Médios com Agrupamento - Referência cruzada’ e clique em ‘OK’.

7. Seleccionar ‘Ficheiro | Sair’ (File | Exit) ou fechar a janela do Microsoft Access.

Desta forma fecha a Base de Dados e sai do Access.

Page 89: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 89

DOCUMENTO DE APOIO N.º 6

Tema:

Utilização do Microsoft Access: Relatórios e Formulários

O presente módulo irá incidir de uma forma rápida e sucinta sobre os elementos utilizados para interface: os écrans ou Formulários (Forms) e ainda os Relatórios (Reports). � Os Formulários (Forms) são os elementos de interface com o utilizador disponibilizados pela Base de Dados. Representam écrans onde o utilizador pode inserir, alterar, remover, consultar e pesquisar o conteúdo das tabelas. CRIAR UM FORMULÁRIO – ENTIDADES (COM RECURSO AO ASSISTENTE DE FORMULÁRIOS) 1. Seleccione o separador ‘Formulários’ (Forms) da janela ‘Base de Dados’ (Database). Clique no botão ‘Novo’ (New). � Aparece a caixa de diálogo ‘Novo formulário’ (New Form). Seleccione ‘Assistente de Formulários’ (Form Wizard). Clique no botão ‘OK’. � Nesta caixa tem a hipótese de associar o écran (Formulário) ao conteúdo de uma tabela ou então ao resultado de uma Consulta (Query), ou eventualmente não associar o écran a nenhuma informação. � Se fizer a associação com uma tabela – o formulário irá representar a própria tabela podendo assim directamente alterá-la, inserir novos registos, remover registos,..., i.e., existirá uma relação muito estreita entre o formulário e a tabela para que qualquer alteração, que o utilizador faça no écran, seja automaticamente repercutida na tabela. � Se optar pela associação com uma consulta – será exibido o resultado da execução da consulta, i.e., não existe ligação entre o formulário e as tabelas que eventualmente estejam na origem da consulta. Portanto qualquer alteração que faça no formulário não tem qualquer repercussão sobre as tabelas. Em ‘Tabelas/Consultas’ (Choose the table or query) use a caixa de combinação (Combo Box) para seleccionar a tabela ‘Entidade’. Clique no botão ‘OK’. � Aparece a caixa de diálogo ‘Assistente de formulários’ (Form Wizard). � A utilização do ‘Assistente’ (Wizard) permite criar o formulário através dum processo automático. 2. Em ‘Campos disponíveis:’ (Available-Fields:) clique no botão » para indicar que pretende usar todos os

campos. Repare que todos os campos da tabela aparecem listados. Clique no botão ‘Seguinte >’ (Next >).

Page 90: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 90

3. Seguidamente escolha um dos ‘esquemas’ (layout) disponiveis (sugestão: ‘Colunas’ (Columnar)). Clique no botão ‘Seguinte >’ (Next >).

� Os esquemas (layouts) permitem que o utilizador possa escolher a disposição dos campos no formulário. Seleccionando sucessivamente cada opção disponível poderá visualizar o respectivo esquema. 4. A seguir escolha uma das propostas apresentadas para o fundo.

Clique no botão ‘Seguinte >’ (Next >). � As propostas de fundo, apresentam padrões distintos para embelezarem os formulários: imagens a incorporarem, cores e formatos das letras,.... 5. Em ‘Qual o título que deseja para o formulário?’ (What title do you want for your form?) pode definir o título

que pretende dar ao formulário. Será este título que será exibido sempre que activar o formulário. (Sugestão: ‘Controlo de Entidades’). Clique em ‘Concluir’ (Finish). Veja o resultado obtido.

6. Use os botões da parte inferior esquerda da janela para mudar ou inserir novos registos:

Nota: não esqueça que todas as operações que concretizar têm reflexo imediato na tabela Entidade. CRIAR UM FORMULÁRIO COM SUBFORMULÁRIO – ENTIDADE/MOVIMENTO (USANDO O ASSISTENTE) � Como reparou, um formulário só pode ser associado a uma tabela ou então a uma consulta. Imagine que se pretende ter um formulário com as entidades e respectivos movimentos, e sempre que mudarmos de entidade deveremos visualizar novos movimentos. Isto é, precisamos de consultar simultaneamente duas tabelas: Entidade e Movimento. Como tal não é possível dentro de um único formulário, utilizamos dois, em que um está dentro do outro (Subformulário). Neste caso cada formulário permitirá a consulta dos dados de uma única tabela mas ambos têm que estar bem relacionados para que estando num a visualizar a informação de determinada entidade, o outro exiba unicamente os movimentos dessa entidade. 1. Seleccione o separador ‘Formulários’ (Forms) da janela ‘Base de Dados’ (Database).

Clique no botão ‘Novo’ (New).

Siga os passos indicados no ponto anterior para criar um formulário novamente com a tabela ‘Entidade’. Em ‘Qual o título que deseja para o formulário?’ (What title do you want for your form?), coloque ‘Controlo de Movimentos’ 2. Para introduzir o ‘Subformulário’ vai ser necessário modificar o formulário.

Clique no botão ‘Estrutura’ (Design View) ou seleccione ‘Ver | Vista de estrutura’ (View | Design View). � Aparece a janela para definição do formulário.

Page 91: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 91

3. Alargue a zona de ‘Detalhe’ (Detail) arrastando a barra ‘Rodapé do formulário’ (Form Footer). Active a ‘Caixa de ferramentas’ (Toolbox) com um clique no botão ‘Caixa de ferramentas’ (Toolbox) ou seleccione ‘Ver | Caixa de ferramentas’ (View | Toolbox) (caso não esteja activada).

Verifique se o botão ‘Assistentes de Controlo’ (Control Wizards) está pressionado, caso não esteja clique uma vez com o rato. Seleccione o botão ‘Subformulário/subrelatório’ (Subform/Subreport) da ‘Caixa de ferramentas’ (Toolbox). 4. Na zona de ‘Detalhe’ (Detail) desenhe um rectângulo a toda a largura disponível do formulário. � Aparece a janela ‘Assistente de subformulários’ (Subform/Subreport Wizard). Seleccione ‘Utilizar tabelas e consultas existentes’ (Table/Query). Clique no botão ‘Seguinte >’ (Next >). 5. Seguidamente em ‘Tabelas/Consultas’ (Tables and Queries) seleccione a tabela ‘Movimento’.

Em ‘Campos disponíveis’ (Available Fileds) clique no botão » para seleccionar todos os campos. Clique no botão ‘Seguinte >’ (Next >).

6. A seguir responda à primeira pergunta com ‘Escolher de uma lista’ (Choose from a list).

Seleccione ‘Mostrar MOVIMENTO para cada registo em ENTIDADE usando codigoInterno’ (Show MOVIMENTO for each record in ENTIDADE using codigoInterno). Clique no botão ‘Seguinte >’ (Next >).

� Neste passo está a seleccionar o campo que permitirá fazer a ligação entre os dois formulários. Como as tabelas que lhe estão subjacentes estão ligadas pelo campo codigoInterno, optamos por este campo para relacionar os dois formulários. 7. Para dar o nome ao formulário pode aceitar a sugestão do nome ‘Movimento subform’ ou introduzir um novo

nome que seja elucidativo. Clique em ‘Concluir’ (Finish). Para ver o resultado clique no botão ‘Vista’ (Form View) ou seleccione ‘Ver | Vista de formulário’ (View | Form View).

8. Analise o funcionamento deste tipo de formulário.

Neste formulário visualiza para cada entidade os respectivos movimentos. Utilize os botões do canto inferior esquerdo do formulário e do subformulário para verificar o seu funcionamento. Feche a janela.

Page 92: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 92

MODIFICAR UM FORMULÁRIO � Enquanto que para a criação do formulário beneficiou de um processo de criação automático, se pretender altera-lo terá que o fazer manualmente em ‘Estrutura’ (Design View). Modificar um Formulário – Controlo de Movimentos 1. Seleccione o separador ‘Formulários’ (Forms) da janela ‘Base de Dados’ (Database).

Seleccione o formulário ‘Controlo de Movimentos’. Clique no botão ‘Estrutura’ (Design).

2. Pretende-se colocar uma indicação textual referente à data do dia.

Essa data deverá ser colocada na parte superior do formulário designada por ‘Cabeçalho do formulário’ (Form Header). Se tiver alguma janela de ‘Propriedades’ (Properties) aberta, feche-a. Active a ‘Caixa de ferramentas’ (Toolbox) (caso a ‘Caixa de ferramentas não esteja visivel). Clique no botão ‘Rótulo’ (Label)

3. Leve o cursor até ao ‘Cabeçalho do formulário’ (Form Header) e desenhe um rectângulo. Se necessário arraste a barra cinzenta da zona de ‘Detalhe’ (Detail) para ter espaço no cabeçalho. Dentro do rectângulo escreva “Sistema de Informação da ARTECIDOS”

4. Clique no botão ‘Caixa de texto’ (Text Box). 5. Leve o cursor até ao ‘Cabeçalho do formulário’ (Form Header) e desenhe um rectângulo.

Se necessário arraste a barra cinzenta da zona de ‘Detalhe’ (Detail) para ter espaço no cabeçalho. � Aparecem no ecrã os campos ‘Texto X:’ e ’Independente’ (Unbound). (X representa um número) Clique sobre o campo ‘Texto X’ e substitua por ‘Data’ Clique sobre o campo ‘Independente’ e substitua por ‘=date()’. Se for necessário mova ou altere o tamanho dos dois campos agora criados de modo a melhorar a apresentação. Clique no botão ‘Vista’ (Form View) ou seleccione ‘Ver | Vista de formulário’ (View | Form View). CRIAR UM FORMULÁRIO PARA MANIPULAR OS MOVIMENTOS � A finalidade da criação deste formulário, será a introdução de alguns mecanismos de ajuda à inserção de registos de forma a garantir a integridade referencial e a ser o mais fácil de utilizar possível. Criação de um Formulário para Inserção de Dados – Manipular Movimentos • Crie um formulário para a inserção de movimentos. Aconselha-se a consulta dos passos realizados no

capítulo: ‘Criar um Formulário – Entidades (com recurso ao Assistente de Formulários)’ • Atribua ao formulário o nome: Manipular Movimentos

Page 93: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 93

Modificação de um Formulário – Manipular Movimentos � Pretende-se que o formulário seja automatizado e que fique mais legível pela alteração da forma de inserção/consulta do código da Mercadoria e do código da Entidade. Assim, e não pondo em causa as regras de integridade referencial a que a base de dados definida está sujeita, pretende-se que seja exibida a designação social da empresa em vez do respectivo código, e a designação da mercadoria em vez do código respectivo. 1. Seleccione o separador ‘Formulários’ (Forms) da janela ‘Base de Dados’ (Database).

Seleccione o formulário ‘Manipular Movimentos’. Clique no botão ‘Estrutura’ (Design).

2. Clique no botão ‘Vista de estrutura’ (Design View) ou seleccione ‘Ver | Vista de estrutura’ (View | Form

Design). Pretende-se agora transformar o campo ‘codigo’ e ‘codigoInterno’ em duas ‘Caixas de combinação’ (Combo Box) para facilitar a manipulação dos movimentos.

� Em relação ao campo ‘codigoInterno’ referente à Designação Social da Entidade: 3. Active o botão ‘Assistentes de controlo’ (Control Wizards) da ‘Caixa de Ferramentas’ (Toolbox).

Clique no botão ‘Caixa de combinação’ (Combo Box) da ‘Caixa de Ferramentas’ (Toolbox). Clique no botão ‘Assistentes de controlo’ (Control Wizards) da ‘Caixa de Ferramentas’ (Toolbox)’. (Verifique que os dois botões ficam premidos) Desenhe um rectângulo ao lado do campo codigoInterno.

� Aparece a janela ‘Assistente de Caixas de Combinação’ (Combo Box Wizard). 4. Active a opção ‘Quero que a caixa de combinação pesquise os valores numa tabela ou consulta’ (I want the

combo box to look up the values in a table or query). Clique no botão ‘Seguinte >’ (Next >).

5. A seguir aparece a pergunta ‘Qual a tabela ou consulta que deve fornecer os valores para a caixa de

combinação?’ (Which table or query should provide the values for your combo box?). Seleccione ‘Entidade’. Clique no botão ‘Seguinte >’ (Next >).

6. A seguir deve indicar quais os campos a incluir na ‘Caixa de combinação’ (Combo Box).

Seleccione ‘designaçãoSocial’ em ‘Campos disponíveis’ (Available Fields) fazendo clique no botão ‘>‘. Clique no botão ‘Seguinte >’ (Next >).

7. Seguidamente altere se quiser a largura da coluna da ‘Caixa de combinação’ (Combo Box). Clique no botão

‘Seguinte >’ (Next >).

Page 94: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 94

8. Aparece a seguir uma caixa para indicar a forma de armazenamento dos valores da caixa de combinação. Seleccione a opção ‘Armazenar o valor neste campo’ (Store that value in this field?) Da caixa de combinação escolha ‘codigoInterno’. Clique em ‘Seguinte >’ (Next >).

9. Na caixa seguinte deve colocar a etiqueta a colocar junto da caixa de combinação.

Escreva ‘Entidade’. Clique no botão ‘Concluir’ (Finish). 10. Seleccione os antigos campos ‘codigoInterno’. Carregue na tecla ‘Delete’ para os apagar.

Mova os novos campos para o lugar dos antigos ajustando a sua dimensão. Clique no botão ‘Vista de formulário’ (Form View) para ver o efeito.

� Pode criar uma ‘Caixa de combinação’ (Combo Box) sem utilizar os ‘Assistentes de controlo’ (analise as propriedades dos campos) Para ver a vantagem de utilização duma ‘Caixa de combinação’ (Combo Box) introduza um novo movimento. Verifique a facilidade de introdução do código referente à ‘Entidade’. Feche o formulário. � Em relação ao campo ‘codigo’ da Mercadoria, faça as alterações necessárias para que em vez disso seja exibida a designação da mercadoria. CRIAR UM MENU UTILIZANDO UM FORMULÁRIO � Nem sempre os formulários estão associados a tabelas ou consultas. Um formulário pode não estar associado a dados da base de dados e servir meramente como um écran menu, com um conjunto de botões que disponibilizam todas as funcionalidades do sistema. 1. Pretende-se construir um menu.

Este menu permitirá dar acesso aos vários objectos do Access (Formulários, Consultas) criados até agora de forma simples para qualquer utilizador.

2. Seleccione o separador ‘Formulários’ (Forms) da janela ‘Base de Dados’ (Database).

Crie um novo formulário sem seleccionar nenhuma tabela (escolha ‘Criar formulário na vista de estrutura’). 3. Clique no botão ‘Rótulo’ (Label) da ‘Caixa de ferramentas’ (Toolbox).

Na zona ‘Detalhe’ (Detail) faça um rectângulo. Escreva a palavra ‘Menu’ dentro do rectângulo.

� Se pretender alterar o aspecto do controlo utilize as ‘Propriedades’ (Properties) (clique no botão ‘Propriedades’).

Page 95: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 95

4. Clique no botão ‘Botão de comando’ (Command Button) da ‘Caixa de ferramentas’ (Toolbox). (Verifique se o botão ‘Assistentes de controlo’ (Control Wizards) também está premido). Na zona ‘Detalhe’ (Detail) faça um rectângulo.

� Aparece uma janela ‘Assistente de Botões de Comando’ (Command Button Wizard). A primeira opção de menu que vamos criar é para abrir o formulário ‘Controlo de Entidades’. Em ‘Categorias’ (Categories) seleccione ‘Operações de formulários’ (Form Operations). Em ‘Acções’ (Actions) seleccione ‘Abrir formulário’ (Open Form). Clique no botão ‘Seguinte >’ (Next >). A seguir seleccione o formulário ‘Controlo de Entidades’. Clique no botão ‘Seguinte >’ (Next >). Seleccione a seguir a opção ‘Abrir o formulário e mostrar todos os registos’ (Open the form and show all the records)’ Clique no botão ‘Seguinte >’ (Next >). A seguir seleccione ‘Texto’ (Text) e escreva ‘Gestão de Dados da Entidade’. Clique no botão ‘Seguinte >’ (Next >). Confirme de seguida o nome sugerido para o botão. Clique no botão ‘Concluir’ (Finish). 5. Clique agora no botão ‘Vista de formulário’ (Form View) para ver o resultado.

Clique no botão ‘Gestão de Dados da Entidade’, criado por si. Feche o formulário ‘Controlo de Entidades’.

6. Clique no botão ‘Vista de estrutura’ (Design View).

Faça o mesmo procedimento para os botões: Controlo de Movimentos (formulário – Controlo de Movimentos) Manipulação de Movimentos (formulário – Manipular Movimentos) Consulta de Mercadoria (Consulta – Consulta Parametrizada de Mercadoria) Representantes (Consulta – Contactos) Valores Médios (Consulta – Valores médios com agrupamentos cruzados)

7. Feche a janela do formulário

Guarde o formulário com o nome ‘Menu’.

Page 96: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 96

CRIAR UM RELATÓRIO (REPORT) � Os Relatórios (Reports) têm como função apresentarem a informação disponível nas tabelas em formato de impressão. 1. Seleccione o separador ‘Relatórios’ (Reports) da janela ‘Base de Dados’ (Database).

Clique no botão ‘Novo’ (New). Seleccione a opção ‘Assistente de Relatórios’ (Report Wizard) Seleccione a tabela ‘Movimento’ e clique em ‘OK’

� Também na criação do relatório, à semelhança do formulário, tem hipótese de o relacionar com o resultado de uma consulta ou directamente com o conteúdo de uma tabela. � Aparece a janela ‘Assistente de Relatórios’ (Report Wizard). 2. Em ‘Campos disponíveis’ (Available Fileds) seleccione um a um com o botão '>': IDMovimento, código,

codigolnterno, quantidade, preço. Clique em ‘Seguinte >’ (Next >). 3. Na janela seguinte é possível decidir corno agrupar os dados.

O Assistente sugere o campo código para agrupar, aceite a sugestão e clique em ‘Seguinte >’ (Next >). � É possível apresentar a listagem por agrupamentos. Neste caso apresentar os vários movimentos agrupados por código de mercadoria transaccionada, contudo poderíamos pretender que o relatório agrupasse os movimentos por código interno de entidade, neste caso o campo seleccionado para agrupamento não seria código mas sim codigolnterno. 4. Na janela seguinte é possível decidir como ordenar os dados.

Em ‘1’ escolher o campo ‘IDMovimento’ e manter a ordem ascendente sugerida. � A ordenação dos dados é realizada dentro de cada grupo anteriormente definido e pode ser feita em função de qualquer campo, por ordem ascendente ou descendente. Clique no botão ‘Opções do sumário’ (Summary Options). � Aparece uma nova janela onde é possível indicar como queremos sumariar os dados. � Nesta opção poderemos aplicar algumas funções de cálculo para os campos numéricos, como por exemplo: Máximo (Max), Mínimo (Min), Soma (Sum), Média (Avg), que serão apresentados para cada grupo. Poderemos ainda indicar se se pretende só o cálculo final ('Apenas resumo’ (Summary Only)) ou o cálculo com detalhe sobre as parcelas ('Detalhe e resumo’ (Detail and Summary)), e se pretende saber o peso percentual de cada grupo no montante global (‘Calcular percentagem do total para somas’ (Calculate Percent o f Total for Sums)) Clique em ‘Soma’ (Sum) à frente da quantidade. Clique em ‘Méd’ (Avg) à frente de preço. Em ‘Mostrar’ (Show) indique ‘Detalhe e resumo’ (Detail and Summary) e clique em ‘OK’. Clique em ‘Seguinte >’ (Next >).

Page 97: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 97

5. Na janela seguinte é possível escolher o ‘Esquema’ (layout) e a ‘Orientação’ do relatório. Sugestão: Esquema do tipo ‘Degrau’ (Stepped) e orientação ‘vertical’ (Portrait). Clique em ‘Seguinte >’ (Next >).

6. Na janela seguinte é apresentado um conjunto de sugestões quanto ao estilo de apresentação do relatório.

Escolha uma delas. Clique em ‘Seguinte >’ (Next >)

7. Na janela seguinte é pedido o nome para o relatório.

Sugestão: ‘Listagem de Movimentos por Mercadoria’. Clique em ‘Concluir’ (Finish). 8. Analise o resultado. Este relatório mostra os movimentos agrupados por mercadoria e a quantidade

transaccionada de cada uma destas. Feche a janela.

MODIFICAR UM RELATÓRIO (REPORT) � À semelhança do que acontecia com os formulários, também a alteração de relatórios é um processo manual que só poderá ser realizado em ‘Vista de estrutura’ (Design View). 1. Seleccione o separador ‘Relatórios’ (Reports) da janela ‘Base de Dados’ (Database).

Seleccione o relatório ‘Listagem de Movimentos por Mercadoria’. Clique no botão ‘Estrutura’ (Design).

� Aparece uma janela onde pode alterar manualmente a estrutura do relatório. 2. Vamos aproveitar a definição do relatório já criado para introduzir algumas modificações. Introduzir algumas

alterações quanto à apresentação do relatório. 3. Na zona ‘Rodapé Codigo’ (Codigo Footer) aparece um controlo com ‘Resumo para…’ (Summary of …)

Seleccione esse controlo e carregue na tecla ‘Delete’ para o apagar. Clique no controlo ‘Caixa de texto’ (Text Box) e faça um rectângulo à esquerda da expressão =Média([preço]). Clique sobre a ‘Texto X’ e escreva ‘N° de Movimentos’. Na Caixa de texto (Text Box) substitua ‘Independente’ por =Contar([IDMovimento]). Esta modificação vai permitir saber quantos movimentos houve para este tipo de mercadoria. Substitua ainda o rótulo ‘Média’ por ‘Preço Médio’.

Page 98: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 98

4. Clique no botão ‘Ordenar e agrupar’ (Sorting and Grouping) ou seleccione ‘Ver | Ordenar e agrupar’ (View Sorting and Grouping). Nesta janela é possível modificar os agrupamentos que foram criados, neste exemplo, agrupando agora também por 'codigolnterno'. Veja na parte inferior da janela em ‘Propriedades do grupo’ (Group Properties) as propriedades dos campos ‘codigolnterno’ e ‘código’. Feche a janela ‘Ordenar e agrupar’ (Sorting and Grouping).

5. Introduza as modificações que considerar úteis para melhorar a leitura do relatório.

Sugestão: colocar traços para separar os totais das parcelas. 6. Clique no botão ‘Pré-visualizar’ (Print Preview) para ver o resultado das alterações.

Seleccione ‘Ficheiro | Guardar como’ (File Save As/Export ...) para gravar as alterações como um novo formulário. Em ‘Novo Nome’ (New Name:) escreva ‘Listagem de Movimentos por Entidade’. Clique em ‘OK’ Feche a janela.

7. Seleccionar ‘Ficheiro | Sair’ (File | Exit) ou fechar a janela do Microsoft Access.

Desta forma fecha a Base de Dados e sai do Access.

Page 99: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Aluno: ______________________ – N.º: _____ – Turma: _____ Pág. II / 99

FICHA DE TRABALHO N.º 7

Tema:

Microsoft Access Entre no Windows e seleccione o ícone do Access. Crie uma base de dados com a seguinte designação: letras “AL” seguidas do seu número de aluno. Por exemplo: AL1111. 1. Considere o seguinte esquema relacional, relativo à representação da parte estática de uma pequena parte de um Sistema de Gestão de Floristas:

FLORISTA (número, designação, localidade) VENDE (número, código, quantidade) FLOR (código, descrição, preço, referência) VIVEIRO (referência, nome, sede)

1.1. (1,5 valores) Construa a tabela FLORISTA, tendo o cuidado de permitir apenas a introdução de registos com número superior a 100, de limitar a designação a 30 caracteres e a localidade a 10 caracteres. 1.2. (1,5 valores) Construa a tabela VIVEIRO, tendo o cuidado de definir a referência como um texto de três caracteres, limitar o nome a 20 caracteres e a sede a 10 caracteres. 1.3. (1,5 valores) Construa a tabela FLOR, tendo o cuidado de definir o preço em euros e permitir apenas a introdução de registos com código superior a 1000 (e fazendo aparecer uma mensagem de erro em caso contrário). 1.4. (1,5 valores) Construa a tabela VENDE, tendo o cuidado de definir os seus atributos de acordo com o definido nas tabelas anteriores. 2. (2 valores) Faça as relações (relashionships) entre as quatro tabelas. 3. (2 valores) Introduza os dados necessários nas tabelas de modo a obter os seguintes registos: Na tabela FLORISTA: Na tabela VIVEIRO:

101 Romeira Roma Lisboa HCG Horto do Campo Grande Lisboa 102 Expressoflor Cascais VRB Viveiros Rosa Bacará Amadora 103 Rosa de Porcelana Sintra FLC Floricultura Odivelas

Na tabela FLOR:

1101 Rosa 1,50 € VRB 1102 Cravo 1,00 € FLC 1103 Tulipa 1,80 € HCG 1104 Camélia 1,20 € HCG

Page 100: DOCUMENTO DE APOIO N.º 1 - home.iscte-iul.pthome.iscte-iul.pt/~baa/exercicios_ficheiros/02-DM_Tecnologias_de... · SISTEMAS DE INFORMAÇÃO Módulo II – Tecnologias de Bases de

SISTEMAS DE INFORMAÇÃO

Módulo II – Tecnologias de Bases de Dados

Pág. II / 100

4. (2 valores) Introduza os dados necessários de modo a obter a seguinte informação: - A Florista 101 vendeu 500 flores 1101 e 250 flores 1103; - A Florista 102 vendeu 300 flores 1102 e 150 flores 1103; - A Florista 103 vendeu 400 flores 1102 e 350 flores 1104; 5. Crie as consultas (queries) que permitam obter a seguinte informação: 5.1. (2,5 valores) Quantos tipos diferentes de flores fornecidos por cada viveiro (deve aparecer o nome do viveiro, a sede e a quantidade). 5.2. (2,5 valores) Fornecendo o código da flor saber as designações das floristas que a venderam. 6. (3 valores) Crie um formulário (form) que permita visualizar para cada viveiro as flores que fornece.