informática aplicada março 2010 bases de dados tabelas, chaves, relacionamentos, integridade...

33
Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Upload: internet

Post on 22-Apr-2015

119 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática AplicadaMarço 2010

Bases de Dados

Tabelas, chaves, relacionamentos, integridade referencial

Page 2: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

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

Page 3: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

Base de dados relacional

A informação organiza-se em tabelas:campos (colunas)registos (linhas)

Tabela de DepartamentosNo. Nome Director001 Marketing Sr.M002 Vendas Sr.V

Tabela de EmpregadosDep No. No Emp. Nome Idade002 51 J.Costa 40001 101 A.Silva 27002 102 F.Moreira 31

3

Page 4: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Bases de DadosTodas 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

Page 5: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

TópicosBases de dados relacionaisTabelas, campos, registos

Chave primáriaRelacionamentosIntegridade referencial

Consulta de informaçãoQuery by example (QBE)Consultas de agregaçãoConsultas de acção

InterfaceFormuláriosBotões, sub-formuláriosCaixas de opções

5 Informática Aplicada

Page 6: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

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

Page 7: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

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

Page 8: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

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

Page 9: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Tabelas: vista de estrutura

9 Informática Aplicada

Page 10: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Exercicio

10 Informática Aplicada

Page 11: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Definir CamposDefinir 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

Page 12: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Tipos de Campos

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

A escolha de um tipo de campo está relacionada com as operações que se pretendem efectuar nesse campo

12 Informática Aplicada

Page 13: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

Campos com números

Númerointeiro 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 alunocódigo de disciplina13

Page 14: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

Tipo Auto-Number

Auto preenche-se com inteiros longostem o tamanho de um inteiro longo

Exemplos:número de alunocódigo de disciplina

14

Page 15: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Propriedades

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

:

Associado a cada campo, existe um conjunto de propriedades, que possibilitam refinar as características desse campo

15 Informática Aplicada

Page 16: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Validation Rule and Validation Text

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

Utilizadas para validar a informação, limitando os valores que um campo pode assumir

16 Informática Aplicada

Page 17: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

Chave primária

Campo ou conjunto de campos que identificam de forma única cada registo. Por exemplo:número de alunocódigo de disciplinaaluno+disciplina em notas

A chaveserve para nos referirmos a um determinado

registodeve ser tão simples quanto possívelPermitem 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.

17

Page 18: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Editar TabelasInserir dados Eliminar registos Corrigir dados

18 Informática Aplicada

Page 19: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

Relacionamentos

Que nota tirou o António a Informática?

alunosnúmero nome1 António2 Maria3 Carolina

disciplinascódigo disciplina ano1 matemática 12 informática 13 bases de dados e conhecimento 4

notasaluno disciplina nota lançamento1 1 14,4 22-06-951 2 15,6 5-06-952 3 16,7 1-06-95

19

Page 20: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

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 Access20

Page 21: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

Relacionamentos

Podemos obter a vista da informação ... (será explicado nas consultas)

aluno nome notas.disc disciplina ano nota lançamento1 António 1 matemática 1 14,4 22-06-951 António 2 informática 1 15,6 5-06-952 Maria 3 bases de dados e

conhecimento4 16,7 1-06-95

2121

Page 22: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

Não faz sentido...

Relacionar campos com informação diferente

devem ter o mesmo tipoo mesmo tamanho

excepção:AutoNumber e Long Integer

22

Page 23: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

Tipos de relacionamentos

1 para N

alunosnúmero nome1 António2 Maria3 Carolina

notasaluno disciplina nota lançamento1 1 14,4 22-06-951 2 15,6 5-06-952 3 16,7 1-06-95

23

Page 24: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

Tipos de relacionamentos

1 para 1

Tabela deCargosaluno cargo1 presidente3 vogal

alunosnúmero nome1 António2 Maria3 Carolina

24

Page 25: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

Tipos de relacionamentos

N para N

alunosnúmero nome1 António2 Maria3 Carolina disciplinas

código disciplina ano1 matemática 12 informática 13 bases de dados e conhecimento 4

· relacionamento de N:N corresponde a dois rel. 1:N.· Utiliza-se uma tabela de junção.

1:N

1:N

25

Page 26: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

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

Page 27: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

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

Page 28: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Regras de IntegridadeNã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

Page 29: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Join Type

29 Informática Aplicada

Page 30: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

Exercícios1.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

Page 31: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

+ Exercícios6.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? (Lembre-se 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

Page 32: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Informática Aplicada

+ ExercíciosPretende-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

Page 33: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial

Anexo: Detalhes sobre Tamanho dos Campos

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.6

48 a 2.147.483.6

48

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

Ao definir um campo, deverá ter atenção principalmente á propriedade FieldSize.

33 Informática Aplicada