Bạn cần hiểu cách cơ bản để ghi lại thông tin theo quan hệ, tức là trong các bảng.
Tìm đủ bảng
Chỉ cần có một bảng cơ sở cho mọi tuyên bố bạn cần để mô tả tình hình kinh doanh:
User(user_id,name,...)
// User [user_id] is named [name]
Contacted(contact_id,item,offer_id)
// user [contact_id] was contacted re item [item] offered by user [offer_id]
...etc...
Các tham số của câu lệnh là các cột của bảng.
Nếu bạn muốn nói về các phần của một thứ mà bạn cho là có nhiều phần (không đồng nhất hoặc đồng nhất) thì điều đó chỉ có nghĩa là một số phát biểu sẽ liên quan đến một sự vật và các bộ phận của nó:
table request(request_id,start_date,end_date,...)
// [request_id] goes from [start_date] to [end_date] and ...
table requested(request_id,item_id,person_id,...)
// person [person_id] requested item [item_id] in request [request_id]
Có gì trong bảng
Giá trị của bảng cơ sở là các hàng làm cho câu lệnh của nó đúng. (Mọi biểu thức con truy vấn cũng có một câu lệnh và giá trị của nó là các hàng làm cho câu lệnh của nó đúng.)
Đừng nhầm lẫn giữa các câu lệnh trong bảng với các quy tắc kinh doanh. Quy tắc kinh doanh nêu sự thật. Nhưng một câu lệnh bảng là một câu lệnh mà một số tuple biến true (và có trong bảng) hoặc false (không có trong bảng). Tất cả các tuyên bố đúng và sai từ các bảng cho bạn biết mọi thứ bạn cần biết về doanh nghiệp. Các quy tắc kinh doanh sẽ không bao giờ mâu thuẫn với chúng. (Vì chúng luôn đúng.)
Sắp xếp lại thành các bảng tốt hơn
Khóa là một tập hợp các cột mà tất cả các cột khác đều có chức năng như vậy nhưng không có tập hợp con nào có thuộc tính đó. Một bảng có thể có nhiều hơn một khóa.
Để cập nhật và truy vấn cơ sở dữ liệu dễ dàng hơn, bạn nên chia nhỏ các câu lệnh nhất định là các câu lệnh khác được nối bởi AND. Chia nhỏ cho đến khi mỗi câu lệnh chỉ bao gồm một câu lệnh về các cột chính VÀ được kèm theo các câu lệnh dạng này:
[my_column]=my_function([key_k_column_1],[key_k_column_2],...)
trong đó key_k_column_1, ... là các cột của cùng một key key_n.
(Bảng như vậy là "ở dạng chuẩn thứ năm" và chủ đề là "chuẩn hóa".)