1
1Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Informática II – Cap. 5-2Bases de Dados - MsAccess
•Filipe Caldeira - 2001
2Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Introdução
Porquê a utilização de Sistemas de Bases de Dados (SBD)?– Armazenamento dos dados de uma forma
consistente ( a informação não deve conter informação divergente sobre o mesmo facto), de fácil acesso usando linguagens de consultas e com mecanismos de segurança para o acesso à informação
2
3Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Dados vs Informação
• Dados só se transformam em informação quando relacionados ou interpretados de alguma forma.
• As pessoas, ao tomarem decisões, utilizam a informação e não os dados.
• A informação é uma necessidade diária em qualquer acto de gestão e tem um papel fundamental na previsão de actividades e resultados futuros de uma empresa.
4Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Sistemas de Bases de Dados
Funções de um SGBD• Descrição
• Manipulação⇒Consulta⇒Inserção⇒Actualização
• Controlo⇒Confidencialidade⇒Segurança
Base de Dados
SGDB
AplicaçãoA
AplicaçãoB
AplicaçãoC
SGBDSistema de Gestão de Bases de Dados
3
5Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Funcionalidades de um SGBD
• Conjunto de programas para aceder aos dados
• Evitar redundâncias e inconsistências
• Facilitar o acesso aos dados
• Permitir acesso simultaneo à informação
• Garantir a segurança dos dados
• Garantir integridade da informação, de acordo com restrições pré-definidas
6Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Exemplo
Um banco quer guardar a informação dos seus clientes e das contas.
Para além de guardar a informação, o banco precisa de programas para• Fazer débitos e créditos numa conta
• Abrir e fechar contas
• Ver o saldo de uma conta
• Fazer os estratos das contas
4
7Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Vantagens
• Facilidade de partilha dos dados
• Diminuição dos custos de utilização e de pesquisa
• Diminuição dos custos de manutenção e de exploração
• Prevenção da redundância e da ambiguidade dos dados
• Consistência na formatação dos dados
• Suporte à criação de múltiplas formas de visualização da informação
8Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
TabelasOs dados estão armazenados em forma de
tabelas nas diferentes bases de dados, comoo ORACLE e o ACCESS.
Para o desenho e a construcção de SBDs são utilizados modelos conceptuais, como o modelo Entidade-Relações
O objectivo principal é o de providenciar um modelo independente do método de armazenamento e acesso de dados.
5
9Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Modelo Entidade-Relação (ER)Identificação das “coisas” de maior importância
num dado sistema do mundo real: as entidades, as propriedades das entidades (os atributos), e a forma como se relacionam entre si (as relações)
São fácilmente compreendidos pelos não-especialistas
O diagrama ER é o ponto de partida para o desenho da base de dados.
10Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Conceitos do modelo ER (1)Entidades
– Um conjunto de objectos que se podem distinguir(identificar)
– Exemplo:⇒O conjunto de todos os clientes do banco.⇒O conjunto de todas as contas do banco.
Atributos– Propriedades de um entidade
– Exemplos: Nome, telefone e morada dos cliente
6
11Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Conceitos do modelo ER (2)Relações
• Conjunto de associações entre várias entidades
Cliente Conta
33 193710
22 Maria Lisboa 3847101
11 Manuel Beja 168389
11111 100.000$00
11112 50.000$00
11113 60.000$00
relação
conjunto entidade
entidade
12Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Tipos de relaçõesRelação “um para um” (1:1)
– Uma pessoa só tem um nº de bilhete de identidade.
Relação “um para muitos” (1:N)– Uma turma tem vários alunos, mas um aluno só
pertence a uma turma.
Relação “muitos para muitos” (N:M)– Uma conta bancária pode pertencer a vários clientes
e vice-versa.
7
13Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Como distinguir entidades?Chaves
– Um ou mais atributos que permitem distinguir entre entidades, i.e permitem identificar (inequivocamente) cada uma das entidadesde um conjunto de entidades.
– Exemplo:• O atributo nº de cliente da entidade clientes.
Nas relações a chave corresponde à união das chaves das entidades associadas à relação
14Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Exemplo de um modelo ER
n º c lien tes
n om e m o rad a te lefon e
con tas
d a ta n º sa ld o
M :N
c lien tes/c on tas
8
15Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Modelo Relacional /Tabelas
Como implementar o modelo ER? – No modelo relacional em forma de tabelas• Dado um diagrama ER, que tabelas se devem
criar?⇒A cada conjunto entidade, e a cada conjunto
relação, vai corresponder um tabela.• Com que atributos?
16Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Elaborar um modelo de dados
Determinar o alcance (suas fronteiras) da análise
Identificar as entidades
Identificar as relações entre as entidades
Identificar os atributos das entidades e das relações
Identificar a chave de cada entidade
9
17Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Entidades
Conjunto entidade E com n atributos a1,…,an
– Deve criar-se uma tabelacom n colunas, uma para cada atributo.
nome morada telefone
clientes ...
clientes nome morada telefone
18Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
RelaçõesConjunto relação R
entre entidades E1,…,Em com k atributos adicionaisa1,…,ak.
Então os atributos da relação correspondem às chaves das entidades mais os k atributos adicionaisa1,…,ak.
clientes
nome morada telefone
contas
data saldo
M:N
clientes/contas
clientes/conta nº cliente data
chave(E )1 chave(E )2
atributo(R)
10
19Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
TabelasClientes número nome morada telefone
141 João Évora 12635142 Maria Lisboa 61623918
Conta número saldo100 200.000$00200 50.000$00300 100.000$00
Conta/Clientes
Númerocliente
NúmeroConta
Data
141 100 21.10.1998142 100 22.10.1998142 200 27.11.1998
20Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Criação de Tabelas em Access•Criar uma Base de Dados nova, em que se irá inserir as tabelas.
–Ficheiro > Nova > Base de Dados -> Dar nome ao ficheiro e especificar a pasta onde ficará
•Criar tabela Criar tabela
11
21Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Criação de Tabelas em Access•Cria-se uma nova tabela em Vista de Estrutura
•Zonas no ecrã para a construcção de tabelas– Nome do Campo
•Poderão ser 64 caracteres incluindo espaços
– Tipo de Dados•Texto (alfanumérico), Número (dados numéricos que podem ser utilizados para cálculos), Data/Hora, Moeda, Númeração Automática (para as chaves, autoincrementável), Sim/Não (booleana)
–Descrição (Descrição do campo)
–Propriedades do Campo (Geral ou Pesquisa)•Para permitir alterar tamanho dos campos, controlos de verificação, buscas em outras tabelas, etc.
22Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Tabelas
ChaveSe não fôr indicada nenhuma chave primária, então o Access propõe a criação de uma chave.
Nome da tabelagravar comFicheiro > Guardarcomo
12
23Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Lookup Lists (Listas de Pesquisa) - 1•Automatização a nível da tabela para a selecção de informação de um atributo (coluna)
–Criar tabela auxiliar para armazenar as actividades económicas
24Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Lookup Lists (Listas de Pesquisa) - 2–Regressar à tabela“Clientes” e aceder às propriedades Pesquisado campo “Actvidade Económica” e alterá-las como se mostra ao lado
–Agora não é mais preciso inserir os conteudos destecampo, mas sim seleccioná-los.
13
25Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Inserção de mais duas tabelas–Tabela auxiliar “Tipos de Cursos”
–Tabela “Cursos Facturados”
26Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Como é feita a inserção com Pesquisa na Tabela
14
27Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Definir Relações entre as Tabelas–Aceder ao menu “Ferramentas” e seleccionar “Relações” ou botão
Criar ligação–Em mostrar tabela, adicioná-las todas
–Arrastar e largaro rato do campona tabela “um”para o resp. campo na tabela“muitos”
28Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Criar Relações entre Tabelas
15
29Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Tabelas Criadas
30Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Estruturação de bases de dados Access
•Determinar as tabelas necessárias à base de dados
•Determinar os atributos de cada tabela
•Determinar os atributos com valores exclusivos, i.e., os atributos chaves
•Determinar as relações entre as tabelas
•Aperfeiçoar a estrutura
•Adicionar os dados
16
31Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Consultas•Não basta armazenar os dados.
−Há que, pelo menos, poder consultar os dados armazenados.
•O que são consultas?−Analisar a informação nas tabelas para obter um conjunto filtrado de informação
·Que tipo de consultas existem?−Selecção, Projecção, Junção, ...
32Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Consultas assistidas em Access•Consultas mais usadas
–seleccionar um conjunto de campos de uma ou várias tabelas (projecção)
–criar condições que permitam filtrar um conjunto de registos (selecção)
–operações estatísticas sobre os registos
17
33Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Consulta de SelecçãoSeleccionar Consultas > Criar consulta na vista de estrutura
Seleccionar quais as tabelas necessárias à consulta pretendida
34Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Selecção de CamposArrastar os campos pretendidos para as colunas da consulta p/ a zona (QBE)
Zona Query-by-Example (QBE) onde são especificadas características específicas da consulta
18
35Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Executar Consulta–Activar a consulta seleccionando no menu Consulta > Executar ou através do botão
36Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Assistente de Consulta
19
37Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Consultas com Condição Simples•Exemplo:
–Seleccionar as empresas com actividades em Informática
Indicar critério
Resultado
38Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Consultas com Condição Múltipla•Exemplo:
–Seleccionar as empresas com actividades em Indústria ou estejam em Cascais
–Utilizar o LIKE para a selecção de substrings
20
39Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Consultas entre Tabelas
–Obter um conjunto de registos constituídos por dados provenientes de várias tabelas, havendo a necessidade de relacioná-las.
–A relação tem por base um campo comum(p.e. o Nº de Cliente)
40Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Exemplo: Junção das Tabelas Clientes e Cursos Facturados
21
41Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Consultas com Campos Calculados–Calcular “Total Curso”, ou seja multiplicar o “Nº de Participantes” e o “Custo por Participante”
•Ao criar uma Query seleccionar ambas as tabelas “Clientes” e Cursos Facturados”
•Seleccionar os registos (veja em baixo)
•Inserir no campo Total Curso: [Nº de participantes] * [Custo por Participante]
42Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Operações EstatísticasSeleccionar ΣΣΣΣ para agrupar– Como, por exemplo, o
somatório ou a média– Exemplo:
• Total gasto por cada cliente em cursos
Total Curso: Soma([Nº de participantes]*[Custo por Participante])
• Agrupar pela empresa (Group By)
22
43Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Consultas em SQL
•Linguagem comercial padrão para consultas no modelo relacional
•As consultas em SQL são feitas sempre segundo um esquema
Uma pergunta típica em SQL tem a forma
select A1, A2, ... , Am
from E1, E2, ... , En
where condition
atributos
Entidades (tabelas)
44Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Selecção•selecção de tuplos, ou linhas, com as seguintes condições {====, ≠≠≠≠, <<<<, ≤≤≤≤, >>>>, ≥≥≥≥}
•Exemplo:
select *from Clienteswhere Nº de Clientes > 2
23
45Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Projecção•selecção de colunas
•Exemplo:
select Clientes.Empresafrom Clientes
46Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Junção•De mais de uma tabela, por exemplo as tabelas “Clientes” e “Cursos Facturados”
select Clientes.Nº de Cliente, Clientes.Empresa, Cursos Facturados.Designação
from Clientes, Cursos Facturados where Designação = “Access 2000”
24
47Informática IIInformática II
Instituto Superior Politécnico de VISEUEscola Superior de Tecnologia
Mais ExemplosNº de Cliente, Empresa em Lisboa
Total do Curso agrupado pelas empresas
select Nº de Cliente, Empresafrom Clienteswhere Morada like “Access 2000”
select c.Empresa, cf.”Nº de participantes”, “Nº de participantes” * “Custo por Participante”
from Clientes c, Cursos Facturados cfgroup by c.Empresa