@
目录
一个属性对应一个列标题。
关系的模式是对表结构的描述。
Head (Students) = (SID, Name, Age, GPA)
学生(SID、姓名、年龄、GPA)
关系的两个关系
模式 - 表R的属性集合
状态 - 当前表R的元组集合
一旦确定了关系的模式,更改将非常昂贵
一些可能的变化是:
删除一个属性
插入一个属性
重命名属性
删除表(整个关系)
而在大多数关系中,关系的状态经常变化。
一些可能的变化是:
更新一些属性值
插入一个新元组
删除现有元组
一个给定的模式在不同的时间可能有不同的状态。
关系数据库由一组关系组成。
关系数据库模式由一组关系模式组成。
数据库状态是当前存在于数据库中的数据。
1.改变属性或元组的顺序不影响关系的含义(列和行可以是任意顺序)
2. 一个关系中不应该有任何两行相同的行——没有重复的行
3. 关系的任何单元格(行/列交叉点)中不应有任何多值项
对于给定的元组 t 和关系 R 的给定属性 A,将 t 插入 R 时可能会发生以下情况。
t[A] 未知。
t[A] 尚未分配。
t[A] 不适用。
当出现上述情况之一时,将空值赋给 t[A]:t[A] = null。
注意:空值不同于 0 或空格!
在 SQL 中,任何涉及 null 的算术表达式都将被评估为 null。
定义:一组属性是关系的码
如果(1)它是关系的超码,
并且(2)它的真子集不是关系的超码。
关系的码可以唯一标识关系的每个(潜在)元组。
如果从键中删除任何属性,则剩余的属性不再形成键的最小属性。
每个关系至少有一个码。
一个关系可能有多个码。
从关系的给定状态,我们可以确定关系的一组属性是否不构成码,但不能确定一组属性是否构成码。
关系的码也称为关系的候选码。
定义:关系的主键是数据库设计者为特定应用程序选择的候选键。
每个关系的主键是在定义关系时选择和声明的。 一经选择,不可更改。
通常选择主键作为属性数最少的候选键,以提高存储效率和查询处理效率。
定义了主键后,插入新元组时只需要检查主键中属性下的值,以识别重复(经常使用索引)。
关系的主键通常用于来自其他关系的引用。