完整性約束:
實(shí)體完整性約束:主屬性不能為空且是唯一
參照完整性:關(guān)系中不允許引用不存在的實(shí)體
用戶(hù)自定義完整性:一般指數(shù)據(jù)必須滿足語(yǔ)義要求。
Nosql:
- 不需要預(yù)定義模式
- 無(wú)共享框架
- 彈性可擴(kuò)展
- 分區(qū)
- 異步復(fù)制
- base特性,相對(duì)于sql數(shù)據(jù)庫(kù)的acid特性,Nosql數(shù)據(jù)庫(kù)犧牲一致性換區(qū)高可用性。
Nosql使用場(chǎng)景:
- 數(shù)據(jù)模型比較簡(jiǎn)單
- 對(duì)靈活性要求跟高的it系統(tǒng)
- 對(duì)數(shù)據(jù)庫(kù)性能要求高
- 不需要高度的數(shù)據(jù)一致性
- 對(duì)于給定Key,比較容易映射負(fù)責(zé)制的環(huán)境
視圖
- 視圖是一個(gè)虛擬表,由查詢(xún)語(yǔ)句決定視圖顯示的內(nèi)容
- 目的:
- 安全因素:視圖可以隱藏一些銘感信息
- 簡(jiǎn)化查詢(xún):
- 自定義數(shù)據(jù)結(jié)構(gòu):視圖可以按特定場(chǎng)景定義數(shù)據(jù)結(jié)構(gòu)
- 獨(dú)立邏輯數(shù)據(jù):視圖可以減少真實(shí)表結(jié)構(gòu)變化帶來(lái)的影響
外鍵
- 外鍵表示了兩個(gè)關(guān)系表之間的相關(guān)聯(lián)系
- 外間的主要作用是保持?jǐn)?shù)據(jù)一致性,完整性,主要目的是控制存儲(chǔ)在外鍵表中的數(shù)據(jù)。使兩張表形成關(guān)聯(lián),外鍵只能引用外表中的列的值或使用空值。
- 外鍵的使用原則:
1.為關(guān)聯(lián)字段創(chuàng)建外鍵
2.所有的鍵都必須唯一
3.避免使用復(fù)合鍵
4.外鍵總是關(guān)聯(lián)唯一的鍵字段
關(guān)于級(jí)聯(lián)操作
級(jí)聯(lián)是用來(lái)設(shè)計(jì)一對(duì)多關(guān)系的。關(guān)聯(lián)表中的數(shù)據(jù)更新或刪除時(shí),引用表內(nèi)的相關(guān)數(shù)據(jù)將會(huì)一起更新或刪除。
級(jí)聯(lián)操作一般有
1.級(jí)聯(lián)刪除
2.級(jí)聯(lián)更新設(shè)置級(jí)聯(lián)操作可以保證數(shù)據(jù)完整性,但及聯(lián)關(guān)系會(huì)使得數(shù)據(jù)變的不可控
不建議使用級(jí)聯(lián)關(guān)系!
第一范式(1NF)
- 數(shù)據(jù)庫(kù)表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個(gè)值,即實(shí)體中的某個(gè)屬性不能有多個(gè)值或者不能有重復(fù)屬性。(列的原子性)
第二范式(2NF)
- 要求實(shí)體的屬性完全依賴(lài)于主關(guān)鍵字。所謂完全依賴(lài)是指不能存在僅依賴(lài)主關(guān)鍵字一部分的屬性。若果存在,那么這個(gè)屬性和主關(guān)鍵字的這一部分應(yīng)該分離出來(lái)形成一個(gè)新的實(shí)體,新實(shí)體與原實(shí)體之間是一對(duì)多的關(guān)系。
- 第二范式主要針對(duì)含有聯(lián)合主鍵或者數(shù)據(jù)表中包含多對(duì)多關(guān)系的情況。數(shù)據(jù)庫(kù)設(shè)計(jì)要求將這兩種情況拆分成兩個(gè)一對(duì)多關(guān)系。
第三范式(3NF)
- 在1NF基礎(chǔ)上,任何非主屬性不依賴(lài)于其它非主屬性(在2NF基礎(chǔ)上消除傳遞依賴(lài))