自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

面試突擊:什么是三范式?它有什么用?

開(kāi)發(fā) 前端
第一范式規(guī)定表中的每個(gè)列都應(yīng)該是不可分割的最小單元。第二范式是在滿足第一范式的基礎(chǔ)上,規(guī)定表中的非主鍵列不存在對(duì)主鍵的部分依賴。第三范式是在滿足第一范式和第二范式的基礎(chǔ)上,規(guī)定表中的列不存在對(duì)非主鍵列的傳遞依賴。


作者 | 磊哥

來(lái)源 | Java面試真題解析(ID:aimianshi666)

轉(zhuǎn)載請(qǐng)聯(lián)系授權(quán)(微信ID:GG_Stone)

一、第一范式

第一范式規(guī)定表中的每個(gè)列都應(yīng)該是不可分割的最小單元。比如以下表中的 address 字段就不是不可分割的最小單元,如下圖所示:

其中 address 還可以拆分為國(guó)家和城市,如下圖所示:


圖片

這樣改造之后,上面的表就滿足第一范式了。

二、第二范式

第二范式是在滿足第一范式的基礎(chǔ)上,規(guī)定表中的非主鍵列不存在對(duì)主鍵的部分依賴,也就是說(shuō)每張表只描述一件事情,比如以下訂單表就不滿足第二范式,它可以拆分為兩張獨(dú)立的表:訂單表和商品表。

1、不滿足第二范式的訂單表

PS:上面的表可拆分為兩張獨(dú)立的表:訂單表和商品表。

2、 滿足第二范式的表

訂單表:

商品表:

三、第三范式

第三范式是在滿足第一范式和第二范式的基礎(chǔ)上,規(guī)定表中的列不存在對(duì)非主鍵列的傳遞依賴。比如以下的訂單表中的顧客名稱就不符合第三范式,因?yàn)樗嬖诹藢?duì)非主鍵顧客編號(hào)的依賴,如下圖所示:

修改之后(符合第三范式)的表結(jié)構(gòu)如下:

總結(jié)

第一范式規(guī)定表中的每個(gè)列都應(yīng)該是不可分割的最小單元。第二范式是在滿足第一范式的基礎(chǔ)上,規(guī)定表中的非主鍵列不存在對(duì)主鍵的部分依賴。第三范式是在滿足第一范式和第二范式的基礎(chǔ)上,規(guī)定表中的列不存在對(duì)非主鍵列的傳遞依賴。使用數(shù)據(jù)庫(kù)三范式的優(yōu)勢(shì)是:表的結(jié)構(gòu)更簡(jiǎn)單、優(yōu)雅,表的邏輯和條理性更強(qiáng),并且使用三范式可以很大程度的減少表中的冗余數(shù)據(jù),很好的節(jié)省了數(shù)據(jù)庫(kù)的存儲(chǔ)資源。

責(zé)任編輯:姜華 來(lái)源: Java面試真題解析
相關(guān)推薦

2022-07-13 07:06:47

HTTPSHTTP協(xié)議

2022-02-16 22:37:00

流式SQLSQL數(shù)據(jù)庫(kù)

2022-05-05 07:38:32

volatilJava并發(fā)

2023-09-19 16:37:47

網(wǎng)絡(luò)

2022-08-31 07:04:50

Bean作用域

2022-01-24 07:01:20

安全多線程版本

2022-03-02 07:36:37

池化技術(shù)Java線程池

2020-11-19 07:38:57

邊緣計(jì)算

2022-08-03 09:00:00

安全漏洞UPnP

2022-07-25 07:07:35

TCP客戶端服務(wù)器

2022-09-07 07:05:25

跨域問(wèn)題安全架構(gòu)

2022-08-01 07:07:15

粘包半包封裝

2022-03-16 07:33:40

守護(hù)線程用戶線程語(yǔ)言

2022-07-27 07:36:01

TCP可靠性

2021-09-10 07:59:31

中斷鎖Java多線編程

2025-02-03 00:40:00

線程組Java并發(fā)編程

2017-03-20 15:50:55

以太網(wǎng)網(wǎng)絡(luò)工業(yè)

2023-12-21 21:39:44

2022-08-22 07:06:32

MyBatisSQL占位符

2025-04-29 09:47:04

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)