Notações de Modelagem: A Arte de Projetar Dados
// ER, UML e Ferramentas CASE
A modelagem conceitual define o esquema do nível conceitual (ANSI/SPARC), representando dados de forma abstrata antes do mapeamento para o modelo relacional (C.J. Date).
Notações como Peter Chen, Crow’s Foot e UML ajudam a visualizar entidades, relacionamentos e atributos, enquanto ferramentas CASE facilitam a criação e conversão para SQL.
-- Exemplo: Esquema conceitual mapeado para SQL CREATE TABLE projetos ( jid VARCHAR(10) PRIMARY KEY, jname VARCHAR(100) NOT NULL );
Draw.io, Lucidchart, MySQL Workbench,
pgAdmin, DBeaver ou brModelo.
Notação de Peter Chen
// Caixas, Losangos e Círculos
A notação de Peter Chen é altamente conceitual, usando:
O que é o Modelo Entidade‑Relacionamento (ER)?
O modelo ER, proposto por Peter Chen em 1976, é uma técnica de modelagem conceitual de dados que permite representar graficamente a estrutura de um banco de dados antes de implementá‑lo. Ele separa:
- Entidades (objetos do mundo real)
- Relacionamentos (conexões entre entidades)
- Atributos (propriedades de entidades ou relacionamentos)
Símbolos básicos em um diagrama ER
| Símbolo | Notação típica | Uso |
|---|---|---|
| Entidade | Retângulo | Representa uma “tabela” ou conjunto de objetos semelhantes. |
| Relacionamento | Losango ou linha | Conecta entidades, descrevendo como elas se associam. |
| Atributo | Elipse | Propriedade de uma entidade ou relacionamento. |
| Cardinalidade | Linha simples / Pé‑de‑galinha | Indica “1” (linha simples) ou “N” (pé‑de‑galinha) para número de ocorrências. |
| Participação | Barra (obrigatório) / Círculo (opcional) | Define se a participação no relacionamento é total ou parcial. |
-- Diagrama Peter Chen (ASCII) [Projetos] ---[Atribuição]--- [Funcionários] | JID (PK) FID (PK) | | JNAME FNAME |
-- Diagrama Peter Chen (ASCII) [Projetos] ---[Atribuição]--- [Funcionários] | JID (PK) FID (PK) | | JNAME FNAME |
Descrição do Diagrama
Este é um diagrama no estilo Peter Chen que mostra duas entidades e o relacionamento entre elas:
-
Entidade Projetos
JID(PK): Chave primária, identificador único do projeto.JNAME: Nome do projeto.
-
Entidade Funcionários
FID(PK): Chave primária, identificador único do funcionário.FNAME: Nome do funcionário.
- Relacionamento Atribuição: Conecta projetos e funcionários, indicando em quais projetos cada funcionário está atribuído.
Símbolos Utilizados
- Colchetes [ ]: Representam entidades.
- ---[Nome]---: Representa um relacionamento entre as entidades.
- (PK): Indica o atributo chave primária de cada entidade.
[Projetos] ---[Contém]--- [Tarefas]
| JID (PK) TID (PK) |
| JNAME TNAME |
Notação Crow’s Foot
// Compacta e Industrial
Notação Crow’s Foot
Na indústria, usamos símbolos visuais para indicar cardinalidade e participação:
- (Linha com círculo): Opcional (0)
- ( Linha dupla): Obrigatória (1)
- (Pé de galinha): Muitos (N)
-- Diagrama Crow’s Foot (ASCII) [Projetos]--1:N--[Tarefas] JID (PK) || TID (PK) JNAME || TNAME || JID (FK)
Exemplo Prático: Gestão de Projetos
Considere o sistema da Aula 4 (Projetos e Tarefas):
-- Diagrama Crow’s Foot (ASCII) [Projetos]--1:N--[Tarefas] JID (PK) || TID (PK) JNAME || TNAME || JID (FK) -- DDL correspondente CREATE TABLE projetos ( jid VARCHAR(10) PRIMARY KEY, jname VARCHAR(100) ); CREATE TABLE tarefas ( tid VARCHAR(10) PRIMARY KEY, tname VARCHAR(100), jid VARCHAR(10) REFERENCES projetos NOT NULL );
[Departamentos]--1:N--[Funcionários]
DID (PK) || FID (PK)
DNAME || FNAME
|| DID (FK)
[Projetos]--1:N--[Tarefas]
JID (PK) || TID (PK)
JNAME || TNAME
|| JID (FK)
Diagramas de Classe UML
// Classes, Atributos e Associações
Diagramas de classe UML podem modelar bancos de dados, representando:
- Classes: Entidades (ex.: Projetos).
- Atributos: Propriedades com tipos (ex.: JNAME: VARCHAR).
- Associações: Relacionamentos com cardinalidade (ex.: 1..*).
Diagrama de Classes UML
O diagrama de classes UML representa estáticos do sistema:
- Classes: Representam entidades do domínio (ex.: Projetos).
- Atributos: Propriedades com seus tipos e estereótipos (ex.:
JNAME: VARCHAR). - Associações: Ligam classes, com multiplicidades (ex.:
1em Projetos para0..*em Funcionários).
Multiplicidade UML: 0..*
A notação 0..* significa que, para cada instância da classe à esquerda, existem:
- 0 – participação opcional (pode não existir nenhuma instância relacionada);
- * – um número ilimitado de instâncias relacionadas.
Exemplo: Projeto (0..*) Funcionário indica que um projeto pode ter nenhum ou vários funcionários associados.
-- Diagrama UML (ASCII) [Projetos] 1 ---- * [Tarefas] +jid: VARCHAR +tid: VARCHAR +jname: VARCHAR +tname: VARCHAR +jid: VARCHAR
[Departamentos] 1 ---- * [Funcionários]
+did: VARCHAR +fid: VARCHAR
+dname: VARCHAR +fname: VARCHAR
+did: VARCHAR
Ferramentas CASE para Modelagem
// Online, Desktop e Nacionais
Ferramentas CASE
| Tipo | Ferramentas | Características |
|---|---|---|
| Online/Colaborativas | Draw.io, Lucidchart | Colaboração em tempo real, exportação para SQL. |
| Desktop/Integradas | MySQL Workbench, pgAdmin, DBeaver | Integração com SGBDs, geração de DDL. |
| Nacionais | brModelo | Focado em ER, interface simples. |
-- DDL gerado por ferramenta CASE CREATE TABLE funcionarios ( fid VARCHAR(10) PRIMARY KEY, fname VARCHAR(100) NOT NULL, did VARCHAR(10) REFERENCES departamentos NOT NULL );
Em Draw.io, crie caixas para Projetos e Tarefas,
conecte com uma linha 1:N, adicione atributos
(JID, JNAME, TID, TNAME, JID_FK).
Laboratório Guiado: Conversão de Notações
// Peter Chen para Crow’s Foot
Converta o diagrama ER da Aula 4 (Projetos, Tarefas, Equipes, Funcionários) de Peter Chen para Crow’s Foot usando uma ferramenta CASE (ex.: Draw.io ou MySQL Workbench). Inclua:
1. Entidades e atributos.
2. Relacionamentos com cardinalidade e participação.
3. Gere o DDL correspondente.
-- Peter Chen (Aula 4) [Projetos] ---[Contém]--- [Tarefas] JID (PK) TID (PK) JNAME TNAME -- Crow’s Foot [Projetos]--1:N--[Tarefas] JID (PK) || TID (PK) JNAME || TNAME || JID (FK) -- DDL Gerado CREATE TABLE projetos ( jid VARCHAR(10) PRIMARY KEY, jname VARCHAR(100) ); CREATE TABLE tarefas ( tid VARCHAR(10) PRIMARY KEY, tname VARCHAR(100), jid VARCHAR(10) REFERENCES projetos NOT NULL );
Use Draw.io para desenhar Projetos e Tarefas
em Crow’s Foot:
- Caixas para entidades.
- Linha 1:N com linha dupla (obrigatória).
- Exportar DDL: projetos (JID, JNAME),
tarefas (TID, TNAME, JID_FK).
Em Draw.io, crie caixas para Projetos e Tarefas,
use linha 1:N com linha dupla para participação
obrigatória, adicione atributos e exporte DDL.
Laboratório Guiado: Atividade 2
Explicação do Diagrama ER
Este diagrama mostra duas entidades e o relacionamento entre elas:
- Cliente:
ClienteID(PK) – chave primária, identifica unicamente cada cliente.Nome– nome do cliente.
- Pedido:
PedidoID(PK) – chave primária, identifica unicamente cada pedido.Data– data em que o pedido foi realizado.
- Relacionamento faz (losango):
- Conecta as entidades Cliente e Pedido.
- Indica que um cliente “faz” um ou vários pedidos.
- Cardinalidade:
1junto a Cliente – cada pedido é feito por exatamente um cliente.Njunto a Pedido – um cliente pode fazer muitos pedidos.
O que fazer?
- Abrir o Draw.io (ou ferramenta semelhante).
- Adicionar duas entidades (
ClienteePedido) como retângulos e inserir seus atributos. - Inserir um losango para o relacionamento
fazentre as duas entidades. - Conectar cada entidade ao losango com linhas e anotar as cardinalidades
1eNnos locais corretos. - Ajustar o layout para que o diagrama fique claro e legível.
- Salvar e compartilhar o diagrama finalizado.
Quiz Interativo
// Teste seus conhecimentos sobre notações
Teste de Conhecimento
Responda às perguntas para consolidar o aprendizado sobre notações de modelagem.
1. Qual elemento da notação Peter Chen representa relacionamentos?
2. Como a notação Crow’s Foot indica cardinalidade “muitos”?
3. O que representa uma classe em um diagrama UML para banco de dados?
4. Qual ferramenta CASE é colaborativa e online?
5. Qual notação usa linhas duplas para participação obrigatória?
RUN notation_quiz_check; -- Quiz finalizado. Parabéns por explorar as notações!