基本概念
數(shù)據(jù)(data):描述事物的符號記錄稱為數(shù)據(jù)。
數(shù)據(jù)庫(DataBase,DB):是長期存儲在計算機內(nèi)、有組織的、可共享的大量數(shù)據(jù)的集合,具有永久存儲、有組織、可共享三個基本特點。
數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System,DBMS):是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。
數(shù)據(jù)庫系統(tǒng)(DataBase System,DBS):是有數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其應(yīng)用開發(fā)工具)、應(yīng)用程序和數(shù)據(jù)庫管理員(DataBase Administrator DBA)組成的存儲、管理、處理和維護(hù)數(shù)據(jù)的系統(tǒng)。
實體(entity):客觀存在并可相互區(qū)別的事物稱為實體。
屬性(attribute):實體所具有的某一特性稱為屬性。
碼(key):唯一標(biāo)識實體的屬性集稱為碼。
實體型(entity type):用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。
實體集(entity set):同一實體型的集合稱為實體集。
聯(lián)系(relationship):實體之間的聯(lián)系通常是指不同實體集之間的聯(lián)系。
模式(schema):模式也稱邏輯模式,是數(shù)據(jù)庫全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。
外模式(external schema):外模式也稱子模式(subschema)或用戶模式,它是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。
內(nèi)模式(internal schema):內(nèi)模式也稱為存儲模式(storage schema),一個數(shù)據(jù)庫只有一個內(nèi)模式。他是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)庫在數(shù)據(jù)庫內(nèi)部的組織方式。
常用數(shù)據(jù)模型
層次模型(hierarchical model)
網(wǎng)狀模型(network model)
關(guān)系模型(relational model)
(1)關(guān)系(relation):一個關(guān)系對應(yīng)通常說的一張表
(2)元組(tuple):表中的一行即為一個元組
(3)屬性(attribute):表中的一列即為一個屬性
(4)碼(key):表中可以唯一確定一個元組的某個屬性組
(5)域(domain):一組具有相同數(shù)據(jù)類型的值的集合
(6)分量:元組中的一個屬性值
(7)關(guān)系模式:對關(guān)系的描述,一般表示為 關(guān)系名(屬性1, 屬性2, 。.., 屬性n)
面向?qū)ο髷?shù)據(jù)模型(object oriented data model)
對象關(guān)系數(shù)據(jù)模型(object relational data model)
半結(jié)構(gòu)化數(shù)據(jù)模型(semistructure data model)
關(guān)系型數(shù)據(jù)庫
基本關(guān)系操作:查詢(選擇、投影、連接(等值連接、自然連接、外連接(左外連接、右外連接))、除、并、差、交、笛卡爾積等)、插入、刪除、修改
關(guān)系模型中的三類完整性約束:實體完整性、參照完整性、用戶定義的完整性
數(shù)據(jù)庫索引:順序索引、B+ 樹索引、hash 索引
數(shù)據(jù)庫完整性
數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。
完整性:為了防止數(shù)據(jù)庫中存在不符合語義(不正確)的數(shù)據(jù)。
安全性:為了保護(hù)數(shù)據(jù)庫防止惡意破壞和非法存取。
觸發(fā)器:是用戶定義在關(guān)系表中的一類由事件驅(qū)動的特殊過程。
關(guān)系數(shù)據(jù)理論
數(shù)據(jù)依賴是一個關(guān)系內(nèi)部屬性與屬性之間的一種約束關(guān)系,是通過屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間相關(guān)聯(lián)系。
最重要的數(shù)據(jù)依賴:函數(shù)依賴、多值依賴。
范式
第一范式(1NF):屬性(字段)是最小單位不可再分。
第二范式(2NF):滿足 1NF,每個非主屬性完全依賴于主鍵(消除 1NF 非主屬性對碼的部分函數(shù)依賴)。
第三范式(3NF):滿足 2NF,任何非主屬性不依賴于其他非主屬性(消除 2NF 非主屬性對碼的傳遞函數(shù)依賴)。
鮑依斯-科得范式(BCNF):滿足 3NF,任何非主屬性不能對主鍵子集依賴(消除 3NF 主屬性對碼的部分和傳遞函數(shù)依賴)。
第四范式(4NF):滿足 3NF,屬性之間不能有非平凡且非函數(shù)依賴的多值依賴(消除 3NF 非平凡且非函數(shù)依賴的多值依賴)。
數(shù)據(jù)庫恢復(fù)
事務(wù):是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位。
事物的 ACID 特性:原子性、一致性、隔離性、持續(xù)性。
恢復(fù)的實現(xiàn)技術(shù):建立冗余數(shù)據(jù) -》 利用冗余數(shù)據(jù)實施數(shù)據(jù)庫恢復(fù)。
建立冗余數(shù)據(jù)常用技術(shù):數(shù)據(jù)轉(zhuǎn)儲(動態(tài)海量轉(zhuǎn)儲、動態(tài)增量轉(zhuǎn)儲、靜態(tài)海量轉(zhuǎn)儲、靜態(tài)增量轉(zhuǎn)儲)、登記日志文件。
并發(fā)控制
事務(wù)是并發(fā)控制的基本單位。
并發(fā)操作帶來的數(shù)據(jù)不一致性包括:丟失修改、不可重復(fù)讀、讀 “臟” 數(shù)據(jù)。
并發(fā)控制主要技術(shù):封鎖、時間戳、樂觀控制法、多版本并發(fā)控制等。
基本封鎖類型:排他鎖(X 鎖 / 寫鎖)、共享鎖(S 鎖 / 讀鎖)。
活鎖死鎖:
(1)活鎖:事務(wù)永遠(yuǎn)處于等待狀態(tài),可通過先來先服務(wù)的策略避免。
(2)死鎖:事務(wù)永遠(yuǎn)不能結(jié)束
a、預(yù)防:一次封鎖法、順序封鎖法;
b、診斷:超時法、等待圖法;
解除:撤銷處理死鎖代價最小的事務(wù),并釋放此事務(wù)的所有的鎖,使其他事務(wù)得以繼續(xù)運行下去。
可串行化調(diào)度:多個事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行地執(zhí)行這些事務(wù)時的結(jié)果相同。可串行性時并發(fā)事務(wù)正確調(diào)度的準(zhǔn)則。
責(zé)任編輯:haq
-
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3848瀏覽量
64691 -
C++
+關(guān)注
關(guān)注
22文章
2114瀏覽量
73860
原文標(biāo)題:C++基礎(chǔ)語法梳理:數(shù)據(jù)庫!帶你深入淺出了解數(shù)據(jù)庫
文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
從Delphi、C++ Builder和Lazarus連接到MySQL數(shù)據(jù)庫
![從Delphi、<b class='flag-5'>C++</b> Builder和Lazarus連接到MySQL<b class='flag-5'>數(shù)據(jù)庫</b>](https://file1.elecfans.com/web3/M00/06/A5/wKgZO2eN5IqANOPPAAAbvvhWjM0611.png)
從Delphi、C++ Builder和Lazarus連接到Oracle數(shù)據(jù)庫
MySQL數(shù)據(jù)庫的安裝
![MySQL<b class='flag-5'>數(shù)據(jù)庫</b>的安裝](https://file1.elecfans.com/web3/M00/05/E2/wKgZPGeF2XWAe83fAAAW9lhgvGk652.jpg)
云數(shù)據(jù)庫是哪種數(shù)據(jù)庫類型?
數(shù)據(jù)庫加密辦法
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復(fù)流程
![<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—Mysql<b class='flag-5'>數(shù)據(jù)庫</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)流程](https://file.elecfans.com/web2/M00/7B/26/pYYBAGNzCiiANj77AAH4iOB3xKM259.png)
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—通過拼接數(shù)據(jù)庫碎片恢復(fù)SQLserver數(shù)據(jù)庫
![<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—通過拼接<b class='flag-5'>數(shù)據(jù)庫</b>碎片恢復(fù)SQLserver<b class='flag-5'>數(shù)據(jù)庫</b>](https://file1.elecfans.com/web1/M00/F4/07/wKgaoWcjE32AbQdWAAJD_hojvJc119.png)
Oracle數(shù)據(jù)恢復(fù)—異常斷電后Oracle數(shù)據(jù)庫啟庫報錯的數(shù)據(jù)恢復(fù)案例
![Oracle<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—異常斷電后Oracle<b class='flag-5'>數(shù)據(jù)庫</b>啟<b class='flag-5'>庫</b>報錯的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例](https://file1.elecfans.com/web2/M00/08/B8/wKgZomb6Ns-AbiICAAFlXAFpKKU086.png)
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫出現(xiàn)823錯誤的數(shù)據(jù)恢復(fù)案例
![<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—SQL Server<b class='flag-5'>數(shù)據(jù)庫</b>出現(xiàn)823錯誤的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例](https://file1.elecfans.com/web2/M00/07/F4/wKgaombs78mANJ1GAAPeSoXHVPE244.png)
深入淺出系列之代碼可讀性
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫所在分區(qū)空間不足報錯的數(shù)據(jù)恢復(fù)案例
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—數(shù)據(jù)庫所在分區(qū)空間不足導(dǎo)致sqlserver故障的數(shù)據(jù)恢復(fù)案例
![<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>數(shù)據(jù)庫</b>所在分區(qū)空間不足導(dǎo)致sqlserver故障的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例](https://file.elecfans.com/web2/M00/A5/1F/pYYBAGRd7l6AFn25AAQyenpNuoc061.png)
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—raid5陣列上層Sql Server數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例
![<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—raid5陣列上層Sql Server<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例](https://file.elecfans.com/web2/M00/A2/AD/pYYBAGRLbSSAHhFWAAI9vWNRQec919.png)
評論