国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式

這篇具有很好參考價值的文章主要介紹了java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式,java八股文,數(shù)據(jù)庫,java,面試

什么是范式?
范式是數(shù)據(jù)庫設(shè)計時遵循的一種規(guī)范,不同的規(guī)范要求遵循不同的范式。

最常用的三大范式
第一范式(1NF):屬性不可分割,即每個屬性都是不可分割的原子項。(實體的屬性即表中的列)

理解:一個列不能包含兩個數(shù)據(jù)

第二范式(2NF):滿足第一范式;且不存在部分依賴,即非主屬性必須完全依賴于主屬性。(主屬性即主鍵;完全依賴是針對于聯(lián)合主鍵的情況,非主鍵列不能只依賴于主鍵的一部分)

理解:非主鍵字段必須依賴聯(lián)合主鍵索引的所有字段。

第三范式(3NF):滿足第二范式;且不存在傳遞依賴,即非主屬性不能與非主屬性之間有依賴關(guān)系,非主屬性必須直接依賴于主屬性,不能間接依賴主屬性。(A -> B, B ->C, A -> C)

舉例說明3NF:
1NF

屬性不可再分,即表中的每個列都不可以再進行拆分。

如下學(xué)生信息表(student):

id、name(姓名)、sex_code(性別代號)、sex_desc(性別描述)、contact(聯(lián)系方式)

primary key(id)

java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式,java八股文,數(shù)據(jù)庫,java,面試

如果在查詢學(xué)生表時經(jīng)常用到學(xué)生的電話號,則應(yīng)該將聯(lián)系方式(contact)這一列分為電話號(phone)和地址(address)兩列,這樣才符合第一范式。

修改使表滿足1NF后:

java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式,java八股文,數(shù)據(jù)庫,java,面試


判斷表是否符合第一范式,列是否可以再分,得看需求,如果將電話號和地址分開才能滿足查詢等需求時,那之前的表設(shè)計就是不滿足1NF的,如果電話號和地址拼接作為一個字段也可以滿足查詢、存儲等需求時,那它就滿足1NF。

表中無表,即每個屬性都是不可分割的。

不滿足第一范式的數(shù)據(jù)庫就不是關(guān)系型數(shù)據(jù)庫,所以說能在MySql建立的表肯定滿足第一范式。

java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式,java八股文,數(shù)據(jù)庫,java,面試

其中 聯(lián)系方式 這個屬性還能繼續(xù)被分割,這樣無法建立MySql表。

2NF
在滿足1NF的前提下,表中不存在部分依賴,非主鍵列要完全依賴于主鍵。(主要是說在聯(lián)合主鍵的情況下,非主鍵列不能只依賴于主鍵的一部分)

如下學(xué)生成績表(score):

stu_id(學(xué)生id)、kc_id(課程id)、score(分?jǐn)?shù))、kc_name(課程名)

primary key(stu_id, kc_id)

java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式,java八股文,數(shù)據(jù)庫,java,面試

表中主鍵為stu_id和kc_id組成的聯(lián)合主鍵。滿足1NF;非主鍵列score完全依賴于主鍵,stu_id和kc_id兩個值才能決定score的值;而kc_name只依賴于kc_id,與stu_id沒有依賴關(guān)系,它不完全依賴于主鍵,只依賴于主鍵的一部分,不符合2NF。

修改使表滿足2NF后:

成績表(score) ??primary key(stu_id)

java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式,java八股文,數(shù)據(jù)庫,java,面試

將原來的成績表(score)拆分為成績表(score)和課程表(kc),而且兩個表都符合2NF。

3NF:
在滿足2NF的前提下,不存在傳遞依賴。(A -> B, B -> C, A->C)

如下學(xué)生信息表(student):

primary key(id)

java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式,java八股文,數(shù)據(jù)庫,java,面試

