資料庫系統原理之資料庫系統概述

来源:https://www.cnblogs.com/QiaoPengjun/archive/2023/03/22/17244935.html
-Advertisement-
Play Games

資料庫系統概述 一、資料庫基本概念 1 數據 數據(Data)是描述事物的符號記錄,是指用物理符號記錄下來的、可以鑒別的信息。 數據以及關於該數據的解釋是密切相關的。 數據的解釋是對數據含義的說明,也稱為數據的語義,即數據所蘊含的信息。 數據與其語義密不可分,沒有語義的數據是沒有意義和不完整的。 數 ...


資料庫系統概述

一、資料庫基本概念

1 數據

數據(Data)是描述事物的符號記錄,是指用物理符號記錄下來的、可以鑒別的信息。

數據以及關於該數據的解釋是密切相關的。

數據的解釋是對數據含義的說明,也稱為數據的語義,即數據所蘊含的信息。

數據與其語義密不可分,沒有語義的數據是沒有意義和不完整的。

數據是信息存在的一種形式,只有通過解釋或處理的數據才能成為有用的信息。

2 資料庫

資料庫(Database,DB)通俗地被稱為存儲數據的倉庫,只是這個倉庫是存儲在電腦存儲設備上的,並且其所存儲的數據是按一定的格式進行存儲的。

若從嚴格意義上講,所謂資料庫是指長期儲存在電腦中的有組織的、可共用的數據集合,且資料庫中的數據按一定的數據模型組織、描述和存儲,具有較小的冗餘度、較高的數據獨立性,系統易於擴展,並可以被多個用戶共用。

資料庫中存儲的數據具有永久存儲、有組織和可共用三個基本特點。

3 資料庫管理系統

資料庫管理系統(Database Management System,DBMS)是專門用於建立和管理資料庫的一套軟體,介於應用程式和操作系統之間。它負責科學有效地組織和存儲數據,並幫助資料庫的使用者能夠從大量的數據中快速地獲取所需數據,以及提供必要的安全性和完整性等統一控制機制,實現對數據有效的管理和維護。

資料庫管理系統主要功能:

  • 數據定義功能:數據定義語言(Data Definition Language,DDL)
  • 數據操縱功能:數據操縱語言(Data Manipulation Language,DML)
  • 資料庫的遠行管理功能
  • 資料庫的建立和維護功能
  • 數據組織、存儲和管理功能
  • 其他功能

4 資料庫系統

資料庫系統(Database System,DBS)是指在電腦中引入資料庫技術之後的系統。

一個完整的資料庫系統包括資料庫、資料庫管理系統及相關實用工具、應用程式、資料庫管理員和用戶。

資料庫管理員(Database Administrator,DBA)不同於普通資料庫用戶,他們是專門負責對資料庫進行維護,並保證資料庫正常、高效運行的人員。

用戶是資料庫系統的服務對象,通常包括程式員和資料庫終端用戶兩類用戶。

程式員通過高級程式設計語言(如SQL)編寫資料庫應用程式,應用程式會根據需要向資料庫管理系統發出適當的請求,再由資料庫管理系統對資料庫執行相應的操作。

終端用戶是從客戶機或聯機終端上以交互方式向資料庫系統提出各種操作請求,並由資料庫管理系統響應執行,而後訪問資料庫中的數據。

一般在不引起混淆的情況下,常常將資料庫系統簡稱為資料庫。

二、數據管理技術的發展

數據管理

  1. 針對組織業務的需要,負責制定並執行整個組織中關於數據的定義、組織、保護與有效使用的策略、過程和計劃
  2. 依靠技術,負責實現數據作為一種資源的集中控制管理

數據組織

  1. 邏輯組織:數據的邏輯組織是用戶或應用程式所使用的數據結構形式
  2. 物理組織:數據在物理存儲設備上的結構形式

檢索:為了向用戶提供信息,存儲的數據要能夠方便地被選擇提取

數據管理的任務:進行數據的收集、組織、控制、存儲、選取、維護,實現在適當的時刻、以適當的形式、給適當的人、提供適當的數據,是數據處理的中心問題

數據處理:對各種數據進行收集、存儲、加工和傳播的一系列活動的總和

