基本概念
數據(data):描述事物的符號記錄稱為數據。
數據庫(DataBase,DB):是長期存儲在計算機內、有組織的、可共享的大量數據的集合,具有永久存儲、有組織、可共享三個基本特點。
數據庫管理系統(DataBase Management System,DBMS):是位于用戶與操作系統之間的一層數據管理軟件。
數據庫系統(DataBase System,DBS):是有數據庫、數據庫管理系統(及其應用開發工具)、應用程序和數據庫管理員(DataBase Administrator DBA)組成的存儲、管理、處理和維護數據的系統。
實體(entity):客觀存在并可相互區別的事物稱為實體。
屬性(attribute):實體所具有的某一特性稱為屬性。
碼(key):唯一標識實體的屬性集稱為碼。
實體型(entity type):用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。
實體集(entity set):同一實體型的集合稱為實體集。
聯系(relationship):實體之間的聯系通常是指不同實體集之間的聯系。
模式(schema):模式也稱邏輯模式,是數據庫全體數據的邏輯結構和特征的描述,是所有用戶的公共數據視圖。
外模式(external schema):外模式也稱子模式(subschema)或用戶模式,它是數據庫用戶(包括應用程序員和最終用戶)能夠看見和使用的局部數據的邏輯結構和特征的描述,是數據庫用戶的數據視圖,是與某一應用有關的數據的邏輯表示。
內模式(internal schema):內模式也稱為存儲模式(storage schema),一個數據庫只有一個內模式。他是數據物理結構和存儲方式的描述,是數據庫在數據庫內部的組織方式。
常用數據模型
層次模型(hierarchical model)
網狀模型(network model)
關系模型(relational model)
(1)關系(relation):一個關系對應通常說的一張表
(2)元組(tuple):表中的一行即為一個元組
(3)屬性(attribute):表中的一列即為一個屬性
(4)碼(key):表中可以唯一確定一個元組的某個屬性組
(5)域(domain):一組具有相同數據類型的值的集合
(6)分量:元組中的一個屬性值
(7)關系模式:對關系的描述,一般表示為 關系名(屬性1, 屬性2, 。.., 屬性n)
面向對象數據模型(object oriented data model)
對象關系數據模型(object relational data model)
半結構化數據模型(semistructure data model)
關系型數據庫
基本關系操作:查詢(選擇、投影、連接(等值連接、自然連接、外連接(左外連接、右外連接))、除、并、差、交、笛卡爾積等)、插入、刪除、修改
關系模型中的三類完整性約束:實體完整性、參照完整性、用戶定義的完整性
數據庫索引:順序索引、B+ 樹索引、hash 索引
數據庫完整性
數據庫的完整性是指數據的正確性和相容性。
完整性:為了防止數據庫中存在不符合語義(不正確)的數據。
安全性:為了保護數據庫防止惡意破壞和非法存取。
觸發器:是用戶定義在關系表中的一類由事件驅動的特殊過程。
關系數據理論
數據依賴是一個關系內部屬性與屬性之間的一種約束關系,是通過屬性間值的相等與否體現出來的數據間相關聯系。
最重要的數據依賴:函數依賴、多值依賴。
范式
第一范式(1NF):屬性(字段)是最小單位不可再分。
第二范式(2NF):滿足 1NF,每個非主屬性完全依賴于主鍵(消除 1NF 非主屬性對碼的部分函數依賴)。
第三范式(3NF):滿足 2NF,任何非主屬性不依賴于其他非主屬性(消除 2NF 非主屬性對碼的傳遞函數依賴)。
鮑依斯-科得范式(BCNF):滿足 3NF,任何非主屬性不能對主鍵子集依賴(消除 3NF 主屬性對碼的部分和傳遞函數依賴)。
第四范式(4NF):滿足 3NF,屬性之間不能有非平凡且非函數依賴的多值依賴(消除 3NF 非平凡且非函數依賴的多值依賴)。
數據庫恢復
事務:是用戶定義的一個數據庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位。
事物的 ACID 特性:原子性、一致性、隔離性、持續性。
恢復的實現技術:建立冗余數據 -》 利用冗余數據實施數據庫恢復。
建立冗余數據常用技術:數據轉儲(動態海量轉儲、動態增量轉儲、靜態海量轉儲、靜態增量轉儲)、登記日志文件。
并發控制
事務是并發控制的基本單位。
并發操作帶來的數據不一致性包括:丟失修改、不可重復讀、讀 “臟” 數據。
并發控制主要技術:封鎖、時間戳、樂觀控制法、多版本并發控制等。
基本封鎖類型:排他鎖(X 鎖 / 寫鎖)、共享鎖(S 鎖 / 讀鎖)。
活鎖死鎖:
(1)活鎖:事務永遠處于等待狀態,可通過先來先服務的策略避免。
(2)死鎖:事務永遠不能結束
a、預防:一次封鎖法、順序封鎖法;
b、診斷:超時法、等待圖法;
解除:撤銷處理死鎖代價最小的事務,并釋放此事務的所有的鎖,使其他事務得以繼續運行下去。
可串行化調度:多個事務的并發執行是正確的,當且僅當其結果與按某一次序串行地執行這些事務時的結果相同。可串行性時并發事務正確調度的準則。
責任編輯:haq
-
數據庫
+關注
關注
7文章
3766瀏覽量
64276 -
C++
+關注
關注
22文章
2104瀏覽量
73497
原文標題:C++基礎語法梳理:數據庫!帶你深入淺出了解數據庫
文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論