天天看點

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

計算機基礎課程系列教材 點選檢視第二章 點選檢視第三章 資料庫與資料處理:Access 2010 實作 第2版

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章
張玉潔 孟祥武 編著

第1章

資料處理與資料庫

早期計算機主要用于科學計算,資料類型單一。随着計算機技術的發展以及計算機的益普及,計算機應用已經遠遠超出了這個範疇。如今面對各種類型的海量資料,利用計算機做得更多的是進行資料處理。資料處理不僅廣泛應用于電信、銀行、證券、航空、教育、出版、氣象等領域,而且在地質勘探測繪、倉庫管理、技術情報管理、銷售、制造、智能交通、電子商務等領域也呈現出勃勃生機。

資料處理離不開軟體的支援,常用的資料處理軟體包括:用于管理資料的檔案系統和資料庫管理系統,用于編寫各種處理程式的進階程式設計語言及其編譯、解釋程式,以及各種資料處理方法的應用軟體包等。

1.1 資料處理

資料和資訊的關系非常密切,多數情況下沒有嚴格的區分。資訊處理從根本上離不開資料,是以資訊處理實質上就是資料處理。而資料處理的最終結果是以資訊或知識的方式展示給使用者,是以資料處理也稱為資訊處理。但在某些特定的環境下,資料和資訊還是兩個不同的概念,不能混用,比如,不能将資料檔案說成資訊檔案等。

1.1.1 資料與資訊

1. 資料

資料是對客觀世界中各種事物的一種抽象、符号化的表示。它采用一種人為規定的符号來表示從現實世界中觀察和收集到的現象和事實。資料的表現形式很多,可以是數字、文字、時間,也可以是圖形、圖像、動畫、聲音等多媒體形式。

從計算機的角度看,資料泛指可以被計算機接受并能被計算機處理的符号。從資料庫的角度看,資料就是資料庫中存儲的基本對象。資料有型與值之分。資料的型給出了該資料所屬資料類型的說明,如整型、字元型、布爾型等;資料的值給出了符合給定型的數值,值是型的一個執行個體。資料的型相當于程式設計語言中變量的類型說明,資料的值相當于變量的取值。資料的型基本上相對穩定,資料的值則是不斷變化的。

2. 資訊

資訊源于拉丁文“Information”,是指一種陳述或解釋、了解等。資料經過解釋并賦予一定的含義之後,就成為資訊,即資訊是根據需要對資料進行加工處理後得到的結果。

3. 資料與資訊的關系

資料是資訊的符号表示,是資訊的具體表現形式,資訊隻有通過資料的形式表示出來才能被了解和接受。資訊是資料的内涵,即資料的語義,資訊在計算機中的存儲即為資料。資訊是觀念上的,受制于人對客觀事物變化規律的認知。例如,一個數字40的語義可能是年齡為40歲、體重為40公斤、價格為40元、考試成績為40分、蘋果為40個、書為40本等,也可能是高燒40度、水深40米、雨量達到40毫米、血壓低壓為40等。又比如,文字“黎明”的語義可能是一個詞語,表示天快要亮或剛亮的時候,也可能是名稱,如某人的姓名、壁畫的名字、繪本的名字等。

資料要符合其語義,資料與其語義是不可分的。資料庫系統要保證資料庫中的資料符合其語義。

1.1.2 資料處理與資料管理

資料處理的發展及應用的廣度和深度,極大地影響着人類社會發展的程序。資料處理,也稱資訊處理,是将資料加工成資訊的過程,具體指利用計算機對各種資料(包括數值資料和非數值資料)進行收集、整理、存儲、分類、排序、檢索、維護、加工、統計、傳輸等一系列活動的總和。資料處理的主要目的之一是從大量無序、難以了解的資料中,抽取并推導出有用的資料成分,作為行為和決策的依據。

資料處理貫穿于社會生産和社會生活的各個領域。通常,資料處理的計算方法和過程比較簡單,但處理的資料量通常很大,資料結構複雜,是以,資料處理的重點不是計算,而是資料管理。

資料管理是資料處理的核心,主要功能包括資料的收集和分類、資料的表示和存儲、資料的定位與查找、資料的維護和保護、提供資料通路接口和資料服務(如性能檢測分析、可視化界面服務)等。

資料處理與資料管理密切相關,資料管理技術的優劣直接影響資料處理的效果,資料庫技術正是針對這一目标進行研究、發展并逐漸完善起來的專門技術。資料是資料庫技術的研究目标,資料處理是資料庫技術的應用方向,而資料管理則是資料庫技術研究的主要内容。

1.1.3 資料管理簡史

資料管理作為計算機應用領域中最大的一類應用,随着應用需求和計算機軟硬體的發展,主要經曆了人工管理、檔案管理和資料庫管理三個發展階段。

1. 人工管理階段

20世紀50年代中期之前,計算機主要用于科學計算。資料儲存設備主要是卡片、紙帶和錄音帶。沒有作業系統和資料管理軟體,資料需要人工管理。資料不儲存,随用随丢。應用程式和資料不可分割,資料完全依賴于應用程式,不具有獨立性,因而資料無法共享。該階段應用程式與資料之間的對應關系如圖l-1表示。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

2. 檔案管理階段

20世紀50年代後期至60年代中期,計算機技術有了很大的發展,開始廣泛應用于資訊處理。資料儲存設備主要是磁盤、磁鼓。磁盤是一種随機存取裝置,允許使用者直接通路資料,擺脫了錄音帶順序通路的限制。該階段出現了作業系統,并使用專門的管理軟體即檔案系統(作業系統中的檔案管理功能)來實施資料管理。資料可以長期儲存在磁盤上,應用程式和資料有了一定的獨立性,資料檔案有了一定的共享性,但存在較大的資料備援。

在檔案系統中,資料的邏輯結構和輸入/輸出格式由程式員在程式中進行定義和管理,資料的實體存儲和存取方法則由檔案系統提供。一個命名的資料集合稱為一個檔案,檔案中的資料被組織成記錄的形式,記錄由字段組成。一個個檔案彼此是孤立的,缺乏聯系。應用程式隻需使用檔案名就可以與資料打交道,而不必關心資料的實體位置。圖1-2給出了一個使用檔案系統進行資料管理的示例。假設學生處應用程式需要學生檔案F1,該檔案包含了學生的基本資訊。教務處應用程式需要學生資訊檔案F1、課程檔案F21、選課檔案F22、授課檔案F23以及教工檔案F3。人事處應用程式需要教工檔案F3,該檔案包含了教工的基本資訊。這些檔案的結構如下:

F1:學号、姓名、性别、出生日期、所在院系、專業、班級、聯系電話、宿舍位址

F21:課程号、課程名、授課學期、學分、課程性質、開課學院

F22:學号、姓名、所在院系、專業、班級、課程号、課程名、授課學期、學分、成績

F23:教師号、教師姓名、性别、職稱、課程号、課程名、授課學期、學分、課程性質、授課年度

F3:教工号、姓名、性别、出生日期、所在院系、最終學曆、職稱、聯系電話、家庭住址

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

仔細分析這些資料的組織方式後發現,使用檔案系統來管理資料存在如下一些缺點:

(1)資料共享差,同樣的資料在多個檔案中重複存儲,備援較大

學生的學号、姓名、所在院系、專業、班級等基本資訊既儲存在學生檔案F1中,又儲存在F22中;課程的課程号、課程名、授課學期、學分、課程性質既儲存在F21中,又儲存在F23中;教師的教師号、姓名、性别、職稱等基本資訊既儲存在F3中,又儲存在F23中。

