bases de dados - iptricardo/ficheiros/basedadosaccess2010.pdf · ter conhecimentos em bases de...

248
Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ] Bases de Dados Ricardo Campos ([email protected])

Upload: dothien

Post on 13-Dec-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Bases de Dados

Ricardo Campos ([email protected])

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Esta apresentação foi desenvolvida por Ricardo Campos, docente do Instituto Politécnico de

Tomar. Encontra-se disponível na página web do autor no link Publications ao abrigo da seguinte

licença:

Mais detalhes em: http://creativecommons.org/licenses/by-nc/3.0/deed.pt

O seu uso, de parte ou da totalidade, pressupõe a utilização da seguinte referência:

Campos, Ricardo. (2014). Apresentação de Bases de Dados. Access 2010. 248 slides.

A sua disponibilização em formato PPT pode ser feita mediante solicitação (email:

[email protected])

Autoria

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Bibliografia

Recursos:

J.L.Pereira

“Tecnologia de Bases de Dados”

FCA – Editora de Informática

D, Luis

“SQL – Structured Query Language”

FCA – Editora de Informática

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Bibliografia

Recursos on-line (Bases de Dados e SQL):

Nota: Não é possível garantir a existência futura dos endereços (URL’s), citados nos recursos on-line. Como se sabe, os endereços

são virtuais e a sua vida útil depende única e exclusivamente dos seus autores e proprietários.

Tutoriais, http://apostilando.com/sessao.php?cod=18

Linha de Código SQL, http://www.linhadecodigo.com.br/desenvolvimento/sql.asp

Noções da Linguagem SQL,

http://www.juliobattisti.com.br/artigos/office/nocoessqlconsultas.asp

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Sumário

Objectivos

Parte Teórica

Parte Prática

Bibliografia

Programa

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Objectivos

Diagrama de entidade-relação (modelo conceptual) para a

representação do modelo de dados;

Introdução às bases de dados relacionais (modelo lógico) e à

normalização;

Discussão dos conceitos relacionados com bases de dados;

Objectivos

Programa Parte Teórica

Parte Prática

Aprendizagem das cláusulas mais importantes da linguagem SQL,

quer para a criação da estrutura da base de dados (DDL) quer para a

exploração dos dados (DML);

Capacidade de espelhar os conhecimentos teóricos num projecto de

desenho e construção de uma base de dados utilizando um SGBD

relacional.

Noções fundamentais sobre transacções e optimização;

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Objectivos

Levantamento das necessidades de informação;

Modelação de dados (diagramas E-R e normalização de dados);

Implementação de uma base de dados em Microsoft Access 2010;

Parte Teórica

Parte Prática

Objectivos

Programa

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Programa

Objectivos

Programa

Conceitos de Bases de Dados

Ficheiros vs SGBDs;

Níveis de Análise do Sistema de Informação;

Bases de Dados;

Tipos de Bases de Dados.

Modelo Relacional

Normalização de uma Base de Dados;

Modelo Relacional (nível lógico);

Modelo E-R (nível conceptual);

Estratégias para a Concepção de uma Base de Dados.

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Programa

Desenho de um Esquema de Bases de Dados

Desenho de uma base de dados para uma biblioteca;

Desenvolvimento de um esquema de BD em Access 2010

Criação de programas de aplicação com interfaces gráficas recorrendo ao

Access 2010;

Objectivos

Programa

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Programa

Álgebra Relacional

Operações Unárias.

Operações Binárias;

Linguagem SQL

Definição de SQL;

Comandos DDL e Comandos DML;

Objectivos

Programa

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Programa

Transacções e Recuperação

Definição de Transacção;

Definição de Recuperação e Tolerância a Falhas;

Mecanismos de Recuperação;

Tipos de Falhas;

Objectivos

Programa

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Conceitos de Bases de

Dados

Ricardo Campos ([email protected])

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Sumário

Sumário

Conceitos de Bases de Dados

Ficheiros vs SGBDs;

Níveis de Análise do Sistema de Informação;

Bases de Dados;

Tipos de Bases de Dados.

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Motivação

Porque é que alguém que não quer ser profissional de sistemas de informação,

deve aprender bases de dados?

A criação de sistemas de informação é um processo que envolve pessoas

de várias áreas. Ter conhecimentos em bases de dados, facilitará a

comunicação com os profissionais de SI.

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Motivação

Definição

Aplicações

Pelo mesmo motivo pelo qual se devia aprender a usar um computador há

10 anos atrás;

As bases de dados serão tão comuns no futuro como as folhas de cálculo;

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

O que é uma Base de Dados?

A World Wide Web.

De uma forma genérica uma base de dados é uma estrutura que guarda dados:

O objectivo de uma base de dados é possibilitar de uma forma rápida e automática o

acesso aos seus dados:

Procurar a página WWW do CET.

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Motivação

Definição

Aplicações

Uma agenda com moradas e contactos telefónicos;

Uma lista de CDs;

Procurar a morada de uma determinada pessoa;

Procurar o nome da pessoa que canta determinada música;

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Bibliotecas: registo de livros, revistas.

Aplicações de Bases de Dados

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Motivação

Definição

Aplicações

Banca: todas as transacções e movimentos;

Companhias áreas: reservas, horários;

Universidades: inscrições, notas;

Vendas: clientes, produtos, compras;

Indústria: inventário, pedidos;

Recursos Humanos: registo dos empregados, salários, impostos;

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Nível Conceptual (Modelo E-R)

Nível Lógico (Modelo Relacional)

00100110001100010001000 Nível Físico

Nível Conceptual, Lógico e Físico

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Gestão de Ficheiros vs SGBDs

Para a organização dos dados existem 2 sistemas:

Sistema de Gestão de Ficheiros

Sistemas de Gestão de Bases de Dados

Criados e mantidos pelas aplicações.

No qual se verifica uma certa independência entre as aplicações

e os dados, sob a mediação do SGBD.

Bases

de

Dados

S

G

B

D

Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Definição de Sistema de Gestão de Ficheiros

Uma das características principais dos Sistemas de Gestão de Ficheiros é que

cada aplicação é responsável pela criação e gestão da estrutura interna da

informação dos seus próprios ficheiros. Desta forma, qualquer alteração na

estrutura de ficheiros implica uma alteração no código de cada uma das

aplicações;

Cada tipo de ficheiro possui a sua própria estrutura (docs como o Word e

Excel têm estruturas diferentes) e é a aplicação que os cria que é responsável

pela sua definição da estrutura interna desses ficheiros.

Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Desvantagens do Sistema de Gestão de Ficheiros

Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Redundância e Inconsistência dos dados

Considere um sistema em que a informação relativa à morada dos

clientes é registada em dois ficheiros diferentes. Se o cliente muda de

morada e a mesma é apenas actualizada num dos ficheiros, o sistema

passa a conter informação inconsistente;

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados

Múltiplos formatos, duplicação da informação em ficheiros diferentes;

No processamento tradicional de ficheiros (Sistema de Gestão de

Ficheiros), cada aplicação mantém o seu próprio conjunto de ficheiros e

dados, provocando a ocorrência de redundâncias;

A redundância leva ao armazenamento excessivo de informações,

ocupando espaço que poderia estar a ser utilizado com outras

informações e dificulta a integridade da informação;

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Atomicidade das alterações

Falhas podem colocar a base de dados num estado inconsistente, com

alterações parciais já efectuadas.

Explo: A operação de levantamento de dinheiro de uma conta deve ser

totalmente realizada ou caso contrário nenhuma alteração deve ser

efectuada.

Acessos concorrentes por diversos utilizadores

Acessos concorrente não controlados podem originar inconsistências.

Explo: duas pessoas a consultarem um saldo e a alterarem-no ao mesmo

tempo.

Desvantagens do Sistema de Gestão de Ficheiros

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados

Dificuldades no acesso aos dados

Necessidade de escrever um novo programa para efectuar uma nova tarefa;

Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Definição de Sistemas de Gestão de Bases de Dados (SGBDs)

A abordagem pelos SGBDs tem uma característica fundamental: os dados são

organizados num único conjunto (uma única unidade de armazenamento em

vez de várias unidades independentes);

Adicionalmente todos os acessos aos dados passam por entidade designada

por SGBD que centraliza em si o acesso à base de dados;

Os SGBDs ocultam os detalhes físicos de armazenamento e organização dos

dados (a base de dados encontra-se evidentemente num conjunto de ficheiros);

O SGBD é uma única entidade que manipula

a base de dados, atendendo a solicitações do

nível aplicacional.

Bases

de

Dados

S

G

B

D

Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Características dos SGBDs

Diferentes utilizadores poderão ter o seu acesso limitado a partes da base de

dados. Por exemplo, embora todos os dados de uma organização estejam na

mesma base de dados, aqueles que são importantes para a definição da

estratégia só podem ser consultados pela administração.

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Os SGBDs mantém não somente os dados, mas também a forma como os

mesmos são armazenados, contendo uma descrição completa da base de

dados;

Essas informações são armazenadas no catálogo do SGBD (o dicionário de

dados), o qual contém informações sobre a estrutura de cada ficheiro, o tipo,

o formato, restrições, etc…

A informação armazenada no catálogo (no dicionário) é chamada de metadados;

Assim, uma qualquer alteração na estrutura dos ficheiros, apenas implica

uma alteração no catálogo, evitando a alteração no código fonte de cada uma

das aplicações;

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Vantagens dos SGBDs

Acesso Simultâneo

Vários utilizadores podem aceder e alterar ao mesmo tempo a mesma base

de dados sem criar inconsistências.

Explo: 2 utilizadores diferentes podem consultar simultaneamente os dados

do mesmo cliente. No entanto o SGBD não permite que ambos os utilizadores

alterem esses dados ao mesmo tempo.

Controle de Redundância

Restrição a acessos não autorizados

Um SGBD deve fornecer um sistema de autorização e segurança, o qual é

utilizado pelo administrador da base de dados, para criar contas e especificar

as restrições dessas contas.

Ao contrário do tradicional sistema de gestão de ficheiros, onde cada

aplicação deve manter o seu próprio conjunto de ficheiros e dados, os

SGBDs não, situação que facilita o controle de redundância.

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Vantagens dos SGBDs

Assim, uma qualquer alteração na estrutura dos ficheiros, apenas implica

uma alteração no catálogo, evitando a alteração no código fonte de cada

uma das aplicações.

Tolerância a Falhas

Um SGBD deve fornecer recursos para recuperação de falhas, tanto de

software como de hardware.

Independência dos dados relativamente às aplicações

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Exemplos de SGBDs

MySql, Access,

Mais adequados para uso doméstico, pequenas empresas, etc…

Explo: 2 utilizadores diferentes podem consultar simultaneamente os dados

do mesmo cliente. No entanto o SGBD não permite que ambos os

utilizadores alterem esses dados ao mesmo tempo.

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Oracle, Informix, SQL Server, etc…

São bastante fiáveis e com maiores capacidade que os do próximo exemplo.

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Utilizadores

Nível

Básico

Programadores

de

Aplicações

Utilizadores

Nível

Avançado

Administradores

da

Base de Dados

Programas de

Interface Programas

Ferramentas de

Análise

Ferramentas de

Administração

usam usam usam escrevem

Utilizadores de um SGBD

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Utilizadores de um SGBD

Programadores de Aplicações

Interagem com o sistema através de chamadas DML;

Utilizadores Nível Avançado

Constroem pedidos numa linguagem de consulta de bases de dados ou

através de ferramentas de OLAP ou Data Mining;

Utilizadores Nível Básico

Chamam uma das aplicações que foi construída previamente;

Explo: pessoas a aceder a uma base de dados através da web.

Administrador da Base de Dados

Coordena todas as actividades do sistema de bases de dados.

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Funções do Administrador de Bases de Dados

Manutenção de rotina (backups, gestão de espaço em disco).

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Concede aos utilizadores autorizações de acesso à base de dados;

Define os métodos de acesso;

Define restrições de integridade;

Monitoriza o desempenho;

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Arquitectura de um SGBD

utilizadores

nível básico

programadores

de aplicações DBA

Utilizadores

programas

de interface

chamadas

de rotina

consultas esquema de bases

de dados

Utilizadores

nível

avançado

SGBD

pré-compilador da

linguagem de

manipulação de dados

processador de

consultas

compilador da

linguagem de

definição de dados

código objecto

dos programas

de interface

gestor da base

de dados

gestor de

ficheiros

ficheiros de

dados dicionário de

dados

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Arquitectura de duas camadas Arquitectura de três camadas

Aplicações web recorrendo a

software intermediário.

Programas clientes que

comunicam com a base de

dados.

Arquitectura Cliente/Servidor

Servidor

Servidor

Aplicação

Cliente

BD

Aplicação

Cliente

Rede

Servidor

Aplicação

BD

Aplicação

Rede

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Vantagens Arquitectura Cliente/Servidor

Independência das aplicações de cliente relativamente à localização física dos

dados;

Todo o trabalho de interface com o utilizador e tratamento da informação

(gráfico, formatação) é feito no cliente;

Todas as tarefas de armazenamento da informação, consulta, segurança,

partilha de dados, são concentradas no servidor;

Só os pedidos de informação e os resultados é que são enviados pela rede,

donde resulta um tráfego geralmente baixo;

Adapta-se facilmente a problemas de diferentes dimensões: mais ou menos

clientes, servidores com maior ou menor capacidade, mais ou menos servidores.

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Bases de Dados Distribuídas

Cliente

Servidor

Servidor 1

BD

Cliente

Servidor

Servidor 2

BD

Rede

Uma base de dados distribuída surge ao utilizador como se fosse uma única

base de dados, mas na realidade é constituída por diversas bases de dados

distribuídas por diversos computadores.

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Sistema de Gestão de Ficheiros

Sistema de Gestão de Bases de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Este sucesso pode ser explicado pela simplicidade do modelo em que

assentam, o modelo relacional, que é constituído somente por relações, e

pelo surgimento de uma linguagem de manipulação simples e eficiente, o

SQL (Structured Query Language).

Contextualização Histórica

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Hierárquico

Em Rede

Relacional

A utilização comercial de BDs começou nos anos 60. Inicialmente a

informação era guardada em ficheiros e a sua consulta e manipulação era

pouco prática;

Para definição de dados eram usados os modelos hierárquico e de rede;

No início dos anos 70 surgiram os SGBD relacionais cuja popularidade não

tem parado de crescer até hoje;

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Hierárquicos;

Em Rede;

Relacional:

Relações entre tabelas de dados

controladas por álgebra relacional;

Proposto por Codd em 1969;

Actualmente existem vários fornecedores de tecnologia relacional no

mercado: Oracle; MySql; SqlServer, Access, etc…;

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Hierárquico

Em Rede

Relacional

Tipos: Hierárquicos, em Rede, Relacionais

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Exemplo de Informações numa Base de Dados

Nome Rua Cidade Conta Saldo

Nuno Terlamonte Aljezur 1 55€

Filipa Sítio Fechado Aljezur 2 1000€

Filipa Sítio Fechado Aljezur 3 5366€

António Glorioso Lisboa 3 5366€

António Glorioso Lisboa 4 10553€

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Hierárquico

Em Rede

Relacional

Consideremos a seguinte tabela como base para a definição dos vários

tipos de bases de dados:

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Modelo Hierárquico

Os dados são representados por registos e os relacionamentos por ligações;

Os registos são organizados como colecções arbitrárias de árvores.

Nuno Terlamonte Aljezur

1 55€

António Glorioso Lisboa

3 5366€ 4 10533€

Filipa Sítio Fechado Aljezur

2 1000€ 3 5366€

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Hierárquico

Em Rede

Relacional

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Modelo Hierárquico

Cliente

Encomenda

Linha_Encomenda

Produto

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Hierárquico

Em Rede

Relacional

Modelo Hierárquico

Como se pode concluir, esta é uma

organização que privilegia o acesso aos

registos do Cliente, mas que dificulta o acesso

aos registos do Produto.

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Modelo em Rede

Os dados são representados por colecções de registos e os relacionamentos

por ligações:

Nuno Terlamonte Aljezur

Filipa Sítio Fechado Aljezur

António Glorioso Lisboa

1 55€

4 10533€

3 5366€

2 1000€

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Hierárquico

Em Rede

Relacional

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Modelo Relacional

Tanto os dados, como os relacionamentos são representados por tabelas;

Possui fundamento matemático sólido;

Suponha-se a representação da realidade recorrendo ao modelo E-R (nível

conceptual):

Cliente

rua cidade

nome Conta

número

saldo

possui M N

numConta Saldo

1 55€

2 1000€

3 5366€

4 10533€

codCliente Nome Rua Cidade

100 Nuno Terlamonte Aljezur

101 Filipa Sítio Fechado Aljezur

102 António Glorioso Lisboa

codCliente numConta

100 1

101 2

101 3

102 3

102 4

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Hierárquico

Em Rede

Relacional

Modelo Relacional (Nível Lógico):

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Grau e Cardinalidade de uma Relação

Grau de uma Relação

Número de atributos de uma relação.

Cardinalidade de uma Relação

Número de tuplos de uma relação

codCliente Nome Rua Cidade

100 Nuno Terlamonte Aljezur

101 Filipa Sítio Fechado Aljezur

102 António Glorioso Lisboa

Cliente

4 atributos Grau = 4

3 tuplos Cardinalidade = 3

Níveis de Análise do Sistema de Informação

Ficheiros vs SGBDs

Tipos de Bases de Dados

Bases de Dados Hierárquico

Em Rede

Relacional

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Modelo Relacional

Ricardo Campos ([email protected])

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Sumário

Sumário

Modelo Relacional

Normalização de uma Base de Dados;

Modelo Relacional (nível lógico);

Modelo E-R (nível conceptual);

Estratégias para a Concepção de uma Base de Dados;

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Autor obra M N

Publicação

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

O desenvolvimento de uma base de dados passa por representar graficamente a

realidade que se quer moldar:

O Diagrama de Entidade – Relação é uma técnica de representação gráfica

que ilustra conceptualmente as relações entre entidades de bases de dados;

Definição do Modelo E-R (Entidade – Relação)

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Definição do Modelo E-R (Entidade – Relação)

Normalização de uma Base de Dados

No Access o modelo conceptual não existe. Assim, sempre que se pretende

construir uma base de dados, o desenvolvimento da parte conceptual realiza-

se numa folha de papel ;

Uma vez que o Access apenas conhece o modelo lógico, é necessário

aprender os fundamentos teóricos da passagem do modelo conceptual para o

modelo lógico, por forma que seja possível construir as tabelas no Access;

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Entidade

Objecto que é distinguível de outros

objectos, mas que pode ser

agrupado na mesma entidade, pois

possuem várias características

comuns. Pretende representar a

realidade que queremos modelar

(exemplo: empresa, empregado,

aluno, professor, carro).

Entidade, Atributos, Associações e Chaves

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Cor

Cor

kms

kms

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Dê um exemplo de entidades:

Aluno Disciplina

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Entidade, Atributos, Associações e Chaves

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Entidade, Atributos, Associações e Chaves

Atributos Propriedades ou características que permitem

descrever as entidades. Os livros por exemplo

possuem vários atributos comuns: o título, o número

de páginas, o ano de publicação, etc…

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Titulo

Número

de Páginas

Ano de

Publicação

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Entidade, Atributos, Associações e Chaves

Aluno

n.º aluno nome

morada Disciplina

código

Designação

Dê um exemplo de atributos:

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Associação / Relação

Estabelecimento de uma relação entre várias entidades;

Chave

Um atributo (chave simples) ou grupo de atributos (chave

combinada) que permite identificar univocamente cada entidade;

Entidade, Atributos, Associações e Chaves

sublinhado

A presença de um substantivo usualmente indica uma entidade;

A presença de um verbo é uma forte indicação de um relacionamento;

Um adjectivo que é uma qualidade é uma forte indicação de um atributo;

Resumo:

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Dê um exemplo de associação:

Aluno

n.º aluno nome

morada Disciplina

código

Designação

inscrito

Entidade, Atributos, Associações e Chaves

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Chaves Primárias

Todas as tabelas têm de possuir uma chave primária;

Permitem identificar univocamente um registo;

Número Nome Morada

001 João Rua a

013 João Rua b

Número é chave porque não

podem existir dois clientes com o

mesmo número;

Nome não é chave porque podem

existir dois clientes com o mesmo

nome;

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Chaves Primárias

Fila Lugar Ocupado?

A 1 sim

A 2 não

B 1 não

Apenas os atributos {Fila,Lugar}

garante que identificamos um

registo;

Número Nome Morada BI

001 João NULL 1234567

013 Ana NULL 7654321

Número e BI são chaves

candidatas. É obrigatório

optar por uma única chave;

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Aluno (nAluno, nome, morada)

Disciplina (codDisciplina, desDisciplina)

(8699, Ricardo, Rua A)

(8700, Nuno, Rua José)

(8701, Ana, Travessa do Viriato)

(1, TIC)

(2, Informática)

registo / linha / ocorrência

/ instância

registo / linha / ocorrência

/ instância

Dê exemplos de registos para as seguintes entidades, não se esquecendo de

indicar a chave primária:

Chaves Primárias

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Chaves Estrangeiras

As chaves estrangeiras são conjuntos de uma ou mais colunas que, numa

determinada tabela, referenciam a chave primária de outra tabela.

As chaves estrangeiras constituem um mecanismo essencial de

funcionamento dos sistemas de bases de dados relacionais;

Aluno (numAluno, nome, morada,……)

Disciplina (codDisciplina, designação,………)

Exame (numAluno, codDisciplina, data, nota, ………)

Verifica-se que a tabela Exame possui duas chaves estrangeiras;

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Chaves Estrangeiras

