博客 / 詳情

返回

系統架構設計師-第3章-數據庫

第3章-數據庫

在信息處理領域,由於數據量龐大,如何有效組織、存儲數據對實現高效率的信息處理至關重要。數據庫技術是目前最有效的數據管理技術。數據庫(DataBase,DB)是指長期存儲在計算機內、有組織的、統一管理的相關數據的集合。它不僅描述事物的數據本身,而且還包括相關事物之間的聯繫。數據庫可以直觀地理解為存放數據的倉庫,只不過這個倉庫是在計算機的存儲設備上,而且數據是按一定格式存放的,具有較小的冗餘度、較高的數據獨立性和易擴展性,可為多個用户共享。

早期數據庫種類有3種,分別是層次式數據庫、網絡式數據庫和關係型數據庫。目前最常見的數據庫種類是關係型數據庫和非關係型數據庫。根據數據庫存儲體系分類,還可分為關係 型數據庫、鍵值(Key-Value)數據庫、列存儲數據庫、文檔數據庫和搜索引擎數據庫等類型。

  1. 關係型數據庫。這種類型的數據庫是最傳統的數據庫類型,關係型數據庫模型是把複雜的數據結構歸結為簡單的二元關係,在數據庫中,對數據的操作幾乎全部建立在一個或多個關係表格上。在大型系統中通常有多個表,且表之間有各種關係。實際使用就是通過對這些關聯的表格進行分類、合併、連接或選取等運算來實現數據庫的管理。
  2. 鍵值數據庫。鍵值數據庫是一種非關係型數據庫,它使用簡單的鍵值方法來存儲數據。鍵值數據庫將數據存儲為鍵值對集合,其中鍵作為唯一標識符。
  3. 列存儲數據庫。列式存儲(Column-Based)是相對於傳統關係型數據庫的行式存儲(Row-Basedstorage)來説的。簡單來説兩者的區別就是對錶中數據的存儲形式的差異。
  4. 文檔數據庫。此類數據庫可存放並獲取文檔,可以是XML、JSON、BSON等格式,這些文檔具備可述性(Self-Describing),呈現分層的樹狀結構 (Hierarchical Tree Data Structure),可以包含映射表、集合和純量值。數據庫中的文檔彼此相似,但不必完全相同。文檔數據庫所存放的文檔,就相當於鍵值數據庫所存放的“值”。文檔數據庫可視為其值可查的鍵值數據庫。
  5. 搜索引擎數據庫。搜索引擎數據庫是應用在搜索引擎領域的數據存儲形式,由於搜索引擎會爬取大量的數據,並以特定的格式進行存儲,這樣在檢索的時候才能保證性能最優。

下面簡要介紹常用的關係數據庫和分佈式數據庫。

  1. 關係數據庫
    數據模型是數據特徵的抽象,它是對數據庫組織方式的一種模型化表示,是數據庫系統的核心與基礎。它具有數據結構、數據操作和完整性約束條件三要素。
    關係可以理解為二維表。一個關係模型就是指用若干關係表示實體及其聯繫,用二維表的形式存儲數據。例如,對某高校學生的選課(不同年級甚至同一年級學生所選課程可以不同) 進行管理,可以用二維表表示,如圖2-4所示。
    20240221204744
    用關係表示如下,其中帶下畫線的屬性為主碼,主碼能唯一確定某個實體,如學號能唯一 確定某個學生。
    學生(學號,姓名,年齡,系別)
    課 程 (課程號,課程名,學分)
    選 課 (學 號,課程號,分數)

    • 關係數據庫設計的特點及方法
      數據庫設計是指對於一個給定的應用環境構造最優的數據庫,建立數據庫及其應用系統,使之能有效地存儲數據,滿足各種用户的需求。數據庫設計包括結構特性和行為特性的設計兩 方面的內容。
      數據庫設計的很多階段都可以和軟件工程的各階段對應起來,數據庫設計的特點有:從數據結構即數據模型開始,並以數據模型為核心展開,這是數據庫設計的一個主要特點;靜態結構設計與動態行為設計分離;試探性;反覆性和多步性。
      目前已有的數據庫設計方法可分為4類,即直觀設計法、規範設計法、計算機輔助設計法和自動化設計法。常用的有基於3NF的設計方法、基於實體聯(E-R)模型的數據庫設計方法、基於視圖概念的數據庫設計方法、面向對象的關係數據庫設計方法、計算機輔助數據庫設計方法、敏捷數據庫設計方法等。
    • 關係數據庫設計的基本步驟
      數據庫設計分為需求分析、概念結構設計、邏輯結構設計、物理結構設計、應用程序設計和運行維護6個階段,如圖2-5所示。
      20240221210506
      需求分析階段的任務是對現實世界要處理的對象(組織、部門和企業等)進行詳細調查,在瞭解現行系統的概況和確定新系統功能的過程中,收集支持系統目標的基礎數據及其處理方 法。需求分析是在用户調查的基礎上,通過分析逐步明確用户對系統的需求,包括數據需求和圍繞這些數據的業務處理需求。
      數據庫概念結構設計是在需求分析的基礎上,依照需求分析中的信息需求,對用户信息加以分類、聚集和概括,建立信息模型,並依照選定的數據庫管理系統軟件,把它們轉換為數據的邏輯結構,再依照軟硬件環境,最終實現數據的合理存儲。這一過程也稱為數據建模。
      設計數據庫概念模型的最著名、最常用的方法是E-R方法。採用E-R方法的數據庫概念結構設計可分為三步:設計局部E-R模型、設計全局E-R模型以及全局E-R模型的優化。
      邏輯結構設計是在概念結構設計基礎上進行的數據模型設計,可以是層次、網狀模型和關係模型。邏輯結構設計階段的主要任務是確定數據模型,將E-R圖轉換為指定的數據模型,確定完整性約束,確定用户視圖。
      數據庫在物理設備上的存儲結構與存取方法稱為數據庫的物理結構。數據庫的物理結構設計是對已確定的數據庫邏輯結構,利用DBMS所提供的方法、技術,以較優的存儲結構和數據 存取路徑、合理的數據存放位置以及存儲分配,設計出一個高效的、可實現的數據庫物理結構。
      數據庫應用系統開發是DBMS的二次開發,一方面是對用户信息的存儲;另一方面就是對用户處理要求的實現。
      數據庫應用程序設計要做的工作有選擇設計方法、制訂開發計劃、選擇系統架構和設計安全性策略。在應用程序設計階段,設計方法有結構化設計方法和麪向對象設計方法兩種。安全性策略主要是指硬件平台、操作系統、數據庫系統、網絡及應用系統的安全。
      數據庫的正常運行和優化也是數據庫設計的內容之一 。在數據庫運行維護階段要做的工作主要有數據庫的轉儲和恢復,數據庫的安全性和完整性控制,數據庫性能的監督、分析和改造,數據庫的重組和重構等。
  2. 分佈式數據庫
    分佈式數據庫系統(Distributed DataBase System,DDBS) 是針對地理上分散,而管理上又需要不同程度集中管理的需求而提出的一種數據管理信息系統。滿足分佈性、邏輯相關性、地透明性和場地自治性的數據庫系統被稱為完全分佈式數據庫系統。
    分佈式數據庫系統的特點是數據的集中控制性、數據獨立性、數據冗餘可控性、場地自治性和存取的有效性。

    • 分佈式數據庫體系結構
      我國在多年研究與開發分佈式數據庫及制定《分佈式數據庫系統標準》中,提出了把分佈式數據庫抽象為4層的結構模式,如圖2-6所示。這種結構模式得到了國內外一定程度的支持和認同。

      4層模式劃分為全局外層、全局概念層、局部概念層和局部內層,在各層間還有相應的層 間映射。這種4層模式適用於同構型分佈式數據庫系統,也適用於異構型分佈式數據庫系統。
    • 分佈式數據庫的應用
      分佈式數據庫的應用領域有分佈式計算、Internet應用、數據倉庫、數據複製以及全球聯網查詢等,Sybase公司的Replication Server即是一種典型的分佈式數據庫系統。
  3. 常用數據庫管理系統
    計算機科學技術不斷髮展,數據庫管理系統也不斷髮展進化,MySQLAB公司(2009年被Oracle公司收購)MySQL、Microsoft公司的Access等是小型關係數據庫管理系統的代表,Oracle公司的Oracle、Microsoft公司的SQL Server、IBM公司的DB2等是功能強大的大型關係數據庫管理系統的代表。
  • Oracle
    Oracle 是一種適用於大型、中型和微型計算機的關係數據庫管理系統。Oracle的結構包括數據庫的內部結構、外存儲結構、內存儲結構和進程結構。在Oracle中,數據庫不僅指物理上的數據,還包括處理這些數據的程序,即DBMS本身。Oracle使用PL/SQL(ProceduralLanguage/SQL)語言執行各種操作。Oracle除了以關係格式存儲數據外,Oracle8以上的版本還支持面向對象的結構(如抽象數據類型)。
    Oracle產品主要包括數據庫服務器、開發工具和連接產品三類。Oracle還提供了一系列的工具產品,如邏輯備份工具Export、Import等。
  • IBM DB2
    DB2是IBM的一種分佈式數據庫解決方案。簡單地説,DB2就是IBM開發的一種大型關係型數據庫平台,它支持多用户或應用程序在同一條SQL語句中查詢不同Database甚至不同DBMS中的數據。
    DB2核心數據庫的特色有支持面向對象編程,支持多媒體應用程序,支持備份和恢復功能,支持存儲過程和觸發器,支持SQL查詢,支持異構分佈式數據庫訪問,支持數據複製。
    DB2採用多進程多線索體系結構,可運行於多種操作系統之上。IBM還提供了Visualizer、Visualage、Visualgen等開發工具。
  • Sybase
    Sybase是美國SYBASE公司在20世紀80年代中期推出的客户機/服務器(Client/Server,C/S)結構的關係數據庫系統,也是世界上第一個真正的基於客户機/服務器結構的RDBMS產品。
    Sybase數據庫主要由三部分組成:進行數據庫管理和維護的聯機關係數據庫管理系統Sybase SQLServer,支持數據庫應用系統建立與開發的一組前端工具Sybase SQLToolset,可把異構環境下其他廠商的應用軟件和任何類型的數據連接在一起的接口Sybase OpenClient/OpenServer。
    Sybase提供了Sybase Adaptive Server Enterprise高性能企業智能型關係數據庫管理系統、EAServer電子商務解決方案應用服務器、系統分析設計工具PowerDesigner和應用開發工具PowerBuilder。
  • Microsoft SQL Server
    Microsoft SQL Server是一種典型的關係型數據庫管理系統,可運行於多個操作系統上,它使用Transact-SQL 語言完成數據操作。

源文來自:https://daimajiangxin.cn

user avatar deltaf 頭像 knifeblade 頭像 buxiyan 頭像 async_wait 頭像 qiehxb8 頭像 longbig 頭像 mysteryjack 頭像 dewujishu 頭像 yexiaobai_616e2b70869ae 頭像
9 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.