国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

Mysql學習總結(16)Mysql之數據庫設計規范

來源:懂視網 責編:小采 時間:2020-11-09 16:30:54
文檔

Mysql學習總結(16)Mysql之數據庫設計規范

Mysql學習總結(16)Mysql之數據庫設計規范:一、三大范式 1、第一范式:消除一個字段包含多個數據庫,消除一個記錄包含重復的組(單獨的一列包含多個項目),即可滿足1NF。 2、第二范式:消除部分依賴性即可轉化為2NF。部分依賴性表示一個記錄中包括的字段只依賴于主鍵的一部分。解決部分依賴性的最簡
推薦度:
導讀Mysql學習總結(16)Mysql之數據庫設計規范:一、三大范式 1、第一范式:消除一個字段包含多個數據庫,消除一個記錄包含重復的組(單獨的一列包含多個項目),即可滿足1NF。 2、第二范式:消除部分依賴性即可轉化為2NF。部分依賴性表示一個記錄中包括的字段只依賴于主鍵的一部分。解決部分依賴性的最簡

一、三大范式 1、第一范式:消除一個字段包含多個數據庫,消除一個記錄包含重復的組(單獨的一列包含多個項目),即可滿足1NF。 2、第二范式:消除部分依賴性即可轉化為2NF。部分依賴性表示一個記錄中包括的字段只依賴于主鍵的一部分。解決部分依賴性的最簡

一、三大范式

1、第一范式:消除一個字段包含多個數據庫值,消除一個記錄包含重復的組(單獨的一列包含多個項目),即可滿足1NF。

2、第二范式:消除部分依賴性即可轉化為2NF。部分依賴性表示一個記錄中包括的字段只依賴于主鍵的一部分。解決部分依賴性的最簡單方法是將復合主鍵分成兩部分,每一部分表示一個單獨的表。

3、第三范式:消除可傳遞依賴性即可滿足3NF。可傳遞依賴性表示記錄中至少一個值不依賴主鍵,而是依賴于這個記錄中的另一個字段。

4、數據庫規范化:

1NF:刪除重復的組,并確定一個主鍵或復合主鍵。

2NF:確定表處于1NF狀態,消除任何部分依賴性。

3NF:確定表處于2NF狀態,消除任何可傳遞依賴性。

5、連接數據庫中的表:大多數情況下,兩個表之間的連接是通過一個公共字段建立的。公共字段是兩個表中都存在的一個字段。許多情況下,公共字段是其中一個表的主鍵。外鍵一般出現在“多”端。

6、關系數據庫中不能存在多對多關系。用來消除多對多關系的最常用方法是通過添加橋接表來創建兩個一對多關系。

二、數據庫設計相關 1.數據規范化 關系模式滿足的約束條件稱為范式。范式由低到高分為:1NF、2NF、3NF、BCNF、4NF、5NF。 規范化:就是指把一個低一級的關系模式分解為高一級關系模式的過程。 規范化的基本思想:逐步消除不合適的函數依賴,使數據庫中的各個關系模式達到某種程度的分離。 函數依賴:通俗的說,就像自變量x確定之后,相應的函數值f(x)也就唯一的確定了一樣。 碼:給定一個碼能完全決定一個元組。一個關系可能有多個碼,選其中一個做為主碼。包含在任一碼中的屬性稱為主屬性。不包含在任何碼中的屬性稱為非主屬性。 第一范式(1NF):如果關系中所有屬性的值域都是簡單域,其元素(屬性)不可再分,是屬性項不是屬性組,那么關系模式屬于第一范式。這一限制是關系的基本性質,所以任何關系都必須滿足第一范式。 第二范式(2NF):如果一個范式屬于1NF,且所有的非主屬性都完全的依賴主屬性,稱為第二范式。可以用分解的方法消除部分依賴的情況,而使關系達到2NF的標準。方法是從現有關系中分解出新的關系表,使每個表中所有的非關鍵字都完全依賴于各自的主關鍵字。 (消除部分依賴) 第三范式(3NF):如果一個關系屬于2NF,且每個非主屬性不傳遞依賴于主屬性,這種關系是3NF。從2NF中消除傳遞依賴,就是3NF。 (消除部分傳遞依賴) BC范式(BCNF): 無論2NF還是3NF都沒有涉及主屬性間的函數依賴,所以有時仍會引起一些問題。 定義:如果關系模式屬于1NF,且每一個函數依賴關系中的決定因素都包含碼,則關系滿足BC范式。主屬性對不含他的碼完全函數依賴,沒有屬性完全函數依賴于一組非主屬性。 多值依賴和4NF:第四范式是BC范式的推廣。 定義:關系模式R屬于1NF,若對任意多值依賴X??Y。X必包含R的主鍵,則稱R是第四范式。 多值依賴:對列A中的一個值,不論列C取什么值,總有一組確定的列B的值。所以有A??B。如果A包含關系R的主鍵,則關系R滿足4NF。可以采用分解法消除不滿足4NF的多值依賴。 規范化設計帶來的性能問題在實際應用中可能令人無法想象。如果出現這種情況,就要進行非規范化處理。由于非規范化必然導致冗余,占用更多的存儲空間,因此需要對性能和空間的考慮進行平衡。常用方法有冗余屬性,合并表等等。

?

2.數據庫設計

常用方法:

(1)基于3NF的數據庫設計方法:

在需求分析的基礎上,識別并確認數據庫模式中的全部屬性和屬性間的依賴,將他們組織成一個單一的關系模式,然后再分析模式中不符合3NF的約束條件,用投影和連接的辦法將其分解,使其達到3NF。

(2)LRA方法:邏輯記錄存取法。

(3)基于實體聯系(E-R)的數據庫設計方法。

(4)基于視圖概念的數據庫設計方法。

(5)面向對象的關系數據庫設計方法。

通常將數據庫設計分為需求分析、概念結構設計、邏輯結構設計和數據庫物理設計4個階段。

?

概念結構設計常用的方法是實體分析法、屬性綜合法。

二元聯系的類型與定義:二元聯系指兩個實體之間的聯系。分為一對一、一對多、多對多3種。

(1)一對一聯系:對于實體集A中的每一個實體,實體集B中至多有一個實體與之聯系。

(2)一對多聯系:對于實體集A中的每一個實體,實體集B有n個實體(n>=0)與之聯系,反之對于實體集B中的每一個實體,實體集A至多只有一個實體與之聯系。則實體集A與實體集B有一對多關系,記為1:n。

(3)多對多聯系:若對于實體集A中的每一個實體,實體集B有n個實體(n>=0)與之聯系。反過來,對于實體集B中的每一個實體,實體集A有m個實體(m>=0)與之聯系。則實體集A與實體集B具有多對多聯系,記為m:n。

消除冗余聯系:若出現兩個或兩個以上的聯系表示的是同一概念,則存在著冗余的聯系,具有冗余聯系的E-R模型轉換為關系模型可能會得到非規范化的關系,因此必須予以消除。

?

警惕連接陷阱:

連接陷阱是一種存在語義缺陷的聯系結構,分為扇形陷阱、斷層陷阱、深層扇形陷阱3種信息。

扇形陷阱:指由一個實體引出的兩種不同類型的扇形聯系,形成雙扇形結構。

3.數據庫物理設計:

利用已確定的邏輯結構及DBMS提供的方法、技術。已較優的存儲結構、數據存儲路徑、合理的數據存儲位置及存儲分配,設計一個高效可實現的物理數據庫結構。

?

三、模式

數據庫三級模式結構:這是數據庫管理系統內部的系統結構。

1、概念模式:

只涉及行的描述,不涉及具體的值。概念模式的一個具體值稱為模式的一個實例,同一模式可以有很多實例。概念模式反映的是數據庫的結構及其聯系,所以是相對穩定的。而實例反映的是數據庫某一時刻的狀態,所以是相對變動的。