表中sex_desc依賴于sex_code,而sex_code依賴于id(主鍵),從而推出sex_desc依賴于id(主鍵);sex_desc不直接依賴于主鍵,而是通過依賴于非主鍵列而依賴于主鍵,屬于傳遞依賴,不符合3NF。

修改表使?jié)M足3NF后:

學(xué)生表(student) ??primary key(id)

java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式,java八股文,數(shù)據(jù)庫,java,面試

性別代碼表(sexcode) ??primary key(sex_code)

java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式,java八股文,數(shù)據(jù)庫,java,面試

將原來的student表進行拆分后,兩個表都滿足3NF。

什么樣的表越容易符合3NF?
非主鍵列越少的表。(1NF強調(diào)列不可再分;2NF和3NF強調(diào)非主屬性列和主屬性列之間的關(guān)系)

如代碼表(sexcode),非主鍵列只有一個sex_desc;

或者將學(xué)生表的主鍵設(shè)計為primary key(id,name,sex_code,phone),這樣非主鍵列只有address,更容易符合3NF。

java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式,java八股文,數(shù)據(jù)庫,java,面試

解題: 2NF非主鍵列要完全依賴于主鍵, 主鍵只能有一個,只能是AC,但是 B 和D 只依賴主鍵的一部分,所以不滿足。

知識來源:

【23版面試突擊】你知道數(shù)據(jù)庫設(shè)計三大范式嗎?開發(fā)中應(yīng)該遵守嗎?_嗶哩嗶哩_bilibili

數(shù)據(jù)庫三范式是什么?(3NF詳解)_小魚星空的博客-CSDN博客

數(shù)據(jù)庫三范式說的到底是啥? - 知乎文章來源地址http://www.zghlxwxcb.cn/news/detail-684617.html

