第5章 数据库正确性分析

合集下载

数据库5章数据库设计

数据库5章数据库设计

E-R图向关系模型的转换:
码原则:
一个实体型转换为一个关系模式:实体的属性就是关系的 属 性,实体的码就是关系的码。
一个联系转换为一个关系模式:与该联系相连的各实体的码以 及联系的属性转换为该关系的属性。该关系的码有五种情况:
若联系是1:1:则每个实体的码均是该关系的候选码。 若联系是1:n:则关系的码是n端实体的码。 若联系是m:n:则关系的码是参加联系的诸实体的码的集合。 若联系是三个或三个以上的实体的一个多元联系可以转换为一个关系模
① 确定局部E-R图实体之间的函数依赖。 ② 求F的最小依赖集Fm,求其差集,即
D=F-Fm ③ 逐一考察D中每一函数依赖,确定是否为冗余,若是,就把 它去掉。
5.4 逻辑结构设计
任务:将基本E-R模型转换为DBMS所支持的数据模型。 关系型逻辑结构设计的步骤:
1) 将概念结构转换为关系模型 2) 优化模型 3) 设计适合DBMS的子模式
第五章 数据库设计
5.1 数据库设计概述 5.2 需求分析 5.3 概念结构设计 5.4 逻辑结构设计 5.5 数据库物理设计
数据库技术的研究领域
数据库管理系统软件的研制(×)
DBMS的研制包括DBMS本身以及以DBMS为核心的饿一组相互联系的软 件系统。目标是扩大功能、提高性能和用户的生产率。
5.2 需求分析
5.数据库应用系统的数据字典 包括:
数据项 数据结构 数据流 数据存储 处理过程
5.2 需求分析
例:下图给出了某机器制造厂的零配 件采购子系统的数据流图。该子系统 要处理的工作是生产部门提出的生产 计划根据零配件当前价格计算成本送 主管部门审批,对已批准生产计划制 定采购计划,准备好订货单给供应商。

《数据库技术与应用》第5章 习题答案

《数据库技术与应用》第5章 习题答案

第5章数据库完整性与安全性1. 什么是数据库的完整性?什么是数据库的安全性?两者之间有什么区别和联系?解:数据库的完整性是指数据库中数据的正确性、有效性和相容性,其目的是防止不符合语义、不正确的数据进入数据库,从而来保证数据库系统能够真实的反映客观现实世界。

数据库安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。

数据的完整性和安全性是两个不同的概念,但是有一定的联系:前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。

后者是保护数据库防止恶意的破坏和非法的存取。

也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据.2。

什么是数据库的完整性约束条件?完整性约束条件可以分为哪几类?解:完整性约束条件是指数据库中的数据应该满足的语义约束条件。

一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束.静态列级约束是对一个列的取值域的说明,包括以下几个方面:①数据类型的约束,包括数据的类型、长度、单位、精度等;②对数据格式的约束;③对取值范围或取值集合的约束;④对空值的约束;⑤其他约束.静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。

静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。

常见的静态关系约束有:①实体完整性约束;②参照完整性约束;③函数依赖约束.动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:①修改列定义时的约束;②修改列值时的约束。

动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件.动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。

3. 试述DBMS如何实现完整性控制.解:为了维护数据库的完整性,DBMS提供了以下三种机制:①完整性约束条件定义完整性约束条件也称为完整性规则,是数据库中的数据必须满足的语义约束条件.SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性。

数据库系统概论复习重点

数据库系统概论复习重点

数据库系统概论复习重点第一章绪论1.数据库系统的基本概念:数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员构成。

2.数据库管理系统的主要功能:数据定义功能、数据操作功能、数据库的运行管理、数据库的建立和维护。

3.数据模型的分类:概念模型、逻辑模型。

4.概念模型的表示:层次模型、网状模型、关系模型、面向对象模型、对象关系模型。

5.数据管理技术的产生和发展经历的三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段。

6.实体是现实世界中客观存在,且能相互区别的。

