Surrogate Key
A surrogate key is an artificial, system-generated identifier — typically an auto-incrementing integer or a UUID — used as a primary key instead of any business data. It has no meaning outside the database.
Surrogate keys (like an employee_id generated by a sequence) are preferred over natural business values because business data can change — an email address or a national ID can be reissued or corrected, which would cascade painfully through every foreign key referencing it. A surrogate key never needs to change.
The trade-off: a surrogate key carries no inherent meaning, so you still need a unique constraint on the natural candidate key (like email) to enforce real-world uniqueness rules.
CREATE TABLE employees (
employee_id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
email VARCHAR2(100) UNIQUE
);