關係數據庫
**1. 關係數據模型源於數學。
- 用二維表來組織數據,這個二維表在關係數據庫中就稱爲關係。
- 關係數據庫就是表或者說是關係的集合。
- 關係系統要求讓用戶所感覺的數據庫就是一張張表。
- 在關係系統中,表是邏輯結構而不是物理結構。**
傳統的關係運算:
- 並(Union)
- 交(Intersection)
- 差(Difference)
- 廣義笛卡爾乘積(Extended Cartesian Product)
專門的關係運算:
- 選擇(Select)
- 投影(Project)
- 連接(Join)
- 除(Divide)
主要包括:查詢、插入、刪除和修改數據。
是基於集合的操作,操作對象和操作結果都是集合(或關係)。
是非過程化的。
數據完整性是指數據庫中存儲的數據是有意義的或正確的。
主要包括三大類:
- 實體完整性
- 參照完整性
- 用戶定義的完整性
關係 :關係就是二維表。並滿足如下性質:
關係表中的每一列都是不可再分的基本屬性;
表中的行、列次序並不重要。
屬性 :表中的每一列是一個屬性值集,列可以命名,稱爲屬性名。
值域:屬性的取值範圍 。如,性別只能是‘男’和‘女’兩個值。
元組:表中的每一行稱作是一個元組,它相當於一個記錄值。
分量:元組中的每一個屬性值稱爲元組的一個分量,n元關係的每個元組有n個分量。
關係模式:關係模式是關係的“型”或元組的結構共性的描述。關係模式實際上對應關係表的表頭。設關係名爲R,屬性分別爲A1,A2,…,An,則關係模式可以表示爲:
R(A1,A2,…,An)
- 關係數據庫:對應於一個關係模型的所有關係的集合稱爲關係數據庫。
- 候選碼:能夠惟一標識關係中的一個元組的一個屬性或最小屬性組。
- 主碼:指定候選碼中的一個作爲主碼。
- 主屬性:包含在任一候選碼中的屬性稱爲是主屬性。
- 非主屬性:不包含在任一候選碼中的屬性稱爲是非主屬性。
- 外碼:如果某個屬性不一定是所在關係的碼,但是其他關係的碼,則稱該屬性爲外碼。
實體完整性是保證關係中的每個元組都是可識別的和惟一的。
- 而且表中不允許存在如下的記錄: 無主碼值的記錄 主碼值相同的記錄用於描述實體之間的聯繫。
參照完整性一般是指多個實體(表)之間的關聯關係。
一般用外碼實現。
外碼:取作本表(子表)屬性之一的外表(父表,主表)主碼。
主碼值先在主表中生成,後在子表中引用
例子
查詢修c02號課程的學生的學號和成績。
∏sno, grade(σcno=‘c02’(SC))
查詢計算機系修c02號課程的學生的姓名和成績。
∏sname, grade(σcno=‘c02’(SC) >< σsdept=‘計算機系’(Student))
查詢修了第2學期課程的學生的姓名和所在系。
∏sname, sdept(σsemester=2(Course) ><SC (Student)
查詢修了全部課程的學生的學號和姓名。
∏sno, sname(Student ><(SC ÷ ∏cno(Course)))