Exercício de Normalização de Dados

Para consolidar o entendimento sobre a normalização de dados, vamos realizar um exercício prático. Neste exercício, você terá que aplicar as formas normais (1FN, 2FN, e 3FN) para normalizar um conjunto de tabelas.

Contexto do Exercício

Você foi contratado para organizar o banco de dados de uma pequena loja de música. Atualmente, a loja mantém todas as informações em uma única tabela desnormalizada chamada MUSICA. Aqui estão os dados da tabela:

IDTituloArtistaAlbumAnoAlbumGeneroDuraçãoDataCompraPrecoCompraNomeCompradorEmailComprador
1Song AArtist 1Album X2020Rock3:452024-01-151.99Alicealice@mail.com
2Song BArtist 2Album Y2021Pop4:122024-01-162.49Bobbob@mail.com
3Song AArtist 1Album X2020Rock3:452024-02-011.99Charliecharlie@mail.com
4Song CArtist 3Album Z2019Jazz5:002024-02-013.00Alicealice@mail.com

Tarefas

  1. Primeira Forma Normal (1FN):

    • Remova grupos repetitivos.
    • Garanta que cada coluna contenha valores atômicos.
  2. Segunda Forma Normal (2FN):

    • Certifique-se de que a tabela esteja em 1FN.
    • Elimine dependências parciais (dependências de parte da chave primária).
  3. Terceira Forma Normal (3FN):

    • Certifique-se de que a tabela esteja em 2FN.
    • Remova dependências transitivas (dependências de atributos não chave com outros atributos não chave).

Passos Detalhados

Passo 1: Aplicar a 1FN

Tabela original:

IDTituloArtistaAlbumAnoAlbumGeneroDuraçãoDataCompraPrecoCompraNomeCompradorEmailComprador

Após 1FN:

IDTituloArtistaAlbumAnoAlbumGeneroDuraçãoDataCompraPrecoCompraCompradorID
1Song AArtist 1Album X2020Rock3:452024-01-151.991
2Song BArtist 2Album Y2021Pop4:122024-01-162.492
3Song AArtist 1Album X2020Rock3:452024-02-011.993
4Song CArtist 3Album Z2019Jazz5:002024-02-013.001
CompradorIDNomeCompradorEmailComprador
1Alicealice@mail.com
2Bobbob@mail.com
3Charliecharlie@mail.com

Passo 2: Aplicar a 2FN

Tabela MUSICA

IDTituloArtistaAlbumAnoAlbumGeneroDuração
1Song AArtist 1Album X2020Rock3:45
2Song BArtist 2Album Y2021Pop4:12
3Song AArtist 1Album X2020Rock3:45
4Song CArtist 3Album Z2019Jazz5:00

Tabela COMPRA

CompraIDMusicaIDDataCompraPrecoCompraCompradorID
112024-01-151.991
222024-01-162.492
312024-02-011.993
432024-02-013.001

Passo 3: Aplicar a 3FN

Tabela MUSICA

IDTituloArtistaAlbumID
1Song AArtist 11
2Song BArtist 22
3Song AArtist 11
4Song CArtist 33

Tabela ALBUM

AlbumIDNomeAlbumAnoAlbumGenero
1Album X2020Rock
2Album Y2021Pop
3Album Z2019Jazz

Tabela COMPRA

CompraIDMusicaIDDataCompraPrecoCompraCompradorID
112024-01-151.991
222024-01-162.492
312024-02-011.993
432024-02-013.001

Tabela COMPRADOR

CompradorIDNomeCompradorEmailComprador
1Alicealice@mail.com
2Bobbob@mail.com
3Charliecharlie@mail.com

Tarefas para os Alunos

  1. Primeira Forma Normal (1FN):

    • Analise a tabela MUSICA original e identifique grupos repetitivos.
    • Reestruture a tabela para que cada coluna contenha valores atômicos.
  2. Segunda Forma Normal (2FN):

    • Garanta que a tabela MUSICA esteja em 1FN.
    • Crie tabelas separadas para eliminar dependências parciais.
    • Relacione as tabelas adequadamente com chaves estrangeiras.
  3. Terceira Forma Normal (3FN):

    • Garanta que as tabelas estejam em 2FN.
    • Identifique e elimine dependências transitivas.
    • Crie novas tabelas se necessário para armazenar informações dependentes.

Solução Esperada

No final do exercício, os alunos devem ter produzido um conjunto de tabelas normalizadas similar ao exemplo fornecido nos passos detalhados. Isso deve incluir tabelas separadas para músicas, álbuns, compras e compradores, todas inter-relacionadas por chaves primárias e estrangeiras.

Boa sorte, e lembrem-se: a prática leva à perfeição!