bases de dados - iptricardo/ficheiros/basedadosaccess2010.pdf · ter conhecimentos em bases de...
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:
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
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.