官术网_书友最值得收藏!

1.2 數據庫系統

1.數據庫

隨著信息技術的發展和市場需求的提升,特別是20世紀90年代以后,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需的各種數據管理的方式。數據庫(DataBase, DB)可直觀地理解成數據倉庫,是按照一定數據結構來組織、存儲和管理數據的集合,不僅包含了描述事物本身的數據,還包含了相關數據之間的聯系。數據庫以文件的形式存儲在外存中,用戶通過數據庫管理系統統一管理和控制數據。

數據庫有多種類型,從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型數據庫系統,都在各方面得到了廣泛的應用。

2.數據庫管理系統

數據庫管理系統(DBMS)是一種操縱和管理數據庫的軟件,用于建立、使用和維護數據庫。它在操作系統基礎上運行,對數據庫進行統一的管理和控制,以保證數據庫的安全性和完整性。用戶通過數據庫管理系統訪問數據庫中的數據,數據庫管理員通過數據庫管理系統進行數據庫的維護工作,使多個應用程序和用戶可以用不同的方法同時或不同時地建立、修改和查詢數據庫。

數據庫管理系統提供了數據定義語言(Data Definition Language, DDL)、數據操作語言(Data Manipulation Language, DML)和數據控制語言(Data Control Language, DCL),供用戶定義數據庫的模式結構和權限約束,實現對數據的追加、刪除等操作,以及設置或更改數據庫用戶或角色權限。數據庫管理系統的主要功能如下。

數據定義:利用DDL,供用戶定義數據庫的三級模式結構、兩級映像以及完整性約束和保密限制等約束。DDL主要用于建立、修改數據庫的庫結構。DDL所描述的庫結構僅僅給出了數據庫的框架,數據庫的框架信息被存放在數據字典(Data Dictionary)中。

數據操作:利用DML,供用戶實現對數據的追加、刪除、更新、查詢等操作。

數據控制:利用DCL,設置或更改數據庫用戶或角色權限,實現對數據庫的控制和管理,包括并發控制、安全性檢查、完整性檢查、數據維護等功能。不同于程序設計語言,在默認狀態下,只有sysadmin、dbcreator、db_owner或db_securityadmin等人員才有權力執行DCL。

3.數據庫系統

數據庫系統(DataBase System, DBS)是由數據庫及其管理軟件組成的系統,是為適應數據處理的需要而發展起來的一種較為理想的數據處理的核心機構。數據庫系統是一個實際可運行的存儲、維護和為應用系統提供數據的軟件系統,是存儲介質、處理對象和管理系統的集合體。

數據庫系統通常由軟件、數據庫和數據管理員組成。其軟件主要包括操作系統、各種宿主語言、實用程序和數據庫管理系統。數據庫由數據庫管理系統統一管理,數據的插入、修改和檢索均要通過數據庫管理系統進行。數據管理員負責創建、監控和維護整個數據庫,使數據能被任何有權使用的人有效使用。數據庫管理員一般由業務水平較高、資歷較深的人員擔任。

數據庫系統的個體含義是指一個具體的數據庫管理系統軟件和用它建立起來的數據庫,其學科含義是指研究、開發、建立、維護和應用數據庫系統涉及的理論、方法、技術所構成的學科。

數據庫系統的出現是計算機應用的一個里程牌,使得計算機應用從以科學計算為主轉向以數據處理為主,從而使計算機得以在各行各業乃至家庭普遍使用。

數據庫系統一般由4部分組成:數據庫,數據庫管理系統(DBMS),數據庫管理員(DBA)和用戶,應用程序。

4.數據庫的發展

數據庫技術的發展已經成為先進信息技術的重要組成部分,是現代計算機信息系統和計算機應用系統的基礎和核心。數據庫技術最初產生于20世紀60年代中期,根據數據模型的發展,可以劃分為三個階段:第一階段的網狀、層次數據庫系統,第二階段的關系數據庫系統,第三階段的以面向對象模型為主要特征的數據庫系統。

第一階段數據庫的代表是1969年IBM公司研制的層次模型的數據庫管理系統IMS和70年代美國數據庫系統語言協商CODASYL下屬的數據庫任務組DBTG提議的網狀模型。層次數據庫的數據模型是有根的定向有序樹,網狀模型對應的是有向圖。這兩種數據庫奠定了現代數據庫發展的基礎。這兩種數據庫具有如下共同點:

