数据库原理及应用答案 何玉洁
数据库课后部分习题答案(何玉洁版)
P55习题10.CREATE TABLE [Book]([bno] [nchar](6)CONSTRAINT [PK_Book] PRIMARY KEY,[bname] [nvarchar](50)NOT NULL,[author] [char](10)NOT NULL,[date] [smalldatetime],[price] [decimal](5, 1),)CREATE TABLE [Bookshop]([bsno] [nchar](6)CONSTRAINT [PK_Bookshop] PRIMARY KEY,[bsname] [nvarchar](50)NOT NULL,[tel] [char](8) CONSTRAINT [CK_Bookshop_tel]CHECK([tel] like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), [addr] [nvarchar](40),[zip] [char](6),)CREATE TABLE [Booksale]([bno] [nchar](6)NOT NULL,[bsno] [nchar](6)NOT NULL,[date] [smalldatetime] NOT NULL,[amount] [tinyint] CONSTRAINT [CK_Booksale_amount]CHECK([amount]>=1),CONSTRAINT [PK_Booksale] PRIMARY KEY([bno],[bsno],[date]),CONSTRAINT [FK_Booksale_Book] FOREIGN KEY([bno])REFERENCES [Book] ([bno]),CONSTRAINT [FK_Booksale_Bookshop] FOREIGN KEY([bsno]) REFERENCES [Bookshop] ([bsno]),)11. ALTER TABLE Book ADD amount INT CONSTRAINT CK_Book_amountCHECK(amount>=100)12. ALTER TABLE Bookshop DROP COLUMN zip13.ALTER TABLE Booksale ALTER COLUMN amount INTP89习题1.SELECT*FROM SC2.SELECT sname,sage FROM Student3.SELECT*FROM SC WHERE Grade BETWEEN 70 AND 804.SELECT sname,sage FROM Student WHERE sdept='计算机系'AND sage BETWEEN 18AND 205.SELECT MAX(grade)FROM SC WHERE CNO='c01'6.SELECT MAX(sage),MIN(sage)FROM Student WHERE sdept='计算机系'7.SELECT sdept,COUNT(*)FROM Student GROUP BY sdept8.SELECT cno,COUNT(*),MAX(grade)FROM SC GROUP BY cno9.SELECT sno,COUNT(*),SUM(grade)FROM SC GROUP BY sno ORDER BY COUNT(*)10.SELECT sno,SUM(grade)FROM SC GROUP BY sno HAVING SUM(grade)>20011.SELECT sname,sdept FROM Student JOIN SC ON Student.sno=SC.sno WHERE CNO='c01'或:SELECT sname,sdept FROM Student WHERE sno IN(SELECT sno FROM SC WHERE cno='c01')12.SELECT sname,cno,grade FROM Student JOIN SC ON Student.sno=SC.sno WHEREgrade>80 ORDER BY grade DESC13.SELECT Student.sno,sname,sdept FROM Student LEFT JOIN SC ON Student.sno=SC.snoWHERE SC.sno is NULL或:SELECT Student.sno,sname,sdept FROM Student WHERE NOT EXISTS(SELECT*FROM SC WHERE Student.sno=SC.sno )14.SELECT cname,semester FROM Course WHERE semester=(SELECT semester FROMCourse WHERE cname='VB')或:SELECT ame,C2.semester FROM Course C1 JOIN Course C2 ONC1.semester=C2.semester WHERE ame='VB'15.SELECT sname,sdept,sage FROM Student WHERE sage IN(SELECT sage FROM CourseWHERE sname='李勇')16.SELECT TOP 2 sname,sage FROM Student WHERE sdept='计算机系'ORDER BY Sage17.SELECT TOP 2 WITH TIES sname,sdept,grade FROM Student JOIN SC ONStudent.sno=SC.sno JOIN Course ON o=o WHERE cname='VB'ORDER BY grade DESC18.SELECT TOP 2 WITH TIES sno,COUNT(*)FROM SC GROUP BY sno ORDER BYCOUNT(*)DESC19.SELECT TOP1 WITH TIES sdept,COUNT(*)FROM Student GROUP BY sdept ORDERBY COUNT(*)DESC20.子查询1)SELECT sname,sdept FROM Student WHERE sno IN (SELECT sno FROM SCWHERE cno='c01')2)SELECT Student.sno,sname,cno,grade FROM Student JOIN SC ON Student.sno=SC.snoWHERE Student.sno IN(SELECT sno FROM Student WHERE sdept='数学系')AND grade>80或:SELECT Student.sno,sname,cno,grade FROM Student JOIN SC ON Student.sno=SC.snoWHERE sdept='数学系'AND grade>80错误:SELECT Student.sno,sname,cno,grade FROM Student JOIN SC ON Student.sno=SC.snoWHERE sdept='数学系'AND Student.sno IN(SELECT sno FROM SC WHEREgrade>80)或:SELECT Student.sno,sname,cno,grade FROM Student JOIN SC ON Student.sno=SC.snoWHERE Student.sno IN(SELECT sno FROM Student WHERE sdept='数学系')ANDStudent.sno IN(SELECT sno FROM SC WHERE grade>80)3)SELECT sname FROM Student WHERE sno IN(SELECT sno FROM SC WHEREgrade=(SELECT MAX(grade)FROM SC WHERE sno IN(SELECT sno FROM StudentWHERE sdept='计算机系')))4)SELECT sname,sdept,ssex,grade FROM Student JOIN SC ON Student.sno=SC.snoWHERE cno IN(SELECT cno FROM Course WHERE cname='计算机文化学') ANDgrade=(SELECT MAX(grade)FROM SC WHERE cno IN(SELECT cno FROM CourseWHERE cname='计算机文化学'))21.SELECT sname,sdept FROM Student WHERE sno NOT IN(SELECT sno FROM SCWHERE cno=(SELECT cno FROM Course WHERE cname='VB'))或:SELECT sname,sdept FROM Student WHERE NOT EXISTS(SELECT*FROM SC WHERE Student.sno=sno AND cno=(SELECT cno FROM Course WHERE cname='VB'))22.SELECT sname,ssex FROM Student WHERE NOT EXISTS(SELECT*FROM SCWHERE sno=Student.sno)或:SELECT sname,ssex FROM Student LEFT JOIN SC ON Student.sno=SC.sno WHERE cno IS NULL23.SELECT sname,cname FROM Student JOIN SC ON Student.sno=SC.sno JOIN Course ONo=o WHERE Student.sno IN(SELECT TOP 1 WITH TIES Student.sno FROM Student JOIN SC ON Student.sno=SC.sno WHERE sdept='计算机系'GROUP BY Student.sno ORDER BY AVG(grade))24.SELECT cname,semester,credit FROM Course WHERE cno IN(SELECT TOP 1 WITH TIEScno FROM SC WHERE cno IN(SELECT cno FROM Course WHERE semester BETWEEN 1 AND 5)GROUP BY cno ORDER BY COUNT(sno))错误:SELECT cname,semester,credit FROM Course WHERE semester BETWEEN 1 AND 5 AND cno IN(SELECT TOP 1 WITH TIES cno FROM SC GROUP BY cno ORDER BY COUNT(sno))25.CREATE TABLE test_t(COL1 int,COL2 char(10)NOT NULL,COL3 char(10),)INSERT test_t VALUES(NULL,'B1',NULL)INSERT test_t VALUES(1,'B2','C2')INSERT test_t(COL1,COL2)VALUES(2,'B3')26.DELETE FROM SC WHERE grade<5027.DELETE FROM Course WHERE NOT EXISTS(SELECT*FROM SC WHEREo=cno )或:DELETE Course FROM Course LEFT JOIN SC ON o=o WHERE o IS NULL28.DELETE SC FROM Student JOIN SC ON Student.sno=SC.sno JOIN Course ONo=o WHERE sdept='计算机系'AND cname='VB'AND grade<60或:DELETE SC WHERE sno IN(SELECT sno FROM Student WHERE sdept='计算机系')AND cno IN(SELECT cno FROM Course WHERE cname='VB')AND grade<6029.DELETE SC WHERE cno IN(SELECT cno FROM Course WHERE cname='VB')ANDgrade=(SELECT MIN(grade)FROM SC WHERE cno IN(SELECT cno FROM Course WHERE cname='VB'))或:DELETE SC WHERE cno IN(SELECT cno FROM Course WHERE cname='VB')AND sno IN(SELECT TOP 1 WITH TIES sno FROM Course JOIN SC ON o=oWHERE cname='VB'ORDER BY grade)30.UPDATE Course SET credit=credit+2 WHERE semester=231.UPDATE Course SET credit=3 WHERE cname='VB'32.UPDATE Student SET sage=sage+1 WHERE sdept='计算机系'33.UPDATE SC SET grade=grade+5 FROM Student JOIN SC ON Student.sno=SC.sno JOINCourse ON o=o WHERE sdept='信息系'AND cname='计算机文化学'或:UPDATE SC SET grade=grade+5 WHERE sno IN(SELECT sno FROM Student WHERE sdept='信息系')AND cno IN(SELECT cno FROM Course WHERE cname='计算机文化学') 34.UPDATE Course SET credit=credit-1WHERE cno IN(SELECT TOP 1 WITH TIESo FROM Course LEFT JOIN SC ON o=o GROUP BY o ORDER BY COUNT(sno))错误:UPDATE Course SET credit=credit-1 WHERE cno IN(SELECT TOP 1 WITH TIES cnoFROM SC GROUP BY cno ORDER BY COUNT(sno))。
数据库系统教程(何玉洁 李宝安 编著)第3章习题答案
第3章关系数据库习题答案1.试述关系模型的3个组成部分。
关系模型由关系模型的数据结构、关系模型的操作集合和关系模型的完整性约束3部分组成。
2.解释下列术语的含义:●笛卡尔积设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做A与B的笛卡尔积,记作A×B。
●主键也称为主码或主关键字,是表中的属性或属性组,用于唯一地确定一个元组。
主键可由一个属性组成,也可由多个属性共同组成。
●候选键又称为候选码或候选关键字,是关系中能够唯一标识元组且不含有多余属性的一个属性或属性集的值。
一个关系上可有多个候选键。
●关系是笛卡尔积中有一定意义且有限的子集。
通俗讲关系就是二维表,表的名称就是关系的名称,表的每一行对应一个元组,表的每一列对应一个域。
●关系模式即二维表的结构,或者说是二维表的表框架或表头结构。
●关系数据库即对应于一个关系模型的所有关系的集合。
3.关系数据库的3个完整性约束是什么,各是什么含义?实体完整性指关系数据库中所有的表都必须有主键,且表中不允许存在无主键或主键值相同的记录,即主键约束。
参照完整性一般是指多个实体或关系之间的关联关系,即外键约束。
参照完整性规则定义了外键与被参照的主键间的引用规则,要求外键值为空或等于其所参照的关系中的某个元组的主键值。
用户定义的完整性是针对某一具体应用领域定义的数据约束条件,即对表中字段属性的约束,它反映某一具体应用所涉及的数据必须满足应用语义的要求。
通俗讲是指明关系中属性的域,限制关系中属性的取值类型及取值范围,防止属性的值与应用语义矛盾。
4.过程语言与非过程语言有什么区别?非过程语言主要用于基本的数据更新查询处理,过程语言可以编写存储过程,结构相对更复杂。
5.利用表3-11~表3-13所给的3个关系,试用关系代数表达式、Alpha语言完成下列查询:表3-11表3-12表3-131)查询“信息管理系”学生的选课情况,列出学号、姓名、课程号和成绩;∏Sno,Sname,Cno,Grade(σSdept=’信息管理系’(Student⋈Course⋈SC)) 2)查询“VB”课程的考试情况,列出学生姓名、所在系和考试成绩;∏Sname,Sept,Grade(σCname=’VB’(Student⋈Course⋈SC))3)查询考试成绩高于90分的学生的姓名、课程名和成绩;∏Sname,Cname,Grade(σGrade>90(Student⋈Course⋈SC))4)查询至少选修了0821103号学生所选的全部课程的学生的姓名和所在系;∏Sname,Sdept(Student⋈(∏Sno,Cno(SC)÷∏Cno(SC)(σSno=’0821103’(SC))))5)查询至少选了“C001”和“C002”两门课程的学生的姓名、所在系和所选的课程号。
何玉洁新版《数据库原理与应用》-第1章数据库概述
难以满足不同对数据用户的需求
• 不同的用户关注的数据往往不同。 • 例如,对于学生基本信息,
• 分配学生宿舍的部门可能只关心学生 的学号、姓名、性别和班号。 • 教务部门可能关心的是学号、姓名、 所在系、专业和班号。
• 需要为每个用户建立一个文件,这势 必造成很多的数据冗余。
• 增加信息 • 删除无用信息等
• 不影响应用程序的特性。
学生数据库 学生数据库
应用程序
2013年7月14日7时43分
36
示例
应用程序 学号 S01 S02 S03 S04 姓名 张三 李四 王五 陈六 性别 男 女 女 男
学号 S01 S02 S03 S04
姓名 张三 李四 王五 陈六
性别 男 女 女 男
编写应用程序不方便
• 应用程序编写者必须清楚地了解所 用文件的逻辑及物理结构,
• 如文件中包含多少个字段, • 每个字段的数据类型, • 采用何种逻辑结构和物理存储结构。
• 对文件的查询、修改等处理都必须 在应用程序中编程实现。
2013年7月14日7时43分 17
数据冗余不可避免
• 数据冗余所带来的问题不仅仅是存储 空间的浪费,更为严重的是造成了数 据的不一致(inconsistency)。 • 如:某学生所学的专业发生了变化, 如果只在F1文件中进行修改,而忘记 在F3中应做同样的修改。则会造成同 一名学生在两个文件中的“专业”不 一样。
D B M S
2013年7月14日7时43分
28
数据具有较高的独立性
• 数据独立性是指数据的组织和存储方 法与应用程序互不依赖、彼此独立的 特性。
2013年7月14日7时43分
数据库原理与应用 何玉洁编著 上机报告2
学号: 201211041026 姓名:刘畅班级:信息12-1 成绩:上机练习一、实验目的了解SQL Sever 2012 安全管理机制,掌握SQL Sever2012 身份验证模式的创建,以及创建和删除数据库用户。
二、实验环境安装SQL Sever 2012 的计算机一台,且所在计算机用户能完整获取计算机最高权限。
三、实验内容1用SSMS工具建立SQL Sever身份验证模式的登录名:log1、log2和log3。
2利用第10章建立的students数据库以及Students、Course、SC表,用log1建立一个数据库引擎查询,在“可用数据库”下拉列表框中是否能看到并选中students数据库?为什么?3将log1、log2和log3映射为students数据库中的用户,用户名同登录名。
4再次用log1建立一个新的数据库引擎查询,这次在“可用数据库”下拉列表框中是否能看到并选中students数据库?为什么?5用log1用户在students数据库中执行下述语句,能否成功?为什么?SELECT * FROM Course6授予log1具有对Course表的查询权限,授予log2具有对Course表的插入权限。
7在SSMS中,用log2建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么? INSERT INTO Course VALUES(‘C101’ ,’数据库基础’,4,5)再执行下述语句,能否成功?为什么?SELECT * FROM Course8在SSMS中,在log1建立的数据库引擎查询中,再次执行下述语句:SELECT * FROM Course这次能否成功?但如果执行下述语句:INSERT INTO Course VALUES(‘C103’,’软件工程',4,5)能否成功?为什么?9授予log3在students数据库中具有建表权限。
10在students数据库中建立用户定义的角色:SelectRole,并授予该角色对Students、Course和SC表具有查询权。
数据库系统教程(何玉洁_李宝安_编著)第4章习题参考答案
数据库系统教程(何玉洁_李宝安_编著)第4章习题参考答案第4章SQL语言基础及数据定义功能习题答案1.T-SQL支持的数据类型有哪些?数值型、字符串型、日期时间类型、货币类型。
2.SQL语言的特点是什么,具有哪些功能?特点:一体化、高度非过程化、简洁和使用方式多样。
功能:数据定义、数据查询、数据操纵和数据控制。
3.Tinyint数据类型定义的数据的取值范围是多少?0~255的整数。
4.日期时间类型中的日期和时间的输入格式是什么?‘年-月-日时:分:秒’5.SmallDatatime类型精确到哪个时间单位?分钟。
6.定点小数类型numeric中的p和q分别是什么含义?p为精度,指定可以存储的十进制数字的最大个数;q为小数位数,指定小数点右边可以存储的十进制数字的最大个数。
7.货币数据类型精确到小数点后几位?4位。
8.char(10)、nchar(10)的区别是什么,它们各能存放多少个字符,占用多少空间?char是普通字符编码,nchar是统一字符编码。
char(10)可以存放10个字符,占用10个字节空间;nchar(10)也是可以存放10个字符,但占用20个字节空间。
9.char(n)和varchar(n)的区别是什么,其中n是什么含义,各占用多少空间?char(n)是固定长度的字符串类型,varchar(n)是可变长度的字符串类型;n表示字符串的最大长度;char(n)所占的空间固定为n个字节,varchar(n)所占空间最多为n个字节。
10.架构的作用是什么?架构可以存放表、视图等数据库对象。
11.写出定义如下架构的SQL语句:1)为用户“张三”定义一个架构,架构名为“图书”;creat schema Book authorization Zhang San2)为用户“Teaher”定义一个架构,架构名同用户名。
creat schema authorization Teacher12.写出创建表4-11~表4-13所示表结构的SQL语句,要求在定义表的同时定义数据的完整性约束,并将“图书表”定义在“图书”架构中。
数据库原理及应用(何玉洁)-第9章
17
“保存查询”对话框 保存查询” 保存查询
18
2000基础 第9章 SQL Server 2000基础
1
9.1 SQL Server 2000概述 概述
2000共提供了四个服务 共提供了四个服务: SQL Server 2000共提供了四个服务: 1、SQL Server 2000的最核心的服务 的最核心的服务。 是SQL Server 2000的最核心的服务。 2、SQL Server Agent 能够根据系统管理员预先设定好的计划自动执行相 应的功能。 应的功能。 Coordinator(DTC) 3、Distributed Transaction Coordinator(DTC) 分布式事务处理协调器是一个事务管理器 是一个事务管理器, 分布式事务处理协调器是一个事务管理器,在DTC 支持下, 支持下,客户可以在一个事务中访问不同服务器上的数 据库。 据库。 4、Microsoft Search 能够对字符数据进行检索。
7
8
2、查询分析器
SQL查询分析器( Analyaer) SQL查询分析器(Query Analyaer)是一个 查询分析器 图形化的查询工具, 图形化的查询工具,用于以文本的方式编辑 Transact-SQL语句,然后发送给服务器, Transact-SQL语句,然后发送给服务器,并接 语句 受执行的结果。使用这个工具, 受执行的结果。使用这个工具,用户可以交互 地设计和测试Transact-SQL语句、 地设计和测试Transact-SQL语句、批处理和脚 Transact 语句 本。
5
图9-19 连接成功后的企业管理器
6
Server数据库 SQL Server数据库 Master数据库 Master数据库 是一个非常重要的数据库, 是一个非常重要的数据库,记录了一些关于 Server系统相关信息 系统相关信息。 SQL Server系统相关信息。 注意:千万不要在master master数据库中创建用户 注意:千万不要在master数据库中创建用户 的对象 Model数据库 Model数据库 可用来作为创建系统中的所有数据库模板。 可用来作为创建系统中的所有数据库模板。 Msdb数据库 Msdb数据库 用来处理有关SQL Server代理程序内的警 用来处理有关SQL Server代理程序内的警 操作员及作业等工作, 告、操作员及作业等工作,例如当警告发生时通 知哪个操作员等相关记录。 知哪个操作员等相关记录。 Tempdb数据库 Tempdb数据库 包含所有的暂存表格与暂存存储过程。 包含所有的暂存表格与暂存存储过程。
数据库系统教程(何玉洁_李宝安_编著)第5章习题参考答案
第5章数据操作语句习题答案1.查询SC表中的全部数据select * from SC2.查询计算机系学生的姓名和年龄select Sname,Sage from Studentwhere Sdept = '计算机系'3.查询成绩在70~80分的学生的学号、课程号和成绩select Sno,Cno,Grade from SCwhere Grade between 70 and 804.查询计算机系年龄在18~20岁的男学生的姓名和年龄select Sname,Sage from Studentwhere Sdept = '计算机系' and Sage between 18 and 205.查询C001课程的最高分select max(Grade) from SCwhere Cno = 'C001'6.查询计算机系学生的最大年龄和最小年龄select max(Sage),min(Sage) from Studentwhere Sdept = '计算机系'7.统计每个系的学生人数select Sdept,count(*) from Studentgroup by Sdept8.统计每门课程的选课人数和考试最高分select Cno,count(*),max(Grade) from SCgroup by Cno9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果select sno,count(*),sum(Grade) from SCgroup by Snoorder by count(*)10.查询选修C002课程的学生的姓名和所在系select Sname,Sdept from Student S join SCon S.Sno = SC.Snowhere Cno = 'C002'11.查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果select Sname,Cno,Grade from Student S join SCon S.Sno = SC.Snowhere Grade > 80order by Grade DESC12.查询选课门数最多的前2位学生,列出学号和选课门数select top 2 with ties Sno,count(*) from SCgroup by Snoorder by count(*) desc13.查询哪些课程没有学生选修,要求列出课程号和课程名select o,Cname from Course C left join SCon o = owhere o is null14.查询计算机系哪些学生没有选课,列出学生姓名select Sname from Student S left join SCon S.Sno=SC.Snowhere Cno is null15.用子查询实现如下查询:1)查询选修C001课程的学生的姓名和所在系select Sname,Sdept from Studentwhere Sno in (select Sno from SCwhere Cno = 'C001')2)查询通信工程系成绩80分以上的学生的学号和姓名select Sno,Sname from Studentwhere Sno in (select Sno from SCwhere Grade >80)3)查询计算机系考试成绩最高的学生的姓名select Sname from Studentwhere Sdept = '计算机系' and Sno in (select top 1 with ties Sno from SCorder by Grade desc)4)查询年龄最大的男学生的姓名和年龄select Sname,Sage from Studentwhere Ssex = '男' and Sno in(select top 1 with ties Sno from Studentorder by Sage desc)5)查询C001课程的考试成绩高于该课程平均成绩的学生的学号和成绩select Sno,Grade from SCwhere Cno = 'C001' and Grade > (select avg(Grade) from SCwhere Cno = 'C001')16.创建一个新表,表名为test,其结构为(COL1,COL2,COL3),其中:COL1:整形,允许空值COL2:普通编码定长字符类型,长度为10,不允许空值COL3:普通编码定长字符类型,长度为10,允许空值create table test(COL1 int,COL2 char(10) not null,COL3 char(10))insert into test values(NULL,'B1',NUll)insert into test values('1','B2','C2')insert into test values('2','B3',NUll)17.将所有选修C001课程的学生成绩加10分update SC set Grade = Grade +10where Cno = 'C001'18.将计算机系所有选修“计算机文化学”课程的学生的成绩加10分update SC set Grade = Grade +10where Cno in (select Cno from Coursewhere Cname = '计算机文化学')19.删除成绩小于50分的学生的选课记录delete from SCwhere Grade < 5020.删除计算机系VB考试成绩不及格学生的VB选课记录delete from SCwhere Cno= 'C005' and Grade < 60 and Sno in (select Sno from Studentwhere Sdept = '计算机系')21.删除没人选的课程的基本信息delete from Coursewhere Cno in(select o from Course C left join SCon o=owhere o is null)*以上内容仅供参考。
(完整word版)数据库原理与应用教程 何玉洁 五——八章课后习题部分答案
第五章一、试说明使用视图的好处。
答:1、简化数据查询语句2、使用户能从多角度看待同一数据3、提高了数据的安全性4、提供了一定程度的逻辑独立性二、使用视图可以加快数据的查询速度,这句话对吗?为什么?答:不对。
因为数据库管理系统在对视图进行查询时,首先检查要查询的视图是否存在,如果存在,则从数据字典中提取视图的定义,把视图的定义语句对视图语句结合起来,转换成等价的对基本表的查询,然后再执行转换后的查询,所以使用视图不可以加快数据的查询速度。
三、利用第3章建立的Student、Course和SC表,写出创建满足下述要求的视图的SQL语句。
(1)查询学生的学号、姓名、所在系、课程号、课程名、课程学分。
答:CREATE VIEW IS_S_CASSELECT Sno,Sname,Sdept,Cno,Cname,CreditFROM Student S JOIN SC ON S.Sno=SC.SnoJOIN Course C ON o=o四、利用第三题建立的视图,完成如下查询:(1)查询考试成绩大于等于90分的学生的姓名、课程号和成绩。
答:SELECT Sname,Cno,GradeFROM IS_SCWHERE Grade>=90五、修改第三题(4)定义的视图,使其查询每个学生的学号,总学分以及总的选课门数。
答:ALTER VIEW IS_CCASSELECT Sno,COUNT(Credit),COUNT(Cno)FROM SC JOIN Course C ON o=oGROUP BY Sno第六章一、关系规范化中的操作异常有哪些?它是由什么引起的?解决的方法是什么?答:操作异常:数据冗余问题、数据更新问题、数据插入问题和数据删除问题。
它是由关系模式中某些属性之间存在的“不良”的函数依赖关系一起的。
解决的方法是进行模式分解,即把一个关系模式分解成两个或多个关系模式,在分解的过程中消除那些“不良”的函数依赖,从而获得良好的关系模式。
数据库原理及应用(何玉洁)第二版第4章
SELECT Sname, Ssex FROM Student WHERE Sdept = '信息系' OR Sdept = '数学系' OR Sdept = '计算机系'
15
(4)字符匹配 LIKE用于查找指定列名与匹配串常量匹配的
元组。通配符用于表示任意的字符或字符串。在 LIKE运算符前边也可以使用NOT运算符,表示对 结果取反。
SELECT MAX(Grade) , MIN(Grade) FROM SC WHERE Cno='C01'
注意:计算函数不能出现在WHERE子句中。 例:查询年龄最大的学生的姓名,如下写法是 错误的:
SELECT Sname FROM Student WHERE Sage = MAX(Sage)
25
LIKE运算符的一般形式为: 列名 [NOT] LIKE <匹配串>
匹配串中可包含如下四种通配符: _:匹配任意一个字符; %:匹配0个或多个字符; [ ]:匹配[ ]中的任意一个字符; [^ ]:不匹配[ ]中的任意一个字符。
16
例.查询姓‘张’的学生的详细信息。
SELECT * FROM Student WHERE Sname LIKE '张%'
课程号 选课人数
c01
3
C02
4
c04
2
c05
3
c06
2
27
使用HAVING
HAVING子句用于对分组后的结果再进行过滤, 它的功能有点像WHERE子句,但它用于组而不是对 单个记录。在HAVING子句中可以使用计算函数,但 在WHERE子句中则不能。HAVING通常与GROUP BY子 句一起使用。 例.查询修了3门以上课程的学生的学号。
(完整word版)数据库原理与应用教程何玉洁五——八章课后习题部分答案
第五章一、试说明使用视图的好处。
答:1、简化数据查询语句2、使用户能从多角度看待同一数据3、提高了数据的安全性4、提供了一定程度的逻辑独立性二、使用视图可以加快数据的查询速度,这句话对吗?为什么?答:不对。
因为数据库管理系统在对视图进行查询时,首先检查要查询的视图是否存在,如果存在,则从数据字典中提取视图的定义,把视图的定义语句对视图语句结合起来,转换成等价的对基本表的查询,然后再执行转换后的查询,所以使用视图不可以加快数据的查询速度。
三、利用第3章建立的Student、Course和SC表,写出创建满足下述要求的视图的SQL语句。
(1)查询学生的学号、姓名、所在系、课程号、课程名、课程学分。
答:CREATE VIEW IS_S_CASSELECT Sno,Sname,Sdept,Cno,Cname,CreditFROM Student S JOIN SC ON S.Sno=SC.SnoJOIN Course C ON o=o四、利用第三题建立的视图,完成如下查询:(1)查询考试成绩大于等于90分的学生的姓名、课程号和成绩。
答:SELECT Sname,Cno,GradeFROM IS_SCWHERE Grade>=90五、修改第三题(4)定义的视图,使其查询每个学生的学号,总学分以及总的选课门数。
答:ALTER VIEW IS_CCASSELECT Sno,COUNT(Credit),COUNT(Cno)FROM SC JOIN Course C ON o=oGROUP BY Sno第六章一、关系规范化中的操作异常有哪些?它是由什么引起的?解决的方法是什么?答:操作异常:数据冗余问题、数据更新问题、数据插入问题和数据删除问题。
它是由关系模式中某些属性之间存在的“不良”的函数依赖关系一起的。
解决的方法是进行模式分解,即把一个关系模式分解成两个或多个关系模式,在分解的过程中消除那些“不良”的函数依赖,从而获得良好的关系模式。
(完整版)《数据库原理及应用》课后习题参考答案解析
《数据库原理与应用》课后习题参考答案第一章作业参考答案1. 单选题 C C D B C2. 判断题对错错错对3填空题网状模型用户商业智能数据挖掘系统设计4简答题1)数据模型是指描述事物对象的数据组成、数据关系、数据约束的抽象结构及其说明。
数据模型是指描述事物对象的数据组成、数据关系、数据约束的抽象结构及其说明。
数据模型是指描述事物对象的数据组成、数据关系、数据约束的抽象结构及其说明。
3)数据约束:用于描述数据结构中数据之间的语义联系、数据之间的制约和依存关系,以及数据动态变化的规则。
主流数据库采用关系图模型。
数据库典型数据模型:层次数据模型网状数据模型关系数据模型其它数据模型(如对象数据模型、键值对数据模型、列式数据模型。
)2)数据库——是一种依照特定数据模型组织、存储和管理数据的文件,数据库文件一般存放在辅助存储器以便长久保存。
数据库具有如下特点:数据不重复存放;提供给多种应用程序访问;数据结构独立于使用它的应用程序;对数据增、删、改、检索由统一软件进行管理和控制。
3)数据库(Database)是一种依照特定模型组织、存储和管理数据的数据结构。
在数据库中,不仅存放了数据,而且还存放了数据与数据之间的关系。
数据库内部元素:用户表:用户在数据库中创建的数据库表;系统表:数据库中系统自带的数据库表;视图:数据库中用于对数据进行查询的虚拟表;索引:数据库中用于加快数据查询的索引项;约束:数据库中对数据、数据关系施加的规则;存储过程:数据库内部完成特定功能处理的程序;触发器:数据库内部因数据变化自动执行的一类存储过程等等4)数据库系统包括:用户、数据库应用程序、数据库管理系统和数据库四个组成要素。
5)数据库管理系统(Database Manage System,DBMS )——是一种专门用来创建数据库、管理数据库、维护数据库,并提供对数据库访问的系统软件。
数据库管理系统(DBMS)主要功能:创建数据库和表; 创建支持结构,如索引等; 读取数据库数据 ; 修改数据库数据; 维护数据库结构; 执行规则; 并发控制; 提供安全性;执行备份和恢复等等第二章作业参考答案1 单选题 C B D A A2. 判断题对对错对错3填空题全外连接数据约束候选键用户定义完整性4简答题外码键1)在关系模型中,使用“关系”来存储“实体”中的数据。
数据库原理及应用何玉洁第二版
3、联系 实体内部的联系通常是指组成实体的各属
性之间的联系,实体之间的联系通常是指不 同实体之间的联系. 联系是数据之间的关联集合,是客观存在的 应用语义链.联系用菱形框表示,框内写上 联系名,并用连线将联系框与它所关联的实 体连接起来.
12
实体型之间的联系分为三类:
✓一对一联系:如果实体A中
22
网状模型
是用以实体型为结点的有向图来表示各实体 及其之间的联系.特点:
1) 可以有一个以上的结点无父亲. 2) 至少有一个结点有多于一个的父亲. 能表示 M:N 联系. 缺点:编写应用程序复杂,模型结构复杂.
23
A
B
C
D
E
24
学生/选课/课程的网状数据模型
25
一、关系模型的数据结构
关系数据模型源于数学,它用二维表来 组织数据,而这个二维表在关系数据库中 就称为关系.关系数据库就是表或者说是 关系的集合.关系系统要求只让用户所感 觉的数据库就是一张张表.在关系系统中, 表是逻辑结构而不是物理结构.
S
ABC a1 b1 c1 a2 b2 c1 a2 b3 c2
R-S
ABC a1 b1 c2
31
(3)乘积(Cartesian Product)运算 ➢严格地讲应该是广义的笛卡尔积
➢R: n目关系,k1个元组 ➢S: m目关系,k2个元组 ➢R×S
列:(n+m)列元组的集合 元组的前n列是关系R的一个元组 后m列是关系S的一个元组
数据模型.
支持的组织模型
8
2.2 概念层数据模型
一、基本概念
实际上是现实世界到机器世界的一个中间层次. 概念层模型:是指抽象现实系统中有应用价值的
数据库原理及应用(何玉洁)第二版第3章-文档资料
11
用SQL语句创建SC表
列名
Sno Cno Grade XKLB
说明
学号 课程名 成绩 修课类别
sc表结构
数据类型
字符串,长度为7 字符串,长度为10 小整数 字符串,长度为4
约束
主码,引用Student的外码 主码,引用Course的外码
CREATE TABLE SC ( Sno char(7) NOT NULL, Cno char(10) NOT NULL, Grade smallint, XKLB char(4), PRIMARY KEY ( Sno, Cno ), FOREIGN KEY ( Sno ) REFERENCES Student ( Sno ), FOREIGN KEY ( Cno ) REFERENCES Course ( Cno ) )
ALTER TABLE 表名 ADD [ CONSTRAINT 约束名] FOREIGN KEY(<列名>) REFERENCES 引用表名(<列名>)
例3.为雇员表的工作编号添加外码引用约束, 此列引用工作表的工作编号列。
ALTER TABLE 雇员 ADD CONSTRAINT FK_job_id FOREIGN KEY (工作编号) REFERENCES 工作表 (工作编号)
第3章 SQL语言基础及数据定义功能
3.1 基本概念 3.2 SQL的数据类型 3.3 数据定义功能
1
3.1 基本概念
一、SQL语言特点
SQL语言集数据查询、数据操纵、数据 定义和数据控制功能于一身,其主要特点 包括: 一体化 高度非过程化 简洁 以多种方式使用
2
二、 SQL语言功能概述
19
数据库习题答案--何玉洁
第一部分基础理论第1章数据库概述1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
数据:描述事务的符号记录数据库:存储数据的仓库数据库管理系统:用于管理和维护数据的系统软件数据库系统:计算机中引入数据库后的系统,包括数据库,数据库管理系统,应用程序,数据库管理员2.数据管理技术的发展主要经历了哪几个阶段?两个阶段,文件管理和数据库管理3.数据独立性指的是什么?应用程序不因数据的物理表示方式和访问技术改变而改变,分为逻辑独立性和物理独立性。
物理独立性是指当数据的存储结构或存储位置发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。
4.数据库系统由哪几部分组成?由数据库、数据库管理系统、应用程序、数据库管理员组成。
第2章数据模型与数据库系统的结构1.说明实体一联系模型中的实体、属性和联系的概念。
实体是具有公共性质的并可相互区分的现实世界对象的集合。
属性是实体所具有的特征或性质。
联系是实体之间的关联关系。
2.数据库系统包含哪三级模式?试分别说明每一级模式的作用。
外模式、模式和内模式。
外模式:是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同用户对数据的需求,保证数据安全。
模式:是数据库中全体数据的逻辑结构和特征的描述,它满足所有用户对数据的需求。
内模式:是对整个数据库的底层表示,它描述了数据的存储结构。
3.数据库管理系统提供的两级映像的作用是什么?它带来了哪些功能?两级映像是外模式/模式映像和模式/内模式映像。
外模式/模式映像保证了当模式发生变化时可以保证外模式不变,从而使用户的应用程序不需要修改,保证了程序与数据的逻辑独立性。
模式/内模式映像保证了当内模式发生变化,比如存储位置或存储文件名改变,可以保持模式不变,保证了程序与数据的物理独立性。
两级印象保证了应用程序的稳定性。
第3章关系数据库1.试述关系模型的三个组成部分。
数据结构、关系操作集合、关系完整性约束2.解释下列术语的含义:(1)主码当一个关系有多个候选码时,选择一个作为主码(2)候选码当一个属性或属性集的值能够唯一标识一个关系的元组,而又不包含多余的元素,则称该属性或属性集为候选码。
数据库原理及应用答案何玉洁
数据库原理及应用(第2版)习题参考答案第1章数据概述一.选择题1.下列关于数据库管理系统的说法,错误的是 CA.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型 B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现 C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件 D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名2.下列关于用文件管理数据的说法,错误的是 DA.用文件管理数据,难以提供应用程序对数据的独立性B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序C.用文件存储数据的方式难以实现数据访问的安全控制D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数据的效率3.下列说法中,不属于数据库管理系统特征的是 CA.提供了应用程序和数据的独立性B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合C.用户访问数据时,需要知道存储数据的文件的物理信息D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失5.在数据库系统中,数据库管理系统和操作系统之间的关系是 DA.相互调用B.数据库管理系统调用操作系统C.操作系统调用数据库管理系统D.并发运行6.数据库系统的物理独立性是指 DA.不会因为数据的变化而影响应用程序B.不会因为数据存储结构的变化而影响应用程序C.不会因为数据存储策略的变化而影响数据的存储结构D.不会因为数据逻辑结构的变化而影响应用程序7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作系统之间,属于 AA.系统软件 B.工具软件 C.应用软件 D.数据软件8.数据库系统是由若干部分组成的。
下列不属于数据库系统组成部分的是 B A.数据库 B.操作系统 C.应用程序D.数据库管理系统9.下列关于客户/服务器结构和文件服务器结构的描述,错误的是 DA.客户/服务器结构将数据库存储在服务器端,文件服务器结构将数据存储在客户端B.客户/服务器结构返回给客户端的是处理后的结果数据,文件服务器结构返回给客户端的是包含客户所需数据的文件C.客户/服务器结构比文件服务器结构的网络开销小D.客户/服务器结构可以提供数据共享功能,而用文件服务器结构存储的数据不能共享数据库是相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。
数据库原理与应用(何玉洁-梁琦编著)第五章课后习题答案
FROM SC2. SELECT Sname, SageFROM StudentWHERE (Sdept = '计算机系')3. SELECT Sno, Cno, GradeFROM SCWHERE (Grade BETWEEN 70 AND 80)4. SELECT Sname, SageFROM StudentWHERE (Sdept = '计算机系') AND (Ssex = '男')5. SELECT MAX(Grade) AS c01最高成绩FROM SCWHERE (Cno = 'c01')6. SELECT MAX(Sage) AS 最大年龄, MIN(Sage) AS 最小年龄FROM StudentWHERE (Sdept = '计算机系')7. SELECT Sdept, COUNT(*) AS 学生人数FROM StudentGROUP BY Sdept8. SELECT Cno, COUNT(*) AS 选课人数, MAX(Grade) AS 最高分FROM SCGROUP BY Cno9. SELECT Sno, COUNT(*) AS 选课门数, SUM(Grade) AS 总成绩FROM SCGROUP BY SnoORDER BY COUNT(*)10. SELECT Sno, SUM(Grade) AS 总成绩FROM SCGROUP BY SnoHA VING (SUM(Grade) > 200)11. SELECT Sname, SdeptWHERE (Sno IN(SELECT snoFROM scWHERE cno = 'c02'))12. SELECT s.Sname, o, SC.Grade FROM Student s INNER JOINSC ON s.Sno = SC.SnoWHERE (SC.Grade > 80)ORDER BY SC.Grade DESC13. SELECT Sno, Sname, SdeptFROM StudentWHERE (NOT EXISTS(SELECT *FROM scWHERE sc.sno = student.sno))或者 SELECT Sno, Sname, SdeptFROM StudentWHERE (Sno NOT IN(SELECT snoFROM sc))14. SELECT Cname, SemesterFROM CourseWHERE (Semester =(SELECT semesterFROM courseWHERE cname = 'VB'))或者SELECT ame, c2.SemesterFROM Course c1 INNER JOINCourse c2 ON c1.Semester = c2.Semester WHERE (ame = 'VB')15. SELECT s2.Sname, s2.Sdept, s2.Sage FROM Student s1 INNER JOINStudent s2 ON s1.Sage = s2.SageWHERE (s1.Sname = '李勇') AND (s2.Sname <> '李勇')或者SELECT Sname, Sdept, SageFROM StudentWHERE (Sage =(SELECT sageFROM studentWHERE sname = '李勇')) AND (Sname <> '李勇')16. SELECT TOP 2 WITH TIES Sname, SageFROM StudentWHERE (Sdept = '计算机系')ORDER BY Sage17. SELECT Student.Sname, Student.Sdept, SC.GradeFROM Student INNER JOINSC ON Student.Sno = SC.SnoWHERE (SC.Grade IN(SELECT TOP 2 WITH ties gradeFROM scWHERE cno =(SELECT cnoFROM courseWHERE cname = 'VB')ORDER BY grade DESC))或者SELECT TOP 2 WITH TIES Student.Sname, Student.Sdept, SC.Grade FROM Student INNER JOINSC ON Student.Sno = SC.Sno INNER JOINCourse ON o = oWHERE (ame = 'VB')ORDER BY SC.Grade DESC18. SELECT TOP 2 WITH TIES Sno, COUNT(*) AS 选课门数FROM SCGROUP BY SnoORDER BY COUNT(*) DESC19. SELECT TOP 1 WITH TIES Sdept, COUNT(*) AS 学生人数FROM StudentGROUP BY SdeptORDER BY COUNT(*) DESC20. (1)SELECT Sname, SdeptFROM StudentWHERE (Sno IN(SELECT snoFROM scWHERE cno = 'c01'))(2) SELECT Student.Sno, Student.Sname, o, SC.Grade FROM Student INNER JOINSC ON Student.Sno = SC.SnoWHERE (Student.Sno IN(SELECT snoFROM scWHERE grade > 80 AND sno IN(SELECT snoFROM studentWHERE sdept = '数学系')))(3)SELECT Student.SnameFROM Student INNER JOINSC ON Student.Sno = SC.SnoWHERE (SC.Grade =(SELECT MAX(grade)FROM scWHERE sno IN(SELECT snoFROM studentWHERE sdept = '计算机系')))(4)SELECT Student.Sname, Student.Sdept, o, SC.Grade FROM Student INNER JOINSC ON Student.Sno = SC.SnoWHERE (SC.Grade =(SELECT MAX(grade)FROM scWHERE cno =(SELECT cnoFROM courseWHERE cname = '数据结构')))21. SELECT Sname, SdeptFROM StudentWHERE (Sno NOT IN(SELECT snoFROM scWHERE cno =(SELECT cnoFROM courseWHERE cname = 'VB')))22. SELECT Sname, SsexFROM StudentWHERE (Sno NOT IN(SELECT snoFROM sc)) AND (Sdept = '计算机系')或者SELECT Sname, SsexFROM StudentWHERE (NOT EXISTS(SELECT *FROM scWHERE sno = student.sno)) AND (Sdept = '计算机系')23. SELECT Student.Sname, ameFROM Student INNER JOINSC ON Student.Sno = SC.Sno INNER JOINCourse ON o = oWHERE (Student.Sno =(SELECT TOP 1 WITH ties snoFROM scGROUP BY snoHA VING sc.sno IN(SELECT student.snoFROM studentWHERE sdept = '计算机系')ORDER BY A VG(grade) ASC))24. SELECT Cname, Semester, CreditFROM CourseWHERE (Cno IN(SELECT TOP 1 WITH ties cnoFROM scGROUP BY cnoORDER BY COUNT(*) ASC)) AND (Semester BETWEEN 1 AND 5)25. (1)INSERT INTO test_t(COL2)V ALUES ('B1')(2)INSERT INTO test_t(COL1, COL2, COL3)V ALUES (1, 'B2', 'C2')(3)INSERT INTO test_t(COL1, COL2)V ALUES (2, 'B3')26. DELETE FROM SCWHERE (Grade < 50)27. DELETE FROM CourseWHERE (Cno NOT IN(SELECT cnoFROM sc))或者DELETE FROM CourseWHERE (NOT EXISTS(SELECT *FROM scWHERE cno = o))28. DELETE FROM SCWHERE (Grade < 60) AND (Sno IN(SELECT snoFROM studentWHERE sdept = '计算机系')) AND (Cno IN (SELECT cnoFROM courseWHERE cname = 'VB'))29. DELETE FROM SCWHERE (Grade =(SELECT MIN(grade)FROM scWHERE cno =(SELECT cnoFROM courseWHERE cname = 'VB')))30. UPDA TE CourseSET Credit = Credit + 2WHERE (Semester = 2)31. UPDA TE CourseSET Credit = 3WHERE (Cname = 'VB')32. UPDA TE StudentSET Sage = Sage + 1WHERE (Sdept = '计算机系')33. UPDA TE SCSET Grade = Grade + 5WHERE (Sno IN(SELECT snoFROM studentWHERE sdept = '信息系')) AND (Cno IN (SELECT cnoFROM courseWHERE cname = '计算机文化学'))34. UPDA TE CourseSET Credit = Credit - 1WHERE (Cno =(SELECT TOP 1 oFROM scGROUP BY cnoORDER BY COUNT(*)))。
数据库习题答案--何玉洁
第一部分基础理论第1章数据库概述1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
数据:描述事务的符号记录数据库:存储数据的仓库数据库管理系统:用于管理和维护数据的系统软件数据库系统:计算机中引入数据库后的系统,包括数据库,数据库管理系统,应用程序,数据库管理员2.数据管理技术的发展主要经历了哪几个阶段?两个阶段,文件管理和数据库管理3.数据独立性指的是什么?应用程序不因数据的物理表示方式和访问技术改变而改变,分为逻辑独立性和物理独立性。
物理独立性是指当数据的存储结构或存储位置发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。
4.数据库系统由哪几部分组成?由数据库、数据库管理系统、应用程序、数据库管理员组成。
第2章数据模型与数据库系统的结构1.说明实体一联系模型中的实体、属性和联系的概念。
实体是具有公共性质的并可相互区分的现实世界对象的集合。
属性是实体所具有的特征或性质。
联系是实体之间的关联关系。
2.数据库系统包含哪三级模式?试分别说明每一级模式的作用。
外模式、模式和内模式。
外模式:是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同用户对数据的需求,保证数据安全。
模式:是数据库中全体数据的逻辑结构和特征的描述,它满足所有用户对数据的需求。
内模式:是对整个数据库的底层表示,它描述了数据的存储结构。
3.数据库管理系统提供的两级映像的作用是什么?它带来了哪些功能?两级映像是外模式/模式映像和模式/内模式映像。
外模式/模式映像保证了当模式发生变化时可以保证外模式不变,从而使用户的应用程序不需要修改,保证了程序与数据的逻辑独立性。
模式/内模式映像保证了当内模式发生变化,比如存储位置或存储文件名改变,可以保持模式不变,保证了程序与数据的物理独立性。
两级印象保证了应用程序的稳定性。
第3章关系数据库1.试述关系模型的三个组成部分。
数据结构、关系操作集合、关系完整性约束2.解释下列术语的含义:(1)主码当一个关系有多个候选码时,选择一个作为主码(2)候选码当一个属性或属性集的值能够唯一标识一个关系的元组,而又不包含多余的元素,则称该属性或属性集为候选码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库原理及应用(第2版)习题参考答案第1章数据概述一.选择题1.下列关于数据库管理系统的说法,错误的是 CA.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型 B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现 C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件 D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名2.下列关于用文件管理数据的说法,错误的是 DA.用文件管理数据,难以提供应用程序对数据的独立性B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序C.用文件存储数据的方式难以实现数据访问的安全控制D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数据的效率3.下列说法中,不属于数据库管理系统特征的是 CA.提供了应用程序和数据的独立性B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合C.用户访问数据时,需要知道存储数据的文件的物理信息D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失5.在数据库系统中,数据库管理系统和操作系统之间的关系是 DA.相互调用B.数据库管理系统调用操作系统C.操作系统调用数据库管理系统D.并发运行6.数据库系统的物理独立性是指 DA.不会因为数据的变化而影响应用程序B.不会因为数据存储结构的变化而影响应用程序C.不会因为数据存储策略的变化而影响数据的存储结构D.不会因为数据逻辑结构的变化而影响应用程序7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作系统之间,属于 AA.系统软件 B.工具软件 C.应用软件 D.数据软件8.数据库系统是由若干部分组成的。
下列不属于数据库系统组成部分的是 B A.数据库 B.操作系统 C.应用程序D.数据库管理系统9.下列关于客户/服务器结构和文件服务器结构的描述,错误的是 DA.客户/服务器结构将数据库存储在服务器端,文件服务器结构将数据存储在客户端B.客户/服务器结构返回给客户端的是处理后的结果数据,文件服务器结构返回给客户端的是包含客户所需数据的文件C.客户/服务器结构比文件服务器结构的网络开销小D.客户/服务器结构可以提供数据共享功能,而用文件服务器结构存储的数据不能共享数据库是相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。
10.下列关于数据库技术的描述,错误的是 BA.数据库中不但需要保存数据,而且还需要保存数据之间的关联关系B.由于数据是存储在磁盘上的,因此用户在访问数据库数据时需要知道数据的存储位置C.数据库中数据存储结构的变化不会影响到应用程序D.数据库中的数据具有较小的数据冗余二.填空题1.数据管理的发展主要经历了_______和_______两个阶段。
文件管理数据库管理2.在利用数据库技术管理数据时,所有的数据都被_______统一管理。
数据库管理系统3.数据库管理系统提供的两个数据独立性是_______独立性和_______独立性。
物理逻辑4.数据库系统能够保证进入到数据库中的数据都是正确的数据,该特征称为_______。
数据完整性5.在客户/服务器结构中,数据的处理是在________端完成的。
服务器6.数据库系统就是基于数据库的计算机应用系统,它主要由________、________和________三部分组成。
数据库、数据库管理系统和应用程序7.与用数据库技术管理数据相比,文件管理系统的数据共享性________,数据独立性________。
差低8.在数据库技术中,当表达现实世界的信息内容发生变化时,可以保证不影响应用程序,这个特性称为______。
逻辑独立性9.当数据库数据由于机器硬件故障而遭到破坏时,数据库管理系统提供了将数据库恢复到正确状态,并尽可能使数据不丢失的功能,这是数据库管理系统的______特性保证的。
可靠性10.数据库中的数据是相互关联的数据集合,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,且具有安全性和可靠性,这些特征都是由______保证的。
数据库管理系统第2章数据模型与数据库系统结构一.选择题1.数据库三级模式结构的划分,有利于AA. 数据的独立性B. 管理数据库文件C. 建立数据库D. 操作系统管理数据库2.在数据库的三级模式中,描述数据库中全体数据的逻辑结构和特征的是BA.内模式 B.模式 C. 外模式 D. 其他3.数据库系统中将数据分为三个模式,从而提供了数据的独立性,下列关于数据逻辑独立性的说法,正确的是 C A. 当内模式发生变化时,模式可以不变 B. 当内模式发生变化时,应用程序可以不变 C. 当模式发生变化时,应用程序可以不变 D. 当模式发生变化时,内模式可以不变4.为最大限度地保证数据库数据的正确性,关系数据库实现了三个完整性约束,下列用于保证实体完整性的是 B A. 外码 B.主码 C. CHECK约束 D. UNIQUE约束5.下列关于关系中主属性的描述,错误的是 DA. 主码所包含的属性一定是主属性B. 外码所引用的属性一定是主属性C. 候选码所包含的属性都是主属性D. 任何一个主属性都可以唯一地标识表中的一行数据6.设有关系模式销售(顾客号,商品号,销售时间,销售数量),若允许一个顾客在不同时间对同一个产品购买多次,则此关系模式的主码是 DA.顾客号B.产品号C.(顾客号,商品号)D.(顾客号、商品号、销售时间)7.关系数据库用二维表来存储数据。
下列关于关系表中记录的说法,正确的是 BA.顺序很重要,不能交换 B.顺序不重要 C.按输入数据的顺序排列 D.一定是有序的8.下列模式中,用于描述单个用户数据视图的是 CA.内模式 B.概念模式 C.外模式 D.存储模式9.在利用概念层数据模型描述数据时,一般要求模型要满足三个要求。
下列描述中,不属于概念层数据模型应满足的要求的是A A.能够描述并发数据 B.能够真实地模拟现实世界C.容易被业务人员理解 D.能够方便地在计算机上实现10.数据模型三要素是指 BA.数据结构、数据对象和数据共享B.数据结构、数据操作和数据完整性约束C.数据结构、数据操作和数据的安全控制D.数据结构、数据操作和数据的可靠性11.下列关于实体联系模型中联系的说法,错误的是 D A.一个联系可以只与一个实体有关 B.一个联系可以与两个实体有关 C.一个联系可以与多个实体有关D.一个联系也可以不与任何实体有关12.数据库系统中的三级模式以及模式间的映像提供了数据的独立性。
下列关于两级映像的说法,正确的是CA.外模式到模式的映像是由应用程序实现的,模式到内模式的映像是由DBMS实现的 B.外模式到模式的映像是由DBMS实现的,模式到内模式的映像是由应用程序实现的 C.外模式到模式的映像以及模式到内模式的映像都是由DBMS实现的D.外模式到模式的映像以及模式到内模式的映像都是由应用程序实现的13.下列不属于数据完整性约束的是 DA.实体完整性 B.参照完整性C.域完整性 D.数据操作完整性14.下列关于关系操作的说法,正确的是 AA.关系操作是非过程化的B.在进行关系操作时,用户需要知道数据的存储位置C.在进行关系操作时,用户需要知道数据的存储结构D.用户可以在关系上直接进行行定位操作14.下列关于概念层数据模型的说法,错误的是 CA.概念层数据模型应该采用易于用户理解的表达方式 B.概念层数据模型应该比较易于转换成组织层数据模型C.在进行概念层数据模型设计时,需要考虑具体的DBMS的特点 D.在进行概念层数据模型设计时,重点考虑的内容是用户的业务逻辑15.下列关于外码的说法,正确的是 CA.外码必须与其所引用的主码同名 B.外码列不允许有空值C.外码和所引用的主码名字可以不同,但语义必须相同 D.外码的取值必须要与所引用关系中主码的某个值相同16.下列关于关系的说法,错误的是 DA.关系中的每个属性都是不可再分的基本属性 B.关系中不允许出现值完全相同的元组 C.关系中不需要考虑元组的先后顺序D.关系中属性顺序的不同,关系所表达的语义也不同二.填空题1.数据库可以最大限度地保证数据的正确性,这在数据库中被称为______。
数据完整性 2.实体-联系模型主要包含______、______和______三部分内容。
实体属性联系.如果实体A与实体B是一对多联系,则实体B中的一个实例最多可对应实体A中的______实例。
一个4.数据完整性约束包括______完整性、______完整性和______完整性。
实体参照用户定义 5.关系数据模型的组织形式是______。
二维表6.数据库系统的______和______之间的映像,提供了数据的物理独立性。
7.数据的逻辑独立性是指当______变化时可以保持______不变。
内模式模式8.数据模型三要素包括______、______和______。
数据结构数据操作数据完整性约束9.实体联系模型属于______层数据模型,它与具体的DBMS______。
概念无关10.关系操作的特点是基于______的操作。
集合11.当数据的物理存储位置发生变化时,通过调整______映像,可以保证______不变化,从而保证数据的物理独立性。
模式/内模式模式12.参照完整性约束是通过______保证的。
外码第3章 SQL语言基础及数据定义功能一.选择题1.下列关于SQL语言特定的叙述,错误的是 BA.使用SQL语言访问数据库,用户只需提出做什么,而无需描述如何实现 B.SQL语言比较复杂,因此在使用上比较难C.SQL语言可以在数据库管理系统提供的应用程序中执行,也可以在DOS环境下执行 D.使用SQL语言可以完成任何数据库操作2.下列所述功能中,不属于SQL语言功能的是 D A.数据库和表的定义功能 B.数据查询功能 C.数据增、删、改功能 D.提供方便的用户操作界面功能3.设某职工表中有用于存放年龄(整数)的列,下列类型中最合适年龄列的是 C A.int B.smallint C.tinyint D.bit4.SQL Server数据库是由文件组成的。
下列关于数据库所包含的文件的说法,正确的是 D A.一个数据库可包含多个主数据文件和多个日志文件 B.一个数据库只能包含一个主数据文件和一个日志文件C.一个数据库可包含多个次要数据文件,但只能包含一个日志文件 D.一个数据库可包含多个次要数据文件和多个日志文件5.在SQL Server中创建用户数据库,其主数据文件的大小必须大于 B A.master数据库的大小 B.model数据库的大小 C.msdb数据库的大小 D.3MB6.在SQL Server系统数据库中,存放用户数据库公共信息的是 D A.masterB.model C.msdb数据库的大小 D.tempdb7.在SQL Server中创建用户数据库实际就是定义数据库所包含的文件以及文件的属性。