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

来源: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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...