一、關系資料庫概述
20世紀80年代后,在商用資料庫管理系統中,( 關系模型 )逐漸取代早 期的網狀模型和層次模型,成為主流資料模型

SQL3(SQL-99):1999年
SQL2(SQL-92):1992年
SQL(SQL-89) :1989年
關系資料庫的基本特征是使用關系資料模型組織資料,這種思想來源于數學,
關系資料庫的優點:高級的分程序語言介面、較好的資料獨立性,為商品化的關系資料庫管理系統的研制做好了技術上的準備
二、關系資料模型
資料模型的要素包括:資料結構、資料操作、資料約束
關系資料模型的組成要素:關系資料結構、關系操作集合、關系完整性約束
********************************1、關系資料結構***************************

表(Table): 也稱為關系,是一個二維的資料結構,由表名、列、若干行資料組成;每個表有唯一的表名,表中每一行資料描述一條具體的記錄值
關系(Relation): 一個關系邏輯上對應一張二維表,可以為每個關系取一個名稱進行表示,基本關系 (基本表、 基表)、 查詢表、 視圖表(匯出的虛表)
列(Column) :也稱為欄位(Field)或屬性(Attribute),屬性的個數稱為關系的元或度;列的值稱為屬性值,其取值范圍稱為值域
行(Row): 也稱為元組(Tuple)或記錄(Record),表中的資料按行存盤,
分量(Component):(具體的資料項) :元組(行)中的一個屬性值,稱為分量,
域(Domain) :表示屬性的取值范圍
資料型別(Data Type): 每個列都有相應的資料型別,它用于限制(或容許)該列中存盤的資料,
碼或鍵(Key): 屬性(或屬性組)的值都能用來唯一標識該關系的元組,則稱這些屬性( 或屬性組)為該關系的碼或鍵
超碼或超鍵(Super Key): 在碼中去除某個屬性,它仍然是這個關系的碼
候選碼或候選鍵(Candidate Key): 在碼中不能從中移去任何一個屬性,否則它就不再是這個關系的碼或鍵;候選碼或候選鍵是這個關系的最小超碼或超鍵,
主屬性(Primary Attribute)或非主屬性(Nonprimary Attribute): 包含在任何一個候選碼中的屬性稱為主屬性或碼屬性
主碼或主鍵(Primary Key): 在若干個候選碼中指定一個唯一標識關系的元組(行)
全碼或全鍵(All Key) :一個關系模式的所有屬性集合是 這個關系的主碼或主鍵,這樣的 主碼或主鍵稱為全碼或全鍵,
外碼或外鍵(Foreign Key): 某個屬性(或屬性組)不是這個關系的主碼或候選碼,而是另一個關系的 主碼
參照關系(Referencing Relation)和被參照關系(Referenced Relation): 參照關系也稱為從關系,被參照關系也稱為主關系,它們是指以外碼相關聯 的兩個關系,

關系模式(Relation Schema): 關系模式是型(type),關系是 值(value),即關系模式是對關 系的描述;關系模式是靜態的、穩定的; 關系是動態的、隨時間不斷變化 的,
關系資料庫(Relation Database) 所有關系的集合,構成一個關系資料庫, 以關系模型作為資料的邏輯模型,并采用關系作為資料組織方式的一類數 據庫,其資料庫操作建立在關系代數的基礎上,
關系資料庫對關系的限定/要求:
1)每一個屬性都是不可分解的(不允許表中有表);
2)每一個關系僅僅有一種關系模式;
3)每一個關系模式中的屬性必須命名,屬性名不同;
4)同一個關系中不允許出現候選碼或候選鍵值完全相同的元組;
5)在關系中元組的順序(即行序)是無關緊要的,可以任意交換;
6)在關系中屬性的順序(即列序)是無關緊要的,可以任意交換,
******************************2、關系操作集合**************************************
基本的關系操作:
查詢 Query (集合的操作方式(一次一集合))

插入 Insert
洗掉 Delete
修改 Update
****************************************************************************
關系資料語言的分類
關系代數語言:任何一種操作都包含三大要素: 操作物件、 運算子 、操作結果
SQL:結構化查詢語言
關系演算語言: 元組關系演算 、域關系演算
共同特點:具有完備的表達能力,是非程序化的集合操作語言,功能強, 能夠獨立使用也可以嵌入高級語言中使用,
傳統的集合運算:

*************************差(DIFFERENCE):R3=R1-R2******************************

**********************交(INTERSECTION):R3=R1∩R2**************************

********************笛卡爾積(CARTESIAN PRODUCT):R3=R1×R2********************

專門的關系運算

***************************投影(PROJECTION):πA(R)**************************************
A:是屬性序列
關系代數中投影運算是對關系進行的垂直分解

*************************連接(JOIN),也稱θ連接:**************************************

***********************除(DIVISION):R÷S************************************************

************************************************例題**********************************************************

******************************3、關系的完整性約束**************************************
資料庫的資料完整性是指資料庫中資料的正確性、相容性、一致性
關系的完整性約束分類:
- 物體完整性約束:主碼的組成不能為空,主屬性不能是空值NULL
- 參照完整性約束:定義外碼和主碼之間的參考規則 要么外碼等于主碼中某個元組的主碼值,要么為空值(NULL)
- 用戶定義完整性約束:域完整性約束(針對某一應用環境的完整性約束)、其他
執行插入操作的檢驗

執行洗掉操作
一般只需要對被參照關系檢查參照完整性約束(是否被參考)
執行更新操作
上述兩種情況的綜合
三、關系資料庫的規范化理論
關系模式中可能存在的冗余和例外問題
- 資料冗余:指同一資料被反復存盤的情況
- 更新例外:資料冗余造成的,多個內容更改使操作錯誤
- 插入例外
- 洗掉例外
函式依賴與關鍵字
函式依賴:關系中屬性間的對應關系
X→Y:設R為任一給定關系,如果對于R中屬性X的每一個值,R中的屬性Y只有唯一 值與之對應,則稱X函式決定Y或稱Y函式依賴于X,記作X→Y,其中X稱為決 定因素,

X /→ Y:

函式依賴分類:完全函式依賴 、部分函式依賴 、傳遞函式依賴
*****************完全函式依賴************************

*****************部分函式依賴************************

*****************傳遞函式依賴************************

關鍵字

范式與關系規范化程序
規范化(Normalization):一個低一級范式的關系模式通過模式分解(Schema Decomposition)可以轉換為若干個高一級范式的關系模式 的集合,這種程序就叫規范化(Normalization)
*****************第一范式1NF***********************

第一范式的缺點:

*********************第二范式2NF*************************
設R為任一給定關系,若R為1NF, 且其所有非主屬性都完全函式依賴于候選關鍵字,則R為第二范式,
*************************第三范式3NF*******************
設R為任一給定關系,若R為2NF, 且其每一個非主屬性都不傳遞函式依賴于候選關鍵字,則R為第三范式
********************第三范式的改進形式BCNF******************

1NF->2NF
找到候選關鍵字,看其余的屬性是否完全函式依賴候選關鍵字,
是的,與候選關鍵字一同抄下來形成一個表格,
不是的,抄下來,形成第二個表格,并且將候選關鍵字里能夠唯一決定表格2的屬性組抄在第一列
2NF->3NF
找到表格中的傳遞函式依賴關系的三個屬性組,設為x,y,z
將這三個屬性組拆成兩個表格 第一個表格為x,y
第二個表格為y,z
3NF->BCNF
列出表格中的所有函式依賴關系 每個關系拆出一個表格
SQL的主要構成:


轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/5524.html
標籤:其它
