Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade...
Transcript of Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade...
![Page 1: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/1.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/2.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/3.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/4.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/5.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/6.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/7.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/8.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/9.jpg)
Tabelas: vista de estrutura
9 Informática Aplicada
![Page 10: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/10.jpg)
Exercicio
10 Informática Aplicada
![Page 11: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/11.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/12.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/13.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/14.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/15.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/16.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/17.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/18.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/19.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/20.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/21.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/22.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/23.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/24.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/25.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/26.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/27.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/28.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/29.jpg)
Join Type
29 Informática Aplicada
![Page 30: Informática Aplicada Março 2010 Bases de Dados Tabelas, chaves, relacionamentos, integridade referencial.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/30.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/31.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/32.jpg)
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.](https://reader038.fdocument.pub/reader038/viewer/2022111816/552fc179497959413d8f00dd/html5/thumbnails/33.jpg)
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