程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle系列--第一篇 數據庫基礎

oracle系列--第一篇 數據庫基礎

編輯:Oracle教程

1.1 數據管理概述
1.1.1 什麼是數據管理
與我們人類相比,計算機的最大優勢就是能夠高速、精准地運行,其運行的過程就是執行程序代碼和操作指令、處理數據的過程。可以說,數據處理是計算機最基本的功能,而數據

管理則是數據處理的重要組成部分。在進一步講解之前,我們需要先明確一下幾個相關的一些基本概念。


信息(Information )是反映現實世界中客觀事物狀態、發展變化及其規律的信號與消息。這裡
的所謂“客觀事物”可以是具體的(如人、獸、鳥),也可以是抽象的(事件、現象或行為,如
潮起潮落、雲卷雲舒)。或者說,信息是能夠通過數字、符號、文字、聲音或圖像等介質來表現
且能為人類所獲知的知識。作為人們工作生活中分析、決策與行為的依據,信息具有客觀性、適
用性、可傳輸性和共享性等特征。當然,信息並不為我們人類所獨有,鳥語(鳥的鳴叫)傳遞的
就是鳥類的信息。


數據(Data )是信息的具體表示形式,如前述的數字、符號、文字、聲音或圖像等。在計算
機技術中,數據指的是程序或指令執行時所處理的那些內容,而程序代碼和指令則不屬於“數據”
的范圍。當然從廣義上講,程序代碼和指令也屬於“數據”的范疇。
數據通常由數據名稱(數據含義)、數據類型、數據值等要素組成,其中數據值還會受到數
據類型與取值范圍的約束。數據對於信息的表示有定性表示(如人的體重狀況為“營養不良”、
“正常體重”、“肥胖”)和定量表示(如人的體重數值為18.5 公斤)之分。


數據處理(Data Processing)是指對數據進行的采集、組織、整理、加工、存儲和傳播等工作。
從廣義上講,一切涉及到數據的工作均可認為是在處理數據。
數據處理由可細分為數據管理、數據加工和數據傳播三種類型:

  • ‹ 數據管理

收集信息,將信息用數據表示,對數據進行分類、組織並保存,以能夠在需要的時候提供數
據。

  • ‹ 數據加工

對數據的轉換、提取和運算操作。對現有數據(原始數據)進行加工會得到更有用的數據(即
處理結果,比如一次購物中的商品總價、會員在指定時間段內的消費總額),以指導人的行為或
事物的運行發展。

  • ‹ 數據傳播

即信息的傳播——在空間或時間上以各種形式傳遞數據,包括數據的顯示操作,傳播過程中
不會改變數據的結構、性質和內容,但可以表現為不同的形式或效果(比如表格、圖形、實物模
型、音頻/ 視頻等),使更多的人得到信息。

上面已提到,數據管理(Data Management)是指對數據的分類、組織、編碼、保存、維護、
檢索和統計。具體說來,就是將采集到的數據合理地分類組織,將之編碼、並保存到在物理存儲
設備(如磁盤)中,使數據能夠被長期保存;數據維護是指根據需要插入新數據、修改原有數據
和刪除失效數據等操作;數據檢索(即數據查詢)和數據統計功能則是為了快速地得到所需要的
數據,滿足各種使用要求。



隨著人類進入信息化社會,在計算機應用技術領域,對數據管理方面的需求日益旺盛,計算
機數據管理技術迅速發展起來,其發展歷程大致可分為三個階段:
1. 手工管理階段
在計算機技術發展初期,計算機主要用於科學計算,其硬件存儲設備主要是外接的磁帶機、
卡片機、紙帶機等,當時還未發明磁盤等直接存取的存儲設備;軟件方面也處於初級階段——還
沒有操作系統和專門管理數據的軟件。這一時期的數據組織、存儲和管理完全靠程序員手工完成,
因此稱為“手工管理階段”。
手工管理數據方式的特點是:
數據不單獨保存,而是與程序代碼混合在一起,因而沒有獨立性,要修改數據則必須修
改程序;
– 程序員必須自己在程序中定義數據的存儲結構、實現其存取操作,迫使程序員直接與物
理設備打交道,這加大了程序設計難度,編程效率低下。
– 數據與程序相關,這意味著即使多個不同的程序用到了相同數據,也無法實現共享,只
得各自進行數據的定義、存儲和管理,這樣很容易造成數據的高度冗余,無法保證數據
的一致性。
可以看出,這一階段階段的數據管理效率很低。


