一、關系資料庫相關
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圖可以彌補這一點。
二、關系運算
常用關系運算有選擇、投影、自然連接配接等:
選擇σ
選擇運算會輸出滿足謂詞條件的行,比如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