數據庫


數據庫

標簽(空格分隔): 復試

1 初識數據庫

1.1 數據庫的四個概念

  • 數據

數據庫中存儲的基本對象,描述事務的符號記錄,數據的含義稱為數據的語義,數據與其語義是密不可分的。

  • 數據庫

長期存儲在計算機中、有組織的、可共享的大量數據集合; 其基本特征為:數據庫中的數據按照一定的數據模型組織、描述和存儲具有較小的冗余度(Redundancy)、較高的數據獨立性和易擴展性、並可為各種用戶共享。

  • 數據庫管理系統

用於科學的組織和存儲數據如何高效的獲取和維護數據,完成這個任務的就是-數據庫關系系統。
其位於用戶應用與操作系統之間的一層數據管理軟件;數據庫管理系統和操作系統都是計算機的基礎軟件,是一個大型復雜的軟件系統;

數據定義功能:數據庫管理系統提供數據定義語言(Data Definition Language,DDL),用戶可以通過它方便的對數據庫中的數據對象的組成和結構進行定義。(感覺就像創建表?)

數據組織、存儲和管理:數據庫管理系統要分類組織、存儲和管理各種數據,包括數據字典、用戶數據、數據的存取路徑等。要確定以何種文件結構和存取方式在存儲級上組織這些數據,如何實現數據之間的聯系。數據組織和存儲的基本目標是提高空間利用率和方便存取,提供多種存取方法(索引查找、hash查找、順序查找等)來提高存取效率。

數據操縱功能:數據庫管理系統還提供數據操縱語言(Data Manipulation Language,DML),用戶通過他實現對數據庫的增刪改查。

  • 數據庫系統

在計算機系統引入數據庫后的系統構成;在不引起混餚的情況下常常把數據庫系統簡稱為數據庫。其包括數據庫、數據庫管理系統、應用程序、數據庫管理員(Database Administrator)

  • Question:什么是數據的語義?為什么數據與其語義是不可分的。

單純的一個數據是沒有任何意義的,例如100 其可以是價格、體重等。我們需要在一定的語義條件下使用這個數字才可以完整的提供該條記錄的意思。所以數據和語義是密不可分的。

  • Question:區分數據庫和數據庫管理系統

數據庫:長期存儲在計算機中有組織、可共享的大量數據集合其按照一定的數據模型組織、描述和存儲;可為各種用戶共享使用,冗余度較小,易擴展,數據獨立性高。 相對而言數據庫是一個實體倉庫,用於有規律的存儲數據。數據合起來就是數據庫了。
數據庫管理系統:其是一個操縱和管理數據庫的大型軟件,適用於建立、使用和維護數據庫的軟件,他對數據進行科學的組織和存儲,高效的獲取和維護數據並提供事務管理等功能。

1.2 數據庫系統的特點

  • 數據結構化

不僅單個表內部有結構且不同的表之間也有着不同的結構。

  • 數據共享性高、冗余度地且易擴充

共享性高的話冗余度就較低節約存儲空間,避免數據之間的不相容性和不一致性

  • 數據獨立性高
  • 數據由數據庫管理系統統一管理和控制

2 數據模型和概念模型的組成要素

2.1 數據模型

數據模型是對現實世界數據特征的抽象,通俗的講就是對現實世界的模擬,數據模型是數據庫系統的核心和基礎

2.1.1 概念模型(信息模型)

按照用戶的觀點來對數據和信息建模,用於數據庫設計。是現實世界到機器世界的一個中間層次,是數據庫設計人員和用戶之間進行交流的語言。概念模型應該有較強的語義表達能力,簡單、清晰並易於用戶理解。

2.1.2 邏輯模型和物理模型

邏輯模型主要包括網狀模型、層次模型、關系模型、面向對象數據模型、對象數據關系模型、半結構化數據模型等。

物理模型是對數據最底層的抽象,描述數據在系統內(磁盤上)的表示方式和存取方法。

2.2 信息世界的基本概念

  1. 實體Entity

客觀存在並可相互區別的事務成為實體,可以是具體的人、事、物或抽象的概念。

  1. 屬性

實體所具有的某一特性稱為屬性,一個實體可以由若干個屬性來刻畫。

實體的唯一標識碼。

  1. 實體型