Importa chamar a atenção para o facto de não ser obrigatório que uma chave

externa faça parte da chave primária da tabela em que está inserida.

Empregado (codEmpregado, nome, codDepartamento,……)

Departamento (codDepartamento, designação,………)

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Nenhum componente de chave primária de uma tabela pode conter nulos.

Integridade de Entidade

O valor da chave

estrangeira tem de existir na

tabela referenciada. Por

outras palavras, não pode

ser usada como chave

estrangeira um valor que

não exista como chave na

sua tabela de origem

Integridade Referencial

A inscrição do valor J152 na tabela Participações,

constituiria uma violação do princípio de integridade

referencial, uma vez que este valor não existe na

tabela jogadores.

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Integridade de Entidade e Integridade Referencial

IdJogador Nome DataNasc

J1 Vaz 08/10/1970

J2 Inácio 20/08/1972

J3 Paulo 20/01/1977

J4 Pinho 15/02/1978

….. ….. …..

IdJogador IdJogo Golos

J1 1 1

J2 2 0

J3 3 2

J152 1 0

….. ….. …..

Tabela Participações

Tabela Jogadores

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Do seguinte texto determine o que é Entidade, Associação, Atributos e Chave:

Numa universidade existem alunos e professores. Os alunos são identificados

por um número, têm um nome e morada. Os professores são identificados por

um código, têm um nome e habilitações. Os professores leccionam aula aos

alunos.

Aluno

n.º aluno nome

morada leccionar Professor

código

nome

habilitações

Defina o modelo E-R (nível conceptual):

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Exercício

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tipos de relações existentes

Com base nestes três tipos de relações é possível decompor qualquer relação

do mundo real:

Relação Binária (as mais comuns)

Possui duas entidades que são relacionadas entre si;

Relação Ternária (complexas)

Possui três entidades que se relacionam entre si;

Relação Unária (reflexiva)

Possui apenas uma entidade que se relaciona com ela própria;

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Relação Unária (reflexiva)

Possui apenas uma entidade que se relaciona com ela própria;

Selecção

jogos

Esquema de uma relação unária, entre

elementos da entidade selecção;

Tipos de relações existentes

Selecção

Portugal x Espanha

Portugal x França

Alemanha x França

jogos

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Relação Binária (as mais comuns)

Possui duas entidades que são relacionadas entre si;

Tipos de relações existentes

Deputados pertencem Grupos

Parlamentares

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tipos de relações existentes

Relação Ternária (complexas)

Possui três entidades que se relacionam entre si;

Actores Filmes

Director

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

3 Tipos de Associações

Numa associação binária podemos encontrar 3 tipos de associações:

Um para Um (1:1)

Caso em que a um elemento corresponde um outro elemento;

Um para Muitos (1:N)

Caso em que a um elemento podem corresponder um ou mais elementos;

Muitos para Muitos (M:N)

Caso em que vários elementos podem ser origem de vários outros elementos;

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

2 Tipos de Participação

Uma entidade pode participar numa relação de duas formas:

Participação Obrigatória

Não pode existir nenhuma ocorrência dessa entidade que não esteja

associada a alguma ocorrência da outra entidade que participa na relação;

Participação Não Obrigatória

Podem existir ocorrências dessa entidade que não estejam relacionadas a

alguma ocorrência da outra entidade que participa na relação;

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

A B

Entidade Obrigatória Entidade Obrigatória

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Associação 1:1 – nenhuma Entidade Obrigatória

Dê um exemplo para cada um dos seguintes elementos:

Um para Um (1:1)

Homem Mulher Casamento 1 1

H1

H2

H3

H

M1

M2

M3

M

Um Homem está casado com uma Mulher

Uma Mulher está casada com um Homem

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Outro Exemplo de Um para Um (1:1)

Um Carro pertence obrigatoriamente a um Empregado

Mas nem todo o Empregado tem um Carro

Carro Empregado Tem 1 1

E C

E1

E2

E4

C1

C2

C3

E3

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Associação 1:1 – uma Entidade Obrigatória

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Outro Exemplo de Um para Um (1:1)

Empregado Carro Tem 1 1

Um Empregado tem obrigatoriamente um Carro

Um Carro pertence obrigatoriamente a um Empregado

E1

E2

E3

E

C1

C2

C3

C

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Associação 1:1 – as duas Entidades Obrigatórias

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Um para Muitos (1:N)

Enfermaria Paciente Tem 1 N

Uma Enfermaria têm vários Pacientes

Um Paciente pertence a uma só Enfermaria

E1

E2

E

P1

P2

P3

P

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Associação 1:N – nenhuma Entidade Obrigatória

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Um para Muitos (1:N)

Empresa Empregado Trabalhar 1 N

Uma Empresa têm vários Empregados a trabalhar

Um Empregado trabalha obrigatoriamente numa Empresa

A1

A2

A

B1

B2

B3

B

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Associação 1:N – Entidade do lado N Obrigatória

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Muitos para Muitos (M:N)

Autor Livro Escreveu

Pertence

M N

Um Autor escreveu vários Livros

Um Livro pertence a vários Autores

A1

A3

A

L1

L2

L3

L

A2

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Representação Gráfica

Conceito de Chaves

Tipos de Associações

Tipos de Relações Existentes

Tipos de Participação

Associação M:N – nenhuma Entidade Obrigatória

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

É no entanto necessário aprender os fundamentos teóricos da passagem do

modelo E-R (nível conceptual) para o modelo relacional (nível lógico), por

forma que seja possível definir as tabelas:

Autor obra M N

Publicação

De acordo com os tipos de associações e os tipos de participação:

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

é possível definir o modelo relacional (nível lógico);

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional

Contextualização

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Dê um exemplo para cada um dos seguintes elementos:

Um para Um (1:1)

Homem Mulher Casamento 1 1

H1

H2

H3

H

M1

M2

M3

M

Um Homem está casado com uma Mulher

Uma Mulher está casada com um Homem

Relação 1:1 – nenhuma Entidade Obrigatória

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Relação 1:1 – nenhuma Entidade Obrigatória

Homem (BIHomem, nome, morada,……)

Mulher (BIMulher, nome, morada,………)

Se no relacionamento 1:1 nenhuma entidade é obrigatória são necessárias 3

tabelas (2 para as entidades + 1 para a associação):

Casamento (BIHomem, BIMulher, ……)

Homem (BIHomem, nome, morada,……)

Mulher (BIMulher, nome, morada,………)

Transf. Modelo E-R para modelo relacional

Quando se transforma um modelo

conceptual (E-R) para um modelo lógico

(relacional), é necessário realizar um

conjunto de alterações.

A transformação passa por criar uma nova tabela, onde a chave, é a chave

primária de uma das entidades (por exemplo Homem). Deve-se também

adicionar como atributo a chave da outra entidade (Mulher):

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Outro Exemplo de Um para Um (1:1)

Um Carro pertence obrigatoriamente a um Empregado

Mas nem todo o Empregado tem um Carro

Carro Empregado Tem 1 1

E C

E1

E2

E4

C1

C2

C3

E3

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional

Relação 1:1 – uma Entidade Obrigatória

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Se o relacionamento de 1:1 tem participação obrigatória de apenas uma

entidade são necessárias 2 tabelas:

A transformação passa por colocar o atributo que é chave primária da relação

Empregado (entidade não obrigatória) na relação Carro (entidade obrigatória) :

Empregado (codEmpregado, nome, morada,……)

Carro (Matricula, marca, modelo, codEmpregado,……)

Empregado (codEmpregado, nome, morada,……)

Carro (Matricula, marca, modelo,………)

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional

Relação 1:1 – uma Entidade Obrigatória

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Outro Exemplo de Um para Um (1:1)

Empregado Carro Tem 1 1

Um Empregado tem obrigatoriamente um Carro

Um Carro pertence obrigatoriamente a um Empregado

E1

E2

E3

E

C1

C2

C3

C

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional

Relação 1:1 – as duas Entidades Obrigatórias

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Se o relacionamento de 1:1 tem participação obrigatória de ambas as

entidades é necessária apenas 1 única tabela:

Empregado (codEmpregado, nome, morada,……)

Carro (Matricula, marca, modelo,………)

Empregado (codEmpregado, nome, morada, Matricula, marca, modelo,……)

Os atributos do Carro podem ser vistos como atributos adicionais do Empregado

A transformação passa por colocar o atributo que é chave primária de uma das

entidades (por exemplo de Carro) na outra entidade (por exemplo em Empregado):

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional

Relação 1:1 – as duas Entidades Obrigatórias

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Um para Muitos (1:N)

Enfermaria Paciente Tem 1 N

Uma Enfermaria têm vários Pacientes

Um Paciente pertence a uma só Enfermaria

E1

E2

E

P1

P2

P3

P

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional

Relação 1:N – nenhuma Entidade Obrigatória

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

A transformação passa por criar uma nova tabela, onde a chave, é a chave

primária da entidade Paciente (lado N da associação). Deve-se também

adicionar como atributo a chave da entidade Enfermaria (lado 1 da associação):

Se no relacionamento 1:N a entidade do lado N não é obrigatória, são

necessárias 3 tabelas (2 para as entidades + 1 para a associação):

Enfermaria (codEnfermaria, designação,……)

Paciente (codPaciente, nome, morada,………)

Enfermaria_Paciente (codPaciente, codEnfermaria, ……)

Enfermaria (codEnfermaria, designação,……)

Paciente (codPaciente, nome, morada,………)

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional

Relação 1:N – nenhuma Entidade Obrigatória

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Um para Muitos (1:N)

Empresa Empregado Trabalhar 1 N

Uma Empresa têm vários Empregados a trabalhar

Um Empregado trabalha obrigatoriamente numa Empresa

A1

A2

A

B1

B2

B3

B

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional

Relação 1:N – Entidade do lado N Obrigatória

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

A transformação passa por colocar o atributo que é chave primária da relação

Empresa (lado 1 da associação) na relação Empregado (lado N da associação):

Empresa (codEmpresa, nome, localização,……)

Empregado (BI, nome, morada,……)

Empresa (codEmpresa, nome, localização,……)

Empregado (BI, nome, morada, codEmpresa,……)

Se no relacionamento 1:N a entidade do lado N é obrigatória, são necessárias

duas tabelas:

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional

Relação 1:N – Entidade do lado N Obrigatória

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Muitos para Muitos (M:N)

Autor Livro Escreveu

Pertence

M N

Um Autor escreveu vários Livros

Um Livro pertence a vários Autores

A1

A3

A

L1

L2

L3

L

A2

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional

Relação M:N – Obrigatoriedade Irrelevante

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Nas relações M:N são sempre necessárias 3 tabelas, uma para cada entidade

e uma terceira para a associação:

Autor (codAutor, nome,……)

Livro (ISBN, Título, numPag,……)

Autor_Livro (codAutor, ISBN, dataLançamento,……)

