Acetatos

Propaganda
Organização e Acesso a Dados - Exercício
Uma empresa pretende desenvolver uma base de dados que lhe permita
manter controlo sobre as compra de produtos que faz aos fornecedores:
•
Uma compra tem um número e uma data, é feita a um único fornecedor,
podendo incluir várias linhas, uma para cada produto e respectiva
quantidade.
•
Um produto é caracterizado pela sua descrição, mas pode estar
disponível em vários fornecedores com preços diferentes.
•
Um fornecedor é caracterizado pelo seu nome e morada e disponibiliza
vários produtos.
 Desenhe o diagrama de entidades-relacionamentos
 Desenhe o esquema das tabelas, indicando todos os campos, chaves
primárias e chaves externas
Maio.2002
Sistemas de Informação - Administração Pública
1
Diagrama de Entidades Relacionamentos
Preço
Produtos
n
n
Fornecedores
1
Descrição
n
Quantidade
Nome
Morada
n
n
Compras
Número
Data
Maio.2002
Sistemas de Informação - Administração Pública
2
Tabelas
 Produtos (CodP, Desc)
 Fornecedores (CodF, Nome, Mor, Quilo, Resp)
 ProdForn (CodP, CodF, Preco)
NOTA: CodP é chave externa de Produtos, CodF é chave externa de Fornecedores
 Compras (CodC, CodF, Num, Data)
NOTA: CodF é chave externa de Fornecedores
 Linhas (CodC, CodP, Quant)
NOTA: CodC é chave externa de Compras, CodP é chave externa de Produtos
Maio.2002
Sistemas de Informação - Administração Pública
3
System Query Language (SQL)
A linguagem SQL constitui uma norma para:

a criação e alteração da estrutura de bases de dados relacionais
(componente designada por DDL – Data Definition Language)
 a consulta e actualização dos dados presentes numa base de
dados relacional (DML – Data Manipulation Language)
Todos os SGBD relacionais aceitam instruções SQL para definição e
manipulação de dados, tornando-a assim numa linguagem
universal.
Maio.2002
Sistemas de Informação - Administração Pública
4
A instrução SELECT
As operações de consulta à base de dados são feitas
essencialmente usando a instrução SELECT.
Esta selecciona linhas de uma ou mais tabelas, apresentado os seus
resultados também sobre a forma de uma tabela.
Sintaxe básica da instrução SELECT:
SELECT lista_campos
FROM lista_tabelas
[WHERE condições]
[ORDER BY condição_de_ordenação]
[]
Maio.2002
indica campos opcionais
Sistemas de Informação - Administração Pública
5
A instrução SELECT
A lista_de_campos indica quais as colunas que devem aparecer
como resultado da query. O Símbolo * indica todos os campos.
A lista_de_tabelas indica quais as tabelas a ser consultadas
pela query.
SELECT * FROM Produtos;
SELECT Nome FROM Fornecedores;
Maio.2002
Sistemas de Informação - Administração Pública
6
A instrução SELECT
A cláusula WHERE permite restringir as linhas devolvidas pela
instrução SELECT usando uma condição
SELECT * FROM PRODUTOS WHERE CodP>2;
SELECT Nome FROM Fornecedores WHERE
Morada=“Lisboa”;
A cláusula ORDER BY permite ordenar as linhas devolvidas pela
instrução SELECT usando um campo da tabela. A palavra ASC
indica ordem ascendente, enquanto DESC indica descendente.
SELECT Nome FROM Fornecedores WHERE Morada=“Lisboa”
ORDER BY Nome;
SELECT Nome FROM Fornecedores WHERE Morada=“Lisboa”
ORDER BY Nome DESC;
Maio.2002
Sistemas de Informação - Administração Pública
7
A instrução SELECT
É possível fazer queries que cruzam informação de várias tabelas,
sendo aqui que resulta a mais valia desta instrução.
Quais os produtos para os quais existe fornecedor?
SELECT Descricao FROM produtos, ProdForn
WHERE Produtos.CodP=ProdForn.CodP;
Para evitar repetições do nome do produto pode-se usar a palavra
DISTINCT
SELECT DISTINCT Descricao FROM produtos, ProdForn
WHERE Produtos.CodP=ProdForn.CodP;
Maio.2002
Sistemas de Informação - Administração Pública
8
A instrução SELECT
Liste todos os produtos, respectivos fornecedores e preços.
SELECT Descricao, Nome, Preco
FROM Produtos, Fornecedores, ProdForn
WHERE Produtos.CodP=ProdForn.CodP And
Fornecedores.CodF=ProdForn.CodF;
Ordene por produtos e por preço.
SELECT Descricao, Nome, Preco
FROM Produtos, Fornecedores, ProdForn
WHERE Produtos.CodP=ProdForn.CodP And
Fornecedores.CodF=ProdForn.CodF
ORDER BY Descricao, Preco;
Maio.2002
Sistemas de Informação - Administração Pública
9
A instrução SELECT
Liste todos os fornecedores aos quais já foram feitas compras
SELECT DISTINCT Nome
FROM Fornecedores, Compras
WHERE Fornecedores.CodF=Compras.CodF;
Liste todos os fornecedores aos quais já foram feitas compras,
mostrando as datas e ordenando pelas mesmas
SELECT Nome, Data
FROM Fornecedores, Compras
WHERE Fornecedores.CodF=Compras.CodF
ORDER BY Data;
Maio.2002
Sistemas de Informação - Administração Pública
10
A instrução SELECT
Liste todos os produtos comprados a um determinado fornecedor,
por exemplo, BIC.
SELECT DISTINCT Descricao
FROM Produtos, Fornecedores, Compras, Linhas
WHERE Fornecedores.Nome="BIC" And
Compras.CodF=Fornecedores.CodF And
Linhas.CodC=Compras.CodC And
Produtos.CodP=Linhas.CodP;
Maio.2002
Sistemas de Informação - Administração Pública
11
Download