關聯式資料庫原理 資料模型

2021-06-20 22:04:38 字數 3306 閱讀 2437

資料庫是以某種資料模型所確定的資料結構方式來組織和儲存某個組織(或部門)相互關聯的資料集。資料庫管理系統是一種幫助使用者建立、使用、管理和維護資料庫的計算機系統軟體。或者說,資料庫管理系統是開發乙個實際應用資料庫的工具並支撐其執行的平台。資料庫管理系統必須與其管理的資料庫的資料模型相一致。

1.資料模型

資料模型是對現實世界資料特徵進行抽象的工具,用來描述和處理現實世界中的資料和資訊。資料模型要能較真實地模擬現實世界,既要便於人們理解,又要便於在計算機上實現。資料模型主要由資料結構、資料操作、資料完整性規則三個部分組成。資料結構描述了組成資料庫的基本成分;資料操作描述了對資料結構允許執行的操作集合;完整性規則描述了對資料結構所具有的約束和儲存規則。

2.關係資料模型

關係資料模型的資料結構是人們日常事務處理中常見的二維表結構(如工資發放表)。關係資料模型將資料看成是二維表中唯一的行號和列號確定的乙個表中元素,即關係資料模型是用二維表的方式來組織、儲存和處理資料和資訊的。從應用的角度來看,任何乙個組織(或部門)的關聯式資料庫的基本組成成分是二維表,或者說某個組織(或部門)的資料庫是由若干張相互關聯的二維表組成。由於二維表結構清晰、簡單、易於理解,也易於計算機實現(儲存、操作、控制),加上關係資料模型有數學理論基礎(集合論、關係代數),因此現在的資料庫管理系統軟體都是基於關係資料模型研發的,如sql server、oracle、db2、sybase、access、foxpro等等。也就是說,用這些關聯式資料庫管理系統軟體為某個組織開發的會計資料庫系統必須按關係資料模型來組織資料。那麼,關係資料模型中的二維表與資料庫中的資料檔案之間有何聯絡?

下面我們通過會計科目**表來介紹關係資料模型的基本概念及其與資料庫中的資料檔案之間的對應關係:

(1)關係、二維表、資料檔案:關係資料模型中用關係來表述現實世界中能夠相互區別的要管理的資料物件集。每乙個關係都有乙個關係名和一組表述其特徵的屬性集,人們就是通過這些屬性集區別不同的關係。如記賬憑證、會計科目、總賬都可以稱之為關係,它們都是要管理的資料物件集,都有各自的屬性集。乙個關係用一張二維表表示,表名對應關係名。二維表由有限個不重複的行組成,表中的每一列不可再分。一張二維表在關聯式資料庫中用乙個資料檔案儲存。如「會計科目**表」在會計資料庫中用乙個資料檔案儲存,檔名可以用表名「會計科目**」,使計算機中儲存的檔案內容與現實世界管理的資料物件相聯絡。

(2)記錄:二維表中的每一行稱為乙個記錄,描述了關係中乙個具體的個體,在資料檔案中是乙個記錄值。如表1中第一行為現金賬戶的記錄,描述了現金賬戶在會計科目**檔案中所有屬性的取值(特徵)。

(3)屬性、列、字段:二維表中的每一列是乙個屬性,描述了關係的乙個特徵。乙個二維表的所有列構成了乙個關係的屬性集,通過它可以區別不同的二維表(關係)。二維表中的每一列的資料屬於同一型別。每一列的列名對應關係的屬性名,同時對應資料檔案中的欄位名。如表1用6個列表示會計科目**的屬性,其中第三列表示屬性「科目性質」,當某條記錄取值為1時,表示是資產類科目。

(4)主碼、主關鍵字:指二維表中的某個列(屬性)或某幾個列(或屬性組),它們的值能夠唯一確定表中或資料檔案中的乙個記錄。如表1中的「科目**」屬性可以作為主碼(或主關鍵字),用來唯一識別表中的每乙個會計科目。

(5)域:描述二維表中每一列屬性或資料檔案的某一字段的取值型別和範圍。如表1中每一列的列名下面的括號中的內容表示該列的取值型別和範圍,其中第四列「底層明細標誌」表示某個科目是不是最底層明細科目(不再有下層科目),只有兩種取值t(真)和f(假)。

(6)關係模式:乙個關係模式由乙個關係名及它所有的屬性構成,它對應乙個二維表的表名和表頭欄目行(列的集合),構成了乙個二維表的框架,同時也是設計該二維表的資料檔案結構的依據。

至此,我們直觀地介紹了關聯式資料庫中的關係、二維表、資料檔案之間各個概念的對應關係。由於二維表中的行與資料檔案的記錄、二維表的列(屬性)與資料檔案的字段之間相互對應,因此,審計人員只要掌握了會計賬務資料庫的二維表結構及表之間的關聯也就能夠分析電子賬的結構。

