关系数据模型
- 关系实例
- 关系实例由命名的若干列和行的表
- 行也称为元组
- 元组的数目成为基数
- 列一般需要命名
- 关系模式
- 关系名R,属性列表U,域D,属性到域的映射DOM,属性约束F
- 可以用五元组表示,也可以简单地用三元组,二元组表示;
- 关系必须是规范化的
- 1NF:关系的每个分量必须是不可分的(不允许表中有表);
- 2NF,3NF,BCNF:更高级的设计模式
- 优点:理论严格,线性结构简单,数据独立性,安全性和完整性;
- 缺点:对现实世界表达能力弱,存取对用户透明,查询效率不如NoSQL,只有固定的操作集,不能很好地支持商业规则;
关系数据库
关系数据库是 关系的有限集合;
- 数据库模式:关系模式的集合;
- 数据库实例:对应关系实例的集合;
关系:
-
关系是笛卡尔积的一个有意义的子集,有对应的关系名;
-
一个关系是一张 没有重复行,重复列 的二维表;
- 实体本身的数据;
- 实体之间的联系;
-
元组: 表中的一行,表示一个实体
属性:表中的一列,有属性名
域:属性的取值范围
分量:元组中的属性值
以下是有关术语理论和实践不同的表述:
理论 | 实现 |
---|---|
关系 | 表 |
元组 | 记录 |
属性 | 字段 |
分量 | 单元格 |
关系的三要素
- 数据结构
- 关系操作
- 数据约束
数据结构
- 键
- 唯一区分不同元组的属性;
- 又称关键字,码;
- 候选键
- 在关系中能唯一区分确定不同元组的属性;
- 包括在候选键的属性称为主属性;
- 不包括在候选键的属性称为非主属性;
- 主键
- 当多个候选键存在时,选定一个作为主键;
- 每个关系中,主键是唯一的;
- 外键
- 在关系中并非键,但在另一个关系中的主键;
关系操作
关系的操作:集合操作,包括查询,投影,连接,除,并,交,差
数据约束
关系的完整性规则:对关系的某种约束条件,保证数据库值的数据的正确性和一致性;
- 实体完整性:主键非空;
- 参照完整性:外键要么为空值,要么来自于被参照关系表中的某个原则的主键值;
- 用户定义的完整性:各种商业规则