關系、關系模式、關系模型blablabla...


好久沒碰《數據庫系統概論》了,最近翻了翻發現好多專業名詞都忘記了, 現在有空特地記錄下。

名詞解釋

數據:數據就是數據庫中存儲的基本數據,比如學生的學號、學生的班級
數據庫:存放數據的倉庫
數據庫管理系統:數據庫軟件,如MySQL、Oracle
數據庫系統:數據庫+數據庫管理系統+應用程序+數據庫管理員(大佬)


實體:客觀存在的對象,比如一個學生,一位老師
屬性:實體的特性,比如學生的學號、姓名、院系
:可唯一標識實體的屬性集。比如學號是學生的碼,一個學號唯一標識一名學生。學號和課程號是成績的碼,因為學號和課程號唯一標識一門課程的成績
實體型:對實體的描述,比如學生(學號,姓名,院系)
實體集:實體的集合
聯系:實體集之間的關系。一名學生對應一個寢室(一對一),一個院系對應多名學生(一對多),多位教師對應多名學生(多對多)

關系:若干元組的集合,說白了就是指數據庫表
關系模式:對關系的描述稱為關系模式,最后會詳細描述
關系模型:若干關系的集合,也就是一個數據庫
屬性(關系):相對於前面的屬性的意義,這里特指數據庫表中的某列
元組:一條數據庫記錄
分量:元組中某一屬性值
:一組具有相同數據類型的值的集合,是屬性的取值范圍,比如性別屬性的域就是{男,女},學生學歷屬性的域就是{學士、碩士、博士、院士}

候選碼:可唯一標識某一元組的屬性組,屬性組中各個屬性缺一不可。【t_student】(學號,姓名,學院),姓名可能會重復,所以其中學號可以唯一標識一條記錄,學號就是t_student的候選碼。那么假設姓名不會重復,那么候選碼就有學號和姓名兩個。 又比如【t_grade】(學號,課程,成績),其中一個學生可以有多條成績記錄,所以需要學號和課程號組合才可以唯一標識一條數據庫記錄,所以學號、課程號就是t_student的一個候選碼。
超碼:只要一個屬性組可以唯一標識一個元組,那么就說這個屬性組是超碼 【t_student】(學號,姓名,學院),姓名可能會重復,所以(學號)是一個超碼同時也是候選碼,(學號,姓名)可唯一標識一個元組,所以其也是超碼,但不是候選碼,因為少了姓名也可以唯一標識。
主屬性:候選碼中的屬性稱為主屬性。【t_student】(學號,姓名,學院),學號就是主屬性
非主屬性:不是主屬性就是非主屬性唄。【t_student】(學號,姓名,學院),姓名、學院就是非主屬性
全碼:極端情況下表的所有屬性組成該表的候選碼,則稱為全碼
主鍵/主碼:primary key,一個表可能有多個,往往選中一個作為主鍵
外鍵/外碼:foreign key,假設表A的某個屬性attr是另一表B中的主碼,且A和B有某種聯系,則稱attr是外碼
參照表:外碼所在的表
被參照表:外碼所引用(foreign key references)的表
數據完整性:數據完整性就是指數據的正確性和相容性(符合邏輯),又分為實體完整性、參照完整性、用戶自定義完整性
實體完整性:主碼唯一且不為空
參照完整性:不允許引用不存在的實體。參照表插入某條記錄,這條記錄的外碼在被參照表中必須存在
用戶自定義完整性:由用戶自定義的數據約束。比如性別只能用男、女表示,人的年齡在0-120之間。常見的用戶自定義完整性有NOT NULL,UNIQUE,CHECK等

內模式:對數據庫的物理存儲結構和存儲方式的描述,是數據庫在數據庫內部的存儲方式。拿MySQL來講,每建一個表,都會在文件系統上生成一個或多個文件,這些文件存儲了數據、表信息、索引信息,這就稱為內模式
模式:對內模式的抽象,即數據庫
外模式:對模式的抽象,即用戶直接使用的應用程序
外模式-模式映像:保證數據的邏輯獨立性。當模式改變時(增加表,增加表的結構),可以保證外模式不變
模式-內模式映像:保證數據的物理獨立性。當內模式改變時(比如MySQL切換了存儲引擎),可以保證模式不變,從而外模式也不會變。

關系模式

關系模式是對關系的描述(有哪些屬性,各個屬性之間的依賴關系如何),模式的一個具體值稱為模式的一個實例。模式反應是數據的結構及其聯系,是型,是相對穩定的,實例反應的是關系某一時刻的狀態,是值,是相對變動的。
想要查看t_student的關系模式?DESC t_student
想要查看t_student的關系實例?SELECT * FROM student
另外,關系模式有約定的數學表示,R(U,D,DOM,F),R指關系名,U指一組屬性,D指域,DOM指屬性到域的映射,F就是指數據依賴。舉個栗子,假設一個學生表t_student,擁有屬性學號,姓名,性別,學院,其數學表示如圖。

引用

1.《數據庫系統概論》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM