主要是看你的意图是什么。现在看你手头有三个表:单位表,类别表,文档表。按你之前的设计,单位表的主键是单位编号,类别表的主键是单位编号加上类别编号,文档表的主键是单位编号加上类别编号加上文档编号。单位编号是类别表的外键,单位编号加上类别编号是文档表的外键。修改之后的设计,单位表的主键是单位编号,类别表的主键是类别编号,文档表的主键是文档编号。单位编号是类别表的外键,单位编号加上类别编号是文档表的外键。这样的话,实际上改变的只是类别表的主键和文档表的主键而已,其他的表之间的关联关系都没有改变。需要注意的是,无论是主键还是外键,如果是由多个列组成的话,那把他们区别开来是没有任何意义的。所以,正是由于楼主把他们区别开来去分析某一列是主键还是外键,才会越来越混乱。
二维表中,能够惟一确定记录的一个字段或几个字段的组合被称为“超关键字”。“超关键字”虽然能唯一确定记录,但是它所包含的字段可能是有多余的。
如果一个超关键字去掉其中任何一个字段后不再能唯一地确定记录,则称它为“候选关键字。候选关键字既能唯一地确定记录,它包含的字段又是最精炼的。也就是说候选关键字是最简单的超关键字。
主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。
比如在一张成绩表中,有字段:学号,科目,成绩,任课老师。
学号+科目+任何其他字段就是超关键字,但是如果去掉学号或者科目中的一个就无法确定成绩,所以学号和科目是两个候选关键字。
只有知道了学号和科目你才能确定一条记录,所以学号和科目两个字段组成了主关键字。
在关系数据库表中主属性只有一个,但候选码可以有多个。
关系数据库的定义造成元数据的一张表格或造成表格、列、范围和约束的正式描述。每个表格(有时被称为一个关系)包含用列表示的一个或更多的数据种类。 每行包含一个唯一的数据实体,这些数据是被列定义的种类。
当创造一个关系数据库的时候,能定义数据列的可能值的范围和可能应用于那个数据值的进一步约束。而SQL语言是标准用户和应用程序到关系数据库的接口。其优势是容易扩充,且在最初的数据库创造之后,一个新的数据种类能被添加而不需要修改所有的现有应用软件。
扩展资料:
关系数据库分为两类:一类是桌面数据库,例如Access、FoxPro和dBase等;另一类是客户/服务器数据库,例如SQL Server、Oracle和Sybase等。
一般而言,桌面数据库用于小型的、单机的应用程序,它不需要网络和服务器,实现起来比较方便,但它只提供数据的存取功能。客户/服务器数据库主要适用于大型的、多用户的数据库管理系统,应用程序包括两部分:一部分驻留在客户机上,用于向用户显示信息及实现与用户的交互;另一部分驻留在服务器中,主要用来实现对数据库的 *** 作和对数据的计算处理。
参考资料来源:百度百科-关系数据库表
码是数据系统中的基本概念。所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。如果k是一个超码,那么k的任意超集也是超码,也就是说如果k是超码,那么所有包含k的集合也是超码。候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。因为超码的范围太广,很多是我们并不感兴趣即无用处的。所以候选码是最小超码,它们的任意真子集都不能成为超码。例如,如果k是超码,那么所有包含k的集合都不能是候选码;如果k,j都不是超码,那么k和j组成的集合(k,j)有可能是候选码。是从多个候选码中任意选出一个做为主码,如果候选码只有一个,那么候选码就是主码。虽然说主码的选择是比较随意的,但在实际开发中还是要靠一定的经验,不然开发出来的系统会出现很多问题。一般来说主码都应该选择那此从不或者极少变化的的属性。
数据库的主键指的是一个列或多个列组合,其值能唯一标注表中的每一行,通过他可以强制表的实体完整性。主键可以用来表示一个精确定位的特定行,如果没有主键,无法精准定位一条记录是否就是你要的相关行记录,这样就会导致更新或者删除表中特定的行很困难。如果有主键来约束行记录的唯一性后,就可以用主键来解决问题。
主键可以用来表示一个精确定位的特定行,如果没有主键,无法精准定位一条记录是否就是你要的相关行记录,这样就会导致更新或者删除表中特定的行很困难。如果有主键来约束行记录的唯一性后,就可以用主键来解决问题。
主键作用:
1、保证实体的完整性;
2、加快数据库的 *** 作速度;
3、在表中添加记录时,DBMS会自动检查记录的主键值,不允许该值与其他值重复。
扩展资料
数据库中主键、主码、主属性、关键字、候选关键字、码的区别:
主码=主键=主关键字,关键字=候选码 候选关键字=候选码中除去主码的其他候选码。
码:唯一标识实体的属性或属性组合称为码。
候选码(关键字):某一属性组的值能唯一标识一个元组而其子集不能(去掉任意一个属性都不能标识该元组),则称该属性组为候选码(补充元组:表中的一行即为一个元组)
主属性:候选码包含的属性(一个或多个属性)。
主码(主键、主关键字):若一个关系有多个候选码,选择其中一个为主码。
关键字就是为了方便编程人员在打开数据库的时候知道每个表所代表的值是什么。主要起到注释作用。
索引可以提高查询的速度。
其实主键和索引都是键,不过主键是逻辑键,索引是物理键,意思就是主键不实际存在,而索引实际存在在数据库中,主键一般都要建,主要是用来避免一张表中有相同的记录,索引一般可以不建,但如果需要对该表进行查询 *** 作,则最好建,这样可以加快检索的速度 。
以上就是关于关系数据库中 主属性与主键有什么概念上的区别吗全部的内容,包括:关系数据库中 主属性与主键有什么概念上的区别吗、关系数据库中的候选码和主属性有什么区别、表的一个关系中,主属性最多有几个等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)