1. 程式人生 > >1.1 資料庫系統概述

1.1 資料庫系統概述

# **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>