資料庫系統原理

tolywang發表於2005-01-20

資料庫系統原理

 

第一章  緒論

重點難點釋疑

一、用資料庫系統來管理軟體所具有的特點

首先必須理解資料庫系統的相關基本概念。在此基礎上進一步理解其特點所在。


1)資料結構化:這是資料庫與檔案系統的根本區別,這一特點使得資料之間的聯絡必須以某種約定規則進行描述;

2)資料的共享性好,冗餘度低:資料庫系統中的資料不是面向單個具體應用,而是面向整個系統,既能減少資料冗餘,又能避免資料的不相容和不一致;

3)資料獨立性高:理解兩種映像。一類存在於資料的總體邏輯結構與區域性邏輯結構之間;另一類存在於資料的儲存結構與邏輯結構之間;

4)資料由DBMS統一管理和控制:瞭解DBMS的主要管理功能和控制功能。

二、理解概念模型

首先必須理解相關的基本概念,如實體、屬性、碼、域等;進一步理解實體之間的聯絡及其型別定義,此處比較難的是多對多聯絡的概念。由於是初次接觸資料庫原理,可能對這個概念的認識有限,必須在本教材後繼章節中不斷體會其定義的內涵所在。注意教材第11頁到第12頁文字部分對其形式化的定義和分析。

學習簡單的E-R圖,理解教材中所舉的例子。需要注意的是,聯絡本身也是一種實體型,也可以有屬性。

三、掌握最常用的資料模型,特別是其中的關係模型

任何一個資料庫管理系統都至少提供了一種資料模型,因此資料模型是資料庫研究的基礎。根據某種資料模型,人們可以用資料世界來合理表示現實世界的某一部分,並且將資料世界映照成一個意識世界(使用者介面)。資料模型有兩方面含義:資料以何種形式儲存、使用者以何種形式看待資料。常見的資料模型有層次模型、網狀模型、關係模型、邏輯模型、實體聯絡(E-R)模型和麵向著物件模型等。層次模型的每一個結點代表一個記錄型別,而這些記錄型別之間的關係具有層次性。一般它只能直接表示一對多的聯絡,如果要用它表示多對多聯絡則必須使用冗餘結點法或虛擬結點法進行分解。

網狀模型允許結點沒有或有多個雙親結點,也允許兩個結點之間出現多個聯絡。層次模型可視為其特例。

關係資料模型最為常用和複雜。其相關基本概念在教材21頁至22頁,這裡只是簡單陳述,具體內容將會在後繼章節中展開。

四、關於資料庫設計步驟

  需求分析階段要在使用者調查的基礎上,透過分析,逐步明確使用者對系統的需求,包括資料需求和圍繞這些資料的業務處理需求。透過對組織、部門、企業等進行詳細調查,在瞭解現行系統的概況、確定新系統功能的過程中,收集支援系統目標的基礎資料及其處理方法。

  概念設計階段要產生反映企業各組織資訊需求的資料庫概念結構,即概念模型。概念模型必須具備豐富的語義表達能力、易於交流和理解、易於變動、易於向各種資料模型轉換、易於從概念模型匯出與DBMS有關的邏輯模型等特點。

  邏輯設計階段除了要把ER圖的實體和聯絡型別,轉換成選定的DBMS支援的資料型別,還要設計子模式並對模式進行評價,最後為了使模式適應資訊的不同表示,需要最佳化模式。

物理設計階段的主要任務是對資料庫中資料在物理裝置上的存放結構和存取方法進行設計。資料庫物理結構依賴於給定的計算機系統,而且與具體選用的DBMS密切相關。物理設計常常包括某些操作約束,如響應時間與儲存要求等。

 

 

第二章  關聯式資料庫

重點難點釋疑

一、關於關係的定義

關係是笛卡爾積的子集,所以關係可以看作是一個二維表,表的每行對應一個元組,表的每列對應一個域。若關係中的某一屬性組的值能夠唯一標識一個元組,而其真子集不行,則稱該屬性組為候選碼。若一個關係有多個候選碼,則選定其中一個作為主碼。

關係可以有三種型別:基本關係(通常又稱為基本表或基表)、查詢表和檢視表。

基本關係有六條性質:

1)每一列中分量的資料型別相同。一般還要進一步要求每一列的資料量範圍相同,即同一列的資料值不能偏差過大;

2)域名和屬性名之間要有一個轉換對映的關係;

3)列的順序可以交換,不影響基本表的內容描述;

4)不能有完全一樣的兩個元組出現同一張基本表中,否則就會產生資料冗餘;

5)行的次序也可以交換;

6)分量不可再分。這也就是說,每一個分量必須是最小的描述單位,不能使用原子描述的集合來構造為一個分量。

二、理解關係模式

關係模式是一個五元組。關係模式用來描述關係這個元組集合的結構特性,即它是有哪些屬性構成的,這些屬性來自哪些域等等。它可以形式化地表示為:

R (U, D, DOM, F)

其中R為關係名,U為組成該關係的屬性名集合,D為屬性組U中屬性所來自的域,DOM為屬性向域的映像集合,F為屬性間資料的依賴關係集合。

深入理解關係和關係模式的“關係”。關係實際上是關係模式在某一時刻的狀態或內容。也就是說,關係模式是型別,關係是該型別中的值。關係模式是靜態的、穩定的,而關係是動態的、隨時間不斷變化的,因為關係操作在不斷地更新資料庫中的資料。

三、參照完整性

理解參照完整性之前必須先弄清楚實體完整性規則:若屬性A是基本關係R的主屬性,則屬性A不能取空值。注意這裡的不能取空值是針對基本關係的所有主屬性而並非僅僅主碼整體,主碼整體相當是屬性的集合,這是不同的概念。

為了更好地掌握參照完整性的內涵,還要認真學習幾個基本定義。設F是基本關係R的一個或一組屬性,但不是關係R的碼,如果F與基本關係S的主碼KS相對應,則稱F是基本關係R的外碼,並稱基本關係R為參照關係,基本關係S為被參照關係或目標關係。關係RS不一定是不同的關係。注意,KSF必須定義在同一個(或一組)域上。

參照完整性規則是指如果屬性(或屬性組)F是基本關係R的外碼,它與基本關係S的主碼KS相對應(基本關係RS不一定是不同的關係),則對於R中每個元組在F上的值必須為或者是取空值(注意是每個屬性值都空)或者等於S中的某個元組的主碼值。

四、關係代數

關係代數是一種抽象的查詢語言,是關係資料操縱語言的一種傳統表達方式。它的運算物件是關係,運算結果也為關係。它的運算子包括四類,即集合運算子、專門的關係運算子、算術比較符和邏輯運算子。

專門的運算子主要包括以下型別:

1)選擇:又稱限制,是在關係R中選擇滿足給定條件的諸元組。它實際上是從關係R中選取是邏輯表示式F為真的元組。這是從行的角度進行的運算;

2)投影:是指從關係R中選擇出若干屬性列組成新的關係。投影是從列的角度進行的運算;

3)連線:是指從兩個關係的笛卡爾積中選取屬性間滿足一定條件的元組。連線運算又分為等值連線和自然連線兩種;

4)除:給定關係R (X, Y) S(Y, Z),其中X, Y, Z均為屬性組。RS的除運算得到一個新的關係P(X)PR中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集YX包含SY上投影的集合。除操作是同時從行和列角度進行運算。

五、關係演算

按照教材內容編排,主要掌握以下兩大類關係演算語言:

1)元組關係演算語言ALPHA:主要包括GET, PUT, HOLD, UPDATE, DELETE, DROP六條語句,基本格式是操作語句+工作空間名(表示式)+:+操作條件。其中表示式用於指定語句的操作物件,可以是關係名或屬性名,一條語句可以同時操作多個關係或多個屬性。操作條件是一個邏輯表示式,用於將操作物件限定在滿足條件的元組中,操作條件可以為空

2)域關係演算語言QBE:域關係演算以元組變數的分量即域變數作為謂詞變元的基本物件。QBE最突出的特點是它的操作方式。它是一種高度非過程化的基於螢幕表格的查詢語言,使用者透過終端螢幕編輯程式以填寫表格的方式構造查詢要求,而查詢結果也是以表格形式顯示。

 

 

第三章  關聯式資料庫標準語言SQL

重點難點釋疑

一、關聯式資料庫標準語言SQL的特點

是一個標準的資料庫語言,是面向集合的描述性非過程化語言。它功能強,效率高,簡單易學易維護。然而SQL語言由於以上優點,同時也出現了這樣一個問題:它是非過程性語言,即大多數語句都是獨立執行的,與上下文無關,而絕大部分應用都是一個完整的過程,顯然用SQL完全實現這些功能是很困難的。所以大多數資料庫公司為了解決此問題,作了如下兩方面的工作:(1)擴充SQL,在SQL中引入過程性結構;(2)把SQL嵌入到高階語言中,以便一起完成一個完整的應用。

二、SQL語言共分為四大類

資料查詢語言DQL,資料操縱語言DML,資料定義語言DDL,資料控制語言DCL。

(1)資料查詢語言DQL:資料查詢語言DQL基本結構是由SELECT子句,FROM子句,WHERE子句組成的查詢塊;

(2)資料操縱語言:資料操縱語言DML主要有三種形式:1) 插入INSERT

2) 更新UPDATE3) 刪除:DELETE;

(3)資料定義語言DDL:資料定義語言DDL用來建立資料庫中的各種物件------表、檢視、索引、同義詞、聚簇等;

4)資料控制語言DCL:資料控制語言DCL用來授予或回收訪問資料庫的某種特權,並控制資料庫操縱事務發生的時間及效果,對資料庫實行監視等。

三、資料定義

SQL資料定義功能包括定義資料庫、基本表、索引和檢視。 這部分主要有以下要點和難點:
   
1)基本表的定義及變更:基本表是非匯出關係,其定義涉及表名、列名及資料型別等,新建的表由兩部分組成:其一為表和一組列名,其二是實際存放的資料(即可在定義表的同時,直接存放資料到表中);列名為使用者自定義的易於理解的名稱,列名中不能使用空格

NOT NULL/NULL]指出該列是否允許存放空值,SQL語言支援空值的概念,所謂空值是不知道無意義的值,值得注意的是資料“0”和空格都不是空值,系統一般預設允許為空值,所以當不允許為空值時,必須明確使用NOT NULL
UNIQUE]將列按照其規定的順序進行排列,如不指定排列順序,則按列的定義順序排列;
PRIMARY KEY]用於指定表的主鍵(即關係中的主屬性),實體完整性約束條件規定:主鍵必須是唯一的,非空的;
   
2)檢視定義與刪除:在SQL中,檢視是外模式一級資料結構的基本單位。它是從一個或幾個基本表中匯出的表,是從現有基本表中抽取若干子集組成使用者的“專用表”。這種構造方式必須使用SQL中的SELECT語句來實現。在定義一個檢視時,只是把其定義存放在系統的資料中,而並不直接儲存檢視對應的資料,直到使用者使用檢視時才去求得對應的資料。
   
3)索引的定義與刪除:索引屬於物理儲存概念,而不是邏輯的概念。SQL中拋棄了索引概念,直接使用主鍵概念。值得一提的是,有些關係DBMS同時包括索引機制和主鍵機制,推薦使用主鍵機制,因為它對系統資源佔用較低且效率較高。
四、查詢

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-84250/,如需轉載,請註明出處,否則將追究法律責任。

相關文章