這次學習的課程是面向面試的, 所以很多知識都是根據面試**現的高頻問題來學習的.
這個是乙個很空泛很大的問題, 但是我們可以將資料庫的構建和乙個軟體的構建進行模擬 :
首先需要硬體儲存模組, 比如 : 機械硬碟, 固態硬碟等來儲存資料;
資料庫程式例項 : 資料僅僅儲存起來是沒有任何意義的, 需要對資料庫中的資料進行操作, 比如增刪改查, 這個就需要資料庫程式例項來完成這件事情;
sql 解析 : 需要將 sql 語言解析, 從而呼叫程式例項;
快取機制 : 因為資料庫的操作時間大部分是用於 i/o 操作, 所以可以將經常使用的資料快取起來, 減少 i/o 的訪問時間
日誌管理 : 採集資料庫的相關資訊
許可權劃分 : 不同級別的操作者擁有不同級別的許可權
索引管理 : 優化資料庫運算元據的時間
鎖管理 : 保證併發操作時資料的正確性
以上是乙個基本的資料庫應該包含的一些功能, 接下來進一步對資料庫的常見問題與知識進行總結.
因為不使用索引的話, 需要對資料庫進行全域性遍歷搜尋, 當資料量大的情況下, 這樣的全域性遍歷操作耗費的時間太大. 使用索引是對資料庫查詢操作的優化.
主鍵、唯一鍵以及普通鍵
b 樹的定義 : 如果樹的每個儲存快最多有 m 個孩子, 那麼這樣的樹就是 m 階 b 樹.
根結點至少包括 2 個孩子
樹中每個結點最多含有 m 個孩子 ( m >= 2 )
除根結點和葉結點外, 其他每個結點至少有 ceil(m/2) 個孩子 (ceil 函式表示取上限)
所有葉節點都位於同一層
假設每個非終端結點中包含有 n 個關鍵字資訊, 其中
ki( i = 1...n) 為關鍵字, 且關鍵字按順序公升序排序 k(i - 1) < ki
非葉結點的關鍵字數量小於其指標數量
非葉節點的指標 : p[1], p[2],...p[m]; 其中 p[1] 指向關鍵字小於 k[1] 的子樹, p[m] 指向 關鍵字大於 k[m - 1] 的子樹, 其他 p[i] 指向關鍵字屬於 (k[i - 1], k[i]) 的子樹
b+ 樹的定義與 b 樹的定義基本相同, 除了 :
非葉結點的子樹結點和關鍵字的個數相同
非葉結點的子樹指標 p[i] 指向關鍵字 [ k[i], k[i + 1] ] 的子樹
非葉結點僅用來作索引, 資料都保持在葉子結點中
所有葉子結點均有乙個鍊錶指標指向下乙個葉子結點
從上面的定義可以看出, b 樹索引可能不需要遍歷到葉子結點就找到了關鍵字, 而 b+ 樹索引必須遍歷到葉子結點; 對於範圍查詢, b 樹需要重複地中序遍歷, 而 b+ 樹只需要利用葉子結點的鍊錶指標進行遍歷即可. b+ 樹的非葉子結點不存放關鍵字的具體資訊, 只存放指標資訊, 這樣每次讀入記憶體的索引資訊就更多, 從而降低了 i/o 的次數.
b 樹中, 任何乙個關鍵字出現且僅出現在乙個結點中, 而 b+ 樹中, 同乙個數字可能在不同結點中重複出現. 通常 b+ 樹上有兩個頭結點, 乙個指向根結點, 乙個指向關鍵字最小的葉子結點. 根結點的最大元素就是 b+ 樹的最大元素.
myisam 預設支援表級鎖, 不支援行級鎖; 同時 myisam 不支援事務
innodb 預設支援行級鎖, innodb 支援事務. innodb 在沒有用到索引的時候, 使用的是表級鎖, 用到索引的情況下, 使用的是行級鎖.
acid :
atomic :原子性, 事務的操作是原子性的, 要麼執行, 要麼不執行
consistency :資料庫在事務執行的前後狀態保持一致
isolation :乙個事務的執行過程, 對於另乙個事務是不可見的
durability :事務的執行結果是永續性的.
read-uncommitted : 乙個事務對資料庫的修改在未提交之前, 對另乙個事務也是可見的. 解決了更新丟失的問題
read-committed : 乙個事務對資料庫的修改在未提交之前, 對另乙個事務是不可見的. 解決了髒讀的問題
repeatable-read : 在讀取資料時, 不再允許修改操作. 解決了不可重複讀的問題
seriable : 事務序列化執行. 解決了幻讀的問題.
資料庫複習總結
模式 模式可以擁有資料庫中的一切物件,如表,索引,檢視,序列,同義詞 不同的模式可以建立相同的物件名 乙個模式只能指定乙個預設的表空間 表 a 表是以資料行為單位儲存於資料塊中的,oracle 會盡量把同一筆資料放入乙個資料塊中。b 資料行 i.行鏈結的產生 當資料行的資料內容超過了乙個資料塊時,內...
資料庫複習總結
本課程主要講的就是資料庫設計的問題。主要包括模型的設計,儲存方式的設計,以及核心的設計 查詢功能 事務管理器 事務併發控制的實現 首先在設計模型的時候可以分為三層來看,檢視層 邏輯層和物理層,物理層是資料庫管理者也就是像oracle這樣的大型資料庫公司關係的事情,不需要考慮使用者的感受因為這個不是面...
資料庫複習總結(21) 索引
索引 專案大中後期才用 1 是什麼?相當於書的目錄,字典的檢索,實現了資料的快速查詢 2 分類 聚集索引 與實際儲存位置一樣,乙個表中只能有乙個聚集索引,主鍵採用聚集索引 非聚集索引 索引順序與儲存順序不一致。如學生在教室中的位置,可以按年齡進行查詢,也可以按身高進行查詢 3 建索引 介面 右擊表 ...