最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL?數(shù)據(jù)庫范式化設(shè)計理論總結(jié)

 更新時間:2022年04月22日 09:27:02   作者:心城以北?  
這篇文章主要介紹了MySQL?數(shù)據(jù)庫范式設(shè)計理論總結(jié),數(shù)據(jù)庫的規(guī)劃化范式設(shè)計,在邏輯結(jié)構(gòu)上可以讓結(jié)構(gòu)更加細粒度,容易理解,下文我們就來了解具體的內(nèi)容介紹吧

一、設(shè)計范式

問題: 什么是范式化設(shè)計,為什么需要反規(guī)范化設(shè)計 ?

范式來自來自英文Normal From 。開發(fā)過程中要設(shè)計一個好的數(shù)據(jù)庫邏輯關(guān)系,必須滿足一定的約束條件,此約束條件形成了開發(fā)范式,分成幾個等級,一級比一級嚴(yán)格。

滿足這些范式理論上可以讓我們的數(shù)據(jù)庫邏輯結(jié)構(gòu)更加簡潔、清晰。

以下是常見的四種范式:

  • 第一范式(1NF)
  • 第二范式(2NF)
  • 第三范式(3NF)
  • 第四范式(BCNF)

1.第一范式(1NF)

  • 每一列都是不可再分的屬性值,確保每一列的原子性;
  • 兩列的屬性相近或者相似或者一樣,盡量合并屬性一樣的列,確保不產(chǎn)生冗余數(shù)據(jù);
  • 單一屬性的列為基本數(shù)據(jù)類型構(gòu)成;
  • 設(shè)計出來的表都是簡單的二維表。

舉例:用戶收貨地址 反例:

姓名電話地址
張三138000000北京市-朝陽區(qū)-酒仙橋街道

正例:

姓名電話區(qū)街道
張三138000000-北京市朝陽區(qū)酒仙橋街道

總結(jié):每列都是不可再分的原子值(一個列不可再分,比如通訊地址和省、市、區(qū))

2.第二范式(2NF)

  • 第二范式(2NF)是在第一范式的基礎(chǔ)上建立起來的。
  • 第二范式(2NF)要求實體的屬性完全依賴與主鍵關(guān)聯(lián)。所謂完成依賴是指不能存在與存在依賴關(guān)鍵字的部分屬性,如果存在那么這個屬性和關(guān)鍵字部分應(yīng)該分離出來形成一個新的實體,新實體與原實體是一對多的關(guān)系。

反例:

產(chǎn)品 ID用戶ID產(chǎn)品名稱用戶姓名購買數(shù)量下單時間
1001微波爐 A102王麻子12022-08-08

正例: 訂單表

產(chǎn)品 ID用戶ID購買數(shù)量下單時間
100112022-08-08

產(chǎn)品表

產(chǎn)品 ID產(chǎn)品名稱
100微波爐 A102

用戶表

用戶ID用戶姓名
1王麻子

總結(jié):消除列對主鍵的部分函數(shù)依賴(對于組合主鍵的部分依賴,比如:產(chǎn)品ID + 用戶ID 為主鍵,存在用戶名稱,產(chǎn)品名稱等部分主鍵依賴字段)

3.第三范式 (3NF)

  • 滿足第三范式(3NF)必須滿足第二范式(2NF)。
  • 第三范式(3NF) 要求一個數(shù)據(jù)表中不包含已在其他表中包含的非主鍵關(guān)鍵字信息,即數(shù)據(jù)不能存在傳遞關(guān)系,即每個屬性都跟主鍵有關(guān)系直接關(guān)系而不是間接關(guān)系。

反例:

訂單ID用戶ID產(chǎn)品ID產(chǎn)品名稱產(chǎn)品廠家
11100微波爐 A102美的
22200變頻空調(diào) B101海爾

正例: 訂單表

訂單ID用戶ID產(chǎn)品ID
11100
22200

商品信息表

產(chǎn)品ID產(chǎn)品名稱產(chǎn)品廠家
100微波爐 A102美的
200變頻空調(diào) B101海爾

總結(jié):消除字段對非主鍵的傳遞依賴(就是需要取消訂單中比如商品名稱、商品地址等冗余信息)。

二、范式化設(shè)計

在真正的數(shù)據(jù)庫規(guī)范定義上,非常的嚴(yán)謹(jǐn),比如第二范式(2NF)的定義“若某關(guān)系 R 術(shù)語第一范式,且每個非主屬性完全函數(shù)依賴于候選碼,則關(guān)系 R 屬于第二范式”。

結(jié)論:并不是說完全符合規(guī)范化理論的設(shè)計是最完美的設(shè)計,而是要看具體的業(yè)務(wù)場景反復(fù)實踐總結(jié)最合適的設(shè)計。

三、反規(guī)范化設(shè)計