? 支持三級模式(外模式、模式、內模式),保證數據庫系統具有數據與程序的物理獨立性和一定的邏輯獨立性。

? 用存取路徑來表示數據之間的聯系。

? 有獨立的數據定義語言。

? 導航式的數據操縱語言。

第二階段數據庫的主要特征是支持關系數據模型(數據結構、關系操作、數據完整性)。關系模型具有以下特點:

? 關系模型的概念單一,實體和實體之間的連系用關系來表示。

? 以關系數學為基礎。

? 數據的物理存儲和存取路徑對用戶不透明。

? 關系數據庫語言是非過程化的。

第三階段數據庫產生于20世紀80年代,隨著科學技術的不斷進步,各領域對數據庫技術提出了更多的需求,關系型數據庫已經不能完全滿足需求,于是產生了第三代數據庫。主要有以下特征:

? 支持數據管理、對象管理和知識管理。

? 保持和繼承了第二代數據庫系統的技術。

? 對其他系統開放,支持數據庫語言標準,支持標準網絡協議,有良好的可移植性、可連接性、可擴展性和互操作性等。

第三代數據庫支持多種數據模型(如關系模型和面向對象的模型),并與諸多新技術相結合(如分布處理技術、并行計算技術、人工智能技術、多媒體技術、模糊技術),廣泛應用于多個領域(商業管理、GIS、計劃統計等),由此也衍生出多種數據庫技術。

分布式數據庫允許用戶開發的應用程序把多個物理分開的、通過網絡互連的數據庫當作一個完整的數據庫看待。并行數據庫通過簇技術把一個大的事務分散到簇中的多個節點去執行,提高了數據庫的吞吐和容錯性。多媒體數據庫提供了一系列用來存儲圖像、音頻和視頻對象的類型,更好地對多媒體數據進行存儲、管理、查詢。模糊數據庫是存儲、組織、管理和操縱模糊數據庫的數據庫,可以用于模糊知識處理。

20世紀80年代中期,噴氣發動機實驗室(JPL)與其他政府機構一樣,也使用微型機。這些獨立的計算機使工程師有時不用操作大型機就能處理大量的數據集合,同時把簡單的類似英語的命令(他們可以在DOS下執行這些命令)組合到程序中。這些程序變成了應用程序,并且一種新型的應用程序開發人員誕生了。那時經常使用電子數據表和靜態數據包,但是它們都比較麻煩,并且容易造成數據丟失。

數據庫是處理大量數據的邏輯解決方案,因此天才程序員C. Wayne Ratliff(韋恩·萊特萊夫)當時編寫了一個自帶有數據庫的程序(Vulcan),同時添加了一組可以在數據上執行的命令。該程序帶有一個交互式的點提示符,使用易于記住的慣用語,允許工程師使用一組簡短的命令操作自己的數據就像操作物理數據集合一樣。Wayne Ratliff說:“dBASE與BASIC、C、FORTRAN和COBOL是不同的,在dBASE程序中很多麻煩的工作已經被做好了。數據維護是由dBASE而不是由用戶完成的,因此用戶可以把精力集中在自己的事務上,不必與處理打開、讀取和關閉文件、管理空間分配這些麻煩的工作絞在一起。”這個程序最終成為Ashton-Tate的dBASE數據庫程序。

在它發布后的幾年之內,大量的dBASE克隆產品沖擊了市場。1986年,美國FOX軟件公司發布了與dBASE兼容的FoxBase, FoxBase的高速和穩定性使它獲得了很大的名氣。此外,Fox小組很敏捷,對用戶團體做出的響應更多。通過定期的修補,通過CompuServe和重要版本的及時支持,作為對用戶請求的回應,FoxBase在非常接近原始版本的同時,通過添加提高生產率的工具變得更快了。

FoxPro是FoxBase的加強版。FoxPro比FoxBase在功能和性能上有了很大的改進,主要引入了窗口、按紐、列表框和文本框等控件,進一步提高了系統的開發能力。Fox小組已經提供了跨平臺的編譯器,允許開發者在UNIX或DOS上以及Windows版本和Mac上部署應用程序。接著出現了FoxPro 2.0,它帶來了“Rushmore”(FoxPro著名的數據性能增強部分)技術、在線的SQL命令、圖形屏幕和報表編寫器。

