数据库系统基础教程答案 (第三版) 机械工业出版社 岳丽华 -
.
下载:
.
http://download.csdn.net/detail/zxzy17/4097265.
如对你有帮助.请及时选为【满意回答】
mysql数据库原理及应用 数据库原理与应用(第3版)答案《数据库原理与应用》(第三版)习题参考答案 第 1 章 数据库概述 1. 试说明数据、数据库、数据库管理系统和数据库系统的概念。答:数据是描述事物的符号记录。数据库是长期存储在计算机中的有组织的、可共享的大量数据的集合。数据库管理系统是一个专门用于实现对数据进行管理和维护的系统软件。数据库系统是指在计算机中引入数据库后的系统,一般由数据库、数据库管理系统(及相关的实用工具)、应用程序、数据库管理员组成。2. 数据管理技术的发展主要经历了哪几个阶段?答:文件管理和数据库管理。3. 与文件管理相比,数据库管理有哪些优点? 答:与文件系统管理数据相比,数据库系统管理数据带来了如下好处:将相互关联的数据集成在一起,较少的数据冗余,程序与数据相互独立,保证数据的安全可靠,最大限度地保证数据的正确性,数据可以共享并能保证数据的一致性。4. 在数据库管理方式中,应用程序是否需要关心数据的存储位置和存储结构?为什么? 答:不需要。因为数据库管理系统提供了逻辑独立性和物理独立性。5. 在数据库系统中,数据库的作用是什么? 答:数据库是数据的汇集,它以一定的组织形式保存在存储介质上。6. 在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据文件吗? 答:不能7. 数据独立性指的是什么?它能带来哪些好处? 答:数据独立性是指应用程序不会因数据的物理表示方式和访问技术的改变而改变,即应用程序不依赖于任何特定的物理表示方式和访问技术,它包含两个方面:逻辑独立性和物理独立性。物理独立性是指当数据的存储位置或存储结构发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。8. 数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么? 答:数据库系统一般包括数据库、数据库管理系统(及相应的实用工具)、应用程序和数据库管理员四个部分。数据库是数据的汇集,它以一定的组织形式保存在存储介质上;数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;应用程序专指以数据库数据为基础的程序,数据库管理员负责整个数据库系统的正常运行。第2章 数据模型与数据库结构 1. 解释数据模型的概念,为什么要将数据模型分成两个层次? 答:答:数据模型是对现实世界数据特征的抽象。数据模型一般要满足三个条件:第一是数据模型要能够比较真实地模拟现实世界;第二是数据模型要容易被人们理解;第三是数据模型要能够很方便地在计算机上实现。由于用一种模型来同时很好地满足这三方面的要求在目前是比较困难的,因此在数据库系统中就可以针对不同的使用对象和应用目的,采用不同的数据模型。根据模型应用的不同目的,将这些模型分为两大类:概念层数据模型和组织层数据模型,以方便对信息的描述。2. 概念层数据模型和组织层数据模型分别是针对什么进行的抽象? 答:概念层数据模型是对现实世界的抽象,形成信息世界模型,组织层数据模型是对信息世界进行抽象和转换,形成具体的DBMS支持的数据组织模型。3. 实体之间的联系有哪几种?请为每一种联系举出一个例子。答:实体之间的联系有一对一、一对多和多对多三种。例如:系和正系主任是一对一联系(假设一个系只有一个正系主任),系和教师是一对多联系(假设一个教师只在一个系工作),教师和课程是多对多联系(假设一个教师可以讲授多门课程,一门课程可由多个教师讲授)。4. 说明实体-联系模型中的实体、属性和联系的概念。5.指明下列实体间联系的种类:(1)教研室和教师(设一个教师只属于一个教研室,一个教研室可有多名教师)。(2)商品和顾客。(3)国家和首都(假设一个国家的首都可以变化)。(4)飞机和乘客。(5)银行和账户。(6)图书和借阅者。(设一个借阅者可同时借阅多本书,可在不同时间对同一本书借阅多次) 6.数据库系统包含哪三级模式?试分别说明每一级模式的作用? 答:数据库系统包含的三级模式为:内模式、模式和外模式。外模式是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同数据库用户需求的数据视图,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是对数据库整体数据结构的子集或局部重构。模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。内模式是对整个数据库的底层表示,它描述了数据的存储结构。
7. 数据库管理系统提供的两级映像的作用是什么?它带来了哪些功能? 答:数据库系统的两级映象是模式与内描述间的映象和外模式与模式间的映象。模式/内模式的映象带来了物理独立性,即如果数据库的存储结构改变了,可通过调整模式/内模式的映象,使模式能够保持不变。外模式/概念模式间的映象带来了逻辑独立性,当概念模式的结构可发生改变时,也可通过调整外模式/模式间的映象关系,使外模式可以保持不变。8.数据库三级模式划分的优点是什么?它能带来哪些数据独立性? 答:数据库的三级模式的划分实际上将用户、逻辑数据库与物理数据库进行了划分,使彼此之间的相互干扰减到最少。这三个模式的划分实际上带来了两个数据独立性:物理独立性和逻辑独立性。这使得底层的修改和变化尽量不影响到上层。第3章 关系数据库 1. 试述关系模型的三个组成部分。答:关系数据结构、关系 *** 作集合和关系完整性约束。2. 解释下列术语的含义:(1) 笛卡尔积:设D1,D2,…,Dn为任意集合,定义笛卡尔积D1,D2,…,Dn为:D1×D2× …×Dn ={(d1,d2,…,dn) | di ∈Di,i=1,2,…,n }(2) 主键:也称主码为或主关键字,是表中的属性或属性组,用于惟一地确定一个元组。(3) 候选键:如果一个属性或属性集的值能够惟一标识一个关系的元组而又不包含多余的属性,则称该属性或属性集为候选键。(4) 外键:设F是关系R的一个或一组属性,如果F与关系S的主键相对应,则称F是关系R的外键。(5) 关系:关系就是简单二维表。(6) 关系模式:二维表的结构称为关系模式。(7) 关系数据库:对应于一个关系模型的所有关系的集合称为关系数据库。3. 关系数据库的三个完整性约束是什么?各是什么含义? 答:实体完整性、参照完整性和用户定义的完整性。实体完整性是保证关系中的每个元组都是可识别的和惟一的。参照完整性也称为引用完整性,用于表达现实世界中的实体之间的关联关系。
用户定义的完整性也称为域完整性或语义完整性,用于保证数据库中存储的值与现实世界相符。4. 连接运算有哪些?等值连接和自然连接的区别是什么? 答:连接运算中最重要也是最常用的连接有两个,一个是等值连接,一个是自然连接。自然连接与等值连接的差别为:l 自然连接要求相等的分量必须有共同的属性名,等值连接则不要求;l 自然连接要求把重复的属性名去掉,等值连接却不这样做。5. 对参与并、交、差运算的两个关系R、S有什么要求? 答:必须结构相同,且相应的属性值取自同一个值域。6. 对参与除运算的两个关系(R÷S)有什么要求?除运算的结果关系中包含哪些属性? 答:R中必须包含S的全部或部分属性,除运算的结果包含的属性是只属于R不属于S的属性。7. 对参与自然连接和等值连接 *** 作的两个关系R、S有什么要求?答:有语义相同的属性。8. 投影 *** 作的结果关系中是否有可能存在重复的记录?为什么? 答:不可能,因为投影运算会自动去掉投影后重复的记录。9.利用表3-10至3-12所示的三个关系,写出实现如下查询要求的关系代数表达式。(1)查询“信息系”学生的选课情况,列出学号、姓名、课程号和成绩。∏Sno, Sname, Cno, Grade(σSdept=‘信息系’(SCStudent)) 或:∏Sno, Sname, Cno, Grade(SC σSdept=‘信息系’(Student))(2) 查询“VB”课程的考试情况,列出学生姓名、所在系和考试成绩。∏Sname, Sdept, Grade(σCname=‘VB’(CoureSCStudent)) 或:∏Sname, Sdept, Grade(σCname=‘VB’(Coure) SCStudent)(3) 查询考试成绩高于90分的学生的姓名、课程名和成绩。∏Sname, Cname, Grade(σGrade>90(CoureSCStudent)) 或:∏Sname, Cname, Grade(Coure
σGrade>90(SC)Student)(4) 查询至少选修了0512号学生所选的全部课程的学生的姓名和所在系。∏Sname, Sdept(Student (SC ÷ ∏Cno(σsno=’0512’(SC))))(5) 查询至少选了“C01”和“C02”两门课程的学生的姓名、所在系和所选的课程号。∏Sname, Sdept, Cno(Student (SC ÷ ∏Sno(σcno=’C01’ V Cno=’C02’(SC))))(6) 查询没有选修第1学期开设的全部课程的学生的学号、姓名和所选的课程号。∏Sno, Sname, Cno(Student SC (∏sno(SC) - ∏sno(σsemester=1(Course)SC)))(7) 查询计算机系和信息系选了VB课程的学生姓名。∏Sname(σsdept=’计算机系’V sdept=’信息系’)∧ cname=’vb’(StudentSC Course)) 或:∏Sname(σsdept=’计算机系’V sdept=’信息系’(Student)SC σcname=’vb’(Course)) 第4章 SQL Server 20__基础 1. 安装SQL Server 20__对硬盘及内存的要求分别是什么? 答:SQL Server 20__实际硬盘空间需求取决于系统配置和您决定安装的功能,一般应确保系统驱动器中是否有至少 6.0 GB 的可用磁盘空间。内存:E_press 版本:最少512 MB;其他版本:最少1 GB。2. SQL Server实例的含义是什么?实例名的作用是什么? 答:一个实例代表一个独立的数据库管理系统。实例名是实例的标识,用户通过“计算机名/实例名”的方式可访问指定的命令实例。3. SQL Server 20__的核心引擎是什么? 答:SQL Server(MSSQLSERVER)4. SQL Server 20__提供的设置服务启动方式的工具是哪个? 答:配置管理器
5. 在SQL Server 20__中,每个数据库至少包含几个文件? 答:2个文件,一个数据文件,一个日志文件 6. SQL Server 20__数据库文件分为几类?每个文件有哪些属性? 答:主要数据文件和次要数据文件,属性有:物理文件名及其位置、逻辑文件名、初始大小、增长方式、最大大小。第 5 章 数据类型及关系表创建 1. Tinyint数据类型定义的数据的取值范围是多少? 答:0-2552. SmallDatatime类型精确到哪个时间单位? 答:分钟3. 定点小数类型numeric中的p和q的含义分别是什么? 答:p代表整数位数+小数位数的和值,q代表小数位数。4. Char(n)、nchar(n)的区别是什么?它们各能存放多少个字符? 答:Char(n)中的n代表能存放n个字节的字符,如果是字母可以存放n个,如果是汉字可存放n/2个。Nchar(n)中的n代表能存放的字符个数。5. Char(n)和varchar(n)的区别是什么?答:Char(n)是定长存储,一定占n个字节的空间。Varchar(n)代表最多占n个字节的空间。6. 数据完整性约束的作用对象有哪些? 答:表和列7. CHECK约束的作用是什么? 答:限制列的取值范围。8. UNIQUE约束的作用是什么? 答:限制列取值不重。9. DEFAULT约束的作用是什么? 答:提供列的默认值。上机练习 1. 在第4章创建的Students数据库中,写出创建如下三张表的SQL语句,要求在定义表的同时定义数据的完整性约束:(1)“图书”表结构如下:书号:统一字符
习题5第5题p148create database 职工_社团
use 职工_社团
create table 职工(
职工号 char(10) primary key,
姓名 char(8),
年龄 smallint default 20,
性别 char(20),
constraint C1 check (性别 in ('男','女')))
create table 社会团体(
编号 char(10) primary key,
名称 char(8),
负责人 char(10),
活动地点 char(20),
constraint C2 foreign key (负责人) references 职工 (职工号))
create table 参加(
职工号 char(10),
编号 char(10),
参加日期 smalldatetime,
constraint C3 primary key (职工号,编号),
constraint C4 foreign key (职工号) references 职工 (职工号),
constraint C5 foreign key (编号) references 社会团体 (编号))
(2)
create view 社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别)
as select 社会团体.编号,社会团体.名称,社会团体.负责人, 职工.职工号,职工.性别
from 职工,社会团体,参加
where 社会团体.编号=参加.编号 and 职工.职工号=参加.职工号
create view 参加人情况(职工号,姓名,社团编号,社团名称,参加日期)
as select 参加.职工号,姓名,社会团体.编号,名称,参加日期
from 职工,社会团体,参加
where 职工.职工号=参加.职工号 and 参加.编号=社会团体.编号
(3)
select distinct 职工.职工号,姓名
from 职工,社会团体,参加
where 职工.职工号=参加.职工号 and 参加.编号=社会团体.编号
and 社会团体.名称 in('歌唱队','篮球队')
(4)
select *
from 职工
where not exists (select *
from 参加
where 参加.职工号=职工.职工号)
(5)
select * from 职工
where not exists
(select *
from 社会团体
where not exists
(select *
from 参加
where 参加.职工号=职工.职工号 and 参加.编号=社会团体.编号))
(6)
select 职工号
from 职工
where not exists (select *
from 参加 参加1
where 参加1.职工号='001'and not exists
(select *
from 参加 参加2
where 参加2.编号=参加1.编号 and 参加2.职工号=职工.职工号))
(7)
select 编号,count(职工号) as 参加人数
from 参加
group by 编号
(8)
select TOP 1 名称,count(*) 参加人数
from 参加,社会团体
where 参加.编号=社会团体.编号
group by 名称
order by 参加人数 desc
(9)
select distinct 社会团体.名称,职工.姓名 as 负责人
from 职工,社会团体,参加
where 社会团体.编号=参加.编号
and 社会团体.负责人=职工.职工号
and 参加.编号 in(select 参加.编号
from 参加
group by 参加.编号 having count(参加.编号)>100)
(10)
grant select,insert,delete on 社会团体 to 李平
with grant option
grant select,insert,delete on 参加 to 李平
with grant option
习题6第9题p212
create database 学生选课
use 学生选课
create table 学生(
学号 char(10) primary key,
姓名 char(10),
性别 char(10),
constraint C1 check (性别 in ('男','女')),
年龄 smallint default 20,
所在系 char(20))
create table 课程(
课程号 char(10) primary key,
课程名 char(20),
先行课 char(20))
create table 选课(
学号 char(10),
课程号 char(10),
成绩 smallint,
constraint D1 primary key (学号,课程号),
constraint D2 foreign key (学号) references 学生(学号),
constraint D3 foreign key (课程号) references 课程(课程号))
create index student_ind on 学生(学号)
create index class_ind on 课程(课程号)
create index select_ind on 选课(学号,课程号)
create rule value_rule as @value in ('男','女')
go
exec sp_bindrule 'value_rule','学生.性别'
go
create default 性别缺省 as '男'
go
exec sp_bindefault '性别缺省','学生.性别'
go
create trigger 选课插入更新 on 选课
for insert,update
as if (select count(*)
from 学生,inserted,课程
where 学生.学号=inserted.学号 and 课程.课程号=inserted.课程号)=0
rollback transaction
go
create trigger delete_all on 学生
for delete
as delete 选课
from 选课,deleted
where 选课.学号=deleted.学号
go
select 所在系,count(学号)as 学生人数
from 学生
group by 所在系
order by 所在系
compute count(所在系),sum(count(学号))
select *
from 学生 inner join 选课 on 学生.学号=选课.学号
go
select *
from 学生 left outer join 选课 on 学生.学号=选课.学号
go
select *
from 学生 right outer join 选课 on 学生.学号=选课.学号
go
select 选课.学号,学生.姓名,
学习情况=case
when avg(成绩)>=85 then '好'
when avg(成绩)>=75 and avg(成绩)<85 then '较好'
when avg(成绩)>=60 and avg(成绩)<75 then '一般'
when avg(成绩)<60 then '较差'
end
from 学生,选课
where 学生.学号=选课.学号
group by 选课.学号,姓名
go
只有这些,不知道用得到吗
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)