這樣的資料組織方式使得相同資料重複儲存,不能被共享,既浪費空間,又會影響資料的完整性。比如,某個學生轉專業了,那麼所有包含這些資料的檔案都必須更新,以保持資料的完整性。然而,檔案系統不具備維護資料一緻性的功能,不會自動完成這些更新,需要人工完成,當資料重複存儲在多處時,很難保證每一處都能及時更新,這樣很容易造成資料的不一緻,進而失去資料的可信性。

(2)檔案是孤立存在的,資料是分離的

由于檔案系統不具備自動實作資料之間關聯的功能,無法反映現實世界事物之間的内在聯系,檔案之間互相獨立,是以要建立檔案之間的聯系,必須通過應用程式來構造。比如,若查詢某位教師所教授的某門課的學生資訊,需要以某種方式将多個檔案關聯,以圖1-2為例,至少需要将F1、F22、F23三個檔案進行關聯,從中提取需要的資料并組成一個新的檔案。

(3)資料的獨立性差,程式和資料沒有真正分離

檔案系統中,應用程式依賴檔案的結構,每一次修改檔案結構,都要修改相應的應用程式。例如,如果修改學生檔案F1中專業的字段長度,或者在F1中增加或删除一個字段,那麼所有使用F1檔案的應用程式都必須修改。

(4)檔案系統提供的操作有限

檔案系統隻提供了幾個低級的檔案操作指令,如果需要進行檔案的查詢、修改,則需要編寫相應的應用程式來實作,而且功能相同的操作也很難共享應用程式。此外,檔案系統很難控制使用者的某些檔案操作,比如,隻能讀寫檔案但不能删除檔案,或者隻能讀檔案中的部分資料等。

3. 資料庫管理階段

20世紀60年代後期,随着應用需求的增加、軟硬體技術發展的日趨成熟,計算機用于資訊處理的規模越來越大,對資料管理技術的要求也越來越高,原有的檔案系統已經不能勝任資料管理的任務。與此同時,計算機網絡系統和分布式系統的相繼出現,導緻急需一種新的能夠在多使用者環境下進行資料共享和處理的資料管理軟體。在這個背景下,資料庫管理系統(DataBase Management System, DBMS)應運而生。

在資料庫管理階段,資料由DBMS統一管理和控制,包括資料的安全性控制、資料的完整性控制、并發控制以及資料庫恢複等,實作整體資料的結構化,資料的結構使用資料模型來描述,無須程式定義和解釋。資料面向整個系統,可以被多個使用者或應用程式共享,提高了資料的共享性,減少了資料備援,保證了資料的一緻性和完整性。資料與應用程式相對獨立,減少了應用程式開發和維護的成本。資料庫管理階段,應用程式與資料之間的對應關系如圖l-3所示。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

資料庫管理系統的出現,使得以資料庫為中心的資料庫管理技術(簡稱資料庫技術)成為計算機領域發展最快的技術之一。

1.1.4 資料庫技術的發展和未來

1. 關系型資料庫技術

在資料庫管理階段,首先出現的是層次資料庫管理系統和網狀資料庫管理系統,到了20世紀70年代出現了關系型資料庫管理系統(Relational DataBase Management System, RDBMS),它基于E. F. Codd所提出的關系資料模型,這種資料模型最大的優點在于資料的邏輯結構簡單,就是二維表(也稱關系)。在目前使用的資料處理軟體中,RDBMS占據了統治地位。從甲骨文公司的Oracle,到IBM的DB2和Informix、Sybase公司的Sybase、微軟公司的SQL Server和Access,再到開源軟體MySQL(Oracle公司)、PostgreSQL等,這些關系型資料庫管理系統被廣泛應用于各個不同的行業領域。關系型資料庫技術的主要特點如下:

  • 采用關系模型表示複雜的資料結構。關系型資料庫将所有的資料以行和列的二進制表現形式儲存在一個規範的二維表中,有嚴格的字段定義和資料類型限制,對資料的讀寫以行(即記錄)為機關。
  • 采用SQL技術标準對資料庫進行定義、操作和控制,增加了軟體的可移植性。
  • 在資料進行中嚴格遵守ACID原則,采用強事務保證資料的一緻性和安全性。
  • 可以對多個資料表進行JOIN操作,以完成複雜的查詢任務。
  • 盡可能解決盡可能多的資料處理和應用問題,因而常作為通用型的資料庫技術。

關系型資料庫技術也存在一些不足,比如,不适合大資料寫入處理的場景,資料管理規模和通路速度受伺服器實體性能(指硬碟、記憶體、CPU、主機闆總線等硬體最大性能名額)的限制,橫向擴充(即構成多伺服器叢集)存在困難。

随着資料庫應用的日益複雜,比如對于計算機輔助設計和制造、數字出版、地理資訊系統、動态的Web站點等需要處理多媒體資料并且能夠根據使用者要求進行互動式修改的複雜應用場景來說,RDBMS開始表現出一些不适應。此時出現了面向對象的資料庫管理系統(Object-Oriented DataBase Management System, OODBMS),它将面向對象的概念與資料庫系統相結合,可以為多種進階資料庫應用提供适當的解決方案,目前多用于工程和設計領域。OODBMS存在的很多缺點使其占據的市場佔有率不多。比如,缺乏通用的資料模型;與RDBMS相比,OODBMS提供的功能比較複雜,難以使用;OODBMS面向程式員而不是非專業的最終使用者,這使得設計和管理OODBMS的學習過程很艱難。這些都導緻了人們對這種技術的排斥。

進入20世紀90年代,Internet的興起為商業智能提供了許多機會,DBMS開發商專注于資料倉庫系統和資料挖掘産品的開發。資料倉庫系統提供了資料分析機制,使用者可以将分析結果用于決策支援。随着Web技術的迅猛發展以及XML的出現, 資料庫與Web資料庫內建環境的內建(簡稱Web資料庫內建)以及XML與DBMS産品的內建呈現出高度發展的态勢。Web資料庫內建的方案的優點包括:具有簡單性、平台無關性,使用Web浏覽器輕松通路資料庫,連接配接在Internet的所有機器上的文檔都采用統一的标準HTML等。

Web資料庫內建的一些流行方案主要包括:使用腳本語言(如JavaScript、VBScript、PHP),擴充浏覽器和Web伺服器的能力,使其提供額外的資料庫功能;使用JDBC,JDBC是Java 通路RDBMS最主要也是最成熟的方法,在JDBC中定義了資料庫通路的API,Java可以作為編寫資料庫應用的宿主語言;Microsoft的ODBC技術(提供了通路多種SQL資料庫的通用接口)以及Web解決平台,包括.NET、.ASP、ADO等。

為使HTML文檔具有動态特性,浏覽器開發商引入了專用的HTML标記,這使開發Web文檔變得複雜和困難。XML作為HTML的補充,使得不同類型的資料可以在網絡上輕松交換。随着采用XML格式資料量的增大,對資料進行存儲和查詢的需求也日益增多。目前XML與DBMS産品的內建主要采用SQL/XML:2011資料模型,該模型在RDBMS中引入一種新的資料類型XML,并為該類型定義一組操作,将XML文檔作為關系中的值,定義從關系資料到XML的一組映射。在存儲了XML文檔之後利用SQL:2011标準(擴充的SQL,用于釋出XML)對資料進行查詢。