到了這里,關(guān)于java八股文面試[數(shù)據(jù)庫]——數(shù)據(jù)庫三范式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • java八股文面試[數(shù)據(jù)庫]——可重復(fù)讀怎么實現(xiàn)的(MVCC)

    java八股文面試[數(shù)據(jù)庫]——可重復(fù)讀怎么實現(xiàn)的(MVCC)

    可重復(fù)讀(repeatable read)定義: 一個事務(wù)執(zhí)行過程中看到的數(shù)據(jù),總是 跟這個事務(wù) 在 啟動時 看到的數(shù)據(jù)是一致的。 MVCC MVCC, 多版本并發(fā)控制 , 用于實現(xiàn) 讀已提交 和 可重復(fù)讀 隔離級別。 MVCC的核心就是 Undo log多版本鏈 + Read view ,“MV”就是通過 Undo log來保存數(shù)據(jù)的歷史版

    2024年02月09日
    瀏覽(101)
  • java八股文面試[數(shù)據(jù)庫]——B樹和B+樹的區(qū)別

    java八股文面試[數(shù)據(jù)庫]——B樹和B+樹的區(qū)別

    B樹是一種樹狀數(shù)據(jù)結(jié)構(gòu),它能夠存儲數(shù)據(jù)、對其進行排序并允許以 O(logn) 的時間復(fù)雜度進行查找、順序讀取、插入和刪除等操作。 B樹中允許一個結(jié)點中包含多個key,可以是3個、4個、5個甚至更多,并不確定,需要看具體的實現(xiàn)?,F(xiàn)在我們選 擇一個參數(shù)M,來構(gòu)造一個B樹,我

    2024年02月09日
    瀏覽(55)
  • 面試八股文Mysql:(2)數(shù)據(jù)庫調(diào)優(yōu)

    面試八股文Mysql:(2)數(shù)據(jù)庫調(diào)優(yōu)

    數(shù)據(jù)庫優(yōu)化在提升系統(tǒng)性能是很重要的一個方面,不管是MySQL還是MongoDB還是其它的數(shù)據(jù)庫。 SQL優(yōu)化在提升系統(tǒng)性能中是成本最低 優(yōu)化效果最明顯的途徑,可以讓 吞吐量更大,響應(yīng)速度更快 。如果你的團隊在SQL優(yōu)化這方面搞得很優(yōu)秀,對你們整個大型系統(tǒng)可用性方面無疑是一

    2024年02月13日
    瀏覽(29)
  • 面試數(shù)據(jù)庫八股文五問五答第四期

    作者:程序員小白條,個人博客 相信看了本文后,對你的面試是有一定幫助的! ?點贊?收藏?不迷路!? 1)什么情況下 mysql 會索引失效? 不使用索引列進行查詢:當(dāng)查詢條件不包含索引列時,MySQL無法使用索引進行快速查找,而會進行全表掃描,導(dǎo)致索引失效。 使用函

    2024年02月04日
    瀏覽(25)
  • JAVA-軟開-常見八股文(2)-數(shù)據(jù)庫相關(guān)

    JAVA-軟開-常見八股文(2)-數(shù)據(jù)庫相關(guān)

    1 Drop Delete Truncate三者之間的區(qū)別和聯(lián)系 drop刪除整張表,包括表結(jié)構(gòu)和表數(shù)據(jù)。用法 drop table 表名 truncate表示清空數(shù)據(jù),不會刪除表結(jié)構(gòu)。truncate table 表名 delete表示刪除數(shù)據(jù),不會刪除表結(jié)構(gòu)。delete from 表名 where 列名 = 值, 那么,truncate和delete的區(qū)別: ? ? ? ? ? ? trunca

    2024年02月06日
    瀏覽(17)
  • 計算機復(fù)試面試基礎(chǔ)知識(八股文)(數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、計網(wǎng)、機組等)

    數(shù)據(jù)庫緒論 1、簡述三層模式、兩級映射,分別有什么作用? 模式(邏輯模式):是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層,即不涉及數(shù)據(jù)的物理存儲細(xì)節(jié),也與具體應(yīng)用程序開發(fā)工具語言無關(guān)。 外模式(用戶模式):是用戶能看見和使

    2023年04月09日
    瀏覽(73)
  • java八股文面試[數(shù)據(jù)結(jié)構(gòu)]——集合框架

    java八股文面試[數(shù)據(jù)結(jié)構(gòu)]——集合框架

    Java集合類主要由兩個根接口Collection和Map派生出來的。 Collection派生出了三個子接口: Map接口派生: Map代表的是存儲key-value對的集合,可根據(jù)元素的key來訪問value。 ?因此Java集合大致也可分成 List、Set、Queue、Map四種接口體系 。 List代表了有序可重復(fù)集合,可直接根據(jù)元素的索

    2024年02月11日
    瀏覽(59)
  • java八股文面試[數(shù)據(jù)結(jié)構(gòu)]——HashMap擴容優(yōu)化

    java八股文面試[數(shù)據(jù)結(jié)構(gòu)]——HashMap擴容優(yōu)化

    ? ? ?知識來源: 【2023年面試】HashMap在擴容上做了哪些優(yōu)化_嗶哩嗶哩_bilibili ?

    2024年02月11日
    瀏覽(33)
  • java八股文面試[數(shù)據(jù)結(jié)構(gòu)]——ArrayList和LinkedList區(qū)別

    java八股文面試[數(shù)據(jù)結(jié)構(gòu)]——ArrayList和LinkedList區(qū)別

    ? ArrayList和LinkedList的異同 二者的線程都不安全,相對線程安全的Vector,執(zhí)行效率高。此外,ArrayList時實現(xiàn)了基于動態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu),LinkedList基于鏈表的數(shù)據(jù)結(jié)構(gòu),對于隨機訪問get和set,ArrayList覺得優(yōu)于LinkedList比較占優(yōu)勢,因為LinledList要移動指針。對于新增和刪除操作add

    2024年02月11日
    瀏覽(25)
  • Java 面試八股文

    參考: 2023年 Java 面試八股文(20w字)_json解析失敗_leader_song的博客-CSDN博客

    2024年02月13日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包