例如,將會計科目**表(表1)轉換成關聯式資料庫中的資料檔案結構:

3.關係資料模型的資料操作

從數學的角度看,關係資料模型的資料操作是基於集合的操作,操作物件和操作結果都是集合。從資料處理的角度看,資料操作的物件和結果都是二維表。對二維表的操作主要有:

(1)對錶中的行(記錄)進行操作:指對一張表中指定範圍的記錄進行有條件的操作,操作的結果組成一張新錶。例如,從「會計科目**表」中篩選出資產類科目組成新的「資產類科目**表」,操作的範圍是整個「會計科目**表」,條件是「科目性質等於1」。對錶中的行進行操作後的結果表的結構與原表相同,記錄數小於或等於原表。

(2)對錶中的列(屬性)進行操作:指對一張表中指定的列進行有條件的操作,操作的結果組成一張新錶。例如,從「會計科目**表」中選出「科目**」、「科目名稱」兩列,組成新的科目**對應表,新錶只有「科目**」和「科目名稱」兩列。顯然,列操作後的結果表的結構與原表不同,結果表小於或等於原表。

(3)連線:對兩張表或多張表進行有條件的連線操作,生成一張新錶。連線操作後的結果表大於等於操作前的表。

從應用的角度看,對二維表中的資料操作功能主要包括更新(增加、修改、刪除)資料和檢索(查詢)資料,即對二維表填入和修改資料,並從表中檢索出資料進行加工應用。

4.關係資料模型的資料完整性規則

資料完整性是指資料庫中儲存的資料是有意義的或正確的。關係資料模型中的資料完整性規則是指對二維表的定義和操作過程中要遵循的某些約束條件。主要包括:

(1)實體完整性:指每張表都必須有主碼,而且表中不允許存在無主碼值的記錄和主碼值相同的記錄。如表1中的每乙個記錄都必須有科目**,並且不能有相同科目**的記錄和無科目**的記錄。

(2)參照完整性:指一張表的某列的取值受另一張表的某列的取值範圍約束,描述了多張表之間的關聯關係。例如,記賬憑證表中的「科目**」列的取值受到會計科目**表的「科目**」取值範圍的限定。

(3)使用者定義完整性。指針對某一具體應用定義的資料庫約束條件,反映某一具體應用所涉及的資料必須滿足應用語義的要求。即限制屬性的取值型別及範圍,防止屬性的值與應用語義矛盾。如表1中,「科目性質」的取值只能是1(資產)、2(負債)、3(權益)、4(成本)、5(損益)。

5.從關係資料模型得到的啟示

(1)基於關係資料模型的會計賬務資料庫是以二維表為基本部件構建的,資料庫中的每乙個資料檔案對應一張二維表,資料檔案之間的關聯也可以用二維表之間的關聯來表示,對二維表的定義和資料操作必須滿足資料完整性約束條件。構建乙個會計賬務資料庫首先要將會計賬務管理的物件,如會計科目、記賬憑證、日記賬、明細賬、總賬及它們之間的關係抽象成二維表的形式,弄清了它們的二維表結構也就弄清了它們的資料檔案結構,即電子賬結構。因此,會計賬務資料庫結構設計可以轉變成會計賬務資料的二維表及二維表之間的關聯設計,而一張二維表的表頭欄目(屬性集)反映了表的結構特徵,是設計資料檔案結構的依據。

資料庫 關係資料模型

關係可以有三種型別 基本型別 基本表或者基表 查詢表和檢視表 基本型別具有以下6條性質 1.列是同質的 homogeneous 即每一列中的分量是同一型別的資料,來自同乙個域 2.不同的列可出自同乙個域,稱其中的每一列為乙個屬性,不同的屬性要給予不同的屬性名。當兩種不同的屬性的值取自同乙個域時,要賦...

關係資料模型

一 資料結構 關係資料模型是有若干個關係模式組成的集合。關係模式的例項成為關係。每個關係可看為乙個二維表,表的行稱為元組,用來標識實體集中的乙個實體 表的列稱為屬性,列名即為屬性名,屬性名不能相同。關係的描述稱為關係模式 relation schema 它可以形式化地表示為 r u,d,dom,f ...

資料庫基礎之關係資料模型

域指的是字段值的取值範圍,原子的含義是指域中的每個值是不可分的。元組中的null值並不是我們所想的代表了乙個空,一般來說,null值有幾種含義,例如值未知,值存在但不可用或屬性不適用於這個元組等,在與其他值一起進行代數上的聚集和比較操作是,需要知道null的準確含義。在我的理解下,超碼是一些屬性的集...