資料庫基礎知識

2022-02-01 18:03:12 字數 1061 閱讀 3094

資料庫通過某種機制,在並行的多個事務之間進行分隔,使每個事務在其執行過程中保持獨立。

資料庫操作過程中可能出現三種不確定情況:

髒讀取:乙個事務讀取了另乙個並行事務未提交的資料。

不可重複讀取:乙個事務再次讀取之前讀過的資料時,發現該資料已經被另乙個已提交的事務修改。

虛讀:乙個事務重新執行乙個查詢,查詢結果包含因為其他最近提交的事務而產生的新記錄。

為避免上述情況,sql規範定義如下4個隔離等級:

read uncommitted......最低的事務隔離級別,僅僅保證讀取過程中不會讀取到非法資料,這種隔離級別,上述三種情況都可能發生。

read commited......保證乙個事務不會讀到另乙個並行事務已修改但是未提交的資料,也就是說此隔離級別避免了髒讀取,此隔離級別是大多數主流資料 庫的預設事務等級。

repeatable read......此隔離等級避免了髒讀取和不可重複讀取情況,意味著乙個事務不可能更新已經由另乙個事務讀取但未提交的資料。此隔離等級帶來了更多性 能損失,而且可能出現虛讀,如果當前資料庫由應用所獨享,可以通過樂觀鎖達到同樣的目的。

serializable......最高端別的事務隔離,可以規避上述三種情況。邏輯上所有事務都處於乙個執行佇列,依次執行。此事務隔離生產系統中很 少使用,因為會帶來昂貴的效能開銷。

詳細解釋可參見blog.csdn.net/owenzh/archive/2006/03/26/638692.aspx

第一正規化:資料庫表中的每一列都是不可再分的,原子性的。

第二正規化:資料庫表中的非主鍵列必須完全依賴於所有侯選關鍵字,不存在非關鍵字段對任一侯選關鍵字的部分函式依賴。

第四正規化:在乙個多對多的關係中,獨立的實體不能存放在同乙個**中。比如學生和課程是多對多的關係,應該建立三張表,學生表,課程表和學生課程關係表, 而不能把學生和課程儲存在一張表中。

第五正規化:原來的**必須可以通過由它分離出去的**重新構建,使用這個規定的好處是,可以確保不會在分離的**中 引入多餘的列,所有你建立的**結構都與它們的實際需要一樣大。應用這條規定是乙個好習慣,不過除非你要處理乙個非常大型的資料,否則你將不需要用到它。

資料庫基礎知識

資料定義 定義基本表 create table 表名 列名 資料型別 列級完整性約束條件 列名 資料型別 列級完整性約束條件 表級完整性約束條件 後面用到的表 1 學生 表 student 由學號 sno 姓名 sname 性別 s 年齡 sage 所在系 sdept 5個屬性組成,可記為 stud...

資料庫 基礎知識

e r模型 實體 聯絡模型 entity relationship model,e r模型 實體是指現實中區別於其他物件的一種 物體 或一件 事情 例如一名學生,乙個專案等等。同乙個型別中所有的實體被叫做實體集,對應於資料庫的一張表,乙個實體則對應於一條記錄。不同的任務之間,就是通過聯絡關係整合到一...

資料庫基礎知識

一 1 ddl 資料庫定義語句,建立資料表 dml 資料庫操作語言 dcl 資料控制語言 dql 資料查詢語言 2 資料查詢,sql語句 看課堂作業 查詢結果是表。3 聚集函式的一般格式 會使用 distinct all 列名 4 檢視 從乙個或幾個基本表 或檢視 匯出的表,與基本表不同,是乙個虛表...