數據管理技術的三個階段:

  • 人工管理階段: 20世紀50年代中期以前 批處理
    • 數據不保存
    • 應用程式管理數據
    • 數據面嚮應用:不能共用、存在大量冗餘、數據的獨立性差
  • 文件系統階段:20世紀50年代後期到60年代中期 文件系統 記錄內有結構 整體無
    • 數據的物理獨立性
    • 數據可長期保存和專門管理
    • 數據共用成為可能 文件級共用
    • 存在大量的數據冗餘
  • 資料庫系統階段 20世紀60年代後期以來 資料庫管理系統
    • 數據集成 最大程度共用 冗餘最小
    • 數據共用性高 用戶視圖 併發共用
    • 數據冗餘小 冗餘是受控的
    • 數據一致性
    • 數據獨立性高
    • 實施統一管理與控制
      • 數據的安全性(Security)
      • 數據的完整性(Intergrity)
      • 併發控制(Concurrency)
      • 故障恢復(Recovery)
    • 減少應用程式開發與維護的工作量

數據獨立:數據定義與使用數據的應用程式分離(邏輯獨立、物理獨立)

三、資料庫系統的結構

數據系統(資料庫管理員(DBA視角)):

  • 內部系統結構
    • 三級模式結構
  • 外部系統結構
    • 集中式結構
    • 分散式結構
    • 並行結構

數據系統(資料庫應用的用戶(如應用程式的編寫人員視角)):

  • 客戶/伺服器結構
  • 瀏覽器/伺服器結構

資料庫系統的三級模式結構

  • 模式(Schema)
  • 外模式(External Schema)
  • 內模式(Internal Schema)

1 模式

模式:也稱為概念模式或邏輯模式,是資料庫中全體數據的邏輯結構和特征的描述,是所有用戶的公共數據視圖。

DBMS提供模式描述語言(Schema DDL)來嚴格地定義模式,不僅要定義數據的邏輯結構,還要定義數據之間的聯繫,定義與數據相關的安全性、完整性等要求。

2 外模式

外模式:也稱為子模式(Subschema)或用戶模式,是資料庫用戶(包括應用程式員和最終用戶)能夠看見和使用的局部數據的邏輯結構和特征的描述,是與某一應用有關的數據的邏輯表示。

外模式實際上是用於滿足不同資料庫用戶需求的數據視圖,即用戶視圖,其通常是模式的子集,是對資料庫整體數據結構的局部重構。

DBMS提供來子模式描述語言(Subschema DDL)來嚴格地定義子模式。

3 內模式

內模式:也稱為存儲模式(Storage Schema),是對資料庫中數據物理結構和存儲方式的描述,是數據在資料庫內部的表示形式。

內部視圖 存儲視圖

DBMS提供內模式描述語言(內模式DDL,或者存儲模式DDL)來嚴格地定義內模式,即定義所有內部記錄類型、索引和文件的組織方式,以及所有數據控制方面的細節。

4 三級模式結構的兩層映像與數據獨立性

  1. 一個資料庫的整體邏輯結構和特征的描述(概念模式)是獨立於資料庫其他層次結構(內/外模式)的描述,其是資料庫的核心,也是資料庫設計的關鍵。
  2. 一個資料庫的內部存儲模式依賴於概念模式,但存儲模式獨立於外部模式,也獨立於具體的存儲設備。
  3. 用戶邏輯結構(外模式)是在全局邏輯結構描述的基礎上定義的,它是面向具體的應用程式,獨立於內部模式和存儲設備。
  4. 特定的應用程式是在外模式的邏輯結構上編寫的,它依賴於特定的外模式,與資料庫的模式和存儲結構獨立。
(1)外模式/模式映像

映像:一種對應規則,指出映像雙方是如何進行轉換的。

數據與程式的邏輯獨立性

(2)模式/內模式映像

唯一的

數據與程式的物理獨立性

資料庫系統的運行與應用結構

1 客戶/伺服器結構

客戶/伺服器(Client/Server,C/S)模式

單機方式 網路方式

2 瀏覽器/伺服器結構

三層客戶/伺服器結構

表示層

處理層 中間層

瀏覽器/伺服器(Browser/Server,B/S)模式

四 數據模型

模型(Model)是現實世界特征的模擬和抽象表達,其有助於人們更好地認識和理解客觀世界中的事物、對象、過程等感興趣的內容,例如汽車車模、飛機航模、建築圖紙、軍事沙盤等。

我們常使用數據模型(Data Model)這個工具來模擬和抽象現實世界中的數據特征。

數據模型也是一種模型,它是對現實世界數據特征的抽象,描述的是數據的共性內容。

1 數據特征與數據模型組成要素

數據具有靜態和動態兩種特征:

  • 靜態特征:數據的基本結構、數據間的聯繫以及對數據取值範圍的約束
  • 動態特征:對數據可以進行符合一定規則的操作

對現實世界數據特征進行抽象的數據模型,需要描述數據的靜態特征與動態行為,併為數據的表示和操作提供框架。

數據模型是用來描述數據的結構、定義在結構上的操縱以及數據間的約束的一組概念和定義。

數據模型通常由數據結構、數據操作和數據約束三個要素組成。

(1)數據結構

數據結構描述的是系統的靜態特性,即數據對象的數據類型、內容、屬性以及數據對象之間的聯繫。

層次結構、網狀結構、關係結構

層次模型、網狀模型、關係模型、面向對象模型

(2)數據操作

數據操縱描述的是系統的動態特性,是對各種對象的實例允許執行的操作的集合,包括操作及有關的操作規則。

數據操作:

  • 更新
    • 插入
    • 刪除
    • 修改
  • 檢索

(3)數據約束

數據約束描述數據結構中數據間的語法和語義關聯,包括相互制約與依存關係以及數據動態變化規則,以保證數據的正確性、有效性與相容性。

數據約束:

  • 數據完整性約束
  • 數據安全性約束
  • 併發控制約束

2 數據模型的分類

數據模型應滿足三個方面的要求:

  • 能比較真實地模擬現實世界
  • 容易為人們所理解
  • 便於在電腦上實現

逐步抽象

現實世界客觀對象 —抽象—> 信息世界某一種信息結構(概念級的模型) —轉換、組織—> 機器世界某一資料庫管理系統支持的數據模型

數據模型是模型化數據和信息的工具,也是資料庫系統的核心和基礎。

概念層數據模型

概念層是數據抽象級別的最高層,其目的是按用戶的觀點來對世界建模。

概念層數據模型,也稱為數據的概念模型(Conceptual Model)或信息模型,它用來描述現實世界的事物,與具體的電腦系統無關,且獨立於任何DBMS,但容易向DBMS所支持的邏輯數據模型轉換。

這類模型主要用於資料庫的設計階段,即在設計資料庫時,通常用概念模型類抽象、表示現實世界的各種事物及其聯繫。

(1)信息世界中的基本概念
  • 實體(Entity):客觀存在並可相互區別的事物稱為實體。
  • 屬性(Attribute):實體所具有的某種特性稱為實體的屬性。一個實體可以由多個屬性來描述。
  • 碼或鍵(Key):可唯一標識實體的屬性集稱為碼或鍵。
  • 域(Domain):屬性的取值範圍稱為該屬性的域。
  • 實體型(Entity Type):具有相同屬性的實體必然具有共同的特征和性質。用實體名域屬性名集合來抽象和刻畫同類實體,稱為實體型。
  • 實體集(Entity Set):同型實體的集合稱為實體集。
  • 聯繫(Relationship):在現實世界中,事物內部以及事物之間是有聯繫的,這些聯繫在信息世界中反映為實體(型)內部的聯繫和實體(型)之間的聯繫。

實體內部的聯繫通常是指實體各屬性之間的聯繫。

實體之間的聯繫是指不同實體之間的聯繫。

在數據模型中有“型”(type)和“值”(value)兩個不同的概念。

“型”指的是對某一類數據的結構和屬性的說明。

“值”是型的一個具體的賦值。

(2)概念模型的表示方法

概念模型的表示方法中最為常用的是P.P.S.Chen於1976年提出的實體-聯繫方法(Entity-Relationship approach)。

該方法用E-R圖(E-R diagram)來描述現實世界的概念模型,E-R方法也稱為E-R模型(E-R Model)。

E-R圖提供了表示信息世界中實體、屬性和聯繫的方法。

邏輯層數據模型

邏輯層是數據抽象的中間層,描述數據整體的邏輯結構。

邏輯層數據模型:也稱為數據的邏輯模型(Logical Model),是用戶通過資料庫管理系統看到的現實世界,是基於電腦系統的觀點來對數據進行建模和表示。

  • 層次模型(Hierarchical Model)

    • 資料庫系統最早使用的一種數據模型
    • 數據結構是一顆“有向樹”
    • 樹的每個結點對應一個記錄集,也就是現實世界的實體集
    • 特點:有且僅有一個結點沒有父結點,它稱作根結點;其他結點有且僅有一個父結點
    • 難以表達實體之間比較複雜的關係
  • 網狀模型(Network Model)

    • 以網狀結構表示實體與實體之間的聯繫
    • 層次模型的擴展,允許結點有多於一個父結點,並可以有一個以上的結點沒有父結點
    • 可以方便地表示實體間各種類型的聯繫,即可以表示從屬的關係,也可以表示數據間的交叉關係,但結構複雜,實現的演算法難以規範化
  • 關係模型(Relational Model)

    • 關係模型是用二維表結構來表示實體及實體間聯繫的模型,並以二維表格的形式組織資料庫中的數據
    • 關係模型是建立在嚴格的數學概念的基礎上的
    • 關係模型的概念單一,統一用關係來表示實體以及實體之間的關係,對數據的檢索和更新結果同樣也是用關係(即表)來表示。
    • 關係模型的存取路徑對用戶透明,從而具有更高的數據獨立性、更好的安全保密性,也簡化了程式員的工作和資料庫開發建立的工作
  • 面向對象模型(Object Oriented Model)

    • 面向對象方法與資料庫相結合所構成的數據模型
    • 面向對象模型既是概念模型又是邏輯模型
    • 面向對象數據模型用面向對象觀點來描述現實世界實體的邏輯組織、對象間的聯繫,其表達能力豐富,具有對象可復用、維護方便等優點,是正在發展的數據模型,也是資料庫的發展方向之一

