
通俗的说吧
先说说主键(primary key)吧:一张表(关系)的一个列(属性)或多个列可以作为主键,但是前提是让这个列作主键,这个列就能保证该列下的各个行(元组)的值不能相同,比如说你用姓名属性作主键的话,那么这个主键就不一定可以,如果有两个人是同样的名字的话,就不能做到该属性下的各个元组数据的值不同,如果用阿拉伯数字作主键就是一个很好的选择。
再说说外键(foreign key):一张表(关系)的列(属性)它同时存在表1和表2中,它不是表1的主键,而是表2的主键,就可以说他是表1的外键。
那么什么是候选键(Candidate Key)呢:能唯一标识表(关系)中行(元组)的列(属性),则称该属性为候选键,也称 候选关键字 或 候选码;由此来看候选键可以不只一个,还看一看得出的就是主键同时它也是候选键。
理解了么,还不懂的话MSN xiaolonghit04@hotmailcom
1 主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。
2 永远也不要更新主键。实际上,因为主键除了唯一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。3 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
4 主键应当由计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了唯一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。
主键的目的就是和其他表进行关联,小系统建议用,大型系统不建议设置主键,也不建议设置外键、触发器、存储过程!因为大型系统数据是海量的,设置这些东西会使系统变得异常缓慢(一般是几何基数的增长,比如加上主外键的10万条记录备份需要1分钟,上升到100万条就要20多分钟了,如果再多就无法处理了,有些大型系统还要设置数据仓库要跟业务数据分离(也就是业务数据定期导入到数据仓库中供特殊查询服务,经常性的业务才会保留在业务数据库中),否则就是不设置这些东西也无法正常运行),这些数据库功能应该交给客户端或者中间件去完成
数据库中,关系模型中的主键是对每条数据记录的唯一标识,不可重复。主键可以是属性集,比如一张表R(A,B,C,D),主键为A+B是可以的。
主键,即主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。
一个表的主键可以由多个关键字共同组成,并且主关键字的列不能包含空值。主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义。
扩展资料:
建立主键应该遵循的原则:
1、主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。
2、 永远也不要更新主键。因为主键除了唯一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。
3、主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
4、主键应当由计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了唯一标识一行以外的意义。一旦越过这个界限,就可能产生人为修改主键的动机。
参考资料来源:百度百科-主关键字
类型:类型用来约束某一个字段的取值,有日期时间、文本、整数、小数等,每一种数据库管理系统里边的数据类型都不相同,比如你有一个字段叫分数,那么就给它设置成数值类型,如果输入的不是数值,与数据库类型不符,就不能进入数据库。
宽度:这个字段一般是对文本而言,20就是图书馆名称最长为20个汉字,超过20可能会被截断,只存储前20个字,后边的就自动去掉了,这个自己根据情况设置,21、22、23等等都可以,像数值型、日期型不需要宽度,因为数据库系统已经规定了它说能接受的数值和日期的范围。
是否为主键:对于一个表,肯定有一个字段或字段的组合是主键。比如学生表(学号,姓名),主键可以区别行与行,比如学生表中有这样的数据:1001 张三 ,1002 张三,学生的学号一般不会重复,就像身份z号一样是唯一的,可以区别不同的人,这样的字段叫主键,但是姓名可能有重名啊,所以姓名不作为主键。又比如选课表(学号,课程号,……),选课表存放学生选课信息,一个学生可以选多门科,每门科可以被不同的学生选,这样的话,单独一个学号不能锁定数据库中的唯一一条记录,单独一个课程号也不能锁定数据库中的唯一一条记录,但是如果学号、课程号都确定了,那么可能就可以确定数据库中的唯一一条记录,这样学号和课程号就构成了一个联合的主键。根据主键可以锁定数据表中唯一的一行记录,既然要锁定数据表中唯一的一行记录,那么肯定不能为空或者重复,所以主键取值唯一而且不能取空值。你的这个表图书馆名称是主键,那么图书馆名称必须填,不能为空,而且图书馆名称不能重复,只要确定了图书馆的名称,因为名称不重复,所以地点也就可以确定了
以上就是关于数据库技术与应用中的主键和候选键是什么意思求最简单易懂的答案。。最好能有些例子全部的内容,包括:数据库技术与应用中的主键和候选键是什么意思求最简单易懂的答案。。最好能有些例子、谁能帮忙解释一下什么叫做“主键”最好能解释详细一点,举例说明一下!、数据库中关系模型中的主键是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)