天天看點

資料庫

本節部分知識點來自《資料庫系統概論(第 5 版)》

資料(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)

關系(relation):一個關系對應通常說的一張表

元組(tuple):表中的一行即為一個元組

屬性(attribute):表中的一列即為一個屬性

碼(key):表中可以唯一确定一個元組的某個屬性組

域(domain):一組具有相同資料類型的值的集合

分量:元組中的一個屬性值

關系模式:對關系的描述,一般表示為 <code>關系名(屬性1, 屬性2, ..., 屬性n)</code>

面向對象資料模型(object oriented data model)

對象關系資料模型(object relational data model)

半結構化資料模型(semistructure data model)

對象類型

對象

操作類型

資料庫模式

模式

<code>create schema</code>

基本表

<code>create schema</code>,<code>alter table</code>

視圖

<code>create view</code>

索引

<code>create index</code>

資料

基本表和視圖

<code>select</code>,<code>insert</code>,<code>update</code>,<code>delete</code>,<code>references</code>,<code>all privileges</code>

屬性列

<code>select</code>,<code>insert</code>,<code>update</code>,<code>references</code>,<code>all privileges</code>

sql 文法教程:runoob . sql 教程

基本關系操作:查詢(選擇、投影、連接配接(等值連接配接、自然連接配接、外連接配接(左外連接配接、右外連接配接))、除、并、差、交、笛卡爾積等)、插入、删除、修改

關系模型中的三類完整性限制:實體完整性、參照完整性、使用者定義的完整性

資料庫索引:順序索引、b+ 樹索引、hash 索引

mysql 索引背後的資料結構及算法原理

資料庫的完整性是指資料的正确性和相容性。

完整性:為了防止資料庫中存在不符合語義(不正确)的資料。

安全性:為了保護資料庫防止惡意破壞和非法存取。

觸發器:是使用者定義在關系表中的一類由事件驅動的特殊過程。

資料依賴是一個關系内部屬性與屬性之間的一種限制關系,是通過屬性間值的相等與否展現出來的資料間相關聯系。

最重要的資料依賴:函數依賴、多值依賴。

第一範式(1nf):屬性(字段)是最小機關不可再分。

第二範式(2nf):滿足 1nf,每個非主屬性完全依賴于主鍵(消除 1nf 非主屬性對碼的部分函數依賴)。

第三範式(3nf):滿足 2nf,任何非主屬性不依賴于其他非主屬性(消除 2nf 非主屬性對碼的傳遞函數依賴)。

鮑依斯-科得範式(bcnf):滿足 3nf,任何非主屬性不能對主鍵子集依賴(消除 3nf 主屬性對碼的部分和傳遞函數依賴)。

第四範式(4nf):滿足 3nf,屬性之間不能有非平凡且非函數依賴的多值依賴(消除 3nf 非平凡且非函數依賴的多值依賴)。

事務:是使用者定義的一個資料庫操作序列,這些操作要麼全做,要麼全不做,是一個不可分割的工作機關。

事物的 acid 特性:原子性、一緻性、隔離性、持續性。

恢複的實作技術:建立備援資料 -&gt; 利用備援資料實施資料庫恢複。

建立備援資料常用技術:資料轉儲(動态海量轉儲、動态增量轉儲、靜态海量轉儲、靜态增量轉儲)、登記日志檔案。

事務是并發控制的基本機關。

并發操作帶來的資料不一緻性包括:丢失修改、不可重複讀、讀 “髒” 資料。

并發控制主要技術:封鎖、時間戳、樂觀控制法、多版本并發控制等。

基本封鎖類型:排他鎖(x 鎖 / 寫鎖)、共享鎖(s 鎖 / 讀鎖)。

活鎖死鎖:

活鎖:事務永遠處于等待狀态,可通過先來先服務的政策避免。

死鎖:事物永遠不能結束

預防:一次封鎖法、順序封鎖法;

診斷:逾時法、等待圖法;

解除:撤銷處理死鎖代價最小的事務,并釋放此事務的所有的鎖,使其他事務得以繼續運作下去。

可串行化排程:多個事務的并發執行是正确的,當且僅當其結果與按某一次序串行地執行這些事務時的結果相同。可串行性時并發事務正确排程的準則。