习题1
3、简述数据库系统的组成。
答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、数据库管理员(DataBase Administrator,DBA)和用户组成。
4、试述数据库系统的三级模式结构。这种结构的优点是什么?
答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,同时包含了二级映像,即外模式/模式映像、模式/内模式映像,如下图所示。
数据库系统的这种结构具有以下优点:
(1)保证数据独立性。将外模式与模式分开,保证了数据的逻辑独立性;将内模式与模式分开,保证了数据的物理独立性。
(2)有利于数据共享,减少了数据冗余。
(3)有利于数据的安全性。不同的用户在各自的外模式下根据要求操作数据,只能对限定的数据进行操作。
(4)简化了用户接口。按照外模式编写应用程序或输入命令,而不需了解数据库全局逻辑结构和内部存储结构,方便用户系统。
5、什么是数据的物理独立性与逻辑独立性?并说明其重要性。
答:(1)数据的物理独立性是指数据的物理结构(包括存储结构、存取方式等)的改变,存储设备的更换,物理存储的更换,存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。
(2)数据的逻辑独立性是指数据库总体逻辑结构的改变,如修改数据模式,增加新的数据类型、改变数据间联系等,不需要相应修改应用程序。
(3)数据的独立性使得数据库中数据独立于应用程序而不依赖于应用程序,也就是说数据的逻辑结构、存储结构与存取方式的改变不影响应用程序。相应的,数据的独立性也使得应用程序的编制不再依赖于数据的物理和逻辑结构,提高了应用程序的可移植性与鲁棒性。从理论上说,数据的独立性可以使数据的组织和应用程序的编制完全分离。
8、什么是数据模型?
答:数据模型(Data Model)是一种抽象模型,是对现实世界数据特征的抽象。
9、什么是概念模型?E-R模型的三要素是什么?
答:概念模型是面向用户的模型,是现实世界到机器世界的一个中间层次。其基本特征是按用户观点对信息进行建模。概念模型是现实世界到信息世界的抽象,是数据库设计人员与用户进行交流的工具。
E-R模型的三要素为:
(1)实体(entity)
实体是指客观存在并可相互区别的事物。实体可以是人、事或物,也可以是抽象的概念。例如:一件商品、一个客户、一份订单等都是实体。
(2)属性(attribute)
实体通常由若干特征,每个特征称为实体的一个属性。属性刻画了实体在某方面的特性。例如:商品实体的属性可以有商品编号、商品类别、商品名称、生产商等。
(3)联系(relationship)
现实世界中事物之间的联系反映在E-R模型中就是实体间的联系。例如,订单就是客户和商品之间的联系。
10、举例说明联系的三种类型。
答:一对一联系(1:1):如果对于实体集A中的任一实体,在实体集B中至多有一个实体与之联系;反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。例如:在公司中,一个部门只有一个经理,而一个经理只在一个部门任职,则部门与经理之间具有一对一联系。
一对多联系(1:n):如果对于实体集A中的任一实体,在实体集B中有n(n≥1)个实体与之联系;而对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:n。例如:在公司中,一个部门可有多个职工,而一个职工只在一个部门任职,则部门与职工之间具有一对多联系。
多对多联系(m:n):如果对于实体集A中的任一实体,在实体集B中有n(n≥1)个实体与之联系;而对于实体集B中的每一个实体,实体集A中有m(m≥1)个实体与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。例如:在商品订购中,一个客户可订购多种商品,而一种商品也可被多个客户订购,则客户与商品之间具有多对多联系。
习题2
1、解释以下术语:关系、元组、属性、码、域、分量、关系模式。
答: (1)关系:一个关系(relation)指一张二维表。
(2)元组:一个元组(tuple)指二维表中的一行。
(3)属性:一个属性(attribute)二维表中的一列,表中每列均有名称,即属性名。
(4)码:码(key)也称为键、关键字、关键码,指表中可惟一确定元组的属性或属性组合。
(5)域:域(domain)指属性的取值范围。
(6)分量:分量指元组中的一个属性值。
(7)关系模式:关系模式是对关系“型”的描述,通常表示为:关系名(属性1,…,属性n)。
2、解释关系数据库的“型”和“值”。
答:关系数据库的型即关系数据库模式,是对关系数据库结构的描述。关系数据库模式包括若干域的定义以及在这些域上定义的若干关系模式。通常以关系数据库中包含的所有关系模式的集合来表示关系数据库模式。关系数据库的值是由关系数据库模式中的各关系模式在某一时刻对应的关系的集合。
3、解释空值的含义。
答:在关系元组中允许出现空值,空值表示信息的空缺,即未知的值或不存在值。
4、候选码应满足哪两个性质?
答:候选码应满足惟一性和最小性两个性质:
(1)惟一性。对关系R的任两个元组,其在属性集K上的值是不同的。
(2)最小性。属性集K=(Ai,Aj,…,Ak)是最小集,即若删除K中的任一属性,K都不满足最小性。
8、什么是数据完整性?如何实现数据完整性?试述关系完整性规则。
答:数据完整性是指数据库中的数据在逻辑上的正确性、有效性和相容性。
数据完整性是通过定义一系列完整性约束条件,由DBMS负责检查约束条件来实现的。
关系模型有三类完整性约束规则:实体完整性、参照完整性和用户定义的完整性。
9、有如下的学生成绩数据库:
Student(学号,姓名,专业名,性别,出生时间,总学分,备注)。
Course(课程号,课程名,开课学期,学时,学分)。
关系模式为:StuCourse(学号,课程号,成绩)。
试用关系代数表示如下查询:
(1)求专业名为“计算机科学与技术”的学生学号与姓名;
(2)求开课学期为“2”的课程号与课程名;
(3)求修读“计算机基础”的学生姓名。
答:(1)
(2)
(3)
习题3
2、什么是基本表?什么是视图?二者有何关系与区别?
答:关系数据库中的关系在SQL中称为基本表。视图是从一个或多个基本表(或视图)导出的表。基本表与视图都采用二维表格结构,都统称为表。但基本表中的数据(元组)需要有数据库中的物理存储空间,而视图在数据库中只保存其定义信息,其数据并不占用存储空间,而是来源于定义该视图的基表。视图上的数据操纵命令最终都将转化成相应基本表上的操作才能得以实现。
3、简述SQL语言的使用方式。
答:SQL语言的使用方式包括:交互式、嵌入式两类。
6、什么是索引?定义索引的目的是什么?
答:数据库的索引是一个数据表的辅助结构,它注明了表中各行数据所在的存储位置。
查询是数据库使用最频繁的操作,如何能更快地到所需数据,是数据库的一项重要任务。
在数据库中建立索引是为了提高数据查询速度。
7、什么是聚簇索引?什么是非聚集索引?
答:聚簇索引(Clustered Index)对表的物理数据页中的数据按索引关键字进行排序,然后重新存储到磁盘上,即聚簇索引与数据是一体的。非聚簇索引(Nonclustered Index)具有完全独立于数据的索引结构。
8、视图有哪些优点?
答:使用视图有下列优点:
① 为用户集中数据,简化用户的数据查询和处理。有时用户所需要的数据分散在多个表中,定义视图可将它们集中在一起,从而方便用户的数据查询和处理。
② 屏蔽数据库的复杂性。用户不必了解复杂的数据库中的表结构,并且数据库表的更改也不影响用户对数据库的使用。
③ 简化用户权限的管理。只需授予用户使用视图的权限,而不必指定用户只能使用表的特定
列,也增加了安全性。
④ 便于数据共享。各用户不必都定义和存储自己所需的数据,可共享数据库的数据,这样同样的数据只需存储一次。
⑤ 可以重新组织数据以便输出到其它应用程序中。
9、设有学生成绩数据库XSCJ,其中包含关系如下:
(1)学生关系:名为Student,描述学生信息。关系模式为:Student(学号,姓名,专业名,性别,出生时间,总学分,备注)。
(2)课程关系:名为Course,描述课程信息。关系模式为:Course(课程号,课程名,开课学期,学时,学分)。
(3)学生选课关系:名为StuCourse,描述学生选课及获得成绩信息。关系模式为:StuCourse(学号,课程号,成绩)。
试写出以下操作的SQL语句:
(1)查询专业名为“计算机科学与技术”的学生学号与姓名;
(2)查询开课学期为“2”的课程号与课程名;
(3)查询修读“计算机基础”的学生姓名;
(4)查询每个学生已选修课程门数和总平均成绩;
(5)查询所有课程的成绩都在80分以上的学生姓名、学号;
(6)删除在Student,StuCourse中所有学号以“2004”开头的元组;
(7)在库中建立“计算机科学与技术”专业的学生视图ComputerStu;
(8)在视图ComputerStu中查询姓“王”的学生情况。
答:
(1) SELECT 学号, 姓名
关系型数据库系统有哪些 FROM Student
WHERE 专业名= '计算机科学与技术'
(2) SELECT 课程号,课程名
FROM Course
WHERE 开课学期='2'
(3) SELECT 姓名
FROM Student a, Course b, StuCourse c
WHERE b.课程号=c.课程号 AND a.学号=c.学号 AND b.课程名='计算机基础'
(4) SELECT 学号,COUNT(*), AVG(成绩)
FROM StuCourse
GROUP BY学号
(5) SELECT 学号, 姓名
FROM Student
WHERE学号IN
(SELECT 学号
FROM StuCourse
GROUP BY 学号
HAVING MIN(成绩) >=80)
(6) DELETE FROM StuCourse
WHERE S# LIKE '2004%'
DELETE FROM Student
WHERE S# LIKE '2004%'
(7) CREATE VIEW ComputerStu AS
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论