如何在網(wǎng)上接做網(wǎng)站的小項(xiàng)目抖音seo
文章目錄
關(guān)系型數(shù)據(jù)庫(kù)三范式介紹
一、什么是三范式
二、數(shù)據(jù)冗余
三、范式的劃分
四、一范式
五、二范式
六、三范式
七、總結(jié)
關(guān)系型數(shù)據(jù)庫(kù)三范式介紹
一、什么是三范式
設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)時(shí),遵從不同的規(guī)范要求,設(shè)計(jì)出合理的關(guān)系型數(shù)據(jù)庫(kù),這些不同的規(guī)范要求被稱為不同的范式,各種范式呈遞次規(guī)范,越高的范式數(shù)據(jù)庫(kù)冗余越小。
二、數(shù)據(jù)冗余
數(shù)據(jù)冗余是指數(shù)據(jù)之間的重復(fù),也可以說(shuō)是同一數(shù)據(jù)存儲(chǔ)在不同數(shù)據(jù)文件中的現(xiàn)象
三、范式的劃分
根據(jù)數(shù)據(jù)庫(kù)冗余的大小,目前關(guān)系型數(shù)據(jù)庫(kù)有六種范式,各種范式呈遞次規(guī)范,越高的范式數(shù)據(jù)庫(kù)冗余越小。
六種范式:
-
第一范式(1NF)
-
第二范式(2NF)
-
第三范式(3NF)
-
巴斯-科德范式(BCNF)
-
第四范式 ( 4NF)
-
第五范式(5NF,又稱完美范式)
一般遵循 前三種范式即可
四、一范式
第一范式(1NF): 強(qiáng)調(diào)的是字段的原子性,即一個(gè)字段不能夠再分成其他幾個(gè)字段。
?
這種表結(jié)構(gòu)設(shè)計(jì)就沒(méi)有達(dá)到 1NF,要符合 1NF 我們只需把字段拆分,即:把 contact 字段拆分成 name 、tel、addr 等字段。 ?
五、二范式
第二范式(2NF): 滿足 1NF的基礎(chǔ)上,另外包含兩部分內(nèi)容
-
一是表必須有一個(gè)主鍵
-
二是非主鍵字段必須完全依賴于主鍵,而不能只依賴于主鍵的一部分
?
OrderDetail表的主鍵是什么?
主鍵的定義:能夠確定唯一一行記錄的特殊字段
?
create table test?(name varchar(19),id int,primary key (name,id)
)
?
這里有主鍵由OrderID和ProductID共同組成
同時(shí) UnitPrice 和 ProductName 這里兩個(gè)字段 與ProductID的從屬關(guān)系強(qiáng)于他們同OrderID的從屬關(guān)系
?
?
六、三范式
第三范式(3NF): 滿足 2NF
另外非主鍵字段必須直接依賴于主鍵,不能存在傳遞依賴。
即不能存在:非主鍵字段 A 依賴于非主鍵字段 B,非主鍵字段 B 依賴于主鍵的情況。
因?yàn)?OrderDate,CustomerID,CustomerName,CustomerAddr,CustomerCity 等非主鍵字段都完全依賴于主鍵(OrderID),所以符合 2NF。
不過(guò)問(wèn)題是 CustomerName,CustomerAddr,CustomerCity 直接依賴的是 CustomerID(非主鍵列),而不是直接依賴于主鍵,它是通過(guò)傳遞才依賴于主鍵,所以不符合 3NF。
?
把【Order】表拆分為【Order】(OrderID,OrderDate,CustomerID)和【Customer】(CustomerID,CustomerName,CustomerAddr,CustomerCity)從而達(dá)到 3NF。
七、總結(jié)
概念:
設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)時(shí),遵從不同的規(guī)范要求,設(shè)計(jì)出合理的關(guān)系型數(shù)據(jù)庫(kù),這些不同的規(guī)范要求被稱為不同的范式,各種范式呈遞次規(guī)范,越高的范式數(shù)據(jù)庫(kù)冗余越小。
三范式:
- 第一范式(1NF): 強(qiáng)調(diào)的是列的原子性,即列不能夠再分成其他幾列。
- 第二范式(2NF): 滿足 1NF,另外包含兩部分內(nèi)容,一是表必須有一個(gè)主鍵;二是非主鍵字段 必須完全依賴于主鍵,而不能只依賴于主鍵的一部分。
- 第三范式(3NF): 滿足 2NF,另外非主鍵列必須直接依賴于主鍵,不能存在傳遞依賴。即不能存在:非主鍵列 A 依賴于非主鍵列 B,非主鍵列 B 依賴于主鍵的情況。
-
?📢博客主頁(yè):https://lansonli.blog.csdn.net
-
📢歡迎點(diǎn)贊 👍 收藏 ?留言 📝 如有錯(cuò)誤敬請(qǐng)指正!
-
📢本文由 Lansonli 原創(chuàng),首發(fā)于 CSDN博客🙉
-
📢停下休息的時(shí)候不要忘了別人還在奔跑,希望大家抓緊時(shí)間學(xué)習(xí),全力奔赴更美好的生活?
?