物理層數據模型

物理層數據模型,也稱為數據的物理模型(Physical Model),其描述數據在存儲介質上的組織結構,是邏輯模型的物理實現,即每一種邏輯模型在實現時都有與其相對應的物理模型。

物理模型是資料庫最底層的抽象,它確定數據的物理存儲結構、數據存取路徑以及調整、優化資料庫的性能。

物理模型的設計目標是提高資料庫性能和有效利用存儲空間。

資料庫設計人員:現實世界 ——> 概念模型的轉換

資料庫設計人員/資料庫設計工具協助設計人員:概念模型 ——> 邏輯模型的轉換

資料庫管理系統:邏輯模型 ——> 物理模型的轉換

本文來自博客園,作者:QIAOPENGJUN,轉載請註明原文鏈接:https://www.cnblogs.com/QiaoPengjun/p/17244935.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 組織類 1.1. 每一個介面、類、結構體和枚舉均應當擁有其自身的獨立源文件 1.2. Pascal命名方法命名命名空間 1.3. 測試類定義在獨立的程式集 1.3.1. 不同程式集的測試放在不同程式集 1.3.2. 程式集名稱的最後附加Tests命名空間 1.4. 公司名稱、產品名稱和縮寫辭彙 ...
  • 網上有很多關於使用win10-ssh客戶端登錄linux-ssh服務端的介紹,但很少介紹多台win10-ssh服務端之間互訪的。以下記錄如何免密登錄win10-ssh服務 根據微軟文檔描述,適用於Windows 10 1809 或 Windows Server 2019以上版本 以下內容如果無特別說 ...
  • 故障問題:由於vSphere虛擬化平臺中的一臺VM虛擬機MAC地址與另一VC中的VM衝突需要修改,在VC中刪除VM的網卡並重新添加一張新的虛擬網卡之後,在VM的RHEL系統中配置網卡IP網關之後,發現IP能正常起,但網關無論如何都無法生效,使用ip r命令無法查看到網關。檢查/etc/sysconf ...
  • 前言 Redis之所以被廣泛使用,不只是因為它快,還因為它除了支持最簡單的字元串(String)類型外,它還支持好幾種數據類型: 哈希(Hash) 列表(List) 集合(Set) 有序集合(Sorted Set) 點陣圖 ( Bitmap ) String String為最簡單的類型,一個key對應 ...
  • 一、使用VMware安裝Ubuntu虛擬機 在Linux系統各個發行版中,Ubuntu系統在服務端和桌面端使用占比最高,網路上資料最是齊全,所以這裡使用Ubuntu LTS。 整體的系統安裝文件較大(>1G),這裡採用了迅雷加速下載。迅雷下載地址:下載迅雷工具 下載地址:Download Ubunt ...
  • 網站需求:請給openlab搭建web網站 1.基於功能變數名稱www.openlab.com可以訪問網站內容為 welcome to openlab!!! 2.給該公司創建三個子界面分別顯示學生信息,教學資料和繳費網站,基於www.openlab.com/student 網站訪問學生信息,www.open ...
  • 實驗要求: 1、建立DNS伺服器,負責解析的域為openedu.com 2、要求將MX記錄指向mail.openedu.com,且對應A記錄為本機IP 3、要求將NS記錄指向ns1.openedu.com,且對應A記錄為本機IP 4、建立www的A記錄指向本機IP; 建立ftp對應A記錄為x.x.x ...
  • MySQL基礎:多表查詢 多表關係 概述 ​ 項目開發中,在進行資料庫表結構設計時,會根據業務需求及模塊之間的關係,分析並設計表結構,由於業務之間相互關聯,所以各個表結構之間也存在著各種聯繫,基本上分為三種: 一對多(多對一) 多對多 一對一 一對多(多對一) 案例:部門與員工的關係 關係:一個部門 ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...