Naming things
In Why reinvent the relational model?, DataJoint is defined as a convergence of the Relational Data Model and the Entity-Relationship Model. Let’s review some terminology.
The term relational is often misunderstood. For example, Google serves up a misleading definition for a relational databases. I have submitted my correction but we will see if it takes.

All databases recognize relations between items of information and that’s not what makes a relational database. Relational databases derive their name from the concept of relations in set theory. A relation is any subset of the Cartesian product of several domains where a domain is a set of values. Individual elements of a relation are called tuples.
For example, imagine three domains: person
with elements {Alice, Bob, Carol, Dave}, language
with elements {English, Italian, Tagalog, Urdu}, and level
with elements {1, 2, 3}. The Cartesian product person
×language
×level
contains 4×4×3=48 elements each of which is a tuple such as (Alice, English, 1) or (Dave, Urdu, 2). The total number of possible relations of this class is 248 > 281 trillion.
In a relational database, a table can be thought of as a container for relations of a given class with its columns representing the domains. At any time, the contents of the table represents a relation and the table rows are then tuples in the relation.
When the Entity Relationship Model (ERM) is mapped into a relational design, entities become tables. The table itself represents of an entity class. The contents of the table represents a set of entities of that class and each row represents an individual entity.
Summary of DataJoint terminology
In a DataJoint pipeline, each node can be thought of as (a) an entity class in ERM lingo, (b) a relational variable (relvar for short) in relational terminology, or (c) a table in the conventional database lingo.
We no longer use relvar but the terms table and entity class (or simply class) are most common and appropriate.
The columns of a table are called attributes and the rows are tuples or entities. The entire contents of a table is a relation or an entity set.

In MATLAB and Python, each table is defined and accessed through its dedicated DataJoint class. The class first defines the entity class and its instances provide access to the currently stored entity set ≡ relation.
Different terminologies are used for emphasis. For example, when we define the pipeline, we focus on the E-R terminology as it describes the real world. However, data queries are often defined in relational terms.
The terminology with further crystalize with time shifting further toward E-R terminology but without sacrificing the logical rigor of the relational model.
Related posts
DataJoint Basics in Ten Minutes
Updates Delivered *Straight to Your Inbox*
Join the mailing list for industry insights, company news, and product updates delivered monthly.