2. NoSQL(Not only SQL)資料庫技術

随着物聯網、雲計算、大資料技術的興起,21世紀迎來了資訊爆炸的時代,尤其是在21世紀前10年出現了大資料處理問題,推動了非關系型資料庫技術尤其是NoSQL技術的發展。相比關系型資料庫技術盡可能解決盡可能多的資料應用問題,NoSQL資料庫技術隻解決某一個方面或某一主題的問題。NoSQL重點關注“更快的處理速度”和“更恰當的存儲”。NoSQL資料庫沒有固定的表結構,采用類似文檔、鍵值、列族等非關系型資料模型,可以自由、靈活定義并在一個資料元素中存儲各種不同類型的資料,支援海量資料存儲,具有靈活的水準擴充能力,在處理資料庫伺服器大規模負載增加方面具有較高的成本效益。但是為了提高操作性能,NoSQL放棄了很多像關系型資料庫實施的規則限制,将本該資料庫系統完成的功能交給了資料庫程式員,不僅增加了資料庫程式員的負擔,也對他們的分析和程式設計能力提出了更高的要求。

近些年,NoSQL資料庫發展勢頭迅猛,數量上多達200多種,但歸結起來通常分為鍵值資料庫、文檔資料庫、列族資料庫和圖資料庫4大類。這4類NoSQL資料庫都是針對一種資料模型進行資料處理,各有特點和長處。

(1)鍵值資料庫(Key-Value Database)

鍵值資料庫的設計原則是以提高資料處理速度為目标,适合存在大量寫操作的應用需求,擅長處理數組類型的資料。鍵值資料庫運作在記憶體(它以記憶體或SSD為資料運作存儲的主環境),采用定期向硬碟寫資料的持久化政策,是以,鍵值資料庫常被稱為記憶體資料庫。資料存儲結構隻有鍵(Key)和值(Value),并成對出現。在Value中可以儲存任何類型的資料,通過Key來存儲和檢索具體的Value。鍵值資料庫的優點是資料結構簡單、提供分布式處理能力、高速計算和快速響應,隻要配置更大容量、更快速度的記憶體就可以輕松應對海量資料通路的速度問題。缺點是無法存儲結構化資訊、在發生故障時不支援復原操作,是以無法支援事務,不容易建立資料集之間複雜的橫向關系,隻限于兩個資料集之間的有限計算。此外,對值進行多值查詢的功能較弱。

鍵值資料庫産品有Redis、Memcached、Riak、BerkeleyDB、SimpleDB、DynamoDB以及甲骨文的Oracle NoSQL資料庫等。作為鍵值資料庫代表之一的Redis,使用C語言開發,提供了100多條指令,這些指令要比SQL語言簡單很多。Redis支援的鍵值資料類型隻有5種(字元串類型、散列類型、清單類型、集合類型、有序集合類型),并提供了幾十種不同程式設計語言的用戶端庫,這使得在程式中與Redis的互動變得輕松容易。此外,Redis資料庫中的所有資料都存儲在記憶體中,并提供了持久化支援,将記憶體中的資料異步寫入硬碟中,避免了程式退出而導緻記憶體中資料丢失的問題。目前,Redis得到越來越多公司的青睐,百度、新浪微網誌、京東、阿裡巴巴、騰訊、美團網、Twitter、Flickr、Stack Overflow、GitHub(Redis的開源代碼就托管在其上)等都是Redis的使用者。

(2)文檔資料庫(Document Store Database)

文檔資料庫是為解決大資料環境下的快速響應而設計的,擅長處理基于JSON、XML、BSON等格式的文檔以及集合類型的資料。它具有強大的查詢功能,看上去更接近于關系型資料庫,并具有很強的可伸縮性,可以輕松解決PB級甚至EB級的資料存儲需求,這給大資料處理帶來了很多的友善。在文檔資料庫中,集合對應關系型資料庫中的表,文檔對應關系型資料庫中的記錄,是資料庫的最小機關。每一條文檔由大括号辨別,其中包含若幹個鍵值對(Key-Value Pair),鍵值對類似于關系型資料庫中的字段值。

文檔資料庫同關系型資料庫一樣,也是建立在對磁盤讀寫的基礎上,對資料進行各種操作。但是為提高讀寫性能,文檔資料庫摒棄了關系型資料庫規則的限制。對文檔資料庫的基本操作有讀、寫、修改和删除4種。

最有名的文檔資料庫産品是MongoDB。百度雲、騰訊雲、新浪雲、阿裡雲、華為、攜程、中國銀行、中國東方航空公司、Foursquare、eBay、MTV、MetLife等都是MongoDB的使用者。

(3)列族資料庫(Column Family Database)

在當今的大資料時代,列族資料庫格外引人注目,它特别擅長PB、EB級别的大資料存儲和幾千或幾萬台級别的伺服器分布式存儲管理,具有豐富的查詢功能以及高密集寫入處理能力。列族資料庫的資料存儲模式比文檔資料庫和鍵值資料庫的複雜,其存儲結構由4部分組成:命名空間(相當于關系型資料庫中的表名)、行鍵(相當于關系型資料庫中的表的主鍵)、列族(相當于關系型資料庫中的表結構)、列(相當于關系型資料庫中的表的字段),列的每個值都附帶一個時間戳。

列族資料庫的産品有BigTable、HBase、HadoopDB、Cassandra、HyperTable等。Twitter、eBay、Facebook、Netflix都是列族資料庫産品的使用者。

(4)圖資料庫(Graph Database)

圖資料庫專用于處理高度關聯的資料,支援複雜的圖算法,建構複雜的關系圖譜,特别适合社交網絡(QQ、微信)、推薦系統、模式識别、物流派送、規則推理等應用場景。圖資料庫以圖論為基礎,使用圖作為資料模型來存儲資料,節點、邊、屬性構成了圖存儲的三要素,凡是有類似關系的事物都可以使用圖存儲來處理。圖存儲資料本身非常簡單,主要通過節點之間的關系發現有價值的資料規律。

圖資料庫的産品有Neo4j、Infinite Graph、Allegro Graph、GraphDB等。其中,Neo4j是目前使用較多的産品,它無須事先定義存儲結構,完全相容關系型資料庫的ACID特性,提供事務處理能力,為單個節點提供Create、Delete、Update、Remove、Merge等操作,為圖提供圖的交集、并集以及圖的周遊等操作。Neo4j成功應用于eBay、Adobe、Cisco、T-Mobile等公司。

3. NewSQL資料庫技術

近年來,出現了NewSQL資料庫技術。NewSQL技術結合了關系型資料庫與NoSQL資料庫的優點,用于解決大資料環境下的資料存儲和處理問題,是對各種新的可擴充、高性能資料庫的統稱。NewSQL資料庫不僅具有NoSQL資料庫良好的擴充性和靈活性,還保持了關系型資料庫支援ACID和SQL等特性。NewSQL資料庫産品有Spanner、SequoiaDB、VoltDB、Clustrix、GenieDB等。

無論資料庫技術如何發展,關系型資料庫仍然是當今世界軟體的基礎,關系型資料庫及其第三範式和SQL接口仍然在穩定地運作着。本書将詳細介紹關系型資料庫技術的相關概念、原理以及應用。

1.2 資料庫與資料庫管理系統

1.2.1 資料庫

資料庫(DataBase,DB)是指長期存儲在錄音帶、磁盤、CD光牒或其他外存媒體上,按照一定的結構組織在一起的互相關聯的資料集合。

