Ficha 02 · Normalização e restrições
- Aplicar 1FN/2FN/3FN
- Identificar redundâncias
- Definir restrições
- Escolher acções referenciais
Parte I · Formas normais
Exercício 1 · Identificar violação (15 pts)
Para cada caso, indica que forma normal é violada e como corrigir:
a)
| id | aluno | disciplinas |
|---|---|---|
| 1 | João | Matemática, Português, Inglês |
b)
| encomenda_id | produto_id | nome_produto | qty |
|---|---|---|---|
| 1 | 5 | Caneta | 10 |
c)
| aluno_id | cod_postal | localidade |
|---|---|---|
| 42 | 1000-001 | Lisboa |
Exercício 2 · Normalizar (20 pts)
A tabela seguinte regista vendas:
| venda_id | data | cliente_id | nome_cliente | email_cliente | produto_id | nome_produto | preco | qty |
|---|---|---|---|---|---|---|---|---|
Identifica todos os problemas e propõe modelo normalizado:
Exercício 3 · Quando desnormalizar (10 pts)
a) Em que situações pode fazer sentido desnormalizar uma BD bem normalizada?
b) Que cuidados ter quando se desnormaliza?
Parte II · Restrições
Exercício 4 · Definir restrições (20 pts)
Para a tabela Produto (id, nome, preco, stock, cat_id), escreve SQL com todas as restrições adequadas:
Exercício 5 · Acções referenciais (15 pts)
Para cada relação, indica a acção ON DELETE mais apropriada e justifica:
a) Apagar Encomenda → o que fazer com EncomendaItem?
b) Apagar Cliente → o que fazer com Encomenda?
c) Apagar Categoria → o que fazer com Produto?
d) Apagar Autor → o que fazer com Livro_Autor (tabela de associação)?
Parte III · Cenário
Exercício 6 · Sistema de gestão escolar (20 pts)
Pretende-se gerir disciplinas, alunos, professores, turmas e notas.
a) Identifica 5+ entidades.
b) Desenha pelo menos uma relação 1:N e uma N:M com tabela de associação.
c) Indica restrições importantes em pelo menos 3 colunas.