高級資料庫系統
A. 資料庫的發展階段
資料庫發展階段大致劃分為如下的幾個階段:人工管理階段、文件系統階段、資料庫系統階段、高級資料庫階段。 50年代中期之前,計算機的軟硬體均不完善。硬體存儲設備只有磁帶、卡片和紙帶,軟體方面還沒有操作系統,當時的計算機主要用於科學計算。這個階段由於還沒有軟體系統對數據進行管理,程序員在程序中不僅要規定數據的邏輯結構,還要設計其物理結構,包括存儲結構、存取方法、輸入輸出方式等。當數據的物理組織或存儲設備改變時,用戶程序就必須重新編制。由於數據的組織面向應用,不同的計算程序之間不能共享數據,使得不同的應用之間存在大量的重復數據,很難維護應用程序之間數據的一致性。
這一階段的主要特徵可歸納為如下幾點:
*計算機中沒有支持數據管理的軟體。
*數據組織面向應用,數據不能共享,數據重復。
*在程序中要規定數據的邏輯結構和物理結構,數據與程序不獨立。
*數據處理方式——批處理。 這一階段的主要標志是計算機中有了專門管理資料庫的軟體——操作系統(文件管理)。
上世紀50年代中期到60年代中期,由於計算機大容量存儲設備(如硬碟)的出現,推動了軟體技術的發展,而操作系統的出現標志著數據管理步入一個新的階段。在文件系統階段,數據以文件為單位存儲在外存,且由操作系統統一管理。操作系統為用戶使用文件提供了友好界面。文件的邏輯結構與物理結構脫鉤,程序和數據分離,使數據與程序有了一定的獨立性。用戶的程序與數據可分別存放在外存儲器上,各個應用程序可以共享一組數據,實現了以文件為單位的數據共享。
但由於數據的組織仍然是面向程序,所以存在大量的數據冗餘。而且數據的邏輯結構不能方便地修改和擴充,數據邏輯結構的每一點微小改變都會影響到應用程序。由於文件之間互相獨立,因而它們不能反映現實世界中事物之間的聯系,操作系統不負責維護文件之間的聯系信息。如果文件之間有內容上的聯系,那也只能由應用程序去處理。 60年代後,隨著計算機在數據管理領域的普遍應用,人們對數據管理技術提出了更高的要求:希望面向企業或部門,以數據為中心組織數據,減少數據的冗餘,提供更高的數據共享能力,同時要求程序和數據具有較高的獨立性,當數據的邏輯結構改變時,不涉及數據的物理結構,也不影響應用程序,以降低應用程序研製與維護的費用。資料庫技術正是在這樣一個應用需求的基礎上發展起來的。
資料庫技術有如下特點:
* 面向企業或部門,以數據為中心組織數據,形成綜合性的資料庫,為各應用共享。
* 採用一定的數據模型。數據模型不僅要描述數據本身的特點,而且要描述數據之間的聯系。
* 數據冗餘小,易修改、易擴充。不同的應用程序根據處理要求,從資料庫中獲取需要的數據,這樣就減少了數據的重復存儲,也便於增加新的數據結構,便於維護數據的一致性。
*程序和數據有較高的獨立性。
* 具有良好的用戶介面,用戶可方便地開發和使用資料庫。
* 對數據進行統一管理和控制,提供了數據的安全性、完整性、以及並發控制。
從文件系統發展到資料庫系統,這在信息領域中具有里程碑的意義。在文件系統階段,人們在信息處理中關注的中心問題是系統功能的設計,因此程序設計佔主導地位;而在資料庫方式下,數據開始占據了中心位置,數據的結構設計成為信息系統首先關心的問題,而應用程序則以既定的數據結構為基礎進行設計。大事記
1951:Univac系統使用磁帶和穿孔卡片作為數據存儲。
1956:IBM公司在其Model 305 RAMAC中第一次引入了磁碟驅動器
1961:通用電氣(GE)公司的Charles Bachman開發了第一個資料庫管理系統——IDS
1969: E.F. Codd發明了關系資料庫。
1973:由John J.Cullinane領導Cullinane公司開發了 IDMS——一個針對IBM主機的基於網路模型的資料庫。
1976:Honeywell公司推出了Multics Relational Data Store——第一個商用關系資料庫產品。
1979:Oracle公司引入了第一個商用SQL關系資料庫管理系統。
1983:IBM推出了DB2資料庫產品。
1985:為Procter & Gamble系統設計的第一個商務智能系統產生。
1991:W.H.「Bill」 Inmon發表了」構建數據倉庫」。 隨著信息管理內容的不斷擴展,出現了豐富多樣的數據模型(層次模型,網狀模型,關系模型,面向對象模型,半結構化模型等),新技術也層出不窮(數據流,Web數據管理,數據挖掘等)。每隔幾年,國際上一些資深的資料庫專家就會聚集一堂,探討資料庫研究現狀,存在的問題和未來需要關注的新技術焦點。過去已有的幾個類似報告包括:1989年Future Directions inDBMS Research-The Laguna BeachParticipants ;1990年DatabaseSystems : Achievements and Opportunities ;1991年W.H. Inmon 發表的《構建數據倉庫》;1995年Database。
B. 高級資料庫系統及其應用內容簡介
在現代信息技術領域,資料庫技術扮演著至關重要的角色,它是信息系統開發與應用的基石。《高級資料庫系統及其應用》這本書深入淺出地講解了資料庫的各個方面。全書共分為四個部分,共計14章,詳細探討了資料庫的精髓。
首部分,即第1章至第4章,著重於資料庫系統的基礎,涵蓋了資料庫技術的基本原理、體系結構以及實際應用中的核心主題,為讀者提供了一個全面理解資料庫基礎的平台。
接下來的章節,第5部分至第8章,深入到資料庫系統實現的層面,特別是關系資料庫在系統構建中的關鍵知識點,為想要了解資料庫系統內部運作的讀者提供了實用的指導。
第3部分,涵蓋了對象數據和Web資料庫的內容,幫助讀者適應不斷變化的技術趨勢,理解如何在現代網路環境中有效地運用資料庫技術。
最後,第9部分至第14章,探討了資料庫的高級主題,如數據倉庫、數據挖掘和演繹資料庫等,這些內容不僅展示了資料庫技術的前沿,還為資料庫研究和開發者提供了前沿動態和創新思路。
這本書的特點在於其概念清晰,知識體系完整,內容實用且與時俱進,無論是高等院校計算機及信息技術專業的研究生和高年級本科生,還是資料庫領域的研究和開發者,都能從中受益匪淺,獲取所需的專業知識和未來發展趨勢的洞見。
C. 資料庫管理系統軟體有哪些
資料庫管理系統軟體有多種,包括:Oracle、Microsoft SQL Server、MySQL、PostgreSQL、IBM DB2等。
資料庫管理系統軟體是用於存儲、管理和檢索大量數據的軟體系統。以下是部分常見的資料庫管理系統軟體的詳細介紹:
1. Oracle:Oracle Database是Oracle公司開發的關系資料庫管理系統。它具有強大的事務處理能力和數據管理功能,支持各種數據類型,廣泛用於企業級資料庫管理。其特點包括高可靠性、可擴展性和靈活性。
2. Microsoft SQL Server:這是微軟公司開發的資料庫管理系統,適用於各類組織和大小的企業使用。它提供了數據集成和存儲功能,並支持數據分析和報告工具,易於管理和維護。
3. MySQL:MySQL是一個開源的關系資料庫管理系統,廣泛應用於Web開發領域。它具有易用性、低成本和高性能的特點,得到了眾多中小型企業的青睞。由於其靈活性和可定製性,也使得開發者可以輕松集成和使用資料庫。
4. PostgreSQL:PostgreSQL是一種開源的資料庫管理系統,以其強大和靈活的開源許可證著稱。它支持許多先進的特性,如子查詢、觸發器和復雜的資料庫分析操作等。
5. IBM DB2:IBM DB2是IBM公司生產的一款資料庫管理系統軟體。它在事務處理和資料庫查詢處理方面具有高度的效率和靈活性,適合大規模數據存儲和高級分析處理任務。其特性還包括數據恢復和數據保護能力。此外,還有很多其他類型的資料庫管理系統軟體如Redis、MongoDB等用於特定的場景和應用領域。這些資料庫管理系統軟體各具特色,根據具體需求和場景選擇合適的資料庫系統是非常重要的。
D. 資料庫是什麼
資料庫發展階段大致劃分為如下幾個階段:
人工管理階段;
文件系統階段;
資料庫系統階段;
高級資料庫階段。
當人們從不同的角度來描述這一概念時就有不同的定義(當然是描述性的)。例如,稱資料庫是一個「記錄保存系統」(該定義強調了資料庫是若干記錄的集合)。又如稱資料庫是「人們為解決特定的任務,以一定的組織方式存儲在一起的相關的數據的集合」(該定義側重於數據的組織)。更有甚者稱資料庫是「一個數據倉庫」。當然,這種說法雖然形象,但並不嚴謹。
嚴格地說,資料庫是「按照數據結構來組織、存儲和管理數據的倉庫」。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣「倉庫」,並根據管理的需要進行相應的處理。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表20.6.3中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。
J.Martin給資料庫下了一個比較完整的定義:資料庫是存儲在一起的相關數據的集合,這些數據是結構化的,無有害的或不必要的冗餘,並為多種應用服務;數據的存儲獨立於使用它的程序;對資料庫插入新數據,修改和檢索原有數據均能按一種公用的和可控制的方式進行。當某個系統中存在結構上完全分開的若干個資料庫時,則該系統包含一個「資料庫集合」。
· 資料庫的優點
使用資料庫可以帶來許多好處:如減少了數據的冗餘度,從而大大地節省了數據的存儲空間;實現數據資源的充分共享等等。此外,資料庫技術還為用戶提供了非常簡便的使用手段使用戶易於編寫有關資料庫應用程序。特別是近年來推出的微型計算機關系資料庫管理系統dBASELL,操作直觀,使用靈活,編程方便,環境適應廣泛(一般的十六位機,如IBM/PC/XT,國產長城0520等均可運行種軟體),數據處理能力極強。資料庫在我國正得到愈來愈廣泛的應用,必將成為經濟管理的有力工具。
資料庫是通過資料庫管理系統(DBMS-DATA BASE MANAGEMENT SYSTEM)軟體來實現數據的存儲、管理與使用的dBASELL就是一種資料庫管理系統軟體。
· 資料庫結構與資料庫種類
資料庫通常分為層次式資料庫、網路式資料庫和關系式資料庫三種。而不同的資料庫是按不同的數據結構來聯系和組織的。
1.數據結構模型
(1)數據結構
所謂數據結構是指數據的組織形式或數據之間的聯系。如果用D表示數據,用R表示數據對象之間存在的關系集合,則將DS=(D,R)稱為數據結構。例如,設有一個電話號碼簿,它記錄了n個人的名字和相應的電話號碼。為了方便地查找某人的電話號碼,將人名和號碼按字典順序排列,並在名字的後面跟隨著對應的電話號碼。這樣,若要查找某人的電話號碼(假定他的名字的第一個字母是Y),那麼只須查找以Y開頭的那些名字就可以了。該例中,數據的集合D就是人名和電話號碼,它們之間的聯系R就是按字典順序的排列,其相應的數據結構就是DS=(D,R),即一個數組。(2)數據結構種類
數據結構又分為數據的邏輯結構和數據的物理結構。數據的邏輯結構是從邏輯的角度(即數據間的聯系和組織方式)來觀察數據,分析數據,與數據的存儲位置無關。數據的物理結構是指數據在計算機中存放的結構,即數據的邏輯結構在計算機中的實現形式,所以物理結構也被稱為存儲結構。本節只研究數據的邏輯結構,並將反映和實現數據聯系的方法稱為數據模型。
目前,比較流行的數據模型有三種,即按圖論理論建立的層次結構模型和網狀結構模型以及按關系理論建立的關系結構模型。
2.層次、網狀和關系資料庫系統
(1)層次結構模型
層次結構模型實質上是一種有根結點的定向有序樹(在數學中"樹"被定義為一個無回的連通圖)。例如圖20.6.4是一個高等學校的組織結構圖。這個組織結構圖像一棵樹,校部就是樹根(稱為根結點),各系、專業、教師、學生等為枝點(稱為結點),樹根與枝點之間的聯系稱為邊,樹根與邊之比為1:N,即樹根只有一個,樹枝有N個。這種數據結構模型的一般結構見圖20.6.5所示。
圖20.6.4 高等學校的組織結構圖 圖20.6.5 層次結構模型
圖20.6.5中,Ri(i=1,2,…6)代表記錄(即數據的集合),其中R1就是根結點(如果Ri看成是一個家族,則R1就是祖先,它是R2、R3、R4的雙親,而R2、R3、R4互為兄弟),R5、R6也是兄弟,且其雙親為R3。R2、R4、R5、R6又被稱為葉結點(即無子女的結點)。這樣,Ri(i=1,2,…6)就組成了以R1為樹根的一棵樹,這就是一個層次數據結構模型。
按照層次模型建立的資料庫系統稱為層次模型資料庫系統。IMS(Information Manage-mentSystem)是其典型代表。
(2)網狀結構模型
在圖20.6.6中,給出了某醫院醫生、病房和病人之間的聯系。即每個醫生負責治療三個病人,每個病房可住一到四個病人。如果將醫生看成是一個數據集合,病人和病房分別是另外兩個數據集合,那麼醫生、病人和病房的比例關系就是M:N:P(即M個醫生,N個病人,P間病房)。這種數據結構就是網狀數據結構,它的一般結構模型如圖20.6.7所示。在圖中,記錄Ri(i=1,2,8)滿足以下條件:
①可以有一個以上的結點無雙親(如R1、R2、R3)。
②至少有一個結點有多於一個以上的雙親。在"醫生、病人、病房"例中,"醫生集合有若干個結點(M個醫生結點)無"雙親",而"病房"集合有P個結點(即病房),並有一個以上的"雙親"(即病人)。
圖20.6.6 醫生、病房和病人之間的關系
圖20.6.7 網狀結構模型
按照網狀數據結構建立的資料庫系統稱為網狀資料庫系統,其典型代表是DBTG(Data Base Task Group)。用數學方法可將網狀數據結構轉化為層次數據結構。
(3)關系結構模型
關系式數據結構把一些復雜的數據結構歸結為簡單的二元關系(即二維表格形式)。例如某單位的職工關系就是一個二元關系(見表20.6.8)。這個四行六列的表格的每一列稱為一個欄位(即屬性),欄位名相當於標題欄中的標題(屬性名稱);表的每一行是包含了六個屬性(工號、姓名、年齡、性別、職務、工資)的一個六元組,即一個人的記錄。這個表格清晰地反映出該單位職工的基本情況。
表20.6.8 職工基本情況
通常一個m行、n列的二維表格的結構如表20.6.9所示。
表中每一行表示一個記錄值,每一列表示一個屬性(即欄位或數據項)。該表一共有m個記錄。每個記錄包含n個屬性。
作為一個關系的二維表,必須滿足以下條件:
(1)表中每一列必須是基本數據項(即不可再分解)。(2)表中每一列必須具有相同的數據類型(例如字元型或數值型)。(3)表中每一列的名字必須是唯一的。(4)表中不應有內容完全相同的行。(5)行的順序與列的順序不影響表格中所表示的信息的含義。
由關系數據結構組成的資料庫系統被稱為關系資料庫系統。
在關系資料庫中,對數據的操作幾乎全部建立在一個或多個關系表格上,通過對這些關系表格的分類、合並、連接或選取等運算來實現數據的管理。dBASEII就是這類資料庫管理系統的典型代表。對於一個實際的應用問題(如人事管理問題),有時需要多個關系才能實現。用dBASEII建立起來的一個關系稱為一個資料庫(或稱資料庫文件),而把對應多個關系建立起來的多個資料庫稱為資料庫系統。dBASEII的另一個重要功能是通過建立命令文件來實現對資料庫的使用和管理,對於一個資料庫系統相應的命令序列文件,稱為該資料庫的應用系統。因此,可以概括地說,一個關系稱為一個資料庫,若干個資料庫可以構成一個資料庫系統。資料庫系統可以派生出各種不同類型的輔助文件和建立它的應用系統。
· 資料庫的要求與特性
為了使各種類型的資料庫系統能夠充分發揮它們的優越性,必須對資料庫管理系統的使用提出一些明確的要求。
1.建立資料庫文件的要求
(1)盡量減少數據的重復,使數據具有最小的冗餘度。計算機早期應用中的文件管理系統,由於數據文件是用戶各自建立的,幾個用戶即使有許多相同的數據也得放在各自的文件中,因而造成存儲的數據大量重復,浪費存儲空間。資料庫技術正是為了克服這一缺點而出現的,所以在組織數據的存儲時應避免出現冗餘。
(2)提高數據的利用率,使眾多用戶都能共享數據資源。
(3)注意保持數據的完整性。這對某些需要歷史數據來進行預測、決策的部門(如統計局、銀行等)特別重要。
(4)注意同一數據描述方法的一致性,使數據操作不致發生混亂。如一個人的學歷在人事檔案中是大學畢業,而在科技檔案中卻是大學程度,這樣就容易造成混亂。
(5)對於某些需要保密的數據,必須增設保密措施。
(6)數據的查找率高,根據需要數據應能被及時維護。
2.資料庫文件的特徵
無論使用哪一種資料庫管理系統,由它們所建立的資料庫文件都可以看成是具有相同性質的記錄的集合,因而這些資料庫文件都有相同的特性:
(1)文件的記錄格式相同,長度相等。
(2)不同的行是不同的記錄,因而具有不同的內容。
(3)不同的列表示不同的欄位名,同一列中的數據的性質(屬性)相同。
(4)每一行各列的內容是不能分割的,但行的順序和列的順序不影響文件內容的表達。
3.文件的分類
對文件引用最多的是主文件和事物文件。其他的文件分類還包括表文件、備份文件、檔案的輸出文件等。下面將講述這些文件。
(1)主文件。主文件是某特定應用領域的永久性的數據資源。主文件包含那些被定期存取以提供信息和經常更新以反映最新狀態的記錄。典型的主文件有庫存文件、職工主文件和收帳主文件等。
(2)事務文件。事務文件包含著作為一個信息系統的數據活動(事務)的那些記錄。這些事務被分批以構成事務文件。例如,從每周工資卡上錄制下來的數分批存放在一個事務文件上,然後對照工資清單文件進行處理以便列印出工資支票和工資記錄簿。
(3)表文件。表文件是一些表格。之所以單獨建立表文件而不把表設計在程序中是為了便於修改。例如,一個公用事業公司的稅率表或國內稅務局的稅率就可以存儲在表中文件。
(4)備用文件。備用文件是現有生產性文件的一個復製品。一旦生產性文件受到破壞,利用備用文件就可以重新建立生產性文件。
(5)檔案文件。檔案文件不是提供當前處理使用的,而是保存起來作為歷史參照的。例如,國內稅務局(IRS)可能要求檢查某個人最近15年的歷史。實際上,檔案文件恰恰是在給定時間內工作的一個"快照"。
(6)輸出文件。輸出文件包含將要列印在列印機上的、顯在屏幕上的或者繪制在繪圖儀上的那些信息的數值映象。輸出文件可以是"假離線的"(存儲在輔存設備上),當輸出設備可用時才進行實際的輸出。