51Testing软件测试论坛

标题: 主键和范式的关系 [打印本页]

作者: aboutkian    时间: 2018-8-15 09:59
标题: 主键和范式的关系
老师,
第三范式我可以理解成,A表中的外键是B表中的主键,B表中的非主键不能作为其他表的外键吗?


在学课程:
Oracle数据库从0到精通
http://www.atstudy.com/course/128

作者: 学掌门网校    时间: 2018-8-15 10:20
关于第三范式的回答如下:

第三范式通俗来说给出的定义是:表中的所有数据元素不但要能惟一地被主关键字所标识,而且它们之间还必须相互独立,即表中每一条记录中的字段(除主键外),能够给主键唯一标识,而这些字段之间不存在相互依赖的关系

假设有表A (字段有a,b,c,d)

a为主键,b, c,d中的元素可以被A唯一标识,但是如果这个时候存在如:b = f(d),或者其他的函数关系,则不满足第三范式的要求,这个和你问他中的外键没有任何关系;

关于外键问题(A表中的外键是B表中的主键,B表中的非主键不能作为其他表的外键吗?)

回答:如果表A中的外键是表B中的主键, 这并不会影响到B表中的非主键成为其他表外键的可能性,这个没有冲突,假设还存在表C,它与表B有关系,那么表C的主键同样可以成为表B的外键;

明确外键的目的,是为了两个表之间能够建立起关系; 如果公共关键字在一个关系中是主关键字(主键),那么这个公共关键字被称为另一个关系的外键,以一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2