從不同的角度看資料庫有不同的了解,如圖1-4所示。從使用者的角度來看,資料庫就是一種資料庫應用軟體;從資料模型的角度來看,資料庫就是資料庫管理系統;從資料的實際組織情況來看,資料庫才是真正意義上的資料庫。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

資料庫具有如下特征:

1)在資料庫中,不僅能夠表示資料本身,還能夠表示資料與資料之間的聯系。比如,教學管理資料庫中存放學生和課程的資料,學生資料通過選課與課程資料産生聯系。

2)資料通過一定的資料模型進行組織、描述和存儲。資料模型包括層次模型、網狀模型和關系模型等。

3)具有較小的備援度、較高的資料獨立性和易擴充性。

4)使用者和應用程式可以共享資料。

5)資料的各種操作如查詢、修改、删除等都由一種專業軟體統一進行管理。

在當今數字時代,我們的數字互動,無論是資訊檢索、微網誌搜尋和排序,還是社交、購物、評論、點贊,本質上都是在與資料庫互動。

1.2.2 資料庫管理系統

上述資料庫的特征蘊藏在一種名為資料庫管理系統(DBMS)的專業軟體中。DBMS是一個與使用者的應用程式和資料庫互相作用的軟體,它的目标是将資料作為一種可管理的資源來處理。如圖1-5所示,DBMS是一種介于使用者與作業系統之間,并在作業系統的支援下,專門用于資料管理的系統軟體。它提供了有效建立、管理,并安全持久地儲存大量資料的能力。DBMS是資料庫系統的核心組成部分,它完成“科學組織和存儲資料,高效擷取和處理資料”的任務。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

可以将DBMS看作某種資料模型在計算機系統上的具體實作。使用者通過DBMS通路資料庫中的資料,資料庫管理者也通過DBMS進行資料庫的維護工作。

DBMS的主要功能包括:

1)資料定義功能。通過DBMS提供的資料定義語言(Data Definition Language,DDL)及其翻譯程式,定義資料庫的結構、資料庫中的各種資料對象,以及資料完整性和其他的限制條件。

2)資料操縱功能。通過DBMS提供的資料操縱語言(Data Manipulation Language,DML)來完成對資料庫中資料的插入、修改、删除和查詢操作。

3)資料控制功能。通過DBMS提供的資料控制語言(Data Control Language,DCL)對資料庫進行統一管理和控制。比如,DBMS提供完整性控制,保證所存儲資料的一緻性;提供安全控制機制,禁止沒有被授權的使用者通路資料庫;提供多使用者環境下的并發控制機制,允許共享資料庫。

除了上述核心功能之外,DBMS還提供資料字典,用于存放資料庫各級結構的描述;提供通路資料庫的方法,即資料庫接口以供使用者或應用程式通路資料庫;提供資料維護功能,比如資料庫的資料裝入、轉換、存儲、備份和發生故障後的系統恢複,以及資料庫的性能分析和監測等。

資料字典中存放的是資料庫系統的一些說明資訊,即資料的資料,稱為中繼資料,如對各級模式的描述、索引、完整性限制、安全性要求、資料庫的使用人員等說明資訊。類似于日常生活中使用的字典或書的目錄,它能夠幫助DBMS按照使用者指定的資料對象名稱,快速找到所需要的資訊。資料字典提供了對描述資料進行集中管理的手段,可以将它看成是資料庫系統自身的小的、專門的資料庫,差別于真正的實體資料庫,常稱之為描述資料庫或資料庫的資料庫,隻能由資料庫系統本身來通路和修改。資料字典在資料庫系統的設計、實作、運作和維護各階段起着非常重要的作用,是資料管理和控制的有力工具。

1.2.3 認識Access 資料庫管理系統

Access是一種小型的關系資料庫管理系統。Access 2010是微軟2010年推出的Microsoft Office 2010中的一員,它與Word、Excel和PowerPoint等有相同的操作界面和使用環境,具有存儲方式單一、界面友好、易于操作以及強大的互動式設計功能等特點,很多中小型企業、大公司的部門,以及喜愛程式設計的開發人員專門利用它來制作處理資料的桌面應用系統。Access也常用于開發簡單的Web應用程式,或作為客戶/伺服器系統中的用戶端資料庫,以及資料庫相關課程的教學實踐環境。

Access通過資料庫檔案來組織和儲存資料表、查詢、報表、窗體、宏和子產品等資料庫對象,并提供了各種生成器、設計器和向導,以快速、友善地建立資料庫對象和各種控件。此外,Access提供了豐富的内置函數和程式開發語言VBA(Visual Basic for Application),幫助資料庫開發人員快捷開發資料庫系統;還提供了與SQL Server、Oracle、MySQL等資料庫的接口,實作資料共享和交換;可友善與Excel、Word等共享資訊。

1. Access 2010的操作環境

啟動 Access 2010成功後,首先看到的視窗就是 Backstage 視圖,這裡的視圖是指界面。初次使用Access 2010時,首先要利用Backstage 視圖建立資料庫,然後再依次建立資料庫中的各個對象。将建立資料庫對象的界面稱為Access 2010使用者操作界面,該界面主要由快速通路工具欄、功能區、導航窗格和工作區組成。

(1)Backstage 視圖

Backstage 視圖也稱為Access 2010的啟動視窗,如圖1-6所示。該視圖替代了 Office 以前版本中的 Microsoft Office 按鈕和“檔案”菜單。因為通過該視圖整合的各種檔案級操作和任務都是在背景進行的,是以Backstage 視圖也被稱為背景視圖。在實際的操作中,可以單擊“檔案”頁籤随時切換到 Backstage 視圖。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

Backstage 視圖分為兩個部分,左側窗格由一些指令組成,右側窗格顯示不同指令的選擇結果。指令包括建立、儲存、打開、資訊、儲存并釋出、幫助、選項、退出等。此外,與列印相關的指令和設定(如預覽、列印、頁面布局)也集中在Backstage 視圖中。

圖1-6給出的是Backstage 視圖的預設界面,左側窗格中顯示目前指令是“建立”資料庫,在右側窗格中顯示“可用模闆”和“空資料庫”兩個部分。利用它們既可以從頭開始建立新資料庫,也可以從專業設計的資料庫模闆庫中選擇資料庫。“可用模闆”中給出了目前Access系統中所有的資料庫模闆,包括12個樣本模闆(其中包含了5個Web資料庫模闆)、我的模闆以及Office.com提供的“資産”“聯系人”“問題&任務”“非盈利”和“項目”5個模闆類别。單擊“樣本模闆”可以看到目前Access系統所提供的12個樣本模闆,其中包含了預先建立的各種資料庫對象。如果樣本模闆基本符合自己的設計要求,使用者可以立即使用該模闆或做簡單修改後,快速建立起自己的資料庫檔案。如果沒有合适的模闆,可以在Office.com上搜尋、下載下傳由他人提供的模闆,或者自己建立一個新的資料庫檔案。當建立一個空白資料庫時,在界面右側會顯示将要建立的資料庫的預設檔案名和儲存的位置,使用者可以修改檔案名和存放的位置。

現在建立了一個資料庫檔案Database2.accdb。單擊Backstage 視圖中的“資訊”指令,在視圖的右側窗格将出現如圖1-7所示的界面,利用其中的指令選項可以對Database2.accdb進行壓縮、恢複以及加密操作。此外,還可以檢視和編輯該資料庫檔案的屬性等。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