概念模式不僅要描述記錄類型,還要描述記錄間的聯系、操作、數據的完整性、安全性。但概念模式不涉及存儲結構、訪問技術等細節。

(注:可理解為系統表部分)

2、外模式:

也稱用戶模式或子模式。是用戶與數據庫系統的接口,是用戶用到的那部分記錄的描述。由若干外部記錄組成,用戶使用DML(數據操作語言)操作外模式的外部記錄。

(注:可理解為用戶表部分)

3、內模式:

也稱存儲模式,是數據庫物理結構和存儲方式的描述,是數據在數據庫內部的表示方式。定義所有內部記錄的類型、索引、文件的組織方式。記錄的存儲方式是順序存儲、B樹存儲、Hash方法存儲等。

?

兩級映像:模式/內模式映像、外模式/模式映像。

?

實體與記錄:實體表示客觀存在,能區別的事物。記錄是字段的有序集合,一般一條記錄描述一個實體。

屬性與字段:屬性描述實體某方面的特性,字段標記實體屬性的命名單位。

碼與記錄碼:碼是唯一能區分實體的屬性或屬性集,記錄碼是唯一標識文件中的每條記錄的字段或字段集。

實體集與文件:實體集是具有共同特性的實體的集合。文件是同一類記錄的匯集。

實體型與記錄型:實體型是屬性的集合,記錄型是記錄的結構定義。

?

數據模型三要素:

數據庫結構的基礎是數據模型,是用來描述數據的一組概念和定義。

數據模型三要素是數據結構、數據操作、數據的約束條件。

?

E-R模型:是實體-聯系模型的簡稱。所采用的3個主要概念是實體、聯系、屬性。

實體:現實世界中可以區別其它對象的物體或事件。

聯系:實體的聯系分為實體內部的聯系和實體與實體之間的聯系。

?

兩個不同實體之間的聯系:

(1)一對一:指實體集E1中的一個實體最多只與實體集E2中的一個實體相聯系。(1:1)

(2)一對多:表示實體集E1中的一個實體可與實體集E2中的多個實體相聯系。(1:N)

(3)多對多:表示實體集中E1中的多個實體可與實體集E2中的多個實體相聯系。(M:N)

?

兩個以上不同實體集的聯系:

兩個以上不同實體集之間存在1:1:1、1:1:N、1:M:N和R:M:N

?

同一實體集內的二元聯系:

同一實體集內的各實體之間也存在1:1、1:N和M:N的聯系。

?

屬性是實體某方面的特性。

?

派生屬性可以從其它屬性得來,例如:參加工作時間和工作年限,工作年限可以從當前時間和參加工作時間得到,這里工作年限就是一個派生屬性。

?

概念模型中最常用的方法是實體-聯系法,簡稱E-R方法。

?

擴充的E-R模型:

弱實體:這種實體對另一些實體有著很強的依賴關系,即一個實體的存在必須以另一個實體為前提。例如職工與家屬的關系。

特殊化:一個實體集可以按照某種特征區分為幾個子實體。例如:學生實體集可以分為研究生、本科生、大專生。我們稱這種過程為特殊化,反之叫普遍化。

?

層次模型:采用樹形結構表示數據與數據之間的聯系。

網狀模型:采用網狀結構表示數據與數據之間的聯系。

?

關系模型:在關系模型中以表格結構表達實體集,以及實體集之間的聯系。

?

關系代數:

笛卡爾積:D1={0,1}、D2={a,b}。D1*D2={0,a}{0,b}{1,a}{1,b}。

?

關系的3種類型:

基本關系:實際存在的表,是實際存儲數據的邏輯表示。

查詢表:查詢結果對應的表。

視圖表:由基本表或其它視圖表導出的表,由于它本身不獨立存儲在數據庫中。數據庫只存放它的定義,所以常稱為虛表。

?

完整性約束:

完整性規則提供了一種手段來保證授權用戶對數據庫操作修改時不會破壞數據的一致性。

?

關系的完整性分為3類:

(1)實體完整性:規定基本關系R的主屬性A不能取空值。

(2)參照完整性:在關系模型中實體與實體間的聯系是用關系來描述的。這樣自然就存在著關系與關系間的引用。

(3)用戶定義完整性:反映某一具體應用所涉及的數據必須滿足的語義要求,由應用環境決定。

?

5種基本的關系代數運算:并、差、廣義笛卡爾積、投影、選擇。

擴展關系運算:交、連接、除、廣義投影、外連接。

列舉關系運算的例子。

?

SQL支持三級模式結構:視圖對應外模式,基本表對應模式,存儲文件對應內模式。

?

索引:

數據庫中索引與書籍中索引類似,利用索引可以快速查找整本書信息,無需閱讀整本書。

數據庫索引可以使數據庫程序無需對整個表進行掃描,就可以在其中找到所需數據。

?

索引分為:

聚集索引和非聚集索引。

聚集索引是指索引表中索引項的順序與表中記錄的物理順序一致的索引。

?

視圖創建遵循如下規定:

(1)子查詢不允許有order by和distinct語句。

(2)with check option表示對update、insert、delete操作時保證更新、插入或刪除的行滿足視圖定義的謂詞條件(即滿足子查詢中的where后的條件表達式)。

(3)組成視圖的屬性列名或者全部省略或者全部指定。如果省略屬性列名,則隱含視圖由SELECT子查詢目標列的主屬性組成。

?

SQL的訪問控制:數據庫控制是控制用戶的存儲權限,由DBA來決定。

通過GRANT和REVORK將授權通知系統,并存入數據字典。

?

四、規范化

規范化:將關系模式從低一級范式轉化成高一級范式的過程。

5NF包含于4NF包含于BCNF包含于3NF包含于2NF包含于1NF。

?

1NF定義:關系模式R中的每個分量是不可再分的數據項,則關系模式R屬于第一范式。1NF冗余度大、引起修改的不一致性、插入及刪除異常。

2NF定義:若關系模式屬于1NF,且每個非主屬性完全依賴于碼,則關系模式屬于2NF。即1NF消除了非主屬性對碼的部分函數依賴。

3NF定義:2NF消除了非主屬性對碼的傳遞函數依賴,則稱3NF。3NF的模式必是2NF的模式。產生冗余和異常的兩個重要原因是部分函數依賴和傳遞依賴。

BCNF(巴科斯范式):即3NF消除了主屬性對碼的部分和傳遞依賴,稱為BCNF。

4NF:4NF是限制關系模式的屬性間不允許有非平凡且非函數依賴的多值依賴。

如果只考慮函數依賴,BCNF是關系模式最高的規范化程度。如果考慮多值依賴,4NF是關系模式最高的規范化程度。

?

五、事務管理

事務有4個特性ACID。

原子性(A):要么全做,要么全不做。

一致性(C):一個事務獨立執行的結果,將保持數據的一致性,即數據不會因為數據的執行而遭受破壞。

隔離性(I):一個事務的執行不能被其它事物干擾。

持久性(D):一個事物一旦提交,對數據庫的改變必須是永久的。

SQL中事物定義語句有3條:

BEGIN TRANSACTION:事務開始。

COMMIT:事務提交。

ROLLBACK:事務回滾。

?

六、并發控制 并發控制主要技術是封鎖,主要包含:排他鎖(簡稱X鎖或寫鎖)、共享鎖(簡稱S鎖或讀鎖)。 排他鎖:若事務T對數據對象A加上X鎖,則只允許T讀取和修改A。其它事務不能對A加任何鎖,直到T釋放鎖。 共享鎖:若事務T對數據對象A加上S鎖,則只允許T讀取A,但不能修改A。其它事務只能再對A加S鎖。保證其它事務可以讀取A,但在T釋放A上的S鎖前不能修改A。 ? 三級封鎖協議: 一級封鎖協議:事務在修改數據前必須先對其加X鎖,直到事務結束才釋放(結束包括commit或rollback)。一級封鎖協議解決丟失更新的問題。 二級封鎖協議:在一級協議的基礎上,加上事務在讀數據之前必須加S鎖,讀完后即可釋放S鎖。二級封鎖協議解決讀臟數據的問題。因為讀完后即釋放,所以不能保證可重復讀。 三級封鎖協議:在一級協議的基礎上,加上事務在讀數據之前必須加S鎖,直到事務結束時釋放S鎖。除了防止丟失更新、讀臟數據的問題,還進一步防止不可重復讀。 ? 活鎖和死鎖: 活鎖:當事務T1封鎖數據R,事務T2請求數據R于是T2等待。T1釋放了R上的封鎖,系統首先批準了T3的請求,T2繼續等待,之后系統批準了T4的請求……依此類推,T2可能永久等待。這種現象稱為活鎖。 死鎖:是指兩個以上事務分別請求封鎖對方已經封鎖的數據,導致長期等待而無法繼續進行下去的現象叫死鎖。 ? 并發調用可串行性: 多個事務并發執行,當且僅當其結果與某一次序串行地執行它們時的結果相同,我們稱這種調度是可串行化調度。 給定一個并發調度,當且僅當它是可串行化的才認為是正確調度。 ? 兩段封鎖協議:指所有事務必須分為兩個階段對數據項加鎖和解鎖。 第一階段是獲得封鎖:事務可以獲得任何數據項上的任何類型的鎖,但不能釋放。 第二階段是釋放封鎖:事務可以釋放任何數據項上的任何類型的鎖,但不能申請。 ? 事務是不能嵌套的,因為這違背了事務的原子性。事務是不能嵌套是指當且僅當當前沒有事務在運行時,程序才能執行BEGIN TRANSACTION操作。 ? 通過Resource授權來控制創建新關系的能力,具有Resource授權的用戶在創建新關系后自動獲得該關系上的所有權限。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Mysql學習總結(16)Mysql之數據庫設計規范

Mysql學習總結(16)Mysql之數據庫設計規范:一、三大范式 1、第一范式:消除一個字段包含多個數據庫,消除一個記錄包含重復的組(單獨的一列包含多個項目),即可滿足1NF。 2、第二范式:消除部分依賴性即可轉化為2NF。部分依賴性表示一個記錄中包括的字段只依賴于主鍵的一部分。解決部分依賴性的最簡
推薦度:
標簽: 學習 設計 數據庫
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产精品电影一区二区 | 在线中文高清资源免费观看 | 中文字幕在线看 | 日韩欧美在线看 | 欧美喷水 | 国产一区二区三区免费 | 黄色免费一级视频 | 亚洲欧洲视频在线 | 香蕉久久一区二区不卡无毒影院 | 国产中文久久精品 | 在线观看亚洲欧美 | 日本v片免费一区二区三区 欧洲精品欧美精品 | 欧美亚洲综合网 | 日韩精品在线一区二区 | 久久久国产高清 | a欧美在线 | 欧美一区二区三区在线 | 日本久久精品免视看国产成人 | 成人国产一区二区三区精品 | 麻豆国产高清精品国在线 | 亚洲欧美日韩高清综合678 | 伊人伊成久久人综合网777 | 亚洲欧美日韩在线观看二区 | www.亚洲视频 | 成人久久精品一区二区三区 | 日韩精品一区二区三区国语自制 | 日韩1区| 亚洲欧美在线观看 | 欧美在线色图 | 精品一区 二区三区免费毛片 | 欧美日韩在线精品一区二区三区 | 日韩一区二区三区四区不卡 | 亚洲欧美专区 | 自怕偷自怕亚洲精品 | 免费在线一级毛片 | 日韩欧美在线免费观看 | 亚洲欧美综合 | 国产视频一区二区 | 国产一区91| 亚洲精品在线免费观看 | 视频二区 素人 欧美 日韩 |