数据库系统概论之第二章关系数据库
1关系数据结构及形式化定义
关系数据库系统是基于其支持的关系模型构建而成的数据库系统。它包含三个核心要素:即为数据建模服务的关系数据结构、用于处理数据操作的关系操作集合以及确保数据完整性的一套关系完整性约束机制。
2.1.1关系
1.域(domain)
域是一组具有相同数据类型的值的集合;
2.笛卡尔积(cartesian product)
笛卡尔积被称作一种在域上进行的集合运算类型;它可以通过二维表格结构来表现;其中每一行对应一个元组实例;每一列的数据取自不同的数据域。
3.关系(relation)
由笛卡尔积构成的关系通常是有限的;因此这类关系也可以被视为一个二维表格,在这个表格中每一行都对应一个元组,在每一列则对应一个域。
如果数据库表中的某一组特定属性的值能够唯一确定一个元组,则称这组特定属性为候选码
若一个关系有多个候选码,则选定其中一个为主码(primary key)。
候选码的诸属性被定义为主属性(prime attribute),而不包含在任何候选码中的那些则被称为非主属性(non-prime attribute)或非码属性(non-key attribute)。
关联可以分为三类:基本关联(一般称作基础表或主键表)、查询表与视图表。
基本数据库的存在性表明其反映了数据的逻辑结构。
查询结果对应的是查询表格。
视图表格通过整合基础数据库及其相关视图表格生成。
这些虚拟表格不具备物理上的存储属性。
关系表中不允许还有表,简言之不允许表中有表。
2.2关系操作
在关系模型中常见类型的操作涉及查询功能(function)、新增(add)、删除(delete functionality)以及更新(update functionality)四大类基本操作。
2.3关系的完整性
关系模型的完整性规则是对关系的一种限制条件,并非指代其他意义;换言之,在不同历史时期或时间段内所涉及的关系都必须满足一系列必要的限制条件
2.3.1关系模型的三类完整性约束
关系中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。
2.3.2实体完整性(entitiy intergrity)
实体完整性规则
若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值;
2.3.3参照完整性(referential integrity)
一个属性需要遵循该关系的属性取值,在这种情况下,并非仅限于两个及以上的多个关系之间存在引用关系;实际上,在同一个关系内部属性之间也可能存在引用情况。
设F是基础关联R的一个或一组属性(即不是R的基本键),而K则是基础关联S的基本键(即主键)。若F对应于K(即它们之间存在一一对应的关系),则称F为关联模式(即 foreign key)。具体来说:
- 关系模式 R(F) 被称为参考模式(referencing mode);
- 关系模式 S(K) 被称为被参考模式(referenced mode)或者目标模式(target mode);
- 关系模式 R 和 S 不一定代表不同的数据库表。
参照完整性规则
若属性(或属性组)F是基本关系R的一个外键,则它与基本关系S的主键K相对应(其中R和S可能是同一个表),因此对应于R中的每个元组在F上的值必须为:
1.或者取空值(F的每个属性值均为空值);
2.或者等于S中某个元组的主码值;
2.3.4用户定义的完整性(user-defined integrity)
