1.关系模型、关系、实体、关系键
1)关系模型
关系模型以关系代数理论为数学基础,将数据操作抽象为关系处理,原理简单清晰,便于理解和使用。
关系模型是一种基于二维表结构表达数据实体及实体间联系的数据模型。
关系模型的组成:(1)数据结构 (2)数据操作 (3)数据关系约束
(1)数据结构:采用具有关系特征的二维表描述数据结构关系。
(2)数据操作:在关系模型中,基于关系代数的数据集合操作,既可以进行选择、投影、链接、交、并、差等数据查询操作,也可进行插入、修改、删除等数据操作。
(3)数据关系约束:在关系模型中,数据关系约束是指关系表中实体数据的完整性、以及表之间数据一致性等要求,一般由业务需求所确定。
关系模型完整性:是指在关系数据模型中对关系实施的完整性约束。
(1)实体完整性:是指在基本关系表中实施的主键取值约束,以保证关系中的每个元组可以被标识。【主键不允许空值,主键取值唯一,主键区分关系表中每个元组】
(2)参考完整性:是指关系之间需要遵受的数据约束,以保证关系之间关联列的数据一致性。【外键和主键值要保证一致】
(3)用户自定义完整性:是指用户根据具体业务对数据处理规则要求所定义的数据约束。【定义列的数据类型与取值范围,缺省值,是否取空值,取值唯一性,数据依赖性】
2)实体
实体:事物数据对象在概念模型世界中的抽象表示形式。
3)关系
关系:是指具有关系特征、用于存放实体数据的二维表。关系也可称为关系表。【关系表是二维表,二维表不一定是关系表】
4)关系键
键:是指关系中用来标识元组的列。
复合键:是指关系中用来唯一标识元组的多列。
候选键:关系中可能有多个键,每个都是候选键。
主键:是关系表中最有代表性的一个候选键,每个关系表中只能定义一个主键。
代理键:采用DBMS自动生成的数字序列作为关系表的主键。
外键:在关联的两个关系中,它们具有一个或多个相同属性。若它在第一个关系中作为主键,则在第二个关系中作为外键。
2.问题讨论
1)主键和代理键的区别
主键:是关系表中最具有代表性的一个候选键,每个关系表中只能定义一个主键。
代理键:采用DBMS自动生成的数字序列作为关系表的主键。
2)代理键如何获得值
代理键一般是维度表中使用顺序分配的整数值作为主键。
3)复合主键的部分列可以为空值吗?
不能为空,查询的时候就不能做到一一对应,主键的唯一性不能得到保障。
4)主键的作用
(1)唯一标识每个元组
(2)与关联表的外键建议联系,链接两个表
(3)使用主键值来组织关系的存储
(4)使用主键值索引快速检索数据