所謂反規(guī)范化設(shè)計,就是針對規(guī)范化而言的。 1、為了性能和讀取效率而適當(dāng)?shù)倪`反對數(shù)據(jù)庫范式設(shè)計的要求; 3、為了查詢的性能,允許存在部分(少量)冗余數(shù)據(jù)。換句話說,反規(guī)范化設(shè)計就是直接用空間換時間。

  • 商品信息
ID商品名稱商品價格商品描述商品圖片地址
1微波爐 A101$100.99可以加熱食物的微波爐tupian.baidu.com
  • 分類信息
分類 ID分類名稱
1電器
  • 商品分類對應(yīng)關(guān)系表
商品ID分類ID
11
  • 商品信息反規(guī)范化設(shè)計
ID商品名稱分類名稱商品價格商品描述商品圖片地址
11電器$100.99可以加熱食物的微波爐tupian.baidu.com

四、設(shè)計總結(jié)

  • 數(shù)據(jù)庫的規(guī)劃化范式設(shè)計,在邏輯結(jié)構(gòu)上可以讓結(jié)構(gòu)更加細粒度,容易理解。
  • 但是我們在實際的開發(fā)過程中,需要考慮性能和時間成本,往往或多或少,會允許數(shù)據(jù)冗余(反規(guī)范化設(shè)計),通??梢赃_到 2NF。

到此這篇關(guān)于MySQL 數(shù)據(jù)庫范式設(shè)計理論總結(jié)的文章就介紹到這了,更多相關(guān)MySQL 數(shù)據(jù)庫設(shè)計內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql sql_mode="" 的作用說明

    mysql sql_mode="" 的作用說明

    在看discuz源碼時看到了sql_mode="",不知道是干嘛的,猜想是設(shè)置模式,但是不清楚是什么模式,于是從網(wǎng)上搜了下,sql_mode="" 的作用
    2011-08-08
  • 深入理解MySQL事務(wù)的4種隔離級別

    深入理解MySQL事務(wù)的4種隔離級別

    本文主要介紹了MySQL事務(wù)的4種隔離級別,事務(wù)的4種隔離級別分別是讀未提交,讀已提交,可重復(fù)讀和串行化,具有一定的參考價值,感興趣的可以了解一下
    2022-04-04
  • MacOS下mysql 8.0.18 安裝配置方法圖文教程

    MacOS下mysql 8.0.18 安裝配置方法圖文教程

    這篇文章主要介紹了MacOS下mysql 8.0.18 安裝配置方法圖文教程,并成功命令行操作,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • MySQL定時備份數(shù)據(jù)庫操作示例

    MySQL定時備份數(shù)據(jù)庫操作示例

    這篇文章主要介紹了MySQL定時備份數(shù)據(jù)庫操作,結(jié)合實例形式分析了MySQL定時備份數(shù)據(jù)庫相關(guān)命令、原理、實現(xiàn)方法及操作注意事項,需要的朋友可以參考下
    2020-03-03
  • MYSQL 的10大經(jīng)典優(yōu)化案例場景實戰(zhàn)

    MYSQL 的10大經(jīng)典優(yōu)化案例場景實戰(zhàn)

    在應(yīng)用開發(fā)的早期,數(shù)據(jù)量少,開發(fā)人員開發(fā)功能時更重視功能上的實現(xiàn),隨著生產(chǎn)數(shù)據(jù)的增長,很多SQL語句開始暴露出性能問題,對生產(chǎn)的影響也越來越大,有時可能這些有問題的SQL就是整個系統(tǒng)性能的瓶頸。本文我們就聊聊MYSQL的優(yōu)化
    2021-09-09
  • CentOS7.4手動安裝MySQL5.7的方法

    CentOS7.4手動安裝MySQL5.7的方法

    這篇文章主要介紹了CentOS7.4手動安裝MySQL5.7的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • windows server 2008 64位MySQL5.6免安裝版本配置方法圖解

    windows server 2008 64位MySQL5.6免安裝版本配置方法圖解

    這篇文章主要介紹了windows server 2008 64位MySQL5.6免安裝版本配置方法圖解,需要的朋友可以參考下
    2017-08-08
  • MySQL?InnoDB鎖類型及鎖原理實例解析

    MySQL?InnoDB鎖類型及鎖原理實例解析

    這篇文章主要為大家介紹了MySQL?InnoDB鎖類型及鎖原理實例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 關(guān)于加強MYSQL安全的幾點建議

    關(guān)于加強MYSQL安全的幾點建議

    現(xiàn)在php+mysql組合越來越多,這里腳本之家小編就為大家分享一下mysql的安裝設(shè)置的幾個小技巧
    2016-04-04
  • mysql常用命令行操作語句

    mysql常用命令行操作語句

    MySQL很早以前只能采用DOS式界面,后來雖然硬件支持圖形界面(平常的軟件操作界面),但是命令行界面(就是DOS界面)以它 簡單,高效,方便 的特色而被保留下來。這就是用DOS界面的原因。
    2016-05-05

最新評論

启东市| 嘉禾县| 梅河口市| 洪湖市| 偏关县| 高陵县| 象山县| 托克托县| 栾川县| 收藏| 惠州市| 祁东县| 蕉岭县| 左云县| 英吉沙县| 海安县| 阳城县| 元江| 贵阳市| 白朗县| 平罗县| 延吉市| 通许县| 开阳县| 临洮县| 新宁县| 当雄县| 烟台市| 霍林郭勒市| 越西县| 丰宁| 金湖县| 仁寿县| 大英县| 庆城县| 乐昌市| 荥经县| 诸城市| 页游| 新密市| 普格县|