新聞中心
MySQL三大范式是關(guān)系型數(shù)據(jù)庫設(shè)計中的一種規(guī)范,用于減少數(shù)據(jù)冗余和提高數(shù)據(jù)完整性,它們分別是第一范式(1NF)、第二范式(2NF)和第三范式(3NF),下面將詳細介紹這三個范式的概念、規(guī)則和查詢方法。

第一范式(1NF)
1、概念:第一范式要求數(shù)據(jù)庫表中的每個字段都是不可分割的基本數(shù)據(jù)項,即原子性,換句話說,每個字段都不能再分解為更小的部分。
2、規(guī)則:
數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項;
同一列中不能有多個值;
列的值只能是原子性的,不能再分解。
3、查詢方法:在創(chuàng)建表時,確保每個字段都是原子性的,不包含其他字段。
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(20),
age INT,
gender VARCHAR(10)
);
第二范式(2NF)
1、概念:第二范式要求數(shù)據(jù)庫表中的每個非主屬性完全依賴于主鍵,即不存在部分依賴,換句話說,如果一個字段只依賴于主鍵的一部分,那么它應(yīng)該被分離到另一個表中。
2、規(guī)則:
數(shù)據(jù)庫表的每一列都與主鍵完全依賴;
不存在部分依賴。
3、查詢方法:在創(chuàng)建表時,確保每個非主屬性都完全依賴于主鍵,如果存在部分依賴,需要將其分離到另一個表中。
CREATE TABLE course (
id INT PRIMARY KEY,
name VARCHAR(20),
teacher_id INT,
FOREIGN KEY (teacher_id) REFERENCES teacher(id)
);
第三范式(3NF)
1、概念:第三范式要求數(shù)據(jù)庫表中不存在傳遞依賴,換句話說,如果一個非主屬性只依賴于其他非主屬性,而不是直接依賴于主鍵,那么它應(yīng)該被分離到另一個表中。
2、規(guī)則:
數(shù)據(jù)庫表的每一列都不傳遞依賴于主鍵;
不存在傳遞依賴。
3、查詢方法:在創(chuàng)建表時,確保每個非主屬性都不傳遞依賴于主鍵,如果存在傳遞依賴,需要將其分離到另一個表中。
CREATE TABLE teacher (
id INT PRIMARY KEY,
name VARCHAR(20),
department_id INT,
FOREIGN KEY (department_id) REFERENCES department(id)
);
當(dāng)前文章:mysql三大范式查詢詳解是什么
分享地址:http://www.5511xx.com/article/cosciog.html


咨詢
建站咨詢
