第7章 数据库设计
数据库第7章-数据库设计(2)-概念结构设计作业
例 一个企业应用包括人员管理、生产管理、设 备管理等功能模块。其中: 人员管理 一个职工工作于一个部门,一个部门有若干职 工。对于部门应记录各部门的编号、部门名称、 负责人、电话等信息。
设计局部E-R模型 ——设备管理的E-R图 设备管理部门要记录设备处的编号、负责 人和电话,设备处工作人员的职务、年龄、 职工编号、姓名和性别;设备处管理设备 的编号,名称和价格以及零件的编号、名 称、规格,还包括设备的装配日期和使用 的零件数量。 一个设备处有若干名职工管理若干台设备, 一个设备由多种零件组成,一个零件可以 使用在多种设备上。
设计局部E-R模型 ——生产管理的E-R图 生产管理部门要保存该生产部门的编号、 名称、负责人和电话,生产处工作人员的 职务、年龄、职工编号、姓名和性别;生 产处生产零件的编号,名称和规格,还包 括零件的生产日期和零件数量。 一个生产处有若干名职工管理生产多种零 件。
第7章 数据库设计-数据库原理及应用-微课视频版-李唯唯-清华大学出版社
主要内容
CONTENTS
1 两个实体集之间的联系 2 多个实体集之间的联系 3 实体集内部的联系 4 用E-R图表示概念模型
1. 两个实体集之间的联系
5. 数据字典--处理过程
• 处理过程描述业务处理的处理逻辑和输入、输出。
• 处理过程描述 ={处理过程编号,处理过程名,说明,输入: {数据流},输出:{数据流},处理:{简要说明}}
【例】“审核”处理过程的描述如下: 处理过程:审核 说明:审核入库单信息是否合格 输入:入库单 输出:合格或不合格入库单 处理:对采购员提交的入库单进行审核,检查入库单填写是否 符合要求,产品实际入库数量和金额与入库单上填写的数据是 否一致。
• 概念模型的特点 (1)能真实、充分地反映现实世界; (2)易于理解; (3)易于更改; (4)易于向关系、网状、层次等各种数据模型转换。
• 描述概念模型的工具 E-R模型
数据库原理及应用
Database Principle and Application
7.3.2 概念模型的E-R表示方法
重庆理工大学 计算机科学与工程学院
1. 需求分析的任务
• 调查的重点是“数据”和“业务处理”。 • 确定业务规则。 • 业务规则:业务处理数据以及产生数据的方法和步骤。
2. 需求信息的搜集
• 需求信息收集步骤 ✓ 业务知识的研究 ✓ 制定调研计划 ✓ 选用调研方法进行调研
• 需求信息的来源 ✓ 客户 ✓ 最终用户 ✓ 管理人员
3. 需求分析的内容
4. 业务及数据分析
业务及数据分析的内容: • 确定业务 • 业务流程分析 • 业务规则分析 • 数据流程分析
5. 数据字典--数据项
• 数据项是是不可再分的数据单位。
数据库课程课件_第7章_数据库设计
数据字典是在需求分析阶段建立,并在数据库设计过程中不 断改进、充实和完善。
⑴ 数据项:
数据项是数据的最小单位。
数据项描述={数据项名,含义说明,类型,长度,取值范围, 与其它数据项的逻辑关系} ⑵ 数据结构: 数据结构反映了数据之间的组合关系。
数据结构描述={数据结构名,含义说明,组成,{数据项或数据结
本章特点:实用性较强。
§1、 数据库设计概述 数据库设计是指对于一个给定的应用环境,提供一 个确定最优数据模型与处理模式的逻辑设计,以及一个
确定数据库存储结构与存取方法的物理设计,建立起既
能反映现实世界信息和信息联系,满足用户数据要求和 加工要求,又能被某个数据库管理系统所接受,同时能 实现系统目标,并有效存取数据的数据库。
3、数据流图和数据字典
数据流图DFD有四个基本成分: 用箭头表示数据流、用圆圈表示加工或处理, 用双线段表示文件、用方框表示外部实体。
9页
学籍管理数据流图
毕业证书 新生名单 体检表
毕业登记表
宿舍描述
学生档案
毕业登记表
毕业生名单
录取通知
报到证
学生
1.0
2.0
学生基 本情况
3.0
报
到 招生 办公室
同意/不同意 接受 核对通知书 体检结果
审 核
9页
ቤተ መጻሕፍቲ ባይዱ
成绩单 教室安排
课程管理 数据流图
教材 教室
选 用 教 材 教 室 安 排 课 程 介 绍
学 生
教师 课程
任 课 教 师 介 绍
考 场 试 卷 成 绩
考 场 安 排
试 卷
成 绩
数据库课后题答案第7章数据库设计
第7章数据库设计1.试述数据库设计过程。
答:这里只概要列出数据库设计过程的六个阶段:( l )需求分析;( 2 )概念结构设计;( 3 )逻辑结构设计;( 4 )数据库物理设计;( 5 )数据库实施;( 6 )数据库运行和维护。
这是一个完整的实际数据库及其应用系统的设计过程。
不仅包括设计数据库本身,还包括数据库的实施、运行和维护。
设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。
2 .试述数据库设计过程各个阶段上的设计描述。
答:各阶段的设计要点如下:( l )需求分析:准确了解与分析用户需求(包括数据与处理)。
( 2 )概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS 的概念模型。
( 3 )逻辑结构设计:将概念结构转换为某个DBMS 所支持的数据模型,并对其进行优化。
( 4 )数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
( 5 )数据库实施:设计人员运用DBMS 提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
( 6 )数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。
3 .试述数据库设计过程中结构设计部分形成的数据库模式。
答:数据库结构设计的不同阶段形成数据库的各级模式,即:( l )在概念设计阶段形成独立于机器特点,独立于各个DBMS 产品的概念模式,在本篇中就是 E 一R 图;( 2 )在逻辑设计阶段将 E 一R 图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图( Vi 娜),形成数据的外模式;( 3 )在物理设计阶段,根据DBMS 特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。
4 .试述数据库设计的特点。
答:数据库设计既是一项涉及多学科的综合性技术又是一项庞大的工程项目。
数据库第7章-数据库设计(2)-概念结构设计
第七章 数据库设计
7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 数据库设计概述 需求分析 概念结构设计 逻辑结构设计 数据库的物理设计 数据库实施 数据库运行与维护 小结
需求分析阶段
调查 机构 情况
熟悉 业务 活动
明确 用户 需求
确定 系统 边界
分析 系统 功能
分析 系统 数据
编写 分析 报告
概念 设计 阶段
数据 流程图 DFD
数据库 设计人员
用户
数据 字典 DD
7.3 概念结构设计
什么是概念结构设计
需求分析阶段描述的用户应用需求是现实世界 的具体需求 将需求分析得到的用户需求抽象为信息结构即
概念模型的过程就是概念结构设计
概念结构是各种数据模型的共同基础,它比数
性别
分配
1
住房
设计分E-R图的步骤
(1)以数据字典为出发点定义E-R图。
实体与属性是相对而言的。
同一事物,在一种应用环境中作为“属性”, 另一种应用环境中就必须作为“实体”。 例: 学 校 中 的 系 , 在 某 种 应 用 环 境 中 , 它 只 是 作为 “学生”实体的属性,表明学生属于哪个系; 另一种环境中,由于需要考虑一个系的系主任、
教师人数、学生人数、办公地点等,这时它就需
“is member of”
张英
王平
刘勇
……
赵斌
2. 聚集(Aggregation)
定义某一类型的组成成分 它抽象了对象内部类型和成分之间“is part of”的语义 在E-R模型中若干属性的聚集组成实体型,就是这种抽象
实体型
学 生
数据库系统概论考试复习题
数据库系统概论复习资料:第一章:二、填空题1. 数据管理技术经历了人工管理、文件系统和数据库系统三个阶段。
2. 数据库是长期存储在计算机内、有组织的、可共享的数据集合。
3.DBMS是指它是位于用户和③之间的一层管理软件。
4. 数据库管理系统的主要功能有数据定义功能、数据操纵功能、数据库的运行管理和数据库的建立以与维护等4个方面。
5.数据独立性又可分为逻辑数据独立性和物理数据独立性。
6.6. 当数据的物理存储改变了,应用程序不变,而由DBMS处理这种改变,这是指数据的物理独立性。
7. 数据模型是由数据结构、数据操作和完整性约束三部分组成的。
8. 数据结构是对数据系统的静态特性的描述,数据操作是对数据库系统的动态特性的描述。
9. 数据库体系结构按照模式、外模式和内模式三级结构进行组织。
10. 实体之间的联系可抽象为三类,它们是 1∶1 、 1∶m 和 m∶n 。
11.数据冗余可能导致的问题有浪费存储空间与修改麻烦和潜在的数据不一致性。
第2章关系数据库1、一个关系模式的定义格式为关系名。
2、.一个关系模式的定义主要包括关系名、属性名、属性类型、属性长度和关键字。
3、.关系代数运算中,传统的集合运算有笛卡尔积、并、交和差。
4、关系代数运算中,基本的运算是并、差、笛卡尔积、投影和选择。
5、5、关系代数运算中,专门的关系运算有选择、投影和连接。
6、关系数据库中基于数学上两类运算是关系代数和关系演算。
7、.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主关键字是系编号,系关系的外关键字无②,学生关系的主关键字是学号,外关键字系编号第3章关系数据库标准语言SQL1、SQL是结构化查询语言。
2、视图是一个虚表,它是从一个或几个基本表中导出的表。
在数据库中,只存放视图的定义,不存放视图的视图对应的数据。
3、设有如下关系表R:R(No,NAME,SEX,AGE,CLASS)主关键字是NO其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。
数据库课后习题作业答案
数据库课后习题作业答案《数据库系统概论》课程习题及参考答案第⼀章绪论(教材37页)1.试述数据、数据库、数据库系统、数据库管理系统的概念。
答:数据:描述事物的符号记录称为数据。
数据的种类有⽂字、图形、图像、声⾳、正⽂等等。
数据与其语义是不可分的。
数据库:数据库是长期储存在计算机内、有组织的、可共享的数据集合。
数据库中的数据按⼀定的数据模型组织、描述和储存,具有较⼩的冗余度、较⾼的数据独⽴性和易扩展性,并可为各种⽤户共享。
数据库系统:数据库系统(DBS)是指在计算机系统中引⼊数据库后的系统构成。
数据库系统由数据库、数据库管理系统(及其开发⼯具)、应⽤系统、数据库管理员构成。
数据库管理系统:数据库管理系统(DBMS)是位于⽤户与操作系统之间的⼀层数据管理软件。
⽤于科学地组织和存储数据、⾼效地获取和维护数据。
DBMS 主要功能包括数据定义功能、数据操纵功能、数据库的运⾏管理功能、数据库的建⽴和维护功能。
2.使⽤数据库系统有什么好处?答:使⽤数据库系统的好处是由数据库管理系统的特点或优点决定的。
使⽤数据库系统的好处很多,例如可以⼤⼤提⾼应⽤开发的效率,⽅便⽤户的使⽤,减轻数据库系统管理⼈员维护的负担等。
为什么有这些好处,可以结合第 5题来回答。
使⽤数据库系统可以⼤⼤提⾼应⽤开发的效率。
因为在数据库系统中应⽤程序不必考虑数据的定义、存储和数据存取的具体路径,这些⼯作都由 DBMS来完成。
此外,当应⽤逻辑改变,数据的逻辑结构需要改变时,由于数据库系统提供了数据与程序之间的独⽴性。
数据逻辑结构的改变是 DBA的责任,开发⼈员不必修改应⽤程序,或者只需要修改很少的应⽤程序。
从⽽既简化了应⽤程序的编制,⼜⼤⼤减少了应⽤程序的维护和修改。
使⽤数据库系统可以减轻数据库系统管理⼈员维护系统的负担。
因为 DBMS 在数据库建⽴、运⽤和维护时对数据库进⾏统⼀的管理和控制,包括数据的完整性、安全性,多⽤户并发控制,故障恢复等等都由DBMS执⾏。
数据库第7章-数据库设计-概念结构设计
数据库第7章-数据库设计-概念结构设计数据库第 7 章数据库设计概念结构设计在数据库设计的领域中,概念结构设计是一个至关重要的环节。
它就像是为一座即将拔地而起的高楼大厦绘制蓝图,为后续的详细设计和实现奠定坚实的基础。
那么,什么是概念结构设计呢?简单来说,概念结构设计是将用户的需求转化为一个独立于具体数据库管理系统的概念模型的过程。
这个概念模型能够清晰地表达出数据之间的关系和约束,让我们对整个数据库的结构有一个宏观且准确的理解。
在进行概念结构设计时,我们首先要做的是深入了解用户的需求。
这可不是一件简单的事情,需要与用户进行充分的沟通和交流。
用户可能来自不同的领域,有着不同的背景和语言习惯,所以我们要耐心倾听,细心揣摩,确保准确无误地把握他们的需求。
有时候,用户可能自己也不太清楚自己到底想要什么,这就需要我们通过引导和提问,帮助他们理清思路。
接下来,就是要选择合适的概念模型表示方法。
常见的有实体联系(ER)模型、扩展的 ER 模型等。
ER 模型是一种非常直观和有效的表示方法,它通过实体、属性和联系来描述现实世界中的事物及其关系。
比如说,我们要设计一个学校的数据库。
学校里有学生、教师、课程等实体。
学生有学号、姓名、年龄等属性;教师有工号、姓名、职称等属性;课程有课程号、课程名、学分等属性。
而学生和课程之间存在选课的联系,教师和课程之间存在授课的联系。
通过这样的方式,我们就可以清晰地勾勒出学校数据库的概念模型。
在设计概念结构时,要遵循一些基本原则。
首先是准确性,概念模型必须准确地反映用户的需求和现实世界的情况。
其次是一致性,模型中的各种元素之间要保持逻辑上的一致。
还有简洁性,模型应该尽量简洁明了,避免不必要的复杂和冗余。
另外,要注意消除冗余。
冗余数据可能会导致数据不一致、存储空间浪费等问题。
比如说,如果在学生实体中已经包含了所在班级的信息,就不应该在选课联系中再次重复这个信息。
在设计过程中,还需要对概念模型进行优化。
数据库原理习题与答案 第7章数据库设计
第七章.数据库设计习题:一.填空题1.数据库设计的几个步骤是。
2.“为哪些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库设计中的设计阶段。
3.在数据库设计中,把数据需求写成文档,它是各类数据描述的集合,包括数据项、数据结构、数据流、数据存储和数据加工过程等的描述,通常称为。
4.数据库实施阶段包括两项重要的工作,一项是数据的,另一项是应用程序的编码和调试。
5.在设计分E-R图时,由于各个子系统分别有不同的应用,而且往往是由不同的设计人员设计的,所以各个分E-R图之间难免有不一致的地方,这些冲突主要有、和三类。
6.E-R图向关系模型转化要解决的问题是如何将实体和实体之间的联系转换成关系模式,如何确定这些关系模式的。
二.选择题1.在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的阶段。
A.需求分析B.概念设计C.逻辑设计D.物理设计2.在关系数据库设计中,设计关系模式是的任务。
A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段3.从E-R模型向关系模型转换时,一个M:N联系转换成关系模式时,该关系模式的关键字是。
A.M端实体的关键字B.N端实体的关键字C.M端实体关键字与N端实体关键字组合D.重新选取其他属性4.当局部E-R图合并成全局E-R图时可能出现冲突,不属于合并冲突的是。
A.属性冲突B.语法冲突C.结构冲突D.命名冲突5.概念模型独立于。
A.E-R模型B.硬件设备和DBMSC.操作系统和DBMSD.DBMS 三.简答题1.数据字典的内容和作用是什么。
2.什么是数据库的概念结构,试述其特点和设计策略。
3.什么是数据库的逻辑结构设计?试述其设计步骤。
4.试述数据库物理设计的内容和步骤。
四.一个图书借阅管理数据库要求提供下述服务:1)可随时查询书库中现有书籍的品种,数量与存放位置。
所有各类书籍均可由书号唯一标识。
2)可随时查询书籍借还情况。
DB7.数据库设计
School of Computer Engineering
Qingdao Technological University
29
需求分析的重点
l 信息要求 l 用户需要从数据库中获得信息的内容与性质 l 处理要求 l 对处理功能的要求 l 对处理的响应时间的要求 l 对处理方式的要求(批处理 / 联机处理) l 安全性与完整性要求
20
School of Computer Engineering
Qingdao Technological University
23
选定参加设计的人员
l 系统分析、数据库设计人员 l 数据库设计的核心人员 l 自始至终参与数据库设计 l 其水平决定了数据库系统的质量 l 用户 l 在数据库设计中也是举足轻重的 l 主要参加需求分析和数据库的运行维护 l 用户积极参与带来的好处 l 加速数据库设计 l 提高数据库设计的质量
34
需求分析
l 做需求调查时,往往需要同时采用多种方法 l 无论使用何种调查方法,都必须有用户的积极参 与和配合 l 设计人员应该和用户取得共同的语言,帮助不熟 悉计算机的用户建立数据库环境下的共同概念, 并对设计工作的最后结果共同承担责任
School of Computer Engineering
School of Computer Engineering
Qingdao Technological University
15
数据库设计的六个阶段
l 逻辑结构设计阶段 l 将概念结构转换为某个DBMS所支持的数据模型 l 对其进行优化 l 数据库物理设计阶段 l 为逻辑数据模型选取一个最适合应用环境的物理 结构(包括存储结构和存取方法) l 需求分析和概念设计独立于任何DBMS l 逻辑设计和物理设计与选用的DBMS密切相关
13春第07章数据库设计-36s资料
任课教师:唐蕾 Email:tanglei_xz@
江苏师范大学计算机与科学技术学院
本章内容概要
• 7.1 数据库设计概述 • 7.2 需求分析 • 7.3 概念结构设计 • 7.4 逻辑结构设计
• 7.5 数据库的物理设计
• 7.6 数据库的实施和维护
• 7.7 小结
• 对数据结构的描述
数据结构描述= { 数据结构名,含义说明,组成:{数据项或数据结构} }
数据结构反映了数据之间的组合关系。
2018/10/28 17
数据结构以“学生”为例,“学生”是该系统中 的一个核心数据结构:
数据结构:学生
含义说明:学籍管理子系统的主体数据结构,定 义了一个学生的有关信息。 组 成: 学号, 姓名, 性别, 年龄, 所在系, 年级
40
年龄
实体属性区分图示
区分实体和属性示例
病人 住院号 姓名 病房号 病人 住院号 n 住在 1 病房 m 医 疗 1
姓名
医生
2018/10/28
41
(2)局部视图设计方法
选择局部应用, 逐一设计分E-R图
某工厂信息管理系统
……
物资管理子系统 销售管理子系统 人事管理子系统
设计分E_R 图的出发点
• 实体与属性是相对而言的 – 同一事物,在一种应用环境中作为“属性”,在另一种应 用环境中就必须作为“实体”。 [例] 学校中的”系” • 在某种应用环境中,是“学生”实体的一个属性; • 在另一种环境中,由于需要考虑一个系的系主任、教师人数、 学生人数、办公地点等,这时它就需要作为实体了。 • 区分实体和属性的一般原则
2018/10/28
34
数据抽象-分类
第六章-关系数据理论第七章-数据库设计补充复习题附带答案
第6章关系数据理论一.选择题1.对关系模式进行规范化的主要目的是BA.提高数据操作效率B.维护数据的一致性C.加强数据的安全性D.为用户提供更快捷的数据操作2.关系模式中的插入异常是指DA.插入的数据违反了实体完整性约束B.插入的数据违反了用户定义的完整性约束C.插入了不该插入的数据D.应该被插入的数据不能被插入3.如果有函数依赖X→Y,并且对X的任意真子集X’,都有X’Y,则称C A.X完全函数依赖于Y B.X部分函数依赖于YC.Y完全函数依赖于X D.Y部分函数依赖于X4.如果有函数依赖X→Y,并且对X的某个真子集X’,有X’→Y成立,则称B A.Y完全函数依赖于X B.Y部分函数依赖于XC.X完全函数依赖于Y D.X部分函数依赖于Y5.若X→Y和Y→Z在关系模式R上成立,则X→Z在R上也成立。
该推理规则称为CA.自反规则B.增广规则C.传递规则D.伪传递规则6.若关系模式R中属性A仅出现在函数依赖的左部,则A为AA.L类属性B.R类属性C.N类属性D.LR类属性7.若关系模式R中属性A是N类属性,则A DA.一定不包含在R任何候选码中B.可能包含也可能不包含在R的候选码中C.一定包含在R的某个候选码中D.一定包含在R的任何候选码中8.设F是某关系模式的极小函数依赖集。
下列关于F的说法,错误的是B A.F中每个函数依赖的右部都必须是单个属性B.F中每个函数依赖的左部都必须是单个属性C.F中不能有冗余的函数依赖D.F中每个函数依赖的左部不能有冗余属性9.有关系模式:学生(学号,姓名,所在系,系主任),设一个系只有一个系主任,则该关系模式至少属于BA.第一范式B.第二范式C.第三范式D.BC范式10.设有关系模式R(X, Y, Z),其F={Y→Z, Y→X, X→YZ},则该关系模式至少属于DA.第一范式B.第二范式C.第三范式D.BC范式11.下列关于关系模式与范式的说法,错误的是DA.任何一个只包含两个属性的关系模式一定属于3NFB.任何一个只包含两个属性的关系模式一定属于BCNFC.任何一个只包含两个属性的关系模式一定属于2NFD.任何一个只包含三个属性的关系模式一定属于3NF12.有关系模式:借书(书号,书名,库存量,读者号,借书日期,还书日期),设一个读者可以多次借阅同一本书,但对一种书(用书号唯一标识)不能同时借多本。
第7章 数据库基础知识
教案讲稿第七章数据库基础知识[旧课复习]:复习内容:1.程序设计方法中常用方法。
2.结构化程序设计中三种基本结构。
复习目的:让学生巩固前一章节所学知识。
复习时长:大约5分钟。
[新课导入]:导入方式:复习Excel中数据操作,如排序、筛选、分类汇总导入目的:引出数据库及数据库管理系统等概念。
导入时长:大约5分钟[新课讲授]:重点:SQL语句中的insert、delect、update、select命令。
难点:查询语句select的筛选条件与分组统计。
方法:运用多媒体辅助教学,采用案例教学和任务驱动等教学法。
7.1 数据库系统的基本概念一、数据库基本概念1.数据数据(Data)实际上就是描述事物的符号记录。
计算机中的数据一般分为两部分:◆临时性数据:与程序仅有短时间的交互关系,随着程序的结束而消亡,一般存放于计算机内存中。
◆持久性数据:对系统起着长期持久的作用的数据,一般存放于计算机外存中。
数据结构:将多种相关数据以一定结构方式组合构成特定的数据框架,这样的数据框架称为数据结构。
2.数据库数据库(Database,DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。
数据库中的数据具有“集成”、“共享”的特点,即数据库集中了各种应用的数据,进行统一的构造与存储,从而使它们可被不同应用程序所使用。
3.数据库管理系统数据库管理系统(Database Management System,DBMS)是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
因此,数据库管理系统是数据库系统的核心且大多数DBMS 均为关系数据库系统。
4.数据库系统数据库系统(Database System,DBS)由如下5部分组成:•数据库(数据)•数据库管理系统(及其开发工具)•系统平台(软件)•硬件平台(硬件)•数据库管理员和用户(人员)这5个部分构成了一个以数据库为核心的完整的运行实体,称为数据库系统。
数据库系统概论第五版课后习题答案王珊版
第二章关系数据库1 .试述关系模型的三个组成部分;答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成;2 .试述关系数据语言的特点和分类;答:关系数据语言可以分为三类:关系代数语言;关系演算语言:元组关系演算语言和域关系演算语言;SQL:具有关系代数和关系演算双重特点的语言;这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用;3 略4 .5 . 述关系模型的完整性规则;在参照完整性中,为什么外部码属性的值也可以为空什么情况下才可以为空答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值;若属性或属性组F是基本关系R的外码,它与基本关系S的主码Ks相对应基本关系R和S 不一定是不同的关系,则对于R中每个元组在F上的值必须为:或者取空值F的每个属性值均为空值;或者等于S中某个元组的主码值;即属性F本身不是主属性,则可以取空值,否则不能取空值;6.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:1求供应工程J1零件的供应商号码SNO:πSnoσJno=‘J1’SPJ2求供应工程J1零件P1的供应商号码SNO:πSnoσJno=‘J1’∧Pno=‘P1‘SPJ3求供应工程J1零件为红色的供应商号码SNO:πSnoπSno,,PnoσJno=‘J1‘SPJ∞πPnoσCOLOR=’红‘P4求没有使用天津供应商生产的红色零件的工程号JNO:πJno SPJ- πJNOσcity=‘天津’∧Color=‘红‘S∞SPJ∞P5求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno SPJ÷πPnoσSno=‘S1‘SPJ7. 试述等值连接与自然连接的区别和联系;答:连接运算符是“=”的连接运算称为等值连接;它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉;8.关系代数的基本运算有哪些如何用这些基本运算来表示其他运算答:并、差、笛卡尔积、投影和选择5种运算为基本的运算;其他3种运算,即交、连接和除,均可以用这5种基本运算来表达;第三章关系数据库语言SQL1 .试述sQL 语言的特点;答:l综合统一; sQL 语言集数据定义语言DDL 、数据操纵语言DML 、数据控制语言DCL 的功能于一体;2高度非过程化;用sQL 语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径的选择以及sQL 语句的操作过程由系统自动完成;3面向集合的操作方式; sQL 语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合;4以同一种语法结构提供两种使用方式; sQL 语言既是自含式语言,又是嵌入式语言;作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用;5语言简捷,易学易用;2.3 1 select from S where A='10';2 select A,B from S;3 select A,B,S.C,S.D,E,F from S ,T where S.C=T.C and S.D=T.D;4 select from S ,T where S.C=T.C;5 select from S ,T where S.A<T.E;6 select S.C,S.D,T. from S ,T ;4.用sQL 语句建立第二章习题6中的4 个表;答:对于S 表:S SNO , SNAME , STATUS , CITY ;建S 表:CREATE TABLE S Sno C2 UNIQUE,Sname C6 ,Status C2,City C4;对于P 表:P PNO , PNAME , COLOR , WEIGHT ;建P 表:CREATE TABLE PPno C2 UNIQUE,Pname C6,COLOR C2, WEIGHT INT;对于J 表:J JNO , JNAME , CITY ;建J 表:CREATE TABLE JJno C2 UNlQUE,JNAME C8, CITY C4对于sPJ 表:sPJ sNo , PNo , JNo , QTY ;建SPJ 表:SPJSNO,PNO,JNO,QTYCREATE TABLE SPJSno C2,Pno C2,JNO C2, QTY INT针对建立的4 个表用sQL 语言完成第二章习题6中的查询;l 求供应工程Jl 零件的供应商号码SNO ;SELECT DIST SNO FROM SPJ WHERE JNO=’J1’2 求供应工程Jl 零件Pl 的供应商号码SNO ;SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1'3 求供应工程Jl 零件为红色的供应商号码SNO ;SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红'4 求没有使用天津供应商生产的红色零件的工程号JNO ;SELECT DIST JNO FROM SPJ WHERE JNO NOT IN SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO;5 求至少用了供应商Sl 所供应的全部零件的工程号JNO ;由于VFP不允许子查询嵌套太深,将查询分为两步A、查询S1供应商供应的零件号SELECT DIST PNO FROM SPJ WHERE SNO='S1'结果是P1,P2B、查询哪一个工程既使用P1零件又使用P2零件;SELECT JNO FROM SPJ WHERE PNO='P1'AND JNO IN SELECT JNO FROM SPJ WHERE PNO='P2'5.针对上题中的四个表试用SQL语言完成以下各项操作:1找出所有供应商的姓名和所在城市;SELECT SNAME,CITY FROM S2找出所有零件的名称、颜色、重量;SELECT PNAME,COLOR,WEIGHT FROM P3找出使用供应商S1所供应零件的工程号码;SELECT DIST JNO FROM SPJ WHERE SNO='S1'4找出工程项目J2使用的各种零件的名称及其数量;SELECT PNAME,QTY FROM SPJ,PWHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2'5找出上海厂商供应的所有零件号码;SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY='上海'6出使用上海产的零件的工程名称;SELECT JNAME FROM SPJ,S,JWHERE S.SNO=SPJ.SNO AND S.CITY='上海' AND J.JNO=SPJ.JNO7找出没有使用天津产的零件的工程号码;注意: SELECT DISP JNO FROM SPJ WHERE JNO NOT IN SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY='天津' 适用于JNO是唯一或不唯一的情况.注意: SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY<>'天津'适用于JNO是唯一的情况8把全部红色零件的颜色改成蓝色;UPDATE P SET COLOR='蓝' WHERE COLOR='红'9由S5供给J4的零件P6改为由S3供应;UPDATE SPJ SET SNO='S3' WHERE SNO='S5' AND JNO='J4' AND PNO='P6'10从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录;A、DELETE FROM S WHERE SNO=’S2’B、DELETE FROM SPJ WHERE SNO=‘S2’11请将S2,J6,P4,200插入供应情况关系;INSERT INTO SPJ V ALUES‘S2’,‘J6’,‘P4’,2006 .什么是基本表什么是视图两者的区别和联系是什么答:基本表是本身独立存在的表,在sQL 中一个关系就对应一个表;视图是从一个或几个基本表导出的表;视图本身不独立存储在数据库中,是一个虚表;即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中;视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图;7 .试述视图的优点;答l 视图能够简化用户的操作; 2 视图使用户能以多种角度看待同一数据; 3 视图对重构数据库提供了一定程度的逻辑独立性; 4 视图能够对机密数据提供安全保护;8 .哪类视图是可以更新的哪类视图是不可更新的各举一例说明;答:基本表的行列子集视图一般是可更新的;若视图的属性来自集合函数、表达式,则该视图肯定是不可以更新的;所有的视图是否都可以更新为什么答:不是;视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新;因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的.9 .请为三建工程项目建立一个供应情况的视图,包括供应商代码SNO、零件代码PNO、供应数量QTY;CREATE VIEW VSP AS SELECT SNO,SPJ.PNO,QTY FROM SPJ,JWHERE SPJ.JNO=J.JNO AND J.JNAME='三建'针对该视图VSP完成下列查询:1找出三建工程项目使用的各种零件代码及其数量;SELECT DIST PNO,QTY FROM VSP2找出供应商S1的供应情况;SELECT DIST FROM VSP WHERE SNO='S1'第4章数据库安全性1 .什么是数据库的安全性答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏;2 .数据库安全性和计算机系统的安全性有什么关系答:安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题;只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出;系统安全保护措施是否有效是数据库系统的主要指标之一;数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的,4 .试述实现数据库安全性控制的常用方法和技术;答:实现数据库安全性控制的常用方法和技术有:l 用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份;每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权;2 存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据;例如CZ 级中的自主存取控制DAC , Bl 级中的强制存取控制MAC ;3 视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护;4 审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等;5 数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容;5.什么是数据库中的自主存取控制方法和强制存取控制方法答:自主存取控制方法:定义各个用户对不同数据对象的存取权限;当用户对数据库访问时首先检查用户的存取权限;防止不合法用户对数据库的存取;强制存取控制方法:每一个数据对象被强制地标以一定的密级,每一个用户也被强制地授予某一个级别的许可证;系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象;6. 1 GRANT ALL PRIVILEGES ON Student,ClassTO U1WITH GRANT OPTION ;2GRANT SELECT,UPDATE家庭住址,DELETE ON Student TO U2;3GRANT SELECT ON Class TO PUBLIC;4GRANT SELECT,UPDATE ON Student TO R1;5GRANT R1 TO U1 WITH ADMIN OPTION ;7 .SQL 语言中提供了哪些数据控制自主存取控制的语句请试举几例说明它们的使用方法; 答:SQL 中的自主存取控制是通过GRANT语句和REVOKE语句来实现的;如:GRANT SELECT , INSERT ON StudentTO 王平WITH GRANT OPTION ;就将Student 表的SELECT 和INSERT 权限授予了用户王平,后面的“WITH GRANT OPTION ”子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授予其他用户;REVOKE INSERT ON Student FROM 王平CASCADE ;就将Student 表的INSERT 权限从用户王平处收回,选项CASCADE 表示,如果用户王平将Student 的INSERT 权限又转授给了其他用户,那么这些权限也将从其他用户处收回;7.请用SQL的GRANT 和REVOKE语句加上视图机制完成以下授权定义或存取控制功能: a 用户王明对两个表有SELECT 权力;GRANT SELECT ON 职工,部门TO 王明b 用户李勇对两个表有INSERT 和DELETE 权力;GRANT INSERT,DELETE ON 职工,部门TO 李勇c 每个职工只对自己的记录有SELECT 权力;GRANT SELECT ON 职工WHEN USER=NAMETO ALL;d 用户刘星对职工表有SELECT 权力,对工资字段具有更新权力;GRANT SELECT,UPDATE工资ON 职工TO 刘星e 用户张新具有修改这两个表的结构的权力;GRANT ALTER TABLE ON 职工,部门TO 张新;f 用户周平具有对两个表所有权力读,插,改,删数据,并具有给其他用户授权的权力;GRANT ALL PRIVILIGES ON 职工,部门TO 周平WITH GRANT OPTION;g 用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资;CREATE VIEW 部门工资ASSELECT 部门.名称,MAX工资,MIN工资,A VG工资FROM 职工,部门WHERE 职工.部门号=部门.部门号GROUP BY 职工.部门号GRANT SELECT ON 部门工资TO 杨兰;8 .把习题8 中1---7的每一种情况,撤销各用户所授予的权力1 REVOKE SELECT ON 职工,部门FROM 王明;2 REVOKE INSERT , DELETE ON 职工,部门FROM 李勇;3 REOVKE SELECT ON 职工WHEN USER =NAMEFROM ALI ;4 REVOKE SELECT , UPDATE ON 职工FROM 刘星;5 REVOKE ALTER TABLE ON 职工,部门FROM 张新;6 REVOKE ALL PRIVILIGES ON 职工,部门FROM 周平;7 REVOKE SELECT ON 部门工资FROM 杨兰;DROP VIEW 部门工资;9.理解并解释MAC 机制中主体、客体、敏感度标记的含义;答:主体是系统中的活动实体,既包括DBMS 所管理的实际用户,也包括代表用户的各进程;客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等;对于主体和客体,DBMS 为它们每个实例值指派一个敏感度标记Label ;敏感度标记被分成若干级别,例如绝密Top Secret 、机密Secret ·可信Confidential 、公开PubliC 等;主体的敏感度标记称为许可证级别ClearanCe 玫vel ,客体的敏感度标记称为密级Classification Level ;11 .什么是数据库的审计功能,为什么要提供审计功能答:审计功能是指DBMS 的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中;因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在;利用数据库的审计功能,DBA 可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等;第5章数据库完整性1什么是数据库的完整性答:数据库的完整性是指数据的正确性和相容性;2 .数据库的完整性概念与数据库的安全性概念有什么区别和联系答:数据的完整性和安全性是两个不同的概念,但是有一定的联系;前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出Garba : e In Garba : e out 所造成的无效操作和错误结果;后者是保护数据库防止恶意的破坏和非法的存取;也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据;3 .什么是数据库的完整性约束条件可分为哪几类答完整性约束条件是指数据库中的数据应该满足的语义约束条件;一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束;静态列级约束是对一个列的取值域的说明,包括以下几个方面:l 对数据类型的约束,包括数据的类型、长度、单位、精度等; 2 对数据格式的约束; 3 对取值范围或取值集合的约束; 4 对空值的约束; 5 其他约束;静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上;静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束;常见的静态关系约束有:l 实体完整性约束; 2 参照完整性约束; 3 函数依赖约束;动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:l 修改列定义时的约束; 2 修改列值时的约束;动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件;动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件;4 . DBMS 的完整性控制机制应具有哪些功能答:DBMS 的完整性控制机制应具有三个方面的功能:l 定义功能,即提供定义完整性约束条件的机制; 2 检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;3 违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性;5 . RDBMS 在实现参照完整性时需要考虑哪些方面答RDBMs 在实现参照完整性时需要考虑以下几个方面:l 外码是否可以接受空值;2 册l 除被参照关系的元组时的考虑,这时系统可能采取的作法有三种:l 级联删除CASCADES ; 2 受限删除RESTRICTED ;3 置空值删除NULLIFIES ; 3 在参照关系中插入元组时的问题,这时系统可能采取的作法有:l 受限插入;2 递归插入;4 修改关系中主码的问题;一般是不能用UPDA TE 语句修改关系主码的;如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中;如果允许修改主码,首先要保证主码的惟一性和非空,否则拒绝修改;然后要区分是参照关系还是被参照关系;6 .假设有下面两个关系模式:职工职工号,姓名,年龄,职务,工资,部门号,其中职工号为主码;部门部门号,名称,经理名,电话,其中部门号为主码;用sQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过60 岁;答CREATE TABLE DEPTDeptno NUMBER2,Deptname V ARCHAR10,Manager V ARCHAR10,PhoneNumber Char12CONSTRAINT PK_SC RIMARY KEYDeptno;CREATE TABLE EMPEmpno NUMBER4,Ename V ARCHAR10,Age NUMBER2,CONSTRAINT C1 CHECK Aage<=60,Job V ARCHAR9,Sal NUMBER7,2,Deptno NUMBER2,CONSTRAINT FK_DEPTNOFOREIGN KEYDeptnoREFFERENCES DEPTDeptno;7 .关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的答:对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理;而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性;第6章关系数据库理论1 .理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码All 一key 、1 NF 、ZNF 、3NF 、BcNF 、多值依赖、4NF ;定义1:设RU是属性集U上的关系模式;X,Y是属性集U的子集;若对于RU的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X→Y;即只要X上的属性值相等,Y上的值一定相等;术语和记号:X→Y,但Y不是X的子集,则称X→Y是非平凡的函数依赖;若不特别声明,总是讨论非平凡的函数依赖;X→Y,但Y是X的子集,则称X→Y是平凡的函数依赖;若X→Y,则X叫做决定因素Determinant;若X→Y,Y→X,则记作X←→Y;若Y不函数依赖于X,则记作X → Y;定义2:在RU中,如果X→Y,并且对于X的任何一个真子集X’,都有X’→ Y,则称Y对X完全函数依赖若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖定义3:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式1NF; 定义4:若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF ;即1NF消除了非主属性对码的部分函数依赖则成为2NF;定义5:关系模式R<U,F> 中若不存在这样的码X、属性组Y及非主属性ZZ不是Y的子集使得X→Y,Y → X,Y → Z成立,则称R<U,F>∈3NF;定义6:关系模式R<U,F>∈1NF ;若X→Y且Y不是X的子集时,X必含有码,则R<U,F>∈BCNF;定义7:关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→YY不是X的子集,Z=U-X-Y不为空,X都含有码,则称R<U,F>∈4NF;2.建立一个关于系、学生、班级、学会等诸信息的关系数据库;学生:学号、姓名、出生年月、系名、班号、宿舍区;班级:班号、专业名、系名、人数、入校年份;系:系名、系号、系办公地点、人数;学会:学会名、成立年份、办公地点、人数;语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生;一个系的学生住在同一宿舍区;每个学生可参加若干学会,每个学会有若干学生;学生参加某学会有一个入会年份;请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖;指出各关系模式的候选码、外部码,有没有全码存在解:1关系模式如下:学生:SSno,Sname,Sbirth,Dept,Class,Rno 班级:CClass,Pname,Dept,Cnum,Cyear 系:DDept,Dno,Office,Dnum学会:MMname,Myear,Maddr,Mnum2每个关系模式的最小函数依赖集如下:A、学生S Sno,Sname,Sbirth,Dept,Class,Rno 的最小函数依赖集如下:Sno→Sname,Sno→Sbirth,Sno→Class,Class→Dept,DEPT→Rno传递依赖如下:由于Sno→Dept,而Dept→Sno ,Dept→Rno宿舍区所以Sno与Rno之间存在着传递函数依赖;由于Class→Dept,Dept → Class,Dept→Rno所以Class与Rno之间存在着传递函数依赖;由于Sno→Class,Class→Sno,Class→Dept所以Sno与Dept之间存在着传递函数依赖;B、班级CClass,Pname,Dept,Cnum,Cyear的最小函数依赖集如下:Class→Pname,Class→Cnum,Class→Cyear,Pname→Dept.由于Class→Pname,Pname→Class,Pname→Dept所以C1ass与Dept之间存在着传递函数依赖;C、系DDept,Dno,Office,Dnum的最小函数依赖集如下:Dept→Dno,Dno→Dept,Dno→Office,Dno→Dnum根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖;D、学会MMname,Myear,Maddr,Mnum的最小函数依赖集如下:Mname→Myear,Mname→Maddr,Mname→Mnum该模式不存在传递依赖;3各关系模式的候选码、外部码,全码如下:A、学生S候选码:Sno;外部码:Dept、Class;无全码B、班级C候选码:Class;外部码:Dept;无全码C、系D候选码:Dept或Dno;无外部码;无全码D、学会M候选码:Mname;无外部码;无全码7.下面的结论哪些是正确的哪些是错误的对于错误的请给一个反例说明之;1任何一个二目关系是属于3NF;答:正确;因为关系模式中只有两个属性,所以无传递;2任何一个二目关系是属于BCNF.答:正确;按BCNF的定义,若X→Y,且Y不是X的子集时,每个决定因素都包含码,对于二目关系决定因素必然包含码;详细证明如下:任何二元关系模式必定是BCNF;证明:设R为一个二目关系RA1,A2,则属性A1和A2之间可能存在以下几种依赖关系:A、A1→A2,但A2→A1,则关系R的码为A1,决定因素都包含码,所以,R是BCNF;B、A1→A2,A2→A1,则关系R的码为A2,所以决定因素都包含码,R是BCNF;包含码;R是BCNF;C、R的码为A1,A2即A1 →A2,A2 →A1,决定因素都第七章数据库设计1.试述数据库设计过程;答:这里只概要列出数据库设计过程的六个阶段:l 需求分析; 2 概念结构设计; 3 逻辑结构设计; 4 数据库物理设计; 5 数据库实施; 6 数据库运行和维护;这是一个完整的实际数据库及其应用系统的设计过程;不仅包括设计数据库本身,还包括数据库的实施、运行和维护;设计一个完善的数据库应用系统往往是上述六个阶段的不断反复;2 .试述数据库设计过程各个阶段上的设计描述;答:各阶段的设计要点如下:l 需求分析:准确了解与分析用户需求包括数据与处理; 2 概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS 的概念模型; 3 逻辑结构设计:将概念结构转换为某个DBMS 所支持的数据模型,并对其进行优化; 4 数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构包括存储结构和存取方法; 5 数据库实施:设计人员运用DBMS 提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行; 6 数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改;3 .试述数据库设计过程中结构设计部分形成的数据库模式;答:数据库结构设计的不同阶段形成数据库的各级模式,即:l 在概念设计阶段形成独立于机器特点,独立于各个DBMS 产品的概念模式,在本篇中就是E 一R 图; 2 在逻辑设计阶段将 E 一R 图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图Vi 娜,形成数据的外模式; 3 在物理设计阶段,根据DBMS 特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式;5 .什么是数据库的概念结构试述其特点和设计策略;答:概念结构是信息世界的结构,即概念模型,其主要特点是:l 能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型; 2 易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键; 3 易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充; 4 易于向关系、网状、层次等各种数据模型转换;概念结构的设计策略通常有四种:l 自顶向下,即首先定义全局概念结构的框架,然后逐步细化; 2 自底向上,即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构; 3 逐步扩张,首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构;4 混合策略,即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构;7.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生;每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修;请用 E 一R 图画出此学校的概念模型;答:。
第7章 关系数据库的规范化理论与数据库的设计
关系数据库的规范化理论与数据库设计E.F.CODD提出的数据库规范化理论1.1“不好”的关系模式中存在的问题可能存在的问题:数据冗余更新异常插入异常删除异常数据依赖:是可以作为关系模式的取值的任何一个关系所必须满足的一种约束条件,是通过一个关系中各个元组的某些属性值之间的相等与否体现出来的相互关系。
数据依赖包括:函数依赖和多值依赖和其他1.2函数依赖1.21函数依赖的定义设R(A1,A2,……..An)是一个关系模式,X,Y是{A1,A2……..An}的子集,若只要关系r是关系模式R的可能取值,则r中不可能有两个元组在X中的属性值相等,而在Y中的属性值不相等,则称”X函数决定Y”或”Y函数依赖于X”,记做X→Y。
(ps:一些属性决定另一些属性称为函数决定)只能根据语义来判断。
相关的属性:若X->Y, 但Y不属于X, 则称X->Y为非平凡依赖,否则为平凡依赖。
若X->Y, 则称X为决定元素。
若X->Y,Y->X, 则记做X←>Y若Y不函数依赖于X, 记做X不函数决定Y在关系模式R中,如果X->Y,并且对于X的任意一个真子集X` 都有X` 不函数决定Y,则称Y对X完全函数依赖,记做X__f__Y若X->Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记做X__p___Y若X—>Y(Y不包含于X),Y不函数决定X,Y函数决定Z,则称Z 对X传递函数依赖。
把关系模式表示为R<U,F>,其中U是一组属性,F是属性组U上的一组数据依赖,当且仅当U上的一个关系r满足F时,r称为关系模式R<U,F>的一个关系。
1.22 函数依赖的逻辑蕴含设R<U,F>是一个关系模式,X,Y是U中的属性组,若在R<U,F>的任何一个满足F中函数依赖的关系r上,都有函数依赖X->Y成立,则称F逻辑蕴含X->Y。
(ps:即是函数依赖组隐含决定的其他函数依赖关系)如关系模式R<U,F>中为F所逻辑蕴含的函数依赖的全体称作F的闭包,记做F+ .1.23 码设K为关系模式R<U,F>中的属性或属性组,若K->U在F闭包中,而找不到K 的任何一个真子集K` ,能使K`->U在F闭包中,则称K为关系模式R的候选码,当候选码多于一个时,选定其中一个做主码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分类
学生 张三 李四 王五 class … Is a mumber of
概括
学生
超类 Is a subset of
高职生
本科生
研究生
子类
聚集
学生
…
实体型 Is a part of
学 号
姓 名
性 别
属性
设计全局E-R模型
将局部E-R图集成为全局E-R图; 需消除各分E-R图合并时产生的冲突; 解决冲突是合并E-R图的主要工作和关键 所在。 冲突主要有三类:
部门表(部门号,部门 部门表 名) 职工表(职工号,部门 职工表 号,职工名,工资)
职工号 职工名 工资
m:n 转换示例
教师号 职称 教师 m 授课时数 授课 n 学分 课程 课程名 课程号 教师名
教师表(教师号,教师名,职称) 教师表 课程表(课程号,课程名,学分) 课程表 授课表(教师号,课程号,授课时数) 授课表
7.2 数据库的需求分析
分析用户的要求; 是数据库设计的起点; 其结果将直接影响到后面各阶段的 设计; 并影响到最终的数据库系统能否被 合理地使用。
7.2 数据库的需求分析
7.2.1 需求分析的任务 7.2.2 需求分析的方法 7.2.3 数据字典
7.2.1需求分析的任务 需求分析的任务
信息需求。 处理需求。 安全性与完整性ቤተ መጻሕፍቲ ባይዱ求。
数据模型的优化
关系数据模型的优化通常以规范化理论为指导, 并考虑系统的性能。具体方法为: •确定各属性间的数据依赖。 •消除冗余的联系。 •确定最合适的范式。 •确定是否要对某些模式进行分解或合并 。 •对关系模式进行必要的分解,以提高数据的操 作效率和存储空间的利用率。
水平分解
以时间、空间、类型等范畴属性取值为条 件,满足相同条件的数据行为一个子表。 分解的依据一般以范畴属性取值范围划分 数据行。这样在操作同表数据时,时空范 围相对集中,便于管理。
例如在简单的生产管理系统中有下列联系, 请画出生产部门和供应部门的局部E-R图: (1)一件产品可由多个零件组成,一个零件可 以组装多件不同的产品,因此产品和零件是 多对多联系。 (2)意见产品可以使用多种材料,一种材料可 以用于多件不同的产品,因此产品和材料是 多对多联系。 (3)一个仓库可以存放多种材料,一种材料只 存放于一个仓库中,因此仓库和材料是一对 多联系。
设计局部E-R模型 E-R模型的设计内容包括确定局部E-R 模型的范围、定义实体、联系以及它 们的属性。 设计全局E-R模型 将所有局部E-R图集成为一个全局E-R 图,即全局E-R模型。 优化全局E-R模型
设计局部E-R模型
概念结构是对现实世界的一种抽象。 所谓抽象是对实际的人、物、事和概念 进行人为处理,抽取所关心的共同特性 ,忽略非本质细节,并把这些特性用各 种概念准确的加以描述。 一般有三种抽象方法:
使用更符合用户习惯的别名。 对不同级别的用户定义不同的视图 ,以保证数据的安全。 简化用户对系统的使用。
7.3.3 物理结构设计
对已确定的逻辑数据结构,利用DBMS 提供的方法、技术,以较优的存储结构 、数据存取路径、合理的数据存储位置 以及存储分配,设计出一个高效的、可 实现的物理数据库结构。 数据库的物理设计通常分为两步:
设计外模式
将概念模型转换为逻辑数据模型之后, 还应该根据局部应用需求,并结合具体 的数据库管理系统的特点,设计用户的 外模式。 外模式概念对应关系数据库的视图概念 ,设计外模式是为了更好地满足局部用 户的需求。 定义数据库的模式主要是从系统的时间 效率、空间效率、易维护等角度出发。
定义外模式考虑事项
K# A1 … Am K# A1 … Am K# A1 … Am
垂直分解
以非主属性所描述的应用对象生命历程的先后 为条件,对应相同历程的属性为一个子表。 分解的依据是将非主属性按其数据生成的时间 段划分,描述相同时间段的属性划分在一个组 中。 使操作同表数据时时空范围相对集中,便于管 理。
K# A11 …A1m K# A11 …A1m A21 … A2n K# A21 … A2n
生产日期
价格
7.3.2 逻辑结构设计
步骤:
将概念模型转换为某种组织层数 据模型; 对数据模型进行优化。
E-R模型向关系模型的转换 模型向关系模型的转换
一个实体转换为一个关系模式。实体的属性就 是关系的属性,实体的标识符就是关系的码。 对于实体间的联系有以下不同的情况:
一个1:1联系可以转换为一个独立的关系模式, 也可以与任意一端所对应的关系模式合并。 一个1:n联系可以转换为一个独立的关系模式, 也可以与n端所对应的关系模式合并。 一个m:n联系转换为一个关系模式。 三个或三个以上实体间的一个多元联系可以转换 为一个关系模式。 具有相同码的关系模式可以合并。
属性冲突:属性域冲突、属性取值单位冲突 命名冲突:同名异义和异名同义 结构冲突:同一对象在不同应用中具有不同 的抽象、同一实体在不同的局部E-R图中所包 含的属性个数和属性的排列次序不完全相同 。
优化全局E-R模型
实体个数尽可能少; 实体所包含的属性尽可能少; 实体间联系无冗余。
概念结构设计示例
7.1.1 数据库设计的特点
数据库设计应该和应用系统设计相结合,即包括:结 构(数据)设计;行为(处理)设计两个方面的内容 。这是数据库设计的主要特点。 (1)数据库的结构设计 是指根据给定的应用环境, 进行数据库的模式或子模式的设计,并且具有较小的 冗余、能满足不同用户的需求、能实现数据的共享等 特点。 (2)数据库的行为设计 是指确定数据库用户的行为 和动作。在数据库系统中,用户的行为和动作指用户 对数据库的操作,这些要通过应用程序来实现,所以 数据库的行为设计就是应用程序的设计。
结构化分析方法
结构化分析方法(Structured Analysis,简称S A方法)是一种简单实用的方法。SA方法从最 上层的系统组织机构入手,采用自顶向下、逐 层分解的方式分析系统。SA方法把任何一个系 统都抽象为如图所示的形式。
需求分析的过程
7.2.3 数据字典
数据字典则是系统中各类数据描述的集合。对 数据库设计来讲,数据字典是对系统中数据的 详细描述,是进行详细的数据收集和数据分析 所获得的主要成果。 它与数据流图互为注释,因此在数据库设计中 占有很重要的地位。 数据字典通常包括数据项、数据结构、数据流 、数据存储和处理过程五个部分。
生产部门的局部E-R图
零件型号 产品序号
m
产品 产品名 组装
n
零件
零件名
零件规格 性能 功能 耗用量 材料名
供应部门的局部E-R图
仓库号 仓库名 负责人 仓库 存储量
1
仓库容量 地址 存储 n 存储日期 材料号 材料 材料名 计量单位 属性类别 规格
成品序号 成品名 n 价格 成品 使用 使用量 m
结构和行为设计相互分离
数据库 系统 数据分析 功能分析
概念模型设计
功能模型
功能说明
逻辑模型设计 物理数据库设
事务设计
程序设计 计 加载数据库 调试运行
7.1.2 数据库设计的方法
新奥尔良(New Orleans)方法
需求 分析 需求说明 概念结 构设计 概念结构 逻辑结 构设计 逻辑结构 物理 设计 物理结构 结构
7.2.2 需求分析的方法
(1)跟班作业。通过亲身参加业务工作来了解业务活 动的情况。这种方法可以比较准确地理解用户的需 求,但比较耗费时间。 (2)开调查会。通过与用户座谈来了解业务活动情况 及用户需求。座谈时,参加者之间可以相互启发。 (3)请专人介绍。 (4)询问。对某些调查中的问题,可以找专人询问。 (5)设计调查表请用户填写。如果调查表设计得合理 ,这种方法是很有效,也易于为用户接受。 (6)查阅记录。查阅与原系统有关的数据记录。
确定存取方法
一般用户可以通过建立索引的方法来加 快数据的查询效率。 建立索引的一般原则为:
在经常作为查询条件的属性上建立索引。 在经常作为连接条件的属性上建立索引。 在经常作为分组依据列的属性上建立索引。 对经常进行连接操作的表可以建立索引。
一个表可以建立多个索引,但只能建立 一个聚簇索引。
确定存储结构
概念结构设计的策略
自底向上。先定义局部应用的概念结构, 然后按一定的规则把它们集成起来,从而 得到全局概念模型。 自顶向下:先定义全局概念模型,然后再 逐步细化。 由里向外:先定义最重要的核心结构,然 后再逐步向外扩展。 混合策略。将自顶向下和自底向上结合起 来使用。
采用E-R模型方法的概念结构设计 模型方法的概念结构设计 采用
数据源 处理 数据输出
数据存储
调查用户需求的具体步骤
①调查组织机构情况。包括了解该组织的部门组成情况、各部门 的职责等,为分析信息流程做准备。 ②调查各部门的业务活动情况。包括了解各个部门输入和使用什 么数据,如何加工处理这些数据,输出什么信息,输出到什么 部门,输出结果的格式是什么,这是调查的重点。 ③在熟悉了业务活动的基础上,协助用户明确对新系统的各种要 求,包括信息要求、处理要求、完全性与完整性要求,这是调 查的又一个重点。 ④确定新系统的边界。对前面调查的结果进行初步分析,确定哪 些功能由计算机完成或将来准备让计算机完成,哪些活动由人 工完成。由计算机完成的功能就是新系统应该实现的功能。
数据库系统原理 与应用技术
机械工业出版社
第7章 数据库设计
7.1 数据库设计概述 7.2 数据库的需求分析 7.3 数据库的结构设计 7.4 数据库的行为设计 7.5 数据库的实施、运行与维护
7.1 数据库设计概述
7.1.1 数据库设计的特点 7.1.2 数据库设计方法 7.1.3 数据库设计的基本步骤
1:1转换示例
部门号 部门 1 管理 1 经理 经理号 经理名 电话 部门名