《数据库原理与系统》习题解答
更新时间:2023-11-13 09:52:01 阅读量: 教育文库 文档下载
- 数据库原理考试题库推荐度:
- 相关推荐
《数据库原理与系统》习题解答 习题一
一、名词解释
DB、DBMS、DBS、DBA、数据冗余、数据异常 二、单项选择题 1.DBMS是
A、数据库 B、数据库系统 C、数据库应用系统 C、数据库管理软件 2.DB、DBMS和DBS三者之间的关系是 A、DB包括DBMS和DBS B、DBMS包括DBS和DB C、DBS包括DB和DBMS D、DBS与DB和DBMS无关
3.关系数据模型的基本数据结构是 A、树 B、图 C、索引 D、关系 4.层次数据模型的基本数据结构是 A、树 B、图 C、索引 D、关系
5.层次模型实现数据之间联系的方法?
A、连接 B、指针 C、公共属性 D、关系 6.常见的数据模型是
A、层次模型、网状模型、关系模型 B、概念模型、实体模型、关系模型 C、对象模型、外部模型、内部模型 D、逻辑模型、概念模型、关系模型 7.提供数据库定义、数据操纵数据控制和数据库维护功能的软件称为 A、OS B、DS C、DBMS D、DBS 三、简答题
1.数据库系统的组成部分 2.DBA的主要职责
3.文件系统的数据管理方法 4.文件系统的主要缺陷 5.数据库系统的主要优点 6.什么是数据模型 7.层次结构的特点
8.DBTG提出的关于数掂库的3个重要规范 9.关系数据模型的基本结构
10.关系数据模型实现数据联系的方法
习题二
一、概念题
1.解释下列事业术语的合义: 关系、元组、属性、属性域、超码、候选码、主码、外码。 2.简述关系的性质。
3.说明关系数据库实现数据之间联系的方法。 4.什么是实体完整性和参照完整性? 5.什么是数据字典和系统目录?
6.什么是关系代数的选锈、投影、并、差、笛卡儿积、交和连接运算? 7.什么是自然连接?
8.什么是左外连接、右外连接和全外连接? 9.外连接与自然连接的区别是什么? 二、单项选择题
1.下面对关系性质的描述中,错误的是
A、表中的—行称为一个元组 B、行与列交叉点不允许有多个值 C、表中的一列称为一个属性 D、表中任意两行可能相同 2.“元数据”是指
A、数据结构的描述 B、数据项的描述
C、数据的来源 D、系统自身的各种有用信息,包括数据结构的描述 3.在数据库系统中,空值是
A、0 B、空格 C、空字符串 D、不确定 4.实体完整性是指关系中
A、不允许有空行 B、主码不允许空值 C、属性值外码取空值 D、外码允许取空值 5.已知关系R与S如图2.25所示:
在关系S中,违反参照完整性约束的元组是 A、 (11,21) B、 (22,NULL) C、 (33,33) A、 (44,11) 6.已知关系R和S,R∩S等价于 A、(R-S)-S B、S-(S-R) C、(S-R)-R D、S-(R-S)
7.关系R和S各有10个元组,则关系R×S的元组个数为 A、10 B、20 C、100 D、不确定
8.从关系中选择指定的属性组成新关系的关系运算是 A、选取 B、投影 C、连接 D、笛卡儿乘积
9.有关系:学生(学号,姓名,性别,专业,宿舍编号,宿舍地址),主码是 A、宿合编号 B、学号
C、宿舍地址,姓名 D、宿舍编号,学号
10.有两个关系:部门(编号,部门名称,地址.电话)和职工(职工号,姓名,性别,职务.编号)。职工关系的外码是
A、职工号 B、编号 C、职工号,编号 D、编号,部门名称 11.若关系R1和R2的结构相同,各有10个元组,则R1?R2的元组个数为 A、10 B、小于等于10 C、20 D、小于等于20
12.设关系R和S的属性个数分别为2和3,则与关系代数表达式R|?|S等价的是
1?2A、 B、 C、 D、
13.当关系R和S自然连接时,能够把R和S中不满足连接条件的元组保留在结果关系中的运算是
A、左外连接 B、右外连接 C、全外连接 D、等值连接
14.设关系R(A,B)和S(B,C)中分别有10个和15个元组,属性B是R的主码.则R|×| S中元组数目的范围是
A、(0,15) B、(10,15) C、(10,25) D、(0,150) l 5.设有关系R和S如图2.26所示,则关系A、6 B、7 C、8 D、9
的元组数目是
16.设有关系R和S,如图2.27所示,R的主码是编号,S的主码是学号、外码是编号。若有如下4个元组:
ⅠI(S3李林,C2),Ⅱ(Sl,江荷,C1),Ⅲ (S4,白玉.C4),Ⅳ (S5,康嘉,NULL),能够插入关系3的元组是
A、I,Ⅱ,Ⅳ B、I,Ⅲ C、I,Ⅱ D、I,Ⅳ
]7.已知关系R如图2.28所示,可以作为R主码的属性组是 A、XYZ B、XYW C、XZW D、YZW
]8.关系R和S分别有20、15个元组,则R?S、R-S、R∩S的元组数不可能是 A、29,13,6 B、30,15,5 C、35,20,0 D、28,13,7 R-S=R-(R∩S)
]9.设关系R和S的属性数目分别是a和b、则关系R?S的属性数目是 A、a十b B、a—b C、a×b D、a/b
三、解答题
1.设有4个关系模式:
供应商关系:S(SNO,SNAME,CITY),属性依次是供应商号、供应商名称和所在城市 零件关系:P(PNO,PNAME,COLOR),属性依次是是产品号、品名和颜色
工程关系:J(JNO,JNAME,CITY),属性依次是是工程号、工程名和所在城市
供应关系:SPJ(SNO,PNO,JNO,QTY),属性依次是供应商号、产品号、工程号和数量 试用关系代数完成下列操作: (])J1工程零件的所有供应商号i
(2)求供应J1工程P1零件的供应商号; (3)求供应J1工程红色零件的供应商号;
(4)求没有使用天津供应商生产的红色零件的工程号; (5)求S1供应商供应零件的所有工程号。 2.设有3个关系模式:
学生(学号,姓名,性别,专业) 课程(课程号,课程名称,学分) 成绩(学号,课程号,分数)
试用关系代数表达式完成下列操作:
(1)所有学生成绩获得满分(100分)的课程号、课程名称;
(2)检索至少有一门课程的分数达到95分以上的学生信息,包括学号、姓名和专业 (3)检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业 (4)检索”英语”专业学生所学课程的信息,包括学号、姓名 、课程名称和分数; (5)检索“数据库原理“课程分数高于90分的所有学生的学号、姓名、专业和分数; (6)检索没有不及格分数的学生的信息,包括学号、姓名和专业; (7)检索“国际贸易”专业选修“数据库原理”课程的学号和姓名。 答案:
(1)所有学生成绩获得满分(100分)的课程号、课程名称; π课程号,课程名称(σ分数=100(成绩)|×| 课程)
(2)检索至少有一门课程的分数达到95分以上的学生信息,包括学号、姓名和专业 π学号,姓名,专业(σ分数>=95(成绩)|×| 学生)
(3)检索没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业 π学号,姓名,专业(学生)-π学号,姓名,专业(σ分数<80(成绩)|×| 学生)
(4)检索”英语”专业学生所学课程的信息,包括学号、姓名 、课程名称和分数; π学号,姓名,课程名称,分数(课程|×| 成绩|×| σ专业=‘英语’(学生))
(5)检索“数据库原理“课程分数高于90分的所有学生的学号、姓名、专业和分数;
π学号,姓名,专业,分数(σ课程名称=‘数据库原理’(课程)|×| σ分数>90( 成绩)|×|学生) (6)检索没有不及格分数的学生的信息,包括学号、姓名和专业; π学号,姓名,专业(学生)-π学号,姓名,专业(σ分数<60(成绩)|×| 学生)
(7)检索“国际贸易”专业选修“数据库原理”课程的学号和姓名。(三表连接,投影)
π学号,姓名,专业(σ课程名称=‘数据库原理’(课程)|×| 成绩|×| σ专业=‘国际贸易’(学生))
3、设有3个关系模式:
员工(职工姓名,街道,城市) 工作(职工姓名,公司名称,工资) 公司(公司名称,城市)
用关系代数表达式来表达下列问题: (1)列出泰斗公司所有员工的姓名;
(2)列出泰斗公司所有员工的姓名和居住的城市;
(3)列出泰斗公司所有年收入在10万元以上的员工姓名、居住的街道和城市 (4)列出所有居住地与工作的公司在同一城市的员工姓名; (5)列出不在泰斗公司的所有员工的姓名 答案:
(1)列出泰斗公司所有员工的姓名;
π职工姓名(σ公司名称=‘泰斗公司’(工作)) (2)列出泰斗公司所有员工的姓名和居住的城市;
π职工姓名,城市(σ公司名称=‘泰斗公司’(员工|×|工作)
(3)列出泰斗公司所有年收入在10万元以上的员工姓名、居住的街道和城市
π职工姓名,街道,城市(σ公司名称=‘泰斗公司’AND 工资>100000(员工|×|工作)?
(4)列出所有居住地与工作的公司在同一城市的员工姓名; π职工姓名 (σ员工.城市=公司.城市(员工|×|工作|×|公司) (5)列出不在泰斗公司的所有员工的姓名
π职工姓名(员工)- π职工姓名(σ公司名称=‘泰斗公司’(员工|×|工作|))
习题三
一、单项选择题 1.SQL语言是
A、高级语言 B、宿主语言 C、汇编语言 D、非过程化语言 2.在SQL语言查询语句中,SELECT子句实现关系代数的 A、投影运算 B、选择运算 C、连接运算 D、交运算 3.在SQL语言查询语句中,WHERE子句实现关系代数的
A、投影运算 B、选择运算 C、连接运算 D、交运算 4.为在查询结果中去掉重复元组.应该使用保留字
A、UNIQUE B、UNION C、COUNT D、DISTINCT
5.当关系R和S做自然连接时,能够保留R中不满足连接条件元组的操作是 A、左外连接 B、右外连接 C、内部连接 D、全外连接 6.SQL语言中,更新表结构的的命令是
A、UPDATE TABLE B、MODIFY TABLE C、ALTER TABLE D、CHANGE TABLE 7.下列聚合函数中不忽略空值(NULL)的是
A、SUM(列名) B、MAX(列名) C、AVG(列名) D、COUNT(*)
8.SQL语言中,下列涉及空值操作的短语,不正确的是(VFP全部正确, SQL SERVER中C错)
A、AGE IS NULL B、AGE IS NOT NULL
C、AGE=NULL D、NOT (AGE IS NULL) 9.SQL语言中,删除一个表的命令是
A、CLEAR TABLE C、DROP TABLE
C、DELETE TABLE D、REMOVE TABLE
10.设有一个关系:DEPT(DNO,DNANE).如果要找出倒数第三个字母为W.并且至少包含4个字母的DNAME,则查询条件子句应写成WHERE DNANC LIKE //有疑问
A.’_ _W_%’, B.’ _W_%’, C. ’_ _W_’ D.’_%W_ _’ SELECT * FROM STUDENT WHERE SNAME LIKE '__林_%' 11 已知班级和学生关系如图3.11所示。 执行下列语句,在学生关系中插入新的数据:
I INSERT INTO 学生 VALUES(101,”李玲”,”女”,”C01”) ⅡINSERT INTO 学生 VALUES(103,”田京”,”男”,”C03”) Ⅲ INSERT INTO 学生 VALUES(106,”康雨”,” 男”,NULL) Ⅳ INSERT INTO 学生 VALUES(105,”何光”,” 男”,”C02”)
能正确执行的语句是
A、I,Ⅱ B、Ⅲ,Ⅳ C、I,Ⅱ,Ⅲ D、I,Ⅱ,Ⅲ,Ⅳ 二、解答题
1.没有3个关系模式:
业务员(业务员编号,业务员姓名,性别,年龄,月薪) 订单(订单号,日期,客户编号,业务员编号,金额) 客户(客户编号,客户姓名,地址,类别) 用SQL语句解答下列(1)-(12)题。
(1)显示所有50岁以上女业务员的姓名和年龄; (2)检索年龄最大的业务员姓名和年龄;
(3)显示所有业务员的姓名和月薪.要求按照月薪降序排列;
(4)检索月薪在2000元到3000元之间的业务员姓名。用BETWEEN关键词; (5)统计每个客户签定订单的数目和总金额;
(6)检索所有经办客户王明订单的业务员姓名(分别用连接和子查询实现) (7)统计每个业务员签定500元以上订单的数目; (8)检索签定2个以上订单的业务员姓名; (9)将所有业务员的月薪增加10%; (10)将业务员关悦的月薪改为3500元;
(11)检索超过平均月薪的业务员姓名和年龄;
(12)将签定订单总金额超过2万元的月薪增加5%。 答案:
(1)显示所有50岁以上女业务员的姓名和年龄;
SELECT 业务员姓名, 年龄 FROM 业务员 WHERE 年龄>50 AND 性别=‘女’ (2)检索年龄最大的业务员姓名和年龄;
SELECT 业务员姓名, 年龄 FROM 业务员 WHERE 年龄=(SELECT MAX(年龄) FROM 业务员 )
(3)显示所有业务员的姓名和月薪.要求按照月薪降序排列;
SELECT 业务员姓名,月薪 FROM 业务员 ORDER BY月薪 DESC
(4)检索月薪在2000元到3000元之间的业务员姓名。用BETWEEN关键词; SELECT 业务员姓名 FROM 业务员 WHERE 月薪 BETWEEN 2000 AND 3000 (5)统计每个客户签定订单的数目和总金额;
SELECT客户编号,COUNT(*) 订单数目,SUM(金额) 总金额 FROM 订单 GROUP BY 客户编号
(6)检索所有经办客户王明订单的业务员姓名(分别用连接和子查询实现)
SELECT 业务员.业务员姓名 FROM 业务员,订单,客户 WHERE 业务员.业务员编号=订单.业务员编号 AND 订单.客户编号=客户.客户编号 AND 客户.客户姓名=‘王明’
SELECT 业务员.业务员姓名 FROM 业务员 inner join 订单 inner join 客户 on 业务员.业
务员编号=订单.业务员编号 on 订单.客户编号=客户.客户编号 where 客户.客户姓名=‘王明’
SELECT 业务员姓名 FROM 业务员 WHERE 业务员.业务员编号 IN(SELECT 业务员编号 FROM 订单 WHERE 客户编号 IN(SELECT 客户编号 FROM 客户 WHERE 客户姓名=‘王明’))
(7)统计每个业务员签定500元以上订单的数目;
SELECT 业务员编号,COUNT(*) 订单数目 FROM 订单 where 金额>500 GROUP BY 业务员编号
(8)检索签定2个以上订单的业务员姓名;
SELECT 业务员姓名 FROM 业务员 WHERE 业务员编号 IN(SELECT 业务员编号 FROM 订单 GROUP BY 业务员编号 HAVING COUNT(*)>2) (9)将所有业务员的月薪增加10%; UPDATE 业务员 SET 月薪=月薪*1.1 (10)将业务员关悦的月薪改为3500元;
UPDATE 业务员 SET 月薪=3500 WHERE业务员姓名=‘关悦’ (11)检索超过平均月薪的业务员姓名和年龄;
SELECT 业务员姓名, 年龄 FROM 业务员 WHERE月薪>(SELECT AVG(月薪) FROM 业务员 )
(12)将签定订单总金额超过2万元的月薪增加5%。
UPDATE 业务员 SET 月薪=月薪*1.05 WHERE 业务员编号 IN(SELECT 业务员编号 FROM 业务员 GROUP BY 业务员编号 HAVING SUM(金额) >20000)
2.设有3个关系模式:
学生(学号,姓名,性别,专业,籍贯) 课程(课程号,课程名,学时,性质) 成绩(学号,课程号,分数) 回答下列(1)-(10)题。
(1)检索所有女同学的姓名。试写出实现该查询的关系代数表达式; (2)检索选修“数据库”课程的学生姓名。要求写出关系代数表达式和实现这个查询的SQL语句;
(3)检索课程号等于“C101”,且分数90分以上(含90分)学生的姓名。要求写出关系代数表达式和实现这个查询的SQL语句;
(4)写出SQL语句,检索学习“Cl01”课程中分数最高的学生姓名; (5)写出SQL语句,检索所有未选修“Cl01”课程的学生姓名;
(6)写出SQL语句,在成绩表中增加“学分”列,并根据学分=学时/18的算法,填上每门课程的学分;
(7)写出SQL语句,实现关系代数表达式:成绩-?分数>=60(成绩); (8)写出SQL语句,检索选修5门以上课程的学生姓名;
(9)创建一个查询成绩的视图VSK,其属性有姓名、课程名和分数;
(10)检索学生选课情况,显示姓名、课程名和分数,其中包括没有选课的学生。 答案:
(1)检索所有女同学的姓名。试写出实现该查询的关系代数表达式; π姓名 (σ性别=‘女’(学生)) (2)检索选修“数据库”课程的学生姓名。要求写出关系代数表达式和实现这个查询的SQL
语句;
π姓名 (σ课程名= ‘数据库’(课程|×|成绩)|×|学生)
SELECT姓名 FROM 课程,成绩,学生 WHERE课程.课程名=‘数据库’ AND 课程.课程号=成绩.课程号 AND 成绩.学号=学生.学号 (3)检索课程号等于“C101”,且分数90分以上(含90分)学生的姓名。要求写出关系代数表达式和实现这个查询的SQL语句; π姓名 (σ课程号= ‘C101’?分数>=90(成绩)|×|学生)
SELECT姓名 FROM 成绩,学生 WHERE 成绩.课程号=‘C101’ AND 成绩.分数> =90 AND成绩.学号=学生.学号
(4)写出SQL语句,检索学习“Cl01”课程中分数最高的学生姓名;
SELECT姓名 FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 成绩 WHERE 课程号=‘C101’ AND 分数=(SELECT MAX(分数) FROM 成绩 WHERE 课程号=‘C101’)) (5)写出SQL语句,检索所有未选修“Cl01”课程的学生姓名;
SELECT姓名 FROM 学生 WHERE 学号 NOT IN (SELECT 学号 FROM 成绩 WHERE 课程号=‘C101’)
SELECT姓名 FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 成绩 WHERE NOT 课程号=‘C101’)
(6)写出SQL语句,在成绩表中增加“学分”列,并根据学分=学时/18的算法,填上每门课程的学分;
ALTER TABLE 成绩 ADD 学分 INTEGER
UPDATE 成绩 SET 学分=课程.学时/18 FROM成绩 INNER JOIN 课程 ON 成绩.课程号= 课程.课程号
(7)写出SQL语句,实现关系代数表达式:成绩-?分数>=60(成绩); SELECT * FROM 成绩 WHERE NOT 分数<60
SELECT * FROM 成绩 MINUS SELECT * FROM 成绩 WHERE 分数>=60 (8)写出SQL语句,检索选修5门以上课程的学生姓名;
SELECT姓名 FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 成绩 GOUP BY 学号 HAVING COUNT(*)>5)
(9)创建一个查询成绩的视图VSK,其属性有姓名、课程名和分数;
CREATE VIEW VSK AS SELECT学生.姓名,课程.课程名,成绩.分数 FROM 课程,成绩,学生 WHERE 课程.课程号=成绩.课程号 AND 成绩.学号=学生.学号
(10)检索学生选课情况,显示姓名、课程名和分数,其中包括没有选课的学生。
SELECT学生.姓名,课程.课程名,成绩.分数 FROM 学生 left outer join 成绩 inner join课程 on 成绩.学号=学生.学号 ON 课程.课程号=成绩.课程号 (错误的写法)
SELECT学生.姓名,课程.课程名,成绩.分数 FROM 学生 left outer join 成绩 on 成绩.学号=学生.学号 inner join课程 ON 课程.课程号=成绩.课程号 inner、outer可省略 SELECT student.sname,course.cname,sc.grade FROM student left outer join sc on sc.sno=student.sno inner join course ON course.cno=sc.cno
习题四
一、名词解释
实体、实体集、属性、属性域、主码、单值属性、多值属性、派生属性、基数 二、单项选择题
1.数据库设计中,概念模型
A、依赖于计算机的硬件 B、依赖于DBMS
C、独立于DBMS D、独立于计算机的硬件和DBMS 2.将E-R模型转换为关系数据模型属于数据库的
A、概念设计 B、物理设计 C、逻辑设计 D、运行设计
3.设在某个公司环境中,一个部门有多名职工,一名职工只能属于一个部门,则部门与职工之间的联系是
A、—对一 B、一对多 C、多对多 D、不确定 4.概念结构设计的主要目标是真实地反映
A、企业对信息的需求 B、DBA的管理信息需求 C、数据库系统的维护需求 D、应用程序员的编程需求 5.数据库设计人员和用户之间沟通信息的桥梁是
A、程序流程图 B、实体-联系图 C、模块结构图 D、数据结构图 6.在E-R模型转换成关系模型的过程中,下列不正确的做法是
A、每个联系均转换成一个关系 B、每个实体集均转换成一个关系 C、1:N联系不必转换成关系 D、M:N联系转换成—个关系
7.假设任一个E-R模型中,存在10个不同的实体集和12个不同的二元联系(二元联系是指两个实体集之目的联系),其中3个1:1联系、4个1:N联系、5个M:N联系,则这个E-R模型转换成关系的数目可能是
A、14 B、15 C、19 D、22
8.当同一个实体集内部实体之间存在着一个M:N的关系时,根据E-R模型转换成关系模型的规则,转换成关系的数目为
A、1 B、2 C、3 D、4
三、简答题
1.简述数据库设计的基本步骤。 2.概念设计的主要内容有哪些? 3.使用派生属性有什么好处?
4.确定基数的依据是什么?基数的用途是什么? 5.举例说明一元、二元、三元和N元联系。 6.举例说明实体之间的联系方式?
7.简述E-R模型转换为关系模型的规则。 四、设计题
1.假设图书馆业务规则:
(1)读者需要凭借书证借阅图书,借书证有借书证号、姓名、年龄、单位等属性; (2)每一本图书有书号、书名、作者、出版社等属性;
(3)每一本借出的图书有借书证号、书号、借出日期、应还日期。 试:
①根据上述业务规则设计E-R模型,要求E-R图中注明属性和联系的类型。 ②将E-R模型转换成关系模型。
③用SQL语句创建表、定义完整性规则。 答案:
②三个关系模式:
借书证(借书证号,姓名,年龄,单位),主码为{借书证号}; 图书(书号,书名,作者,出版社),主码为{书号}; 借阅(借书证号,书号,借出日期,应还日期),主码为{借书证号,书号},{借书证号}为外码,{书号}为外码。 ① 借出日期 应还日期 n m 借书证 图书 借阅 出版社 借书证姓名 单位 年龄 书号 书名 作者 号 ③略
2.假设城市交通管理业务规则:
(1)每个驾车者必须有驾驶执照,驾照有编号、姓名、性别、年龄、身份证号、工作单位、发证日期等属性
(2)每个机动车要有一个牌照,牌照有车号、型号、制造商、生产日期、所有者等属性; (3)如果司机违反交通规则,将受到惩罚,惩罚记录有日期、车号、驾照编号、违章情节记载、处罚方式等属性。 试:
①根据上述业务规则设计E-R模型,要求E-R图中注明属性和联系的类型。 ②将E-R模型转换成关系模型。
③用SQL语句创建表、定义完整性规则。 答案: ① 违章情节处罚方式 日期 记载 m n 牌照 驾照 惩罚 编号 姓名 性别 年龄… 车号 型号 制造商 生产日
②三个关系模式: ③略
3.假设某集团公司生产多种产品,公司在全国没有多个代理两,由代理商经销本公司的所有产品。每个代理商可以经销公司的多种产品,且在每一个代理商处都能够买到公司的任何一种产品。代理商有编号、代理商名称和地址等属性;产品有产品号、品名、规格、单价等属性。代理商与产品之间存在供货联系,每次供货将记录供贷日期、产品号、数量、单价和经办人。 试:
①根据上述业务规则设计E-R模型,要求E-R图中注明属性和联系的类型。 ②将E-R模型转换成关系模型。
③用SQL语句创建表、定义完整性规则。 答案: 略
习题五
一、单项选择题
1.如果关系模式R属于1NF,且每个非主属性都完全函数依赖于R的主码,则R属于 A、2NF B、3NF C、BCNF D、4NF
2.有关系R(P,Q,M,N),F是R上成立的函数依赖集,F={(P→Q,Q→M)|,则R的候选码是
A、P B、Q C、PQ D、PN
3.有学生关系R(学号,姓名,系名称,系地址),每一名学生属于一个系,每一个系有一个地址,则R属于
A、1NF B、2 NF C、3 NF D、4 NF 4.下列陈述中.错误的是
A、2NF必然属于1NF B、3NF必然属于2NF C、3NF必然属于BCNF D、BCNF必然属于3NF
5.已知关系R(A,B,C,D),F是R上成立的函数依赖集,F={(A,B→C,D),B→D},则R应分解成
A、R1(A,B)和R2(C,D) B、R1(A,B,C) 和 R2(B,D) C、R1 (A,C)和R2(B,D) D、R1(A,B,D) 和R2(B,C)
6.在订单管理中,客户—次购物(一张订单)可以订购多种商品。设有订单关系R(订单号,日期,客户名称,商品编码,数量),则R的主码是
A、订单号 B、订单号,客户名称 C、商品编码 D、订单号,商品编码 7.第6题中的关系R最高属于
A、1NF B、2NF C、3NF D、4NF({商品编码,数量,日期}多值依赖于{订单号},但是{订单号}不是候选码)
8.设有关系模式R(A,B,C,D).F是R上的函数依赖集,F={D→A,D→B},R的候选码是
A、AD B、BC C、BD D、CD
9.设有关系模式R(A,B,C,D,M,N),R上的函数依赖集F={ M→D,C→B,B→A,(C,M)→N},则R最高达到//推出{C,M}为候选码,推出(C,M)→D,推出M→D为部分函数依赖
A、1NF B、2NF C、3NF D、4NF 二、综合设计题 解题步骤:
1)分析问题中包含的基本概念(即实体)
2)假设一个实体对应一个关系模式,确定每个关系模式的主码 3)由上述基本关系模式的主码合并成一个超码
4)剔除超码中的部分属性,得到给定关系模式的候选码
5)由每个关系模式的主码、给定关系模式的候选码识别出属性间的基本函数依赖关系 6)识别出部分依赖关系、传递依赖关系
1.假设某商业集团数据库中有一个关系模式: R(商店编号,商品编号,数量,部门编号,负责人) 如果规定:
(1)每个商店的每种商品只在一个部门销售; (2)每个商店的每个部门只有一个负责人; (3)每个商店的每种商品只有一个库存数量。 试回答下列问题:
①根据上述规定写出R的基本函数依赖; ②找出R的候选码;
③试问R最高达到第几范式?为什么?
④如果R不属于3NF,请将分解成3NF模式集。 答案:R中包含三个基本概念:商店,商品,部门
①R的基本函数依赖包括:{商店编号,商品编号→数量},{商店编号,商品编号→部门编号},{商店编号,商品编号→负责人}//传递依赖,{部门编号→负责人} ②R的候选码为{商店编号,商品编号}
③R最高达到2范式。因为非主属性都完全函数依赖于候选码,但存在传递函数依赖{商店编号,商品编号→负责人}
④可将R分解为两个关系模式:
商店商品(商店编号,商品编号,数量,部门编号) 部门(部门编号,负责人)
2.假设当前使用一个手工操作的学生文档,其文档的格式如图5.13所示 假设规定:
(1)一名学生可以选修多门课程,且一门课程有多人选修; (2)一门课程仅有一个教师讲授,—名教师可以讲多门课程; (3)学生学习一门课程有一个分数;
(4)每一名教师有一个办公室,一个办公室有多么教师; 如果依据上述文档和规定,设计一个关系模式R:
R(学号,学生姓名,课程号,课程名,分数,教师姓名,教师办公室) 试:
①找出R的候选码;
②写出关系R的基本函数依赖集,并画出函数依赖图; ③判断R最高达到第几范式,说明理由; ④如果有必要,将R分解成3NF模式集。
答案:R中包含三个基本概念:学生,课程,教师
(学号,学生姓名,课程号,课程名,分数,教师姓名,教师办公室 ①R的候选码为{学号,课程号} ②R的基本函数依赖包括:
{学号,课程号→学生姓名},//部分函数依赖 {学号,课程号→课程名},//部分函数依赖 {学号,课程号→分数},
{学号,课程号→教师姓名},//部分函数依赖 {学号,课程号→教师办公室},//传递依赖 {学号→学生姓名}, {课程号→课程名},
{教师姓名→教师办公室}, {课程号→教师姓名}, {课程号→教师办公室}
③R最高达到1范式。因为存在非主属性部分函数依赖于主码,如学号→学生姓名 ④可将R分解为五个关系模式: 学生(学号,学生姓名) 课程(课程号,课程名)
教师(教师姓名,教师办公室) 成绩(学号,课程号,分数) 教师课程(教师姓名,课程号) 函数依赖图略
3.假设公司的订单业务规定:
(1)订单号是惟一的,每一张订单对应一个订单号;
(2)一张订单可以订购多种产品,每一种产品可以在多个订单中出现; (3)一张订单有一个客户,且一个客户可以有多张订单; (4)每一个产品编号对应一种产品的品名和单价; (5)每一个客户有一个确定的名称和电话号码。
根据上述规定设计一个关系模式:
R(订单号,日期,客户名称,电话号码,产品编码,品名,价格,数量) 试:
①找出R的候选码;
②写出关系R的基本函数依赖集,并画出函数依赖图; ③判断R最高达到第几范式,说明理由; ④给出一个可能的3NF模式集。 答案:
①{订单号,客户名称,产品编码}为一个超码,由于“一张订单有一个客户”,所以{订单号,产品编码}为一个候选码
②关系R的基本函数依赖集为{(订单号→日期),(客户名称→电话号码),(产品编码→品名),(产品编码→价格),(订单号,产品编码→数量),(订单号→客户名称),(订单号→电话号码)//传递依赖,(订单号,产品编码→日期)//部分依赖,(订单号,产品编码→客户名称),(订单号,产品编码→电话号码),(订单号,产品编码→品名),(订单号,产品编码→价格),(订单号,产品编码→数量)} 函数依赖图略
③R最高达到第几范式1NF,因为非主属性日期部分函数依赖于主码{订单号,产品编码} ④
一个可能的3NF模式集为:
订单(订单号,客户名称,产品编码,日期,数量),主码为{订单号,产品编码} 客户(客户名称,电话号码),主码为{客户名称} 产品(产品编码,品名,价格),主码为{产品编码}
习题六
一、简答题
1.什么是局部变量和全局变量?
2.局部变量与全局变量的主要区别是什么? 3.在SQL程序设计中,游标的用途是什么? 4.简述SQL程序设计中游标的使用方法。 5.什么是存储过程?其优点是什么? 6.什么是数据库触发器?其作用是什么?
7.INSERTED和DELETED表的用途是什么? 8.简述INSERT触发器的工作原理。 9.简述DELETE触发器的工作原理。 10.简述UPDATE触发器的工作原理。 11.简述INSTEAD OF触发器的工作原理。 12.简述嵌入式SQL的预处理过程。 二、SQL程序设计
1. 编写一个SQL程序,完成将新生信息插入到学生档案表,并将其中一部分信息再插入借书证表、学生贷款、学生医疗表,要求插入之后显示插入的数据。
2. 在学生档案表上创建一个触发器,实现下列任务:当新生信息插入到学生档案表中时,将其中一部分信息再插入借书证表、学生贷款、学生医疗表,要求插入之后显示插入的数据。 CREATE TRIGGER TRIGGER_学生档案表_INSERT ON 学生档案表 FOR INSERT AS BEGIN
insert into 借书证表(学号) select学号from inserted insert into 学生贷款(学号) select学号from inserted insert into 学生医疗表(学号) select学号from inserted select * from inserted END GO
3. 在某出版社数据厍中,有图书关系R(书号,书名,类别,定价)。如果教材类图书的平均定价大于30,则显示“平均价格超过30元”,反之显示“平均价格不超过30元”,并列出所有教材类的书名。编写一个SQL程序完成这个任务。 USE 出版社 GO
IF(SELECT AVG(定价) FROM R WHERE类别=’教材’)>30 PRINT ‘平均价格超过30元’ ELSE BEGIN
PRINT ‘平均价格不超过30元’
SELECT书名FROM R WHERE类别=’教材’
END GO
4. 在某出版社数据厍中,有图书关系R(书号,书名,类别,定价)。如果教材类图书的平均定价大于30,则执行循环,将高于平均值的教材类图书的定价下调1%,直至所有教材类图书的平均定价小于或等于30元为止。编写一个SQL程序完成这个任务。 USE 出版社 GO
DECLARE @PJDJ Float
WHILE (select @PJDJ = AVG(定价) FROM R WHERE类别=’教材’) >30 UPDATE R SET定价=定价*0.99 WHERE类别=’教材’ AND定价> @PJDJ GO
5. 假设有银行账户关系R(账号,客户姓名,余额)。转账业务规定,当一个账户余额大于等于转账金额时,则执行转账业务,并通知客户转账的金额和账面余额;否则不执行转账操作。通知客户不执行转账的理由。试编写转账业务的存储过程,该存储过程有转出账号、转入账号和转账金额3个参数,要求保证事务的原子性。
6. 有学生和成绩关系如下: S(学号,姓名,性别,专业)
R(学号,课程号,课程名称,分数)
试编写一个查询成绩的存储过程,存储过程带有学号和课程号2个参数。 CREATE PROCEDUE PRO_GRADE @XH CHAR(10),@KCH CHAR(8) AS
SELECT S.学号S.姓名,R.课程号,R.课程名称,R.分数 FROM S,R
WHERE S.学号=R.学号 AND S.学号=@XH AND R.课程号=@KCH GO
7. 有产品关系R(产品号,品名,厍存量),在R上创建一个触发器。实现当修改厍存量时,测试修改后的值,若低于100,则发出采购该产品的通知,若高于1000,则发出\积压\的消息。同时要求设计一个SQL程序,验证触发器的作用。
8. 有系和学生2个关系:
系(系名称,系主任,电话号码,地址) 学生(学号,姓名,性别,专业,系名称)
设计一个存储过程,根据学号(参数),查询学生和所在系的信息。
9. 假设有职工工资表:
R(职工号,姓名,基本工资,附加工资,房租,水电,应发工资,税款,实发工资) 缴纳个人所得税的规定如下: ●个人收入>5000,税率20%;
●个人收入>2000且<=5000,税率10%; ●个人收入>800且<=2000,税率5%; ●个人收入<=800,免税。 工资的计算方法
(1)应发工资=基本工资+附加工资。
(2)采取分段计算税款的算法,超过5000元部分收20%;2000-5000之间部分收10%;800-2000之间部分收5%;800下免税。具体算法如图6.13所示。 (3)实发工资=应发工资-税款。
试编写一个简单的SQL脚本程序,创建工资表并完成计算实发工资的任务。
CREATE TABLE R(职工号 CHAR(6),姓名CHAR(8),基本工资 FLOAT,附加工资FLOAT,房租FLOAT,水电FLOAT,应发工资FLOAT,税款FLOAT,实发工资FLOAT) GO
UPDATE R SET应发工资=基本工资+附加工资 UPDATE R SET税款= (
CASE WHEN 应发工资>5000 THEN (应发工资-5000)*0.2+(5000-2000)*0.1+(2000-800)*0.05 WHEN 应发工资<=5000 AND应发工资>2000 THEN (应发工资-2000)*0.1+(2000-800)*0.05 WHEN 应发工资<=2000 AND应发工资>800 THEN (应发工资-800)*0.05 WHEN 应发工资<=800 THEN 0 END )
UPDATE R SET实发工资=应发工资-税款 GO
习题七
一、名词解释
事务、封锁、X封锁、活锁、死锁、可串行化调度、不可串行化调度、两段封锁协议。 二、单项选择题
1.事务“要么不做,要么全做”的性质称为事务的
A、持久性 B、隔离性 C、一致性 D、原子性
2.SQL的COMMIT和ROLLBACK语句的主要用途是实现事务的 A、原子性 B、隔离性 C、一致性 D、持久性 3.“授权机制”用于数据库系统的
A、完整性控制 B、安全性控制 C、一致性控制 D、并发控制 4.“视图”可用于数据库系统的
A完整性控制 B、安全性控制 C、一致性控制 D、并发控制
5.事务“使数据库从一个一致状态转变到另一个一致状态”的性质称为事务的 A、原子性 B、隔离性 C、一致性 D、持久性 6.在数据库系统中,利用封锁机制实现
A、完整性控制 B、安全性控制 C、一致性控制 D、并发控制 7.数据库系统的恢复子系统实现事务的
A、原于性 B、隔离性 C、一致性 D、持久性 8.数据库系统的并发控制保证了事务的
A、原子性 B、隔离性 C、一致性 D、持久性
9.在加锁协议中规定“先申请先服务”的原则,可以避免数据库系统出现 A、活锁 B、死锁 C、读-写冲突 D、写-写冲突 10.如果事务T获得数据项Q上S锁,则T对Q
A、不能读不能写 B、只能读不能写 C、不能读只能写 D、既可读又可写 11.如果事务T获得数据项Q上X锁,则T对Q
A、不能读不能写 B、只能读不能写 C、不能读只能写 D、既可读又可写 12.事务的隔离性由DBMS的
A、安全性子系统实现 B、完整性子系统实现 C、并发控制子系统实现 D、恢复子系统实现
13.事务的持久性由DBMS的
A、安全性子系统实现 B、完整性子系统实现 C、并发控制子系统实现 D、恢复子系统实现
14.在数据库系统中,“脏数据”是指一个事务读了另一个事务 A、未更新的数据 B、更新之后末提交但是后来撤销的数据 C、末提交的数据 D、末刷新的数据
15.数据库系统安排多个事务并发执行的过程称为 A、步骤 B、进程 C、调度 D、优先级 16.封锁可以避免数据的不一致性,但可能会引起系统 A、崩溃 B、死锁 C、故障 D、数据丢失 17.SQL的GRANT和REVOKE语句用于数据库的
A、安全性控制 B、一致性控制 C、完整性控制 D、并发控制 18.事务日志用于数据库的
A、安全 B、恢复 C、审计 D、跟踪 三、填空题
1.DBMS并发控制的任务是保证事务的执行是可串行的。 2.事务的隔离性是由DBMS的并发控制实现的。
3.完全恢复模型是以后援副本和事务日志副本为基础的恢复方法。 4.在数据库系统中,角色管理机制可以简化为多个具有相同权限的用户授权和回收权限(授权)的工作量
5.只转储上次备份后变化数据的方法称为增量备份。 6.两段封锁协议规定事务在锁增长阶段阶段可以获得锁。 7.数据库的完整性是指数据的正确性、有效性和相容性。 8.SQL中,域检查子句是CHECK。
9.在数据库系统中,域完整性约束是对属性值有效性的约束
10.允许用户把获得的权限再转授给他人的SQL短语是WITH GRANT OPTION
五、设计题
1. 设教学数据库的模式如下: S(S#,SNAME,AGE,SEX) SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
试用多种方式定义下列完整性约束:
(1)在关系S中插入学生年龄值应在16~25岁之间
(2)在关系SC中插入元组时,其S#值和C#值必须分别在S和C中出现。 (3)在关系SC中修改GRADE值时,必须仍在0~100之间。
(4)在删除关系C中一个元组时,首先要把关系SC中具有同样C#的元组全部删去。
(5)在关系S中把某个S#值修改为新值时,必须同时把关系SC中那些同样的S#值也修改为新值。 解:
(1) CREATE TABLE S( S# CHAR(4),
SNAME CHAR(10) NOT NULL , AGE SMALLINT, PRIMARY KEY(S#),
CHECK (AGE>=16 AND AGE<=25)) (2) 采用外键子句约束 CREATE TABLE SC (
S# CHAR(4), C# CHAR(4),
GRADE SMALLINT,
FOREIGN KEY(S#) REFERENCE S(S#), FOREIGN KEY(C#) REFERENCE C(C#) )
(3) 采用元组检查 CREATE TABLE SC( S# CHAR(4), C# CHAR(4),
GRADE SMALLINT,
FOREIGN KEY(S#) REFERENCE S(S#), FOREIGN KEY(C#) REFERENCE C(C#), CHECK (GRADE>=0 and AGE<=100)) (4) 采用外键约束 CREATE TABLE SC( S# CHAR(4), C# CHAR(4),
GRADE SMALLINT,
FOREIGN KEY(S#) REFERENCE S(S#),
FOREIGN KEY(C#) REFERENCE C(C#) ON DELETE CASCADE )
(5)采用外键约束 CREATE TABLE SC( S# CHAR(4), C# CHAR(4),
GRADE SMALLINT,
FOREIGN KEY(S#) REFERENCE S(S#) ON UPDATE CASCADE , FOREIGN KEY(C#) REFERENCE C(C#) )
2. 在教学数据库的关系S、SC、C中,试用SQL2的断言机制定义下列两个完整性约束: (1)学生必须在选修Maths课后,才能选修其他课程。 (2)每个男学生最多选修20门课程。 解:(1)
CREATE ASSERTION ASS1 CHECK ( NOT EXISTS
( SELECT S FROM SC WHERE C# IN (SELECT C# FROM C
WHERE CNAME<>'MATHS') AND S# NOT IN
(SELECT S# FROM SC WHERE C# IN (SELECT C# FROM C
WHERE CNAME='MATHS'))); (2)CREATE ASSERTION ASS2 CHECK ( 20>=ALL(SELECT COUNT (SC.C#) FROM S,SC
WHERE S.S#=SC.S AND SEX='M' GROUP BY S#)); 3、设有3个关系:
职工表;EMP(ENO,ENAME,AGE,SEX,ECITY) 工作表:WORKS(ENO,CNO,SALARY) 公司表:COMP(CNO,CNAME,CITY) CREATE TABLE COMP (
CNO CHAR(4) NOT NULL, CNAME CHAR(20) NOT NULL, CITY CHAR(8), ECITY CHAR(8),
PRIMARY KEY(CNO) )
试用SQL的语句、子句或触发器完成下列问题:
(1)要求男职工年龄在20~50岁之间,女职工年龄在18~40岁之间;
(2)在WORKS表中的职工号(ENO值)必须在EMP表中存在(用三种方法); (3)职工的工资不能低于1500元;
(4)把对WORKS关系的查询、修改工资的权限授予用户HE且HE拥有转授权 (5)把对EMP表、COMP表的查询权限授给全体用户。 解:
(1) CREATE TABLE EMP (
ENO CHAR(4) NOT NULL, ENAME CHAR(8) NOT NULL, AGE SMALLINT,
SEX CHAR(2) CHECK(SEX IN(‘男’,’女’)), ECITY CHAR(8),
CHECK((SEX =‘男’ AND (AGE<=50 AND AGE>=20)) OR (SEX =‘女’ AND (AGE<=40 AND AGE>=18))),
PRIMARY KEY(ENO) )
(2) SQL的语句、子句或触发器 方法一:CREATE TABLE WORKS (
ENO CHAR(4) NOT NULL, CNO CHAR(4) NOT NULL,
SALARY DECIMAL(10,2) CHECK(SALARY>1500), PRIMARY KEY(ENO,CNO),
FOREIGN KEY(ENO) REFERENCES EMP(ENO), FOREIGN KEY(CNO) REFERENCES COMP(CNO) )
方法二:
CREATE TRIGGER TRIGGER_WORKS_ENO ON WORKS FOR INSERT,UPDATE AS
IF NOT EXISTS (SELECT * FROM inserted,EMP WHERE INSERTED.ENO=EMP.ENO) BEGIN
PRINT 'WORKS表中的职工号(ENO值)必须在EMP表中存在' ROLLBACK END GO
方法三: (3)
CREATE TABLE WORKS (
ENO CHAR(4) NOT NULL, CNO CHAR(4) NOT NULL,
SALARY DECIMAL(5,1) CHECK(SALARY>1500), PRIMARY KEY(ENO,CNO),
FOREIGN KEY(ENO) REFERENCES EMP(ENO), FOREIGN KEY(CNO) REFERENCES COMP(CNO) )
(4) GRANT SELECT,UPDATE(SALARY) ON TABLE WORKS TO HE WITH GRANT OPTION
(5)GRANT SELECT ON TABLE EMP,COMP TO PUBLIC
习题八
一、简答题
1. 简述客户机/服务器体系结构。
2. 分析客户机/服务器系统的工作模式。
3. 讨论两层C/S应用架构的主要特点和不足之处。 4. 说明三层C/S应用架构的主要特点。 5. 简述B/S应用架构的主要特点。 分析四层B/S应用架构的主要特点。 简述分布式数据库系统的主要特点。 说明分布式数据存储方式。
分布式数据库系统中,有哪几种数据分片的方法? 分析分布式数据库系统中,数据复制的优缺点。 解释数据透明性的含义。
解释片断透明性、地址透明性和局部映像透明性的区别。 说明有哪几种数据分片的方法。 简述数据分片的基本条件。
解释局部事务和全局事务的区别。
正在阅读:
《数据库原理与系统》习题解答11-13
企业工作会心得体会03-31
关于父爱的作文300字07-03
药剂学题库11-23
地铁培训心得体会05-10
十八胺停炉保护措施11-27
穿心棒法盖梁施工方案06-09
春季预防传染病致家长一封信09-11
房屋拆旧合同01-26
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 习题
- 解答
- 原理
- 数据库
- 系统
- QT-2A型半导体管特性图示仪操作规程
- 电子称论文修改5 - 图文
- 小学课外阅读指导课程纲要
- 2018专题练习一,论述性文章
- 广州数控980TD数控车床操作编程说明书 - 图文
- 运行费用及效益分析
- 财务管理实习报告
- 2010年酒类行业客户资料
- 学生公寓工程项目管理规划大纲 - 毕业设计
- C语言练习题-陈树振
- 人教版新课标四年级数学上册随堂练习一课一练同步练习课后作业 - 图文
- 科学通史答案
- 资产评估计算题
- 美的螺杆式冷水机组中央空调方案书 - 图文
- 领导班子思想政治建设纪实
- 一年级上册数学单元测试第五单元教材过关卷(5) - 北师大版
- 关于开展建筑内部装修防火材料见证取样检验工作的公示
- 印刷工程导论考试及答案
- triz学习心得
- MR弱覆盖