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.
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.
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.
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.
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.
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.
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_estudante | nome_estudante | id_curso | nome_curso | nome_professor | nota |
---|---|---|---|---|---|
1 | Ana Silva | 101 | Matemática | João Santos | 85 |
1 | Ana Silva | 102 | História | Maria Pereira | 90 |
2 | Carlos Andrade | 101 | Matemática | João Santos | 88 |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Após conhecer esses conceitos e a ideia da normalização, entenderemos como resolver os prováveis problemas na tabela de registros de cursos.
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:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.