ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] # **实体**: 现实世界中客观存在并可以被区别的事物。比如“一个学生”、“一本书”、“一门课”等等。它也可以是虚拟的,比如说“老师与学校的关系”。 # **属性**: 实体所具有的某一特性,比如说,“性别”是“人”的一个属性。在关系数据库中,属性又是个物理概念,属性可以看作是“表的一列”。 # **元组**: 表中的一行就是一个元组。 # **分量**: 元组中的一个属性值。1NF(第一范式)要求每个分量为不可再分的数据项。在一个关系数据库中,它是一个操作原子,即关系数据库在做任何操作的时候,属性是“不可分的”。否则就不是关系数据库了。 (比如“工资”可以下分为“基本工资”和“加班费”等,这在关系模式的数据库是不支持的。而在面向对象模式的数据库则是支持,也就是**面向对象模式的数据库不满足第一范式**。) # **码**: 表中可以唯一确定一个元组的某个属性(或者是属性组),如果这样的码有不止一个,那么大家都叫做候选码,我们从中挑选一个做老大,它就叫做主码。 # **模式**: 数据库整套表格的完整设计称为数据库的模式。它是数据库的设计蓝图。一个模式应该显示表格及表格的列、每个表的主键和外键。可以使用非正式的图表表示、实体关系图表表示,或者使用文本格式表示。 * * * * * # 候选码 若关系中的某一属性或属性组的值能唯一的标识一个元组,而其任何真子集都不能再标识,则称该属性组为(**超级码**)**候选码**。 例如:在学生实体中,“学号”是能唯一的区分学生实体的,同时又假设“姓名”、“班级”的属性组合足以区分学生实体,那么{学号}和{姓名,班级}都是(超级码)候选码。 # 主码 简单的说,**候选码(超级码)就是可以被选为主码的属性或属性组**。当一个关系有N个属性或属性组可以唯一标识时,则说明该关系有N个候选码,可以选定其中一个作为主码。 # 外码 一个属性(或属性组),它不是码,但是它别的表的码,它就是外码。 # 主属性 **主属性**就是包含在任何候选码中的属性; **非主属性**就是不包含在任何候选码中的属性。 例如:关系 工人(工号,身份证号,姓名,性别,部门).显然工号和身份证号都能够唯一标示这个关系,所以都是候选码。工号、身份证号这两个属性就是主属性。如果主码是一个属性组,那么属性组中的属性都是主属性。 > [百度百科-候选码](http://baike.baidu.com/view/742205.htm)