一、第一范式(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/n/371744.html