A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Alberto Simões - Dept Informática - Univ. Minho 1 Bases de Dados (usando Microsoft Access) Alberto Manuel Simões

Apresentações semelhantes


Apresentação em tema: "Alberto Simões - Dept Informática - Univ. Minho 1 Bases de Dados (usando Microsoft Access) Alberto Manuel Simões"— Transcrição da apresentação:

1 Alberto Simões - Dept Informática - Univ. Minho 1 Bases de Dados (usando Microsoft Access) Alberto Manuel Simões (albie@alfarrabio.di.uminho.pt)

2 Alberto Simões - Dept Informática - Univ. Minho 2 Motivação Qualquer colecção deve estar catalogada; Qualquer catálogo deve permitir pesquisas; Um catálogo não é mais que uma colecção de registos; Podemos ver uma base de dados como sendo um catálogo informatizado e com métodos optimizados de pesquisa e armazenamento.

3 Alberto Simões - Dept Informática - Univ. Minho 3 Noção de Base de Dados Qualquer conjunto de registos pode ser visto como uma base de dados; Um conjunto de registos com a mesma estrutura é denominado por tabela: TurmaNúmeroNomeRuaLocalidade A1António MartinsSousa PiresBarcelos A2Maria IreneJoana d'ArcBarcelos B1João FranciscoPires ViegasPousa C2Manuel SaraivaAlmirante CoutinhoBarcelos

4 Alberto Simões - Dept Informática - Univ. Minho 4 Noção de Base de Dados (2) A uma linha da tabela chama-se registo; A cada elemento do registo chama-se campo ou atributo; Chama-se chave a um campo (ou conjunto de campos) que nunca se repete em toda a tabela; Da tabela anterior, que chave poderíamos escolher?

5 Alberto Simões - Dept Informática - Univ. Minho 5 Tipos de dados Cada campo de uma tabela tem um tipo de dados definido: – Número; – Texto; – Booleano; – Data; – Moeda Que tipos de dados associar a cada um do campos da tabela anterior?

6 Alberto Simões - Dept Informática - Univ. Minho 6 Divisão de Tabelas Vamos construir uma base de dados para livros: – Título; – ISBN; – Ano da edição; – Editora; – Colecção; – Autores Quantos autores é que um livro tem? Teoricamente, não existe limite para o número de autores.

7 Alberto Simões - Dept Informática - Univ. Minho 7 Divisão de Tabelas (2) Soluções: – criar um campo texto, onde se introduziria todos os nomes dos autores; – criar um número de campos elevado para armazenar os autores: Ao definir um número de autores elevado para cada livro, a tabela iria ficar com muitos campos em branco; Qual o número de campos a definir? Ou se define um número excessivamente exagerado, ou pode sempre ocorrer que venha a aparecer um livro com mais autores que campos disponíveis.

8 Alberto Simões - Dept Informática - Univ. Minho 8 Divisão de Tabelas (3) A solução para este tipo de casos consiste em dividir a informação em duas tabelas: – informação de cada livro; – autor por livro; TituloISBNAno EdiçãoEditoraColecção Crimes Perfeitos01-2345671973SuspenseABC do Crime Manual do Access03-1234562001Porto EditoraInformática ISBNNome Autor 01-234567John Gardner 03-123456Ana Sofia 03-123456Pedro Raposo

9 Alberto Simões - Dept Informática - Univ. Minho 9 Chaves Estrangeiras O campo ISBN estabelece a ligação entre as tabelas Livros e Autores. Este campo, na tabela Autores, diz-se que é uma chave estrangeira. Note-se que não existe obrigatoriedade de utilizar o mesmo nome para ambos os campos ao definir uma ligação entre tabelas. Na tabela de autores, que chave poderíamos escolher?

10 Alberto Simões - Dept Informática - Univ. Minho 10 Divisão de Tabelas (4) Considerando que se pretende armazenar informação sobre os autores: código LivroNome AutorAno NascimentoNacionalidade 01-234567John Gardner1944EUA 03-123456Ana Sofia1970Portugal 03-123456Pedro Raposo1971Portugal Mas, John Gardner escreveu uma vasta lista de obras. Vamos repetir toda esta informação para cada um dos livros?

11 Alberto Simões - Dept Informática - Univ. Minho 11 Dependências Funcionais A solução convencional para este problema consiste em identificar as dependências entre campos: – o campo Nacionalidade depende do campo Nome Autor – o campo Ano Nascimento depende do campo Nome Autor Ou seja, se soubermos o valor do campo Nome Autor podemos saber o valor dos campos Ano Nascimento e Nacionalidade.

12 Alberto Simões - Dept Informática - Univ. Minho 12 Divisão de Tabelas (5) Sempre que se verificar a existência de campos numa tabela que não dependam da chave primária, a tabela deve ser dividida; ISBNNome Autor 01-234567John Gardner 03-123456Ana Sofia 03-123456Pedro Raposo Nome AutorAno NascimentoNacionalidade John Gardner1944EUA Ana Sofia1970Portugal Pedro Raposo1971Portugal

13 Alberto Simões - Dept Informática - Univ. Minho 13 Resultado Normalizado ISBNNome Autor 01-234567John Gardner 03-123456Ana Sofia 03-123456Pedro Raposo Nome AutorAno NascimentoNacionalidade John Gardner1944EUA Ana Sofia1970Portugal Pedro Raposo1971Portugal TituloISBNAno EdiçãoEditoraColecção Crimes Perfeitos01-2345671973SuspenseABC do Crime Manual do Access03-1234562001Porto EditoraInformática Em que ano nasceram os autores do Manuel de Access?

14 Alberto Simões - Dept Informática - Univ. Minho 14 Exercício 1 Criar as tabelas necessárias para acomodar os dados de uma factura; E todos os dados da empresa? Factura N.:1425433 Data:04-05-2002 Cliente:António Carlos Silva e Sá ProdutoDescriçãoQt.Preço Unit.Total XX743KPregos100 € 1,00 € 100,00 YZ3MNPorcas150 € 1,00 € 150,00 XP992OParafusos170 € 2,00 € 340,00 YZ3MNPorcas140 € 1,00 € 140,00 Total € 730,00

15 Alberto Simões - Dept Informática - Univ. Minho 15 Resolução 1.1 Cada factura contém: – Um número da factura; – Uma data em que foi emitida; – Um cliente que efectuou a compra; – Várias linhas de produtos Código do produto, descrição, quantidade, preço unitário e valor total; – Um valor total das compras

16 Alberto Simões - Dept Informática - Univ. Minho 16 Resolução 1.2 Uma vez que não podemos saber quantos produtos vão ser comprados, consideremos apenas os dados que aparecem uma só vez. Nº FacturaDataClienteTotal 142543304-05-2002António Carlos Silva e Sá € 730.00 142543404-05-2002Ana Maria Teixeira Cunha€ 900.00 142543504-05-2002José Miguel Lopes Araújo€ 400.00

17 Alberto Simões - Dept Informática - Univ. Minho 17 Resolução 1.3 Criemos uma nova tabela para os produtos: Mas, quem é que efectuou estas compras? ProdutoDesignaçãoQtPreço UnitárioTotal XX743KPregos100€ 1.00€ 100.00 YZ3MNPorcas150€ 1.00€ 150.00 XP992OParafusos170€ 2.00€ 340.00 YZ3MNPorcas140€ 1.00€ 140.00

18 Alberto Simões - Dept Informática - Univ. Minho 18 Resolução 1.4 Para relacionar as compras com o cliente, temos de adicionar uma chave estrangeira a esta tabela: FacturaProdutoDesignaçãoQtPreço Un.Total 1425433XX743KPregos100€ 1.00€ 100.00 1425433YZ3MNPorcas150€ 1.00€ 150.00 1425433XP992OParafusos170€ 2.00€ 340.00 1425433YZ3MNPorcas140€ 1.00€ 140.00

19 Alberto Simões - Dept Informática - Univ. Minho 19 Resolução 1.5 O preço de cada produto, e respectiva descrição são dependências funcionais do código do produto; Devemos dividir a tabela em: – Detalhe de cada linha da factura; – Informação sobre cada produto;

20 Alberto Simões - Dept Informática - Univ. Minho 20 Resolução 1.6 FacturaProdutoQtTotal 1425433XX743K100€ 100.00 1425433YZ3MN150€ 150.00 1425433XP992O170€ 340.00 1425433YZ3MN140€ 140.00 ProdutoDesignaçãoPreço Un. XX743KPregos€ 1.00 YZ3MNPorcas€ 1.00 XP992OParafusos€ 2.00

21 Alberto Simões - Dept Informática - Univ. Minho 21 Resolução 1.7 Para melhorar o sistema de facturação poderíamos ainda: – Atribuir um código a cada cliente; – Criar uma tabela de clientes, com a sua informação, como a morada, telefone, número de contribuinte; – Cada factura relacionava-se com o cliente apenas pelo seu código

22 Alberto Simões - Dept Informática - Univ. Minho 22 Exercício 2 Usando o exemplo da factura, vamos criar as seguintes tabelas em Access: Facturas Númeronumber Datadate/time Clientetext (200) Totalcurrency Produtos Códigotext (10) Designaçãotext (200) Preço Unitáriocurrency Factura/Produto Facturanumber Produtotext (10) Quantidadenumber Totalcurrency

23 Alberto Simões - Dept Informática - Univ. Minho 23 Relacionamentos Os relacionamentos entre tabelas podem ser de tipos diferentes: – 1 – n – 1 – m – n Estes valores correspondem ao número de elementos de uma tabela a que podem corresponder a elementos de outra tabela;

24 Alberto Simões - Dept Informática - Univ. Minho 24 Relacionamentos (1-n) Uma turma tem n alunos – Neste caso, a tabela de relacionamento associa a cada aluno apenas uma turma; – Ou seja, um aluno não pode pertencer a duas turmas; – Neste caso, o relacionamento é feito na tabela alunos, em que se adiciona a chave estrangeira relativa à turma (chave da tabela de turmas).

25 Alberto Simões - Dept Informática - Univ. Minho 25 Relacionamentos (1-1) Supondo que temos uma tabela de professores e uma outra de departamentos; Um professor director de um departamento, não o pode ser de um outro; Cada departamento tem apenas um director. Nestes casos, pouco frequentes, o relacionamento pode ser feito em qualquer uma das tabelas; Neste caso em particular, seria mais sensato colocar na tabela de departamentos.

26 Alberto Simões - Dept Informática - Univ. Minho 26 Relacionamentos (m-n) São os mais frequentes; Um produto pode aparecer em mais do que uma factura; Uma factura pode conter mais do que um produto; Neste caso, constrói-se uma tabela auxiliar que efectua o relacionamento.

27 Alberto Simões - Dept Informática - Univ. Minho 27 Integridade referencial Chama-se integridade referencial ao processo de garantir que todos os dados de campos relacionados existem em ambas as tabelas; Por exemplo, existir uma factura com um código de produto que não existe na tabela de produtos; Uma factura passada a um cliente que não existe na tabela de clientes;

28 Alberto Simões - Dept Informática - Univ. Minho 28 Exercício 3 Utilizando as tabelas construídas no exercício 2, efectuar os devidos relacionamentos no Microsoft Access. Verificar o funcionamento do Microsoft Access em relação à integridade referencial;

29 Alberto Simões - Dept Informática - Univ. Minho 29 SQL Query Language Alberto Manuel Simões (albie@alfarrabio.di.uminho.pt)

30 Alberto Simões - Dept Informática - Univ. Minho 30 Motivação As bases de dados servem para se poder aceder de forma eficiente aos seus dados; O uso de uma interface gráfica para a pesquisa nem sempre é eficiente; Então, desenvolveu-se uma linguagem específica para este tipo de consultas;

31 Alberto Simões - Dept Informática - Univ. Minho 31 Noções Chamamos querie a uma pergunta à base de dados; Todas as respostas a queries são tabelas; A estas tabelas também chamamos de views, porque consistem em vistas sobre porções da informação da base de dados; As views são tabelas virtuais, ou seja, não são guardadas na base de dados.

32 Alberto Simões - Dept Informática - Univ. Minho 32 FacturaProdutoQtTotal 1425433XX743K100€ 100.00 1425433YZ3MN150€ 150.00 1425433XP992O170€ 340.00 1425433YZ3MN140€ 140.00 ProdutoDesignaçãoPreço Un. XX743KPregos€ 1.00 YZ3MNPorcas€ 1.00 XP992OParafusos€ 2.00 Nº FacturaDataClienteTotal 142543304-05-2002António Carlos Silva e Sá € 730.00 142543404-05-2002Ana Maria Teixeira Cunha€ 900.00 142543504-05-2002José Miguel Lopes Araújo€ 400.00 Consideremos as seguintes tabelas: Facturas Produtos Facturas / Produtos Os resultados dos próximos exemplos são retirados desta base de dados.

33 Alberto Simões - Dept Informática - Univ. Minho 33 Operações de Selecção (apenas com uma tabela) O comando SELECT permite seleccionar determinadas colunas de uma tabela: SELECT FROM ; Por exemplo, podemos seleccionar os nomes dos produtos com: SELECT Designação FROM Produtos; Designação Pregos Porcas Parafusos

34 Alberto Simões - Dept Informática - Univ. Minho 34 Operações de Selecção (apenas com uma tabela - 2) Podemos pedir mais do que um campo; Por exemplo, o código e a designação do produto: SELECT Produto, Designação FROM Produtos; ProdutoDesignação XX743KPregos YZ3MNPorcas XP992OParafusos

35 Alberto Simões - Dept Informática - Univ. Minho 35 Operações de Selecção (apenas com uma tabela - 3) Para seleccionar todos os campo, podemos usar um atalho (wildcard): SELECT * FROM Produtos; ProdutoDesignaçãoPreço Un. XX743KPregos€ 1.00 YZ3MNPorcas€ 1.00 XP992OParafusos€ 2.00

36 Alberto Simões - Dept Informática - Univ. Minho 36 Operações de Selecção (explicitando condições na selecção) É possível especificar condições para refinamento da selecção; Uma linha só será incluída no resultado se a condição for verificada para essa linha; As condições são testadas nas linhas da tabela original, i.e. podemos definir condições sobre colunas que fazem parte da tabela original mesmo que essas colunas não apareçam no resultado.

37 Alberto Simões - Dept Informática - Univ. Minho 37 Operações de Selecção (explicitando condições na selecção 2) Neste caso, usa-se a sintaxe: SELECT FROM WHERE ; Seleccionar produtos que custem menos de € 2.00: SELECT Descrição FROM Produtos WHERE PreçoUn<2; Designação Pregos Porcas

38 Alberto Simões - Dept Informática - Univ. Minho 38 Operações de Selecção (explicitando condições na selecção 3) Podemos escrever condições mais complicadas… SELECT Disciplinas.nome FROM Disciplinas WHERE ano = 1 AND semestre = 0;


Carregar ppt "Alberto Simões - Dept Informática - Univ. Minho 1 Bases de Dados (usando Microsoft Access) Alberto Manuel Simões"

Apresentações semelhantes


Anúncios Google