# **1.1 資料庫系統概述:** ## **1.1.1 資料庫的組成**![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181224232336368.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naG ...
# **1.1 資料庫系統概述:**
## **1.1.1 資料庫的組成**
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181224232336368.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMDMzODE5,size_16,color_FFFFFF,t_70)
## **1.1.2 資料庫系統的特點**
**1、數據結構化**
**2、數據的共用性高,冗餘度低且易擴充**
**3、數據獨立性高**
**4、數據由資料庫管理系統統一管理和控制**
數據的整體結構化是資料庫的主要特征之一
### **整體結構化:**
1、不再僅僅針對某一個應用,而是**<font color=red>面向全組織</font>**
2、不僅數據內部結構化,整體是結構化的,數據之間具有聯繫
3、數據記錄可以變長
4、<font color=red>**數據的最小存取單位是數據項**</font>
數據面向整個系統,可以被多個用戶、多個應用共用使用
### **數據共用的好處**
**1、<font color=red>減少</font>數據冗餘,<font color=red>節約</font>存儲空間**
**2、避免數據之間的<font color=red>不相容性</font>與<font color=red>不一致性</font>**
**3、使系統<font color=red>易於擴充</font>**
### **物理獨立性**
指用戶的應用程式與資料庫中的數據的物理存儲是相互獨立的。當數據的物理地址存儲改變了,應用程式不用改變。
### **邏輯獨立性**
指用戶的應用程式與資料庫的邏輯結構是相互獨立的。數據的邏輯結構改變了,應用程式不用改變。
數據獨立性由資料庫管理系統的二級映像功能來保證。
# **1.2 數據模型**
## **1.2.1 兩類數據模型**
### **數據模型分為兩類:(兩個不同的層次)**
**(1)概念模型**:也稱信息模型,它是按用戶的觀點來對數據和信息建模,用於資料庫設計
**(2)邏輯模型和物理模型:**
1、邏輯模型主要包括網狀模型、層次模型、關係模型、面向對象數據模型、對象關係數據模型、半結構化數據模型等。按電腦系統的觀點對數據建模,用於DBMS實現。
2、物理模型是對數據最底層的抽象,描述數據在內部的表示方式和存取方法,在磁碟或磁帶上的存儲方式和存取方法。
客觀對象的抽象過程:
### **客觀對象的抽象過程:**
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181224232429126.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMDMzODE5,size_16,color_FFFFFF,t_70)
## **1.2.2 概念模型**
**基本要求:**
1、較強的語義表達能力
2、簡單、清晰、易於用戶理解
**概念模型的一種表示方法:**實體-聯繫方法
**實體:**(例如:對象、事件、人)
1、對業務活動很重要的“事物”,我們必須知道該“事物”的數據
2、一個可以列舉出一系列相似事物的名稱
3、通常為名詞
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181224232501559.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMDMzODE5,size_16,color_FFFFFF,t_70)
**實例**:實例是實體的一種具體形式
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/2018122423310547.png)
**屬性**:像實體一樣,屬性用於表示一些對業務活動很重要的信息。(一個屬性只有一個值)
1、描述一個實體
2、量化一個實體
3、限定一個實體
4、為實體分類
5、指定了一個實體
<font color=red>註:一個屬性只有一個值</font>
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181224233014754.png)
**易變屬性**:屬性(如年齡)的值是時常變化的。
**非易變屬性**:屬性(如訂貨日期)則幾乎不變。
**<font color=red>註:如果可以選擇屬性,請使用非易變屬性。(例如:使用出生日期代替年齡)</font>**
**標識符:**具有一個唯一標識符(UID)
UID是一個屬性或多個屬性的組合。
**聯繫**:現實世界中事物內部以及事物之間的聯繫在信息世界中反映為實體(型)內部的聯繫和實體(型)之間的聯繫。
**實體內部的聯繫**:通常是指組成實體的<font color=red>各屬性之間的聯繫。</font>
**實體之間的聯繫**:通常是指<font color=red>不同實體集之間</font>的聯繫。
實體之間的聯繫有<font color=red>一對一</font>、<font color=red>一對多</font>、和多對多等多種類型。
**實體-聯繫方法:**
1、用E-R圖來描述現實世界的概念模型
2、E-R方法也稱為E-R模型
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/2018122423295769.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMDMzODE5,size_16,color_FFFFFF,t_70)
## **1.2.3數據模型的組成要素**
1、**數據結構:**是對系統靜態特性的描述
2、**數據操作**:查詢、更新(包括插入、刪除、修改)
3、**數據的完整性約束條件**:為了<font color=red>**防止不符合規範的數據**</font>進入資料庫,在用戶對數據進行插入、修改、刪除等操作是,DBMS自動<font color=red>**按照一定的約束條件對數據進行監測**</font>,使**<font color=red>不符合規範的數據不能進入資料庫</font>**,以**<font color=red>確保資料庫中存儲的數據正確、有效、相容。</font>**
**① 實體完整性**:規定表的每一行在表中是唯一的實體。(**<font color=red>用主鍵來實現</font>**)
**②域完整性**:是指表中的列必須滿足某種特定的數據類型約束,其中約束又包括取值範圍、精度等規定。(**<font color=red>數據類型來實現</font>**)
**③參照完整性**:是指兩個表的主關鍵字和外鍵字的數據應一致,保證表之間的數據一致性,防止了數據的丟失或無意義的數據在資料庫中擴散。(**<font color=red>用外鍵來實現</font>**)
**④用戶定義的完整性**:針對某個特定關係資料庫的約束條件,它反映某一具體應用必須滿足的語義要求。(**<font color=red>Check或程式來實現</font>**)
## **1.2.4常用的數據模型**
**1、層次模型**:用**<font color=red>樹形結構</font>**來表示各類實體以及實體間的聯繫
特點:結點的雙親是唯一的
只能直接處理一對多的實體聯繫
每個記錄類型可以定義一個排序欄位,也稱為碼欄位
任何記錄值只有按其路徑查看時,才能顯示它的全部意義
沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181224232935964.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMDMzODE5,size_16,color_FFFFFF,t_70)
**2、網狀模型:**
用樹形結構來表示各類實體以及實體間的聯繫
1、允許一個以上的節點無雙親
2、一個節點可以有多於一個的雙親
**3、網狀模型與層次模型的區別:**
1、網狀模型允許多個節點沒有雙親節點
2、網狀模型允許節點有多個雙親節點
3、網狀模型允許兩個節點之間有多種聯繫(複合聯繫)
4、網狀模型可以更直接地描述現實世界
5、層次模型實際上是網狀模型的一個特例
**4、關係模型:**
1、關係:一個關係對應通常說的一張表
2、元組:表中的一行即為一個元組,也叫記錄,行
3、屬性:表中的一列即為一個屬性,給每一個屬性起一個名稱即為屬性名,也叫列或者欄位
4、主碼:也稱碼鍵。表中的某個屬性組,它可以唯一的確定一個元組。(主鍵)
5、域:是一組具有相同數據類型的值的集合。屬性取值範圍來自某個域。(數據類型)
6、值:元組中的一個屬性值。(值)
**<font color=red>關係最基本的規範條件:關係的每一個分量必須是一個不可分的數據項,不允許表中還有表。</font>**
**5、關係的完整性約束條件:**
1、實體完整性
2、域完整性
3、參照完整性
4、用戶自定義的完整性
**優點:**
1、建立在嚴格的數學概念的基礎上
2、概念單一
①實體和各類聯繫都用關係來表示
②對數據的檢索結果也是關係
3、關係模型的存取路徑對用戶透明
①具有更高的數據獨立性,更好的安全保密性
②簡化了程式員的工作和資料庫開發建立的工作
**缺點:**
1、存取路徑對用戶透明,查詢效率往往不如格式化數據模型
2、為提高性能,必須對用戶的查詢請求進行優化,增加了開發資料庫管理系統的難度
# **1.3資料庫系統的結構**
**資料庫系統的結構分為:**
**1、單用戶結構**
**2、主從式結構**
**3、分散式結構**
**4、客戶-伺服器**
**瀏覽器-應用伺服器 / 資料庫伺服器多層結構等**
## **1.3.1資料庫系統模式的概念**
**“型”和“值”的概念:**
**型**:對某一類數據的結構和屬性的說明
**值**:是型的一個具體賦值
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181224232858824.png)
**模式:**
1、資料庫邏輯結構和特征的描述
2、是型的描述,不涉及具體值
3、反映的是數據的結構及其聯繫
4、模式是相對穩定的
**實例:**
1、模式的一個具體值
2、反映資料庫某一時刻的狀態
3、同一個模式可以有很多實例
4、實例隨資料庫中的數據更新而變動
## **1.3.2資料庫系統的三級模式結構**
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181224232821288.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzMDMzODE5,size_16,color_FFFFFF,t_70)
**模式:也稱邏輯模式**
1、資料庫中全體數據的邏輯結構和特征的描述
2、所有用戶的公共數據視圖
<font color=red>一個資料庫只有一個模式</font>
**外模式:(也稱子模式或用戶模式)**
1、資料庫用戶(包括應用程式員和最終用戶)使用的局部數據的邏輯結構和特征的描述
2、資料庫用戶的數據視圖,是與某一應用有關的數據的邏輯表示
**內模式:(也稱存儲模式)**
1、是數據物理結構和存儲方式的描述
2、是數據在資料庫內部的表示方式
<font color=red>一個資料庫只有一個內模式</font>