7.数据模型的组成要素:数据结构、数据操作、数据的完整性的约束条件。

8.DBS包括DB和DBMS,而DB与DBSM是相互独立的。

9.概念模型独立于操作。

10.数据库三级结构有利于保证数据的安全性和独立性。

11.数据库物理存储视图为内模式12.用户通过DML语言对数据进行操作,其实是在操作外模式中的记录。

13.数据库系统的三级模式结构:外模式、模式、内模式。

14.有了“模式/内模式映像”可以保证数据的物理独立性。

15.数据库系统的核心是——数据库。

16.数据库系统的三级模式存在有二级映像,使之可以有较高的数据独立性。

17.数据库的外部存储方法和存储设备变化不影响逻辑结构,这种情况为物理数据独立性。

第二章关系数据库1.本章重点:关系数据库概念,可以用关系表达式来表达实际问题,可以用元祖表达式来表达实际问题,可以用域表达式来表达实际问题。

可以将这三种表达式相互转换。

2.关系代数运算:并、交、笛卡儿积、选择、投影。

3.常用的关系运算:关系代数、关系演算。

5.“列”可以出自一个域。

6.DBMS和OS之间的关系是:DBMS可以调用OS。

7.关系演算谓词变元可分为:元祖关系、演算关系、域关系演算。

8.若Sno由八位数组成,则此种情况称为:用户定义完整性。

9.一般情况下“R”“S”连接,则“R”“S”必有相同的属性。

第5章 数据库完整性

第5章 数据库完整性

第5章数据库安全性(2课时)数据库的数据保护主要包括数据的安全性和数据的完整性。

数据的安全性是为了保护数据库防止恶意的破坏和非法访问,防范对象是非法用户和非法操作。

数据库的完整性是指数据的正确性和相容性,是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据,防范对象是不合语义的、不正确的数据。

举例说明数据的完整性(三种完整性各一例)。

为维护数据库的完整性,DBMS必须具备三个功能:1 提供定义完整性约束条件的机制完整性约束条件也称为完整性约束规则,是数据库必须满足的语义约束条件。

SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性。

这些完整性一般由SQL的DDL语句来实现。

它们作为数据库模式的一部分存入数据字典中。

2 提供完整性检查的方法DBMS中检查数据是否满足完整性约束条件的机制称为完整性检查。

一般在INSERT、UPDA TE、DELETE语句执行后开始检查,也可以在事务提交时检查。

检查这些操作执行后数据库中的数据库是否违背了完整性约束条件。

3 违约处理DBMS若发现用户的操作违背了完整性约束条件,就采取一定的动作,如拒绝(NOACTION)执行该操作,或级联(CASCADE)执行其他操作,进行违约处理以保证数据的完整性。

目前商用的DBMS产品都支持完整性控制,即完整性定义、检查控制和违约处理都是由DBMS来实现,不必由应用程序来完成,从而减轻了应用程序员的负担。

5.1 实体完整性是关系的两个不变性之一,关系的主属性的取值不能相同,主属性不能取空值,保证在一个关系中不存在两个完全相同的元组。

5.1.1 实体完整性定义关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。

对单属性构成的码有两种说明方法:一种是定义为列级约束条件;一种是定义为表级约束条件。

对多个属性构成的码只有一种说明方法:定义为表级约束条件。

第5章数据库完整性

第5章数据库完整性

