《數據庫系統概念》3-主鍵、關係運算

 

1、關係數據庫相關數據庫


a)在將數據呈現給用戶時,主要需解決兩個關鍵問題:如何檢索、更新數據以及對數據的保護。
而用戶對字段的使用決定了其是否原子性,好比phone,即便保存單個電話號碼,若是根據電話號碼區分運營商、地域,則是不知足原子性的。
b)鍵的分類:
超鍵(Super key),由若干字段組合起來,能夠惟一地標識一個數據對象
候選鍵(Candidate key),超鍵的不一樣組合方式
主鍵(Primary key) 被數據庫設計者選中的候選鍵
c)主鍵的選擇需可以惟一地標識一個數據對象,且不會改變或不多變更
d)若是Department.dept_name爲主鍵,instructor表經過instructor.dept_name與department表關聯,則instructor.dept_name稱爲instructor表的外鍵(foreign key),從instructor.dept_name到department.dept_name的關係稱爲外鍵的參照關係(referencing relation),從department.dept_name到instructor.dept_name的關係稱爲被參照關係(referenced relation)。
e)參照關係必須遵照參照完整性約束,即參照關係中任意元組在特定字段上的值在被參照關係的元組的對應屬性中存在。
f)表關係能夠用Schema圖來表示:數據庫設計


但雖然這種圖能夠表達外鍵關係,卻沒法顯示參照完整性約束,後面學習的E-R圖能夠彌補這一點。

2、關係運算
經常使用關係運算有選擇、投影、天然鏈接等:學習

選擇σ
選擇運算會輸出知足謂詞條件的行,好比where instructor.salary>=85000
投影∏
會輸出包含指定列的數據,並去掉重複項
天然鏈接⋈
將兩個關係的元組合併成單個元組,好比將instructor和department根據dept_name鏈接起來,就獲得每一個導師及其部門的信息
笛卡爾積×
笛卡爾積輸出的是全部的元組對,好比教師與部門的笛卡爾積表示二者全部可能的對應狀況
並∪
並運算會合並兩個類似結構的表。
對於運算結果中的重複數據,有些SQL語言會嚴格遵照集合運算的數學定義去除重複,有些則考慮到去重須要大量相關處理,就保留了重複,好比T-SQL同時又UNION和UNION ALL。

學習資料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan設計

相關文章
相關標籤/搜索