Ø 候选码和主码:如果二维表中存在一个属性或若干属性组合的值能够唯一标识表中的每一个元组,则该属性或属性组合就称为候选码,简称码;如果一个表存在候选码,且从中选择一个候选码用于唯一标识每一个元组,则该候选码称为主码(Primary key)。主码也常称为主健(主关键字段)。
Ø 主属性和非主属性:包含在任何候选码中的属性都称为主属性,不包含在任何候选码中的属性称为非主属性。
• 关系的性质:
Ø 列是同质的,即每一列中的分量是同一类型的数据,它们都是来自同一个域。
Ø 每一列为一个属性,不允许存在相同属性名的情况。
Ø 列(行)的顺序是任意的,列(行)的次序可以任意交换。
Ø 不允许存在两个相同的元组。
Ø 每一个分量都是不可再分的,即不允许表中套表。
定义2.2 假设一个n元关系R的属性分别为A1, A2, …, An,令R(A1, A2, …, An)表示关系R的描述,称为关系模式。
Ø 关系模式是由属性构成,与属性值无关。为了体现关系模式中的主码,对构成主码的属性添加下划线。
【例子】在关系模式R(A, B, C, D, E)中,属性A和B的组合是该关系模式的主码。
Ø 关系模式是描述关系的“型”,即凡是具有相同属性的关系都属于相同的“型”,即它们都属于同一个关系模式。
Ø 一个关系模式可以视为一类具有相同类型的关系集合,属于同一个关系模式的关系都拥有相同的属性(但属性值却不一定相同)。
Ø 一个特定的关系是其对应关系模式的“值”,或者说关系是关系模式这个集合中在某一时刻的一个“元素”。
Ø 关系和关系模式的区别和联系:
• 关系和关系模式之间的联系就好像是数据类型和数据之间的联系。
• 关系模式和关系是有区别的,即前者是后者的抽象,后者是前者的特定实例
• 关系模式是相对稳定的,数据在更新,关系是随时间变化的。但在运用中常常将它们统称为关系,读者可根据上下文来区分。
• 2.1.2 关系操作
• 关系操作的分类:查询操作、更新操作
• 查询操作是最常用和最主要的操作,其包括:
Ø 选择:从关系中检索出满足既定条件的所有元组的集合,这种操作就称为选择。其中,选择的条件是以逻辑表达式给出的,使表示式的值为真的元组被选取。从二维表的结构上看,选择是一种对行的操作。(最常用)
Ø 投影:从关系中选出若干个指定的属性来组成新的关系,这种操作就称为投影。从二维表的结构上看,选择是一种对列的抽取操作。
Ø 连接:从两个关系中抽出满足既定条件的元组,并将它们“首尾相接”地拼接在一起,从而形成一个新的关系,这种操作称为连接。
Ø 除:一种行列同时参加的运算。
• 以下三个选择操作的共同特点是,参加运算的两个关系必须有相同的属性个数,且相应属性的取值分别来自同一个域(属性名可以不同):
Ø 并:将两个关系中的元组合并到一起(纵向),从而形成一个新的关系,这种操作称为并。
Ø 交:将两个关系中的共同元组组成一个新的关系,这种操作称为交。
Ø 差:将第一个关系中的元组减去第二个关系中的元组,从而也产生了新的关系,这种操作称为差。
• 更新操作种类:(最常用)
Ø 插入:把一个关系(元组的集合)插入到已有的关系中,形成新的关系。
Ø 删除:从一个关系中删除满足既定条件的所有元组,剩下的元组构成新的关系。
Ø 修改:利用给定的值更改关系中满足既定条件的所有元组的对应分量值,更改后得到新的关系。
• 关系操作的特点: