SQL数据库 - (二)关系数据库
一、關(guān)系模型
關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。
1.關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)——關(guān)系
關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。
2.關(guān)系操作
關(guān)系操作包括:選擇(select)、投影(project)、連接(join)、除(divide)、并(union)、交(intersection)、差(difference)等查詢(query)操作和增(insert)、刪除(delete)、修改(update)等更新操作兩大部分。查詢的表達能力是其中最主要的部分。
3.關(guān)系的三類完整性約束
允許定義三類完整性:實體完整性、參照完整性和用戶自定義的完整性。
?
二、關(guān)系數(shù)據(jù)庫基本概念
關(guān)系:
是笛卡爾積的子集,所以關(guān)系也是一個二維表。
元組:
對應(yīng)表的每行
域:
對應(yīng)表的每列
屬性(Attribute):
由于域可以相同,為了加以區(qū)分,必須對每列起一個唯一的名字。
候選碼(Candidate key):
若關(guān)系中的某一屬性組的值能唯一地標(biāo)識一個元組,則稱該屬性組為候選碼。關(guān)系至少含有一個候選碼。
主碼(Primary key):
若一個關(guān)系有多個候選碼,則選定其中一個為主控使用者稱為主碼。
主屬性(Prime attribute):
候選碼中的諸屬性。
非主屬性(Non-key attribute):
不包含在任何侯選碼中的屬性。 在最簡單的情況下,侯選碼只包含一個屬性。
全碼(All-key):
關(guān)系模式的所有屬性組是這個關(guān)系模式的侯選碼,稱為全碼(All-key)。
?
① 列是同質(zhì)的(Homogeneous),即每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。
② 不同的列可出自同一個域,稱其中的每一列為一個屬性,不同的屬性要給予不同的屬性名。
③ 列的順序無所謂,即列的次序可以任意交換。
④ 任意兩個元組不能完全相同。
⑤ 行的順序無所謂,即行的次序可以任意交換。
⑥ 分量必須取原子值,即每一個分量都必須是不可分的數(shù)據(jù)項。
三、關(guān)系完整性
規(guī)則2.1? 實體完整性規(guī)則:若屬性組(或?qū)傩?#xff09;K是基本關(guān)系R的主碼(或稱主關(guān)鍵字),則所有元組K的取值唯一,并且K中屬性不能全部或部分取空值。
規(guī)則2.2 參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S可能是相同的關(guān)系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中某個元組的主碼值。
用戶定義的完整性就是針對某一具體應(yīng)用的關(guān)系數(shù)據(jù)庫所制定約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。
四、關(guān)系運算
⒈ 選擇(Selection)σ
⒉ 投影(Projection)∏
⒊ 連接(Join)∞
- 等值連接(equijoin)
- 自然連接(Natural join):等值鏈接后消除重復(fù)屬性
4.除(Division)
舉例:
設(shè)教學(xué)數(shù)據(jù)庫中有三個關(guān)系,學(xué)生關(guān)系:S(SNO,SN,AGE,SEX)、學(xué)習(xí)關(guān)系:SC (SNO,CNO,SCORE)、課程關(guān)系:C (CNO,CN,TEACHER)
(1)檢索學(xué)習(xí)課程號為C3的學(xué)生學(xué)號和成績
∏SNO,SCORE(σCNO=’C3’(SC))
(2)檢索學(xué)習(xí)課程號為C3的學(xué)生學(xué)號和姓名
∏SNO,SN(σCNO=’C3’(S∞SC))
(3)檢索學(xué)習(xí)課程名為MATHS的學(xué)生學(xué)號和姓名
∏SNO,SN(σCN=’MATHS’(S∞SC∞C))
(4)檢索學(xué)習(xí)課程號為C1或C3的學(xué)生學(xué)號
∏SNO (σCNO=’C1’V’CNO=’C3’(SC))
(5)檢索不學(xué)習(xí)課程號為C2的學(xué)生的姓名和年齡
∏SN,AGE(S)- ∏SN,AGE (σCNO=’C2’(S∞SC))
(6)檢索學(xué)習(xí)全部課程的學(xué)生姓名
∏SN(S∞(∏SNO,CNO(SC)÷∏CNO(C)))
(7)檢索所學(xué)課程包括200401所學(xué)課程的學(xué)生學(xué)號
∏SNO,CNO(SC)÷∏CNO(σSNO=’200401’(SC))
轉(zhuǎn)載于:https://www.cnblogs.com/yuexiarenjing/archive/2013/04/18/3028785.html
總結(jié)
以上是生活随笔為你收集整理的SQL数据库 - (二)关系数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Reference, List, and
- 下一篇: oracle 创建触发器_oracle创