MySQL之事務與三大正規化

2022-07-25 19:24:22 字數 1100 閱讀 7989

在mysql中

將一組有序的增刪改操作看做乙個獨立的執行單元,當這一組所有的操作都成功,事務執行成功,如果其中有乙個操作失敗,事務執行回滾。mysql 事務主要用於處理操作量大,複雜度高的資料。

注意:一般來說,事務是必須滿足4個條件(acid):原子性(atomicity)、一致性(consistency)、隔離性(isolation)、永續性(durability)。

事務的回滾:即恢復到事務開始之前的狀態。

如果不考慮事務的隔離性的話,可能會發生的狀態:

在事務之中有四種隔離級別:

讀未提交(read uncommitted):最低的隔離級別,可能會發生任何情況

讀已提交(read committed):可以避免髒讀

重複讀(repeatable read):可以避免髒讀和幻讀

序列化(serializable)最高隔離級別,可以避免任何情況發生

事務的隔離級別越高其效率也就越低。

事務的控制語句:

在mysql中事務處理主要有兩種方法:

1、用 begin, rollback, commit來實現

2、直接用 set 來改變 mysql 的自動提交模式:

注:在 mysql 命令列的預設設定下,事務都是自動提交的,即執行 sql 語句後就會馬上執行 commit 操作。因此要顯式地開啟乙個事務務須使用命令 begin 或 start transaction,或者執行命令 set autocommit=0,用來禁止使用當前會話的自動提交。

在關係型資料庫中存在三大正規化和乙個反正規化:

第一正規化:字段具有原子性。

第二正規化:基於第一正規化,表中的所有資料都要依賴於主鍵。

第三正規化:基於第二正規化,主要是描述多表之間的關係,一張表中不能儲存另一張表的非主鍵的值,以避免冗餘。

反正規化:允許部分字段冗餘 ,降低資料庫查詢的複雜度,提公升查詢效率。

MYSQL三大正規化

第一正規化 確保每列的原子性.如果每列 或者每個屬性 都是不可再分的最小資料單元 也稱為最小的原子單元 則滿足第一正規化.例如 顧客表 姓名 編號 位址 其中 位址 列還可以細分為國家 省 市 區等。第二正規化 在第一正規化的基礎上更進一層,目標是確保表中的每列都和主鍵相關.如果乙個關係滿足第一正規...

MySQL三大正規化

資料庫 的三個正規化 指的是什麼呢?即 屬性唯一,記錄唯一,表唯一。下面我們用一張關係圖來三者之間的關係。第一正規化 1nf 資料庫表中的字段的 屬性都是單一的,不可再分。這個單一屬性由哪些型別組成呢?主要是基本型別構成,包括整型 實數 字元型 邏輯型 日期型等。第二正規化 2nf 資料庫表 中不存...

mysql三大正規化

1.第一正規化 確保資料表中每列 字段 的原子性。如果資料表中每個欄位都是不可再分的最小資料單元,則滿足第一正規化。例如 user使用者表,包含欄位id,username,password 2.第二正規化 在第一正規化的基礎上更進一步,目標是確保表中的每列都和主鍵相關。如果乙個關係滿足第一正規化,並...