1. 程式人生 > >Java基礎面試題(15)----資料庫介紹和三正規化

Java基礎面試題(15)----資料庫介紹和三正規化

問題

  • 資料庫介紹
  • 資料庫遵循那些規則
  • 事物的特徵

解析

1. 資料庫介紹

簡單的說,資料庫(英文Dtabase)就是一個存放資料的倉庫,這個倉庫是按照一定的資料結構來組織、儲存的。而各種資料庫之間根據不同的儲存方式,也有不同點用處。

2.資料庫分類

有一種分類方式是將資料路分成關係型資料庫和非關係型資料庫: 關係型資料庫模型是把複雜的資料結構歸結為簡單的二元關係(即二維表格形式)。常見資料庫

  • 關係行資料庫:保持資料一致性方面很強,ACID理論 MySQL,Oracle
  • 非關係型資料庫:高效能、高併發、對資料一致性要求不高 redis, mongdb等

3.關係資料庫三正規化

  • 第一正規化 列資料不可分割 指的是資料庫表的每一列都是不可分割的基本資料項,同一列資料不能有多個值,即實體中的某個屬性不能有多個值或者重複的值
  • 第二正規化 有主鍵 要求資料庫表中的每個行都必須可以被唯一的區分,為實現區分,通常需要位表加上一個列作為住鍵,是儲存各個例項的唯一標識
  • 第三正規化 要求一個數據庫表中不包含一再其他表中已經包含的非關鍵字資訊(主鍵)

這些情況有時候也會例外,有時候為了提高查詢的效率,我們可以設定重複的欄位,比如訂單表和訂單詳情表,單個訂單的總價和訂單中每個商品詳情價格。

4. 事物的特徵

事務是併發控制的單位,是使用者定義的一些列操作,這些操作要麼都做,要麼都不做,是一個不可分割的工作單位。比如銀行轉賬的業務就是個事務,不能出現這邊錢轉出去了,另一邊沒有收到的情況

5. 事務的四個特徵:

  • 原子性:事物內部操作不可分割,是執行的最小單元
  • 一致性:事務執行要麼都成功,要麼都失敗。如果執行失敗了可以進行事務的回滾
  • 隔離性:不通過的事務之間不會相互干擾
  • 永續性:表示事務開始了就不能停止。