2. 文件管理階段
將數據以文件的形式組織和長久保存在計算機存儲設備中,並由操作系統中的文件系統實現
統一的管理——文件系統有專門的數據管理軟件提供有關數據存取、查詢及維護功能,規定了統
一的文件結構和共同的存取方法。
數據文件的管理並不針對特定的應用程序,但仍缺乏數據與程序的獨立性,也就無法做到真
正的數據共享。另一個問題是,當數據的邏輯結構改變時,必須同時修改數據文件的結構定義和
相應的程序代碼,這會增加程序維護升級的難度。


3. 數據庫管理階段
數據庫管理從前面的文件管理演化而來,是計算機數據管理技術的高級階段。為滿足大量數
據的集中存儲、不同類型程序共享數據、多用戶並發訪問、維護數據的完整性、分布式處理以及
安全性方面的需求,人們開始嘗試使數據的存儲和管理與應用程序徹底獨立,並最大限度地減少
數據冗余,於是出現了數據庫管理系統。數據庫管理方式的特點在下一節中會做詳細介紹。


1.2.1 數據庫主要特點
顧名思義,數據庫是存儲數據的場所。准確地說,數據庫(Data Base,DB)是依照某種數據
模型組織起來的數據集合,同時也提供了數據管理功能。數據庫具有如下主要特點:

  • ‹ 數據共享度高

數據共享包含兩方面的含義:不同用戶可以同時存取數據庫中的數據,其具體用法可以;用
戶可以采用不同方式訪問數據庫,比如使用管理管理工具直接操作數據庫、或在網絡客戶端應用
程序中通過編程接口訪問數據庫。

  • ‹ 減少數據冗余

同文件系統相比,由於數據庫系統實現了數據共享,從而避免了用戶為其應用程序創建專用
的數據文件。減少了可能出現的重復數據(數據冗余),便於維護數據的一致性。
‹ 數據和程序間具有較高的獨立性
數據的獨立性包括數據庫中數據的邏輯結構和應用程序相互獨立,也包括數據物理存儲結構
的變化不影響數據的邏輯結構。有關數據庫存儲結構方面的知識在後文中會做詳細介紹

 

  • ‹ 實現對數據的集中管理

由數據庫管理系統對外提供統一的數據存儲、維護(增加、刪除和修改數
據)、檢索和簡單統計功能,使用數據的應用程序只需遵循統一的接口與數據庫管理系統打交道,
調用其數據管理管理功能,而不必各自為戰。
實現數據集中管理的前提是,建立統一的數據模型對數據進行組織、並能夠體現數據之間的
聯系,而文件管理方式則很難做這一點,文件管理的數據處於一種分散的狀態,
文件類型、存儲結構不夠統一,在保證數據一致性、並發訪問方面的性能也非常有限。
‹ 確保數據的一致性、安全性和可靠性
只有實現了數據的集中管理,才能保證共享數據的可靠性,否則很容易導致多應用程序並發
訪問數據時的不一致性問題。數據庫管理系統支持對數據的並發式訪問(允許同時對數據進行多
路存取),能夠很好地控制用戶間的交互,保證數據的一致性;
安全性和可靠性更是數據庫技術中恆久不變的主題,數據庫管理系統均會提供相關的技術、
機制或方法,防止非法操作、錯誤更新和越權使用數據,並提供故障檢測、診斷和恢復方面的工
具或功能。


1.2.2 數據庫相關術語
數據庫(Database,DB)
數據庫是依照某種數據模型組織起來的數據集合,集合中的數據盡可能不重復,並以最優方
式為某個特定組織的多種應用服務,集合中的數據結構獨立於使用它的應用程序,對數據的增、
刪、改和檢索由統一的軟件(數據庫管理系統)進行管理和控制。


數據庫管理系統(Database Management System,DBMS)
數據庫管理系統是一種操縱和管理數據庫的大型軟件,用於建立、使用和維護數據庫。DBMS
對數據庫進行統一的管理和控制,包括數據的增、刪、改和檢索操作,以保證數據庫的安全性和

