問64
頻出度★★★
関係データベースの主キーに関する記述のうち, 適切なものはどれか。
这道题的解析和你的作答记录。
関係データベースの主キーに関する記述のうち, 適切なものはどれか。
承担把表与表关联 (连接) 起来这一作用的,是引用其他表主键的外键 (foreign key)。主键是用来在本表内唯一标识行的列,表与表之间的关联则是通过“外键 → 主键”的引用来成立的。而且在实际工作中,也可以用主键以外的列之间进行连接 (join),因此“只能通过主键来建立关联”这样的限定并不成立。
主键受唯一性约束,同一个值不能存在于多行之中。如果允许重复,指定该值时行就无法唯一确定,主键唯一标识行的目的就会崩溃。允许重复的是主键以外的普通列 (以及外键列)。
正解 主键 (primary key) 是用来把表中的某一行 (记录) 与其他行区分开、唯一确定该行的列 (或列的组合)。为了切实起到辨别行的作用,主键要受到以下两项约束:(1) 唯一性 —— 同一个值不得出现在两行或更多行中。(2) 非 NULL (实体完整性) —— 值不能为空 (NULL = 值不存在/未知)。由于 NULL 表示“值未知”这一状态,主键若为 NULL,就失去了确定该行的线索,主键原本的目的也就无法达成。因此,叙述“主键的值不能为 NULL”的 ウ 是恰当的。
当仅凭一列无法唯一标识行时,可以把多个列组合起来作为主键。这称为复合键 (复合主键),例如用“订单号 + 明细行号”这样的组合来确保唯一性。因此“不能将多个列组合起来作为主键”是错误的。