A transformação passa por criar uma nova tabela, onde a chave, é a chave

é constituída pela chave de cada um das entidades (chave de Autor + chave

de Livro):

Autor (codAutor, nome,……)

Livro (ISBN, Título, numPag,……)

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional

Relação M:N – Obrigatoriedade Irrelevante

Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

A existência de uma chave estrangeira (atributo que é chave primária noutra

relação) numa relação, prende-se com a necessidade de manter a interligação

entre essa relação e a relação onde esse conjunto de atributos é chave primária;

Resumo

Uma associação dá origem a uma tabela quando:

Quando é uma associação 1:N (com entidade do lado N não obrigatória);

Quando é uma associação 1:1 (com ambas as entidades não obrigatórias);

Quando é uma associação M:N.

Por exemplo dadas duas relações, Departamentos e Funcionários, a única forma

de traduzir que um dado funcionário trabalha num dado departamento é incluir

na relação Funcionários a identificação do Departamento onde esse Funcionário

trabalha;

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Exercício

Defina com base no seguinte levantamento de requisitos o modelo de E-R:

Um Editor pode editar vários Livros;

Um Livro obrigatoriamente só pode ser editado por um Editor;

Um Livro pode ser requisitado por vários Utentes;

Um Utente pode requisitar vários Livros;

Livro Utente Requisição M N

Edição 1 N

Editor

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Exercício

Transformar o modelo E-R (nível conceptual) no modelo relacional (nível lógico):

4 tabelas (3 entidades + 1 associação)

Editor (codEditor, nome,……)

Livro (ISBN, título, codEditor……)

Utente (codLeitor, nome,……)

Requisição (ISBN, codLeitor, dataRequisição,……)

Editor

codEditor

nome

……..

Livro

ISBN

título

codEditor

……….

Requisição

ISBN

codLeitor

dataReq.

……….

Utente

codLeitor

nome

……..

1

N

1 1 N

N

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Exercício

Pretende-se desenvolver uma base de dados para um banco:

Cada cliente pode ter várias contas, mas cada conta só tem associado

um cliente;

Cada conta está fixada numa agência, a qual pode ter várias contas;

Cada cliente pode fazer vários empréstimos, mas cada empréstimo só

está associado a um cliente;

Cada empréstimo está fixado numa agência, a qual pode ter vários

empréstimos concedidos;

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional Normalização de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional Normalização de uma Base de Dados

Cliente

Agência

1

N

1

N

Modelo de E-R:

Modelo de E-R constituído pelo clientes de um banco, assim como as contas

e empréstimos desses clientes nas várias agências do banco.

Conta N

Empréstimo

1 N

1

Modelo E-R (nível conceptual)

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Modelo Relacional (Nível Lógico)

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Transformação do modelo E-R (ass. 1:1) para modelo Relacional

Transformação do modelo E-R (ass. 1:N) para modelo Relacional

Transformação do modelo E-R (ass. M:N) para modelo Relacional Normalização de uma Base de Dados

Clientes

codClient

e

nome

Profissao

localidade

Contas

numConta

tipoConta

codCliente

codAgencia

saldo Agencia

codAgencia

designacao

localidade

1

N

N

1

1

Emprestimos

numEmprestimo

codCliente

codAgencia

valor

N

N

DDL e DML

Modelo Relacional (nível lógico)

Modelo Relacional:

Clientes(codCliente, nome, profissao, localidade);

Agencias(codAgencia, designacao, localidade);

Contas(numConta, tipoConta, codCliente, codAgencia, saldo);

Emprestimos(numEmprestimo, codCliente, codAgencia, valor);

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Após o desenvolvimento do modelo E-R dos dados (nível conceptual) é feito o

desenvolvimento do modelo relacional (nível lógico);

Normalizar para quê?

O conjunto de tabelas obtidas representa a estrutura da informação;

Assegurar o mínimo de redundância possível;

Objectivos da Normalização

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Estratégias para a concepção de uma Base de Dados

Modelo E-R (Nível Conceptual)

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Limitações das monotabelas

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

Para registar numa única tabela as encomendas efectuadas pelos clientes,

caímos numa redundância desnecessária de informação, quer em relação aos

produtos, quer em relação aos clientes;

Cliente Endereço Telefone Produto Modelo Preço Data Qtd

Silva Lisboa 665544 Alicate A1 400 04/03/06 400

Santos Porto 554433 Martelo M1 250 04/03/06 250

Costa Coimbra 332211 Serra S1 1500 04/03/06 1500

Castro Faro 443322 Tesoura T1 500 04/03/06 500

Silva Lisboa 665544 Martelo M1 250 05/04/06 250

Silva Lisboa 665544 Tesoura T1 500 05/04/06 500

Costa Coimbra 332211 Alicate A1 400 06/04/06 400

Costa Coimbra 332211 Serra S1 1500 06/04/06 1500

Castro Faro 443322 Alicate A1 400 07/04/06 400

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Estratégias para a concepção de uma Base de Dados

Modelo E-R (Nível Conceptual)

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

Outros problemas das monotabelas:

Se o endereço do cliente for alterado, essa alteração tem de ser feita em

várias linhas da tabela;

Problemas de Actualização

Não é possível registar informação relativa a um cliente que não tenha feito

qualquer encomenda;

Problemas de Inserção

Imagine-se que o cliente ainda só fez uma encomenda. Se a encomenda

for anulada, perde-se toda a informação relativa ao cliente;

Problemas de Eliminação

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Limitações das monotabelas

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Modificar o conjunto de tabelas obtido do modelo conceptual num outro

conjunto de tabelas equivalente, mas menos redundante e mais estável;

A existência de redundâncias está associada a um conjunto de

anomalias de inserção de dados, anomalias de eliminação de dados e

anomalias de alteração de dados.

Objectivos da Normalização

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

As 3 formas normais

Uma tabela, está na 1FN quando todos os seus atributos são elementares.

Não pode existir um conjunto de valores para um determinado atributo;

1.ª Forma Normal

Quando a chave é composta, qualquer atributo que não seja chave deve

depender da totalidade da chave, através de uma dependência funcional

elementar;

2.ª Forma Normal

Nenhum atributo não chave pode depender de um outro atributo não chave,

ou seja, cada atributo deve depender apenas da chave primária da relação;

3.ª Forma Normal

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Esquema Geral da Normalização

Dados não normalizados. Dispor a informação em tabelas de forma que todas

as ocorrências dos atributos sejam elementares:

1.ª Forma Normal

Os dados estão na 1.ª Forma Normal

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Identificar as dependências funcionais dos atributos em relação às chaves:

2.ª Forma Normal

Os dados estão na 2.ª Forma Normal

Esquema Geral da Normalização

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Identificar as dependências transitivas. Desdobrar a relação de forma que

cada atributo depende única e exclusivamente da chave:

3.ª Forma Normal

Os dados estão na 3.ª Forma Normal

Esquema Geral da Normalização

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Numa escola pretende-se manter informação sobre:

- Os alunos da escola (com informação sobre o seu número, nome, morada);

- As disciplinas que são ministradas na escola (nome);

- Os professores que dão essas disciplinas (nome);

- As notas dos alunos nas disciplinas que frequentam;

Contextualização

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

idAluno Nome Morada Disciplinas Professor Nota

A1 João Lisboa Matemática, Economia, Direito Prof. Carlos, Prof Paulo, Prof José 14, 19, 9

A2 Ana Algés Matemática, Física Prof. Carlos, Prof.ª Ana 11, 4

A3 Pedro Sintra Matemática, Economia, Física Prof. Carlos, Prof Paulo, Prof.ª Ana 8, 12, 15

A4 Filipa Lisboa Matemática Prof. Carlos, 14

1.ª Forma Normal

O passo seguinte é converter os atributos não atómicos, de forma que não

seja possível incluir mais do que um valor em cada campo de uma tabela:

Actualmente já existe uma base de dados que guarda toda a informação numa

tabela:

Contextualização

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Uma tabela, está na 1FN quando todos os seus atributos são elementares.

Não pode existir um conjunto de valores para um determinado atributo;

Definição

1FN

Atributos Elementares

Conjunto de elementos

indivisíveis (exemplo: Data de

Nascimento, Peso, etc…)

Conjunto de Atributos

Uma lista de valores

para um dado atributo

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

idAluno Nome Morada idDisciplina Disciplina idProfessor Professor Nota

Tabela na 1.ª Forma Normal:

Alunos (idAluno, Nome, Morada, idDisciplina, Disciplina, idProfessor, Professor, nota)

Chave

1FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

A4 Filipa Lisboa 1 Matemática 1 Prof. Carlos 14

A1 João Lisboa 1 Matemática 1 Prof. Carlos 14

A1 João Lisboa 2 Economia 2 Prof. Paulo 19

A1 João Lisboa 3 Direito 3 Prof. José 9

A2 Ana Algés 1 Matemática 1 Prof. Carlos 11

A2 Ana Algés 4 Física 4 Prof.ª Ana 4

A3 Pedro Sintra 1 Matemática 1 Prof. Carlos 8

A3 Pedro Sintra 2 Economia 2 Prof. Paulo 12

A3 Pedro Sintra 4 Física 4 Prof.ª Ana 15

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Quando a chave é composta, qualquer atributo que não seja chave deve

depender da totalidade da chave, através de uma dependência funcional

elementar;

Definição

2FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

Se uma instância de valores do atributo X determina univocamente uma

instância de Y (X determina Y).

Dependências Funcionais (X Y)

Ou seja, diz-se que X determina Y, se para cada valor de X existe um só valor

de Y

X e Y são listas de atributos;

Ou seja, se soubermos X, sabemos automaticamente Y

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

2FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

Exemplo de dependência funcional (X Z)

Tome-se como referência a tabela A (x,y,z,w): x y z w

1 3 2 7

2 4 5 8

1 5 2 4

1 3 2 7

2 4 5 8

7 3 4 2

X Z;

Conhecido o valor de X sabe-se automaticamente

o valor de Z;

Para um dado valor do atributo X, o valor do

atributo Z é sempre o mesmo;

Sempre que o valor da coluna X é 1, o valor do atributo Z é 2;

Se estas regras se verificarem sempre, e não apenas para um conjunto concreto

de valores (num dado momento), então existe uma dependência funcional;

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

2FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

Exemplo de dependência funcional elementar {X,Y} W

Tome-se como referência a tabela A (x,y,z,w): x y z w

1 3 2 7

2 4 5 8

1 5 2 4

1 3 2 7

2 4 5 8

7 3 4 2

{X,Y} W;

W é funcionalmente dependente do conjunto

de atributos {X,Y}, quando estes atributos são

tomados como um conjunto;

Convém, notar que o atributo W não é funcionalmente dependente de nenhum

dos atributos X e Y, quando estes são tomados isoladamente (por exemplo x(1)

w(7), mas x(1) w(4), logo não é funcionalmente dependente);

W é irredutivelmente dependente de {X,Y}, como um todo e não depende de

nenhum dos seus subconjuntos tomados isoladamente;

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

2FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

idAluno Nome Morada idDisciplina Disciplina idProfessor Professor Nota

A1 João Lisboa 1 Matemática 1 Prof. Carlos 14

A1 João Lisboa 2 Economia 2 Prof. Paulo 19

A1 João Lisboa 3 Direito 3 Prof. José 9

A2 Ana Algés 1 Matemática 1 Prof. Carlos 11

A2 Ana Algés 4 Física 4 Prof.ª Ana 4

A3 Pedro Sintra 1 Matemática 1 Prof. Carlos 8

A3 Pedro Sintra 2 Economia 2 Prof. Paulo 12

A3 Pedro Sintra 4 Física 4 Prof.ª Ana 15

A4 Filipa Lisboa 1 Matemática 1 Prof. Carlos 14

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

idAluno Nome Morada idDisciplina Disciplina idProfessor Professor

Chave Chave

idAluno idDisciplina Nota

Chave

2FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Tabelas na 2.ª Forma Normal:

A4 Filipa Lisboa

A1 João Lisboa

A2 Ana Algés

A3 Pedro Sintra

4 Física 4 Prof.ª Ana

1 Matemática 1 Prof. Carlos

2 Economia 2 Prof. Paulo

3 Direito 3 Prof. José

A4 1 14

A1 1 14

A1 2 19

A1 3 9

A2 1 11

A2 4 4

A3 1 8

A3 2 12

A3 4 15

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Nenhum atributo não chave pode depender de um outro atributo não chave,

ou seja, cada atributo deve depender apenas da chave primária da relação;

Definição

idDisciplina Disciplina idProfessor Professor

1 Matemática 1 Prof. Carlos

2 Economia 2 Prof. Paulo

3 Direito 3 Prof. José

4 Física 4 Prof.ª Ana

3FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

idDisciplina Disciplina idProfessor idProfessor Professor

Chave Chave

3FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Tabelas na 3.ª Forma Normal:

4 Física 4

1 Matemática 1

2 Economia 2

3 Direito 3

4 Prof.ª Ana

1 Prof. Carlos

2 Prof. Paulo

3 Prof. José

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Desta forma obtemos as seguintes tabelas normalizadas (3FN):

Aluno (idAluno, nome, morada);

Nota (idAluno, idDisciplina, nota);

Disciplina (idDisciplina, disciplina, idProfessor);

Professor (idProfessor, Professor);

Aluno

idAluno

nome

……..

Nota

idAluno

idDisciplina

nota

……….

Disciplina

idDisciplina

disciplina

idProfessor

……….

Professor

idProfessor

Professor

……..

1 N

N 1 1

N

Reflexo do modelo lógico de dados (modelo relacional):

Resumo

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Contextualização

- Os clientes fazem encomendas

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

- As encomendas contêm produtos

Pretende-se automatizar o registo de compras num hipermercado:

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

1.ª Forma Normal

Actualmente já existe uma base de dados que guarda toda a informação numa

tabela:

Nº encomenda

Nº cliente Cliente

Endereço Cliente DataEnc codProduto Produto Qtd

12 2 João Rua A 11-11-2000 1, 2, 3 A, B, C 12, 10, 16

13 3 Ana Rua B 11-11-2000 1, 3 A, C 16, 18

Definição

1FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

Uma tabela, está na 1FN quando todos os seus atributos são elementares.

Não pode existir um conjunto de valores para um determinado atributo;

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Nº encomenda

Nº cliente Cliente

Endereço Cliente DataEnc codProduto Produto Qtd

Tabela na 1.ª Forma Normal:

Chave

Encomenda (numEncomenda, numCliente, Cliente, endCliente, dataEnc, codProduto,

Produto, Qtd)

1FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

O passo seguinte é converter os atributos não atómicos, de forma que não

seja possível incluir mais do que um valor em cada campo de uma tabela:

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

13 3 Ana Rua B 11-11-2000 3 C 18

12 2 João Rua A 11-11-2000 1 A 12

12 2 João Rua A 11-11-2000 2 B 10

12 2 João Rua A 11-11-2000 3 C 16

13 3 Ana Rua B 11-11-2000 1 A 16

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Definição

2FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

Nº encomenda

Nº cliente Cliente

Endereço Cliente DataEnc codProduto Produto Qtd

12 2 João Rua A 11-11-2000 1 A 12

12 2 João Rua A 11-11-2000 2 B 10

12 2 João Rua A 11-11-2000 3 C 16

13 3 Ana Rua B 11-11-2000 1 A 16

13 3 Ana Rua B 11-11-2000 3 C 18

Quando a chave é composta, qualquer atributo que não seja chave deve

depender da totalidade da chave, através de uma dependência funcional

elementar;

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Nº encomenda

Nº cliente Cliente

Endereço Cliente DataEnc

Encomenda (numEncomenda, numCliente, Cliente, endCliente, dataEnc)

Nº encomenda codProduto Qtd

Linha_Encomenda (numEncomenda, codProduto, Qtd)

Chave

Chave

2FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

codProduto Produto

Chave

Produto (codProduto, Produto)

13 3 Ana Rua B 11-11-2000

12 2 João Rua A 11-11-2000

3 C

1 A

2 B

13 3 18

12 1 12

12 2 10

12 3 16

13 1 16

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

3FN

Nenhum atributo não chave pode depender de um outro atributo não chave,

ou seja, cada atributo deve depender apenas da chave primária da relação;

Definição

A única relação que pode não estar na 3FN é a Encomendas dado que é a

única que possui mais do que um atributo não-chave;

Nº encomenda

Nº cliente Cliente

Endereço Cliente DataEnc

12 2 João Rua A 11-11-2000

13 3 Ana Rua B 11-11-2000

Chave

Nº encomenda codProduto Qtd

12 1 12

12 2 10

12 3 16

13 1 16

13 3 18

Chave

codProduto Produto

1 A

2 B

3 C

Chave

Encomenda Linha_Encomenda Produto

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Nº encomenda

Nº cliente Cliente

Endereço Cliente DataEnc

12 2 João Rua A 11-11-2000

13 3 Ana Rua B 11-11-2000

A existência desta última dependência, está em claro desacordo com a

definição da 3FN. A solução passa por decompor a relação, de acordo com as

dependências, nas duas relações seguintes:

Nº encomenda

Nº cliente DataEnc

Nº cliente Cliente

Endereço Cliente

Chave Chave

3FN

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

Encomenda (numEncomenda, numCliente,

dataEnc)

Cliente (numCliente, Cliente,

endCliente)

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

13 3 11-11-2000

12 2 11-11-2000

3 Ana Rua B

2 João Rua A

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

Resumo

Modelo E-R (nível conceptual)

Para registar numa única tabela as encomendas registadas pelos clientes,

caímos numa redundância desnecessária. A solução mais adequada passa

pela definição de várias tabelas:

Nº encomenda

Nº cliente Cliente

Endereço Cliente DataEnc codProduto Produto Qtd

12 2 João Rua A 11-11-2000 1 A 12

12 2 João Rua A 11-11-2000 2 B 10

12 2 João Rua A 11-11-2000 3 C 16

13 3 Ana Rua B 11-11-2000 1 A 16

13 3 Ana Rua B 11-11-2000 3 C 18

Encomendas Cliente Pertence M N

Tem

1 N Produto Linha_Encom

endas

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Resumo

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

Encomendas Cliente Pertence M N

Tem

1 N Produto Linha_Encom

endas

Modelo Relacional (nível lógico)

codProduto Produto

1 A

2 B

3 C

Chave

Produto Nº

encomenda codProduto Qtd

12 1 12

12 2 10

12 3 16

13 1 16

13 3 18

Chave

Linha_Encomenda

Nº encomenda

Nº cliente DataEnc

12 2 11-11-2000

13 3 11-11-2000

Chave

Encomenda

Nº cliente Cliente

Endereço Cliente

2 João Rua A

3 Ana Rua B

Chave

Cliente

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Desta forma obtemos as seguintes tabelas normalizadas (3FN):

Resumo

Objectivos

1FN, 2FN, 3FN

Projecto Normalização de Factura Electrónica

Projecto Normalização de Escola

Cliente (numCliente, Cliente, endCliente)

Encomenda (numEncomenda, numCliente, dataEnc)

Linha_Encomenda (numEncomenda, codProduto, Qtd)

Produto (codProduto, Produto)

Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Top-Down

Bottom-up

Parte-se de uma análise das entidades e dos tipos de relacionamentos,

segundo o modelo E-R, e, com base numa análise dos diferentes tipos de

relacionamentos entre as entidades, determinam-se as tabelas a incluir na

BD;

Começa-se por considerar uma ou mais tabelas que contenham os atributos

ou campos considerados necessários à representação de cada aspecto da

situação e, com base num processo de normalização da informação,

determinam-se as tabelas necessárias;

Top-Down vs Bottom-Up

Levantamento de requisitos e Desenho de uma Base de Dados Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Top-Down vs Bottom-Up

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Estas duas estratégias não são mutuamente exclusivas. Na prática é

bastante proveitoso utilizar processos de uma e de outra;

Podemos começar por abordar uma situação pela estratégia top-down,

procurando captar, numa visão global, as entidades e relacionamentos

que nos parecem retratar adequadamente essa situação, e, numa fase

posterior, recorrer à estratégia bottom-up, para refinar a estrutura da

BD, procurando assegurar que as tabelas fiquem correctamente

normalizadas.

Top-Down vs Bottom-Up

Levantamento de requisitos e Desenho de uma Base de Dados Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Top-Down vs Bottom-Up

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Para a construção do modelo E-R, o analista de sistemas necessita recolher

dados relevantes junto do utilizador final;

Levantamento de Requisitos

O desenho de uma base de dados passa pela definição do modelo E-R

(captura da realidade):

Desenho de uma base de dados

Elaboração no papel de um primeiro esboço da estrutura geral da BD;

Definição exacta de cada entidade;

Determinação dos relacionamentos;

Revisão da estrutura obtida;

Top-Down vs Bottom-Up

Levantamento de requisitos e Desenho de uma Base de Dados Modelo Relacional (Nível Lógico)

Normalização de uma Base de Dados

Modelo E-R (Nível Conceptual)

Estratégias para a concepção de uma Base de Dados

Levantamento de Requisitos e Desenho de uma BD

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Desenho de um esquema de Bases

de Dados

Ricardo Campos ([email protected])

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Contextualização

A biblioteca do IPT tem por objectivo reorganizar a sua gestão. Em particular,

pretende passar de um sistema centralizado para um sistema descentralizado

em várias bibliotecas satélites;

Os documentos da biblioteca, designados por publicações, têm associado a

si, um tipo de publicação: livros, revistas, jornais, e-books, etc…;

Enquadram-se numa categoria (exemplo: Informática; Medicina, etc…);

E podem ser escritos por vários autores e quando aplicável editados por uma

editora;

