Chap1 习题解答
- 1. 试述数据、数据库、数据库管理系统、数据库系统的概念
- 2. 使用数据库系统有什么好处?
- 3. 文件系统和数据库系统的区别与联系
- 4. 举出适合文件系统而不是数据库系统的应用例子,以及使用数据库系统的应用例子。
- 5. 数据库系统的特点
- 6. 数据库管理系统的主要功能
- 7. 什么是概念模型?试述概念模型的作用
- 8. 定义并解释概念模型中以下术语:实体,实体型,实体集,实体之间的联系
- 9. 试述数据模型的概念、数据模型的作用和数据模型的三个要素
- 10. 试述层次模型的概念,举出三个层次模型的实例。
- 11. 试述网状模型的概念,举出三个网状模型的实例。
- 12. 试述网状、层次数据库的优缺点
- 13. 试述关系模型的概念,定义并解释以下术语:关系,属性,域,元组,码,分量,关系模式
- 14. 关系数据库的特点
- 15. 试述数据库系统的三级模式结构,并说明这种结构的优点是什么?
- 16. 定义并解释一下术语:模式,外模式,内模式,数据定义语言,数据操纵语言
- 17. 什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?
- 18. 试述数据库系统的组成
- 19. 试述数据库管理员、系统分析员、数据库设计人员、应用程序员的职责
1. 试述数据、数据库、数据库管理系统、数据库系统的概念
- 数据:是描述事物的符号记录。数据的种类有文字、符号、图形、图像、音频等。数据与其语义是不可分的。
- 数据库:是长期储存在计算机内,有组织的、可共享的大量数据的集合。
- 数据库管理系统:是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。
- 数据库系统:是指在计算机系统中引入数据库后的系统构成,是由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。
2. 使用数据库系统有什么好处?
- 减轻数据库管理和维护人员的负担;
- 提高应用开发效率;
- 方便用户的使用;
3. 文件系统和数据库系统的区别与联系
- 联系:文件系统与数据库系统都是计算机系统中管理数据的软件,数据库系统由文件系统发展而来。
- 区别:数据存储方法不同:文件系统使用文件将数据长期保存在外存上,数据库系统用数据库统一存储数据;数据管理方法不同:文件系统采用操作系统中的访问方法对数据进行管理,数据库系统由DBMS统一管理和控制;数据共享程度不同:文件系统以文件为单位共享数据,共享性差、冗余度大,而数据库系统以记录和字段为数据共享单位,共享性高、冗余度小;数据库独立性不同:文件系统面向单一应用程序,数据独立性差,而数据库系统具有较高的物理独立性和一定的逻辑独立性;
4. 举出适合文件系统而不是数据库系统的应用例子,以及使用数据库系统的应用例子。
- 适合文件系统:应用程序产生的临时文件,例如日志信息、错误信息;数据的备份;比较简单、比较固定的应用系统;
- 适合数据库系统:绝大多数的应用系统,例如企业资源管理系统,学校的人事管理系统,图书管的图书管理系统等等。
5. 数据库系统的特点
- 数据的整体结构化;
- 共享性高、冗余度小;
- 具有高度的物理独立性和一定的逻辑独立性;
- 数据由数据库管理系统统一管理和控制;
6. 数据库管理系统的主要功能
- 数据 定义功能
- 数据 组织、存储和管理
- 数据 操纵功能
- 数据库 的事务管理和运行管理
- 数据库 的建立和维护功能
- 其他功能:例如不同数据库之间的互访和操作等
7. 什么是概念模型?试述概念模型的作用
- 概念模型:也称信息模型,是现实世界到机器世界的一个中间层次。
- 作用:用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。
8. 定义并解释概念模型中以下术语:实体,实体型,实体集,实体之间的联系
- 实体:客观存在并可相互区别的事物。例如,具体的一个学生,一门课;
- 实体型:用实体名及其属性名集合来抽象和刻画同类实体。例如,学生(学号,姓名);
- 实体集:同一类型实体的集合。例如,全体学生;
- 实体之间的联系:通常是指不同实体集之间的联系。例如,一个学生可以选修不同的课程,一门课也可以由不同学生选修,体现出学生实体与课程实体之间的多对多的联系。
9. 试述数据模型的概念、数据模型的作用和数据模型的三个要素
- 数据模型:是对现实世界数据特征的抽象。一般地讲,是严格定义的一组概念的集合
- 作用:用来描述数据、组织数据和对数据进行操作的
- 三要素:数据结构、数据操作和数据的完整性约束条件
10. 试述层次模型的概念,举出三个层次模型的实例。
- 层次模型:满足下面两个条件的基本层次联系的集合:(1)有且只有一个结点没有双亲结点,这个节点称为根结点;(2)根以外的其他结点有且只有一个双亲结点;
- 实例(图略):教员学生层次模型;行政机构层次模型;行政区域层次模型;
11. 试述网状模型的概念,举出三个网状模型的实例。
- 网状模型:满足下面两个条件的基本层次联系联系的集合:(1)允许一个以上的结点无双亲;(2)一个结点可以有多于一个的双亲;
- 实例(图略):学生选课;人种植/砍伐树木;
12. 试述网状、层次数据库的优缺点
- 层次数据库:(1)优点:数据结构简单清晰;查询效率高;(2)缺点:对多对一或多对多等现实联系,用层次模型不能较好地表示;查询子女结点必须通过双亲结点;由于结构严密,层次命令趋于程序化;
- 网状数据库:(1)优点:能够更为直接地描述现实世界,存取效率较高;(2)缺点:结构比较复杂,不利于最终用户掌握;网状模型的DDL、DML复杂,不容易使用;由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择合适的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担;
13. 试述关系模型的概念,定义并解释以下术语:关系,属性,域,元组,码,分量,关系模式
- 关系模型:由一组关系组成
- 关系:对应通常说的一张表
- 属性:表中的一列
- 元组:表中的一行
- 域:一组具有相同数据类型的值的集合
- 码:表中的某个属性组,可以唯一确定一个元组
- 分量:元组中的一个属性值
- 关系模式:对关系的描述。如:关系名(属性1,属性2,…,属性n)
14. 关系数据库的特点
- 优点:(1)关系模型与格式化模型不同,它是建立在严格的数学概念的基础之上;(2)关系模型的概念单一,其数据结构简单、清晰;(3)关系模型的存取路径对用户透明,具有更高的数据独立性;
- 缺点:查询效率往往不如格式化数据模型;
15. 试述数据库系统的三级模式结构,并说明这种结构的优点是什么?
- 三级模式结构是指:由内模式、模式和外模式三级构成,具体参见教材第五版P28图
- 优点:数据库系统的三级模式是数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方法与存储方法。为了能够在系统内部实现这三个抽象层次的联系和转换,DBMS在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是着两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
16. 定义并解释一下术语:模式,外模式,内模式,数据定义语言,数据操纵语言
- 模式(Schema):也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据试图。
- 外模式:也称子模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据试图,是与某一应用有关的数据的逻辑表示。
- 内模式:也称存储模式,一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
- 数据定义语言:DDL,用来定义数据库模式、外模式、内模式的语言(例如:CREATE,ALTER,DROP)
- 数据操纵语言:DML,用来对数据库中的数据查询、插入、删除、修改的语言(例如:SELECT,INSERT,UPDATE,DELETE)
17. 什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?
- 数据与程序的物理独立性:当数据库的存储结构改变时,由数据库管理员对模式/内模式映像作出相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性;
- 数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对外模式/模式映像作出相应改变,可以使外模式保持不变。应用程序是依赖于数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
- 原因:正是数据库系统三级模式之间的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
18. 试述数据库系统的组成
- 数据库
- 数据库管理系统
- 应用程序
- 数据库管理员
19. 试述数据库管理员、系统分析员、数据库设计人员、应用程序员的职责
- 数据库管理员:决定数据库中的信息内容和结构;决定数据库的存储结构和存取策略;定义数据的安全性要求和完整性约束条件;监控数据库的使用和运行;数据库的改进和重组、重构
- 系统分析员:负责应用系统的需求分析和规范说明,要和用户及数据库管理员相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计
- 数据库设计人员:负责数据库中数据的确定及数据库各级模式的设计。数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。
- 应用程序员:负责设计和编写应用系统的程序模块,并进行调试和安装。