1. 程式人生 > >Oracle知識梳理(一)理論篇:基本概念和術語整理

Oracle知識梳理(一)理論篇:基本概念和術語整理

http 知識梳理 屬性集 操作 url 本質 開發 表格 weight

理論篇:基本概念和術語整理

一、關系數據庫

關系數據庫是目前應用最為廣泛的數據庫系統,它采用關系數據模型作為數據的組織方式,關系數據模型由關系的數據結構關系的操作集合關系的完整性約束三部分組成。

二、關系數據庫中的一些基本術語和定義

1、關系數據模型

關系數據模型是建立在嚴格的數學概念的基礎上,由一組關系組成,每個關系的數據結構是一張嚴格規範化的二維表,簡單說關系數據模型就是用二維表的形式來表示實體和實體間聯系的數據模型。

二維表

簡單說關系數據庫中數據的主要存儲形式是二維表,這種二維表具有嚴格的規則要求,表中每一列代表著關系數據庫中的一個屬性,每一列的名字就是一個屬性名;每一行代表一個記錄,即對應現實中的一個物理實體。其中,列稱為屬性或者字段,行被稱為元組或者記錄。

例:用戶表
用戶編號 用戶名 密碼 性別 年齡
001 url123 12345789 34
002 adm336 abcdefg 26

關系:一般說某個關系,即是指某張表。一個關系對應一張表。

元組:表中的某一行成為一個元組,一行即對應一個物理實體,元組就是物理實體的抽象。

屬性:表中的一列即為一個屬性,給每一列的命名即為屬性名:如例表中的 用戶名一列。

:即是指某一個屬性的取值範圍,屬性的取值範圍成為該屬性的域,如:性別的取值為男/女;用戶編號的域為一個三位數的整數。

關鍵字或者碼(key):也稱作碼鍵,表中的某個屬性組(多個屬性組成,也可以為單個屬性構成),它可以唯一確定一個元組,例表中用戶編號可以唯一確定一個用戶(即整個表中不存在與這行數據相同的另一行),關系數據庫中通常稱為主碼或者主鍵。有時也會遇到不止一個屬性能唯一確定一個元組的時候,所有可以唯一確定一個元組的屬性統稱為候選碼,而主碼是在候選碼中選出,候選碼包含主碼。

分量:元組中某一個屬性的屬性值

關系模式: 一般的具體書面表示時,一個關系模式的表示形式為 : 關系名(屬性1,屬性2,屬性3……),簡記為:R(U)或者R(A1,A2,A3……)

R(U,D, dom ,F),R為關系名(表名),U是組成該關系的屬性集合,D為屬性的域,dom為屬性向域的映像的集合。

術語對比
關系術語 表格稱謂
關系名 表格名
關系 二維表(具體的一張)
元組 一條記錄/表中的一行
屬性 表中的列
屬性名 列名
屬性值 列中的取值
分量 一行中某個列的列值
非規範關系 表中表(表的嵌套)

2、關系數據模型的特點

①關系必須規範化:關系模式中每個關系都必須滿足一定的要求。

②模型概念單一:關系數據模型的優點就是模型概念單一,無論具體的實體還是實體間的聯系,都用簡單的二維表來描述和表示,對數據的檢索和操作結果也是關系(表),其數據結構簡單清晰,便於理解 和操作。

③操作集合:在關系數據模式中,操作的對象和結果都是元組的集合,即關系(表)

總結:

關系數據模式建立在嚴格的數學概念基礎上,其數據模型的概念單一(即表)。關系數據模型的存取路徑對用戶透明,從而具有更高的數據獨立性、更好的安全保密性,簡化了專業人士的開發建立工作。

3、關系操作

關系操作的對象和結果都是集合,稱為一次一集合的方式,而非關系數據模型的一次一記錄數據操作方式。關系數據庫中常用的數據操作包括: 查詢操作(Query)和插入操作(Insert)、刪除操作(Delete)、修改操作兩大部分。具體見下圖:

技術分享圖片

以上關系操作均為邏輯理論操作,在實際的數據庫系統中,為了實現這些關系操作,我們可以使用一種關系代數和關系演算之間的語言SQL(結構化查詢語言),SQL具有豐富的查詢、數據定義、數據控制功能。Oracle中主要使用SQL*plus。

4、關系的完整性

實體完整性:若屬性(一個或者一組)A為關系B的主屬性,則A不能為空。簡單的解釋就是,一個表中的主鍵不能為空值,這裏的主鍵包括單一屬性的主鍵非空,和組合主鍵的屬性組中屬性均不能為空。

實體完整性是針對基本關系的,即一個表中的元組對應現實中的物理實體,而現實中的物理實體是可區分的,每個都是獨立唯一的。而主鍵(主屬性)則作為整個唯一的標識,主鍵為空,則表示存在不可標識的實體,這與理論矛盾,所以主鍵不能為空。