用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型。

  1. 實體集

同一類型實體的集合成為實體集。

  1. 聯系

現實世界中事物內部以及事物之間的聯系在信息世界中反映為實體內部的聯系和實體之間的聯系。

實體內部的聯系:是指組成實體的各屬性之間的聯系
實體之間的聯系:通常是指不同的實體集之間的聯系。
實體之間的聯系有:一對一、一對多、和多對多。

2.3 概念模型

概念模型的一種表示方法:實體-聯系法(Entity-Relationship Approach)

  • 用E-R圖來描述現實世界的概念模型
  • E-R方法也成為E-R模型。

數據模型是嚴格定義的一組概念的集合

精確的描述了系統的靜態特性,動態特性和完整性約束條件。

數據模型由三部分組成

數據結構 - 描述系統的靜態特性
數據操作 - 描述系統的動態特性
完整性約束

2.3.1 數據的完整性約束條件

  • 完整性規則:給定的數據模型中數據及其聯系所具有的制約和依存規則
  • 用以限定符合數據模型的數據庫狀態以及狀態的變化,以保證數據的正確、有效和相容。

2.4 數據結構

刻畫數據模型性質的重要方面

用數據結構的類型來明明數據模型

層次結構-層次模型;網狀結構-網狀模型;關系結構-關系模型。

2.5 層次模型

常用的數據模型

模型 類型
層次模型 格式化模型
網狀模型 格式化模型
關系模型
面向對象數據模型 對象數據模型
對象關系數據模型 對象數據模型
半結構化數據模型
非結構化數據模型

層次模型用樹形結構來表示各類實體以及實體之間的聯系。

表示方法:

實體型:用記錄類型描述,每個節點表示一個記錄類型(實體)。
屬性: 用字段描述,每個記錄類型可以包含若干個字段。
聯系:用節點之間的連線表示記錄類型之間的一對多的父子關系。

層次模型的定義:

滿足下面兩個條件的基本層次聯系的集合為層次模型。一:有且僅有一個節點沒有雙親結點,這個節點稱為根節點;二:根以外的其他節點有且只有一個雙親結點。

特點

  • 節點的雙親是唯一的。
  • 只能記錄一對多的實體聯系
  • 任何記錄值只能按照其路徑查看
  • 沒有一個子女記錄紙能夠脫離雙親存在。

層次模型的完整性約束條件

  • 無相應的雙親節點值就不能插入子女節點值。
  • 如果刪除雙親節點值,則相應的子女節點值也同時被刪除。
  • 更新操作時,應該更新所有相應的記錄,以保證數據一致性。

優點:

  • 層次模型的數據結構比較清晰簡單
  • 查詢效率高,性能優於關系模型,不低於網狀模型。
  • 層次數據模型提供了良好的完整性支持。

缺點:

  • 節點之間的多對多聯系表示不自然
  • 對摻入和刪除操作的限制多,應用程序的編寫比較復雜。
  • 查詢子女節點必須通過雙親結點。
  • 層次數據庫的命令趨於程序化。

2.6 網狀模型

網狀數據庫系統采用網狀結構來表示各類實體以及實體間的聯系。

表示方法(與層次數據模型相同):

  • 實體型:用記錄類型描述,每個節點表示一個記錄類型。
  • 屬性:用字段描述,每個記錄類型可包含若干個字段。
  • 聯系:用節點之間的連線表示記錄類型之間的一對多的父子聯系。

網狀模型的定義

  1. 允許一個以上的節點無雙親;
  2. 一個節點可以有多於一個的雙親。

我自己用的多對多也就是這邊的通過中間表做到的。

2.7 關系模型

關系數據庫采用關系模型作為數據的組織方式
數據庫廠商推出的數據庫管理系統幾乎都支持關系模型。
在用戶的觀點下,關系模型中的數據的邏輯結構是一張二維表。

  • 關系Relation - 一個關系對應通常說的一張表。
  • 元組Tuple - 表中的一行即為一個元組。
  • 屬性 - 表中的一列即為一個屬性,給每一個屬性起一個名稱即為屬性碼。
  • 主碼Key - 也稱碼鍵,表中的某個屬性組,它可以唯一確定一個元組。
  • 域Dimain - 是一組具有相同數據類型的值的集合,屬性的取值范圍來自某個域。
  • 分量 - 元組中的一個屬性值。
  • 關系模式 - 對關系的描述。
  • 非規范關系 - 表中有表

