1、主关键字:主关键字(primary key)是表中的一个或多个字段,它的值用于唯一的标识表中的某一条记录。主关键字又可以称为主键。 主键可以由一个字段,也可以由多个字段组成,分别称为单字段主键或多字段主键。并且它可以唯一确定表中的一行数据,或者可以唯一确定一个实体。
2、超关键字:二维表中,能够惟一确定记录的一个字段或几个字段的组合被称为“超关键字”。“超关键字”虽然能唯一确定记录,但是它所包含的字段可能是有多余的。
3、候选关键字:如果一个超关键字去掉其中任何一个字段后不再能唯一地确定记录,则称它为“候选关键字”(Candidate Key)。
扩展资料:
建立主关键字(主键)应该遵循的原则 :
1、主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。
2、永远也不要更新主键。实际上,因为主键除了唯一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。 注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。
3、主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
4、主键应当由计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了唯一标识一行以外的意义。一旦越过这个界限,就可能产生人为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。
参考资料来源:百度百科-超关键字
参考资料来源:百度百科-候选关键字
参考资料来源:百度百科-主关键字
今天写程序的出了点问题,怎么弄都不正确,我也无策,调试了好久突然发现在DB表里用了''check"作为表名,"index“作为字段名,马上检查了一下SQL语句中有没有加安全符“··",果然没问题就出在这里了,因为index和check都是mysql的关键字, 查了一下,关键字(有的是保留字 )还真是不少在MySQL中,下表中的字词显式被保留。其中大多数字进制被标准SQL用作列名和/或表名(例如,GROUP)。少数被保留了,因为MySQL需要它们,保留字被引起来后可以用作识别符。1某关系R的外键是指其他关系的候选键,可以是R中的主属性或非主属性。2关系模型中,候选码是指关系中的一个属性组,其值能唯一标识一个元组,,若从该属性组中去掉一个属性,它就不具有这种性质了,候选码可以有多个属性。
若某属性(组)非该关系的主键,却是另外一个关系的主键,则该属性(组)称为该关系的外键。
3关系第一范式:属性不可再分特性,包括:不能有复合属性,也不能有多值属性。
4关系模式是稳定的;而关系是某一时刻的值,是随时间可能变化的。
5在同一模式下,可以有很多的关系。
6外键可以为空值。
7关系的主码中的属性值不能重复,不能为空值。
8关系的任意两行不能相同,但任意两列是可以完全相同的。
9关系模型就是处理Table的,它由三部分组成:描述DB各种数据的基本结构形式(Table/Relation)、描述Table与Table之间所可能发生的各种 *** 作(关系运算)、描述这些 *** 作所应遵循的约束条件(完整性约束)。
10体现“实体能够区分并唯一标识元组”的规则是:实体完整性。实体完整性的意义是值关系中的元组对应到现实世界相互之间可区分的每一个个体,这些个体是通过主码来唯一标识的。
11表中的主关键字可以有多个列。
12列的取值范围中的值必须具有相同的数据类型。
13关系具有行位置互换性和列位置互换性。
14关系模型中两个关系通常是靠外码(外键)连接起来的。
15列的取值范围:域Domain
16元组及所有可能组成的元组:笛卡尔积
17笛卡尔积的基数等于域的基数的乘积。
18关系的基数是元组的数目。
19关系中任意两个元组不能相同。
20而表中元组可以相同。
21当有多个候选码时,可以选定一个作为主码。DBMS以主码位主要线索管理关系中的各个元组。
22关系代数的基本 *** 作:并、差、积、选择、投影、(更名)
23关系代数的扩展 *** 作:交、0-连接、自然连接
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)