不管你在開發中是否用得到,作爲一名程序員,不懂數據庫是沒法混的,但是會用數據庫並不能證明你懂數據庫的知識所以小雨建議大家還是抽時間系統的學習一下,今天我給大家簡單的介紹一些數據庫的基礎知識。
一、數據庫系統的組成
數據庫系統是採用數據庫技術的計算機系統,是由數據庫(數據)、數據庫管理系統(軟件)、數據庫管理員等組成。
二、數據模型
常見的數據模型有層次模型、網狀模型、關係模型,下面分別介紹。
1.層次模型
用樹形結構表示實體類型及實體間關係的數據模型稱爲層次模型,它具有如下特點:
·每棵樹有且僅有一個無雙親結點,稱爲根。
·樹中除根外的所有結點有且僅有一個雙親結點。
2.網狀模型
用有向圖結構表示實體類型及實體間聯繫的數據模型稱爲網狀模型。用網狀模型編寫程序極其複雜,數據的獨立性差。
3.關係模型
關係模型以二維表來描述數據的數據模型。 關係模型中,每個表有多個字段和記錄行,每個字段有固定的屬性。關係模型數據結構簡單、清晰、具有很高的數據獨立性,因此是目前主流的數據庫數據模型。
關係模型基本術語:
·關係:一個二維表就是一個關係。
·元組:二維表中的一行,即表中的記錄。
·屬性:二維表中的一列,用類型和值表示。
·域:每個屬性取值變化的範圍。
關係中的數據約束:
·實體完整性約束:約束關係的主鍵中屬性值不能爲空。
·參照完整性約束:關係之間的基本約束。
·用戶定義的完整性約束:反映了具體應用中數據的語義要求。
三、關係數據庫的規範化
關係數據庫中的每一個關係都要滿足一定的規範。根據滿足規範的條件的不同,可分爲5個等級:第一範式(1NF)、第二範式(2NF)、第三範式(3NF)、第四範式(4NF)、第五範式(5NF)。其中,NF是Normal Form的縮寫。一般情況下,只要把數據規範到第三範式標準即可滿足需要。
1.第一範式(1NF)
在一個關係中,消除重複字段,且各自段都是最小的邏輯單位。(無重複屬性)
2.第二範式(2NF)
若關係模型屬於第一範式,則關係中每一個非主關鍵字段都完全依賴於主關鍵字段,不能只依賴於主關鍵字的一部分。(例如有兩個主鍵時,不能有某個屬性只依賴於其中一個)
3.第三範式(3NF)
若關係屬於第一範式,且關係中所有非主關鍵字段都只依賴於主關鍵字段,第三範式要求消除傳遞依賴。(例如學生所在系依賴於學號,系地址又依賴於所在系,則學號對系地址的依賴是通過系來實現的)
四、實體與關係
實體是指客觀存在並可以互相區別的事物。實體既可以是實際的事物,也可以使抽象的概念。實體之間有如下三種關係。
1.一對一關係:是指表A中的一條記錄在表B中有且只有一條相匹配的記錄。在一對一關係中,大部分相關信息都在一個表中。
2.一對多關係:是指表A中的行可以在表B中有許多匹配行,但表B中的行只能在表A中有一個匹配行。
3.多對多關係:是指關係中每個表的行在相關表中具有多個匹配行。在數據庫中,多對多關係的建立是依靠第3個表即連接表實現的。連接表包含兩個表的主鍵列,然後從兩個相關表的主鍵部分分別創建與連接表中的匹配列的關係。
五、數據庫的體系結構
1.數據庫三級模式結構
數據庫的三級模式結構是指模式、外模式和內模式
(1)模式
模式也稱邏輯模式或概念模式,是數據庫中全體數據的邏輯結構和特徵的描述,是所有用戶的公共數據視圖。一個數據庫只有一個模式,處於三級結構的中間層。
(2)外模式
也稱用戶模式,它是數據庫用戶能夠看見和使用的局部數據的邏輯結構和特徵的描述,是數據庫用戶的數據視圖,是與某一應用有關的數據邏輯表示。外模式是模式的子集,一個數據庫可以有多個外模式。外模式是保證數據庫安全的一個有力措施。
(3)內模式
內模式也稱存儲模式,一個數據庫只有一個內模式。它是數據物理結構和存儲方式的描述,是數據在數據庫內部表示方式。
2.三級模式之間的映射
爲了能夠在內部實現數據庫的三級模式的聯繫和轉換,數據庫管理系統在三級模式之間提供了兩層映射,分別是外模式/模式映射和模式/內模式映射。
(1)外模式/模式映射
一個模式可以有多個外模式。對於每一個外模式,數據庫系統都有一個外模式/模式映射。當模式改變時,由數據庫管理員對各個外模式/模式映射做相應的改變,可以使外模式保持不變。這樣,使數據庫外模式編寫的應用程序就不用修改,保證了數據與程序的邏輯獨立性。
(2)模式/內模式映射
數據庫中只有一個模式和內模式,因此模式/內模式映射是唯一的,它定義了數據庫的全局邏輯結構與存儲結構之間的對應關係。當時數據庫的存儲結構改變時,由數據庫管理員對模式/內模式映射做相應的改變,可以使模式不變,相應的應用程序也不做變動。保證了數據與存儲結構的物理獨立性。