1、1数 据 库一 、 判 断 题 :1 采 用 规 范 的 方 法 , 使 分 解 后 的 模 式 属 于 第 二 或 第 三 范 式 , 只 能 保 证 无 损 连 接 , 不 能绝 对 保 持 依 赖 。 ( )2 原 则 上 , 两 个 不 同 的 对 象 所 具 有 的 属 性 值 不 能 相 同 , 但 在 给 定 关 系 中 的 元 组 可 以 是完 全 相 同 的 。 ( )3 概 念 设 计 可 以 独 立 于 数 据 库 管 理 系 统 。 ( )4 执 行 查 询 语 句 时 DBMS 从 数 据 字 典 中 调 出 相 应 的 模 式 描 述 , 并 从 外 模 式 映 像
2、 到 内 模式 , 从 而 确 定 所 需 要 的 物 理 数 据 。 ( )5 在 视 图 中 插 入 一 个 元 组 , 该 元 组 会 同 时 插 入 到 基 本 表 中 。 ( )6 对 象 查 询 语 言 中 , 可 以 用 运 算 符 ELEMENT 从 多 个 元 素 的 聚 集 中 提 取 单 个 元 素 。 ( )7 对 于 表 只 能 有 惟 一 的 主 键 码 , 但 可 有 任 意 数 量 的 UNIQUE 属 性 或 属 性 集 。 ( )8 如 果 一 个 关 系 没 有 一 个 属 性 能 由 所 有 其 他 属 性 函 数 决 定 , 则 该 关 系 根 本 不
3、 存 在 非 平凡 函 数 依 赖 。 ( )9 超 类 可 以 自 动 继 承 子 类 的 所 有 特 性 。 ( )10 两 段 锁 协 议 是 使 并 发 操 作 可 串 行 化 调 度 的 必 要 条 件 。 ( )二 、 简 答 题 :1、 简 述 数 据 库 ( DB) 、 数 据 库 系 统 ( DBS) 、 数 据 库 管 理 系 统 ( DBMS) 三 者 之 间 的 关系 。答 : 数 据 库 ( DB) : 是长期储存在计算机内的、有组织的、可共享的数据集合。数 据 库 系 统 ( DBS) : 是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其
4、开发工具) 、应用系统、数据库管理员构成。数 据 库 管 理 系 统 ( DBMS) : 是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。三 者 间 的 关 系 : DBS 包括 DB 和 DBMS2、DBMS 的主要功能。答:数据定义功能:DBMS 提供数据定义语言(DLL) ,用户通过它可以方便地对数据库中的数据对象进行定义。数据操纵功能:DBMS 向用户提供数据操纵语言(DML)实现对数据库中数据的操作。数据库的运行管理:DBMS 的核心部分,也是 DBMS 对数据库的保护功能。数据库的建立和维护功能:它包括数据库初始数据的输入、转换功能、数据
5、库的转储、恢复功能,数据库的重新组织功能和性能监视、分析功能等。3、为什么数据库系统具有数据与程序的独立性?答:数据与程序的独立,把数据的定义从程序中分离出去,加上存取数据的方法又由 DBMS负责提供,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。数据库管理系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像,正是这两层映像保证了数据库系统中的数据与程序具有较高的逻辑独立性和物理独立性.(数据为管理系统在三级模式之间提供的两级映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性)。当数据库的存储结构改变了,由数据库管理员对各个模式/内模式映像作相应改变
6、,可以使模式保持不变,从而应用程序也不必改变, 保证了数据与程序的物理独立性,简称数据的物理独立性。4、数据模型由哪几部分组成?各部分的功能如何?2答:数据模型包括:数据结构、数据操作和完整性约束。其功能:数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。完整性约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、
7、有效和相容。5、试述数据库系统三级模式结构。答:三级模式结构:是指数据库系统是由外模式、模式和内模式三级构成。模式(Schema)也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。外模式(External Schema)或用户模式,它是用户与数据库的接口,是用户到的那部分数据的逻辑结构和特征的描述,是数据库用户的数据视图。内模式(Internal Schema)也称存储模式(Storage Schema) ,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。6、专门的关系运算符有哪些?各完成什么功能?答:专门的关系运算符有:选择(Selection
8、) 、投影(Projection) 、连接(Join) ,除运算(Division)其各完成功能:选择:又称为限制,它是根据某些条件对关系水平分割,即选取符合给定条件的元组。是在关系 R 中选择满足给定条件的诸元素。投影:投影运算在关系上选择若干属性(列)组成新的关系。是从 R 中选择出若干属性列组成新的关系。连接:也称连接也称为 连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。除运算:R 与 S 的除运算得到一个新的关系 P(X) ,P 是 R 中满足下列条件的元组在 X 属性列上的投影:元组在 X 上分量值 x 的象集 Y
9、x 包含在上投影的集合。7、SQL 语言有几种使用方式,各自在什么情况下使用?答:SQL 语言有两种使用方式:自定义和嵌入式。自定义:作为独立语言,在终端交互方式下使用;嵌入式:能嵌入到高级语言中,供程序员设计程序时使用。8、什么是视图?它有何优点:答:视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个虚表。优点:简化用户操作,能够以多种角度看待同一个数据,对重构数据库提供了一定程度的逻辑独立性,对机密数据提供安全保护,使查询更加清晰。9、已知学生一课程数据库包括三个表:(1)查询年龄在 2023 岁(包括 2
10、0 岁和 30 岁)之间的学生姓名,系别和年龄;SELECT Sname,Sdept,SageFROM StudentWHERE Sage BETWEEN 20 AND 23; (2)查询选修 2 号课程且成绩在 90 分以上的所有学生;SELECT Student.Sno,SnameFROM Student SCWHERE Student.Sno=SC.Sno ANDSC.Cno=2 AND SC.Grade90;(3)查询选修了课程名为“信息系统”的学生学号和姓名;SELECT Sno,Sname FROM StudentWHERE Sno IN(SELECT SnoFROM SC3WHE
11、RE Cno IN (SELECT Cno FROM CourseWHERE Cname=信息系统)(4)查询没有选修 1 号课程的学生姓名。SELECT Sname FROM StudentWHERE NOT EXISTS(SELECT *FROM SCWHERE Sno=Student.Sno AND Cno=1);10、已知学生一课程数据库包括三个表:(1)查询选修了 3 门以上课程的学生学号;SELECT SnoFROM SCGROUP BY SnoHAVING COUNT(*) 3;(2)删除计算机系所有学生的选课记录;Delet From SC WHERE CS=(Select S
12、dept From Student WHERE Student.Sno=SC.Sno);(3)建立信息系学生的视图,并要求进行修改和插入操作时需保证该视图只有信息系的学生;CREATE VIEW IS_Student ASSELECT Sno, Sname, SageFROM StudentWHERE Sdept=ISWITH CHECK OPTION;11、试述规范化的概念及 1NF,2NF,3NF,BCNF 之间有何关系。答:规范化:一个低一级的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合。1NF,2NF,3NF,BCNF 之间关系:1NF2NF 3NF BCNFBCN
13、F 属于 3NF,3NF 属于 2NF,2NF 属于 1NF。BCNF=3NF=2NF=1NF(=为“可以推出” ) ;BCNF 包含于 3NF 包含于 2NF 包含于 1NF12、将一个关系模式由 1NF2NF3NF 的转化过程中分别做了哪些工作?答:1NF2NF 消除非主属性对码的部分函数依赖;2NF3NF 消除非主属性对码的传递函数依赖;3NFBCNF 消除主属性对码的部分和传递函数依赖。BCNF4NF 消除非平凡且非函数依赖的多值依赖。13、试述数据库设计的基本步骤。每个步骤分别完成什么任务?答:需求分析阶段:进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整
14、个设计过程的基础,是最困难、最费时的一步。作为地基的需求分析是否做得充分与准确,决定了在其上构建数据库的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。概念结构设计阶段:概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS 的概念模型。逻辑结构设计阶段:逻辑结构设计是将概念结构转换为某个 DBMS 所支持的数据模型,并4对其进行优化。数据库物理设计阶段:数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。数据库实施阶段:在数据库实施阶段,设计人员运用 DBMS 提供的数据语言及其宿主语言,根
15、据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。数据库运行和维护阶段:数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。14、什么是事务?事务的提交和回滚是何含义?答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。事务的提交:就是提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。事务的回滚:即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状
16、态。15、在 DBMS 中为什么要加入数据库恢复功能?答:尽管数据库系统中采用了各种保护措施来防止数据库的安全性和完整性被破坏,保证并发事务的正确执行,但是计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏仍然是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失。因此要加入数据库恢复功能。16、在登记日志文件时为什么先写日志文件后写数据库?答:把对数据库的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只能完成了一个。如果先写了数据库的修改,而
17、在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写了日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO 操作,并不会影响数据库的正确性。所以为了安全,一定要先写日志文件,然后写数据库的修改。17、为什么要引入具体检查点的恢复技术?答:改善恢复效率。利用日志技术进行数据库恢复时,恢复子系统必须搜索日志,确定哪些事务需要 REDO ,哪些事务需要 uNDO 。一般来说,需要检查所有日志记录。这样做有两个问题:一是搜索整个日志将耗费大量的时间;二是很多需要 REDO 处理的事务实际上已经将它们的更新操作结果写到数据库中了,恢复子系统又重新执行了这些操作,浪费了
18、大量时间。检查点技术就是为了解决这些问题,提高恢复效率。18、有如下关系: S (S# ,NAME ,AGE, SEX, HEIGHT)C (C# ,FORMAT ,TEACHER ,OFFICE)SC (S# ,C#, GRADE)写出下列 SQL 程序:1) 、查询刘老师所教的所有课程的课号和学时1) 、SELECT C# FORMATFROM CWHERE TEACHER=LIU2) 、所有学生的自然情况52) 、SELECT *FROM S19、有如下关系: S (S# ,NAME ,AGE, SEX, HEIGHT)C (C# ,FORMAT ,TEACHER ,OFFICE)SC
19、(S# ,C#, GRADE)写出下列 SQL 程序:要求查询:在本学期任课的全部教师姓名,担任两门课以上的教师只出现一次。SELECT DISTINCT TEACHERFROM C 20、有如下关系: S (S# ,NAME ,AGE, SEX, HEIGHT)C (C# ,FORMAT ,TEACHER ,OFFICE)SC (S# ,C#, GRADE)写出下列 SQL 程序:要求查询:23 岁以上男生的学号和姓名。 SELECT S# NAMEFROM SWHERE AGEY, X 为决定因素。4候选关键字(注:用函数依赖来描述):候选关键字(注:用函数依赖来描述)在关系模式 R(U)
20、中,K 是 U 中的属性或属性组。如果 K- fR,则称 K 为 R(U)的一个候选关键字。5DBMS:DBMS 是为数据库的建立、使用和维护而配置的软件,它是数据库系统的核心组成部分。六、综合题:1、假设学生课程数据库关系模式如下:S(Sno,Sname,Sage,Ssex)C(Cno,Cname,Teacher)SC(Sno,Cno,Grade)用 SQL 语句表达下列查询:(1)找出刘老师所授课程的课程号和课程名;SELECT Cno,CnameFROM CWHERE Teacher LIKE刘 ;(2)找出年龄小于 22 岁的女学生的学号和姓名。SELECT Sno,SnameFROM
21、 SWHERE Sage 22 AND Ssex=F2、用 SQL 的有关语句定义:(1)学生关系 Student,包括学号 Sno、姓名 SN、年龄 SA;CREATE TABLE Student(Sno INT PRIMARY KEYSN CHAR(30) ,SA INT) ;(2)课程关系 Course,包括课程号 Cno、课程名 CN、任课教师 CT;CREATE TABLE Course(Cno INT PRIMARY KEY,CN CNAR(30) ,CT CHAR(30) ) ;(3)学生选课关系 SC,包括 Sno,Cno 和成绩 G。CREATE TABLE SC(Sno I
22、NT,Cno INT,G INT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno) ,FOREIGN KEY(Cno)REFERENCES Course(Cno)) ;3、按题 1 的学生关系模式,用 SQL 的有关语句。12(1)授予赵华对学生关系 Student 的插入和修改权限;GRANT INSERT,UPDATE ON Student TO赵华 ;(2)插入任意 3 个学生的完整信息;INSERT INTO Student(TABLE (01001, 曾红 ,19) ,(01002, 林远 ,18) ,(01003, 徐征 ,20), ) ;(3)修改所有学生的年龄。UPDATE Student SET SASA1;4、结合题 1 定义的学生选课数据库,用 SQL 语句查询学生数据库课程的成绩,输出学生姓名和成绩,按成绩排序(降序) ;若成绩相同,再按学号排序(升序) 。SELECT SN,GFROM Student,Course,SCWHERE Student. SnoSC.Sno AND Course. CnoSC.CnoAND Course. CN=数据库ORDER BY G DESC,Sno;