informática aplicada março 2010 bases de dados tabelas, chaves, relacionamentos, integridade...
TRANSCRIPT
Informática AplicadaMarç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
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
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
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
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 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
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
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
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
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
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
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
Editar TabelasInserir dados Eliminar registos Corrigir dados
18 Informática Aplicada
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
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
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
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
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
Informática Aplicada
Tipos de relacionamentos
1 para 1
Tabela deCargosaluno cargo1 presidente3 vogal
alunosnúmero nome1 António2 Maria3 Carolina
24
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
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
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 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
Join Type
29 Informática Aplicada
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
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
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
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