4.删除异常 反过来,如果某个系的学生全部毕业了,我们 删除该系学生及其选课信息的同时,会把系名和系 主任的信息同时删掉。 心上述这些问题的出现显然是我们不希望的,因此我 们说,上述关系模式是一个“不好”的关系数据库 模式。“不好”的数据库设计在设计中应该避免。 心可见,关系数据库中的各关系不能任意设计,关系 要按一定的要求去设计,如果设计不好,将大量的 字段(属性)放于一个关系模式中,这就使用户的 数据库要忍受着上述几个问题的干扰,运行效率低, 编程和维护工作量大。因此,用户必须对数据库设 计给予高度重视。 9 China University of Geosciences 资源信息系统
China University of Geosciences 资源信息系统 4. 删除异常 反过来,如果某个系的学生全部毕业了,我们 删除该系学生及其选课信息的同时,会把系名和系 主任的信息同时删掉。 ❖上述这些问题的出现显然是我们不希望的,因此我 们说,上述关系模式是一个“不好”的关系数据库 模式。 “不好”的数据库设计在设计中应该避免。 ❖可见,关系数据库中的各关系不能任意设计,关系 要按一定的要求去设计,如果设计不好,将大量的 字段(属性)放于一个关系模式中,这就使用户的 数据库要忍受着上述几个问题的干扰,运行效率低, 编程和维护工作量大。因此,用户必须对数据库设 计给予高度重视
(三)解决办法 今上述模式为什么会发 生问题呢?这是因为 SD(学号,系名) 学号为主键 DM(系名,系主任)系名为主键 关系中属性之间存在 SC学号,课程,成绩)学号+课程为主键 不好的联系。 图4.2分解后的关系模式 假如我们把上述模式SD「学号系名%C「学号课程成 改造分解为SD,DM 「9500管理 95001C语言 和SG三个关系模式, 95002管理 95001 BASIC 95101计算机 95001数据库 就会消除上述问题, 4555 9510计算机 9500C语言 从而得到一个好的关 95002数据库4 95101c语言 系模式。 DM 95101软件工程4 今三个关系模式如图所 系名系主 95101数据库 管理张敏 95102软工程 示,下图是三个关系 计算机王宏 95102数据库 554 模式填入数据的实例 图4.3分解后的关系模式实例 9 China University of Geosciences 资源信息系统
China University of Geosciences 资源信息系统 (三) 解决办法 ❖ 上述模式为什么会发 生问题呢 ?这是因为 关系中属性之间存在 不好的联系 。 ❖ 假如我们把上述模式 改造分解为 SD ,DM 和SG三个关系模式 , 就会消除上述问题 , 从而得到一个好的关 系模式 。 ❖ 三个关系模式如图所 示,下图是三个关系 模式填入数据的实例
所以,当我们企图把太多的信息存放在 个关系时,就会出现数据冗余和更新异常 等问题。主要表现如下: 1.数据冗余。 修改异常 3.删除异常 4.插入异常。 9 China University of Geosciences 资源信息系统
China University of Geosciences 资源信息系统 所以,当我们企图把太多的信息存放在 一个关系时,就会出现数据冗余和更新异常 等问题。主要表现如下: 1. 数据冗余。 2. 修改异常。 3. 删除异常。 4. 插入异常
(1)问题的根源 ☆关系的键码函数决定该关系的所有其 属性。由于键码能唯一确定一个元组, 所以,也可以说关系的键码函数决定该 关系的所有属性。一个关系中的所有属 性都函数依赖于该关系的键码。不同的 属性在关系模式中所处的地位和扮演的 角色是不同的。把键码所在的属性称为 主属性,而把键码属性以外的属性称为 非主属性。 9 China University of Geosciences 资源信息系统
China University of Geosciences 资源信息系统 (1)问题的根源 ❖关系的键码函数决定该关系的所有其它 属性。由于键码能唯一确定一个元组, 所以,也可以说关系的键码函数决定该 关系的所有属性。一个关系中的所有属 性都函数依赖于该关系的键码。不同的 属性在关系模式中所处的地位和扮演的 角色是不同的。把键码所在的属性称为 主属性,而把键码属性以外的属性称为 非主属性
问题的根源(2) ◆不同的属性对键码函数依赖的性质和程 度是有差别的。有的属于直接依赖,有 的属于间接依赖(通常称为传递依赖)。 心当键码由多个属性组成时,有的属性函 数依赖于整个键码属性集,而有的属性 只函数依赖于键码属性集中的一部分属 性。 9 China University of Geosciences 资源信息系统
China University of Geosciences 资源信息系统 问题的根源(2) ❖不同的属性对键码函数依赖的性质和程 度是有差别的。有的属于直接依赖,有 的属于间接依赖(通常称为传递依赖)。 ❖当键码由多个属性组成时,有的属性函 数依赖于整个键码属性集,而有的属性 只函数依赖于键码属性集中的一部分属 性