05-Entidades e Atributos
Modelagem conceitual: entidades e atributos.
Materiais desta aula
5 — Entidades e Atributos
1. Por que modelar antes de criar as tabelas?
Até agora, sempre partimos de uma tabela pronta (Alunos, Livros...). Mas, na vida real, antes de criar qualquer tabela no MySQL, um bom profissional desenha um modelo do banco de dados — um mapa que mostra quais "coisas" o sistema precisa guardar e como elas se relacionam.
Esse mapa se chama DER (Diagrama Entidade-Relacionamento). E é isso que vamos começar a construir hoje mesmo, no MySQL Workbench.
Antes de desenhar qualquer coisa, precisamos entender as duas peças mais básicas: entidade e atributo. E, antes disso, vale entender por que o desenho que vamos fazer hoje parece diferente do que vamos ver dentro do Workbench — é assunto da próxima seção.
2. Os três níveis de modelagem: conceitual, lógico e físico
Quando profissionais de banco de dados falam em "modelar", normalmente estão se referindo a um de três níveis diferentes. Cada um tem uma finalidade, um nível de detalhe e uma notação (forma de desenhar) próprios.
Modelo conceitual
- Finalidade: entender e discutir o problema com qualquer pessoa — inclusive quem não é da área técnica (o dono do negócio, o usuário do sistema). Não se preocupa com qual banco de dados vai ser usado, nem com tipos de dado.
- Notação: a notação de Peter Chen — retângulo para entidade, elipse para atributo, losango para relacionamento.
- Exemplo: a entidade Aluno (retângulo), com os atributos nome e matrícula (elipses ligadas a ela) — sem indicar ainda se "nome" vai ocupar 50 ou 100 caracteres.
Modelo lógico
- Finalidade: traduzir o modelo conceitual para o formato de tabelas do modelo relacional — já pensando em chave primária e chave estrangeira — mas ainda sem amarrar a um SGBD específico (ainda não decide se vai ser MySQL, PostgreSQL, Oracle...).
- Notação: tabelas com colunas listadas e as chaves indicadas (várias ferramentas usam a notação "Pé de Galinha" / Crow's Foot para os relacionamentos nesse nível).
- Exemplo: ALUNO (matrícula PK, nome, turma) — já em formato de tabela, mas sem dizer ainda se "nome" é VARCHAR(100) ou outro tipo.
Modelo físico
- Finalidade: a implementação de verdade, dentro de um SGBD específico — com tipos de dado exatos, índices, engine, e todas as particularidades daquela ferramenta.
- Notação: a da própria ferramenta usada. No nosso caso, o EER Diagram do MySQL Workbench, com colunas, tipos do MySQL (INT, VARCHAR...) e as marcações PK/FK/NN.
- Exemplo: a tabela
alunodentro do Workbench, commatricula INT PK,nome VARCHAR(100) NOT NULL, etc.
Qual nível vamos usar nesta disciplina, e por quê
Nesta disciplina, não vamos tratar os três níveis como etapas separadas e obrigatórias (não vamos entregar um modelo conceitual, depois um lógico, depois um físico, cada um em um documento diferente). Em vez disso:
- Começamos cada assunto novo pelo raciocínio conceitual (retângulo/elipse), porque é a forma mais simples de pensar no problema sem se distrair com detalhes técnicos.
- Depois vamos direto para o modelo físico, já dentro do MySQL Workbench — misturando, na prática, o que a teoria chama de lógico e físico em uma etapa só.
Fazemos essa simplificação por dois motivos: o tempo do bimestre não permite tratar os três níveis com o rigor de uma disciplina de graduação, e o objetivo aqui é sair sabendo modelar na prática, com a ferramenta que o mercado usa de verdade. Isso também é comum no dia a dia profissional: muitos times pulam direto do rascunho conceitual para a ferramenta de modelagem física, sem produzir um modelo lógico separado.
Nota sobre notação: por isso, hoje e no próximo encontro vamos desenhar entidade como retângulo e atributo como elipse (notação de Chen, nível conceitual) — e, ao abrir o Workbench, veremos cada entidade virar uma tabela com colunas já dentro dela (notação do nível físico). São notações diferentes, para finalidades diferentes; a ideia por trás continua a mesma.
3. O que é uma entidade?
Uma entidade é um "tipo de objeto" ou "coisa" do mundo real sobre a qual queremos guardar dados. É sempre um substantivo: um Aluno, um Produto, um Pedido, um Livro.
Toda entidade, mais adiante, vai virar uma tabela no banco de dados — é a mesma ideia que já usamos desde o Encontro 2, só que agora com um nome novo e desenhada antes de existir de fato.
No DER, uma entidade é desenhada como um retângulo.
Exemplo guiado: encontrando entidades
Imagine que uma escola quer controlar alunos, professores e turmas. Lendo essa frase com atenção:
- Os substantivos "alunos", "professores" e "turmas" são candidatos a entidade — cada um é um "tipo de coisa" sobre o qual a escola quer guardar várias informações diferentes.
- Já um detalhe como "e-mail do aluno" não é uma entidade própria — é só uma característica do Aluno, ou seja, um atributo (o próximo assunto).
Para refletir: em um sistema de uma padaria, "Cliente" e "Pedido" parecem boas entidades. E "forma de pagamento" (dinheiro, cartão, pix)? Entidade ou atributo? (Na maioria dos casos, é um atributo do Pedido — a não ser que a padaria precise guardar várias informações detalhadas sobre cada forma de pagamento, aí poderia virar entidade própria.)
4. O que é um atributo?
Um atributo é uma característica de uma entidade — uma informação que queremos guardar sobre cada ocorrência dela.
Todo atributo, mais adiante, vai virar um campo (coluna) da tabela. Entidade Aluno → tabela Aluno; atributos matrícula, nome, idade → campos matrícula, nome, idade.
No DER, um atributo é desenhado como uma elipse, ligada à entidade a que pertence.
Exemplo guiado: escolhendo bons atributos
Para a entidade Aluno de uma escola, várias informações poderiam virar atributos: nome, idade, matrícula, cor da mochila, time de futebol favorito...
O critério não é "é uma característica da pessoa?" — é "o sistema precisa dessa informação para o que ele se propõe a fazer?" Uma escola normalmente precisa de nome, matrícula e turma; dificilmente precisa saber o time de futebol favorito do aluno. Por isso, ao modelar, sempre perguntamos: para que serve esse sistema, e quais informações ele realmente precisa guardar?
5. Tipos de atributo
| Tipo | O que é | Exemplo |
|---|---|---|
| Simples | Não pode ser dividido em partes menores | idade, ano |
| Composto | Pode ser dividido em partes menores | endereço (rua + cidade + CEP) |
| Multivalorado | Pode ter mais de um valor ao mesmo tempo | telefone (um aluno pode ter 2 números) |
| Identificador (chave) | Identifica de forma única cada ocorrência da entidade | matrícula, código |
O atributo identificador é exatamente o que já conhecemos como chave primária — só que, no DER, ele é desenhado como uma elipse com o nome sublinhado.
6. Modelando no MySQL Workbench
Vamos criar um Model novo — um arquivo de modelagem, ainda sem conectar a nenhum servidor. É nele que desenhamos o EER Diagram.
- Na tela inicial do Workbench, vá em Models e clique no + (ou File → New Model).
- Dentro do Model, clique duas vezes em Add Diagram para abrir o canvas do EER Diagram.
- Na barra de ferramentas à esquerda do canvas, clique no ícone Place a New Table (atalho: tecla T).
- Clique em um espaço vazio do diagrama — isso cria uma tabela chamada "table1".
- Duplo clique na tabela para abrir o editor, na aba Columns.
- Renomeie a tabela para o nome da entidade (ex.:
aluno) e adicione as colunas com base nos atributos que vocês identificaram — marcando a caixinha PK na coluna identificadora.
Cada tabela que você posicionar no diagrama é uma entidade; cada coluna que você adicionar é um atributo.
7. Prévia do próximo encontro
Na próxima aula, vamos aprender sobre relacionamentos e cardinalidade — e vamos desenhar as linhas de relacionamento entre as tabelas, direto no mesmo diagrama que começamos hoje.
Vídeos sobre o assunto
- Modelagem de Dados: Entidade, Atributo, Tupla, Cardinalidade, Chaves — Aula 4 — explica os elementos básicos da modelagem de dados, incluindo entidade e atributo.
Para se aprofundar
- Modelagem de dados — Novotec — material com explicação e exemplos de entidade, atributo e relacionamento no MER/DER.
- How to Create a Simple ERD in MySQL Workbench — tutorial prático (em inglês) de como criar tabelas num EER Diagram.
- Modelagem de dados: Conceitual, Lógica e Física — Data Universe — artigo completo sobre os três níveis, com objetivos e exemplos de cada um.
- Diferenças entre modelo lógico e modelo físico — Alura — aprofunda especificamente a diferença entre esses dois níveis.