Bases de Dados
Tabelas, chaves, relacionamentos, integridade referencial
Informática Aplicada
Março 2010
Porque precisamos Base de Dados?
Imagina que representamos a informação assim:
“Os senhores J. Costa e F. Moreira, respectivamente com os números 51 e 102
trabalham no departamento de vendas, que tem o código 002. O primeiro tem
40 anos e o segundo 31. O Sr A. Silva tem o número 101, tem 27 anos e
trabalha no Marketing, departamento 001. O chefe do Marketing é o Sr. M, o
chefe das vendas é o Sr. V.”
Observamos que não é muito fácil ver de que se trata!
Assim, surge a questão_
 Como guardar esta informação de forma a:
 facilitar a manutenção dos dados?
 facilitar o tratamento informático?
 manter toda a informação relevante?
2
Informática Aplicada
Base de dados relacional
 A informação organiza-se em tabelas:
 campos (colunas)
 registos (linhas)
Tabela de Departamentos
No.
Nome
001
Marketing
002
Vendas
Director
Sr.M
Sr.V
Tabela de Empregados
Dep No. No Emp.
002
51
001
101
002
102
3
Informática Aplicada
Nome
J.Costa
A.Silva
F.Moreira
Idade
40
27
31
Bases de Dados
 Todas as empresas e organizações utilizam sistemas de gestão de
bases de dados nas várias camadas da sua actividade, tais como operação,
análise e arquivo.
 Só dessa forma conseguem lidar com as enormes quantidades de
informação que todos os dias recebem, produzem e utilizam.
 Neste módulo vamos conhecer os conceitos das bases de dados
relacionais e utilizar o Access para pôr em prática esses conceitos.
 Outros sistemas de bases de dados relacionais disponíveis:
 Oracle, DB2, Informix, etc...
4
Informática Aplicada
Tópicos
 Bases de dados relacionais
 Tabelas, campos, registos
 Chave primária
 Relacionamentos
 Integridade referencial
 Consulta de informação
 Query by example (QBE)
 Consultas de agregação
 Consultas de acção
 Interface
 Formulários
 Botões, sub-formulários
 Caixas de opções
5
Informática Aplicada
Sistema de Gestão de Base de Dados: Access
• Uma base de dados é constituída por um conjunto de objectos.
– Um objecto é uma estrutura de dados (como a informação é guardada), associada
a um conjunto de propriedades e métodos (como a informação é
manipulada).
• No Access os objectos são:
Nosso foco na disciplina será:
– Tabelas (Table) - armazenar de forma permanente a informação
– Consultas (Query) - seleccionar informação
– Formulários (Forms) -Visualizar e editar a informação
Outros tópicos (não abordados na disciplina):
– Relatórios (Reports) - Elaborar relatórios
– Macros - automatizar acções
– Módulos - programação
6
Informática Aplicada
Sistema de Gestão de Base de Dados: Access
• A utilização de uma instância de um objecto envolve dois passos:
– definição da estrutura - botão NEW
– executar o objecto - botão Open
– É possível redefinir os parâmetros de uma instância de um objecto: botão Design.
• Cada base de dados Access é constituída por um conjunto de instâncias dos
objectos que são guardados num único ficheiro de extensão MDB.
7
Informática Aplicada
Tabelas
• Toda a informação que é guardada de uma forma permanente pelo
"Access" é guardada em Tabelas.
• Cada tabela tem um numero ilimitado de registos (linhas) mas um
número fixo de campos (colunas).
• Para armazenar informação numa tabela é necessário, previamente, definir
a sua estrutura, ou seja especificar os campos que constituem a tabela.
8
Informática Aplicada
Tabelas: vista de estrutura
9
Informática Aplicada
Exercicio
10
Informática Aplicada
Definir Campos
 Definir os Campos
Um campo é definido por um nome e um tipo de dados. O
nome do campo identifica-o e possibilita aceder à informação nele
contida. Deverá ser significativo.
 A escolha do tipo de dados vai definir:
 a espécie de informação (números, texto, datas, etc) que o campo pode
armazenar
 o espaço (em bytes) que o campo ocupa.
11
Informática Aplicada
Tipos de Campos
A escolha de um tipo de campo está relacionada com as operações que se
pretendem efectuar nesse campo
12
Tipo de dado
Descrição
Tamanho
Text
caracteres alfanuméricos
até 255 bytes
Memo
caracteres alfanuméricos
até 32Kb
Number
valores numéricos
1, 2, 4 ou 8 bytes
Date/Time
datas e tempo
8 bytes
Currency
valores monetários
8 bytes
Counter
valores inteiros (actualizados
pelo Access)
4 bytes
Yes/No
valores booleanos
1 bytes
OLE
gráficos
até 128 Mb
Informática Aplicada
Campos com números
 Número
 inteiro pequeno (integer)
 inteiro grande (long integer)
 real (números com casas decimais) precisão simples (single)
 real (números com casas decimais) precisão dupla (double)
 Auto-numer preenche-se automaricamente com inteiros
(tem o tamanho de um inteiro longo)
 Exemplos:
 número de aluno
 código de disciplina
13
Informática Aplicada
Tipo Auto-Number
 Auto preenche-se com inteiros longos
 tem o tamanho de um inteiro longo
 Exemplos:
 número de aluno
 código de disciplina
14
Informática Aplicada
Propriedades
:
Associado a cada campo, existe um conjunto de propriedades,
que possibilitam refinar as características desse campo
15
Propriedade
Objectivo
Aplica-se
FieldSize
Limitar o tamanho de campos
Text e Number
Format
Altera a maneira como o valor do
campo é mostrado
Date, Number, Currency
Decimal Places
Nr. de casas decimais
Number, Currency
Default Value
Valor por defeito
Text, Number, Date/Time,
Yes/No
Validation Rule
definir o domínio do campo
Text, Number, Date/Time
Validation Text
Mensagem de erro mostrada
quando a regra de validação não é
verificada
Text, Number, Date/Time
Indexed
possibilita acelerar a procura
Text, Number, Date/Time,
Counter
Informática Aplicada
Validation Rule and Validation Text
Utilizadas para validar a informação, limitando os valores que um campo pode assumir
16
Validation Rule
Validation Text
>=0
Digite um numero positivo
>=0 AND =<20
Digite um numero entre 0 e 20
= OR >=100
Valor tem que ser zero ou maior
que 100
Like "K???"
Digite 4 caracteres, começando
por K
<=#1/1/99#
Digite data anterior a 1999
>=Date()
Digite data não anterior à actual
Informática Aplicada
Chave primária
 Campo ou conjunto de campos que identificam de forma única cada
registo. Por exemplo:
 número de aluno
 código de disciplina
 aluno+disciplina em notas
 A chave
 serve para nos referirmos a um determinado registo
 deve ser tão simples quanto possível
 Permitem estabelecer relações entre tabelas
 Para definir a chave da tabela, deverá :
 seleccionar o(s) campo(s) chave (modo DESIGN) e
 utilizar o ícon da "Toolbar" ou o menu Edit: Set primary Key.
Informática Aplicada
17
Editar Tabelas
 Inserir dados
 Eliminar registos
 Corrigir dados
18
Informática Aplicada
Relacionamentos
 Que nota tirou o António a Informática?
disciplinas
alunos
número
1
2
3
nome
António
Maria
Carolina
código
1
2
3
disciplina
matemática
informática
bases de dados e conhecimento
notas
aluno
1
1
2
19
Informática Aplicada
disciplina
1
2
3
nota
14,4
15,6
16,7
lançamento
22-06-95
5-06-95
1-06-95
ano
1
1
4
Relacionamentos
 Indicam que campos em tabelas diferentes têm a mesma informação
 alunos.número é relacionado com notas.aluno
 disciplinas.código é relacionado com notas.disciplina
 Conjunto de tabelas pode ser visto como um só.
 É necessário definir os relacionamentos no Access
20
Informática Aplicada
Relacionamentos
 Podemos obter a vista da informação ...
(será explicado nas consultas)
aluno
1
1
2
2121
nome
António
António
Maria
notas.disc
1
2
3
Informática Aplicada
disciplina
matemática
informática
bases de dados e
conhecimento
ano
1
1
4
nota
14,4
15,6
16,7
lançamento
22-06-95
5-06-95
1-06-95
Não faz sentido...
 Relacionar campos com informação diferente
 devem ter
 o mesmo tipo
 o mesmo tamanho
 excepção:
 AutoNumber e Long Integer
22
Informática Aplicada
Tipos de relacionamentos
 1 para N
alunos
número
1
2
3
23
nome
António
Maria
Carolina
Informática Aplicada
notas
aluno
1
1
2
disciplina
1
2
3
nota
14,4
15,6
16,7
lançamento
22-06-95
5-06-95
1-06-95
Tipos de relacionamentos
 1 para 1
alunos
número
1
2
3
24
nome
António
Maria
Carolina
Informática Aplicada
Tabela de
Cargos
aluno cargo
1
presidente
3
vogal
Tipos de relacionamentos
 N para N
