數據庫的一些術語
昨天開始重新看看數據庫,第一章就是總的來說一下數據庫的一些術語和關系模型,以後的幾章都是圍繞著這些進行開展,想為以後留一個復習的輪廓,寫了這篇博客。
數據:描述事物的符號記錄。可以是文字,圖形,圖像,音頻,視頻等,數據有多種表現形式,它們都可以經過數字化後存入計算機。
數據庫管理系統(DataBase Management System ,DBMS)
和操縱系統一樣是計算機的基礎軟件講述的是如何科學的組織和存儲數據,如何高效的獲取和維護數據。
功能:(1)數據定義功能(2)數據組織存儲和管理(3)數據操作功能(4)數據庫的事物管理和運行管理(5)數據庫的建立和維護功能(6)其他功能
數據庫系統(
定義:是由數據庫,數據庫管理系統(及應用開發工具),應用程序和數據庫管理員(DataBase Administrator,DBA)組成的存儲,管理,處理和維護數據的系統。
實體:客觀存在並相互區別的事物。
屬性:實體所具有的某一特性。例如屬性組合(20123,李四,男,1996076,計算機,2013)即表現一個學生的屬性。
碼:唯一標識實體的屬性集稱為碼。例如學號是學生的實體的碼。
實體型:用實體名和屬性名集合來抽象和刻畫同類實體,稱為實體型。如,學生(學號,姓名,出生年月,所在院系,入學時間)就是一個實體型。
實體集:同一類型的集合稱為實體集。例如,全體學生就是一個實體集。
聯系實體型內部聯系和實體型之間的聯系,實體內部的聯系通常是指組成實體的各屬性之間發的聯系,實體之間的聯系通常是指不同實體之間的聯系。實體之間的聯系有一對一,一對多,和多對多類型。
概念模型的一種表達方式:實體——聯系方法,該方法是通過E-R圖來描述現實社會的概念模型也稱E-R模型。
數據模型通常由數據結構,數據操作和數據的完整性約束條件三部分組成。
- 數據結構:描述數據庫的組成對象以及對象之間的聯系。長按照數據結構的類型來命名數據模型,例如層次結構,網狀結構,關系結構的數據模型來分別命名為層次模型,網狀模型和關系模型。是對系統靜態的描述。
- 數據操作:是對數據庫中各類對象(型)的實體(值)允許執行的操作的集合,包括操作及有關的操作規則。數據庫主要有查詢和更新(包括插入,刪除和修改)兩大類操作,是對系統的動態特性描述。
- 數據的完整性約束條件:是一組完整性規則。
常用的數據模型
a>數據庫領域中主要的邏輯數據模型有
1層次模型
定義;用樹型(層次)結構表示實體類型及實體間聯系的數據模型稱為層次模型(Hierarchical Model)。在樹中,每個結點表示一個記錄類型,結點間的連線或邊表示記錄類型間的關系,每個記錄類型可包含若幹個字段,記錄類型描述的是實體,字段描述實體的屬性,各個記錄類型及其字段都必須命名。如果要存取某一記錄型的記錄,可以從根節點起,按照有向數層次向下查表。
在層次模型中,同一雙親的子結點稱為兄弟結點,沒有子結點的結點稱為葉結點。示例如右圖:結點R1為根節點,R3、R4、R5為葉節點,R2和R3與R4和R5分別為兄弟結點。
缺點
層次模型的缺點主要有:
(1)現實世界中很多聯系是非層次性的,如多對多聯系、一個結點具有多個雙親等。層次模型表示這類聯系的方法很不靈活,不能直接表示兩個以上的實體型間的的復雜的聯系和實體型間的多對多聯系。只能通過引入冗余數據或建非自然的數據組織如創建虛擬節點的方法來解決,易產生不一致性。
(2)對數據的插入和刪除的操作限制太多。
(3)查詢子女結點必須通過雙親結點,因為層次模型對任一結點的所有子樹都規定了先後次序,這一限制隱含了對數據庫存取路徑的控制。樹中父子結點之間只存在一種聯系,因此,對樹中的任一結點,只有一條自根結點到達它的路徑。
(4)樹結點中任何記錄的屬性只能是不可再分的簡單數據類型。
(5)由於結構嚴密,層次命令趨於程序化。
2網狀模型
定義:網絡結構表示實體類型及其實體之間聯系的模型。顧名思義,一個事物和另外的幾個都有聯系,這樣構成一張網狀圖。
網狀模型是一種可以靈活地描述事物及其之間關系的數據模型。
現實世界中事物之間的聯系更多的是非層次關系的,用層次模型表示這種關系很不直觀,網狀克服了這一弊病,可以清晰的表示這種非層次關系。
用有向圖結構表示實體類型及實體間聯系的數據結構模型稱為網狀模型(Network Model)。
網狀模型取消了層次模型的不能表示非數狀結構的限制,兩個或兩個以上的結點都可以有多個雙親結點,則此時有向樹變成了有向圖,該有向圖描述了網狀模型。
網狀模型中以記錄為數據的儲存單位。記錄包含若幹數據項。網狀數據庫的數據項可以是多值的和復合的數據。每個記錄有一個惟一地標識它的內部標識符,稱為碼(DatabaseKey,DBK),它在一個記錄存入數據庫時由DBMS自動賦予。DBK可以看作記錄的邏輯地址,可作記錄的替身,或用於尋找記錄。網狀數據庫是導航式(Navigation)數據庫,用戶在操作數據庫時不但說明要做什麽,還要說明怎麽做。例如在查找語句中不但要說明查找的對象,而且要規定存取路徑。
優點
網狀數據模型的優點如下。
(1) 能夠更為直接地描述現實客觀世界。可表示實體間的多種復雜聯系。
(2) 具有良好的性能,存取效率較高。
缺點
網狀數據模型的缺點如下。
(1) 結構比較復雜,其數據定義語言(DDL)、數據操作語言(DML)復雜,用戶不容易使用。而且應用環境越大,數據庫的結構就變得越復雜,不利於最終用戶掌握。
(2) 數據獨立性差,由於實體間的聯系本質上是通過存取路徑表示的,因此應用程序在訪問數據時要指定存取路徑。
3關系模型
關系模型是由一組關系組成。每一個關系是一張規範的二微表。下面以學生登錄表為例,介紹一下關系模型的一些術語。
學號 |
姓名 |
性別 |
年齡 |
圖書證號 |
所在系 |
S3001 |
張明 |
男 |
22 |
B20050101 |
外語 |
S3002 |
李靜 |
女 |
21 |
B20050102 |
外語 |
S4001 |
趙麗 |
女 |
21 |
B20050301 |
管理 |
關系:就是一個關系對應通常所說的一張表,上圖。
元組:表中的一行即為一個元組。
屬性:表中的一列就是一個屬性,給每一個屬性起一個名稱即為屬性名。(圖上有六列對應六個屬性(學號,姓名,性別,年齡,圖書證號,所在的系)
碼:也成為碼鍵。表中某一屬性組可以唯一確定唯一一個元組,如圖中的學號可以唯一確定一個學生,也成為本關系中的碼。
域 :域是一組具有相同數據類型的值的集合如性別的域是(男,女),系名的域是一個學校所有系名的集合。
分量:元組中的某一屬性值。
關系模型的基本原理是信息原理:所有信息都表示為關系中的數據值。所以,關系變量在設計時刻是相互無關聯的;反而,設計者在多個關系變量中使用相同的域,如果一個屬性依賴於另一個屬性,則通過參照完整性來強制這種依賴性。
相互關系:一個數據庫可以包含若幹張表;一張表有若幹個字段;每張表又有若幹條記錄(元組),每條記錄(元組)對應每個字段都有一個值優點
(1) 數據結構單一
關系模型中,不管是實體還是實體之間的聯系,都用關系來表示,而關系都對應一張二維數據表,數據結構簡單、清晰。
(2)關系範式化,並建立在嚴格的理論基礎上
構成關系的基本規範要求關系中每個屬性不可再分割,同時關系建立在具有堅實的理論基礎的嚴格數學概念基礎上。
(3)概念簡單,操作方便
關系模型最大的優點就是簡單,用戶容易理解和掌握,一個關系就是一張二維表格,用戶只需用簡單的查詢語言就能對數據庫進行操作。
數據庫系統的三級模式結構
1模式:也稱為邏輯模式,是數據庫中全體數據的邏輯結構和特征的描述,所有用戶的公共數據視圖。它是數據庫系統模型結構的中間層,既不幹涉數據的物理存儲細節和硬件環境,又與具體的應用程序,所使用的應用開發工具及高級的程序設計語句無關。數據庫模式以某一數據模型為基礎,統一綜合的考慮了所有用戶的需求,並將這些需求有機的結合成一個邏輯整體。
2外模式:外模式是模式的子集。一個數據庫可以有多個外模式。由於它是各個用戶的數據視圖,如果不同的用戶在應用需求,看待數據的方式,對待數據保密的要求等方面存在差異,則其外模式描述就不同。
3內模式:也稱儲存模式,一個數據庫只有一個內模式。它是數據物理結構和存儲方式的描述,是數據在數據庫內部的組成方式。
數據庫的一些術語