Skip to content
🤷

Forgive us! These docs are a work in progress. Some pages may be incomplete or describe features that aren't quite finished yet. Farkitect is in early development and we don't recommend using it for real work just yet. Feel free to explore — just be aware that things are still being built.

M2 Logical Data Model

A metamodel for logical data modelling — defining the structure of data independent of any specific database technology. Based on standard practices from Len Silverston’s Data Model Resource Book and the DAMA DMBOK.

TypeShapeColourDescription
Entityrectangle#B5D4FF (light blue)A concept about which data is recorded. Renders with name and attributes compartments.
Attributerectangle (subordinate)#D4E8FFA named, typed property of an Entity. Owned element — renders inside the Entity’s attributes compartment.

Entity renders with two compartments:

  1. Name — entity name in bold, with <<Entity>> stereotype
  2. Attributes — owned Attribute elements displayed using the template {name} : {Data Type}{Is Primary Key? [PK]:}
PropertyTypeRequiredDescription
Data TypeEnumerationYesString, Integer, Real, Boolean, Date, DateTime, Text
Is Primary KeyBooleanNoMarks the attribute as part of the entity’s primary key
Is RequiredBooleanNoNOT NULL equivalent
RelationshipLine StyleMarkersDescription
RelatedsolidnoneAssociation between two Entities with cardinality
PropertyTypeDescription
CardinalityEnumeration1:1 (one-to-one), 1:N (one-to-many), M:N (many-to-many)

Multiplicities and role names are shown on diagram edges.

  • Data Type — String, Integer, Real, Boolean, Date, DateTime, Text
  • Cardinality — 1:1, 1:N, M:N

This metamodel is designed for third normal form (3NF) data modelling:

  • Each entity represents a single concept
  • Attributes depend only on the entity’s primary key
  • Relationships capture associations with cardinality