Backstage 視圖提供了上下文資訊,根據不同的情況,“資訊”窗格可能會顯示數量不同的指令選項。例如,相對圖1-7,在圖1-8中增加了“啟用内容”。這可能是因為存在禁用的宏,而系統阻止了該宏以保護計算機。這時可以通過“資訊”窗格檢視該宏的上下文資訊,并啟用宏。又如,某個在 Office 早期版本中建立的文檔在相容模式下打開,并且某些豐富的新功能被禁用的情況下,“資訊”窗格中會出現版本轉換功能等。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

在Backstage 視圖中,單擊“儲存并釋出”後,右側窗格如圖1-9所示。

“資料庫另存為”功能可以将資料庫檔案儲存為2003或2002等低版本的格式。例如,對于2010版本的Database2.accdb,将被儲存為低版本的Database2.mdb檔案。此外,可以将目前的資料庫檔案另存為擴充名為.accdt的資料庫模闆,可以将資料庫打包、備份,還可以将資料庫上傳到SharePoint網站上實作共享,将包含VBA代碼的資料庫檔案儲存為擴充名為.accde的檔案,該檔案可以編譯所有的VBA代碼子產品等。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

“釋出到Access Services”功能可以将資料庫檔案釋出到SharePoint網站上,以便通過浏覽器和Access共享資料庫。當資料庫發生變化時,需要重新釋出到SharePoint網站上。

重要提示

  1. 需要注意的是,Backstage 視圖中的各種指令通常适用于整個資料庫,而不是資料庫中的某個對象。
  2. 可以通過自定義使用者界面來擴充 Backstage視圖,該使用者界面使用 XML 來定義元素。
  3. 釋出到SharePoint網站上的資料庫檔案隻能是擴充名為.accdb的檔案。

    (2)功能區

功能區取代了以往版本的傳統菜單,将相關指令以頁籤的方式組織在一起,在同一時間隻顯示一個頁籤中的相關指令。如圖1-10所示,Access 2010的功能區在預設情況下隻有4個頁籤,分别是“開始”“建立”“外部資料”和“資料庫工具”。每個頁籤又分為多個頁籤組(簡稱組)。在與頁籤平行的右側有一個上箭頭和一個問号,分别表示将功能區最小化和顯示Access的幫助資訊(也可以按F1鍵)。實際操作中遇到問題時,可随時查詢系統幫助中的資訊。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

利用“開始”頁籤中的指令,可以進行視圖的選擇、資料的複制/粘貼、記錄的排序與篩選,還可以對記錄進行重新整理、儲存、删除、彙總、拼寫檢查,以及查找記錄、設定字型格式和對齊方式等操作。“建立”頁籤中的指令主要用于建立Access 2010資料庫對象。“外部資料”頁籤中的指令主要用于導入和導出各種資料。例如,導入外部資料或連結到外部資料,通過電子郵件收集和更新資料,導出資料到Excel、文本檔案或電子郵件中,或以XML、PDF等格式儲存等。“資料庫工具”頁籤主要針對Access 2010資料庫進行比較進階的操作,例如,壓縮和修複資料庫、啟動VBA編輯器以建立和編輯VBA子產品、運作宏、設定資料表之間的關系、顯示或隐藏對象相關性、資料庫性能分析、将部分或全部資料庫移至SQL Server或SharePoint網站上,以及管理Access附加元件等。

除了上述4個預設的頁籤之外,還有一些隐藏的頁籤,稱為上下文頁籤,它們隻有在對特定對象進行特定操作時才會顯示出來。例如,運作“建立”頁籤“表格”組中的“表”指令,在資料庫Database2.accdb中建立一個資料表“表1”時,功能區中會自動出現黃色的“表格工具”頁籤組,其中包括“字段”和“表”兩個頁籤。如圖1-11所示。若采用表設計器來建立“表1”,則“表格工具”頁籤組中隻有“設計”頁籤,如圖1-12所示。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

如果利用窗體設計器建立一個窗體,則功能區上會出現紫色的“窗體設計工具”頁籤組,其中包括“設計”“排列”和“格式”3個頁籤,如圖1-13所示。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

在 Access 2010中,可以自定義功能區中的頁籤,首先單擊Backstage 視圖中的“選項”指令,然後在“Access選項”對話框中選擇“自定義功能區”。如圖1-14所示。然後選擇并添加頁籤、組和指令到功能區中,還可以進行删除、重命名、重新排列頁籤以及組合指令等操作。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

(3)快速通路工具欄

預設情況下,快速通路工具欄位于功能區上方應用程式标題欄左側的Access标志的右邊,也可以将其移到功能區的下方。快速通路工具欄将經常使用的功能集中在一起,如“儲存”“恢複”“撤銷”等。可以自定義快速通路工具欄以适應自己的工作環境,方法有以下兩種。

方法一:單擊快速通路工具欄右側的箭頭,通過彈出的“自定義快速通路工具欄”菜單,在工具欄上添加其他指令,如圖1-15所示。如果提供的指令不能滿足需要,可以單擊“其他指令”,直接跳轉到如圖1-16所示的界面進行設定。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

方法二:單擊Backstage 視圖中的“選項”指令,在“Access選項”對話框中選擇“快速通路工具欄”,如圖1-16所示,然後選擇要添加或從快速通路工具欄中移除的指令。

(4)導航窗格與工作區

導航窗格位于功能區下方的左側,用于顯示目前資料庫中已經建立好的各種資料庫對象。圖1-17給出了利用樣本模闆建立的資料庫檔案“教職員.accdb”。通過視窗标題欄中央位置顯示的内容可以知道,目前打開的是“教職員”資料庫視窗。輕按兩下此處可以最大化或者還原該視窗。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章
帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

在導航窗格中單擊或(稱為百葉窗開/關按鈕),可以展開或折疊導航窗格。單擊

,可以在彈出的“浏覽類别”菜單中選擇檢視對象的方式。圖1-17顯示的内容是按照對象類型進行排列的内容,可以看出“教職員”資料庫中包含了表、查詢、窗體和報表4類資料庫對象。如果單擊或,将折疊或展開每個資料庫對象中包含的具體内容。右擊導航窗格中的任何對象,将彈出相應的快捷菜單,可以從中選擇相關指令執行操作。圖1-18給出了右擊資料庫對象“窗體”時的快捷菜單。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

在導航窗格中,輕按兩下某個對象,将打開該資料庫對象,如表、窗體或報表,也可以右擊資料庫對象,然後單擊“打開”。如果想了解更多導航窗格的詳細内容,可以檢視Access 2010的幫助資訊。

工作區是位于功能區下方、導航窗格右側的區域。工作區用于對資料庫對象進行設計、編輯、修改、顯示,以及打開運作資料庫對象。Access 2010采用了頁籤式文檔來代替Access 2003中的重疊視窗以顯示資料庫對象。圖1-17顯示了“教職員清單”和“教職員電話清單”兩個頁籤式文檔,從文檔名前面的圖示可以識别出前者是窗體,後者是報表,并且目前文檔是“教職員清單”。因為隻是借助模闆建立了“教職員”這個資料庫,各個資料庫對象中并沒有資料,是以沒有顯示的内容。

2. Access 2010的資料庫對象

(1)資料表

資料表簡稱表,是資料庫中最基本也是最重要的對象。Access 将資料組織成由行和列組成的二維表,每一行稱為一條記錄,每一列稱為一個字段。需要為每個表指定主鍵來唯一辨別每條記錄,并确定各個表中的資料如何彼此關聯,進而建立表間關系。表1-1給出了E-R模型、關系模型以及作為一種RDBMS的Access的術語對照。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