4. 修改被参照关系中主码的问题
两种策略 不允许修改主码 允许修改主码 违约操作 要修改被参照关系中某些元组的主码值,而 修改被参照关系中某些元组的主码值 中某些元组的主码值, 参照关系中有些元组的外码值正好等于被参 照关系要修改的主码值,如修改Student学号; 照关系要修改的主码值,如修改 学号; 学号
受限插入:系统将拒绝向 关系插入 关系插入( 受限插入:系统将拒绝向SC关系插入(99001, , 1,90)元组. , )元组. 递归插入:系统将首先向 递归插入:系统将首先向Student关系插入 关系插入 Sno=99001的元组,然后向 关系插入 的元组, 的元组 然后向SC关系插入 (99001,1,90)元组. , , )元组.
级联修改 修改被参照关系中主码值同时, 修改被参照关系中主码值同时,用相同的方法修改 参照关系中相应的外码值; 参照关系中相应的外码值; 受限修改 拒绝此修改操作. 拒绝此修改操作.只当参照关系中没有任何元组的 外码值等于被参照关系中某个元组的主码值时, 外码值等于被参照关系中某个元组的主码值时,这 个元组的主码值才能被修改; 个元组的主码值才能被修改; 置空值修改 修改被参照关系中主码值, 修改被参照关系中主码值,同时将参照关系中相应 的外码值置为空值; 的外码值置为空值;
实体完整性
表中的Sno, Cno定义为码 例:将SC表中的 表中的 定义为码
CREATE TABLE SC ( Sno CHAR(7) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno, Cno), );
实体完整性
实体完整性检查和违约处理
3.在参照关系中插入元组时的问题 在参照关系中插入元组时的问题

第五章 数据库设计

第五章 数据库设计

运动会方面,实体集包括:运动员(编号,姓名,性别,队 伍号),比赛项目(项目名,比赛场地)。其中,一个比赛项 目可供多名运动员参加,一名运动员可参加多个项目。
根据上述条件,分别设计运动队和运动会两个局部E-R图。
第三节 概念结构设计 参赛项目 性别 队伍号 队伍名 教练名 运动员 性别 队伍号 运动员 m 参加 n n 属于
第三节 概念结构设计 分解变换。如果实体集的属性较多,可以进行分解。例如, 对于员工实体集,其属性为员工号、姓名、性别、生日、(所 属)支行名、岗位、工资、奖金。 性别 生日 支行名 岗位 工资 奖金
姓名 员工号 员工
第三节 概念结构设计 可以把员工信息分解为两部分,一部分属于固定信息,一部 分属于变动信息。为了区别这两部分信息,产生一个新的实体 和一个新的联系。
在视图合并阶段,设计者把所有视图有机地合并成统一的概 念模型,这个最终的概念模型支持所有的应用。
第三节 概念结构设计 概念结构设计的策略主要分为自顶向下、自底向上、自内向 外和混合策略四种。 这些方法中最常用的是自底向上方法:首先设计局部概念模 式,然后综合局部概念模式成全局概念模式,最后对全局概念 模式进行评估和优化。
P2 P1 D2明细 D3账目 E2会 E1客 D1付款 打印账目 账务处理 单 户 计
第二节 需求分析 元数据是描述数据的数据,通常由数据结构的描述组成,主 要描述数据及其使用环境,例如数据精度、来源、产生时间、 使用范围、注解等。 数据字典是一种用户可以访问的、记录数据库和应用程序元 数据的集合,通常是用来解释数据表、数据字段等数据结构的 意义,数据字段的取值范围、数据值代表的意义等。 简而言之,数据字典是描述数据的信息集合,是系统中所有 数据的定义集合。
数据字典通常由数据项、数据结构、数据流、数据存储和处 理过程组成。

数据库系统概论第五版课后答案

数据库系统概论第五版课后答案

数据库系统概论第五版课后答案第1章绪论1.试述数据、数据库、数据库系统、数据库管理系统的概念。

答:(l)数据(Data):描述事物的符号记录称为数据。

数据的种类有数字、文字、图形、图像、声音、正文等。

数据与其语义是不可分的。

解析在现代计算机系统中数据的概念是广义的。

早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。

现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。

数据与其语义是不可分的。

500这个数字可以表示一件物品的价格是500元,也可以表示一个学术会议参加的人数有500人,还可以表示一袋奶粉重500克。

(2)数据库(DataBase,简称DB):数据库是长期储存在计算机内的、有组织的、可共享的数据集合。

数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

(3)数据库系统(DataBas。

Sytem,简称DBS):数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。

