Domain constraints are integrity rules that define what kind of values an attribute (column) can take in a relational database. They act on the domain (the set of allowed values) of each attribute and ensure that only valid, meaningful data is stored.
In simple terms, domain constraints say: “this column must be a positive integer”, “this field must be a string of at most 20 characters”, or “this date must be in the future”, and the database enforces these rules automatically.
What Domain Constraints Specify
Domain constraints usually cover:
Data type
Whether an attribute is an integer, string, date, decimal, etc.
For example:
salaryis a positive number,nameis a string,dobis a date.
Range or format restrictions
Salary must be greater than zero.
Age must be between 18 and 100.
Email must match a certain pattern.
Nullability
Whether the attribute can be NULL or must always have a value.
This is distinct from entity integrity (which applies specifically to primary keys) but is still part of domain‑level control.
Together, these rules keep the data logically consistent within each attribute.
Example of Domain Constraints
Consider a relation EMPLOYEE(emp_id, name, age, salary, dept) with the following domain constraints:
emp_id: integer, non‑null, must be positive.name: string, up to 50 characters, non‑null.age: integer, between 18 and 65, non‑null.salary: real number, greater than 0, non‑null.dept: string, from a fixed list such as{'HR', 'IT', 'Sales', 'Finance'}.
If someone tries to insert a row like:
the DBMS may reject it because:
age = 15violates the allowed range (18–65).dept = 'Marketing'is not in the allowed list (if that constraint is enforced).
Such checks are examples of domain constraints at work.
How Domain Constraints Are Expressed
In SQL, domain constraints appear as:
Data‑type declarations (
INT,VARCHAR(20),DATE, etc.).CHECK constraints:
sqlCHECK (salary > 0) CHECK (age BETWEEN 18 AND 65)ENUM or domain types in some systems, which list allowed values.
These declarations ensure that invalid values are blocked at the attribute level, before they corrupt the rest of the logic.
Why Domain Constraints Matter?
They enforce data‑type and meaning correctness, so
agecannot accidentally become a negative number andsalarycannot be text.They prevent garbage or inconsistent values from entering the database, which improves application reliability.
They form the first layer of data validation, acting at the column level before other constraints (entity integrity, referential integrity) are even considered.