Alura > Cursos de Data Science > Cursos de SQL e Banco de Dados > Conteúdos de SQL e Banco de Dados > Primeiras aulas do curso Modelagem de dados: aplicando a normalização

Modelagem de dados: aplicando a normalização

Normalização - Apresentação

Olá, sou Danielle Oliveira, instrutora da Escola de Dados, e vou acompanhar você nos seus estudos sobre a normalização de dados.

Audiodescrição: Danielle Oliveira se identifica como uma mulher de pele morena. Possui cabelos cacheados, castanhos e amarrados, e olhos castanhos. No corpo, veste uma blusa de cor preta. Está sentada em uma cadeira de escritório. Ao fundo, uma parede branca com duas prateleiras pequenas à esquerda, que recebe iluminação em tons de verde e azul. Nas prateleiras, há decorações que representam o seu estado.

Para quem é este curso?

Este curso é para você que deseja utilizar a normalização de dados, tanto em projetos que aplicarão a modelagem de dados, como ao trabalhar com dados no dia a dia.

Pré-requisitos

Para usufruir do melhor deste curso e adquirir todos os conhecimentos necessários, é muito importante que você já tenha conhecimentos sobre o modelo conceitual e o modelo lógico, duas etapas anteriores à normalização.

O que aprenderemos?

Dicas

Para uma aprendizagem mais ativa, em caso de dúvidas ou se desejar compartilhar seus estudos e projetos desenvolvidos, indicamos que você recorra ao nosso fórum de discussão ou à nossa comunidade no Discord. Nela, é possível trocar conhecimentos com outras pessoas que também estão se desenvolvendo conosco.

Além disso, é muito importante assistir a todos os vídeos e realizar todas as atividades para colocar em prática os conhecimentos adquiridos.

Vamos começar a trabalhar e normalizar o projeto da FlexEmpresta.

Normalização - Projeto a ser normalizado

Até o momento, aplicamos algumas etapas da modelagem de dados. Começamos a construir o minimundo, realizamos o levantamento de requisitos, desenvolvemos o modelo conceitual, em seguida o modelo lógico, e agora vamos para a próxima etapa da modelagem de dados: a normalização.

Normalizaremos o projeto da FlexEmpresta. Mas podemos nos perguntar quando devemos aplicar a normalização.

Importância da normalização

Será mesmo que precisamos aplicar a normalização no projeto? Será que ela é mesmo necessária?

Sim! A normalização é um conjunto de regras que visa organizar os dados, evitando a redundância e garantindo a integridade dos dados, ou seja, garantindo que os dados estejam armazenados de forma correta e concreta nas tabelas do banco.

Analisando um exemplo

Para entender como funciona a normalização e ter o primeiro contato com essa etapa da modelagem de dados, abordaremos um exemplo. Vamos imaginar que temos uma tabela que armazena registros de cursos, com informações de estudantes, de cursos, da pessoa que ministra cada curso e da nota.

Tabela Registro de Cursos:

id_estudantenome_estudanteid_cursonome_cursonome_professornota
1Ana Silva101MatemáticaJoão Santos85
1Ana Silva102HistóriaMaria Pereira90
2Carlos Andrade101MatemáticaJoão Santos88

Se avaliarmos de forma lógica essa tabela, não temos nenhum problema, porque temos todas as informações necessárias para as pessoas que vão precisar desses dados, como o registro das pessoas estudantes e a identificação da nota para saber se a pessoa estudante foi aprovada ou não.

Porém, precisamos pensar na manutenção da tabela, entendendo se os dados continuarão íntegros e se não há redundância.

Lembrando que temos uma pequena amostra dessa tabela, com três linhas. Contudo, é possível imaginar essa quantidade multiplicada por 10 mil linhas, por exemplo, já que é comum ter muitos dados.

Analisando a tabela do exemplo, notaremos rapidamente que o campo "id_estudante" está errado. Temos os dados da Ana Silva repetidos, exibindo o ID 1 duas vezes. Isso torna esse campo incorreto, sendo impossível considerá-lo como ID.

Além disso, temos uma redundância no campo "nome_estudante". A redundância de dados ocorre quando há linhas com informações repetidas. Essa tabela está repetindo o nome da pessoa estudante.

