1.1 數據庫原理(一)——數據庫基本概念
數據庫技術研究的是如何科學正確地組織、存儲數據,如何高效地獲取和處理數據,是由文件管理系統發展起來的一種理想的數據管理技術。對客觀世界的描述,最終都要表現為數據。數據是用于承載信息的物理符號。當用計算機處理這些數據時,需要對它們進行組織、存儲、加工和維護,即進行數據管理。而當數據量特別大時,程序如何處理數據就變得相當重要。
1.1.1 數據庫技術的發展
隨著計算機技術的不斷發展,數據管理技術經歷了人工管理階段、文件系統階段和數據庫系統階段。
1.人工管理階段
20世紀50年代中期以前,計算機主要用于科學計算,數據管理主要由人工完成。當時從硬件看,外存只有磁帶、卡片、紙帶,還沒有磁盤等這些可直接存取的存儲設備;從軟件上看,還沒有出現操作系統和管理數據的軟件。所以數據由用戶直接管理,因此數據依賴于特定的應用程序,缺乏獨立性,且數據間也缺乏邏輯組織。
人工管理階段程序與數據之間的關系如圖1-1所示。

圖1-1 人工管理階段程序與數據之間的關系
人工管理階段數據處理的主要特點是:
(1)數據不存儲。數據無法永久存儲,需要使用數據時才編寫程序,將數據嵌入到程序中處理。
(2)數據無法獨立于程序,它是程序的組成部分。程序員對數據的存儲結構、存取方法及輸入/輸出的格式擁有絕對的控制權,要修改數據必須修改程序。
(3)數據是面向程序的,不同程序的數據之間是相互獨立、彼此無關的,即使兩個不同程序涉及相同的數據,也必須各自定義,無法互相利用、互相參照。數據無法共享而高度冗余。
2.文件系統階段
20世紀50年代后期~60年代中期,計算機不僅應用于科學計算,還大量應用于經濟管理。硬件方面,有了磁盤、磁鼓等存儲設備;軟件方面,操作系統中已經有了專門的數據管理軟件——文件系統。此時數據可以長期保持在外圍設備上,由文件系統統一管理數據的存取。
文件系統階段程序與數據之間的關系如圖1-2所示。
文件系統階段的主要特點是:
(1)數據被組織成相對獨立的數據文件,數據和程序相互獨立,數據共享成為可能;數據的物理結構和邏輯結構之間有了簡單的變換。
(2)文件管理系統提供了對數據文件按文件名稱進行數據的存取、修改等的編輯操作方法。
(3)數據雖可以共享,但因數據還是面向某些特定的應用程序,所以數據仍存在相當程度的冗余。
3.數據庫系統階段
20世紀60年代后期,數據管理進入數據庫系統階段。此時計算機系統廣泛應用于企業管理,于是為了解決多用戶、多應用共享數據的需求,使數據為盡可能多的應用服務,數據庫技術便應運而生。
數據庫系統階段程序與數據之間的關系如圖1-3所示。
數據庫系統的目標是:解決數據冗余問題,實現獨立性,實現數據共享并解決由于數據共享而帶來的數據完整性、安全性及并發控制等一系列問題。為實現這一目標,數據庫的運行必須由一個軟件系統來控制,這個系統軟件稱為數據庫管理系統。

圖1-2 文件系統階段程序與數據之間的關系

圖1-3 數據庫系統階段程序與數據之間的關系
1.1.2 數據庫技術的基本概念
數據庫的基本概念和術語有:數據、數據庫、數據庫管理系統和數據庫系統。
1.數據
數據(Data)是數據庫中存儲的基本對象,也是最終用戶操作的基本對象。數據是對現實世界中事物的一種描述,在計算機領域中數據是一個廣義的概念,文字、圖形、圖像、聲音等都屬于數據范疇,它們都是經過數字化后存入計算機的。
2.數據庫
數據庫(Database,DB)可以簡單理解為“存放數據的倉庫”,這個倉庫是計算機的存儲設備。較為全面的定義是:所謂數據庫,就是為滿足某部門各種用戶的多種應用需要,在計算機系統中按照一定數據模型組織、存儲和使用的互相關聯的數據集合。
3.數據庫管理系統
數據庫管理系統(Database Management System,DBMS)是位于用戶與操作系統之間的一層數據管理軟件。通常具有以下功能:
(1)數據定義功能
數據庫管理系統給用戶提供了數據描述語言(Data Description Language,DDL)。用于在數據庫中創建并且管理各種數據庫對象,如數據庫、表、視圖、索引、觸發器等,主要通過對每個對象的CREATE、ALTER、DROP語句來實現。
(2)數據操縱功能
數據庫管理系統給用戶提供了數據操縱語言(Data Manipulation Language,DML)。用于對數據的查詢、添加、修改和刪除等操作,使用SELECT、INSERT、UPDATE、DELETE語句。
(3)數據控制功能
數據庫管理系統給用戶提供了數據控制語言(Data Control Language,DCL)。用于對用戶的權限進行設控制,主要使用GRANT、GRANT、DENY、REVOKE語句。
4.數據庫系統
數據庫系統(Data Base System)是指采用數據庫技術的計算機系統,包括數據庫、數據庫管理系統和構成這一計算機系統的其他部分(如計算機硬件、支撐軟件、操作人員等)。
- 數據挖掘原理與實踐
- 劍破冰山:Oracle開發藝術
- SQL查詢:從入門到實踐(第4版)
- R數據科學實戰:工具詳解與案例分析(鮮讀版)
- 大話Oracle Grid:云時代的RAC
- Remote Usability Testing
- INSTANT Apple iBooks How-to
- Hadoop大數據開發案例教程與項目實戰(在線實驗+在線自測)
- 數據庫應用系統開發實例
- 實用數據結構
- Mastering ROS for Robotics Programming(Second Edition)
- Access數據庫開發從入門到精通
- 數據庫查詢優化器的藝術:原理解析與SQL性能優化
- Rust High Performance
- 一本書讀懂區塊鏈(第2版)