Introdução Modelagem de Dados
Com certeza o assunto de Modelagem de dados e SQL é um dos temas mais importantes quando queremos desenvolver sistemas ou aplicativos robustos.
Estruturar a modelagem de dados SQL do seu aplicativo pode fazer toda a diferença no futuro, economizando trabalho e trazendo muita perfomance e escalabilidade.
Esse conteúdo de Modelagem de Dados e SQL irá explicar os fundamentos mais importantes de banco de dados e apresentar uma metodologia passo a passo para estruturar os dados do seu negócio e transformar em aplicativo.
Veja o conteúdo completo em vídeo aqui:
O que você aprenderá?
- Fundamentos da Modelagem de Dados e SQL
- Metodologia como modelar seu banco de dados
- Modelo Conceitual, Lógico e Físico na prática
- Como criar um aplicativo a partir do seu modelo de banco de dados
Fundamentos de Banco de Dados
Antes de entrarmos no assunto de Banco de Dados, é necessário você entender alguns conceitos importantes:
- Dado: Um valor em sua forma individual
- Banco de Dados: Conjunto de dados organizados e relacionados entre si
- Informação: Insights importantes a partir de um banco de dados que ajuda decisões estratégicas
- Quantos cursos vendeu no mês?
- Quais são os melhores meses do ano para a venda?
Parar realizarmos a gestão e manipulação de dados de um sistema, geralmente utilizamos um Sistema de Gerenciamento de Banco de Dados, os mais famosos são:
- MySQL
- NoSQL
- MongoDB
- Firebase
Para entender a diferença entre eles, é necessário que você entenda o que são Bancos de Dados Relacionais e o que é SQL.
Bancos de Dados Relacionais e SQL
Bancos de Dados relacionais são bancos que armazenam e manipulam dados relacionados entre si.
Geralmente as tabelas se conectam por meio de chave primária e estrangeira. A chave primária (Primary Key – PK) é o identificador daquele registro na tabela, e deve ser único.
A chave estrangeira (Foreign Key – FK) é a chave primária de outra tabela, dessa forma conseguimos fazer conexão dos dados.
Os banco mais famosos do mercado são PostgreSQL, MySQL e SQLite.
Para manipularmos as informações no banco de dados utilizamos SQL, que é a forma como fazemos consultas (queries) em nosso banco.
Bancos de Dados Não Relacionais e NoSQL
NoSQL significa Not Only SQL, o que mostra que os bancos NoSQL podem ter relações ou não.
Há diversas forma de estruturarmos nossos dados:
- Documento e coleção
- Grafos
- Chave Valor
- Colunar
Nosso foco será documento e coleção.. onde armazenamos os dados em “pastas” que são as coleções e “documentos” que são os registros.
Os principais bancos NoSQL do mercado são MongoDB, Firebase e Cassandra.
O foco deste conteúdo será de SQL, veja depois nosso conteúdo de modelagem de dados NoSQL.
Metodologia para Modelagem de Dados
Para realizar a modelagem de dados do zero, é necessário você seguir os passos:
- Levantamento de Requisitos;
- Modelo Conceitual;
- Modelo Lógico’
- Modelo Físico.
Na etapa de análise de requisitos é realizado o levantamento de todas funcionalidades que o software fará, isso tudo deve ser alinhado de acordo com a visão do usuário final.
Nesse conteúdo de modelagem de dados não será o foco explicar a parte de levantamento dos requisitos, mas poderá ser uma aula futura por aqui.
Bora iniciar?
Vamos começar pelo modelo conceitual!
Etapa 1 Modelagem de Dados – Modelo Conceitual
Para realizar a modelagem de banco de dados utilizaremos como exemplo o case da No-Code Start-Up, aqui na nossa comunidade temos nossas Formações (cursos) e os alunos pode adquirir esses cursos.
Bora entender como modelar?
A primeira etapa é o Modelo Conceitual, onde entendemos o conceito geral do negócio e quais serão os principais dados envolvidos. Daremos as seguintes ações:
- Definir Entidades
- Definir Atributos
- Definir Relacionamentos
- Construir Modelo Conceitual Final – Diagrama de Entidade Relacionamento (DER)
As entidades são todos as tabelas principais envolvidas, como por exemplo “Alunos”, “Cursos” e “Vendas”. Os atributos são os campos que teremos nessas tabelas, o desenho ficará dessa forma:
A partir dai podemos definir como as entidades se relacionam, para isso temos algumas opções:
- Relação 1 pra 1
- Relação 1 para Muitos
- Relação Muitos para Muitos
Veja alguns exemplos
Assim, nosso modelo conceitual final ficará deste modo:
Etapa 2 Modelagem de Dados – Modelo Lógico
No Modelo Lógico, detalharemos melhor as entidades e atributos. Nós também faremos o desenho dos schemas e suas relações.
Antes de prosseguir precisamos garantir que estamos segundo as 3 Formas Normais.
Normalização é a otimização que realizamos nas tabelas para reduzir redundâncias, duplicações e inconsistência dos dados.
Assim conseguimos ter um modelo de dados mais consistente, organizado e com maior performance.
- NF1 – A tabela deve possuir apenas atributos únicos, não podem existir atributos multivalorados.
- NF2 – Os atributos (não chave) dependem apenas da chave primária
- NF3 – Os atributos (não chave) devem ser independentes entre si
Veja o vídeo no YouTube sobre modelagem de dados para entender com exemplos reais.
A partir da normalização de dados podemos prosseguir para desenho dos schemas e suas relações. O Desenho final ficará dessa forma:
Etapa 3 Modelagem de Dados – Modelo Físico
A etapa 3 é onde damos vida à nossa modelagem de dados, devemos escolher um dos SGBD do mercado para criar nosso banco. Ela consiste em 3 ações:
- Escolha da Tecnologia SGBD
- Criar banco com SQL
- Gestão e manutenção Banco
Nós criaremos todas as tabelas a partir de SQL.
Finalização
Espero que tenha gostado desse conteúdo de modelagem de dados, para maiores detalhes veja nosso vídeo completo onde criamos um app a partir do nosso banco de dados pronto. O aplicativo criado é feito em 100% sem programar, com Bubble.
Se quiser saber mais sobre o mundo nocode, entenda como criar um aplicativo sem código.
Até a próxima!
Matheus Castelo