解析数据库系统和数据库是两个概念。

数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。

但是在日常工作中人们常常把数据库系统简称为数据库。

希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。

(4)数据库管理系统(DataBaseManagementsytem,简称DBMs):数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。

DBMS的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。

解析DBMS是一个大型的复杂的软件系统,是计算机中的基础软件。

目前,专门研制DBMS的厂商及其研制的DBMS产品很多。

著名的有美国IBM公司的DBZ关系数据库管理系统和IMS层次数据库管理系统、美国Oracle公司的orade关系数据库管理系统、s油ase公司的s油ase关系数据库管理系统、美国微软公司的SQLServe,关系数据库管理系统等。

第5章 数据库安全保护

第5章 数据库安全保护

更改登录账号的属性
使用存储过程sp_password可改变登录账号的密码
EXEC sp_password '旧密码', '新密码', '登录账号名称' [例5-3]将Mike账号的密码由原来的m1934改为mike1934. EXEC sp_password ‘m1934’,’mike1934’,’Mike’
第5章 数据库安全保护
5.1 5.2 5.3 5.4
数据库的安全性 完整性控制 并发控制与封锁 数据库的恢复
2
5.1 数据库的安全性
5.1.1 数据库安全性的含义
数据库的安全性是指保护数据库以防止非法使 用所造成的数据泄露、更改或破坏。
安全性问题有许多方面 :
(1)法律、社会和伦理方面时问题。 (2)物理控制方面的问题。 (3)政策方面的问题。 (4)运行方面的问题。 (5)硬件控制方面的问题。 (6)操作系统安全性方面的问题。 (7)数据库系统本身的安全性方面的问题。
18
其中: BUILTIN\Administrators: 表示所有 Windows Adiminstrators组中的用户都可以 登录到SQL Server。此组中的成员同时也具 有SQL Server的系统管理员权限。 sa:SQL Server身份验证模式的系统管理 员账户。 方法2:使用存储过程查看登录账号。 EXEC sp_helplogins
14
5.1.4 SQL Server2000的身份验证模式
1.Windows身份验证模式 : 允许Windows操作系统用户连接到SQL Server。 当使用Windows身份验证模式时,用户必 须首先登录到Windows操作系统中,然后 再登录到SQL Server。 一般推荐使用Windows验证模式,因为这 种安全模式能够与Windows操作系统的安 全系统集成在一起,以提供更多的安全功能。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

存在问题的原因:
• 上述表的关键字是(Ono, Pno, Cno),而产品信息(Pname, Pprice)本 来可以由Pno唯一确定。也就是说,产品信息并不完全依赖于订单编 号;同样客户信息也不完全依赖于订单编号,这是引起插入、删除 异常及冗余的原因。
问题的提出
改进方案:用订单信息、产品信息、客户信息及订单细节
SD(Sno, Sdept)
DL(Sdept, Sloc) SD的码为Sno, DL的码为Sdept。
3NF(续) SD的码为Sno, DL的码为Sdept。
Sno
Sdept
Sdept
Sloc
SD
DL
BCNF
定义:若关系模式中有函数依赖,则必然是依赖于包含侯选
键的属性或属性组,换句话说,关系模式中不存在不依赖于 包含侯选键的属性或属性组的函数依赖;又被称为关系 Boyce‐Codd范式,通常又称扩充后的BCNF。
2NF(续)
SLC
Sno
Sdept
原因
Grade
Sdept、 Sloc部分函数依赖于码。
Cno
Sloc
解决方法
SLC分解为两个关系模式,以消除这些部分函数依赖 SLC(Sno,Sdept,Sloc, Cno,Grade) SC(Sno, Cno, Grade) SL(Sno, Sdept, Sloc)
⒈ 一个系有若干学生, 一个学生只属于一个系;
Sno → Sdept ⒉ 一个系只有一名主任; Sdept → Mname ⒊ 一个学生可以选修多门课程, 每门课程有若干学 生选修; ⒋ 每个学生所学的每门课程都有一个成绩。 (Sno, Cname) → Grade
问题的提出
属性组U上的一组函数依赖F:
四张表存储客户订货系统信息:
问题的提出
改进方案解决问题的分析:
• (1) 在订单信息、产品信息、客户信息及订单细节四张表 中,其中的订单信息、产品信息、客户信息分别反映了 客观存在的实体,而订单细节反映了订单与产品之间的 联系(实体之间的联系)。
• (2) 描述现实世界中实体及其关联是建立信息模型[概念模 型]的核心思想。
,那么我们说X函数决定Y, 或者Y函数依赖于X,记作X→Y. 若X → Y, Y → X, 则记作X←→ Y. 若Y不函数依赖于X,则记作X Y 例如:“学号”,“姓名”,“年龄”,“家庭住址” 则有:“姓名” “年龄”和“家庭住址”都函数依赖于“学号” 函数依赖的分析取决于对问题领域的限定和详细分析。 例如:问题领域(1)中,学生是没有重名的,则有: “年龄”和“家庭住址”都函数依赖于“姓名” 而在另一个问题领域(2)中,学生是有重名的,则上述函数依赖是不 成立的。 所以必须正确理解问题领域的相关业务规则
2NF(续) 例: 关系模式 SLC(Sno,Sdept,Sloc, Cno,Grade) Sloc为学生住处,假设每个系的学生住在同一个 地方。SLC的码为(Sno, Cno)。 函数依赖包括: F (Sno,Cno) → Grade P (Sno,Cno) → Sdept P (Sno,Cno) → Sloc Sno → Sloc Sdept → Sloc Sno → Sdept
F ={ Sno → Sdept , Sdept → Mname , (Sno , Cname) → Grade }
Sno
Cname
Grade
Sdept
Mname
问题的提出
单一的关系模式Student<U , F>中存在的问题 U ={ Sno, Sdept , Mname , Cname , Grade } Student{ Sno, Sdept , Mname , Cname , Grade }
各种范式之间存在联系:
1NF 2 NF 3NF BCNF 4 NF 5 NF
关系设计的第一范式
关系中,属性不可再分:又被称为关系第1范式
关系设计的第二范式
如果关系中的每一非主属性完全函数依赖于候选键,则称关系满足第2
范式。 存在非主属性部分依赖的关系设计将会存在非受控冗余、插入异常和删 除异常等问题。 例如:侯选键为“学号,系别”。“姓名”部分依赖于“学号,所 属系别”,“系主任”部分依赖于“学号,所属系别”。 第2范式消除了非主属性对侯选键的部分依赖。
第五章 数据库设计正确性分析
问题的提出
初始方案:设计一张表记录客户、订单及产品信息:
存在问题:
• (1) 如果删除订单信息,则产品信息也将删除,称为删除异常; • (2) 如果没有订单,则无法增加产品信息,称为插入异常; • (3) 客户、订单、产品信息冗余,会引起数据不一致
问题的提出
初始方案:设计一张表记录客户、订单及产品信息:
候选键和非主属性
在一个属性集合中,能够完全决定所有属性的那些属性(组)
被称为侯选键 一个属性集合可以拥有多个侯选键 在一个属性集合中,不包含在任何侯选键中的属性,被称为 非主属性 在后面关系设计原则中,要求首先要找到所有的函数依赖,然 后再分析侯选键和非主属性
例(1): { “学号” ,“年龄”,“家庭住址”,“课程号”,“成绩”, “任课教师”,“教师职务” };侯选键是?,非主属性是? 例(2):{“城市名”,“街道名”,“邮政编码”};侯选键是?,非主属性 是? 例(3):{“商店”,“商品”,“商品经营部”,“商品经营部经理”} 例(4):{“学号”,“姓名”,“所属系别”,“系主任” }
如何避免
设计满足规范性,由DBMS或数据
库本身来保证
设计不满足规范性,由使用者或应
用程序员使用过程中加以注意
什么是规范的数据库设计
数据库的规范性设计需要分析数据库 Table中的属性在取值
方面有什么依存关系?
• 函数依赖
完全函数依赖与部分函数依赖 传递函数依赖;
• 多值依赖
数据库设计过程中应遵循什么样的原则
Sno S1 S2 S3 S4 Sdept 计算机系 计算机系 计算机系 计算机系 Mname 张明 张明 张明 张明 Cname C1 C1 C1 C1 Grade 95 90 88 70
S5
计算机系
张明
C1
78
问题的提出
⒈ 数据冗余太大 • 浪费大量的存储空间 例:每一个系主任的姓名重复出现 ⒉ 更新异常(Update Anomalies) • 数据冗余 ,更新数据时,维护数据完整性代价大 例:某系更换系主任后,系统必须修改与该系学生有关 的每一个元组
(1) 插入异常 假设Sno=95102,Sdept=IS,Sloc=N的学生还未选课, 因课程号是主属性,因此该学生的信息无法插入SLC。 (2) 删除异常 假定某个学生本来只选修了3号课程这一门课。现在因身体 不适,他连3号课程也不选修了。因课程号是主属性,此操 作将导致该学生信息的整个元组都要删除。 (3) 数据冗余度大 如果一个学生选修了10门课程,那么他的Sdept和Sloc值就 要重复存储了10次。 (4) 修改复杂 例如学生转系,在修改此学生元组的Sdept值的同时,还可 能需要修改住处(Sloc)。如果这个学生选修了K门课,则 必须无遗漏地修改K个元组中全部Sdept、Sloc信息。
请大家分析下列属性或属性组之间存在的函数依赖关系
Hale Waihona Puke “学号”, “年龄”,“家庭住址”,“课程号”,“课程名称 ”,“成绩”,“任课教师编号”,“教师姓名”
完全函数依赖和部分函数依赖
在一个属性集合中,若属性(组)X能够函数决定属性(组)Y, 但
是X的任何一个真子集都不能函数决定Y, 则说X完全决定Y, 或者Y完全函数依赖于X,记作X Y;否则说Y部分函数依 赖于X,记作X Y。
• 关系第 1范式原则 (1NF) • 关系第 2范式原则 (2NF) • 关系第 3范式原则 (3NF) • 关系 Boyce‐Codd范式原则 (BCNF) • 关系第 4范式原则 (4NF) • 关系第 5范式原则 (5NF)
函数依赖
对于两个属性(或属性组)X和Y, 如果X上的值相等,则Y上的值一定相等
传递函数依赖
在一个属性集合中,若属性(组)X能够函数决定属性(组)Y, 而
Y又函数决定属性(组)Z, 但Y不能函数决定X, 而且Y不包含于 X, 则说Z传递函数依赖于X。 例(1):{ “学号” ,“姓名” ,“系号” ,“系主任” }中, “学号” 函数决定“系号”,而“系号”函数决定“系主任” ,则“系主任”传递依赖于“学号
问题的提出
例2:描述学校的数据库: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade)
单一的关系模式 : Student <U,F>
U ={ Sno, Sdept , Mname , Cname , Grade }
问题的提出 学校数据库的语义:
2NF(续)
SLC Sno Grade Sdept
Cno
Sloc
SLC的码为(Sno, Cno) SLC满足第一范式
非主属性Sdept和Sloc部分函数依赖于码(Sno,Cno)
2NF(续) 关系模式 SLC(Sno,Sdept,Sloc, Cno,Grade)
SLC不是一个好的关系模式
结论: • Student关系模式不是一个好的模式。 • “好”的模式: 不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少。 原因:由存在于模式中的某些数据依赖引起的 解决方法:通过分解关系模式来消除其中不合适的数据依赖。 S(SNO,SDEPT,SNO→SDEPT) SG(SNO,CNAME,G,(SNO,CNAME) →G) DEPT(SDEPT,MNAME,SDEPT →MNAME)
相关文档
最新文档