1. 程式人生 > >1.1 數據庫系統概述

1.1 數據庫系統概述

年齡 多層 滿足 進行 格式化 如果 相同 完整性 mdm

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

1.1 數據庫系統概述