第1.1節 數據庫系統應用

作爲對商業數據計算機化管理的響應,在20世紀60年代出現了最早的數據庫系統。現代的數據庫應用包括有非常複雜的全球型企業。跟現代的數據庫應用相比,那些早期的應用是相對簡單的。

所有的數據庫應用,不管老的還是新的,都共享重要的公共元素。比如數據庫應用的核心不是執行某種計算的程序,而是數據本身。今天,一些最有價值的公司之所以有價值,不是因爲它們的有形資產,而是因爲它們擁有的信息。想象一下,如果一個銀行沒有了賬戶和客戶數據,一個社交網站丟失了用戶之間的聯繫,則這些公司的價值就全部喪失了。

適合使用數據庫來管理的數據集有以下特點

  • 數據非常有價值
  • 數據量相對較大
  • 數據會同時被許多用戶和應用訪問

畫外音:

如果應用的數據不是非常有價值,或者數據量不是很大,或者很少會被用戶和應用同時訪問,則就不適合使用數據庫系統來管理數據

第一批數據庫應用有的僅是簡單的、格式精確的、結構化的數據。今天,數據庫應用可能包含具有複雜關係和結構可變的數據。

先看一個具有結構化數據的應用示例:一個大學裏有關課程、學生、課程註冊等信息的記錄。該大學爲每門課程保留相同類型的信息:課程標識符、課程名、所屬系、課程編號等,爲每個學生信息也保留相同類型的信息:學生標識符、學生名、地址、電話號碼等,課程註冊是由(課程標識符, 學生標識符)這樣的對組成的集合。這類信息具有着標準的、重複性的結構,是可追溯至20世紀60年代的數據庫應用類型的典型代表。

跟這個簡單的大學數據庫應用相比,一個社交網站的用戶會發布有關他們自己的各種類型的信息,從姓名、出生日期等簡單信息,到由文本、圖片、視頻、指向其他用戶的鏈接組成的複雜信息。雖然這些數據之間具有共同結構的數量是有限的,但是這兩類應用都具有數據庫的基本特徵。

現代數據庫不僅利用數據結構中的共性來提升效率,而且支持弱結構的數據以及格式高度可變的數據。

因此,數據庫系統是一個大型的、複雜的軟件系統,它的任務是管理大型、複雜的數據集

複雜性管理不僅在數據管理領域非常有挑戰性,而且在任何一個領域都是很有挑戰性的。

複雜性管理的的關鍵是抽象。抽象允許一個人使用一個複雜的設備或者系統,而不用知道設備或者系統是如何被構建的。比如,一個人能開車,只要知道如何操作這部車的控制部件就行了,而不用知道如何製造車或者車子的運行原理。所有的司機需要知道的是汽車能做什麼的一個抽象概念。
類似地,面對一堆大型且複雜的數據,數據庫系統需要提供一個更簡單的、抽象的信息視圖,以便用戶和應用程序員不需用知道數據在底層是如何存儲和組織的。通過提供高層次的抽象,數據庫系統使得企業能將不同類型的數據整合成一個統一的信息倉庫。

有一些使用數據庫系統的典型應用:

  1. 企業信息
    • 銷售信息
      比如顧客、產品及購買信息;
    • 會計信息
      比如支付、收據、賬戶餘額、資產及其他會計信息;
    • 人力資源
      比如僱員信息、工資、工資稅、福利等信息及用於生成工資的信息
  2. 製造業
    比如用於供應鏈管理的信息,以及用於追蹤工廠中物品的生產、倉庫和商店中物品的庫存及物品訂單等信息
  3. 銀行和金融業
    • 銀行信息
      比如客戶信息、賬戶、貸款、銀行交易等信息
    • 信用卡交易信息
      比如信用卡購買信息、用於月度賬單生成的信息等
    • 金融信息
      比如存儲有關金融工具(股票和債券等)的持有、銷售及購買信息;存儲實時市場數據,以便客戶進行在線交易和公司進行自動交易;
  4. 大學
    比如學生信息、課程註冊、分數等信息
  5. 民用航空業
    比如預定和調度等信息
  6. 電信業
    比如保存電話記錄、文本記錄、數據使用率等信息,用於生成閱讀賬單、維護有關預付電話卡的餘額、存儲有關通信網絡的信息
  7. 基於互聯網的服務
    • 社交媒體
      保存用戶記錄、用戶之間的連接(比如朋友、關注等信息)、由用戶發佈的消息、有關該消息的關注度等信息
    • 電商
      爲任何一個零售商保存銷售數據和訂單,追蹤用戶看過的商品、搜索項等信息來爲了給用戶推薦最合適的商品
    • 互聯網廣告
      爲了實現有針對性地投放廣告、產品建議、新聞文章等,保存點擊歷史記錄。每當人們做一次互聯網搜索、線上購買或者訪問一次社交網站,他們都會訪問這些數據庫。
  8. 文檔數據庫
    維護新文章、專利、公開的研究論文等信息
  9. 導航系統
    維護各種名勝古蹟的位置以及精確的公路路線、火車路線、公交路線等

如這個列表所示,數據庫不僅是每個企業的必要組成部分,而且也構成了一個人每日活動的很大部分

人們跟數據庫的交互方式是隨着時間而改變的。早期的數據庫是作爲後臺辦公系統維護的,人們通過打印的報告及紙質表單作爲輸入來跟其交互的。隨着數據庫變得更復雜,更好的語言被開發出來供程序員使用來跟數據交互,更好的用戶界面也被開發出來使得企業內的終端用戶能查詢和更新數據。隨着程序員跟數據庫交互方式的改進,計算機硬件性能的提升,出現了更復雜的應用,使得數據庫中的數據不僅對企業內部的終端用戶可得,而且對大衆也可得。雖然曾經銀行客戶必須要跟出納員進行每筆交易,但是現在ATM機支持直接跟客戶交互。今天,幾乎每個企業都部署有互聯網應用或者移動應用,來支持它的客戶直接跟企業的數據庫交互,即跟企業自己交互。

用戶或者消費者能集中在產品或者服務上,而不用瞭解使得交互可行的大型數據庫的細節。比如,當你閱讀一條社交媒體消息、訪問在線書店、瀏覽一本書或者音樂集時,你就是在訪問存儲在某個數據庫中的數據。當你輸入一條在線訂單時,你的訂單將會被存到某個數據庫中。當你訪問一個銀行網站,檢索你的銀行餘額和交易信息時,信息是從該銀行的數據中檢索的。當你訪問一個網站時,有關你的信息可能會從數據庫中檢索出來用於爲你選擇應該看到的廣告。幾乎跟智能手機的每次交互都會導致某種類型的數據庫訪問。有關你的互聯網訪問數據可能被保存在某個數據庫中。

因此,雖然用戶界面隱藏了許多數據庫的訪問細節,大部分人並沒有感覺到他們是在跟一個數據庫打交道,但是訪問數據庫構成了今天每個人生活的必要組成部分。

從廣義上講,數據庫被使用有兩種模式:

  1. 在線事務處理
    大量用戶使用數據庫,其中每個用戶都只是檢索小部分信息,執行小型更新;
    對我們之前總結的數據庫應用的大部分用戶來說,這是主要的使用模式;
  2. 數據分析
    比如,銀行需要決定是否把貸款發放給某個貸款申請人,在線廣告商需要決定將哪一個廣告展示給特定用戶。
    再比如,製造商和零售商需要決定製造哪些物品或者訂購多少量。這些決定深受分析過去數據、預測趨勢的技術的驅動。因爲做錯誤決策的成本非常高,因此組織願意投資許多錢來收集或者購買所需數據,構建能使用數據做正確預測的系統。
    解決這些任務需要兩步:
    首先,數據分析技術嘗試從數據中自動發現規則和模式,創建預測模型。這些模型把個人特徵作爲輸入,輸出一些預測,比如償還貸款的可能性、點擊一個廣告的可能性等。
    然後,使用這些預測來做商業決策。
    數據挖掘領域將人工智能研究者和統計學者發明的知識發現技術高效實現整合起來使其能夠用於超大型數據庫
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章