Skip to content

Repository files navigation

DER Builder — Especificação de Modelagem, Notação de Peter Chen e Sintaxe do Editor

Bem-vindo à documentação oficial do DER Builder. Este documento é a Especificação Técnica e Referência Definitiva da aplicação, cobrindo a teoria dos modelos ER (Entidade-Relacionamento) e EER (ER Estendido), a notação gráfica formal proposta por Peter Chen (1976), a Sintaxe do Editor e o conjunto rigoroso de Regras de Validação implementadas pelo software.


📚 Sumário Executivo

  1. Visão Geral do Modelo ER / EER
  2. Notação Oficial de Peter Chen vs. Sintaxe do DER Builder
  3. Entidades
  4. Atributos
  5. Relacionamentos
  6. Restrições Estruturais (Cardinalidade e Participação)
  7. Modelo ER Estendido (EER)
  8. Sintaxe e Convenções do DER Builder
  9. Regras de Validação Estrutural do Software
  10. Regras de Modelagem Conceitual (Entidade Associativa vs. Relacionamento)
  11. Exemplos Práticos e Scripts Completos
  12. Casos Inválidos e Erros Frequentes
  13. Tabela de Compatibilidade com a Notação de Peter Chen
  14. Limitações Conhecidas do DER Builder

1. Visão Geral do Modelo ER / EER

O Modelo Entidade-Relacionamento (DER) foi introduzido por Peter Pin-Shan Chen em seu artigo seminal de 1976 ("The Entity-Relationship Model — Toward a Unified View of Data"). Trata-se de uma modelagem de nível conceitual alta, independente de implementação em bancos de dados relacionais ou NoSQL.

Diferenciação entre ER Clássico e EER

  • ER Clássico de Chen: Foca nos conceitos primitivos universais: Entidades (fortes e fracas), Atributos (simples, chave, multivalorados, derivados, compostos), Relacionamentos (binários, n-ários, identificadores), Cardinalidade e Participação.
  • EER (Extended Entity-Relationship): Expansão desenvolvida na década de 1980 para incorporar abstrações de Orientação a Objetos: Especialização, Generalização, Herança de Atributos/Relacionamentos, Restrições de Disjunção/Completude e Categorias (Uniões).

2. Notação Oficial de Peter Chen vs. Sintaxe do DER Builder

É fundamental distinguir os símbolos gráficos formais da notação Chen das palavras-chave e prefixos textuais criados pelo DER Builder para permitir a geração de diagramas via código.

Conceito Notação Gráfica Oficial de Chen Sintaxe Textual do DER Builder
Entidade Forte Retângulo Simples Funcionario { ... }
Entidade Fraca Retângulo de Borda Dupla entidade fraca Dependente { ... }
Atributo Simples Elipse Simples Nome
Atributo Chave Elipse com texto sublinhado sólido *CPF ou #CPF
Chave Parcial Elipse com texto sublinhado tracejado _Nome_dependente_
Multivalorado Elipse de Borda Dupla ++Telefones ou Telefones[]
Derivado Elipse de Borda Tracejada ~Idade
Relacionamento Forte Losango Simples trabalha (Funcionario 1:N Departamento)
Relacionamento Fraco Losango de Borda Dupla relacionamento fraco possui (Funcionario 1:N Dependente)
Participação Total Linha Dupla Checkbox no Inspetor / automático em relacionamentos fracos
Papel (Role Name) Rótulo textual sobre a linha Professor [supervisor]
Especialização Círculo com d, o ou u especializacao d (Pessoa -> Aluno, Professor)

3. Entidades

3.1 Entidades Fortes (Regulares)

Uma entidade forte possui existência própria e autônoma no minimundo. É identificada por uma chave primária própria.

  • Gráfico: Retângulo Simples.
  • Sintaxe: Aluno { *Matricula, Nome }

3.2 Entidades Fracas

Uma entidade fraca não pode ser identificada apenas por seus próprios atributos e sua existência depende de uma entidade forte (entidade identificadora).

  • Gráfico: Retângulo de Borda Dupla.
  • Sintaxe: entidade fraca Dependente { _Nome_dependente_, Parentesco }

3.3 Chaves Primárias e Chaves Compostas

  • Chave Primária Simples: Um único atributo exclusivo (*CPF).
  • Chave Primária Composta: Formada pelo conjunto de dois ou mais atributos que, juntos, garantem a unicidade da entidade.
    • Sintaxe: ItemPedido { *NumeroPedido, *CodigoProduto, Quantidade }

4. Atributos

4.1 Atributos Simples (Atômicos)

Propriedade que não pode ser dividida em partes menores (ex: Nome, Preco). Representado por uma elipse simples.

4.2 Atributos Compostos (Hierárquicos / Multinível)