1992年,Fox Software公司被微軟公司收購,微軟公司利用自身的技術優勢,在不到4年的時間內,先后開發出了FoxPro 2.5、FoxPro 2.6等約20個軟件產品及相關產品。1995年,微軟公司發布了Visual FoxPro 3.0,全面支持面向對象技術和可視化編程技術。1998年,微軟公司推出了包含Visual FoxPro 6.0在內的可視化編程語言集成包Visual Studio 6.0。

雖然很久以來,Visual FoxPro被眾多迷人的產品掩蓋了光芒,但現在它仍然是市場中用于完成數據事務的最佳工具之一。目前,Visual FoxPro仍然是希望完成事務的專業人員的選擇,特別適合那些主要工作不是編寫代碼的工作人員,仍然是那些對已有代碼做了很大投入的開發者的選擇,仍然是資源有限的企業的選擇。

進入21世紀以來,微軟公司相繼發布了Visual FoxPro 7.0(2001年)、Visual FoxPro 8.0(2003年)和Visual FoxPro 9.0(2004年),本書將以Visual FoxPro 9.0作為教學平臺。

5.數據庫系統的結構

(1)組成結構

數據庫系統由支持數據庫運行的硬件、數據庫、數據庫管理系統、相關軟件和各類人員等組成,如圖1-3所示。

圖1-3

(2)體系結構

考察數據庫系統的結構可以有多種不同的層次和角度,從數據庫最終用戶角度看,數據庫系統分為單用戶、主從式結構、客戶機-服務器結構、瀏覽器/服務器結構等數據庫系統。

① 單用戶。單用戶數據庫系統是一種最簡單的數據庫系統。整個數據庫系統包括應用程序、數據庫管理系統、數據庫都安裝在一臺計算機上,一個用戶獨占數據,不同的計算機用戶不能共享數據。通常,單用戶數據庫系統適于用戶少、數據量不多的情況。

② 主從式結構。主從式結構是指一個主機帶多個終端的結構,如圖1-4所示。數據庫都集中存放在主機上,終端只作為主機的輸入、輸出設備,多個用戶可通過終端存取主機上的數據。由于所有任務都是由主機來完成的,當終端用戶數目增加到一定程度后,主機的任務會過于繁重,響應緩慢,系統性能將會大幅下降。目前,只有少數大型機構還使用這種架構。

圖1-4

③ 客戶機-服務器結構(Client/Sever, C/S)。C/S數據庫系統可以分為集中式和分布式兩種結構。集中式C/S結構如圖1-5所示,所有數據存放在一臺數據庫服務器上;分布式C/S結構如圖1-6所示,適用于業務上相互聯系而地理上分散的數據庫,數據被分散在多臺數據庫服務器上。

圖1-5

圖1-6

④ 瀏覽器/服務器結構數據庫(Browser/Web/Server, B/W/S)。B/W/S結構在Internet中得到了廣泛應用,如圖1-7所示。客戶端僅安裝瀏覽器軟件,用戶通過URL(Uniform/Universal Resource Locator,統一資源地址)向Web服務器發出請求,Web服務器運行腳本程序,向數據庫服務器發出數據請求;數據庫服務器執行相應處理后,將處理結果返回給Web服務器;Web服務器根據結果產生網頁文件,客戶端接受到網頁文件后,瀏覽器將結果顯示出來。

圖1-7

主站蜘蛛池模板: 社旗县| 绥阳县| 鄂温| 镇巴县| 杭锦旗| 阜南县| 桂阳县| 青神县| 韶关市| 都昌县| 公安县| 泸溪县| 潜山县| 庐江县| 盖州市| 三穗县| 兖州市| 南安市| 乌兰察布市| 双城市| 瑞丽市| 名山县| 宜丰县| 平罗县| 巢湖市| 吴旗县| 大城县| 德兴市| 榕江县| 精河县| 临泉县| 乐安县| 清远市| 陈巴尔虎旗| 桂阳县| 沾益县| 临夏县| 公主岭市| 中山市| 惠东县| 乐昌市|