支持多个主键的数据库引擎?

时间:2018-02-18 17:34:53

标签: database relational-database primary-key

是否有支持多个主键的数据库引擎?

不,我不是在询问单个主键中的多个字段。

我知道引擎必须复制每个其他主键的数据。对我来说没关系。

有没有人实现过该功能?

2 个答案:

答案 0 :(得分:0)

一组唯一的列是超级键。不包含小/正确超级密钥的超级密钥是CK(候选密钥)。可以称一个CK"" PK(主键)。

谈论多个PK是没有意义的。也许当你说PK你的意思是CK或超级密钥(或者甚至某种SQL索引)但是你不明白你的意思。

SQL每个表只允许一个primary key声明。但这意味着unique not null。所以在关系术语中primary key声明一个超级键,但不一定是CK或PK。 (尽管DBMS可能会以某种其他方式对PK进行不同的处理。)SQL foreign key必须引用unique not null(可能是primary key)的列,但是以相对的术语来表示它是外来超级密钥,而不是FK(外键)。

(当SQL中涉及NULL时,其他关系术语也不适用,因为关系理论中没有NULL。)

答案 1 :(得分:-1)

在执行数据完整性方面,是的。您可以在关系数据库平台允许的范围内实现多种独特索引。

就字面上允许多个逻辑主键而言,没有。那么它就不是关系数据库了。