完整性。用戶通過 DBMS 訪問數據庫中的數據,數據庫管理員也通過 DBMS 進行數據庫的維護工
作。DBMS 提供多種功能,支持多應用程序和多用戶以不同方式對數據庫進行並發式訪問。


數據庫管理員(Database Administrator,DBA)
數據庫管理員是負責創建、監控和維護整個數據庫的人員,其職責包括:數據庫安裝、數據
庫配置和管理、權限設置和安全管理、監控和性能調節、備份和恢復、解決其它一般性問題,以
使數據能被任何得到授權的人有效使用。
數據庫管理員是一種專業性很強的職位,相對來說工作更穩定、薪水較高,一般由技術水平
高、資歷較深的人員擔任。目前,國內這一領域的分工還不很明細,多數中小型企業沒有專門的
DBA,而是由網絡管理員等兼任。


數據庫應用系統(Database Application System,DBAS)
在數據庫領域內,人們常把使用了數據庫的各類應用系統統稱為數據庫應用系統。准確地說,
數據庫應用系統是一個可以實際運行的存儲、維護和處理數據的軟件系統,通常由數據庫、數據
庫管理系統、數據庫管理員、應用程序和最終用戶五部分組成。其中,數據庫集中保存數據,數
據庫管理系統提供對數據庫的統一管理和維護,這二者合在一起就是我們通常所說的數據庫軟件;
應用程序與數據庫管理系統交互、間接訪問和操作數據庫中數據;數據庫管理員操作數據庫管理
系統,實現對數據庫的管理和維護;而最終用戶則只與應用程序進行交互。


數據庫
數據庫管理系統
應用程序 最終用戶
數據庫管理員

 
數據倉庫(Data Warehousing)
數據倉庫(Data Warehouse )是一個面向主題的(Subject Oriented )、集成的(Integrate )、
相對穩定的(Non-Volatile)、反映歷史變化(Time Variant)的數據集合,用於支持管理決策。
數據倉庫是一個環境,而不是一件產品,提供用戶用於決策支持的當前和歷史數據,這些數
據在傳統的操作型數據庫中很難或不能得到。數據倉庫技術是為了有效的把操作型數據集成到統
一的環境中以提供決策型數據訪問的各種技術和模塊的總稱。所做的一切都是為了讓用戶更快更
方便查詢所需要的信息,提供決策支持。 

簡單地說,數據倉庫就是把不同數據庫的數據收集到一起,加以整理,主要用於做長期趨勢
分析。數據倉庫應用一般體現為操作比較復雜,涉及到的數據量比較大,但並發工作的程度不太
多,對速度的要求也不太強烈,這類應用除了要求數據庫系統有較強的數據管理手段,如:完整
性控制、安全性控制、 可靠性保障等之外,還特別要求數據庫系統能支持大數據量,支持有效的
語句優化,強有力的統計功能以及較強的批處理能力等。


1.2.3 數據庫分類及發展沿革
前文已提及,數據庫(數據庫管理系統)的出現克服了文件管理系統的局
限性,其後來的展則是受到如下需求的推動:提供應用程序與數據之間更大的獨立性,進而降低
應用程序的開發及維護成本;管理日益復雜的數據類型和結構;降低對數據庫用戶的技術要求—
—使用者不必須具備編程基礎、也不需要詳細了解數據在數據庫中的存儲及管理細節;提供更簡
便、快速的數據訪問服務;支持更強的數據共享性、一致性、安全性和可靠性;提供更強大的數
據統計、決策支持功能。
數據庫系統的核心和基礎是數據模型各種數據庫系統都是基於某種數據模型而工作的,因而通常是按照數據模型的特點將傳統
數據庫系統分成網狀數據庫、層次數據庫和關系數據庫三種。


網狀數據庫
顧名思義,網狀數據庫采用的是以記錄類型為結點的網狀數據模型,是一種導航式
(Navigation)的數據庫——用戶在操作數據庫時不但要指明要訪問的對象(數據),還要規定其
存取路徑。

世界上第一個網狀數據庫管理系統(也是第一個數據庫管理系統)是由美國通用電氣公司
Charles Bachman等人在20 世紀60年代初年開發成功的,這款名為 IDS (Integrated DataStore,集
成數據存儲)的數據庫管理系統奠定了網狀數據庫的基礎,在當時得到了廣泛的推廣和應用,做
為初級階段的數據庫產品,IDS 只能在通用公司的主機上運行。
1971年,美國數據系統委員會(Conferenceon Data Systems Languages,CODASYL )中的數
據庫任務組(Data Base Task Group,DBTG)提出了一個著名的DBTG 報告,對網狀數據模型和
語言進行了定義,並在1978年和1981年兩度進行修改和補充。因而網狀數據模型又稱為CODASYL
模型或DBTG 模型。1984 年,美國國家標准協會(ANSI)提出了一個網狀定義語言(Network

Definition Language,NDL)的推薦標准。
20世紀 70 年代,曾經出現過大量的網狀數據庫的 DBMS 產品。比較著名的有 Cullinet軟件公
司的IDMS 、Honeywell公司的 IDSII、Univac 公司的 DMS1100、以及HP公司的IMAGE 等。
網狀數據庫模型對於層次和非層次結構的信息都能比較自然的模擬,在關系數據庫出現之前
網狀DBMS 要比層次DBMS 用得普遍。在數據庫發展史上,網狀數據庫占有重要地位。


層次型數據庫
層次型數據庫緊隨網絡型數據庫之後出現,它采用層次數據模型(類似於數據結構中的“樹”)
來模擬現實世界中按層次組織起來的事物。層次數據庫管理系統也是按記錄來存取數據的,層次
數據模型中最基本的數據關系是基本層次關系,它代表兩個記錄型之間一對多的關系,也叫做雙
親-子女關系(Parent-Child Relationship,PCR )。數據庫中有且僅有一個記錄型無雙親,稱為根節
點。其他記錄型有且僅有一個雙親。

層次數據模型的優點是結構簡單、層次清晰、易於理解,並能夠提供良好的完整性支持。其
缺點包括:處理非層次性聯系如多對多聯系的數據時比較繁瑣,只能通過引入冗余結點或虛擬結
點來實現;查詢子結點必須通過父結點,即從根節點開始訪問,這樣降低了數據訪問效率;層次
型數據庫對數據插入和刪除有較多限制。
最著名的層次數據庫產品是IBM 公司的 IMS (Information Management System ),這是IBM
公司研制的最早的大型數據庫系統。


關系型數據庫
關系型數據庫(Relationship Database, RDB)采用二維表結構儲存與管理數據,並規定了表內
和表間數據的依存關系。可以簡單地理解為,關系數據庫中的表結構與我們日常生活中經常使用
的數據表(比如 Office 辦公軟件Word/Excel 中的表格)對應,當然關系型數據庫中經過抽象後的
數據表結構可以支持更多的數據類型,並附加所需的約束條件,這也符合技術來源於現實世界、
並服務於現實世界生產活動的本質規律。

關系型數據庫采用結構化查詢語言(Structured Query Language,SQL )作為客戶端程序與數
據庫服務器間溝通的橋梁——客戶端發送SQL 指令到服務器端,服務器端執行相關的指令並返回
其查詢的結果結果。關系模型結構簡單、概念單一、易學易用。關系模型的查詢效率往往不如非
關系模型,需進行優化以提高性能,這一定程度上要增加用戶的負擔,並對用戶在數據庫的整體
知識上有較高的要求。
1970年的 6 月, IBM 公司的研究員 Edgar Codd 發表了其著名的論文《大型共享數據庫數據
的關系模型》(A Relational Model of Data for Large Shared Data Banks),這是數據庫發展史上的
一個裡程碑,從此開始了關系型數據庫軟件革命。經過 30 余年的持續發展進步,關系型數據庫已
是當今的應用主流,目前流行的大型關系型數據庫包括 Oracle、IBM DB2、Microsoft SQL Server 、
SyBase 、Informix 等。

版權說明:
本書為北京新科海學校-v512 工作室原創教材,版權所有,流通者不得用於盈利目的,轉載請注明出處。

聯系作者:
張利國 [email protected]

相關資源:
新科海學校 http://www.jobedu.com.cn/
v512工作室 http://www.v512.com
高清視頻下載 http://www.verycd.com/topics/215898/


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved