Relational Database Design
Định nghĩa
Relational Database Design là cách mô hình hóa dữ liệu thành tables, rows, columns, keys, constraints và relationships để giữ integrity và hỗ trợ query bằng SQL.
Cách hiểu bằng lời của tôi
Thiết kế relational database không bắt đầu từ câu lệnh SQL, mà từ việc nhận diện entity nào xứng đáng thành table, relationship nào cần foreign key, dữ liệu nào nên normalize, và query nào cần join/index. Schema đúng làm invariant rõ; schema sai khiến application phải vá lỗi dữ liệu mãi về sau.
Building blocks
- Primary key định danh duy nhất một row.
- Foreign key nối table và giữ referential integrity.
- One-to-one, one-to-many, many-to-many mô tả quan hệ entity.
- Junction table biểu diễn many-to-many.
- Normalization giảm redundancy và anomaly.
- Join Operation ghép dữ liệu đã normalize khi đọc.
Access path và query
Relational model tách query intent khỏi physical access path. Application mô tả điều kiện cần thỏa; query optimizer chọn index, join method và join order. Nhờ đó có thể thay đổi storage layout hoặc thêm index mà không viết lại traversal logic của application.
Relational model đặc biệt hữu ích khi many-to-one và many-to-many phổ biến. Với traversal có số hop không cố định, relational schema vẫn biểu diễn được graph nhưng recursive SQL có thể kém tự nhiên hơn graph query language.