alunos
número
1
2
3
nome
António
Maria
Carolina
1:N
1:N
disciplinas
código
1
2
3
disciplina
matemática
informática
bases de dados e conhecimento
relacionamento de N:N corresponde a dois rel. 1:N.
Utiliza-se uma tabela de junção.
25
Informática Aplicada
ano
1
1
4
Integridade referencial
 Regras que se podem impor aos relacionamentos.
 Impedem que haja referências a coisas que não existem.
 Se aplicarmos a integridade referencial
 Não podemos lançar notas de um aluno que não exista.
 Não podemos eliminar um aluno que tenha notas lançadas.
26
Informática Aplicada
Relacionar Tabelas
• No Access temos que indicar quais as tabelas que estão
relacionadas e os campos comuns:
– Menu Tools, Relationships.
Um exemplo com duas tabelas e relação 1 a N:
27
Informática Aplicada
Regras de Integridade
 Não pode inserir registos na tabela do lado N da relação se não existir o
correspondente registo na tabela do lado 1 da relação.
 Não pode eliminar registos na tabela do lado 1 da relação se existirem
registos correspondentes na tabela do lado N da relação.
28
Informática Aplicada
Join Type
29
Informática Aplicada
Exercícios
1.Estabeleça no Access os relacionamentos na base de dados dos alunos.
Imponha as restrições de integridade e veja qual o tipo de relacionamentos
(deve ser 1:N).
2.O que acontece se tentar lançar uma nota a um aluno que não existe?
3.Acrescente a tabela dos Cargos. Defina um relacionamento de 1:1 entre a
tabela de Alunos e a tabela de Cargos. Para o relacionamento ser de 1:1 é
necessário definir o campo aluno na tabela de cargos como chave.
4.Suponha que é necessário acrescentar informações sobre professores. Crie
mais uma tabela Profs com o código de um professor, nome, categoria
profissional, e data de entrada ao serviço. Qual é o campo chave desta
tabela?
5.Acrescente à tabela disciplinas um campo Regente que indica qual o
professor regente da disciplina. Como se vai referir ao professor? Qual o
tipo de dados do campo?
30
Informática Aplicada
+ Exercícios
6.Um professor pode ser regente de várias disciplinas. Que relacionamento tem
que introduzir na base de dados para relacionar as tabelas Profs e Disciplinas?
Defina o tipo de relacionamento.
7.Suponha agora que quer guardar informação sobre o serviço que cada docente
tem em cada semestre (suponhamos que o serviço é fixo de ano para ano). Crie
uma tabela Serviço que diz quantas horas de aulas por semana cada professor dá
a cada disciplina em cada semestre. Essa tabela irá ter os campos professor,
disciplina, semestre, horas. Quais são os campos chave desta tabela? (Lembrese de que o conjunto dos campos chave deve ter um valor único para cada
registo e deve ser tão simples quanto possível).
8.Como estabelecemos um relacionamento de N para N entre a tabela de
professores e a tabela de disciplinas?
9.Experimente a funcionalidade "Cascade Delete Related Records". Apague o
registo relativo a um aluno para o qual haja notas lançadas.
31
Informática Aplicada
+ Exercícios
Pretende-se criar uma base de dados para gerir encomendas de produto feitas por
clientes. Cada encomenda tem um código, refere-se a um produto
encomendado, quantidade encomendada e ao cliente que encomendou. Tem
também a data da encomenda. Cada cliente tem um código, nome e morada.
Cada produto tem um código, nome e preço unitário.
1.Indique quais os campos chave e defina os relacionamentos que achar
convenientes. Quais o tipos de relacionamentos?
2.Agora quero alterar a base de dados para que seja possível, em cada
encomenda, incluir vários produtos (como é normal). Como podemos fazer
isso? Sugestão: Divida a tabela encomendas em duas tabelas, cabeçalho de
encomenda e detalhes de encomenda. Defina as novas tabelas, os campos chave
e os novos relacionamentos.
32
Informática Aplicada
Anexo: Detalhes sobre Tamanho dos Campos
Ao definir um campo, deverá ter atenção principalmente á propriedade FieldSize.
33
Fieldsize
(campos Number)
Intervalo
Casas
Decimais
Tamanho
Byte
0 a 255
0
1 byte
Integer
-32.768 a
32.768
0
2 bytes
Long
-2.147.483.648
a 2.147.483.648
0
4 bytes
Single
-3.4 1038 a 3.4
1038
7
4 bytes
Double
-1.8*10308 a
1.8*10308
15
8 bytes
Informática Aplicada
Download

Bases de Dados