資料庫知識點總概

2021-10-07 17:52:01 字數 1384 閱讀 2325

滿足acid特性的一組操作

acid:

1.原子性:事務被視為不可分割的最小單元,事務的操作要麼全部提交成功,要麼全部失敗回滾。

2.一致性:事務在執行前後保持一致性狀態,所有事務對同一資料的讀取結果是相同。

3.隔離性:乙個事務所作的修改在最終提交之前,對其他事務不可見。

4.永續性:一旦事務提交,則其所作的修改將永遠儲存到資料庫中,即使系統發生崩潰,事務執行的結果也不會丟失。

1.丟失修改:乙個事務的更新操作被另乙個事務的更新操作替換。

2.髒讀:在不同事務下,當前 事務讀取到了另乙個事務修改但是並未提交的資料。

3.不可重複讀:在乙個事務多次讀取同乙個資料集合的時候,出現了讀取資料不相同的情況。

4.幻影讀:在不重複讀的情況下,插入了新的資料。

產生併發一致性問題的主要原因是破壞了事務的一致性,所以通過加鎖來實現併發控制,來保證隔離性。
1.未提交讀:事務中的修改,即使沒有提交,對其他其他事務也是可見的。

2.提交讀:乙個事務只能讀取已經提交的事務所作的修改,即乙個事務所作的修改在提交之前對其它事務是不可見的。

3.可重複讀:保證在同一事務中多次讀取同一資料的結果是一樣的。

4.可序列化:強制事務序列執行,這樣事務之間互不干擾,不會出現一致性問題。

第一正規化:每個列都不可再拆分。

第二正規化:在第一正規化的基礎上,非主鍵列完全依賴於主鍵類,而不能是依賴於主鍵的一部分。即要求資料的每乙個例項或行必須可以被唯一的區分。

第三正規化:在第二正規化的基礎上,非主鍵列只能依賴於主鍵,不依賴於其他非主鍵。

bc正規化:

(1)所有非主屬性對每乙個碼都是完全函式依賴;

(2)所有的主屬性對於每乙個不包含它的碼,也是完全函式依賴;

(3)沒有任何屬性完全函式依賴於非碼的任意乙個組合。

儲存引擎storage engine:mysql中的資料、索引以及其他物件是如何儲存的,是一套檔案系統的實現。

常用的儲存引擎有以下:

innodb引擎:innodb引擎提供了對資料庫acid事務的支援。並且還提供了行級鎖和外來鍵的約束。它的設計的目標就是處理大資料容量的資料庫系統。

myiasm引擎(原本mysql的預設引擎):不提供事務的支援,也不支援行級鎖和外來鍵。

memory引擎:所有的資料都在記憶體中,資料的處理速度快,但是安全性不高。

myisam索引和innodb索引的區別:

innodb索引是聚簇索引,myisam索引是非聚簇索引。

innodb的主鍵索引的葉子節點儲存著行資料,因此主鍵索引非常高效。

myisam索引的葉子節點儲存的是行資料位址,需要再定址一次才能得到資料。

innodb非主鍵索引的葉子節點儲存的是主鍵和其他帶索引的列資料,因此查詢時做到覆蓋索引會非常高效。

資料庫知識點

1.truncate delete和drop delete delete是一行行刪除資料,不影響表結構,並且會記錄日誌,可以進行回滾。truncate 刪除表中所有資料,不記錄日誌,不可以回滾,truncate之後表空間和索引大小會回到初始值。所以truncate之前最好備份 drop 刪除整個表結...

資料庫知識點

資料庫的事務,是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為乙個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程式更加可靠。乙個邏輯工作單元要成為事務,必須滿足所謂的acid 原子性 ...

資料庫知識點

oracle 安裝oracle時需要的所需的軟體包安裝命令 yum install binutils compat libcap1 gcc glibc ksh libaio libgcc libstdc libxi libxtst make sysstat 1 建使用者create user ora...