碼:
碼是資料系統中的基本概念。所謂碼就是能唯一標識實體的屬性,他是整個實體集的性質,而不是單個實體的性質。它包括候選碼
和主碼。
主碼:主碼是乙個能唯一標識乙個元組的屬性。在乙個關係(表)中,主碼不一定只有乙個,但是一定要有的。在計算機中為了描述事物的唯一性,引入了主碼的概念。
書上說若乙個關係有多個候選碼,則選定其中乙個為主碼。那什麼是候選碼呢,我在後面會講到。
外碼:如果乙個關係中的乙個屬性是另外乙個關係中的主碼則這個屬性為外碼。外碼的值要嘛為空,要嘛要為其對應的主碼中的乙個值。
主碼和外碼是用來實現參照完整性的,外碼的資料項需參照主碼的資料項來操作。具體實現是在建立資料庫時為表間創立關係。如:
三個關係:
學生資訊表(學號、姓名、性別、出生年月、籍貫、所屬學院) //學號 是主碼
課程表(課程號,課程名稱,學分) //課程號 是主碼
成績表(學號,課程號,成績) //這裡學號和
課程號就
是外碼「成績表」(從表)的學號參照「學生資訊表」(主表)的學號來錄入。1、也就是主表裡面沒有的學號,從表裡面不能有,外碼參照主碼錄入;
2、級聯操作,即當刪除、修改某個主表裡面的學號時,從表裡面的那個學號會相應的自動刪除、修改。外碼參照主碼操作。
這裡來講一下主碼和候選碼的區別(雖然老師沒要求寫)
首先找出它們的定義如下:
主碼:主碼是乙個能唯一標識乙個元組的屬性。
候選碼:如果關係中的某一屬性組的值能唯一地標識乙個元祖,
而其子集不能,
則稱該屬性組為候選碼;
主碼和候選碼都是用來唯一標識關係的。
主屬性:
乙個關係中可以有多個候選碼,只需選其中之一作為主碼,主碼裡包含的屬性叫做主屬性。
舉個例子
學生表中:
屬性:學號、姓名、性別、年齡、班級、系
一般學號就可以唯一的標識出乙個同學的身份,我們可以設定學號為主碼。是最簡單的候選碼。
那麼這裡的學號就成了主屬性。
那麼學號+姓名當然也可以作為唯一標識,也可以用來作為候選碼
同理,學號+姓名+性別也可以作為候選碼
以此類推
最極端的情況是全表都用來做主碼,這時的主碼也叫全碼。
主屬性:候選碼的
諸屬性稱為主屬性;
非主屬性:不包含在任何候選碼中的屬性稱為非主屬性;
下面我通過關係模型為例來更好的理解幾個概念:
學號姓名
年齡性別
系名年級
王小波男
軟體李大同女法律
章之飛男
旅遊關係模型的資料結構
元組:表中的一行即為乙個元組。
分量:元組中的乙個屬性值。如:20161985。
域(domain):域是一組具有相同資料型別的值的集合。
模式(schema):也稱為邏輯模式,是資料庫中全體資料的邏輯結構和特徵的描述,是所有使用者的公共資料檢視。
外模式(external schema):也稱為子模式或使用者模式,是資料庫使用者能夠看見和使用的區域性資料的邏輯結構和特徵的描述,是資料庫使用者的資料檢視,是與某一應用有關的資料的邏輯表示。
內模式(internal schema):也稱為儲存模式,乙個資料庫只有乙個內模式。是資料物理結構和儲存方式的描述,是資料在資料庫內部的組織方式。
第一正規化:指表中的屬性都是原子屬性,不能再拆分了。
第二正規化:在第一正規化的基礎上,要求
非主屬性
都完全函式依賴於主碼
。第三正規化:在第二正規化的基礎上,要求沒有
非主屬性
傳遞依賴於主碼。
bc正規化:在第三正規化基礎上,要求所有非主屬性都必須依賴於主碼
。第四正規化:在bc正規化基礎上,要求表中存在的多值依賴
都必須是對主
碼函式依賴。
mysql基礎知識
一 啟動與退出 1 進入mysql 啟動mysql command line client mysql的dos介面 直接輸入安裝時的密碼即可。此時的提示符是 mysql 或開啟終端,輸入sql語句 mysql uroot p123 2 退出mysql quit或exit 二 庫操作 1 建立資料庫 ...
mysql基礎知識
1 為什麼使用資料庫 1 降低儲存資料的冗餘度 2 更高的資料一致性 3 儲存的資料可以共享 4 可以建立資料庫所遵循的標準 5 便於維護資料完整性 6 能夠實現資料的安全性 2 在資料庫發展歷史上,出現了很多不同的資料模型,包括是層次模型 網狀模型 關係模型和物件模型 3 關係型資料庫的基本概念 ...
MySQL 基礎知識
1.如無備註,則表中的第乙個id欄位一定是主鍵且為自動增長 2.如無備註,則數值型別的字段請使用unsigned屬性 3.如無備註,排序欄位order id在程式中預設使用降序排列 4.如無備註,所有欄位都設定notnull,並設定預設值 5.如無備註,所有的布林值字段,如is hot is del...