Atributo que pode ser desmembrado em subatributos componentes.

  • Gráfico: Elipse do atributo pai conectada diretamente a elipses filhas dos subatributos.
  • Exemplo Multinível: EnderecoRua, Numero, CEP, Localizacao (Latitude, Longitude).
  • Uso no Builder: Ferramenta Conectar ligando o Atributo pai ao Atributo filho.

4.3 Atributos Multivalorados

Pode conter um conjunto de valores para a mesma instância (ex: Telefones, Emails).

  • Gráfico: Elipse de Borda Dupla.
  • Sintaxe: ++Telefones ou Telefones[].

4.4 Atributos Derivados

Atributo cujo valor é calculado ou inferido a partir de outros atributos ou entidades (ex: Idade calculada pela DataNascimento).

  • Gráfico: Elipse de Borda Tracejada (stroke-dasharray: 5 4).
  • Sintaxe: ~Idade.

4.5 Atributos de Relacionamento

Atributos que pertencem diretamente a uma associação entre entidades, e não a nenhuma das entidades isoladamente. Extremamente comuns em relacionamentos N:N.

  • Gráfico: Elipse conectada diretamente ao losango do relacionamento.
  • Sintaxe:
    matricula (Aluno N : N Curso) {
      DataMatricula,
      NotaFinal
    }
    

5. Relacionamentos

5.1 Relacionamentos Binários

Associação entre exatamente duas entidades (ex: Aluno cursa Curso).

5.2 Relacionamentos Recursivos (Auto-relacionamentos e Role Names)

Associação de uma entidade com ela mesma. Nesses casos, os Nomes de Papel (Role Names) são fundamentais para explicitar a função de cada participante.

  • Gráfico: Duas linhas saindo da mesma entidade para o mesmo losango, com rótulos [papel] nas conexões.
  • Sintaxe: supervisiona (Professor [supervisor] 1 : N Professor [orientando])

5.3 Relacionamentos Ternários e N-ários

Associação simultânea entre 3 ou mais entidades.

  • Conceito: Um relacionamento ternário A-B-C não é equivalente a três relacionamentos binários A-B, B-C e A-C. Ele representa uma combinação indivisível das 3 instâncias.
  • Exemplo: fornece (Fornecedor N : Produto N : Projeto N)

5.4 Cardinalidades em Relacionamentos N-ários

Em um relacionamento N-ário, a cardinalidade atribuída a uma entidade representa o número de instâncias que podem se associar à combinação única das demais entidades.

  • Exemplo: Fornecedor N : Produto N : Projeto 1 significa que para cada combinação de (Fornecedor, Produto), existe no máximo 1 Projeto associado.

5.5 Relacionamentos Identificadores (Fracos)

Conectam uma Entidade Fraca à sua Entidade Forte Identificadora.

  • Gráfico: Losango de Borda Dupla.
  • Sintaxe: relacionamento fraco possui (Funcionario 1 : N Dependente)

6. Restrições Estruturais (Cardinalidade e Participação)

6.1 Cardinalidade Máxima (1 e N)

Especifica a proporção máxima de mapeamento entre instâncias (1:1, 1:N, N:N).

6.2 Participação Mínima (0 e 1 — Parcial vs. Total)

  • Participação Parcial (min = 0): A existência da entidade não depende do relacionamento (Linha Simples).
  • Participação Total (min = 1): A existência de toda instância da entidade exige participação no relacionamento (Linha Dupla).

6.3 Notação de Intervalo Limite (min, max)

Representação estruturada de limites exatos:

  • (0,1): Opcional, no máximo um.
  • (1,1): Obrigatório, exatamente um.
  • (0,N): Opcional, vários.
  • (1,N): Obrigatório, pelo menos um.

6.4 Participação Especificada por Lado do Relacionamento

A participação é avaliada individualmente por ponta:

  • Exemplo FUNCIONARIO ═══ trabalha ─── DEPARTAMENTO:
    • Lado FUNCIONARIO: Participação Total (linha dupla) — todo funcionário deve estar alocado a um departamento.
    • Lado DEPARTAMENTO: Participação Parcial (linha simples) — pode existir um departamento novo sem funcionários ainda.

7. Modelo ER Estendido (EER)

7.1 Especialização vs. Generalização

  • Especialização: Processo top-down. Define subclasses a partir de uma superclasse com base em características distintas.
  • Generalização: Processo bottom-up. Sintetiza entidades com características comuns em uma superclasse generalizada.

7.2 Herança de Atributos e Relacionamentos

Toda subclasse herda automaticamente todos os atributos e relacionamentos de sua superclasse, além de possuir seus próprios atributos específicos.

7.3 Restrição de Disjunção (Disjunta d vs. Sobreposta o)

  • Disjunta (d): Uma instância da superclasse pode pertencer a no máximo uma subclasse.
  • Sobreposta (o): Uma instância da superclasse pode pertencer simultaneamente a múltiplas subclasses.

7.4 Restrição de Completude (Total vs. Parcial)

  • Completude Total: Toda instância da superclasse DEVE pertencer a pelo menos uma subclasse.
  • Completude Parcial: Uma instância da superclasse pode existir sem pertencer a nenhuma subclasse.

7.5 Categorias / Uniões (u)

Uma subclasse (categoria) que representa a união de superclasses com tipos totalmente distintos.

  • Símbolo: Círculo com a letra u.
  • Sintaxe: categoria u (Proprietario -> Pessoa, Empresa)

8. Sintaxe e Convenções do DER Builder

Resumo das Palavras-Chave e Prefixo do Editor

  • * ou # → Atributo Chave Primária.
  • _nome_ → Atributo Chave Parcial.
  • ++ ou [] → Atributo Multivalorado.
  • ~ → Atributo Derivado.
  • entidade fraca Nome { ... } → Entidade Fraca.
  • relacionamento fraco Nome (...) → Relacionamento Identificador.
  • especializacao d/o/u (Super -> Sub1, Sub2) → Herança EER.
  • [papel] → Nome de função no relacionamento.

9. Regras de Validação Estrutural do Software

O módulo DERValidator aplica as seguintes regras automáticas:

  1. Entidade:
    • Deve possuir um nome válido.
    • Deve possuir pelo menos um atributo identificador (Chave Primária ou Parcial).
  2. Entidade Fraca:
    • Deve estar vinculada a um Relacionamento Identificador (Losango Duplo) ou possuir uma Chave Parcial.
  3. Relacionamento:
    • Deve estar conectado a pelo menos duas entidades.
    • Não pode ter o mesmo nome de uma Entidade no mesmo escopo.
  4. Atributos:
    • Atributos não podem possuir cardinalidades.
    • Atributos órfãos (sem pai) são sinalizados com alerta.

10. Regras de Modelagem Conceitual (Entidade Associativa vs. Relacionamento)

Uma Entidade Associativa não é um símbolo primitivo extra de Chen, mas uma técnica conceitual para transformar um relacionamento N:N em uma entidade quando esse relacionamento precisa se conectar a outras entidades ou possui um ciclo de vida complexo.


11. Exemplos Práticos e Scripts Completos

Script EER Completo

Funcionario {
  *CPF,
  Nome,
  ~Idade,
  ++Telefones
}

entidade fraca Dependente {
  _Nome_dependente_,
  Parentesco
}

relacionamento fraco possui (Funcionario 1:N Dependente)

especializacao d (Pessoa -> Aluno, Professor)

matricula (Aluno N : N Curso) {
  DataMatricula,
  NotaFinal
}

12. Casos Inválidos e Erros Frequentes

  • ❌ Conectar duas entidades diretamente com uma linha sem usar losango.
  • ❌ Atribuir cardinalidade 1:N a um atributo.
  • ❌ Criar entidade fraca sem chave parcial nem relacionamento fraco.
  • ❌ Usar nomes idênticos para uma entidade e um relacionamento no mesmo projeto.

13. Tabela de Compatibilidade com a Notação de Peter Chen

  • Entidade Forte (Retângulo Simples): 100% Suportado
  • Entidade Fraca (Retângulo Duplo): 100% Suportado
  • Atributo Chave (Sublinhado Sólido): 100% Suportado
  • Chave Parcial (Sublinhado Tracejado): 100% Suportado
  • Multivalorado (Borda Dupla): 100% Suportado
  • Derivado (Borda Tracejada): 100% Suportado
  • Atributo Composto (Atributo ↔ Atributo): 100% Suportado
  • Atributo de Relacionamento: 100% Suportado
  • Relacionamento Identificador (Losango Duplo): 100% Suportado
  • Participação Total (Linha Dupla): 100% Suportado
  • Role Names ([papel]): 100% Suportado
  • Especialização EER (d, o, u): 100% Suportado
  • Exportação Acadêmica (PNG / SVG): 100% Suportado (Gera saída em vetor/imagem no padrão acadêmico oficial de Peter Chen: fundo branco, contornos pretos, preenchimento cinza neutro e tipografia serifada Times New Roman em alta resolução 3x).

14. Recursos do Parser & Exportador

  1. Parser Determinístico Inteligente: Suporta comentários (// e #), especializações multinível, relacionamentos n-ários, papéis em auto-relacionamentos e atributos compostos.
  2. Exportação Acadêmica Formal: Os botões de exportação PNG/SVG geram automaticamente o diagrama na notação visual acadêmica de Peter Chen em preto e branco, pronto para inclusão em monografias, artigos e TCCs.
  3. Persistência Local e Histórico: Suporta undo/redo global (Ctrl+Z / Ctrl+Y), salvamento local no navegador via localStorage e exportação/importação em formato JSON.

DER Builder — Especificação Técnica de Referência.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages