數據庫是什么


學習重點

  • 數據庫是將大量數據保存起來,通過計算機加工而成的可以進行高效訪問的數據集合。

  • 用來管理數據庫的計算機系統稱為數據庫管理系統(DBMS)。

  • 通過使用DBMS,多個用戶便可安全、簡單地操作大量數據。

  • 數據庫有很多種類,本書將介紹如何使用專門的SQL語言來操作關系數據庫。

  • 關系數據庫通過關系數據庫管理系統(RDBMS)進行管理。

一、我們身邊的數據庫

大家都有過下面這樣的經歷吧?

  • 收到曾經為自己診治過的牙醫寄來的明信片,上面寫着“距上次檢查已有半年,請您再來做個牙齒健康檢查”。

  • 在生日的前一個月,收到曾入住過的旅店或賓館發來的“生日當月入住優惠”的郵件或者明信片。

  • 在網上商城購物之后,收到內附“推薦商品列表”的郵件。

這可能是因為牙醫、旅店或商城的經營者掌握了顧客上一次的就診日期、生日和購買歷史等信息,並且擁有能夠從大量匯總信息中快速獲取所需信息(比如你的住址或愛好)的設備(計算機系統)。如果利用人工完成同樣的工作,真不知道要多長時間呢。

另外,現在所有地區的圖書館都配備了計算機,實現了圖書的自動查詢。使用該系統,可以通過檢索書名或出版年份快速查找出希望借閱的圖書的所在位置,以及是否已經借出等信息。正是因為擁有了可以保存圖書名稱、出版年份以及保管位置和外借情況等信息,並且可以按需查詢的設備,才使這一切成為可能。

像這樣將大量數據保存起來,通過計算機加工而成的可以進行高效訪問的數據集合稱為數據庫(Database,DB)。將姓名、住址、電話號碼、郵箱地址、愛好和家庭構成等數據保存到數據庫中,就可以隨時迅速獲取想要的信息了。用來管理數據庫的計算機系統稱為數據庫管理系統(Database Management System,DBMS[1]

KEYWORD

  • 數據

  • 數據庫(DB)

  • 數據庫管理系統(DBMS)

系統的使用者通常無法直接接觸到數據庫。因此,在使用系統的時候往往意識不到數據庫的存在。其實大到銀行賬戶的管理,小到手機的電話簿,可以說社會的所有系統中都有數據庫的身影(圖 1)。

數據庫無處不在

圖 1 數據庫無處不在

二、為什么 DBMS 那么重要

那么,為什么要使用專用系統(DBMS)來管理數據呢?我們通過計算機管理數據的時候,通常使用文本文件 [2] 或者 Excel 那樣的電子制表軟件就可以完成了,非常簡單。

確實,通過文本文件或者電子制表軟件來管理數據的方法非常簡便,但也有不足。下面就舉幾個有代表性的例子。

  • 無法多人共享數據

    保存在已連接網絡的計算機中的文件,可以通過共享設定實現多個用戶在線閱讀或編輯。但是,當某個用戶打開該文件的時候,其他用戶就無法進行編輯了。如果是網上商城的話,當某個用戶購買商品的時候,其他用戶就無法購買了。

  • 無法提供操作大量數據所需的格式

    要想瞬間從幾十萬或者上百萬的數據中獲取想要的數據,必須把數據保存為適當的格式,但是文本文件和 Excel 工作表等無法提供相應的格式。

  • 實現讀寫自動化需要編程能力

    通過編寫計算機程序(以下簡稱程序)可以實現數據讀取和編輯自動化,但這必須以了解數據結構為前提,還需具備一定的計算機編程技術。

  • 無法應對突發事故

    當文件被誤刪、硬盤出現故障等導致無法讀取的時候,可能會造成重要數據丟失,同時數據還可能被他人輕易讀取或竊用。

DBMS 可以克服這些不足,實現多個用戶同時安全簡單地操作大量數據(圖 2)。這也是我們一定要使用 DBMS 的原因。

DBMS 能夠實現多個用戶同時安全簡單地操作大量數據

圖 2 DBMS 能夠實現多個用戶同時安全簡單地操作大量數據

三、DBMS 的種類

DBMS 主要通過數據的保存格式(數據庫的種類)來進行分類,現階段主要有以下 5 種類型。

  • 層次數據庫(Hierarchical Database,HDB

    最古老的數據庫之一,它把數據通過層次結構(樹形結構)的方式表現出來。層次數據庫曾經是數據庫的主流,但隨着關系數據庫的出現和普及,現在已經很少使用了。

  • 關系數據庫(Relational Database,RDB

    關系數據庫是現在應用最廣泛的數據庫。關系數據庫在 1969 年誕生,可謂歷史悠久。和 Excel 工作表一樣,它也采用由行和列組成的二維表來管理數據,所以簡單易懂(表 1)。同時,它還使用專門的 SQL(Structured Query Language,結構化查詢語言)對數據進行操作。

    KEYWORD

    • 層次數據庫

    • 關系數據庫(RDB)

    • SQL

    表 1 關系數據庫中的數據

    商品編號 商品名稱 商品種類 銷售單價 進貨單價 登記日期
    0001 T 恤衫 衣服 1000 500 2009-09-20
    0002 打孔器 辦公用品 500 320 2009-09-11
    0003 運動 T 恤 衣服 4000 2800
    0004 菜刀 廚房用具 3000 2800 2009-09-20
    0005 高壓鍋 廚房用具 6800 5000 2009-01-15
    0006 叉子 廚房用具 500 2009-09-20
    0007 擦菜板 廚房用具 880 790 2008-04-28
    0008 圓珠筆 辦公用品 100 2009-11-11

    這種類型的 DBMS 稱為關系數據庫管理系統(Relational Database Management System,RDBMS)。比較具有代表性的 RDBMS 有如下 5 種。

    • Oracle Database :甲骨文公司的 RDBMS

    • SQL Server :微軟公司的 RDBMS

    • DB2 :IBM 公司的 RDBMS

    • PostgreSQL :開源的 RDBMS

    • MySQL :開源的 RDBMS

    KEYWORD

    • RDBMS

    • 開源

      將軟件的內容(代碼)無償地公開在互聯網上,任何人都可以進行修改並再次發布。開發項目可以由志同道合的有志之士集體來運營。

    另外,Oracle Database 通常簡稱為 Oracle,因此,本教程在接下來的章節中也使用這一簡稱。

  • 面向對象數據庫(Object Oriented Database,OODB

    編程語言當中有一種被稱為面向對象語言的語言 [3]。把數據以及對數據的操作集合起來以對象為單位進行管理,因此得名。面向對象數據庫就是用來保存這些對象的數據庫。

    KEYWORD

    • 面向對象數據庫(OODB)
  • XML 數據庫(XML Database,XMLDB

    最近幾年,XML [4] 作為在網絡上進行交互的數據的形式逐漸普及起來。XML 數據庫可以對 XML 形式的大量數據進行高速處理。

    KEYWORD

    • XML 數據庫(XMLDB)
  • 鍵值存儲系統(Key-Value Store,KVS

    這是一種單純用來保存查詢所使用的主鍵(Key)和值(Value)的組合的數據庫。具有編程語言知識的讀者可以把它想象成關聯數組或者散列(hash)。近年來,隨着鍵值存儲系統被應用到 Google 等需要對大量數據進行超高速查詢的 Web 服務當中,它正逐漸為人們所關注。

    KEYWORD

    • 鍵值存儲系統(KVS)

本教程將向大家介紹使用 SQL 語言的數據庫管理系統,也就是關系數據庫管理系統(RDBMS)的操作方法。接下來還會深入講解 RDBMS。如無特殊說明,本教程所提到的數據庫以及 DBMS 都是指 RDBMS。

另外,有的 RDBMS 也可以像 XML 數據庫那樣操作 XML 形式的數據,或者具有面向對象數據庫的功能。本教程並不會介紹用於這些擴展功能的 SQL,如果要了解這些內容,請參考 RDBMS 附帶的 SQL 手冊或者針對不同的 RDBMS 介紹 SQL 的資料。

請參閱

(完)


  1. 數據庫(DB)和 DBMS 經常被混淆。為了加以區別,本教程將數據庫管理系統統稱為 DBMS。 ↩︎

  2. 保存只通過文字記錄的數據的文件。 ↩︎

  3. 主要的面向對象語言包括 Java 和 C++ 等。 ↩︎

  4. eXtensible Markup Language 的縮寫,一種使用 HTML 那樣的標簽來表現數據結構的語言。以 <name>憶初</name> 這樣的形式來保存數據。 ↩︎


免責聲明!

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



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