一、第一範式(1NF)
第一範式要求表格中的每一列都是不可再分的基本數據項,即每個欄位都不可以再分割成更小的數據項,同時每一個表格中都具有一個主鍵來唯一確定每一行記錄。
CREATE TABLE customers ( cust_id int NOT NULL, first_name varchar(50) NOT NULL, last_name varchar(50) NOT NULL, email varchar(100) NOT NULL, PRIMARY KEY (cust_id) );
在上述代碼中,每一個欄位都是不可再分的基本數據項,同時cust_id是表格的主鍵。
二、第二範式(2NF)
第二範式要求表格中所有的非主鍵欄位都要完全依賴於主鍵,也就是說,任何一行記錄的非主鍵欄位的值必須是唯一確定的。
CREATE TABLE order_items ( order_num int NOT NULL, order_itemnum int NOT NULL, prod_id int NOT NULL, quantity int NOT NULL, price decimal(10,2) NOT NULL, PRIMARY KEY (order_num, order_itemnum), FOREIGN KEY (prod_id) REFERENCES products (prod_id) );
在上述代碼中,除了組合主鍵(order_num和order_itemnum)以外的欄位都依賴於主鍵。
三、第三範式(3NF)
第三範式要求表格中所有的非主鍵欄位都不應該相互依賴,也就是說,任何一個非主鍵欄位的值都不應該依賴於表格中的其他非主鍵欄位。
CREATE TABLE employees ( employee_id int NOT NULL, last_name varchar(25) NOT NULL, first_name varchar(25) NOT NULL, birthdate date NOT NULL, job_title varchar(50) NOT NULL, department_id int NOT NULL, PRIMARY KEY (employee_id), FOREIGN KEY (department_id) REFERENCES departments (department_id) );
在上述代碼中,job_title欄位依賴於employee_id,而不是department_id,確保了數據的彼此獨立性。
四、總結
三範式是關係型資料庫設計的基本規範,保證了數據的完整性和一致性,提高了資料庫設計的質量和可維護性。
原創文章,作者:BPDBW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/371744.html