- 數據庫系統原理與實踐
- 陸鑫等編著
- 6989字
- 2024-05-23 17:15:30
1.2 數據庫技術發展
數據庫技術是一種利用計算機組織、存儲和管理數據的軟件技術。它涉及數據庫結構、數據模型、數據操作語言、數據庫設計、數據庫系統管理、數據庫編程等方面的基本理論與技術方法。初學者在學習具體數據庫技術前,需要了解數據庫技術如何產生、如何發展,當前技術現狀,未來技術發展趨勢等知識。
1.2.1 數據管理技術階段
從20世紀60年代開始,計算機技術快速發展并被廣泛應用,大量用戶提出對數據資源進行存儲管理和數據存取處理的需求,利用計算機進行數據管理的早期數據庫技術應運而生。當時,數據庫技術主要研究如何利用軟硬件系統存儲、使用和管理數據。隨著計算機技術的發展,數據庫技術與計算機相關技術的發展相互滲透與相互促進,現已成為當今計算機軟件領域發展最迅速、應用最廣泛的技術之一。數據庫技術不僅應用于數據管理,還應用于信息檢索、數據倉庫、數據挖掘、商業智能、大數據處理等領域。在利用計算機進行數據管理技術的發展歷程中,數據管理經歷了人工數據管理、文件系統管理、數據庫管理三個階段。
1.人工數據管理階段
在20世紀50年代以前,計算機主要用于科學計算。計算機外部存儲只有紙帶、卡片、磁鼓等設備,還沒有方便存取的數據存儲設備。計算機軟件只是一些操作控制程序,還沒有操作系統及數據管理軟件。計算機可處理的數據量小,數據無結構,應用程序依賴于特定的數據變量實現編程,缺乏獨立性。在涉及數據處理的計算機程序中,程序員必須在代碼中進行數據管理。因此,當時的數據管理存在很大局限性,難以滿足應用數據管理的要求。
2.文件系統管理階段
從20世紀50年代后期到20世紀60年代中期,新的計算機外部存儲設備(如磁帶、磁盤)先后出現,它們可以用來長久存儲程序與數據,并支持數據順序存取、數據隨機存取。在這個時期,計算機軟件也得到快速發展,出現了控制計算機軟硬件運行的操作系統軟件。在操作系統中,可使用數據文件方式來組織、存儲數據,并采用文件系統工具對各個數據文件進行管理。文件系統可以通過指針訪問數據文件記錄,既可對數據文件中的數據記錄進行檢索,也可對數據記錄進行插入、更新和刪除。文件系統實現了數據在記錄內的結構化組織,即在數據文件各個記錄中,其數據項組成是一致的。但是從整體看數據文件,數據記錄之間是無結構的,不能處理數據記錄之間的關聯性。
在這個階段,用戶可以使用高級語言程序對數據文件進行數據記錄的存取,打破了人工數據管理的限制,可以滿足應用的基本數據管理要求。但在數據文件管理中,存在如下不足:①編寫應用程序管理數據的過程較煩瑣。②應用程序對數據文件存在依賴,難以實現獨立修改。③不支持多用戶對數據文件并發訪問。④不能實現數據文件的安全控制。⑤難以解決不同數據文件間的數據冗余。⑥在文件中,數據記錄之間缺少聯系,難以滿足用戶對數據的關聯訪問需求。
3.數據庫管理階段
在20世紀60年代末期,計算機軟硬件技術得到較大發展:計算機處理能力有了較大提升,并且大容量磁盤設備開始出現;計算機軟件也出現了專門管理數據的系統軟件——數據庫管理系統。這些都為實現大規模計算機數據管理提供了支持。在這個階段,用戶可使用數據庫管理系統來實現應用系統的數據管理。應用程序連接數據庫后,可使用操作語言語句對數據庫表中的數據進行操作。所有對數據庫的操作都由數據庫管理系統自動完成,應用程序不需要考慮數據庫文件的物理操作和系統控制。數據庫管理與文件數據管理相比較,具有如下優點:①應用程序與數據相互獨立,解決了應用程序對數據文件的依賴問題。②應用程序訪問數據庫時使用標準的數據操作語言,編程訪問簡單。③數據組織結構化,共享性高,冗余小。④提供數據的安全訪問機制,并保證數據的完整性、一致性、正確性。
因此,數據庫技術成為當今計算機數據管理的基本技術。雖然數據庫技術從20世紀60年代末期到現在經歷了幾十年發展,其技術也發生了許多變化,但數據庫組織與管理數據的基本思想是一致的,這說明數據庫技術管理數據的生命力是長久的。
1.2.2 數據庫技術發展演進
數據模型是數據庫技術的核心基礎,數據模型的發展演變可以作為數據庫技術發展階段的主要標志。按照數據模型的發展演變過程,數據庫技術從出現到如今已有半個多世紀,其發展階段主要經歷了四代:第一代是以層次數據模型和網狀數據模型為特征的數據庫技術;第二代是以關系數據模型為特征的數據庫技術;第三代是以面向對象數據模型、對象-關系數據模型為主要特征的數據庫技術;在第四代數據庫技術演進中,數據庫技術與計算機網絡技術、人工智能技術、并行計算技術、多媒體技術、云計算技術、大數據技術等相互結合與相互促進,衍生出大量新數據模型,其典型特征是采用非結構化的數據模型處理大數據,采用多模數據庫技術同時處理結構化數據與非結構化數據。
1.第一代數據庫技術
第一代數據庫技術出現于20世紀60年代末,計算機專家先后研制出網狀數據模型、層次數據模型用于數據庫系統。1961年,通用電氣公司(GE)開發出世界上第一個網狀數據庫管理系統——集成數據系統(Integrated Data System,IDS)。IDS奠定了網狀數據庫技術基礎,并開啟了數據庫管理數據時代。隨后,1968年IBM公司研發出的層次數據庫管理系統——信息管理系統(Information Management System,IMS)。IMS最早運行在IBM 360/370計算機上進行數據管理。經過多年技術改進后,該系統至今還在IBM部分大型主機中使用。
20世紀70年代初,美國數據庫系統語言會議(Conference On Data System Language,CODASYL)下屬的數據庫任務組DBTG(Database Task Group)對數據庫技術方法進行了系統研究,提出了若干報告(被稱為DBTG報告)。DBTG報告總結了數據庫技術的許多概念、方法和技術。在DBTG思想和方法的指引下,數據庫系統的實現技術不斷成熟。一些大型計算機公司推出了商品化的數據庫管理系統,它們都是基于網狀數據模型和層次數據模型的技術思想實現的。
2.第二代數據庫技術
第二代數據庫技術出現在20世紀70年代的關系數據庫管理系統中。1970年IBM公司San Jose研究實驗室的研究員埃德加·F.科德(Edgar F. Codd)發表《大型共享數據庫的關系模型》論文,首次提出了關系數據模型。之后進一步的研究成果建立了關系數據庫方法和關系數據庫理論,為關系數據庫技術發展奠定了理論基礎。埃德加·F.科德于1981年被授予ACM圖靈獎,他在關系數據庫研究方面的杰出貢獻被人們所認可。
20世紀70年代是關系數據庫理論研究和原型系統開發的時代,其中以IBM公司San Jose研究實驗室開發的System R和伯克利(Berkeley)大學研制的Ingres為典型代表。大量的理論成果和實踐經驗終于使關系數據庫從實驗室走向了市場,因此,人們把20世紀70年代稱為數據庫時代。20世紀80年代幾乎所有新開發的數據庫系統產品均是關系數據庫軟件,其中涌現出了許多性能優良的商業數據庫管理系統,如DB2、Ingres、Oracle、Informix、Sybase等。這些商業數據庫管理系統使數據庫技術被日益廣泛地應用到辦公管理、企業管理、情報檢索、輔助決策等方面,成為實現信息系統數據管理的基本技術。
3.第三代數據庫技術
從20世紀80年代以來,數據庫技術在商業上的巨大成功刺激了其他領域對數據庫技術需求的迅速增長。這些新的領域為數據庫應用開辟了新的天地,并在應用中提出了一些新的數據管理需求,推動了數據庫技術的研究與發展。
1990年,高級DBMS功能委員會發表了《第三代數據庫系統宣言》,提出了第三代數據庫管理系統應具有的三個基本特征:支持數據管理、對象管理和知識管理;必須保持或繼承第二代數據庫系統的技術;必須對其他系統開放。
面向對象數據庫技術成為第三代數據庫技術發展的主要特征。傳統的關系數據模型無法描述現實中復雜的數據實體,面向對象的數據模型則應用了成熟的面向對象基本思想,更適合描述現實世界中復雜的數據關系。面向對象數據庫技術可以解決關系數據庫技術存在的數據模型簡單、數據類型有限、難以支持復雜數據處理問題。不過,面向對象數據庫技術不具備統一的數據模式和形式化理論,缺少嚴格的數學理論基礎,這使它難以支持廣泛使用的結構化查詢語言(SQL)。在實際應用中,面向對象數據庫軟件產品并沒有真正得到推廣。相反到了后期,一些在關系數據庫基礎上擴展面向對象功能的對象-關系數據庫管理系統軟件(如PostgreSQL)卻得到了廣泛的實際應用。
4.第四代數據庫技術
自進入20世紀90年代以來,數據庫技術不再局限于事務處理應用,很多機構與企業希望通過數據分析來輔助業務發展。為此,不少數據庫軟件廠商推出了數據倉庫技術、聯機分析工具、數據挖掘工具產品,以此來支持基于歷史數據的分析決策應用。為了滿足大量數據訪問的操作型數據庫與分析型數據庫處理性能要求,這個時期先后出現了分布式數據庫技術和并行數據庫技術。特別是在進入21世紀后,互聯網應用快速發展,產生了大量非結構化、半結構化數據的大數據應用需求。由于傳統關系數據庫只能管理結構化數據,雖然將非結構化數據、半結構化數據轉換為結構化數據后也可以在關系數據庫中進行數據處理,但其處理時效性難以滿足實際應用需求,由此出現了基于XML的數據庫技術,可以實現半結構化數據管理,也出現了基于NoSQL的數據庫技術,可以實現非結構化數據管理。各種NoSQL數據庫均采用開源方式實現特定數據模型的分布式數據庫處理,可以滿足高性能、高可用性的海量數據管理要求,有力支撐了互聯網與大數據應用的數據庫處理需求。不過NoSQL數據庫雖然解決了高并發讀寫、非結構化數據存儲等問題,但其設計思路是以犧牲事務處理、數據強一致性以及放棄SQL兼容性換來的。此外,NoSQL數據庫出現了200多種數據模型實現技術,它們的訪問模式和操作語言并不統一,因此,每種NoSQL數據庫只局限于解決特定模式的非結構化數據管理問題。目前,不少IT公司又開始推出NewSQL數據庫技術產品,力圖在NoSQL數據庫基礎上保留SQL操作訪問和事務處理能力。此外,在本階段不少云數據庫服務技術也得到了廣泛應用。總之,第四代數據庫技術使用戶可以更好地處理大規模、復雜數據,更快地存取海量數據,支持大數據分析與挖掘,也更高效地支持互聯網大數據應用。
1.2.3 數據庫領域技術
數據庫技術不局限于關系數據庫技術,還包括大量其他類型數據庫技術以及數據庫處理相關技術,這里將它們統稱為數據庫領域技術。
1.NoSQL數據庫
傳統的關系數據庫采用二維表結構存儲數據,具有數據結構簡單、訪問操作方便等特點,但它僅支持簡單數據類型存取。在采用關系數據庫實現信息系統的技術方案中,所有信息數據都需要進行結構化數據存儲處理,才能在關系數據庫中進行數據存取訪問。當今大量互聯網應用數據是以非結構化數據形式存在的,如網頁信息、文檔信息、報表信息、音視頻信息、即時通信消息等。一旦海量的非結構化數據時刻都需進行結構化處理,勢必會帶來信息數據處理的性能開銷,其時效性將無法滿足應用要求。NoSQL數據庫技術是一類針對大量互聯網應用的非結構化數據處理需求而產生的一種分布式非關系數據庫技術。與關系數據庫技術相比,NoSQL數據庫技術突破了關系數據庫結構中必須等長存儲各記錄行數據的限制,它支持重復數據記錄及變長數據記錄存儲,并可實現各類復雜數據類型處理,這在處理文檔、報表、圖像、音視頻等各類非結構化數據時有著傳統關系數據庫所無法比擬的優勢。因此,NoSQL數據庫技術已成為支持大數據應用的數據管理主流技術。
2.NewSQL數據庫
雖然NoSQL數據庫技術可以有效解決非結構化數據存儲與大數據存取操作問題,具有良好的擴展性和靈活性,但它不支持廣泛使用的結構化數據操作語言——SQL,同時也不支持數據庫事務的ACID(原子性、一致性、隔離性和持久性)特性操作。另外,不同的NoSQL數據庫都有各自的查詢語言和數據模型,這使得開發者很難處理應用程序接口。因此,NoSQL數據庫技術僅滿足了互聯網應用的非結構化數據處理需求,而不適合企業應用的結構化數據管理。NewSQL數據庫技術是一種以NoSQL數據庫技術為基礎,同時支持關系數據庫訪問的技術,這類數據庫既具有NoSQL對海量數據的分布式存儲管理能力,也保持了兼容傳統關系數據庫的ACID和SQL等特性。NewSQL數據庫技術不但支持非結構化數據管理與大數據應用,也支持結構化數據管理的關系數據庫應用,它將成為未來主流的數據庫技術。
3.應用領域數據庫
在計算機領域中,各種新興技術的發展對數據庫技術產生了重大影響。數據庫技術與計算機網絡技術、并行計算機技術、人工智能技術、多媒體技術、地理空間技術等相互滲透,相互結合,使各類領域數據庫層出不窮,如實時數據庫、分布式數據庫、并行數據庫、人工智能數據庫、多媒體數據庫、空間數據庫等。由此,數據庫技術的許多概念、技術和方法,甚至一些數據庫的技術原理都有了重大發展與變化,這也形成了數據庫應用領域眾多的研究分支和方向。
此外,數據庫應用領域也先后出現了工程數據庫、統計數據庫、科學數據庫、空間數據庫、地理信息數據庫等領域數據庫。這些領域數據庫在通用數據庫基礎上,與特定應用領域技術相結合,加強了數據庫系統對有關應用領域的支撐能力,尤其表現在數據模型、操作語言、數據訪問方面與應用領域的緊密結合。隨著數據庫技術的發展和數據庫技術在工程領域中的廣泛應用,將涌現出更多的應用領域數據庫技術。
4.數據倉庫與數據挖掘
數據庫技術并不局限在操作型數據庫領域。在數據庫技術領域中,對大量應用的歷史數據進行有效存儲與聯機分析,已成為機構與企業信息服務的重要需求。數據倉庫(Data Warehouse)是在數據庫已經存儲了長時間數據的情況下,對積累的大量歷史數據進行有效的存儲組織,以便實現決策分析所需要的聯機分析與數據挖掘處理。數據倉庫技術涉及研究與解決大量歷史數據情況下如何通過有效存儲與高效訪問來支持數據聯機分析與數據挖掘處理的問題。數據倉庫的數據管理具有面向主題、集成性、穩定性和時變性等特征,其數據來自于若干分散的操作型數據庫。對這些數據源進行數據抽取與數據清理處理,再經過系統加工、匯總和整理得到主題數據,這些主題數據將被存放到特定模式的數據庫中以支持聯機分析。在數據倉庫中,主要的工作任務是對歷史數據進行大量的查詢操作或聯機統計分析處理,以及定期進行數據加載、刷新,但很少進行數據更新和刪除操作。
數據挖掘(Data Mining)是一種建立在數據倉庫或其他數據集上對大量數據進行模式或規律挖掘,從中發現有價值信息的技術。它主要基于人工智能、機器學習、模式識別、統計學、數據庫、數據可視化等技術,對大量數據進行計算分析,做出歸納性的推理,從中挖掘出潛在的數據模式,幫助決策者進行策略分析,防范或減少風險,做出正確的決策。數據挖掘一般包含數據預處理、規律尋找和結果可視化表示三個步驟。數據預處理是從相關的數據源中選取所需的數據,并對原始數據進行清洗、轉換、整合,處理為適合數據挖掘的數據集;規律尋找是用數據挖掘方法將數據集所含的數據規律找出來;結果可視化表示是將挖掘出來的數據規律或數據模式以用戶可理解的數據可視化方式呈現出來。
5.商業智能
商業智能(Business Intelligence)是一種利用現代數據倉庫、聯機分析處理、數據挖掘等技術對商業信息系統中積累的大量數據進行數據分析以實現商業價值的技術。用戶利用商業智能軟件工具,可以對來自商業信息系統的實時業務數據和歷史數據進行數據分析與數據挖掘處理,獲取有價值的商業分析結論和信息,輔助決策者做出正確且明智的決定。商業智能主要包括對商業信息的搜集、管理和分析等處理,其目的是使商業機構的各級決策者獲得商業運營信息或規律洞察力,促使他們做出對機構更有利的決策。商業智能的技術實現涉及軟件、硬件、咨詢服務及應用,其系統包括數據倉庫、聯機分析處理和數據挖掘三個部分。商業智能清理來自機構不同業務系統的數據,以保證數據的正確性,然后經過抽取(Extract)、轉換(Transformation)和裝載(Load),將數據合并到一個企業級數據倉庫里,從而得到機構數據的一個全局視圖。在此基礎上,商業智能利用合適的查詢和分析工具、數據挖掘工具對數據進行分析和處理,獲得有價值的商業信息與知識,最后將商業信息與知識呈現給決策者,為決策者的決策過程提供輔助支持。
6.大數據分析處理技術
大數據分析處理技術是繼數據庫、數據倉庫、數據挖掘、商業智能等數據處理技術之后的又一個熱點技術。大數據分析處理技術旨在解決傳統數據分析處理技術難以在規定時間完成大規模復雜數據分析處理的問題。傳統的數據挖掘、商業智能技術雖然也能針對大規模數據集進行分析處理,但它們處理的數據類型有限,也不能快速處理海量的非結構化數據。在當前移動互聯網、物聯網、云計算、人工智能快速發展的時代,每時每刻都在產生大量非結構化數據,如傳感數據、即時通信數據、交易數據、多媒體數據等不同類型數據。如何快速地從海量數據中分析出有價值的信息,成為大數據分析處理需要解決的主要問題。按照業界普遍認同的定義,大數據(Big Data)是指由于應用系統的數據規模及其復雜性,難以使用傳統數據管理軟件以合理的成本、可以接受的時限做數據分析的數據集。大數據具有數據體量大、數據類型繁多、數據處理速度要求快、價值密度低等特點。因此,大數據分析處理技術需要對云存儲、云計算、分布式數據庫、數據倉庫、數據挖掘、機器學習等技術進行整合,才能實現對有價值信息的數據分析處理。大數據分析處理的核心價值在于對海量數據進行分布式存儲、計算與分析處理,從而獲得有價值的信息。相比現有數據分析處理技術而言,大數據分析處理技術具有快速、廉價、高效等綜合優勢。
課堂討論:本節重點與難點知識問題
1)為什么關系數據庫不適合大數據應用處理?
2)結構化數據與非結構化數據有何區別?
3)NoSQL數據庫與NewSQL數據庫有何區別?
4)通用數據庫與領域數據庫有何區別?
5)數據庫與數據倉庫有何區別?
6)大數據分析與數據挖掘有何區別?
- 上海外國語大學251俄語二外歷年考研真題及詳解
- 2020年全國碩士研究生招生考試312心理學專業基礎綜合考試輔導教材
- 新編體育經紀人教程(第四版)
- 自然語言處理導論
- 中南財經政法大學816刑法學歷年考研真題及詳解
- 米什金《貨幣金融學》(第9版)筆記和課后習題(含考研真題)詳解[視頻講解]
- 2020年中外教育史考點歸納及典型題(含考研真題)詳解
- 電子商務網站開發與設計
- 2020年西藏自治區選聘大學生村官考試《行政職業能力測驗》題庫【真題精選+章節題庫+模擬試題】
- 大數據導論(第2版)
- 旅游資源學
- 同等學力申碩《地理學學科綜合水平考試大綱及指南》(第3版)課后習題詳解
- 上海大學外國語學院357英語翻譯基礎[專業碩士]歷年考研真題及詳解
- 報關理論與實踐
- 數據結構