Levantamento de requisitos Desenho de uma Base de Dados para uma biblioteca

Desenho da Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Cada publicação é identificada por um código da publicação e compreende

um conjunto de características: título; idioma; número de páginas; imagem da

capa; formato; descrição da obra; ISBN; local de publicação; depósito legal e

número total de publicações disponíveis no conjunto de todas as bibliotecas;

Nenhuma das características é de preenchimento obrigatório (até porque as

revistas não têm por exemplo um autor). Por outro lado, características como

o ISBN que dizem respeito a livros, denominam-se por ISBN, mas entendem-

se por ISSN, quando por exemplo a publicação é uma revista;

Cada exemplar de uma publicação tem uma cota única que o identifica de

forma inequívoca;

Em cada uma das bibliotecas satélites, deve existir pelo menos um (podendo

existir obviamente mais) exemplar de cada publicação;

Contextualização

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Além do mais, cada exemplar tem como características a data de publicação;

a data de aquisição; o número de edição; a possibilidade de ser uma

publicação passível de ser ou não requisitada; um campo que valide se está

ou não requisitado; um campo observações para descrever se a obra está

danificada, etc… e um campo CD que indique se o recurso vem

acompanhado de cd ou não;

Apenas a data de aquisição é de preenchimento obrigatório e o campo cd

deve ser entendido como DVD quando for o caso;

Cada uma das bibliotecas deve ter conhecimento em tempo real, do número

publicações disponíveis;

Contextualização

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

A inscrição dos leitores é válida em qualquer uma das bibliotecas. São

identificados por um código e tem como características o nome, morada,

contacto, email, etc…;

Pertencem a um tipo de leitor, ao qual está associado um prazo de entrega.

Por exemplo Professores tem direito a 5 dias, Alunos de Pós-Graduação 3

dias, etc…

A biblioteca deverá guardar informação (ou seja o histórico) relativa à

requisição das publicações por parte dos leitores. Assim, necessita registar a

data de requisição, a data prevista de entrega e um campo que registe se o

recurso já foi devolvido ou não;

Contextualização

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Todas as aquisições devem ser registadas no sistema através de um

formulário criado para o efeito;

Para isso é necessário considerar a criação de novas fichas, a consulta de

publicações requisitadas, a consulta de publicações em atraso e a consulta de

publicações por tipo de publicação;

Devem também ser criados os respectivos formulários que permitam inserir o

tipo de publicação, a categoria, a biblioteca onde existe o respectivo exemplar,

etc….;

Gestão dos Recursos

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Objectivos

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Gestão dos Leitores

Todas as novas inscrições devem ser registadas no sistema através de um

formulário criado para o efeito;

Para isso é necessário considerar a criação de novas fichas, bem como a

consulta de fichas existentes;

Objectivos

Devem também ser criados os respectivos formulários que permitam inserir o

tipo de leitor, etc….;

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Requisição de Livros

Objectivos

Todas as requisições devem ser registadas no sistema através de um

formulário criado para o efeito;

Para isso é necessário considerar a criação de novas fichas, bem como a

consulta de fichas existentes;

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Deve ser construído um relatório com informações relativas ao leitor e

respectiva publicação cuja requisição caducou;

Emissão de Relatórios

Objectivos

Deve ser construído um relatório com informações relativas às publicações,

agrupadas por tipo de publicação;

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Menus

Objectivos

Deve ser criado um menu para cada um dos pontos anteriores e um menu

principal com botões para cada um deles;

Deve ser criada uma macro que abra o menu principal, assim que o Access

seja executado;

Macros

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Publicação vs tipoPublicação

Os documentos da

biblioteca, designados por

publicações, têm associado

a si, um tipo de publicação

Publicação

1 pertence tipoPublicação

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Modelo Conceptual (modelo E-R)

N

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Categoria

Categoria

As publicações

enquadram-se numa

categoria

1 pertence Publicação

1 pertence tipoPublicação

N

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Modelo Conceptual (modelo E-R)

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Editora

Editora

As publicações,

quando aplicável,

podem ser editadas

por uma editora

edita

N

1

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Modelo Conceptual (modelo E-R)

Categoria 1

pertence Publicação

1 pertence tipoPublicação

N

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Autor

As publicações

podem ser

produzidas por um

ou mais autores

Autor

ob

ra

M

N

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Modelo Conceptual (modelo E-R)

Editora edita

N

1

Categoria 1

pertence Publicação

1 pertence tipoPublicação

N

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Exemplar

Uma publicação

tem um conjunto

de exemplares

tem

N

1

Exemplares

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Modelo Conceptual (modelo E-R)

Autor

ob

ra

M

N

Editora edita

N

1

Categoria 1

pertence Publicação

1 pertence tipoPublicação

N

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Biblioteca

Deve existir pelo

menos um exemplar

de cada publicação

em todas as

bibliotecas.

Biblioteca tem 1 N

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Modelo Conceptual (modelo E-R)

tem

N

1

Exemplares

Autor

ob

ra

M

N

Editora edita

N

1

Categoria 1

pertence Publicação

1 pertence tipoPublicação

N

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Leitor

A inscrição dos

leitores é válida

em qualquer uma

das bibliotecas.

Leitor requisição N M

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Modelo Conceptual (modelo E-R)

Biblioteca tem 1 N

tem

N

1

Exemplares

Autor

ob

ra

M

N

Editora edita

N

1

Categoria 1

pertence Publicação

1 pertence tipoPublicação

N

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

tem

N

1

tipoLeitor

Leitor vs tipoLeitor

Um leitor

pertence a um

determinado

tipo de leitor.

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

Modelo Conceptual (modelo E-R)

Leitor requisição N M

Biblioteca tem 1 N

tem

N

1

Exemplares

Autor

ob

ra

M

N

Editora edita

N

1

Categoria 1

pertence Publicação

1 pertence tipoPublicação

N

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Modelo Lógico (modelo relacional)

Desenho de uma Base de Dados para uma biblioteca Levantamento de requisitos

Desenho da Base de Dados

codPublicacao Titulo

Idioma numPags

imagemCapa Formato

descricaoObra numPublDisp

ISBN depositoLegal

localPubl codCategoria codTipoPubl codEditora

Publicacao

Categoria

codCategoria desCategoria

tipoPublicacao

codTipoPubl desTipoPubl

Editora

codEditora desEditora

Morada Contacto

Email

Autor

codAutor nome Email Obra

codAutor codPublicacao

tipoLeitor

codTipoLeitor desTipoLeitor prazoEntrega

codLeitor Nome

Morada Contacto

Email codTipoLeitor

Leitor

Cota Obs

dataAquisicao dataPublicacao

numEdicao possbRequisitar

Cd Requisitado

codPublicacao codBiblioteca

Exemplar

Biblioteca

codBiblioteca Morada

Contacto Email

Requisicao

Cota codLeitor

dataRequisicao dataEntrega Devolvido

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Desenho de um esquema de Bases

de Dados em Access 2010

Ricardo Campos ([email protected])

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Introdução

O Access é um SGBD relacional gráfico;

Deverá ser a BD mais difundida a nível de computadores pessoais;

Introdução

Ambiente de trabalho do Access 2010 Desenvolvimento da Base de Dados em Access 2010 Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

É o local onde as informações são armazenadas, devendo estas ser planeadas

de modo a contenham informação sobre um só assunto. Uma tabela armazena

os dados em registos (linhas) e campos (colunas);

Tabelas

São janelas, visualmente mais fáceis de se entenderem, destinadas à edição é

à visualização dos dados das tabelas e consultas;

Formulários

São pesquisas efectuadas aos dados que reúnem informação de uma ou mais

tabelas e permitem a sua visualização por meio de formulários e relatórios.

Uma consulta pode ser pensada como uma pesquisa de um conjunto

particular de dados;

Consultas

Elementos

Desenvolvimento da Base de Dados em Access 2010

Introdução

Ambiente de trabalho do Access 2010

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Os relatórios, podem ser oriundos de tabelas ou consultas, são similares aos

formulários, com a diferença de serem orientados para a impressão dos dados

na impressora;

Relatórios

Permitem executar acções automaticamente. Uma Macro pode ser atribuída a

um botão, que por sua vez pode ser incluída num formulário. Por exemplo, é

possível executar uma macro, que imprime um relatório ou abre um formulário,

quando o utilizador carregar num botão;

Macros

Elementos

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Elementos

Tabelas

Consultas

Relatórios Formulários

Macros

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Elementos

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Clique aqui para iniciar

uma base de dados

totalmente em branco

Clique aqui

para abrir uma

base de dados

Clique aqui para

abrir uma base de

dados usada

recentemente

Clique aqui para

criar uma base de

dados baseada

num modelo

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Elementos

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Painel de

Navegação

Elementos

Janela de

Desenvolvimento

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Criação de Tabelas no Access

Depois dos dados normalizados, chegou a altura da criação das tabelas no

access:

Todos os dados no Access são armazenados em tabelas;

As tabelas organizam os dados em colunas (denominadas campos)

e em linhas (denominadas registos);

Exemplo de uma tabela de clientes:

Campos

Registos

Desenvolvimento da Base de Dados em Access 2010

Introdução

Ambiente de trabalho do Access 2010

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Há duas maneiras de criar tabelas no Access:

Escolhe-se o elemento Criar e uma das seguintes opções:

Criar tabela na Vista de Estrutura;

Criar tabela introduzindo dados;

Vamos escolher esta opção

Criação de Tabelas no Access

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Define-se o nome

do campo

Escolhe-se o tipo

de dados para o

campo respectivo

Descrição do campo

Vista dos campos da tabela

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

O campo pode ser de vários tipos de dados de acordo com a

informação a ser armazenada nesse campo:

A cada campo vai corresponder um nome;

O nome dum campo em Access pode ter até 64 letras, incluindo espaços

em branco. Os únicos caracteres que não pode ter são: ( . ), ( ! ) e ( ] );

Tipo de Dados de um campo

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tipo de dados Utilizar para Tamanho

Texto Texto ou combinações de texto e

números, tais como endereço. Também

inclui números que não requeiram

cálculos, tal como números de telefone,

Peças n.º ou códigos postais.

Até 255 caracteres.

Memo Texto longo e números, tais como notas

ou descrições.

Até 64.000 caracteres.

Número Os dados numéricos utilizados para

cálculos matemáticos, excepto cálculos

envolvendo dinheiro (utilize tipo de

moeda). Defina a propriedade

TamanhodoCampo para definir o tipo

de número específico.

1, 2, 4 ou 8 bytes. 16 bytes

apenas para ID.

Data/Hora Datas e horas. 8 bytes.

Moeda Valores de moeda. Utilize o tipo de

dados Moeda para evitar problemas de

conversão durante os cálculos. Com

uma precisão de 15 dígitos à esquerda

do ponto decimal e 4 dígitos à direita.

8 bytes.

Tipo de Dados de um campo

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tipo de dados Utilizar para Tamanho

Numeração automática Uma única sequência (incrementando

por 1) ou números aleatórios inseridos

automaticamente quando é adicionado

um registo.

4 bytes. 16 bytes apenas para

ID.

Sim/não Campos que irão conter apenas um de

dois valores, tais como Sim/não,

Verdadeiro/falso, Ligado/desligado.

1 bit.

Hiperligação É um campo que irá armazenar

hiperligações. Uma hiperligação pode

ser caminho UNC ou um URL.

Até 64.000 caracteres.

Assistente de pesquisa Cria um campo que lhe permite escolher

um valor de outra tabela ou de uma lista

de valores utilizando uma caixa de

combinação.

O mesmo tamanho que o campo

chave primária que é igualmente

o campo de pesquisa.

Attachment

Objectos (tais como documentos do

Microsoft Word, folhas de cálculo do

Microsoft Excel, imagens, sons ou

outros dados binários)

Até 1 gigabyte (limitado pelo

espaço em disco).

Objecto OLE

Igual ao anterior. Maioritariamente

usado em versões anteriores

Até 1 gigabyte (limitado pelo

espaço em disco).

Tipo de Dados de um campo

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tipo de dados Tamanho

Byte Guarda números inteiros entre 0 e 255. Ocupa 1

byte.

Integer Guarda números inteiros entre -32768 e 32767.

Ocupa 2 bytes.

Long Integer

Guarda números inteiros entre -2147483648 até

2147483647. Ocupa 4 bytes.

Single Guarda números com seis dígitos de precisão

desde -3.402823E38 até 3.402823E38. Ocupa 4

bytes.

Double Tipo por defeito. Guarda números com dez casas

de precisão desde 1.79769313486232E308 até

1.79769313486232E308. Ocupa 8 bytes.

Tipo de Dados de um campo

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

codAutor está

definido como

campo chave.

Outras propriedades

do campo

Exemplo de uma tabela

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Exemplo de uma tabela

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Carregue aqui para

modificar a forma

como vê a tabela

Design View

Datasheet View

Carregue aqui com o

botão direito do rato

para modificar a

forma como vê a

tabela

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Outras Propriedades do Campo

No caso de ser texto o valor máximo é de 255 caracteres. O valor à partida

é de 50 caracteres;

Tamanho do campo

Formato

O formato varia de acordo com o tipo de informação do campo;

Casas Decimais

O número de dígitos que surge depois do zero;

Legenda

Através desta propriedade atribui-se um nome ao campo;

Valor Predefinido

O valor que surge antes de se colocar um dado;

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Regra de Validação

A regra de validação a que as entradas de um campo tem de estar

submetidas;

Texto de Validação

O texto que surge quando não é colocada uma entrada válida.

Outras Propriedades do Campo

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tabela Categoria

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tabela tipoPublicacao

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tabela Editora

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tabela Publicacao

Deve introduzir-se para o campo NumPublicacoesDisp

o valor 1 como predefinido.

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Ver Slide seguinte para

ver como se define

uma chave estrangeira

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Para obter uma chave estrangeira, selecciona-se o campo Assistente de Pesquisa

Tabela Publicacao

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tabela Autor

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tabela Obra

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tabela Biblioteca

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tabela Exemplar

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tabela tipoLeitor

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tabela Leitor

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tabela Requisiçao

Deve introduzir-se para o campo

DataRequisicao a função Agora

como valor predefinido.

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tabelas criadas

Depois das tabelas criadas, falta apenas relaciona-las

Vista das tabelas criadas

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Para relacionar as tabelas, vamos ao menu Ferramentas da Base de

Dados e escolhemos a opção Relações

Relações no Access

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Por via de termos criado as tabelas incluindo as ligações através de

chaves estrangeiras (escolha do campo assistente de pesquisa), em

princípio as mesmas já estarão ligadas. Caso isso não aconteça, basta

clicar com o botão direito do rato e seleccionar a seguinte opção:

Relacionamentos já existentes

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Para relacionar as restantes tabelas basta arrastar as respectivas chaves

primárias para cima da chaves estrangeiras existentes nas tabelas

correspondentes;

Adicionar Relacionamentos

Quando tal é feito, aparece uma janela onde se devem seleccionar as opções

da figura seguinte:

Para as relações já

existentes deve clicar-se

em cima da linha e seguir

o mesmo procedimento,

por forma que seja

assumido o tipo de

relação;

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Vista Geral dos Relacionamentos

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Criação de Formulários no Access

Ao contrário das tabelas, a maneira mais fácil de criar um formulário é

através do Assistente. Para isso seleccione-se o Criar Assistente de

Formulários:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Escolhe-se a tabela ou consulta

que vai servir de base ao

formulário, neste caso será a

tabela Categoria

Campos disponíveis na tabela

ou consulta

Escolha de campos para o

formulário (1 de cada vez ou

todos ao mesmo tempo)

Campos que irão estar

disponíveis no formulário

depois de escolhidos

Avançar

Criação de Formulários utilizando o Assistente

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Nesta janela o utilizador tem a possibilidade de escolher o esquema (modo

como os dados vão ser apresentados) que pretende (Colunas, Tabela,

Folha de dados, Justificado)

Criação de Formulários utilizando o Assistente

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Por fim o utilizador pode dar um nome ao formulário e escolher o modo

como o formulário é aberto, ou para a introdução de dados ou para

alteração da estrutura do formulário.

Dar o nome ao

formulário

Modos de abertura do

formulário

Criação de Formulários utilizando o Assistente

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Possibilidade de

alternar entre a vista de

estrutura e de

formulário

Caixa de Ferramentas

Propriedades

Barra de ferramentas da estrutura do formulário

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Devem ser inseridos 7 botões de acção em cada um dos formulários:

Ir para o registo seguinte

Ir para o registo anterior

Ir para o primeiro registo

Ir para o último registo

Adicionar novo registo

Fechar formulário

Eliminar registo

Criação de botões para formulários

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Para criar os botões de acção o ícone do assistente tem de estar activo.

Criação de botões para formulários

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Desenha-se o botão no formulário e surge:

Na janela do assistente, à esquerda estão as categorias das acções e à

direita estão as acções.

Criação de botões para formulários

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Depois de escolhida a categoria e a acção, pressiona-se o botão seguinte:

Surge a seguinte janela onde o utilizador pode escolher texto ou uma

imagem para o botão:

Escrever Texto

Escolher imagem

Criação de botões para formulários

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Por fim o utilizador pode dar um nome ao botão e concluir:

Criação de botões para formulários

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

É possível seleccionar cada um dos componentes do formulário e editar as

respectivas propriedades:

Propriedades dos vários componentes do formulário

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Alterações às propriedades do formulário Categoria

Seleccionam-se as propriedades do formulário e editam-se os seguintes

campos:

Legenda = Nova Categoria;

Botões de navegação = não;

Linhas divisoras = não;

Selectores de registos = não;

Seleccionar os rótulos codCategoria e desCategoria previamente

introduzidos e adaptá-los para nomes mais apropriados;

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Pop-Up = sim;

Esta opção (existente na tab Outra) permite que a janela do

formulário seja redimensionada ao centro (com os respectivos

botões minimizar, fechar, etc).

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Vista do formulário Categoria

Depois de os registos terem sido introduzidos através do formulário é

possível observar a tabela Categoria e os respectivos dados. A utilização

de formulários para introduzir dados é mais fácil do que através da tabela:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário tipoPublicacao

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Editora

Deve seleccionar-se a propriedade máscara de introdução do campo

contacto:

Escolher a opção telemóvel:

Se ficassemos pela opção telemóvel,

ficariamos condicionados a formatos

do estilo (9..). Por isso, fazemos

seguinte e introduzimos a seguinte

máscara: 000000000;0;_

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Editora

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Autor

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Publicacao

Para os campos estrangeiros da tabela Publicacao, campos que são chave

noutras tabelas, caso do codCategoria e codTipoPublicacao, é

automaticamente inserida uma caixa de combinação. As caixas de

combinação mostram uma lista de valores para escolha, neste caso uma lista

de valores presentes na tabela Categoria e TipoPublicacao, respectivamente.

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Em modo de visualização é possível reparar que apenas aparecem os

códigos (tanto o da categoria como do tipo Publicação)

Seleccione-se em modo de vista de estrutura o campo

Agora nas propriedades, seleccione a query existente em Row Source

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Agora nas propriedades, seleccione-se Column Count e coloque-se o valor a

2 (para que apareça para lá do código a respectiva descrição) e seleccione-

se Column Widths definindo-se 0cm para a 1.ª coluna (por forma que fique

oculta)

Formulário Publicacao

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Selecciona-se também o campo da designação para que apareça

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Publicacao

O Formulário Publicação ainda não está no entanto concluído. Dentro

deste formulário, deveremos incluir 1 sub-formulário que lhe diz

directamente respeito:

Associação de um Autor a uma Publicação;

Para isso, na vista de estrutura do formulário Publicação, deveremos

seleccionar o SubFormulário:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Publicacao

No assistente de sub-formulários indicamos que os dados existem num

formulário:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Publicacao

Note-se que o formulário Obra não foi construído. Assim teremos que o

construir previamente:

Observe-se a inclusão dos botões de navegação

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Uma vez, o formulário Obra construído, iniciaremos no âmbito do

formulário Publicacao, a inserção do sub-formulário obra:

Formulário Publicacao

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Publicacao

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Publicacao

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Biblioteca

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Exemplar

Deve seleccionar-se a propriedade máscara de introdução do campo Data

de Publicação e Data de Aquisição:

Seleccionar Data Normal:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Exemplar

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário tipoLeitor

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Leitor

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Requisição

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Para que a Data de Requisição tenha sempre a data actual, seleccionamos

a propriedade OnEnter e inserimos o seguinte procedimento:

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Interessa-nos também que a Data de Entrega seja definida de forma

automática, considerando a Data de Requisição adicionado do campo Prazo

de Entrega da tabela TipoLeitor

Acontece que o nosso formulário Requisicao tem como base a tabela

Requisição o qual não contempla o respectivo prazo de entrega. Vamos por

isso fazer um pequeno ajustamento, o qual passa por criar uma consulta.

Voltaremos aqui mais tarde. Agora vamos ver como se fazem consultas.

Formulário Requisicao

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Criamos a consulta QueryPrazoEntrega:

Formulário Requisicao

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Depois de termos estudado as consultas, já sabemos agora como resolver o

problema acima descrito

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Requisicao

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

De seguida acrescentamos ao formulário uma text box

associada ao campo PrazoEntrega da nossa consulta

QueryPrazoEntrega

A Data de Entrega será definida de acordo com o seguinte: seleccione-se a

propriedade OnEnter e insira-se o seguinte procedimento:

Considerando que o campo PrazoEntrega funciona apenas como campo

auxiliar é possível ocultar a textbox

As datas introduzidas automaticamente pelo sistema em Data Requisição

e Data Entrega, são meramente indicativas e podem obviamente ser