No campo "nome_professor", também há a repetição do nome da pessoa docente. João Santos sempre será repetido quando o curso for "Matemática". A única informação que não se repetirá sempre é a nota, pois, para cada curso, cada pessoa estudante receberá uma nota diferente.

Temos uma redundância de dados nessa tabela porque estamos gerando dados repetidos, contendo sempre a mesma informação. Isso pode gerar dados não íntegros.

Se precisássemos, por exemplo, atualizar as informações da pessoa docente, e nesse momento, não atualizássemos todos os registros nos quais essa pessoa é João Santos, perderíamos a integridade e os dados não estariam mais de acordo. Essa situação vale para os outros campos, como de pessoa estudante e de nome do curso.

Próximos passos

A seguir, entenderemos mais sobre a normalização e como resolver esses problemas que podem ser gerados ao normalizar a tabela de registros de cursos.

Normalização - Conhecendo a normalização

Agora que sabemos qual será a próxima etapa do processo, trabalharemos na modelagem de dados do projeto da FlexEmpresta. É o momento de avançarmos com os estudos.

O que seria essa normalização que mencionamos anteriormente? Trata-se de um conjunto de regras que utilizamos e aplicamos em tabelas para saber se o projeto está ou não normalizado.

Assim como nas outras etapas da modelagem de dados, na etapa da normalização temos uma diversidade de conceitos. Vamos conhecer alguns deles, que serão muito importantes durante a normalização do projeto.

Entendendo as diretrizes

As diretrizes informais, como são conhecidas, são um conjunto de critérios que utilizamos para avaliar se um projeto está ou não normalizado. Nos baseamos nelas para definir a qualidade das tabelas do projeto.

Chamamos as diretrizes de informais porque são critérios não obrigatórios, já que nem sempre conseguiremos aplicar todas as etapas da normalização. Essa aplicação depende das necessidades e do objetivo do projeto, de como os dados serão armazenados e processados, e assim por diante.

É importante entender que a normalização deve ser aplicada de acordo com o que o projeto precisa.

Aplicar semântica clara e esquemas fáceis

Existem quatro diretrizes informais. A primeira delas estabelece que haja uma semântica clara e esquemas fáceis dentro do banco de dados.

Isso significa que ele deve conter dados e visualizações fáceis de entender, permitindo saber as informações armazenadas dentro de cada tabela do projeto.

Manter as informações concisas

Também devemos evitar as informações redundantes e que se repetem dentro da tabela, a exemplo da tabela de registros de cursos que abordamos anteriormente.

Manter as tuplas sempre preenchidas

Além disso, devemos evitar a possibilidade de geração de tuplas nulas, ou seja, campos onde as informações podem não ser informadas durante a inserção de dados.

Evitar tuplas falsas

E, por fim, devemos evitar o surgimento de tuplas falsas. Posteriormente, entenderemos como isso pode acontecer.

No momento, basta imaginar que precisaremos buscar informações em diversas tabelas. No momento de buscar essas informações, se o banco não estiver bem organizado, poderemos acabar gerando tuplas falsas no resultado das consultas.

Além das diretrizes utilizadas como base para a normalização, temos outros dois conceitos muito importantes, que serão usados durante todo o processo: as dependências e formas normais.

Entendendo as dependências

As dependências definem como os dados se relacionam dentro das tabelas, ou seja, como um atributo se relaciona com outro. Saímos de um nível de relação tabela–tabela - como, por exemplo, a relação entre as tabelas de cliente e de conta -, para um nível interno a cada tabela.

Nesse nível, definimos como os atributos da tabela de cliente, por exemplo, se relacionam dentro da própria tabela. Chamamos essa relação entre atributos de dependência funcional.

Entendendo as formas normais

Por fim, as formas normais são padrões que aplicaremos para entender se as tabelas e o projeto estão ou não normalizados.

Conclusão

Neste vídeo, abordamos conceitos importantes para o momento em que normalizamos o banco de dados de um projeto que será posto em produção.

Próximos passos

Após conhecer esses conceitos e a ideia da normalização, entenderemos como resolver os prováveis problemas na tabela de registros de cursos.

Sobre o curso Modelagem de dados: aplicando a normalização

O curso Modelagem de dados: aplicando a normalização possui 125 minutos de vídeos, em um total de 56 atividades. Gostou? Conheça nossos outros cursos de SQL e Banco de Dados em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda SQL e Banco de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas