五、關聯式資料庫
1.**
**(或簡稱表)表示了使用者的特定型別(type)的一些實體。表頭由一些屬性名(attribute name)組成,每個屬性名對應於一列。在表上屬性名必須唯一,不允許重名。表體是由一些行或元組(tuple)、或記錄(record)組成。乙個元組對應於傳統的檔案結構中的乙個記錄,乙個記錄含有若干個域(field)用以儲存屬性值(attribute value)。乙個元組對應於乙個「使用者」實體的出現(occurrence)。表體中每一行和某一列的交叉點(相當於記錄中的域)上儲存乙個屬性值。這個屬性值叫做這一行(或這個實體出現)的相應屬性值。表體中每一列可以儲存的值對應於某種屬性型別(type of attribute),也就是說,這一列的屬性值只能取這個屬性型別的值。某個屬性所能取的所有值的集合叫做這個屬性的值域(domain of attribute)。型別和值域的對應關係是一對多的。乙個型別有乙個值域,但乙個值域可以作為多個型別,基名稱不同,但實質上值域一樣。實際上,型別是對值域的命名。能唯一標識乙個元組的屬性稱之為關鍵屬性(primary key attribute)或簡稱為主關鍵字(primary key)。主關鍵字有時是由多個屬性組成的,此時的主關鍵字叫做組合關鍵字(conˉcatenated primary key)。有的時候,表中必須由一些組合的主關鍵字才能唯一地標識乙個元組,也就是說,不存在能作關鍵字的乙個屬性。這時為了方便,往往引入乙個附加的屬性並稱之為外來關鍵字(foreigh key)來作主關鍵字。外來關鍵字為以後檢索和查詢帶來了方便,但也增加了資訊冗餘。
2.表名、表頭和表體
表名、表頭和表體在關係模型中具有不同的作用或功能,因而也具有完全不同的性質。表頭是乙個屬性的集合,它規定了表的結構。表體是乙個特殊的集體,稱作為關係(relation)。「關係模型」中的「關係」一詞就是指表體中的這個數學關係。在關聯式資料庫中,表名對應於資料庫名(或關係名),表頭對應於資料描述(或結構描述),表體對應於資料庫。表體是資料庫的內容及資料庫操作的物件。另外,有兩個概念必須加以強調:型(type)和值或出現(occurence)。表頭定義了實體(或元組)的型,也就是說規定了實體(或元組)的值域。而表體則給出了實體(或元組)的出現。出現是型中的乙個值。
3.關係的數學定義
關係模型是建立在集合論(set theory)的基礎之上的。現在,開始用集合論的術語來嚴格地定義數學上的關係,即給出關係的數學定義。定義1 域(domain)是值(value)的集合。
4.關係模型
關係模型由三部分組成:資料結構(即關係)、關係操作、關係的完整性。下面將對這三個部分進行分別的討論。
(1)單一的資料結構———關係 在關係模型中,無論是實體還是實體之間的聯絡均由單一的型別結構—關係來表示。在前面,已給出了關係和域的數學定義,介紹了n元關係、元組和屬性等概念。下面介紹關鍵字、關係模式和關聯式資料庫等一些基本概念。關鍵字 關係中的某一組屬性,若其值可以唯一地標識乙個元組,則稱該屬性組為乙個候選關鍵字(candidate key)。若乙個關係有多個候選關鍵字,則可以任選其中乙個作為主關鍵字(primary key)。主關鍵字中的諸屬性被稱為主屬性。關係模式 關係的描述稱為關係模式。它包括:關係名、組成關係的諸屬性名、屬性到域的映象、屬性間的資料依賴關係等等。所以,關係模式由關係名、諸屬性名和屬性到域的映象三個部分組成,關係模式通常簡記為r(a 1 ,a 2 ,…,a n ),其中r是關係名,a 1 ,a 2 ,…,a n 為諸屬性名。屬性到域的映象一般通過指定屬性的型別和長度來說明。某個關係模式在某一時刻所具有的狀態是指關係的外延,即元組的集合。關係的外延內容有時簡稱為關係。但關係模式和關係的內容有時也統稱為關係。讀者可以從上下文中區別其確切的含義。形象地說,關係模式是關於表名和表頭的描述,而關係的內容是表體。關聯式資料庫 在關聯式資料庫中,要分清型和值兩個基本概念。關聯式資料庫的型是指資料庫的結構描述,它包括關聯式資料庫名、若干屬性的定義,以及這些屬性上的若干關係關係模式。亦稱為資料庫的內涵(intension),資料庫的值亦稱為資料庫的外延。在關聯式資料庫中,內涵是比較穩定的,它規定了外延的取值範圍。而外延卻是隨時間變化的。這和在一般的形式邏輯中外延和內涵一一對應有所區別。此處外延是指任意乙個滿足內涵的集合,而不一定恆指滿足內涵的最大的乙個集合。關係模式(即內涵)是穩定的;而關係的內容,即外延,卻是隨時間動態的變化而變化的。資料庫的結構(即模式)是穩定的;而資料庫中的資料內容卻在不斷地更新。
(2)關係操作 關係模型規定了關係操作的功能和特點,但不對dbms語言的語法做出具體的規定。關聯式資料庫語言的主要特點(或優點)是其高度的非過程化(non-procedureae)或者說明性(declarative)。關聯式資料庫語言的語句是透明的。使用者只須知道語句做什麼,而不須知道怎麼做的。codd在其早期的文章中,引入了8種基本的操作:並(union)交(intersection)差(difference)笛卡爾乘積(cartesian product)限制(restrictions)投影(projection)連線(join)除(division)這些操作都是對關係的內容或表體實施操作的,得到的結果仍為關係。注意,這些操作只是基本的操作,而不是不再可分的原始(primitive)操作,例如,join,intersection和division可以由其它五種操作合成。但是,把它們三個也作為基本操作使用起來很方便。另外,codd並沒說上述8種操作就是關聯式資料庫只能有的8種操作。實際上,上述8種操作僅僅是作為最小的dml操作的基礎部分,並且也還未考慮到ddl的需求。sql支援的操作多於上述8種dml操作,而且sql還支援ddl操作。關係操作的特點是集合操作,即操作的物件和結果都是集合。這種操作方式也稱為一次一集合(set-at-a-time)方式。而非關係模型的資料庫的操作方式則為一次一記錄(record-at-a-time)方式。關係操作可以用兩種方式來表示:
①代數方式,即關係代數
②邏輯方式,即關係演算而關係演算又進一步分為元組關係演算和域關係演算。已經證明,這些表示方式在功能上是相互等價的。一般選其一即可。
(3)關係模型的三類完整性 關係模型的三類完整性是:
①實體完整性(entity integrity)
②參照完整性(referential integrity)
③使用者定義的完整性(user defined integrity)其中,實體完整性和參照完整性是任何關係模型都必須滿足的完整性約束條件,應該由關聯式資料庫dbms自動支援。而使用者定義的完整性的支援是由dbms提供完整性定義設施(或機制),可以隨dbms商品軟體不同而有所變化。實體完整性是指:若屬性a是基本關係r的主關鍵字的屬性(即主屬性),則屬性a不能取空值(null)。在關聯式資料庫中有各種關係,如基本關係(常稱為基本表)、查詢表、檢視表等等。基本表是指實際存在的表,它是實際儲存資料的邏輯表示。查詢表是指和查詢結果相對應的表。而檢視表是由基本表或檢視表匯出的表,是虛表,不對應實際儲存的資料。實體完整性是針對基本關係的。空值是指「不知道」或者「無意義的」或「不屬於定義域」值。空值以「null」表示。對於實體完整性作如下說明:
(1)乙個基本關係通常對應於現實世界中的乙個實體集。例如學生關係對應於學生實體集。基本關係不是由其它關係生成的關係。基本關係是本原(primitive),是定義複雜關係的出發點。
(2)現實世界中的實體是可區分的,即實體具有某種唯一性的標識。
(3)在關係模型中由主關鍵字作為滿足唯一性的標識。
(4)主關鍵字中屬性不能取空值。因為若主關鍵字中某屬性取空值,則意味著某個實體不可標識;而這和(2)相矛盾。參照完整性是指:若基本關係r中含有另乙個基本關係s的主關鍵字k s 所對應的屬性組f(f稱為r的外部關鍵字(external keys)),則在關係r中的每個元組中的f上的值必須滿足:
①或者取空值(即f中的每個屬性的值均為空值);
②或等於s中某個元組的主關鍵字的值。基本關係r和s不一定是不同的關係。外部關鍵字也稱為外來關鍵字。例如,某資料庫中有職工關係emp(職工號,姓名,部門號)和部門關係dept(部門號,部門名稱)為兩個基本關係。關係emp的主關鍵字為「職工號」,dept的主關鍵字為「部門號」在emp中,「部門號」是emp的外部關鍵字。故此,在emp中的每個元組中「部門號」的值只有兩種可能性:
①取空值。這說明這個職工尚未分到某個部門;
②或取非空值。這時「部門號」的值必須是dept中某個元組中的「部門號」的值。這說明乙個職工不可能被分配到乙個不存在的部門。也就是說,被參照的關係dept中一定存在乙個元組,該元組的關鍵字的值等於emp中某元組的外部關鍵字的值。實體完整性和參照完整性是針對任何關係資料庫系統的所有資料庫的一般性原則。使用者定義的完整性針對某一具體的資料庫的約束條件。條件是由現實世界中的應用環境決定的。它涉及到某一具體的應用中的資料所必須滿足的語義要求。關型模型的dbms應提供定義和檢驗這類完整性條件的機制,以使用統一的方法來自動地處理它們而不要求應用程式設計師來承擔這一功能。
5.關聯式資料庫語言概述
關聯式資料庫語言分三類:資料描述語言ddl,資料操縱語言dml和資料控制語言dcl。其中,ddl負責資料庫的描述,提供一種資料描述機制,用來描述資料庫的特徵或資料的邏輯結構。dml負責資料庫的操作,提供一種處理資料庫操作的機制。dcl負責控制資料庫的完整性和安全性,提供一種檢驗完整性和保證安全的機制。dml是使用者經常使用的語言,包括了dbms的主要功能。dml包括資料
2011計算機四級考試資料庫重點分析(2)
資料庫應用系統生命週期 2.1 軟體生命週期是指軟體產品從考慮其概念開始,到該產品不再使用的整個時期。一般包括概念階段 需求階段 設計階段 實現階段 測試階段 安裝部署及交付階段 執行階段與維護階段。資料庫應用系統需求是指使用者對資料庫應用系統在功能 效能 行為 設計約束等方面的期望和要求 資料及資...
計算機四級考試 四級資料庫重點難點分析9
計算機四級考試 四級資料庫重點難點分析 事務高度與併發控制 9.1 排程 定義在多個事務上的排程是這些事務的所有操作的乙個執行序列,代表了這些操作的執行順序 衝突操作 事務ti 的操作ii與事務tj的操作ij是衝突的,當且僅當ii 和 ij訪問資料庫中同乙個資料項q,並且ii 和 ij中至少有乙個是...
計算機四級考試 四級資料庫重點難點分析3
計算機四級考試 四級資料庫重點難點分析 需求分析及功能建模方法 3.1 資料元素 列 是資料處理中的最小單位。3.2 dfd圖 資料流 標有名字的箭頭 處理 資料儲存 橫圓柱 資料來源 終點 稜形 3.3 idef0圖 更好地理解需求 icom 輸入 控制 輸出 機制 碼 至少乙個控制和輸出箭頭。a...