圖1-19給出了樣本模闆“羅斯文”資料庫中的“客戶”資料表的結構和内容。這是在Access 2010使用者操作界面的工作區中展示的資料表。頁籤式文檔包括了4個資料表,分别是“采購訂單”“産品”“訂單”和“客戶”,目前顯示的是“客戶”資料表。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

在Backstage 視圖中建立資料庫之後,首先要做的工作就是建立資料表。資料表是其他資料庫對象的基礎。在Access中,允許一個資料庫中包含多個資料表,在不同的資料表中存儲不同主題的資料。每個資料表都是由表結構和記錄組成的。建立資料表首先要建立表結構,然後再建立表間關系,最後輸入資料或将外部資料導入資料表中。有關資料表的相關概念和具體操作詳見本書第四部分的第7章。

(2)查詢

查詢是資料庫中應用最多的資料庫對象。查詢通常是指通過設定查詢條件,從一個表、多個表或其他查詢中選取全部或部分資料,以二維表的形式顯示資料供使用者浏覽,或作為窗體、報表或其他查詢的資料源。查詢的結果雖然以二維表的形式展示,但查詢不是資料表。每個查詢隻記錄該查詢的操作方式,并不真正儲存查詢結果資料,每進行一次查詢,隻是根據該查詢的操作方式動态生成查詢結果。是以,資料表是實表,查詢是虛表。

Access中,查詢不僅可以從資料源中産生符合條件的動态資料集,還可以建立資料表,以及對資料源中的資料進行追加、删除、更新操作。

Access 提供了5種查詢類型,分别是選擇查詢、參數查詢、交叉表查詢、操作查詢和SQL查詢。通常使用查詢向導和查詢設計器兩種方式建立查詢。

Access中的查詢對象共有5種視圖,分别是設計視圖、資料表視圖、SQL視圖、資料透視表視圖、資料透視圖視圖。圖1-20給出了“羅斯文”資料庫中的“現有庫存”查詢的資料表視圖,圖1-21給出了“現有庫存”查詢的設計視圖。有關查詢的相關概念和具體操作詳見第四部分的第8章。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

(3)窗體

Access 提供了可視化的直覺操作來設計資料輸入、輸出界面的結構和布局,即窗體資料庫對象。窗體是用于處理資料的界面,通常包含了很多控件用于執行各種指令。通過設定控件的屬性和編寫宏或事件過程,可以确定窗體中要顯示的内容、所打開的窗體和報表,以及執行其他各種任務。

窗體為資料的輸入和編輯提供便捷、美觀的螢幕顯示方式。其資料可以通過鍵盤直接輸入,也可以來自資料表、查詢或SQL語句。資料若來自資料表或查詢,窗體中顯示的資料将随表或查詢中資料的變化而變化。

Access中的窗體對象共有6種視圖,分别是設計視圖、 窗體視圖、 資料表視圖、布局視圖、資料透視表視圖、資料透視圖視圖,不同的窗體視圖有不同的作用和顯示效果。如圖1-22所示,對于一個建立好的窗體,可以通過單擊“開始”頁籤中的“視圖”指令,從中選擇其中的一種視圖來檢視窗體。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

窗體作為使用者與資料庫互動的界面,在資料庫應用程式中扮演着重要的角色。Access中的窗體類型主要有單個窗體、連續窗體、資料表窗體、分割窗體、多項目窗體、資料透視表窗體、資料透視圖窗體、主/子窗體、導航窗體等。常用的建立方法有各種自動建立窗體的工具、窗體向導以及窗體設計器等。有關窗體的相關概念和具體操作詳見第四部分的第9章。

(4)報表

報表主要用于資料的顯示和列印,它的資料來源可以是表、查詢,也可以是SQL語句。同窗體一樣,報表本身不存儲資料,隻是在運作報表的時候才将資訊收集起來。通過報表組織和顯示Access中的資料,為列印或螢幕顯示效果設定資料格式。利用報表提供的功能,可以對資料分組,進行資料的計算和統計,還可以列印輸出标簽、轉換為PDF等其他格式的檔案,以使報表便于閱讀。此外,還可以運用報表建立标簽并列印輸出,以用于郵寄或其他目的等。

圖1-23給出了一個典型的報表例子。這是“羅斯文”資料庫中的“年度銷售報表”報表的報表視圖,分别統計了各個産品在4個季度的銷售金額。

報表有4種視圖,分别是設計視圖、報表視圖、布局視圖、列印預覽視圖。一般采用報表向導、報表設計器來建立報表。報表的種類有縱欄式報表、表格式報表、圖表報表和标簽報表。有關報表的相關概念和具體操作詳見第四部分的第9章。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

(5)宏

宏是由一個或多個宏操作指令組成的集合,主要功能是讓程式自動執行相關的操作。Access 2010提供了大量的宏操作指令,每個宏操作指令都可以完成一個特定的任務。例如,宏操作OpenForm用于打開一個指定的窗體;宏操作MessageBox用于顯示一個消息對話框,如圖1-24所示,使用者隻需要輸入相應的參數就可以建立一個簡單宏。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

宏與内置函數一樣,可以為資料庫應用程式提供各種基本功能。可以在窗體、報表、控件和子產品中添加并使用宏以完成特定的功能。例如圖1-25所示的“登入”窗體,若将“退出”指令按鈕的“單擊”事件與圖1-24所示的“再見”宏相關聯,則使得“登入”窗體運作時,單擊“退出”指令按鈕就執行MessageBox宏操作,即彈出如圖1-26所示的對話框。使用宏非常友善,不需要記住文法,也不需要複雜的程式設計,隻需利用幾個簡單的宏操作就可以對資料庫進行一系列的操作。有關宏的相關概念和具體操作詳見第四部分的第10章。

(6)子產品

子產品是Access中一個重要的對象,它比宏的功能更強大,運作速度更快,不僅能完成操作資料庫對象的任務,還能直接運作Windows的其他程式。通過子產品還可以自定義函數,以完成複雜的計算、執行宏所不能完成的複雜任務。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

子產品由VBA聲明語句和一個或多個過程組成。過程由一系列VBA代碼組成,并通過VBA語句執行特定的操作或計算數值。過程分為兩類:事件過程和通用過程。通用過程分為Sub 過程和 Function 過程。Sub過程又稱子程式,Function過程又稱函數過程。事件過程是一種特殊的Sub過程,它由系統自動命名,事件過程名由指定的控件名和其所響應的事件名稱構成。

在Access中,子產品分為兩種基本類型:類子產品和标準子產品。窗體子產品和報表子產品都屬于類子產品,而且它們各自與某一個具體存在的窗體或報表相關聯。标準子產品是存放公共過程的子產品,這些過程不與任何對象關聯。

任何子產品都需要在VBA編輯器中編寫相關代碼。圖1-27給出了VBA編輯器的界面。在左側的工程視窗中可以看到名為“教學管理系統”的資料庫中的所有子產品。其中,類子產品有7個,全部是窗體子產品(以“Form_”開頭),标準子產品有3個。視窗右側的代碼區顯示的是名為“子產品2”的标準子產品的代碼,可以看出,“子產品2”中隻有一個名為sum的過程,功能是計算1~100之間的奇數和。執行這個過程的結果如圖1-28所示。有關子產品的相關概念和具體操作詳見第四部分的第11章。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章
帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