alteradas pelo funcionário, bastando para tal seleccionar o calendário

existente no formulário

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Formulário Requisicao

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

E introduzir o seguinte procedimento Forms![Exemplar]![Requisitado].Value = Not

(Forms![Requisicao]![Devolvido].Value)

O campo Devolvido da tabela Requisicao deve ter sempre o valor inverso do

campo Requisitado da tabela Exemplar. Como é óbvio. Se uma publicação foi

devolvida então já não se encontra requisitada e o inverso também.

Para que isso aconteça, deve seleccionar-se a propriedade Ao Sair (On Exit) do

campo de Verificação Devolvido

Formulário Requisicao

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Para criar os menus de navegação: Criar - Navegação.

Menu de Navegação

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

A opção “Separadores Horizontais, 2 Níveis” permite ter um menu principal

e respetivos sub-menus

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Menu Principal

Novas Categorias

Novos Tipos de Publicação

Novas Editoras

Novos Autores

Novas Bibliotecas

Novos Exemplares

Novos Leitores

Novos Tipos de Leitores

Nova Requisição

Gestão de Recursos

Gestão de Leitores

Gestão de Requisições

Menu de Navegação

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Menu de Navegação

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Nos sub-menus basta escrever o nome do formulário (e.g. TipoPublicacao)

na caixa onde diz “Adicionar Novo” e o mesmo aparece automaticamente.

Uma vez inserido é possível alterar a designação para algo mais

personalizado (e.g. Tipo de Publicação)

Nota: As caixas (a laranja) podem ser facilmente redimensionadas)

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Criação de Consultas no Access

Tal como nas tabelas, a maneira mais fácil de criar uma consulta é através

da opção de Design:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

De seguida aparece uma janela com as tabelas disponíveis para consulta

Tabelas disponíveis em

Gestão de Bibliotecas Clicar depois de

escolher as tabelas

Criação de Consultas no Access

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Suponhamos que queremos saber a que tipo de publicação corresponde

uma dada publicação. Adicionamos as duas tabelas:

Exemplo 1 de criação de uma consulta

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

A janela das consultas está dividida de forma que as tabelas fiquem na

parte de cima da janela e os campos fiquem na grelha da parte de baixo da

janela:

Para adicionar os

campos à grelha, basta

dar 2 clics sobre os

campos na tabela

pretendida.

Exemplo 1 de criação de uma consulta

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Guardamos a consulta

Para visualizarmos o resultado final da consulta, seleccionamos a vista de

folha de dados

Exemplo 1 de criação de uma consulta

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Exemplo 2 de criação de uma consulta

Suponhamos agora que queremos consultar todas as publicações de um

dado tipo. Para isso o sistema deve interrogar o utilizador sobre qual o tipo

de publicação a que quer restringir a sua consulta:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

A execução da consulta, provocará uma pergunta por parte do sistema que

restringirá o conjunto de resultados apenas aos títulos cujo tipo de

publicação pertencer, no caso do exemplo, a Livro:

Exemplo 2 de criação de uma consulta

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Exemplo 3 de criação de uma consulta

O utilizador poderá no entanto achar mais conveniente ter uma consulta

directamente relacionada com o tipo de publicação Livro, ao invés de lhe

ser feita uma pergunta sobre qual o tipo de publicação:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

A execução da consulta, retornará todos os títulos cujo tipo de publicação

seja Livro. Obviamente este tipo de consulta é mais restritivo, uma vez que

o utilizador não pode escolher o tipo de publicação. Tal não quer dizer que

não seja útil.

Exemplo 3 de criação de uma consulta

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Exemplo 4 de criação de uma consulta

Suponhamos agora que queremos listar todos os Leitores cuja primeira

letra do nome começa em R:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

No âmbito da nossa aplicação vamos criar as seguintes consultas:

Consulta de Publicações Requisitadas e Não Requisitadas

Consulta de Publicações com Devolução em Atraso

Etc…

Consultas a criar

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Consulta de Publicações Requisitadas e Não Requisitadas

A ideia é construir uma consulta que pergunte qual a nome da publicação

cuja informação queremos consultar. A informação que queremos devolver,

é o próprio nome da publicação, se a mesma está ou não requisitada, a

cota, qual o nome do leitor que tem a obra requisitada, qual a data prevista

de devolução e o nome das bibliotecas onde se encontra disponível:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Consulta de Publicações Requisitadas e Não Requisitadas

Observe-se que especificamos como critério do campo título, uma

pergunta ao utilizador : [Qual o nome da publicação ?]

Para facilitarmos a vida ao bibliotecário, por forma que não seja exigível

este digitar o nome completo da publicação, acrescentámos ao critério,

como já tínhamos feito em consultas anteriores, a palavra Como.

Assim o critério: Como [Qual o nome da publicação ?], vai permitir que o

utilizador da Base de Dados digite como nome da publicação, não

necessariamente o nome completo da obra, mas apenas as primeiras

letras seguido de *.

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Consulta de Publicações Requisitadas e Não Requisitadas

O resultado final, é o conjunto de todos os títulos começados pela letra O,

a respectiva biblioteca, a Cota da publicação, informação se o livro está ou

não requisitado, por quem e a data de entrega prevista:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Consulta de Publicações c/Devolução em Atraso

A ideia é construir uma consulta que devolva o nome do leitor, o nome da

publicação que deveria ter sido devolvida, a cota, a data prevista de ser

entregue e ultrapassada, restringida apenas à esfera da Biblioteca Central.

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Observe-se que especificamos como critério do campo DesBiblioteca, a

palavra “Biblioteca Central” por forma que restrinja apenas às publicações

existentes nesta Biblioteca;

Consulta de Publicações c/Devolução em Atraso

Observe-se que especificamos como critério do campo DataEntrega, a

condição <Agora(). Tal condição, permite que apenas sejam seleccionados

registros cuja data prevista de entrega da publicação já tenha sido

ultrapassada, em comparação com a data actual, que o sistema devolve

através da função Agora()

O resultado final, é o nome do Leitor, com indicação do título em atraso,

respectiva cota e data prevista de ter entregue a publicação

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tal como os formulários, a maneira mais fácil de criar um relatório é

através da opção Criar Relatórios utilizando o Assistente:

Criação de Relatórios no Access

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Avançar

Campos que irão estar

disponíveis no relatório depois

de escolhidos

Escolha de campos para o

relatório (1 de cada vez ou

todos ao mesmo tempo)

Campos disponíveis na tabela

ou consulta

Escolhe-se a tabela ou

consulta que vai servir de

base ao relatório, neste caso

será a consulta

CTipoPublicacao

Criação de Relatórios no Access

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Conforme os relacionamentos, o próprio access define o modo como os dados

irão ser apresentados.

Criação de Relatórios no Access

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Criação de Relatórios no Access

Podemos definir sequências de ordenação dos registos.

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Criação de Relatórios no Access

Nesta janela, escolhemos o esquema do relatório, a orientação do papel e

podemos ajustar a largura dos campos.

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Por fim, dá-se o nome e conclui-se a criação do relatório.

Criação de Relatórios no Access

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Criação de Relatórios no Access

Depois do relatório concluído deveremos mudá-lo para vista de estrutura por

forma a adaptar os campos (nomes, tamanhos, etc…)

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Uma vez concluídos os relatórios, poderemos construir um formulário

Gestão de Relatórios os relatórios que assim entendermos.

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Macros

As macros servem para automatizar tarefas. Por exemplo a macro

Autoexec permite executar uma acção quando a base de dados é aberta

Neste caso pretendemos abrir o formulário principal quando a base de

dados for aberta:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Macros

Escolhe-se a acção AbrirFormulário (no caso o formulário geral)

Indicar acção:

Indicar nome

do formulário:

A macro tem de ser obrigatoriamente gravada com o nome Autoexec:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Macros

Outra forma de fazer isto sem recurso a macros: Menu Ficheiro – Opções:

Introdução

Criação de Tabelas

Criação de Relações

Criação de Formulários

Criação de Consultas

Criação de Relatórios

Criação de Macros

Desenvolvimento da Base de Dados em Access 2010 Ambiente de trabalho do Access 2010

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Transacções e Recuperação

Ricardo Campos ([email protected])

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Definição de Transacção

Uma transacção consiste num conjunto de acções originadas por um utilizador

ou aplicação que, como um todo, acedem a uma base de dados para

consultar ou modificar o seu conteúdo;

Trata-se de uma unidade de trabalho que só pode ser executada na totalidade;

A componente de gestão de transacções garante que a base de dados se

mantém num estado consistente (correcto) apesar de falhas no sistema (explo:

falta de energia eléctrica, problemas com o sistema operativo) e de

transacções falhadas;

CONTA

A CONTA

B

Débito 100 Crédito 100

BD

Inconsistente

Falha no sistema

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

A transacção exibe as seguintes características:

Atomicidade

Grupo indivisível (todas ou nenhuma).

Integridade

Passar de um estado de integridade para outro.

Isolamento

Uma transacção deve ser executada como se fosse única. Ou seja, num

ambiente concorrente não pode haver interferências entre as

transacções. O resultado final deve ser equivalente a uma execução em

série (não concorrente).

Características da Transacção

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Comandos de Transacção

ROLLFORWARD – refaz tudo como estava anteriormente

COMMIT – actualização permanente na BD das alterações efectuadas desde o

ultimo commit ou início de transacção. O COMMIT torna definitivas as

transacções efectuadas durante a transacção.

ROLLBACK – desfaz todas as alterações desde o último commit ou início de

transacção.

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Um sistema de bases de dados, como qualquer outro sistema, está sujeito à

ocorrência de falhas que podem por em causa a integridade da base de

dados;

A recuperação / tolerância de falhas é a actividade que tem por objectivo o

restaurar da base dados, após a ocorrência de uma qualquer falha, para um

estado de integridade garantido;

Os mecanismos de recuperação dos sistemas de bases de dados baseiam-se,

fundamentalmente, na utilização de formas de redundância que, na prática,

quase duplicam a própria base de dados

Definição de Tolerância a Falhas

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Backups:

Transaction Logging

São cópias de segurança executadas periodicamente abrangendo toda a

base de dados

É o registo das operações efectuadas à base de dados por todas as

transacções posteriores ao último backup.

Enquanto o backup é um mecanismo de recuperação que permite actuar ao

nível de toda a base de dados, repondo-a por completo num estado passado,

o transaction log permite refazer as transacções ocorridas desde esse último

backup (rollforward).

Mecanismos de Recuperação

Bases de Dados © Ricardo Campos [ h t t p : / / w w w . c c c . i p t . p t / ~ r i c a r d o ]

Tipos de Falhas

Falha de disco

Falha mais grave;

Necessário reconstruir a base de dados através do backup e do

transaction log (rollforward);

Falha de sistema

Necessário fazer rollback até um estado válido;

Falha de transacção

Falha menos grave;

Recupera-se o estado anterior à transacção através do transaction log.