Surrogate key là khoá do warehouse tự sinh (thường là số nguyên tăng dần hoặc hash), không mang nghĩa nghiệp vụ. Natural key là khoá có sẵn từ hệ thống nguồn, như mã khách hàng KH00123 hay email.
Dimension dùng surrogate key vì:
- Lưu lịch sử thay đổi: khi khách chuyển từ Hà Nội vào TP.HCM và cần giữ cả hai trạng thái (SCD type 2), cùng một mã khách sẽ có hai dòng. Natural key lúc đó không còn duy nhất, surrogate key thì vẫn duy nhất.
- Gộp nhiều nguồn: CRM và hệ thống bán hàng có thể đánh mã khách theo hai kiểu khác nhau, thậm chí trùng số. Surrogate key cho một chuẩn chung.
- Không phụ thuộc nguồn: nguồn đổi định dạng mã hoặc dùng lại mã cũ thì fact table không bị ảnh hưởng.
Natural key vẫn được giữ trong dimension như một cột thường, để đối chiếu với nguồn và để tra ra surrogate key khi nạp fact.
Lưu ý: dimension ngày là ngoại lệ hay gặp: dùng luôn khoá dạng 20260925 vì ngày không đổi và dễ đọc.