Access 2010資料庫使用新格式來儲存檔案,建立擴充名為.accdb檔案格式的資料庫,而不是先前版本的.mdb檔案格式。Access 2010向下相容,在 Access 2010 中仍然可以打開和編輯低版本的資料庫,但諸如檔案菜單等各級菜單、資料庫視窗以及工具欄等功能将被2010版本的使用者界面所替代。

1.3 資料視圖

資料庫管理系統的主要目的之一是通過抽象來屏蔽資料存儲和維護細節,為使用者提供資料的抽象視圖,以簡化使用者與資料庫系統的互動。

1.3.1 資料抽象

1. 三個世界

資料處理的過程會涉及三個不同的世界:現實世界、資訊世界和計算機世界。

現實世界是存在于人們頭腦以外的客觀世界,狹義上講,現實世界就是客觀存在的每個事物和現象。

資訊世界是現實世界在人們頭腦中的反映和解釋,它将現實世界的事物用文字和符号記錄下來,是現實世界的概念化。資訊世界是對現實世界的抽象,并從現實世界中抽取出能反映現實本質的概念和基本關系。資訊世界作為現實世界通向計算機世界的橋梁,起着承上啟下的作用。

計算機世界是對資訊世界的進一步抽象,反映資料特征和資料之間的聯系,是資訊世界的形式化和資料化。資訊世界的資訊在計算機世界中以資料的形式進行存儲。有時也将計算機世界稱為資料世界。

上述三個世界中的常用術語對照如表1-2所示。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

2. 抽象層次

抽象層次由高到低依次劃分為:視圖層、邏輯層和實體層。

1)視圖層:因為大多數使用者并不需要通路資料庫中的全部資料,是以視圖層僅描述整個資料庫的部分資料,為使用者提供屏蔽了資料類型等細節的一組應用程式。并且從安全性考慮,系統在視圖層定義了多個不同的視圖使不同的使用者通路不同的資料。

2)邏輯層:程式設計人員在這個抽象層次上使用某種進階程式設計語言進行工作。邏輯層描述整個資料庫所存儲的資料以及資料之間的關系。DBA通常在這個抽象層次上工作。

3)實體層:描述資料的實際存儲情況。DBA可能需要了解某些資料實體結構的細節,程式設計人員可能沒有必要了解這些細節。資料庫系統為資料庫程式設計人員屏蔽了許多實體層的存儲細節。

1.3.2 視圖

視圖的本意是指一個人看到某個物體所得到的圖像。物體有全局的概念,而視圖具有局部的含義。将視圖的概念引入資料庫,資料庫相當于一個全局的事物,而每個使用者從資料庫中看到的資料就形成了視圖。例如,從教務管理系統中檢視成績,每名學生登入系統後隻能看到自己的課程成績。視圖相當于資料庫的一個子集,它提供了一個保密級别,可以通過建立視圖将使用者不能檢視的資料排除在外。圖1-29給出了與三個抽象層次對應的視圖:使用者視圖、概念視圖和存儲視圖。使用者視圖也稱外部視圖,呈現的是資料庫的局部結構。概念視圖呈現的是資料庫的全局結構。存儲視圖也稱内部視圖,呈現的是存儲記錄的實體順序和彼此關聯的方式。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

1.3.3 模式與執行個體

對資料庫的描述或者說對包含在一個資料庫中所有實體的描述定義,稱為資料庫模式,簡稱模式。在多個抽象級别進行定義就形成了多個級别的模式。特定時刻存儲在資料庫中的資料集合稱為資料庫的一個執行個體。同一個模式可以有很多執行個體。

通常情況下,模式在資料庫設計階段就要确定下來,一般不會頻繁修改,因而是相對穩定的,而執行個體是變化的,因為資料庫中的資料總是不斷更新。模式反映的是資料的結構及其聯系,而執行個體反映的是資料庫某一時刻的狀态。

1.4 資料庫系統

1.4.1 資料庫系統的組成

在具體應用中,最終使用者實際面對的是資料庫系統,而不是資料庫或資料庫管理系統。資料庫系統(DataBase System,DBS)是基于資料庫的計算機應用系統。如圖1-30所示,DBS由計算機軟硬體、資料庫(包括實體資料庫和描述資料庫)、資料庫管理系統、資料庫應用系統、資料庫管理者以及使用者組成。

其中,資料庫應用系統是實作業務邏輯的應用軟體,它通過向DBMS提出合适的請求(SQL語句)而與資料庫進行互動。資料庫應用系統是以作業系統、DBMS、進階程式設計語言和實用程式為軟體環境,以某一領域的資料管理需求為應用背景,采用資料庫概念和技術編寫的一個可實際運作的計算機程式。它提供一個友好的圖形使用者界面,使使用者可以友善地通路資料庫中的資料。常見的資料庫應用系統有資訊管理系統、辦公自動化系統、情報檢索系統、高校教學管理系統、财務管理系統、商業交易系統等。

資料庫管理者(DataBase Administrator,DBA)是負責對資料庫進行全面管理和控制的人員。資料庫是共享資源,可以被多個使用者和應用程式共享,需要統一規劃、管理、協調、監控,同時,資料庫也是重要的資訊資源,需要對資料庫中資料的并發性、安全性、完整性以及故障恢複進行維護,DBA就是完成上述工作的人員或機構。DBA可能是一個人,也可能是一組人。對于一個規模較大的資料庫系統,DBA通常指資料庫管理機構或部門。DBA的工作很繁重也很關鍵,所有與資料庫有關的事宜一般均由DBA來決定。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

資料庫、資料庫系統、資料庫管理系統是三個不同的概念,在不引起混淆的情況下,資料庫通常作為資料庫系統或資料庫管理系統的簡稱。比如,人們常說的資料庫應用領域、資料庫的三級模式結構,實際上是指資料庫系統的應用領域、資料庫系統的三級模式結構。又比如,甲骨文公司的Oracle是一款關系資料庫管理系統産品,人們通常簡稱為 Oracle資料庫。大學裡常用的教學管理資料庫系統,也常常稱為教學管理資料庫或教學管理系統。在實際學習中,到底是指哪一個概念,要根據上下文來了解。

1.4.2 資料庫系統的特點

(1)資料的結構化

資料的結構化是指資料之間互相聯系,面向整個系統。具體來說,就是資料庫系統不僅描述資料本身,而且還描述資料之間的聯系,實作了整體資料的結構化。資料的結構化也是資料庫系統與檔案系統的主要差別之一。

(2)資料共享程度高、易擴充、備援度低

共享是指資料可以被多個使用者、多個應用程式使用。備援度是指同一資料被重複存儲的程度。共享程度高可以大大減少資料備援,節約存儲空間,避免資料的不一緻性。此外,由于資料庫設計是面向系統而不是面向某個應用,主要考慮的是資料的結構化,因而容易擴充。

(3)資料的獨立性高

資料庫系統的一個重要目标就是要使程式和資料真正分離,使它們能獨立發展。資料的獨立性就是指資料獨立于應用程式,兩者之間互不影響。資料的獨立性包括邏輯獨立性和實體獨立性。

(4)資料控制能力較強

資料由DBMS統一管理和控制,包括資料的并發控制、安全性控制、完整性控制以及故障恢複等。

1.4.3 資料庫系統的體系結構

資料庫系統的體系結構分為外部體系結構和内部體系結構。外部體系結構是指從資料庫最終使用者的角度來看資料庫系統,一般分為集中式結構、分布式結構、客戶/伺服器結構和并行結構。内部體系結構是指從資料庫管理系統的角度來看資料庫系統。本小節介紹資料庫系統的内部體系結構,即三級模式結構。

1. 資料庫系統的三級模式結構

根據美國國家标準化協會和标準計劃與需求委員會提出的建議,将資料庫系統的内部體系結構定義為三級模式和二級映像結構,如圖1-31所示。資料庫系統的三級模式之間的聯系通過二級映像實作,實際的映像轉換工作由DBMS完成。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

與資料抽象的層次相對應,資料庫系統的三級模式分别是外模式、模式和内模式,如圖1-32所示。一個資料庫隻有一個模式、一個内模式,但可以有多個外模式。資料庫系統的三級模式不僅可以使資料具有獨立性,而且還可以使資料達到共享,使同一資料能夠滿足更多使用者的不同要求。

帶你讀《資料庫與資料處理:Access 2010 實作 第2版》之一:資料處理與資料庫第1章

(1)外模式

外模式(External Schema)也稱子模式或使用者模式,是資料庫在視圖層上的資料庫模式。它是資料庫使用者能夠看見和使用的局部資料的邏輯結構和特征的描述,是資料庫使用者的資料視圖,是與某一應用有關的資料的邏輯表示。

一個資料庫可以有多個外模式,由于不同使用者有不同的需求,以及擁有不同的通路權限,是以,對不同使用者提供不同的外模式的描述,即每個使用者隻能看見和通路所對應的外模式中的資料。同一外模式可以為多個應用程式使用,但一個應用程式隻能使用一個外模式。

例如,大學的教學管理系統中,學生可能需要知道所選課程的名稱、學分、授課教師、地點、時間以及課程成績,但不必知道授課教師的工資、福利等資訊。授課教師隻需要知道所教學生的學号、姓名、性别、專業、所在學院以及所教課程的學生成績,但不必知道學生其他課程的成績以及學生的年齡、籍貫等其他資訊。這樣就需要為教師和學生分别建立一個資料庫視圖。

DBMS提供外模式DDL來嚴格地定義外模式,例如為教師建立一個所教課程号為C1的學生成績視圖,使用SQL語句表示如下。有關SQL的内容将在本書第三部分詳細介紹。

CREATE VIEW 學生成績

AS           

SELECT 學号, 課程号, 成績

FROM 成績

WHERE 課程号="C1";

(2)模式

模式(Schema)也稱邏輯模式,是在邏輯層描述資料庫的設計。模式是資料庫中全體資料的邏輯結構和特征的描述,通常稱為資料模式,是所有使用者的公共資料視圖。模式實際上是資料庫資料在邏輯層上的視圖。

DBMS一般提供模式DDL來嚴格定義資料的邏輯結構、資料之間的聯系以及與資料有關的安全性要求、完整性限制等。資料的邏輯結構包括資料記錄的名字以及資料項的名字、類型、取值範圍等。

下面給出了教學管理資料庫系統中模式的例子,其中标有下劃線的字段是主鍵:

學生模式:學生(學号,姓名,性别,出生日期,所在系,班級)

系模式:系(系号,系名,系主任)

課程模式:課程(課程号,課程名,所在系,學分)

選修模式:選修(學号,課程号,成績)

(3)内模式

内模式也稱存儲模式。它是對資料庫實體結構和存儲方法的描述,是資料在存儲媒體上的儲存方式。例如,資料的存儲方式是順序存儲還是按照 B 樹結構存儲等。

一般由DBMS提供的内模式DDL來定義内模式。内模式對一般使用者是透明的,通常不需要關心内模式具體的實作細節,但它的設計會直接影響資料庫的性能。

2. 資料獨立性與二級映像

(1)資料獨立性

在三級模式中提供了二級映像,以保證資料庫系統的資料獨立性。資料的獨立性包括實體獨立性和邏輯獨立性。

實體獨立性是指使用者的應用程式與存儲在磁盤上資料庫中的資料互相獨立,應用程式不會因為實體存儲結構的改變而改變。實體獨立性使得在系統運作中,為改善系統效率而調整實體資料庫不會影響應用程式的正常運作。

邏輯獨立性是指使用者的應用程式與資料庫的邏輯結構互相獨立。資料庫的邏輯結構改變了,如增删字段或聯系,也不需要重寫應用程式。

(2)二級映像

二級映像在DBMS内部實作資料庫三個抽象層次的聯系和轉換。二級映像包括外模式/模式映像和模式/内模式映像。二級映像保證了資料庫系統中的資料具有較高的邏輯獨立性和實體獨立性。

  • 外模式/模式映像。即外模式到邏輯模式的映像,它定義了資料的局部邏輯結構與全局邏輯結構之間的對應關系。該映像定義通常包含在各自外模式的描述中。對于每一個外模式,資料庫系統都有一個外模式/模式映像。當邏輯模式改變時,由DBA對各個外模式/模式映像做相應改變,使外模式保持不變,進而不必修改應用程式,保證了資料的邏輯獨立性。
  • 模式/内模式映像。即邏輯模式到内模式的映像,定義了資料的全局邏輯結構與實體存儲結構之間的對應關系。該映像定義通常包含在模式描述中。資料庫中隻有一個模式,也隻有一個内模式,是以模式/内模式映像也是唯一的。當資料庫的存儲結構改變(如換了另一個磁盤來存儲該資料庫)時,由DBA對模式/内模式映像做相應改變,使模式和外模式保持不變,進而保證了資料的實體獨立性。
  1. 模式是内模式的邏輯表示,内模式是模式的實體實作,外模式則是模式的部分抽取,它定義在模式之上,獨立于内模式和儲存設備。
  2. 模式是資料庫系統的中心和關鍵,是以,在資料庫設計中首先應該确定資料庫的模式。
  3. 外模式面向具體的應用程式,當應用需求發生較大變化導緻相應的外模式不能滿足其要求時,外模式就需要做相應的修改。是以,設計外模式時應充分考慮具體應用的可擴充性。
  4. 資料庫三級模式之間的轉換是在DBMS的統一控制下實作的。

1.5 小結

資料處理也稱資訊處理,資料是符号化的資訊,資訊是語義化的資料。資料管理是資料處理的中心問題,資料管理技術的優劣直接影響資料處理的效率。資料庫技術是資料管理的最新技術。

資料庫是由資料庫管理系統(DBMS)進行管理的資料集合,這種集合可以長期儲存。資料庫管理系統允許使用者使用資料定義語言建立資料庫并說明資料的邏輯結構,同時提供了查詢、更新資料的操作以及控制多個使用者或應用程式對資料的通路。資料庫系統就是采用資料庫技術的計算機系統。DBMS是資料庫系統的核心,資料庫中的資料都是由DBMS統一進行管理和控制的。從DBMS角度看,資料庫系統通常采用三級模式結構和二級映像。三級模式結構是由外模式、模式和内模式三級組成。二級映像保證了資料的獨立性。

習題

1.名詞解釋:

資料、資訊、資料處理、資料庫、資料庫管理系統、資料庫應用系統、資料庫系統、資料庫管理者、資料字典、外模式、邏輯模式、内模式、資料的獨立性

2.簡述檔案管理方式的缺點。

3.簡述資料庫管理系統的主要功能。

4.簡述資料庫系統的特點。

5.簡述資料庫系統中的資料獨立性是如何實作的。