插入的数据不能时时查询到_数据库原理笔记
生活随笔
收集整理的這篇文章主要介紹了
插入的数据不能时时查询到_数据库原理笔记
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)載自:https://zhuanlan.zhihu.com/c_1236597039825223680
數(shù)據(jù)庫(kù)系統(tǒng)的基本概念
- 數(shù)據(jù):描述事物的符號(hào)記錄
- 數(shù)據(jù)庫(kù)(DB):長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi),有組織,可共享的大數(shù)據(jù)集合
- 數(shù)據(jù)庫(kù)數(shù)據(jù)特性:永久存儲(chǔ),有組織,可共享
- 數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS):數(shù)據(jù)庫(kù)加一組用以訪問(wèn),更新,管理這些數(shù)據(jù)的程序
- 數(shù)據(jù)庫(kù)系統(tǒng)(DBS):由DB,DBMS,應(yīng)用程序和數(shù)據(jù)庫(kù)管理員組成的存儲(chǔ),管理,處理和維護(hù)數(shù)據(jù)的系統(tǒng)
- DBMS的功能:數(shù)據(jù)定義;數(shù)據(jù)組織,存儲(chǔ)和管理;數(shù)據(jù)操縱;數(shù)據(jù)庫(kù)的事務(wù)管理和維護(hù)功能等
- DBMS的特性:
- 數(shù)據(jù)訪問(wèn)的高效和可擴(kuò)展性
- 縮短應(yīng)用開(kāi)發(fā)時(shí)間
- 數(shù)據(jù)獨(dú)立性
- 數(shù)據(jù)完整性和安全性
- 并發(fā)訪問(wèn)和魯棒性
- 數(shù)據(jù)庫(kù)系統(tǒng)(DBS)的特點(diǎn)
- 數(shù)據(jù)結(jié)構(gòu)化
- 數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充
- 數(shù)據(jù)獨(dú)立性高
- 數(shù)據(jù)有DBMS統(tǒng)一管理和控制
- 數(shù)據(jù)庫(kù)與文件處理系統(tǒng)對(duì)比
- 優(yōu)點(diǎn):文件處理系統(tǒng)由傳統(tǒng)操作系統(tǒng)所支持,數(shù)據(jù)文件可以是不同的格式,數(shù)據(jù)文件是相互獨(dú)立的
- 缺點(diǎn):數(shù)據(jù)冗余和不一致,數(shù)據(jù)訪問(wèn)困難,數(shù)據(jù)孤立,完整性問(wèn)題,原子性問(wèn)題,并發(fā)訪問(wèn)異常,安全性問(wèn)題
- 開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng):MySQL,PostgreSQL
- 數(shù)據(jù)管理技術(shù)發(fā)展:人工管理階段,文件系統(tǒng)階段,數(shù)據(jù)庫(kù)系統(tǒng)階段
數(shù)據(jù)庫(kù)模式及數(shù)據(jù)類(lèi)型
- 數(shù)據(jù)抽象:物理層,邏輯層(數(shù)據(jù)庫(kù)存儲(chǔ)什么數(shù)據(jù)及其數(shù)據(jù)之間的關(guān)系),視圖層
- 實(shí)例和模式:類(lèi)似編程語(yǔ)言中的變量和類(lèi)型;模式:數(shù)據(jù)庫(kù)的總體設(shè)計(jì);實(shí)例:特定時(shí)刻存儲(chǔ)在數(shù)據(jù)庫(kù)中的信息的集合
- 數(shù)據(jù)模型:是對(duì)現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象
- 兩類(lèi)數(shù)據(jù)模型:
- 概念(信息)模型:按照用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模
- 邏輯模型:包括層次模型,網(wǎng)狀模型,關(guān)系模型,面向?qū)ο竽P?#xff0c;對(duì)象關(guān)系數(shù)據(jù)模型等,按照計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模
- 現(xiàn)實(shí)世界--->信息世界--->機(jī)器世界
- 概念模型:
- 基本概念:
- 實(shí)體
- 屬性
- 碼:唯一標(biāo)識(shí)實(shí)體的屬性集
- 實(shí)體型:不是具體數(shù)據(jù),像c++中的類(lèi)
- 實(shí)體集
- 域:屬性的取值范圍
- 聯(lián)系
- 概念模型的表示方法:實(shí)體-聯(lián)系方法,用E-R圖來(lái)描述現(xiàn)實(shí)世界的概念模型,也稱(chēng)E-R模型
- 數(shù)據(jù)模型的組成要素:數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)操作,數(shù)據(jù)的完整性約束條件
- 基本概念:
- 層次模型
- 數(shù)據(jù)結(jié)構(gòu):只有一個(gè)根節(jié)點(diǎn),其余節(jié)點(diǎn)只有一個(gè)雙親結(jié)點(diǎn)
- 數(shù)據(jù)操縱:查詢,插入,刪除和更新
- 網(wǎng)狀模型
- 典型代表:DBTG系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu):一個(gè)結(jié)點(diǎn)可以有多余一個(gè)的雙親,允許一個(gè)以上的結(jié)點(diǎn)無(wú)雙親
- 關(guān)系模型
- 關(guān)系:一張二維表
- 元組:表中的一行
- 屬性:表中的一列
- 碼:表中的屬性組,可以唯一確定一個(gè)元組
- 域:具有相同數(shù)據(jù)類(lèi)型的值的集合
- 關(guān)系模式:關(guān)系名(屬性1,屬性2,......)
- 注意:不允許表中有表的情況出現(xiàn);所有數(shù)據(jù)結(jié)構(gòu)在數(shù)據(jù)庫(kù)中存儲(chǔ)為二維表
- 數(shù)據(jù)庫(kù)設(shè)計(jì)步驟:需求分析,概念數(shù)據(jù)庫(kù)設(shè)計(jì),邏輯數(shù)據(jù)庫(kù)設(shè)計(jì),結(jié)構(gòu)優(yōu)化,物理數(shù)據(jù)庫(kù)設(shè)計(jì)和創(chuàng)建并初始化數(shù)據(jù)庫(kù)&安全設(shè)計(jì)
數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)
- 模式:數(shù)據(jù)庫(kù)中全體數(shù)據(jù)邏輯結(jié)構(gòu)和特征的描述
- 實(shí)例:模式的一個(gè)具體的值
- 數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu):外模式,模式,內(nèi)模式
- 外模式:也稱(chēng)子模式或用戶模式,是應(yīng)用程序員和最終用戶使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述
- 內(nèi)模式:也稱(chēng)存儲(chǔ)模式,是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述
關(guān)系數(shù)據(jù)庫(kù)
關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義
- 關(guān)系模型是建立在集合代數(shù)的基礎(chǔ)上的
- 域:一組具有相同數(shù)據(jù)類(lèi)型的值的集合
- 笛卡爾積:是在域上的一種運(yùn)算
- 關(guān)系:關(guān)系是笛卡爾積的有限子集,是一張二維表,每行對(duì)應(yīng)元組,每列對(duì)應(yīng)屬性
- 碼(鍵):如果一個(gè)屬性能夠唯一的標(biāo)志一個(gè)元組,則這個(gè)屬性就是一個(gè)碼
- 候選碼:如果一個(gè)碼就是最小超碼,將它稱(chēng)為候選碼
- 主碼:當(dāng)有多個(gè)候選碼時(shí),選定一個(gè)為主碼,由用戶明確定義,通常用下劃線表示
- 外碼:表B的主鍵出現(xiàn)在了表A中,這個(gè)主鍵稱(chēng)為表A的外碼
- 參照關(guān)系:表A
- 被參照關(guān)系(目標(biāo)關(guān)系):表B
- 全碼:關(guān)系模式的所有屬性都是這個(gè)關(guān)系模式的候選碼 53
- 關(guān)系的三種類(lèi)型:基本關(guān)系,查詢表和視圖表
- 在關(guān)系數(shù)據(jù)庫(kù)中,關(guān)系是型,關(guān)系是值
關(guān)系操作
- 關(guān)系模型的基本操作:查詢,插入,刪除和修改
- 關(guān)系數(shù)據(jù)模型操作方式稱(chēng)為一次一集合方式,非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式稱(chēng)為一次一記錄的方式
- 關(guān)系數(shù)據(jù)語(yǔ)言的分類(lèi):關(guān)系代數(shù)和關(guān)系演算
- SQL:介于關(guān)系代數(shù)和關(guān)系演算之間的結(jié)構(gòu)化查詢語(yǔ)言,是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言
關(guān)系的完整性
- 關(guān)系模型的三類(lèi)完整性約束:實(shí)體完整性,參照完整性,用戶定義完整性
- 實(shí)體完整性
- 實(shí)體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則A不能取空值
- 參照完整性
- 參照關(guān)系和被參照關(guān)系
- 參照完整性規(guī)則:學(xué)生的專(zhuān)業(yè)號(hào)只能取空值和非空值(必須是已有的某個(gè)專(zhuān)業(yè))
- 用戶定義完整性
- 由用戶根據(jù)實(shí)際情況來(lái)加約束條件
關(guān)系代數(shù)
- 關(guān)系代數(shù):是一種抽象的查詢語(yǔ)言,用對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢
- 運(yùn)算三要素:運(yùn)算對(duì)象,運(yùn)算符,運(yùn)算結(jié)果
- 關(guān)系運(yùn)算:選擇,投影,連接,除運(yùn)算等
- 選擇:根據(jù)條件選擇出符合的元組
- 投影:根據(jù)需求提出所需的屬性,刪除其他屬性,對(duì)表來(lái)說(shuō)是按列操作
- 合并:根據(jù)需求合并所需的屬性 連接操作的條件:兩個(gè)關(guān)系的屬性數(shù)目要相同,且元組是同一個(gè)類(lèi)型(不能把int和string進(jìn)行連接)
- 差:在關(guān)系A(chǔ)中去除關(guān)系B出現(xiàn)的屬性 差運(yùn)算操作的條件和連接操作一樣
- 笛卡爾積:將關(guān)系A(chǔ)和關(guān)系B進(jìn)行笛卡爾積之后組成一個(gè)新關(guān)系
- 復(fù)合:將上述操作進(jìn)行復(fù)合運(yùn)算
- 更名:對(duì)關(guān)系表達(dá)式或者關(guān)系的屬性重命名
----------------------------------------附加運(yùn)算---------------------------------------
- 交:兩關(guān)系的公共部分
- (theta)連接:從兩個(gè)關(guān)系的笛卡爾積中選取滿足條件的元組,條件由用戶自己指定
- 自然連接
- 自然連接操作的條件:兩關(guān)系必須含有同名同域?qū)傩?#xff0c;連接兩關(guān)系中同名屬性值相等的元組,運(yùn)算結(jié)果是兩個(gè)屬性集的并集,但要消去重名屬性
- 懸浮元組:在自然連接中被舍棄的元組
- 外連接:將懸浮元組加上,保留左邊的叫左外連接,保留右邊的叫右外連接
- 除運(yùn)算:關(guān)系A(chǔ)除以關(guān)系B得到關(guān)系C,則關(guān)系C中包含所有在A中不在B中的屬性及其值,且B,C的元組組合均在A中
關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL
SQL概述
- SQL特點(diǎn):綜合統(tǒng)一,高度非過(guò)程化,面向集合的操作方式,以同一種語(yǔ)法結(jié)構(gòu)提供多種使用方式
- 視圖是從基本表里面導(dǎo)出的表,是一個(gè)虛表,用戶可以在視圖上再定義視圖
索引的建立和刪除
- 目的:加快查詢速度
- 具體實(shí)現(xiàn)技術(shù)由DBMS來(lái)決定
- 索引可以是:唯一索引,非唯一索引,聚簇索引(前面兩個(gè)又稱(chēng)普通索引)
- 在下圖中,我們使用普通索引索引來(lái)查詢,紅線下方為數(shù)據(jù)表,上方類(lèi)似B+樹(shù);使用索引之后,用四個(gè)文件塊就可以讀取到數(shù)據(jù),否則只能遍歷
- 聚簇索引要求數(shù)據(jù)按照屬性來(lái)順序存儲(chǔ),極大加快了按照聚簇值存儲(chǔ)的數(shù)據(jù)的查詢速度
- 一個(gè)關(guān)系只能有一個(gè)聚簇索引,可以有多個(gè)普通索引
數(shù)據(jù)查詢
- 一個(gè)查詢塊結(jié)束用;結(jié)尾
- 查詢所有屬性列用*
- 單表查詢:SELECT FROM WHERE;
- 前面三個(gè)關(guān)鍵字為在原表操作
- 聚集函數(shù)不可以在WHERE語(yǔ)句中出現(xiàn)
- HAVING短語(yǔ)與WHERE子句的區(qū)別
- HAVING短語(yǔ):作用于組,從組中選擇滿足條件的組
- WHERE子句:作用于基表或視圖,從中選擇滿足條件的元組,因此不能用聚集函數(shù)
- HAVING短語(yǔ)與GROUP BY短語(yǔ)順序問(wèn)題:GROUP BY不能放在HAVING短語(yǔ)中,因?yàn)镠AVING短語(yǔ)是先要分組,再選擇,因此要先用GROUP BY分組,所以將其放在HAVING短語(yǔ)前面
- 連接查詢:
- 連接操作的執(zhí)行過(guò)程:
- 嵌套循環(huán)法
- 排序合并法
- 索引連接法
- 連接查詢:
- 等值連接和非等值連接查詢
- 自身連接
- 外連接
- 多表連接
- 連接操作的執(zhí)行過(guò)程:
- 嵌套查詢:
- 將一個(gè)查詢塊嵌入到另一個(gè)查詢塊的WHERE或者HAVING語(yǔ)句中
- 內(nèi)層向外層傳播
- 連接查詢和嵌套查詢的速度根據(jù)不同的系統(tǒng)有不同的速度
- 不能用ORDER BY子句
- 嵌套查詢求解方法:
- 不想關(guān)子查詢
- 相關(guān)子查詢
- 帶有IN謂詞的子查詢
- 帶有比較運(yùn)算符的子查詢
- 帶有ANY(SOME)或者ALL謂詞的子查詢
- 帶有EXISTS謂詞的子查詢
- 只產(chǎn)生邏輯真或假,因此列名無(wú)意義,使用*
數(shù)據(jù)更新
- 插入數(shù)據(jù)
- 插入元組
- 插入子查詢結(jié)果
- 修改數(shù)據(jù)
- 在MySQL中使用讓全體學(xué)生年齡+1的語(yǔ)句時(shí)候,提示安全更新問(wèn)題?
- 刪除數(shù)據(jù)
空值
- 表示不存在,無(wú)意義
視圖
- 虛表,是一個(gè)或幾個(gè)基本表導(dǎo)出的表
- 定義視圖
- 查詢視圖
- 更新視圖
- 視圖的作用
- 簡(jiǎn)化用戶的操作
- 對(duì)機(jī)密數(shù)據(jù)提供安全保護(hù)
- 更加清晰的表達(dá)查詢
數(shù)據(jù)庫(kù)設(shè)計(jì)與應(yīng)用開(kāi)發(fā)
- 具體知識(shí)網(wǎng)絡(luò)如下
- 第四章和第五章作為理解內(nèi)容,之后看情況補(bǔ)充
問(wèn)題的提出
- 關(guān)系數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)
- 數(shù)據(jù)依賴
- 數(shù)據(jù)依賴是完整性約束的表現(xiàn)形式,數(shù)據(jù)內(nèi)在的聯(lián)系
- 數(shù)據(jù)依賴類(lèi)型
- 函數(shù)依賴
- 多值依賴
- 數(shù)據(jù)依賴對(duì)關(guān)系模式的影響
- 關(guān)系模式中的問(wèn)題
- 數(shù)據(jù)冗余太大(次要)
- 更新異常:例如新插入剛成立的系,系里面沒(méi)有主任,因此不能確定系主任
- 插入異常
- 刪除異常
- 通過(guò)分解關(guān)系模式來(lái)消除其中不適合的數(shù)據(jù)依賴
規(guī)范化(范式)
- 用規(guī)范化看關(guān)系模式好壞與否
- 函數(shù)依賴
- 定義:在X中一個(gè)行給一個(gè)a,能確定一個(gè)y,在另一個(gè)行中a仍能確定y,記作X—>Y
- 函數(shù)依賴來(lái)源于現(xiàn)實(shí)世界,可能會(huì)多加約束條件
- 函數(shù)依賴分類(lèi)★
- 非平凡函數(shù)依賴和平凡函數(shù)依賴
- 完全函數(shù)依賴與部分函數(shù)依賴★
- 傳遞函數(shù)依賴★
- 碼
- 定義:設(shè)K為R<U,F>中的屬性或?qū)傩越M合。若K完全依賴U, 則K稱(chēng)為R的侯選碼
- 主屬性:候選碼中的屬性
- 非主屬性:非候選碼中的屬性
- 全碼:整個(gè)屬性組是碼
- 外碼
- 范式★
- 范式是一個(gè)標(biāo)準(zhǔn),符合某一級(jí)別的關(guān)系模式的集合
- 范式種類(lèi)
- 范式基礎(chǔ):函數(shù)依賴
- 使用范式步驟:確定碼,確定主屬性和非主屬性,確定函數(shù)依賴
- 各種范式之間的聯(lián)系:
- 規(guī)范化:一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合
- 1NF★
- 定義:如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R∈1NF
- 關(guān)系數(shù)據(jù)庫(kù)必須滿足1NF
- 2NF★
- 定義:若R∈1NF,且每一個(gè)非主屬性完全函數(shù)依賴于碼,則R∈2NF
- 有單碼的關(guān)系模式一定滿足第二范式
- 在分解的若干個(gè)關(guān)系模式中必須保證有公共屬性
- 2NF并不能完全消除關(guān)系模式數(shù)據(jù)冗余和異常
- 3NF★
- 定義:在2NF基礎(chǔ)上非主屬性不能有傳遞依賴,則R∈3NF
- 3NF并不能完全消除關(guān)系模式數(shù)據(jù)冗余和異常
- BCNF★
- 定義:在3NF基礎(chǔ)上一個(gè)關(guān)系依賴?yán)锩婷恳粋€(gè)決定因素都包含碼,即沒(méi)有其他決定因素
- 實(shí)際中很難到達(dá)BC范式,已經(jīng)解決了操作異常問(wèn)題
- BCNF實(shí)際上是對(duì)第三范式的修正和補(bǔ)充
- 4NF(了解性)
- 第四范式是多值依賴的問(wèn)題,函數(shù)依賴的問(wèn)題之前已經(jīng)解決
- 4NF之前是函數(shù)范式范疇,4NF是多值依賴范疇
- 多值依賴
- 有數(shù)據(jù)冗余問(wèn)題的時(shí)候,對(duì)數(shù)據(jù)操作訪問(wèn)的元組比較多
- 定義:對(duì)于給定的(X,Y)值,決定的Z的值僅僅與X有關(guān),而與Y無(wú)關(guān)
- 多值依賴分類(lèi)
- 平凡多值依賴:Z為空集,平凡多值依賴無(wú)意義
- 非平凡多值依賴
- 多值依賴是對(duì)三個(gè)屬性的操作
- 多值依賴具有對(duì)稱(chēng)性,傳遞性
- 函數(shù)依賴是多值依賴的特殊情況
- 多值依賴導(dǎo)致數(shù)據(jù)冗余
- 4NF定義:不能有非平凡且非函數(shù)依賴的多值依賴,允許的是左部必須包含碼的函數(shù)依賴
規(guī)范化小結(jié)
- 規(guī)范化是數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工具
- 目的是盡量消除操作異常和冗余
數(shù)據(jù)依賴的公理系統(tǒng)
- 公理系統(tǒng)是模式分解的基礎(chǔ)
- Armstrong公理系統(tǒng)(找到推出結(jié)果的感覺(jué)就ok,沒(méi)必要死記)
- 自反律:X確定他自己的一部分
- 增廣律
- 傳遞律
- 合并規(guī)則
- 偽傳遞規(guī)則
- 分解規(guī)則
- 閉包(不可求):在關(guān)系模式R<U,F>中,F所蘊(yùn)含的函數(shù)依賴全體,記作F+
- 屬性集閉包(可求):在給定F+的情況下,去求X可以確定哪些屬性
- 關(guān)于閉包的引理:
- 求屬性集閉包的算法
- 最小依賴集(Fm)
- 為模式分解做準(zhǔn)備
- 右部為單屬性
- 沒(méi)有多余的函數(shù)依賴
- 決定因素沒(méi)有多余的屬性(XB->Y,X->Y;B就是多余的)
- 極小化過(guò)程:求最小依賴集
- 逐一檢查右部是否為單屬性,若不是,則拆開(kāi)
- 逐一檢查各個(gè)函數(shù)依賴,若該依賴可以由其他推出,若有,去除該函數(shù)依賴
- 去掉多余屬性
模式的分解
- 模式分解理論基礎(chǔ)
- 希望分解后能繼續(xù)攜帶完整信息
- 希望函數(shù)依賴集合依賴數(shù)量比較少
- 希望獲得一個(gè)可以反映所有需求的最小函數(shù)依賴集合
- 三種模式分解等價(jià)的定義
- 無(wú)損連接性
- 關(guān)系模式R<U,F>被分解為若干模式,R與R1,R2,R3,......,Rn自然連接結(jié)果相等,則稱(chēng)具有無(wú)損連接性
- 不一定能解決數(shù)據(jù)操作異常問(wèn)題
- 保持函數(shù)依賴
- 關(guān)系模式R<U,F>被分解為若干模式,F所邏輯蘊(yùn)含的函數(shù)依賴一定可以由分解得到的某個(gè)關(guān)系模式中的函數(shù)依賴Fi所邏輯蘊(yùn)含,則稱(chēng)保持函數(shù)依賴
- 無(wú)損連接性和保持函數(shù)依賴
- 無(wú)損連接性
- 舉例:
- 分解算法
- 算法6.2
- 判斷分解的無(wú)損連接性
- 舉例:判斷分解ρ={AB,AE,EC,DBC,AC}是否具有無(wú)損連接性?
- 算法6.2
- 第一步:構(gòu)建一張表,N行為模式分解之后變成了多少關(guān)系就有多少行,K列為原關(guān)系的所有屬性;接著將表中元素填滿。比如對(duì)于第一行AB來(lái)說(shuō),用到了第一列和第二列屬性,所以就填a1,a2,沒(méi)用到就填b13等(1,3表示行和列)
- 第二步:根據(jù)函數(shù)依賴關(guān)系改變表中元素的值。比如對(duì)于第一個(gè)函數(shù)依賴A->D,找到A列中元素一樣的行(至少兩個(gè)才有意義),由于依賴關(guān)系,我們需要修改D列上的元素,如果元素全為b,將其下標(biāo)行號(hào)修改為最小行號(hào);如果元素中有a,將所有行全改為a
- 第三步:遍歷完所有的函數(shù)依賴,判斷假如有一行全為a,則說(shuō)明分解保持無(wú)損連接性,否則再遍歷
- 快速方法:完全不考慮b和下標(biāo),對(duì)于每個(gè)行來(lái)說(shuō),哪一個(gè)屬性被使用,就在該行填a;再根據(jù)函數(shù)依賴在其他列填a,比如A確定D,就在D列填a
- 算法6.3(※)
- 轉(zhuǎn)化為3NF的保持函數(shù)依賴的分解
- 第一步:求最小函數(shù)依賴集Fm
- 第二步:將沒(méi)有在函數(shù)依賴集中出現(xiàn)的屬性去掉,其余的不變組成U0
- 第三步:按照完全相同的左部,對(duì)函數(shù)依賴集進(jìn)行分組,判斷一下分完組的屬性有沒(méi)有重復(fù)的情況,比如:BCD包含BD,去掉重復(fù)的部分,算法結(jié)束
- 算法6.4(※)
- 轉(zhuǎn)換為3NF既有無(wú)損連接性又保持函數(shù)依賴的分解
- 第一步:按照算法6.3分解之后的關(guān)系并上原來(lái)關(guān)系的碼,比如ρUR*
- 第二步:判斷合并之后的關(guān)系里面有沒(méi)有重復(fù)或者包含的屬性,有的話就去掉,和算法6.3去重相似
- 算法6.3(※)
轉(zhuǎn)載自:https://zhuanlan.zhihu.com/c_1236597039825223680
總結(jié)
以上是生活随笔為你收集整理的插入的数据不能时时查询到_数据库原理笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux函数库破坏怎么办
- 下一篇: mysql select count 5