數(shù)據(jù)庫(kù)三大范式

概述

一般地,在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),應(yīng)遵循三大原則,也就是我們通常說(shuō)的三大范式,即第一范式要求確保表中每列的原子性,也就是不可拆分;第二范式要求確保表中每列與主鍵相關(guān),而不能只與主鍵的某部分相關(guān)(主要針對(duì)聯(lián)合主鍵),主鍵列與非主鍵列遵循完全函數(shù)依賴(lài)關(guān)系,也就是完全依賴(lài);第三范式確保主鍵列之間沒(méi)有傳遞函數(shù)依賴(lài)關(guān)系,也就是消除傳遞依賴(lài)。

第一范式

例子引入

第一種表設(shè)計(jì)

第二種表設(shè)計(jì)

分析

第一種表設(shè)計(jì)不滿足第一范式,為什么不滿足第一范式?因?yàn)閞egion列不具有原子性,能拆分成省份、市和具體地址;

第二范式

例子引入

需求描述:設(shè)計(jì)一個(gè)訂單信息表,訂單有多種商品,將訂單編號(hào)和商品編號(hào)作為聯(lián)合主鍵。

第一種表設(shè)計(jì)

第二種表設(shè)計(jì)

分析

第一種表設(shè)計(jì)不滿足第二范式 ,訂單編號(hào)和商品編號(hào)作為聯(lián)合主鍵,由于商品名稱(chēng),單位,價(jià)格這幾列只與商品編號(hào)有關(guān),與訂單編號(hào)無(wú)關(guān),因此與主鍵(聯(lián)合主鍵)無(wú)關(guān),違反范式第二原則;

第二種表設(shè)計(jì)滿足第二范式,把第一種設(shè)計(jì)表進(jìn)行拆分,把商品信息分離到另一個(gè)表中,把訂單項(xiàng)目表也分離到另一個(gè)表中。

第三范式

例子引入

需求描述:
1 需要在數(shù)據(jù)庫(kù)中存儲(chǔ)如下信息:
2 學(xué)生編號(hào);學(xué)生卡號(hào);用戶ID號(hào);操作員級(jí)別;操作日期;操作時(shí)間;

第一種表設(shè)計(jì)

第二種表設(shè)計(jì)

分析

第一種表設(shè)計(jì)不滿足第三范式,在表中,一個(gè)UserID能確定一個(gè)UserLevel。這樣,UserID依賴(lài)于StudentNo和CardNo,而UserLevel又依賴(lài)于UserID,這就導(dǎo)致了傳遞依賴(lài),3NF就是消除這種依賴(lài)。

第二種表設(shè)計(jì)滿足第三范式,將第一種表格拆分成成兩個(gè)表格。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么影響了性能 數(shù)據(jù)庫(kù)設(shè)計(jì)對(duì)性能的影響 過(guò)分的反范式化為表建立太多的列 過(guò)分的范式化造成太多的表關(guān)聯(lián) 在OLTP環(huán)...
    天道酬勤_FUN閱讀 2,188評(píng)論 1 6
  • 1NF::表中的列不可分割,如果有的列包含多種信息,可以把它抽取出來(lái)成為一個(gè)單獨(dú)的表:例如學(xué)生表中的所屬班級(jí) 2N...
    我不說(shuō)你不懂_f0c6閱讀 856評(píng)論 1 4
  • 跟老徐聊天 問(wèn):你人生的目標(biāo)是什么? 答:養(yǎng)只貓養(yǎng)條狗。 問(wèn):不是應(yīng)該脫單么?! …… 時(shí)間長(zhǎng)了,單...
    利小夕閱讀 341評(píng)論 0 0
  • 七月與安生都是女孩子。拉著進(jìn)度條看了個(gè)大概,真是好姐妹。 1. 昨天聽(tīng)到一句話:今日與我并肩作戰(zhàn)的將是我終生的兄弟...
    羞羞的麥穗閱讀 240評(píng)論 0 1

友情鏈接更多精彩內(nèi)容