存取路徑對用戶隱蔽,用戶只需要指出找什么,而不必詳細說明怎么找。這樣提高了數據獨立性,提高了用戶生產率。

優點:

  • 建立在嚴格的數學概念上
  • 概念單一
  • 實體和各類聯系都用關系來表示
  • 對數據的檢索結果也是關系
  • 關系模型的存取路徑對用戶透明
  • 具有更高的數據獨立性
  • 簡化了程序員的工作和數據庫開發建立的工作

缺點:

  • 存取路徑對用戶透明,查詢效率往往不如格式化數據模型。
  • 為提高性能必須對用戶的查詢請求進行優化,增加了開發數據庫管理系統的難度。

3. 數據庫系統的結構

從數據庫應用開發人員角度看:
數據庫采用三級模式結構,是數據庫內部的系統結構。

從數據庫最終用戶角度看,數據庫系統的結構有:

  • 單用戶結構
  • 主從式結構
  • 分布式結構
  • 客戶-服務器
  • 瀏覽器-應用服務器/數據庫服務器

3.1 數據庫系統模式的概念

數據庫模型中有“型”和“值”的概念。 型是指對某一類數據的結構和屬性的說明,值是型的一個具體賦值。

模式(Schema)是數據庫中全體數據的邏輯結構和特征的描述,它僅僅涉及型的描述,不涉及具體的值。模式的一個具體值稱為模式的一個實例(Instance)。同一個模式可以有很多實例。

模式是相對穩定的,實例是相對變動的。

3.2 數據庫系統的三級模式結構

模式也成為邏輯模式,是數據庫中全體數據的邏輯結構和特征的描述,是所有用戶的公共數據視圖。它是數據庫系統模式結構的重金曾,及不涉及數據的物理存儲細節和應盡環境又與具體的應用程序、所使用的應用咯愛飯工具及高級程序設計語言無關。

3.2.1 外模式

外模式也成為子模式或用戶模式,他是數據庫用戶能夠看見和使用的局部數據的邏輯結構和特征的描述,是數據庫用戶的數據視圖是與某一應用有關的數據的邏輯表示。 外模式是保證數據庫安全性的一個有力措施。每個用戶只能看見和訪問所對應的外模式中的數據,數據庫中的其余數據是不可見的。

3.2.2 內模式

內模式被稱為存儲模式,一個數據庫只有一個內模式。他是物理存儲結構和存儲方式的描述,是數據在數據庫內部的組織方式。

4 數據庫的二級映像功能和數據獨立性。

數據庫的三級模式提供了兩層映像功能:外模式/模式影響和模式/內模式映像。 正是這兩層映像保證了數據庫系統中的數據能夠具有較高的邏輯獨立性和物理獨立性。

4.1 外模式/模式映像

模式描述的是數據的全體邏輯結構,外模式描述的是數據的局部邏輯結構。對應於同一個模式可以有任意多個外模式。對於每一個外模式,數據庫系統都有一個外模式/模式映像,它定義了外模式和模式之間的對應關系,這些影響定義通常包含在各自外模式的描述之中。

當模式改變的時候(增加新的關系、新的屬性、改變屬性的數據類型等),有數據庫管理員對各個外模式/模式的映像做出相應改變,可以使外模式保持不變,應用程序是一句數據的外模式編寫的,從而應用程序不必修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性

4.2 模式/內模式映像

數據庫中只有一個模式,也只有一個內模式。所以模式/內模式映像是唯一的,它定義了數據全局邏輯結構和存儲結構之間的對應關系。例如,說明邏輯記錄和字段在內部是如何表示的,該影響定義通常包含在模式描述中。當數據庫的存儲結構發生改變時,由數據庫管理員對模式/內模式映像做出相應改變,可以使模式保持不變,從而應用程序也不必發生改變。保證了數據與程序的物理獨立性,簡稱數據的物理獨立性

Question

概念模型的基本概念 \ 關系數據模型的相關概念 \ 數據庫三級模式和兩級映像的體系結構 \ 數據庫系統的邏輯獨立性和物理獨立性等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM