数据库系统原理及应用各章习题 第1章习题 1.1什么是信息?什么是数据?数据和信息有何联系与区别? 1.2数据处理和数据管理有何不同?各包括哪些内容? 1.3什么是数据库和数据库系统?数据库系统在计算机系统中处于哪个层次? 1.4随着计算机技术的发展,你认为未来数据库系统还应具备什么功能? 1.5数据库系统和文件系统有何区别?数据库系统有什么优点? 1.6数据库系统的模式结构如何构成?数据独立性如何保证? 1.7试述客户机/服务器结构的工作原理,客户机/服务器结构有何优缺点? 1.8试述浏览器/服务器结构的工作原理,浏览器/服务器结构有何优缺点? 19数据库管理系统由哪几部分构成,有哪些基本功能? 1.10DBA的主要职责有哪些? 1.11简述数据库系统的工作过程 1.12实现数据库管理系统有哪些方案?各方案有何优缺点? 第2章习题 2.1名词解释 实体、属性、码、实体集、实体型、域、主码、元组、关系模式、概念模型、数据模型、 类、对象、实例、继承 22一种产品由多种零件组成,画出产品零件的概念模型 23递归联系和多元联系如何处理 24学校有若干系,每个系有若干班级和教职室,每个教职室有若干教员,其中有的教 授和副教授各带若干研究生,每个班级有若干学生,每个学生选修若干课程,每门课程可由 若干学生选修,试用ER图画出该校的概念模型。 2.5在物资管理中,一个供应商为多个项目供应多种零件,一种零件只能保存在一个仓 库中,一个仓库中可保存多种零件,一个仓库有多名员工值班,由一个员工负责管理画出 该物资管理系统的ER图 2.6在活期存款业务中,设一个储户可在多个储蓄所存取款,画出该ER图 27在课程管理系统中,涉及到班级,学生,课程,教师,参考书等实体,假设,一个 教师只可上一门课程,一门课程可由多个教师讲授,可使用多本参考书,画出该系统的概念 模型 2.8简述数据模型的构成。 29简述层次数据模型的结构特点及优缺点 2.10简述网状数据模型的结构特点及优缺点 211简述关系数据模型的结构特点及优缺点。 212简述如何将ER模型转化为关系模式
数据库系统原理及应用各章习题 第 1 章 习题 1.1 什么是信息?什么是数据?数据和信息有何联系与区别? 1.2 数据处理和数据管理有何不同?各包括哪些内容? 1.3 什么是数据库和数据库系统?数据库系统在计算机系统中处于哪个层次? 1.4 随着计算机技术的发展,你认为未来数据库系统还应具备什么功能? 1.5 数据库系统和文件系统有何区别?数据库系统有什么优点? 1.6 数据库系统的模式结构如何构成?数据独立性如何保证? 1.7 试述客户机/服务器结构的工作原理,客户机/服务器结构有何优缺点? 1.8 试述浏览器/服务器结构的工作原理,浏览器/服务器结构有何优缺点? 1.9 数据库管理系统由哪几部分构成,有哪些基本功能? 1.10 DBA 的主要职责有哪些? 1.11 简述数据库系统的工作过程。 1.12 实现数据库管理系统有哪些方案?各方案有何优缺点? 第 2 章 习题 2.1 名词解释 实体、属性、码、实体集、实体型、域、主码、元组、关系模式、概念模型、数据模型、 类、对象、实例、继承。 2.2 一种产品由多种零件组成,画出产品零件的概念模型。 2.3 递归联系和多元联系如何处理? 2.4 学校有若干系,每个系有若干班级和教职室,每个教职室有若干教员,其中有的教 授和副教授各带若干研究生,每个班级有若干学生,每个学生选修若干课程,每门课程可由 若干学生选修,试用 ER 图画出该校的概念模型。 2.5 在物资管理中,一个供应商为多个项目供应多种零件,一种零件只能保存在一个仓 库中,一个仓库中可保存多种零件,一个仓库有多名员工值班,由一个员工负责管理.画出 该物资管理系统的 ER 图。 2.6 在活期存款业务中,设一个储户可在多个储蓄所存取款,画出该 ER 图。 2.7 在课程管理系统中,涉及到班级,学生,课程,教师,参考书等实体,假设,一个 教师只可上一门课程,一门课程可由多个教师讲授,可使用多本参考书,画出该系统的概念 模型。 2.8 简述数据模型的构成。 2.9 简述层次数据模型的结构特点及优缺点。 2.10 简述网状数据模型的结构特点及优缺点。 2.11 简述关系数据模型的结构特点及优缺点。 2.12 简述如何将 ER 模型转化为关系模式
2.13简述关系数据模型的完整性规则 214简述面向对象数据模型的结构特点及优缺点。 2.15用 Bachman表示图231所示学生选修课程所得成绩情况。 成绩 学生 课程 850676 03 Cl 85 50652 90 C2 850027 88 C4 88 图2.31学生选修课程成绩 第3章习题 3.1解释下列概念,并说明它们之间的联系与区别 (1)超键、主码,候选码,外部码 (2)关系、元组、属性、域 (3)关系模式、关系模型、关系实例、关系数据库 (4)实体完整性规则参照完整性规则 (5)笛卡儿积、等值联接、自然联接 3.2关系模型的完整性规则有哪几类? 3.3在关系模型的参照完整性规则中,为什么外码的值可以为空?什么情况下才可以为 3.4常用的关系数据语言有哪几种? 3.5为什么关系中的元组没有先后顺序? 3.6为什么关系中不允许有重复元组? 3.7关系与普通表格、文件有什么区别? 3.8简述关系的性质 3.9等值连按与自然连接的区别是什么? 3.10关系代数的基本运算有哪些?如何用这些基本运算来表示其他的关系基本运算? 3.11什么是关系运算的安全限制? 3.12关系代数表达式优化的一般策略有哪些? 3.13简述无限关系、无穷验证有什么区别? 3.14设有关系R和S
2.13 简述关系数据模型的完整性规则。 2.14 简述面向对象数据模型的结构特点及优缺点。。 2.15 用 Bachman 表示图 2.31 所示学生选修课程所得成绩情况。 图 2.31 学生选修课程成绩 第 3 章 习题 3.1 解释下列概念,并说明它们之间的联系与区别: (1) 超键、主码,候选码,外部码 (2) 关系、元组、属性、域 (3) 关系模式、关系模型、关系实例、关系数据库 (4) 实体完整性规则 参照完整性规则 (5) 笛卡儿积、等值联接、自然联接 3.2 关系模型的完整性规则有哪几类? 3.3 在关系模型的参照完整性规则中,为什么外码的值可以为空?什么情况下才可以为 空? 3.4 常用的关系数据语言有哪几种? 3.5 为什么关系中的元组没有先后顺序? 3.6 为什么关系中不允许有重复元组? 3.7 关系与普通表格、文件有什么区别? 3.8 简述关系的性质。 3.9 等值连按与自然连接的区别是什么? 3.10 关系代数的基本运算有哪些?如何用这些基本运算来表示其他的关系基本运算? 3.11 什么是关系运算的安全限制? 3.12 关系代数表达式优化的一般策略有哪些? 3.13 简述无限关系、无穷验证有什么区别? 3.14 设有关系 R 和 S。 R S A B C A B C
267 5265 3635 634 计算RUS,R-S,R∩S,R×S,II3,2(R),8B4(R),RS 3.15有三个关系,试用关系代数表达式表示下列查询语句 S(sno, sname, age, sex, sdept) C(cno, cname, cdept, tname) tname表示授课老师名 sho, cno, gra (1)检索年龄小于22岁的男学生的学号与姓名。 索学号为S3学生所学课程的课程名与任课教师名 索 JIANG老师所授课程的课程号、课程名 (4)检索至少选修 JIANG老师所授课程中一门课的男学生姓名。 (5)检索 ZHNAG同学不学的课程的课程号。 (6)检索全部学生都选修的课程的课程号、课程名 (⑦)检索选修课程包含JANG老师所授课程的学生学号。 (8)检索至少选修两门课程的学生学号 3.16试用元组表达式表示题3.15的各个查询语句。 3.17试用域表达式表示题3.15的各个查询语句。 3.18为什么要对关系代数表达式进行优化 3.19设有下列四个关系模式 S(SNO, SNAME, CITY) P(PNO, PNAME, COLOR, WEIGHT) J CNO, JNAME, CITY SPJ(SNO, PNO, JNO, QTY) 其中,供应商关系S由供应商号(SNO)、供应商姓名( SNAME)、供应商所在城市(CITY) 组成。零件关系P由零件号(PNO)、零件名称(PNAM)、零件颜色( COLOR)、零件重量( WEIGHT) 组成,用于记录各种零件的情况。项目关系J由项目号(N0)、项目名称( NAME)、项目所在 城市(CITY)组成。供应情况关系SPJ由供应商号(SNO)、零件号(PNO)、项目号(JNO)、供应 数量(QTY)组成。完成以下操作 (1)检索供应项目J2零件的供应商号(SNO)。 (2)检索供应项目J2零件P2的供应商号(SNO) (3)检索供应项目J2黑色零件的供应商姓名( SNAME)
5 3 2 2 6 7 2 6 7 6 3 4 6 3 4 5 5 2 计算 R∪S,R-S,R∩S,R×S,∏3,2(R),δB<4(R),R S。 3.15 有三个关系,试用关系代数表达式表示下列查询语句: S(sno,sname,age,sex,sdept) C(cno,cname,cdept,tname) tname 表示授课老师名 SC(sno,cno,grade) (1) 检索年龄小于 22 岁的男学生的学号与姓名。 (2) 检索学号为 S3 学生所学课程的课程名与任课教师名。 (3) 检索 JIANG 老师所授课程的课程号、课程名。 (4) 检索至少选修 JIANG 老师所授课程中一门课的男学生姓名。 (5) 检索 ZHNAG 同学不学的课程的课程号。 (6) 检索全部学生都选修的课程的课程号、课程名。 (7) 检索选修课程包含 JIANG 老师所授课程的学生学号。 (8) 检索至少选修两门课程的学生学号。 3.16 试用元组表达式表示题 3.15 的各个查询语句。 3.17 试用域表达式表示题 3.15 的各个查询语句。 3.18 为什么要对关系代数表达式进行优化? 3.19 设有下列四个关系模式: S (SNO, SNAME, CITY); P (PNO, PNAME, COLOR, WEIGHT); J (JNO, JNAME, CITY); SPJ(SNO, PNO, JNO, QTY)。 其中,供应商关系 S 由供应商号(SNO)、供应商姓名(SNAME)、供应商所在城市(CITY) 组成。零件关系 P 由零件号(PNO)、零件名称(PNAME)、零件颜色(COLOR)、零件重量(WEIGHT) 组成,用于记录各种零件的情况。项目关系 J 由项目号(JNO)、项目名称(JNAME)、项目所在 城市(CITY) 组成。供应情况关系 SPJ 由供应商号(SNO)、零件号(PNO)、项目号(JNO)、供应 数量(QTY) 组成。完成以下操作: (1) 检索供应项目 J2 零件的供应商号(SNO)。 (2) 检索供应项目 J2 零件 P2 的供应商号(SNO)。 (3) 检索供应项目 J2 黑色零件的供应商姓名(SNAME)
(4)检索没有使用天津供应商生产的黑色零件的项目号(JNO) (5)检索使用了S1供应所供应的全部零件的项目名称( UNAME)。 3.20对 student, course,scg三个关系,完成以下查询: (1)查询至少选修了2号课程和8号课程的学生姓名。 (2)查询张红的年龄。 (3)查询李明同学不及格的课程名称。 (4)查询选修了“计算机网络”的学生姓名 (5)查询“计算机网络”成绩在90分以上的学生姓名 第4章习题 4.1名词解释 SαL模式基本表视图实表虚表相关子查询联接查询嵌套查询交 互式SQL嵌人式SQL共享变量游标滚动游标 42什么是数据库语言? 数据库语言是DBMS提供的用户界面(接口),是用户和数据库管理员用以完成数据的 定义、查询、更新和控制的主要工具。不同的数据模型对应不同的数据库语言。 43SQL语言分为哪几类?有哪些主要功能?有何特点? 44视图有什么作用?哪些视图是不能更新的? 45如何在嵌入式SQL与主语言的通信? 46什么是游标?有何作用?如何使有游标? 47什么是授权粒度?不同的数据对象有哪些权限? 48对 student、 course、scg三个表用SQL完成以下操作: tudent( sno, sname, age, sex, sdept) course(cno, cname, pco, ccredit, cdept, tname no,grade 1.创建关系表stul(sno, sname,sex, birth, sdept) 2.对 student按姓名建立索引 3.查询信息系所有年龄不大于21岁的女生 4.查询1982年出生的男生的姓名。 5.查询信息系、金融系所有姓“王”的同学的姓名和年龄。 6.查询姓“王”的男同学的人数 7.查询2号课程的最低分。 8.查询总分最高的学生的学号。 9.查询每个同学的平均分。 10.查询每个同学所选修的课程门数。 11.查询“计算机网络”90分以上的同学的姓名。 12.査询每门课程的课程名及选修人数
(4) 检索没有使用天津供应商生产的黑色零件的项目号(JNO)。 (5) 检索使用了 S1 供应所供应的全部零件的项目名称(JNAME)。 3.20 对 student,course,scg 三个关系,完成以下查询: (1) 查询至少选修了2号课程和8号课程的学生姓名。 (2) 查询张红的年龄。 (3) 查询李明同学不及格的课程名称。 (4) 查询选修了“计算机网络”的学生姓名。 (5) 查询“计算机网络”成绩在90分以上的学生姓名。 第 4 章 习题 4.1 名词解释 SQL 模式 基本表 视图 实表 虚表 相关子查询 联接查询 嵌套查询 交 互式 SQL 嵌人式 SQL 共享变量 游标 滚动游标 4.2 什么是数据库语言? 数据库语言是 DBMS 提供的用户界面(接口),是用户和数据库管理员用以完成数据的 定义、查询、更新和控制的主要工具。不同的数据模型对应不同的数据库语言。 4.3 SQL 语言分为哪几类?有哪些主要功能?有何特点? 4.4 视图有什么作用?哪些视图是不能更新的? 4.5 如何在嵌入式 SQL 与主语言的通信? 4.6 什么是游标?有何作用?如何使有游标? 4.7 什么是授权粒度?不同的数据对象有哪些权限? 4.8 对 student、course、scg 三个表用 SQL 完成以下操作: student(sno,sname,age,sex,sdept) course(cno,cname,pcno,ccredit,cdept,tname) scg(sno,cno,grade) 1.创建关系表 stu1(sno,sname,ssex,sbirth,sdept)。 2.对 student 按姓名建立索引。 3.查询信息系所有年龄不大于 21 岁的女生。 4.查询 1982 年出生的男生的姓名。 5.查询信息系、金融系所有姓“王”的同学的姓名和年龄。 6.查询姓“王”的男同学的人数。 7.查询 2 号课程的最低分。 8.查询总分最高的学生的学号。 9.查询每个同学的平均分。 10.查询每个同学所选修的课程门数。 11.查询“计算机网络”90 分以上的同学的姓名。 12.查询每门课程的课程名及选修人数
13.查询选修了全部课程的学生姓名 14.查询总学分已超过40学分的学生学号、姓名、总学分 15.查询至少选修了学生“20021710233”选修的全部课程的学生姓名 16.查询其他系中比“cs”系任一学生年龄都小的学生名单。 17.查询每一个同学的学号、姓名、选修的课程名及分数 8.查询信息系学生或年龄小于20岁的学生 19.查询信息系学生与年龄小于20岁学生的交集。 20.查询信息系学生与年龄小于20岁学生的差集 21.向 student增一新生(“20021710146”,“王飞”,“男”,12/22/1985,“is”) 22.删除“李军”同学的所有信息 23.为信息系所有男生建一视图 Vs Ism 24.利用视图 vs Ism查询信息系“王强”同学。 25.查询年龄在25-30之间的学生姓名及性别。 SELECT Sname, ssex FRom student WheRe sbirth BETween 25 AND 30 6.查询姓“欧阳”的学生。 SELECT* FROM student Where sname like‘欧阳% 27.查询信息系is,数学系ma和计算机系cs的学生。 SELECT* FROM student WhERE sdept IN (is', ma',cS) 28.检索蒋炎焱老师所授课程的课程号和课程名。 29.检索年龄大于23岁的男学生的学号和姓名。 30.检索至少选修蒋炎焱老师所授课程中一门课程的女学生姓名。 31.检索wang同学不学的课程的课程号 32.检索至少选修两门课程的学生学号 33.检索全部学生都选修的课程的课程号与课程名。 4.检索选修课程包含蒋炎焱老师所授课程的学生学号。 35.统计有学生选修的课程门数。 6.求选修5号课程的学生的平均年龄 37.求蒋炎焱老师讲授的每门课程的学生平均成绩。 38.统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修 人数,査询结果按人数降序排列,若人数相同,按课程号升序排列。 39.检索学号比wang同学大,而年龄比他小的学生姓名 40.检索姓名以wang打头的所有学生的姓名和年龄 41.在seg中检索成绩为空值的学生学号和课程号 42.求年龄大于女同学平均年龄的男学生姓名和年龄 43.求年龄大于所有女同学年龄的男学生姓名和年龄。 44.在基本表 student中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别, 并把检索到的值送往另一个己存在的基本表 student2(sno, sname,sex) 45.在基本表seg中删除尚无成绩的选课元组
13.查询选修了全部课程的学生姓名。 14.查询总学分已超过 40 学分的学生学号、姓名、总学分。 15.查询至少选修了学生“20021710233”选修的全部课程的学生姓名。 16.查询其他系中比“cs”系任一学生年龄都小的学生名单。 17.查询每一个同学的学号、姓名、选修的课程名及分数。 18.查询信息系学生或年龄小于 20 岁的学生。 19.查询信息系学生与年龄小于 20 岁学生的交集。 20.查询信息系学生与年龄小于 20 岁学生的差集。 21.向 student 增一新生(“20021710146”,“王飞”,“男”,12/22/1985,“is”) 22.删除“李军”同学的所有信息。 23.为信息系所有男生建一视图 vs_ism。 24.利用视图 vs_ism 查询信息系“王强”同学。 25.查询年龄在 25-30 之间的学生姓名及性别。 SELECT sname,ssex FROM student WHERE sbirth BETWEEN 25 AND 30; 26.查询姓“欧阳”的学生 。 SELECT * FROM student WHERE sname like ‘欧阳%’; 27.查询信息系 is,数学系 ma 和计算机系 cs 的学生。 SELECT * FROM student WHERE sdept IN (‘is’,’ma’,’cs’); 28.检索蒋炎焱老师所授课程的课程号和课程名。 29.检索年龄大于 23 岁的男学生的学号和姓名。 30.检索至少选修蒋炎焱老师所授课程中一门课程的女学生姓名。 31.检索 wang 同学不学的课程的课程号。 32.检索至少选修两门课程的学生学号。 33.检索全部学生都选修的课程的课程号与课程名。 34.检索选修课程包含蒋炎焱老师所授课程的学生学号。 35.统计有学生选修的课程门数。 36.求选修 5 号课程的学生的平均年龄。 37.求蒋炎焱老师讲授的每门课程的学生平均成绩。 38.统计每门课程的学生选修人数(超过 10 人的课程才统计)。要求输出课程号和选修 人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。 39.检索学号比 wang 同学大,而年龄比他小的学生姓名。 40.检索姓名以 wang 打头的所有学生的姓名和年龄。 41.在 scg 中检索成绩为空值的学生学号和课程号。 42.求年龄大于女同学平均年龄的男学生姓名和年龄。 43.求年龄大于所有女同学年龄的男学生姓名和年龄。 44.在基本表 student 中检索每一门课程成绩都大于等于 80 分的学生学号、姓名和性别, 并把检索到的值送往另一个已存在的基本表 student2(sno,sname,sex)。 45.在基本表 scg 中删除尚无成绩的选课元组
46.把wang同学的选课和成绩全部删去。 47.把选修 maths课不及格的成绩全改为空值, 48.把低于总平均成绩的女同学成绩提高5%。 49.在基本表seg中修改3号课程的成绩,若成绩小于等于75分时提高5%,若成绩大 于75分时提高4%(用两个 UPDATE语句实现)。 50.将修改成绩的权限授用户“JYY”。 410设有两个基木表R(a,b,c)和S(d,e,f,试用SQL查询语句表达下列关系代数 表达式 (2)6b=17(R) (3)R×S (4)Ⅱa,f(6c=d(R×S) 411设有两个基本表R(a,b,c)和S(a,b,c),试用SQL查询语句表达下列关系代数 表达式: (RUS (2)R∩s (3)R一S (4)IIa, f(R)D< IIb. d(S) 412试叙述SQL语言的关系代数特点和元组演算特点。 413假设工程一零件数据库中有五个基本表: 供应商 supplier(供应商号,姓名,所在城市,联系电话 工程 project(工程号,工程名,负责人,预算,日期) 零件pa(零件号,零件名,规格,产地,颜色) 工程零件pp(工程号,零件号,数量) 采购p_s(零件号,供应商号,数量) 试用SQL语句完成下列操作: 1.试用 SQLDDL语句定义上述五个基本表,并说明主键和外键。 2.查找预算在500010000元之间的工程的信息,并将结果按预算降序排列。 3.找出使用供应商si所供零件的工程号 4.找出工程项目j2使用的各种零件名称及其数量。 5.找出上海厂商供应的所有零件号。 6.找出使用上海产的零件的工程名称 7.找出没有使用天津产零件的工程号 8.把全部红色零件的颜色改成蓝色 9.将由供应商s5供给工程号为y4的零件p改为由s3供应,并作其他必要的修改。 10.从供应商关系中删除s2的记录,并从工程零件关系中删除相应的记录。 11.找出天津市供应商的姓名和电话。 12.试将 project、pp、part三个基本表的自然联接定义为一个视图VW1,将pat
46.把 wang 同学的选课和成绩全部删去。 47.把选修 maths 课不及格的成绩全改为空值。 48.把低于总平均成绩的女同学成绩提高 5%。 49.在基本表 scg 中修改 3 号课程的成绩,若成绩小于等于 75 分时提高 5%,若成绩大 于 75 分时提高 4%(用两个 UPDATE 语句实现)。 50. 将修改成绩的权限授用户“JYY”。 4.10 设有两个基木表 R(a,b,c)和 S(d,e,f),试用 SQL 查询语句表达下列关系代数 表达式: (1) Пa(R) (2) δb=‘17’(R) (3) R×S (4)Пa,f(δc=d(R×S)) 4.11 设有两个基本表 R(a,b,c)和 S(a,b,c),试用 SQL 查询语句表达下列关系代数 表达式: (1) R∪S (2) R∩S (3) R 一 S (4) Пa,f(R) Пb,c(S) 4.12 试叙述 SQL 语言的关系代数特点和元组演算特点。 4.13 假设工程一零件数据库中有五个基本表: 供应商 supplier (供应商号,姓名,所在城市,联系电话) 工程 project (工程号,工程名,负责人,预算,日期) 零件 part (零件号,零件名,规格,产地,颜色); 工程零件 p_p (工程号,零件号,数量) 采购 p_s(零件号,供应商号,数量) 试用 SQL 语句完成下列操作: 1.试用 SQLDDL 语句定义上述五个基本表,并说明主键和外键。 2. 查找预算在 5000-10000 元之间的工程的信息,并将结果按预算降序排列。 3. 找出使用供应商 si 所供零件的工程号。 4. 找出工程项目 j2 使用的各种零件名称及其数量。 5. 找出上海厂商供应的所有零件号。 6. 找出使用上海产的零件的工程名称。 7. 找出没有使用天津产零件的工程号。 8. 把全部红色零件的颜色改成蓝色。 9. 将由供应商 s5 供给工程号为 j4 的零件 p6 改为由 s3 供应,并作其他必要的修改。 10.从供应商关系中删除 s2 的记录,并从工程零件关系中删除相应的记录。 11. 找出天津市供应商的姓名和电话。 12.试将 project、p_p、part 三个基本表的自然联接定义为一个视图 VIEW1,将 part
ps、 supplier三个基本表的自然联接定义为一个视图ⅤIEW2。 13.在上述两个视图的基础上,检索上海的供应商所供应的零件的编号和名字。 14.在上述两个视图的基础上,检索项目所用零件的供应商编号和名字。 414对于教学数据库中基本表scg,已建立下列视图: CREATE VIEW s grade(s, c num, AVG grade) SELECT Sno, COUNT(cno), AVG(grade) FROM SC GROUP BY sno 试判断下列查询和更新是否允许执行。若允许,写出转换到基本表scg上的相应操作 1. SELECT* FROM s grade 2. SELECT sno, c num FROM S grade whhere Avg grade>80 3. SELECT sno, AVG grad FROMS grade WHERE c num >(SELECT c num FROM S grade 4. UPDATE S grade set c num=c num+ WHERE Sno=s4 5. DELETE FROM s grade WHERE C num>4 416预处理方式对于嵌入式SQL的实现有什么重要意义? 417在宿主语言的程序中使用SQL语句有哪些规定? 4l8SQL的集合处理方式与宿主语言单记录处理方式之间如何协调? 419嵌人式SQL的DML语句何时不必涉及到游标?何时必须涉及到游标 420设职工一社团数据库有三个基本表: 职工(职工号,姓名,年龄,性别) 社会团体(社团号,名称,负责人,活动地点) 参加(职工号,社团号,参加日期) 其中 (1)职工表的主码为职工号。 (2)社会团体表的主码为社团号:外码为负责人,被参照表为职工表,对应属性为职 工号 (3)参加表的职工号和社团号为主码:职工号为外码,其被参照表为职工表,对应属性 为职工号:社团号为外码,其被参照表为社会团体表,对应属性为社团号
p_s、supplier 三个基本表的自然联接定义为一个视图 VIEW2。 13.在上述两个视图的基础上,检索上海的供应商所供应的零件的编号和名字。 14.在上述两个视图的基础上,检索项目所用零件的供应商编号和名字。 4.14 对于教学数据库中基本表 scg,已建立下列视图: CREATE VIEW s_grade(s,c_num,AVG_grade) AS SELECT sno,COUNT(cno),AVG(grade) FROM sc GROUP BY sno; 试判断下列查询和更新是否允许执行。若允许,写出转换到基本表 scg 上的相应操作: 1. SELECT * FROM s_grade 2. SELECT sno,c_num FROM s_grade whhereAVG_grade>80; 3. SELECT sno,AVG_grade FROM s_grade WHERE c_num >(SELECT c_num FROM s_grade sno='s4') 4. UPDATE s.grade set c_num=c_num+1 WHERE sno='s4'; 5. DELETE FROM s_grade WHERE c_num>4; 4.16 预处理方式对于嵌入式 SQL 的实现有什么重要意义? 4.17 在宿主语言的程序中使用 SQL 语句有哪些规定? 4.18 SQL 的集合处理方式与宿主语言单记录处理方式之间如何协调? 4.19 嵌人式 SQL 的 DML 语句何时不必涉及到游标?何时必须涉及到游标? 4.20 设职工一社团数据库有三个基本表: 职工(职工号,姓名,年龄,性别); 社会团体(社团号,名称,负责人,活动地点) 参加(职工号,社团号,参加日期) 其中: (1)职工表的主码为职工号。 (2)社会团体表的主码为社团号;外码为负责人,被参照表为职工表,对应属性为职 工号。 (3)参加表的职工号和社团号为主码;职工号为外码,其被参照表为职工表,对应属性 为职工号;社团号为外码,其被参照表为社会团体表,对应属性为社团号
试用SQL语句表达下列操作: 1.定义职工表、社会团体表和参加表,并说明其主码和参照关系。 2.建立下列两个视图 社团负责人(社团号,名称,负责人职工号,负责人姓名,负责人性别) 参加人情况(职工号,姓名,社团社团号,社团名称,参加日期)。 3.查找参加唱歌队或篮球队的职工号和姓名。 4.查找没有参加任何社会团体的职工情况。 5.查找参加了全部社会团体的职工情况。 6.查找参加了职工号为“101”的职工所参加的全部社会团体的职工号 7.求每个社会团体的参加人数 8.求参加人数最多的社会团体的名称和参加人数。 9.求参加人数超过1的社会团体的名称和负责人。 10.把对社会团体和参加两个表的数据查看、插入和删除数据的权力赋给用户李平,并 允许他再将此权力授予其他用户。 第5章习题 51名词解释 数据依赖、函数依赖、平凡函数依赖、非平凡函数依赖、传递函数依赖、多值依赖、连 接依赖、INF、2NF、3NF、BCNF、4NF、5NF、码、无损联接性、无损联接性 52关系模式R(U,F) U=Sno, Sname Dname, Manager, Cname, Grade) 各属性分别表示学号、系名、系主任名、课程名和分数 请分析存在的数据依赖。F={Sno→ Sname,Sno→ Dname, Dname→ Manager,(Sno, 53分析下面关系模式中的函数依赖 tudent(sno Grade, Class, Bh)(Grade, Class, Bh)-Sno Grade Bplace Sex Class→ Grade 54设计一个求关键字算法。 55判断F≡G的算法如何实现? 56如何判定函数依赖集F是否是冗余的?如何计算出非冗余覆盖? 57思考:如何判定函数依赖集F是否是规约函数依赖集?如何计算? 58已知关系模式R(U,F), U=SNO, CNO, GRADE, TNAME, TAGE, OFFICE) F={SNO,CNO)→ GRADE,CNO→ INAME, INAME→(TAGE, OFFICE)} 以及R上的两个分解p1={SC,CT,TO},p2={SC,GTO AH SC=SNO, CNO, GRADE), CT(CNO, TN AME), TO= TNAME, TAGE, OFFICE) GTO=(GRADE, TNAME, TAGE, OFFICE)
试用 SQL 语句表达下列操作: 1.定义职工表、社会团体表和参加表,并说明其主码和参照关系。 2.建立下列两个视图: 社团负责人(社团号,名称,负责人职工号,负责人姓名,负责人性别); 参加人情况(职工号,姓名,社团社团号,社团名称,参加日期)。 3.查找参加唱歌队或篮球队的职工号和姓名。 4.查找没有参加任何社会团体的职工情况。 5.查找参加了全部社会团体的职工情况。 6.查找参加了职工号为“101”的职工所参加的全部社会团体的职工号。 7.求每个社会团体的参加人数。 8.求参加人数最多的社会团体的名称和参加人数。 9.求参加人数超过 1 的社会团体的名称和负责人。 10.把对社会团体和参加两个表的数据查看、插入和删除数据的权力赋给用户李平,并 允许他再将此权力授予其他用户。 第 5 章 习题 5.1 名词解释 数据依赖、函数依赖、平凡函数依赖、非平凡函数依赖、传递函数依赖、多值依赖、连 接依赖、1NF、2NF、3NF、BCNF、4NF、5NF、码、无损联接性、无损联接性 5.2 关系模式 R(U,F) U={Sno,Sname Dname,Dmanager,Cname,Grade} 各属性分别表示学号、系名、系主任名、课程名和分数, 请分析存在的数据依赖。F={Sno→Sname,Sno→Dname,Dname→Dmanager,(Sno, Cname)→Grade} 5.3 分析下面关系模式中的函数依赖 Student(Sno,Sname,Grade,Class,Bh,Bplace,Sex) X Y Sno → (Grade,Class,Bh)(Grade,Class,Bh)→Sno Sno → Grade Bplace Sex Class → Grade 5.4 设计一个求关键字算法。 5.5 判断 F≡G 的算法如何实现? 5.6 如何判定函数依赖集 F 是否是冗余的?如何计算出非冗余覆盖? 5.7 思考:如何判定函数依赖集 F 是否是规约函数依赖集?如何计算? 5.8 已知关系模式 R(U,F) , U={SNO,CNO,GRADE,TNAME,TAGE,OFFICE}, F={(SNO,CNO)→GRADE,CNO→TNAME,TNAME→(TAGE,OFFICE)}, 以及 R 上的两个分解 ρ1={SC,CT,TO}, ρ2={SC,GTO}, 其中 SC={SNO,CNO,GRADE},CT={CNO,TNAME},TO={TNAME,TAGE,OFFICE}, GTO={GRADE,TNAME,TAGE,OFFICE}
试检验ρ1,p2的无损联接性。 答案:ρ1是无损分解,ρ2不是无损分解。 59已知关系模式R(CIY,ST,ZIP),F={(CIIY,ST→ZIP,ZP→CIY},以及R 上的一个分解p={R1,R2},R1={ST,ZP},R2={CITY,团P},求R1,R2,并检验 分解的无损联接性和分解的函数依赖保持性 答案:R1=({ST,aP},{Φ})R2=(CIY,ZIP,{ZP→CITY}) ρ是无损分解,但不具有函数依赖保持性 5.10判断下列结论对错 1.任何一个二目关系都是3NF的 2.任何一个二目关系都是BCNF的 3.任何一个二目关系都是4NF的 4.若RA→RB,RB→RC,则RA→RC。 5.若RA→RB,RA→RC,则RA→R(BC 6.若RB→RA,RC→RA,则R(B,C)→RA。 511学生管理的情况:一个系有若干名学生,一个学生只属于一个系,一个系只有 名系主任,一个学生可以选修多门课程,一门课程可由多名学生选修,每个学生学了每门课 程有一个成绩,请设计一个数据库模式。 512分析SCT(SNO,CNO, CNAME, GRADE, INAME, BATE, SALARY)存 在的问题,如何进行规范化? F={SNO,CNO→ GRADE CNO→ CNAME,CNO→ INAME INAME→ BDATE, INAME→ SALARY}非2NF 存在问题 1.数据冗余:2插入,删除异常3.修改麻烦。 原因: 非主属性部分依赖于侯选关键字 关键字是一个元组区别其它元组的依赖,同时也是一个元组赖以存在的依据。 分解为:SC(SNO,CNO, GRADE),CI(CNO,CN, INAME, BATE, SALARY 第6章习题 6.1什么是数据库的安全性?数据库安全性和计算机系统的安全性有什么关系? 6.2试述实现数据库安全性控制的常用方法和技术 6.3什么是数据库的完整性?完整性和安全性两者之间有什么联系和区别? 6.4什么是数据库的完整性约束条件?可分为哪几类?DBMS的完整性控制机制应具有哪 些功能? 6.5 RDBMS在实现参照完整性时需要考虑哪些方面? 6.6设有下面两个关系模式 职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码 部门(部门号,名称,经理名,电话),其中部门号为主码 用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义: (1)定义每个模式的主码 (2)定义参照完整性 (3)定义职工年龄不得超过60岁
试检验ρ1,ρ2 的无损联接性。 答案: ρ1 是无损分解,ρ2 不是无损分解。 5.9 已知关系模式 R(CITY,ST,ZIP), F={(CITY,ST)→ZIP,ZIP→CITY},以及 R 上的一个分解ρ={R1, R2}, R1 ={ST,ZIP}, R2 ={CITY,ZIP},求 R1,R2 ,并检验 分解的无损联接性和分解的函数依赖保持性。 答案:R1=({ST,ZIP},{Φ}) R2=(CITY,ZIP,{ZIP→CITY}) ρ是无损分解,但不具有函数依赖保持性 5.10 判断下列结论对错。 1.任何一个二目关系都是 3NF 的。 2.任何一个二目关系都是 BCNF 的。 3.任何一个二目关系都是 4NF 的。 4. 若 R.A→R.B,R.B→R.C,则 R.A→R.C。 5.若 R.A→R.B,R.A→R.C,则 R.A→R.(B,C)。 6.若 R.B→R.A,R.C→R.A,则 R.(B,C)→R.A。 5.11 学生管理的情况:一个系有若干名学生,一个学生只属于一个系,一个系只有一 名系主任,一个学生可以选修多门课程,一门课程可由多名学生选修,每个学生学了每门课 程有一个成绩,请设计一个数据库模式。 5.12 分析 SCT(SNO,CNO,CNAME,GRADE,TNAME,BDATE,SALARY)存 在的问题,如何进行规范化? F={SNO,CNO→GRADE CNO→CNAME,CNO→TNAME TNAME→BDATE,TNAME→SALARY} 非 2NF 存在问题: 1.数据冗余;2.插入,删除异常 3.修改麻烦。 原因: 非主属性部分依赖于侯选关键字, 关键字是一个元组区别其它元组的依赖,同时也是一个元组赖以存在的依据。 分解为:SC (SNO,CNO,GRADE),CT(CNO,CN,TNAME,BDATE,SALARY) 第 6 章 习题 6.1 什么是数据库的安全性? 数据库安全性和计算机系统的安全性有什么关系? 6.2 试述实现数据库安全性控制的常用方法和技术。 6.3 什么是数据库的完整性? 完整性和安全性两者之间有什么联系和区别? 6.4 什么是数据库的完整性约束条件?可分为哪几类?DBMS 的完整性控制机制应具有哪 些功能? 6.5 RDBMS 在实现参照完整性时需要考虑哪些方面? 6.6 设有下面两个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码; 部门(部门号,名称,经理名,电话),其中部门号为主码; 用 SQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义: (1)定义每个模式的主码; (2)定义参照完整性; (3)定义职工年龄不得超过 60 岁
6.7对职工-部门关系模式,请用SQL的 GRANT和 REVOKE语句(加上视图机制),完成以 下授权定义或存取控制功能 (1)用户王勇对两个表有 SELECT权力 (2)用户李明对两个表有 INSERT和 DELETE权力 (3)用户刘平对职工表有 SELECT权利,对工资字段具有更新权力 (4)用户张兰具有修改这两个表的结构的权力。 (5)用户周昆具有对两个表的所有权力(读、插、改、删数据),并具有给其他用户授 权的权利 (6)用户杨新具有从每个部门职工中 SELECT最高工资,最低工资,平均工资的权力 他不能查看每个人的工资。 把6.7中(1)-(6)的每个用户所授予的权力予以撤消 6.9SQL语言中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明它们的使 用方法 6.10什么是事务?它有哪些属性? 6.11在数据库中为什么要并发控制? 6.12并发操作可能会产生哪几类数据不一致?用什么方法能避免这些不一致的情况? 6.13什么是封锁?基本的封锁类型有几种?试述它们的含义 6.14 SQL Server为什么要引进意向锁?意向锁的含义是什么? 6.15如何用封锁机制保证数据的一致性? 6.16什么样的并发调度是正确的调度 6.17如何保证并行操作的可串行性? 6.18什么是封锁协议?不同级别的封锁协议的主要区别是什么 6.19不同封锁协议与系统一致性级别的关系是什么? 6.20试述两段锁协议的概念。 6.21试证明,若并发事务遵守两段锁协议,则对这些事务的并发调度是可串行化的 6.22举例说明,对并发事务的一个调度是可串行化的,而这些并发事务不一定遵守两 段锁协议。 6.23理解并解释下列术语的含义:封锁、活锁、死锁、排它锁、共享锁、并发事务的 调度、可串行化的调度、两段锁协议。 6.24什么是活锁?什么是死锁?试述死锁和活锁的产生原因和解决方法 6.25设A的初值为1,T1、T2和T3是如下的三个事 T1:A=A+3; (1)若这三个事务允许并行执行,则有多少可能的正确结束,请一一列举出来; (2)请给出一个可串行化的调度,并给出执行结果 (3)请给出一个非串行化的调度,并给如执行结果; (4)若这三个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度 (5)若这三个事务都遵守两段锁协议,请给出一个产生死锁的调度。 6.26什么是数据库的备份与恢复? 6.27数据库转储的意义是什么?试比较各种数据转储方法 6.28什么是日志文件?为什么要设立日志文件?登记日志文件时为什么必须先写日志文 件,后写数据库? 6.29数据库运行过程中常见的故障有哪几类?各类故障如何恢复?
6.7 对职工-部门关系模式,请用 SQL 的 GRANT 和 REVOKE 语句(加上视图机制),完成以 下授权定义或存取控制功能。 (1) 用户王勇对两个表有 SELECT 权力。 (2) 用户李明对两个表有 INSERT 和 DELETE 权力。 (3) 用户刘平对职工表有 SELECT 权利,对工资字段具有更新权力。 (4) 用户张兰具有修改这两个表的结构的权力。 (5) 用户周昆具有对两个表的所有权力(读、插、改、删数据),并具有给其他用户授 权的权利。 (6) 用户杨新具有从每个部门职工中 SELECT 最高工资,最低工资,平均工资的权力, 他不能查看每个人的工资。 6.8 把 6.7 中(1)-(6)的每个用户所授予的权力予以撤消。 6.9 SQL 语言中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明它们的使 用方法。 6.10 什么是事务?它有哪些属性? 6.11 在数据库中为什么要并发控制? 6.12 并发操作可能会产生哪几类数据不一致?用什么方法能避免这些不一致的情况? 6.13 什么是封锁? 基本的封锁类型有几种?试述它们的含义。 6.14 SQL Server 为什么要引进意向锁?意向锁的含义是什么? 6.15 如何用封锁机制保证数据的一致性? 6.16 什么样的并发调度是正确的调度? 6.17 如何保证并行操作的可串行性? 6.18 什么是封锁协议?不同级别的封锁协议的主要区别是什么? 6.19 不同封锁协议与系统一致性级别的关系是什么? 6.20 试述两段锁协议的概念。 6.21 试证明,若并发事务遵守两段锁协议,则对这些事务的并发调度是可串行化的。 6.22 举例说明,对并发事务的一个调度是可串行化的,而这些并发事务不一定遵守两 段锁协议。 6.23 理解并解释下列术语的含义:封锁、活锁、死锁、排它锁、共享锁、并发事务的 调度、可串行化的调度、两段锁协议。 6.24 什么是活锁?什么是死锁?试述死锁和活锁的产生原因和解决方法。 6.25 设 A 的初值为 1,T1、T2 和 T3 是如下的三个事: T1:A=A+3; T2:A=A*3; T3:A=A**3; (1) 若这三个事务允许并行执行,则有多少可能的正确结束,请一一列举出来; (2) 请给出一个可串行化的调度,并给出执行结果; (3) 请给出一个非串行化的调度,并给如执行结果; (4) 若这三个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度; (5) 若这三个事务都遵守两段锁协议,请给出一个产生死锁的调度。 6.26 什么是数据库的备份与恢复? 6.27 数据库转储的意义是什么?试比较各种数据转储方法。 6.28 什么是日志文件?为什么要设立日志文件?登记日志文件时为什么必须先写日志文 件,后写数据库? 6.29 数据库运行过程中常见的故障有哪几类?各类故障如何恢复?