一、第一范式(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
微信扫一扫
支付宝扫一扫