參照完整性:若屬性(或屬性組)F是基本關系R的外鍵,它與基本關系S的主鍵K相對應(即關系R引用關系S的主鍵為外鍵,其中S和R不一定是不同關系),則對於R中每個元組在F上的值必須為如下兩種情況之一:空值(F中所有屬性為空),等於S中某元組的主鍵。

外鍵:現實世界中,實體之間往往存在著某種聯系,這些聯系在關系數據庫中都用關系來描述,這就存在著關系與關系間的引用:如果F是基本關系R的一個或一組屬性,但不是R關系的主鍵,而K是基本關系S的主鍵,如果F與K相對應,則稱F是R的外鍵(Foreign Key),並稱基本關系R為參照關系(Referencing Relation),基本關系S被稱為被參照關系或目標關系。

關系S
用戶名(主鍵) 密碼 年齡
GMM123 123456 35
SST789 admin22 45

關系R
Id(主鍵) 用戶名 職務
001 GMM123 老師
002 SST789 老師

例如上面兩表,關系S中的用戶名為關系S的主鍵,與R中的用戶名屬性對應,則用戶名為關系R的外鍵。

用戶自定義完整性:實體完整性和參照完整性是任何關系數據庫都必須遵守的,除此以外,根據具體不同的情況和問題,往往需要一些額外的約束條件,具體為用戶在定義關系時自己定義的。

5、關系數據庫中的規範化理論

函數依賴: 設R(U)是屬性集合U上的一個關系模式,X,Y是U的子集,若對於R(U)的任意一個可能的關系r,r中不可能存在兩個元組在X上的屬性值相等而在Y上的屬性值不等,則稱X函數確定Y或者Y依 賴於X,記作X→Y。

函數依賴的分類:

平凡函數依賴與非平凡函數依賴

完全函數依賴與部分函數依賴

傳遞函數依賴

範式理論:

①第一範式(1NF):如果關系模式R中每一個屬性值都是一個不可分解的數據項,則稱該關系模式滿足第一範式,記為R∈1NF。(不可分割意思為單一屬性,屬性值必須為“原子”的)

②第二範式(2NF):在滿足第一範式的前提下(即R∈1NF),且它的所有非主屬性都完全函數依賴與R的任一候選鍵,則稱該關系滿足第二範式,即R∈2NF。

③第三範式(3NF):在滿足R∈2NF的前提下,且所有非主屬性,都不傳遞函數依賴於任何候選鍵,則R滿足第三範式,即R∈3NF。

④BCNF範式(BCNF):對於一個關系模式R,如果對於每一個函數依賴X→Y,其中的決定因素X都含有鍵,則稱關系模式R滿足BCNF範式,即R∈BCNF。

通常認為BC範式是對第三範式的修正和擴展,BCNF的本質意義在於:其中每一個決定因素都是一個主鍵。或者說,在BCNF中除了候選鍵決定其所有屬性或主鍵決定其所有屬性之外,絕不會存在其他的非平凡函數依賴。

範式在數據庫的設計中占有很大的比重,通過它可以優化數據庫設計,避免一些問題,例如:減少數據的冗余,改進數據庫整體組織,增強數據的一致性,增加數據庫設計的靈活性。因此在數據庫設計時,應根據實際情況,使關系模式滿足適當的範式,使數據庫設計更加規範

三、數據庫設計

1、實體 - 關系模型(E - R)

實際具體設計中,我們需要將現實生活中的實際物體進行抽象化,轉變成數學模型,進而轉化為關系模型。

①實體(Entity):是E—R模型的基本對象,是現實世界中各種事務的抽象。簡單點說就是對應著現實生活中確實存在的事務,例如:張三、李四具體的某個人,也可以是學生這個現實中的群體。

②屬性(Attribute):實體的若幹特征,即為實體的屬性。例如,現實生活中學生會有學號這個特征,轉化為關系中的學號屬性。

③聯系(Relationship): 實體之間會存在各種各樣的關系與聯系,例如老師和學生存在師生關系,一個語文老師可能是一個班所有學生的共同語文老師,而對於具體某個學生而言,他們只有一個語文老師,即一對多,和一對一。

一對一聯系(1:1):對於實體集A和B來說,A中任意一個實體a,B中至多有一個實體b與之聯系,反過來也是如此,則A與B就是一對一聯系。

一對多聯系(1:N):在實體集A中每一個實體a,B中有N個實體與之聯系,對於實體集B中的每一個實體b,實體集A中至多有一個實體a與之聯系,則A與B為一對多聯系。

多對多聯系(M:N):如果對於實體集A中每一個實體a,B中有N個實體與之對應,而且對於B中每個實體b,A中有M個實體與之對應,則A和B是多對多聯系。

2、E—R圖繪制

技術分享圖片

Oracle知識梳理(一)理論篇:基本概念和術語整理