Relational Foundations
The Relational Model
The relational model represents facts as relations and derives new relations with operations grounded in set theory and predicate logic. Its logical abstraction deliberately separates what data means from how a database stores or accesses it.
- A relation records the true instances of a predicate.
- The model is logical, not a storage layout.
- Relations are sets of tuples, so tuple order and duplicate occurrences have no relational meaning.
- Relational operators are closed: every operator consumes relations and produces a relation that can feed another operator.
- A database is more than its current values.
- SQL is the dominant relationally inspired language, but SQL tables and results do not always satisfy the mathematical definition of a relation.
From facts to a queryable model
Suppose ENROLLMENT(student_id, course_id, term) stands for the predicate “student student_id is enrolled in course course_id during term.” The tuple (42, DB101, 2026-S1) asserts one true proposition. A query does not navigate pointers from that tuple; it describes a relation to derive, such as all course IDs paired with student 42.
| Layer | Question answered | Example |
|---|---|---|
| Meaning | What fact does a tuple assert? | student S enrolled in course C during term T |
| Logical structure | Which attributes, domains, and constraints apply? | ENROLLMENT(student_id, course_id, term) |
| Physical implementation | How are values encoded and found? | Heap pages plus a B-tree on (student_id, term) |