第一章-緒論

来源:https://www.cnblogs.com/Mr-shne/archive/2022/09/24/16721697.html
-Advertisement-
Play Games

1.1 資料庫系統概述: 1.1.1資料庫的4個基本概念 資料庫的四個基本概念 - 數據 - 資料庫 - 資料庫管理系統 - 資料庫系統 數據:數據是資料庫中存儲的基本對象 數據是描述事物的一個符號,可以描述數字、圖形、聲音、語言等待,但都要經過數字化後存入計算器 資料庫(簡稱DB):資料庫是長期存 ...


1.1 資料庫系統概述:

  • 1.1.1資料庫的4個基本概念

  • 資料庫的四個基本概念 - 數據 - 資料庫 - 資料庫管理系統 - 資料庫系統
  • 數據:數據是資料庫中存儲的基本對象
    • 數據是描述事物的一個符號,可以描述數字、圖形、聲音、語言等待,但都要經過數字化後存入計算器
  • 資料庫(簡稱DB):資料庫是長期存儲在電腦內,有組織、可共用的大量數據的集合
    • 有組織:統一存放,如全部在D盤,全部在E盤
    • 可共用:可以多個程式員使用,共同使用
  • 資料庫管理系統(簡稱DBMS):資料庫管理系統的作用就是,科學地組織和存儲數據,高效地獲取和維護數據
    • 資料庫管理系統的主要功能:
      • 數據的定義:DMBS提供數據定義語言(簡稱DML),用戶可以通過它方便地對數據中的數據對象進行定義
      • 數據組織、存儲和管理:DBMS要分類組織、存儲和管理各種數據,包括數據字典、數據、數據的存儲路徑
      • 數據操縱功能:用戶可以使用DMBS提供的DML對資料庫進行增刪改查等基本操作
      • 資料庫的事務管理和運行管理:資料庫中建立、運用和維護時由資料庫管理系統統一管理、統一控制,以保證數據的安全性、完整性、多用戶數據併發性以及發生故障後的系統恢復
      • 資料庫的建立和維護功能:資料庫初始數據輸入、轉換功能,資料庫的存儲、資料庫的重組織功能和性能監視、分析功能等
  • 資料庫系統(簡稱DBS ):資料庫系統一般由於資料庫,資料庫管理系統、應用系統、資料庫管理員構成
    • 資料庫系統在電腦中屬於在:基礎軟體普通  
    •    
  • 1.1.2數據管理技術的產生和發展 

  • 資料庫管理技術經歷了:人工管理、文件系統、資料庫系統3個階段
  • 為什麼會有不同的數據管理階段? 因為依據的電腦的發展階段,從沒有電腦操作系統到有文件系統在到資料庫管理系統
  • 人工管理特點:
    • 數據不保存(因為當初是用紙帶來表示0和1,電腦讀取完就完了,怎麼可能保存)
    • 應用程式管理數據(程式和數據綁定,程式沒了數據就沒了,不是分開執行) 
    • 數據不共用(都不能保存,怎麼共用)
    • 數據不具有獨立性(因為數據和程式是綁定在一起的)
  • 人工管理缺點:數據的邏輯結構或管理結構發生變化後,必須對程式做向右的修改,加最了程式員的負擔   
  • 文件系統特點:
    • 數據可以長期保存(可以保存到電腦的文件裡面)
    • 由文件系統管理數據  
  • 文件系統缺點:
    • 數據共用差,冗餘度大(如:可能一個文件系統只能一個程式員使用,文件和文件中不能共用,冗餘:文件中的相同欄位過度重覆)
    • 數據獨立性性差
  • 資料庫系統特點:
    • 數據結構化(如:學生管理系統,學生的個人信息按一定的結構保存起來,學生的選課按一定的結構保存起來)
    • 數據共用性高,冗餘低,易擴充
    • 數據獨立性高
    • 數據由DBMS統一管理和控制  

1.2數據模型

      什麼是數據模型?對現實世界數據特征的抽象(如:觀察某個事物的特征,按照它的特征去建立一個模型,在按照整個模型去創建資料庫)

  • 1.2.1兩類數據模型
  • 資料庫模型應滿足三個方面要求:
    • 能比較真實地模擬現實世界
    • 容易為人理解(如:技術的模型的欄位,要看了就知道,姓名就是姓名,不用用abc去使用)
    • 便於在電腦上實現(如:二維表就容易實現,二維表拆分了就不容易實現) 
  • 根據模型應用的不同目的,可以分為兩類:
    • 第一類概念模型:
      • 概念模型也稱信息模型,它是按用戶的觀點來對數據和信息建模,主要用於資料庫設計
      • (這一階段,就是按照用戶對信息的理解來建設資料庫)
    • 第二類是邏輯模型和物理模型:
      • 邏輯模型:邏輯模型保包含了層次模型(樹一樣的)、網狀模型、關係模型、面向對象模型和對象關係模型等。它是按電腦系統的觀點的數據建模,主要用於DBMS的實現
      • 物理模型:物理模型是對數據最底層的抽象,它描述數據在系內部的表示方式和採取方法,在磁碟或磁帶上的存儲方式和採取是面向電腦系統的
  • 1.2.2數據模型的組成要素

  • 數據模型通常由數據結構、數據操作和完整性約束三部分組成
  • 數據結構:數據結構描述數據的組成對象以及對象之間的聯繫,數據結構是所描述的想類型的集合,是對系統靜態特征的描述
  • 數據操作:資料庫主要由查詢和更新(插入、刪除、修改)兩大類操作。數據操作是都對系統動態特征的描述
  • 完整性約束:數據的完整性約束條件是一組完整性規則
    • 例:在某表中,張三的id是001,就不能在另一個表001是李四
    • 例:在關係模型中,任何關係必須滿足實體完整性和參照完整性兩個條件*(實體完整性是:唯一標識(key))
  • 1.2.3概念模型

  • 概念模型是現實世界到機器世界的一個中間層,表現為:(機器世界 == 電腦)
    • 概念模式用於信息世界的建模
    • 現實世界到信息世界的第一層抽象
    • 資料庫設計人員進行資料庫設計的有力工具
    • 資料庫設計人員和用戶之間進行交流的語言
    • 概念模型要求:
      • 具有較強的語義表述能力
      • 能夠方便、直接的表述應用中的各種語義知識
      • 簡單、清晰、易於用戶理解
  • 信息世界中的基本概念:
    • 實體:客觀存在並相互區別的事物稱為實體。實體可以是具體的事、物,也可以是抽象的概念或聯繫
      • 例:一個學生、一個部門、一門課、選擇等都是實體
    • 屬性:實體所具有的某一個特征稱為屬性,一個實體有若幹個屬性
      • 例:一個學生實體,它是由,學號、姓名、性別等屬性組合構成
    • 碼(關鍵字):唯一標識實體的屬性集稱為碼
      • 例:通過該碼能確定一條信息,如身份證就能確定某個人
    • 域:域是一組具有相同數據類型的值的集合。屬性的取值範圍來自某個域
      • 例:學號的域為8位整數,學生年齡的域為整數,性別的域是男和女
    • 實體型:具有相同屬性的實體,必然具有共同的特征和性質,用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型
      • 例:學生都有姓名、年齡、學號,張三有李四有,把它們都有的特征歸納,為學生就是一個實體型
        • 說白了就是把公共的取出來,形成一個共同有的實體
    • 實體集:同一類型的集合稱為實體集
      • 例:全體學生就是一個實體集
    • 聯繫:在現實世界中,事物內部以及事物之間是有聯繫的,這些聯繫在信息世界在反映為實體(型)內部的聯繫和實體(型)之間的聯繫
      • 實體內部的聯繫通常是指組成實體的各屬性之間的聯繫,實體之間的聯繫通常是指不同實體集之間的聯繫
      • 例:老師教學生是一種聯繫(不同實體集的聯繫),班長管學生是一種聯繫(同一類的聯繫)
  • 兩個實體型之間的聯繫:
    • 一對一聯繫:
      • 實體集(A)中每一個實體,實體集B中至多有一個(也可以沒有),實體之間的聯繫
      • 例:一個班只有一個班長 就是一對一(實體A就是班級 實體B就是班長) 
    • 一對多聯繫(1:n):
      • 實體集(A)中的每一個實體,和實體集(B)中的多個實體(也可以沒有)與之聯繫
      • 例:一個班有多個學生 就是一對多(實體A就是班級 實體B就是學生)
    • 多對多聯繫(m:n):
      • 實體集(A)中的每一個實體,實體集(B)中有n個實體與之聯繫,分之實體集(B)中每一個實體和實體集(A)中有n個實體與之聯繫
      • 例:一門課程有若幹個學生選修,而每一個學生可以同時選修多門課程 (實體A就是課程 實體B就是學生,反之
  • 兩個以上的實體型之間的聯繫:
    • 兩個以上的實體型之間也存在一對一,一對多,多對多聯繫
    • 一對一:
    • 一對多:
  • 單個實體型內的聯繫:

    • 同一個實體集內的各實體也存在一對一、一對多、多對多

    • 一對一:

    •  

  • 概念模型的一表示方法:實體-聯繫圖(E-R圖):

    • E-R圖就是把現實世界中的需求和實體之間的聯繫通過E-R圖表示出來,在根據E-R圖設計出二維表 

    • E-R圖提供了表示實體、屬性和聯繫的方法

      • 實體型:用矩形表示

      • 屬性:用橢圓形表示

      • 聯繫:用菱形表示 

  • 1.2.4最常用的數據模型:

  • 最常用的數據模型有:層次模型、網狀模型、關係模型、面向對象模型、對象關係模型。關係模型用的最多
  • 1.2.5關係模型:

  • 關係數據模型的數據結構:
    • 關係:一個關係通常說的是一張表 
    • 元組:表中一行,為一個元組
    • 屬性:表中的一列,為一個屬性。給每一個屬性起一個名稱即屬性名 
    • 例:
    • 碼:表中的某個屬性組,它可以唯一確定一個元組(如:學號、身份證號,通過該值去確定一行元組)
      • 在概念模型的時候也有碼:但是概念模式的碼指的是,通過一個碼去確定一個實體(如:學生實體通過學號去確定該實體) 
    • 域:屬性的取值範圍
    • 分量:元組中的一個屬性值
    • 關係模型:對關係的描述,一般表示為:關係名(屬性1,屬性2,屬性3...)
  • 關係數據模型的操縱與完整性約束:
    • 關係數據模型的操作主要包括查詢、插入、刪除和更新數據,但這些操作必須滿足關係的完整性約束條件
      • 關係的完整性約束條件包括三大類:
        • 實體完整性(實體可指的是一個人)
        • 參照完整性(選課表就要參照學號,專業)
        • 用戶定義的完整性(像教師65退休,就是用戶自己定義的) 
  • 關係數據模型的優點:
    • 關係模型與格式化模型不同,它是建立在嚴格的數據概念的基本上
    • 關係模型的概念單一(就是我操作的二維表,得出來的結果還是二維表)
    • 關係模型的存取路徑對用戶透密,從而有跟高的數據獨立性、安全保密性,也簡化了程式員的資料庫開發
      • 用戶透明:用戶只管用,不用管數據從哪來,例:如去查成績,用就行了

1.3資料庫的系統結構:

  • 1.3.1資料庫系統模式的概念:
    • 模式是資料庫中全體數據的邏輯結構和特征的描述,同一個模式可以有很多實例
    • 例:一個學校有100個學生,都有身高、體重、年齡(這就是一個模式),但它們的身高、體重、年齡都不一樣(很多實例)
  • 1.3.2資料庫系統的三級模式結構:
  • 模式:模式也稱邏輯模式,是資料庫中全體數據的邏輯結構和特征的描述是所有用戶的公共數據視圖
  • 外模式:外模式也稱子模式或用戶模式,它是資料庫用戶能夠看見和使用的局部數據的邏輯結構和特征的描述,是資料庫用戶的數據視圖
  • 內模式:內模式也稱存儲模式,一個資料庫只有一個內模式。它是數據物理結構和存儲方式的描述,是數據在資料庫內部的組織方式
  • 註意:
    • 外模式通常是模式的子集,一個資料庫可以有多個外模式
      • 例:我在查詢成績時只是查詢到了一部分,這是一個外模式,還有很多沒看到的有是一個外模式
    • 同一個外模式可以為某一用戶的多個應用系統使所使用,一個應用程式只能使用一個外模式
      • 例:查詢成績用的是一個外模式,列印成績用的是同一個外模式
      • 例:只能用一個外模式:查詢成績,說白了就是按鈕一定的規則去訪問
    • 外模式是保證資料庫按性的一個有力措施,每個用戶只能看到和訪問所對應的外模式中的數據,資料庫中的其餘數據是看不到的
      • 例:外模式是想讓你看見的,其餘的數據你是看不到的也不到存儲在哪         
  • 1.3.3資料庫的二級映像概念與數據獨立性

    • 外模式/模式映像

    • 模式/內模式映像

    • 兩層映像保證了資料庫系統中的數據能夠具有較高的李連傑獨立性和物理獨立性

      • 物理獨立性:例:當資料庫的存儲結構改變(如:增加新的關係)由資料庫管理員對模式/內模式映像作相當於的改變,可以使模式保存補不變,從而應用程式也不必改變。白痴了數據和程式的物理獨立性

1.4資料庫系統的組成:

  • 資料庫系統一般由資料庫、資料庫管理系統(及其開發工具)應用系統和資料庫管理員構成
  • 硬體平臺及資料庫:
    • 硬體要求:
      • 要由足夠大的記憶體,存放支持系統、資料庫管理系統的核心模塊、數據緩衝區和應用程式
      • 由足夠的大的磁碟或磁碟陣列等設備存放資料庫,有足夠的磁帶(或光碟)作數據備份
      • 系統有較高的通道能力,以提高數據傳輸效 
    • 軟體要求:
      • 資料庫管理系統,資料庫管理系統是為資料庫的建立,使用和維護配置的系統軟體
      • 組成資料庫管理系統的運行的操作系統
      • 具有與資料庫介面的高級語言及編譯系統,便於開發應用程式
      • 以資料庫管理系統為核心的應用開發工具
      • 為特定應用環境開發的資料庫應用系統
  • 人員:
    • 資料庫管理員、系統分析員、資料庫設計人員、應用程式員、用戶
    • 用戶 - 使用
    • 應用程式 - 使用(如:java開發寫程式去訪問資料庫)
    • 資料庫管理員 - 管理
      • 資料庫管理員職責:
        • 決定資料庫的內容和邏輯結構、存儲結構
        • 確定數據的安全性要求和完整性約束性條件
        • 監控資料庫的使用和運行,維護資料庫
        • 決定資料庫的存儲結構和存儲策略
        • 發負責資料庫的改進和重組重構  
    •  

       

                                           

      

                             

      

                                                                      

                                           


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

-Advertisement-
Play Games
更多相關文章
  • 前面介紹了 YARP 通過配置文件的方式配置代理轉發(傳送門),而眾所周知,微軟的一貫作風就是能通過配置文件做的事情,通過編碼的方式也能實現!YARP 也不例外,廢話不多說,直接上代碼! 首先,參照官方文檔,我們先新建一個 InMemoryConfigProvider 類,並且繼承 IProxyCo ...
  • .NET運行時之書(Book of the Runtime,簡稱BotR)是一系列描述.NET運行時的文檔,2007年左右在微軟內部創建,最初目的是為了幫助其新員工快速上手.NET運行時;隨著.NET開源,BotR也被公開了出來,如果想深入理解CLR,這系列文章不可錯過。 BotR系列目錄: [1] ...
  • 在上一篇文章UWP/WinUI3 Win2d PixelShaderEffect 實現ColorPlacementEffect (顏色替換) 濾鏡。 - 吃飯/睡覺 - 博客園 (cnblogs.com)中實現了 ”顏色替換濾鏡“,那麼本文將製作一個“漸變映射濾鏡”。 效果圖: 一.漸變映射流程 1 ...
  • 有時我們需要在圖像上添加水印。例如,在圖像上添加版權或名稱。我們可能還需要在文檔中創建水印。 在這篇博客和代碼示例中,我解釋瞭如何使用 C# 在圖像上編寫文本。此代碼可用於 Windows 或 Web 應用程式。 首先,將需要添加水印的圖片放在程式運行目錄,水印示例圖片具體如下 其次,在項目中添加“ ...
  • String在C#中其實是不可變的,每次操作字元串變數增加或減少時,都會重新分配記憶體。試想一下,如果創建一個迴圈10000次的字元串加減操作,每次迴圈都將一個字元連接到字元串,這樣記憶體中就會有10000個字元串,每個字元串僅僅與前一個字元串相伴只是有一個字元不同,性能影響是很大的。這個時候我們可以使 ...
  • 在Winform開發中中,我們為了方便客戶選擇,往往使用系統的字典數據選擇,畢竟選擇總比輸入來的快捷、統一,一般我們都會簡單封裝一下,以便方便對控制項的字典值進行展示處理,本篇隨筆介紹DevExpress控制項的幾種常見的字典綁定展示方式,希望我們在實際WInform項目中使用到。 ...
  • 在上一個文章中,傳送門,給大家介紹了怎麼在配置文件中使用 Kestrel 部署 Https,正好今天有小伙伴穩問到:可以通過代碼的方式實現 Kestrel 的 Https 的部署嗎?答案是肯定的,我們這次一樣去不是多個功能變數名稱。 在使用代碼實現中,我是主要使用到 ListenOptions.UseHtt ...
  • 出現的原因一般是伺服器的root用戶沒有開啟訪問許可權,一般來說值允許本地的訪問。 解決方法: 一:第一種方法 1、首先打開xshell連接伺服器的終端 2、以root許可權登錄 mysql -u root -p 如果不知道伺服器的root密碼的話就去寶塔面板那裡修改 3、選擇mysql 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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...