mysql碼是什么?
主碼 \subseteq 候選碼 \subseteq 碼
ps:元組理解為一張表的某一行,屬性理解為一張表的某一列,屬性名就是列的名字(字段)。
1(碼):碼是可以確定一個元組的所有信息的屬性名或屬性名組。
例如在 { a, b, c, d } 中,
假設知道 a 的值就能確定 a, b, c, d 的值,
假設知道 c, d 的值就可以確定 a, b, c, d 的值,
那么 { a } 就是碼,{ c, d } 就是碼。
并且 { a, b }, { a, c }, { a, b, c }, { a, b, c, d } 等也都是碼,因為它們也可以確定一個元組的所有值,即使很多余。
2(候選碼):候選碼的真子集中不存在碼,候選碼可以有多個。
就上面的例子而言,{ a } 是候選碼,{ c, d } 是候選碼,因為它們的真子集中不存在碼。
而諸如 { a, b } 并不是候選碼,因為它的真子集中含有 { a }, 且 { a } 是碼。
3(主碼):主碼就是主鍵的意思,主碼是任意一個候選碼。
還是上面的例子,主碼是候選碼 { a }, { c, d } 中的其中一個。
既可以是 { a }, 也可以是 { c, d }。