数据库系统原理练习题
第1章
一、选择题
1. 数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是( )。
A. DBS包括DB和DBMS C. DB包括DBS和DBMS
B. DBMS包括DB和DBS D. DBS就是DB,也就是DBMS
2. 概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是( )。
A. 层次模型 B. 关系模型 C. 网状模型 D. 实体-联系模型 3. 目前,数据库管理系统最常用的逻辑数据模型是( )。
A.网状模型 B.层次模型 C.关系模型 D.面向对象模型 4. 下列四项中,不属于数据库系统特点的是( )。
A. 数据共享 B. 数据完整性 C. 数据冗余度高 D. 数据独立性高 5. 数据模型的三个要素分别是( )。
A. 实体完整性、参照完整性、用户自定义完整性 B. 数据结构、数据操作、数据完整性约束条件 C. 插入数据、修改数据、删除数据 D. 外模式、模式、内模式
6. 数据库三级结构从内到外的3个层次依次为()。
A. 外模式、模式、内模式 C. 模式、外模式、内模式
B. 内模式、模式、外模式 D. 内模式、外模式、模式
7. 下列关于数据库系统的正确叙述是():
A. 数据库系统减少了数据冗余
* *
B. 数据库系统避免了一切冗余
C. 数据库系统中数据的一致性是指数据类型的一致 D. 数据库系统比文件系统能管理更多的数据 8. 数据的逻辑独立性是指()。
A.外模式改变时保持应用程序不变 C.内模式改变时保持模式不变 9. 数据的物理独立性是指()。
A.外模式改变时保持应用程序不变 C.内模式改变时保持模式不变
B.模式改变时保持外模式不变 D.数据改变时保持应用程序不变
B.模式改变时保持外模式不变 D.数据改变时保持应用程序不变
10. 公司有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职
员,从部门到职员的联系类型是()。
A. 多对多 B. 一对一 C. 多对一 D. 一对多
11. 储蓄所有多个储户,储户在多个储蓄所之间存款,储户与储蓄所之间是()。
A. 一对一联系 B. 一对多联系 C. 多对多联系 D. 不确定联系 12. 描述数据库全体数据的全局逻辑结构和特性的是( )。
A. 模式 B. 内模式 C. 外模式 D. 以上三级模式
二、填空
1. 数据库系统一般由(
)、(
)、(
)和(
)组成。
2. 数据库是长期存储在计算机中、有( )的、可( )的数据集合。 3. DBMS表示( ),它是位于(
)和( )之间的一层数据管理软件。
)和( )。
4. 实体之间的联系可抽象为三类,它们是( )、(
* *
5. 数据模型的三要素包括( )、( )和( )三部分。 )、(
)和(
)。
6. 根据数据模型的应用目的不同,数据模型分为( 7. 按照数据结构的类型命名,逻辑模型分为( 8. E-R图中,( 三、简述题
1. 数据库的定义是什么?
2. 数据库管理系统的主要功能有哪些? 3. 数据模型的三要素是什么? 4. 数据库中数据操作包括哪些? 5. 实体型之间的联系包括哪三种?
6. 数据库领域中常用的逻辑数据模型有哪些? 7. 数据库系统由哪几部分组成? 8. 数据库系统三级模式结构? 四、应用题
)表示实体,(
)、(
)和( )等。
)表示属性,( )表示实体之间的联系。
1. 设有商品和顾客两个实体,商品实体包括商品编号、名称、单价等属性,顾客实体包括
顾客编号、姓名、联系电话等属性,两个实体存在如下的关系: 一个顾客可购买多种任意商品
每次可购买一定数量的商品(一天只限一次购物) 绘出E-R图,并标明属性和联系的类型
2. 为某百货公司设计一个E-R模型:百货公司管辖若干个连锁商店,每家商店经营若干商
品,每家商品有若干职工,但每个职工只能服务于一家商店。实体类型“商店”的属性
* *
有:商店编号、商店名称、地址、联系电话。实体类型“商品”的属性有:商品编号、商品名称、单价、产地。实体类型“职工”的属性有:职工编号、职工姓名、性别、工资。在联系中应反映出职工参加某商店工作的工作时间,商店推销产品的销售量。 3. 试为一网上书店建立概念模型。
第2章
一、选择题
1. 关于关系模型,下列说法中不正确的是( )。
B. 关系模型是建立在集合代数的基础上的 C. 数据的逻辑结构是一个二维表 D. 关系操作是面向集合的操作方式 E. 关系中的数据可以是任意的
2. 关于关系,下列说法中不正确的是( )。
A. 关系中每个属性值都是不可分解的 B. 关系中不允许出现相同的元组 C. 关系中不考虑元组间的顺序 D. 元组中的属性是有序的 3. 关系代数中,选择运算的运算符号是( )
A.× B.Π C. D.θ 4. 关系查询时取出关系的某些列,并取消重复元组的关系运算为()。
B. 选择运算
B. 投影运算 C. 连接运算
D.笛卡儿积
5. 根据关系模式的实体完整性规则,一个关系的主码属性()。
A.不能有两个 C.不允许为空
B.不能成为另一个关系的外码
D.可以取任意值
6. 在关系模式R(R#,RN,S#)和S(S#,SN,SD)中,R的主键是R#,S的主
键是S#,则S#在R中称为( )。
A. 主码 B. 外码 C. 候选码 D. 全码 7. “成绩在0-100之间”这种约束属于哪种完整性约束( )。
A. 主键约束 B. 外键约束 C. 用户定义的完整性约束 D. 全不是 8. 关系R如下图所示,a1的象集是( )。 A B C * *
a1 a1 a2 b1 b2 b1 c1 c3 c2 A. {b1,b2 } B. {(b1,c1),(b2,c3)}
C. {c1,c3} D. {(b1,c1),(b2,c3), (b1,c2)}
二、简述题
9. 关系模型的三个组成部分是什么? 10. 关系模型的完整性约束分为哪三类? 11. 关系代数中提供了哪些关系的查询运算?
三、用关系代数表示查询
12. 设有选课关系数据库模式如下:
Student(Sno,Sname,Sage,Ssex) Course(Cno,Cname)
SC(Sno,Cno,Grade)
请用关系代数表达式表示下列查询:
(1) 查询选修了2号课程的学生的学号 (2) 查询学号为“03”的学生的学号和姓名 (3) 查询年龄大于20岁的男同学的学号和姓名 (4) 查询选修了课程的学生的学号和姓名 (5) 查询有选修学生的课程号和课程名 (6) 查询选修了5号课程的学生的姓名和成绩
* *
(7) 查询选修了“数据库原理”课程的学生的学号和姓名
13. 现有图书借阅关系数据库模式如下:
图书(图书号,书名,作者,单价,库存量) 读者(读者号,姓名,工作单位,地址) 借阅(图书号,读者号,借期,还期,备注) 其中,还期为NULL表示该书未还。 用关系代数表示如下查询:
(1) 查询读者号为“R016”的读者姓名、工作单位 (2) 查询图书号为“B5”的读者姓名 (3) 查询读者“李林”所借阅图书的书名 (4) 查询读者“李林”所借阅图书中未还的书名
第3章
一、选择题
1. SQL语言称为( )。
A.结构化定义语言 B. 结构化操纵语言 C. 结构化查询语言 D. 结构化控制语言 2. 下列SQL语句中,修改表结构的是 ( )
A.CREATE B.UPDATE C.INSERT D.ALTER 3. 在SELECT语句中, 用于实现数据分组统计的子句是 ( ) A.FROM子句 B.WHERE子句 C.GROUP BY子句 D.ORDER BY 子句 4. 下列哪种运算不能引出子查询。( )
A.IN B.LIKE C.EXISTS D.比较运算 5. 基于学生选课数据库中的3个关系:S(学号, 姓名, 性别, 年龄)、C(课程号, 课程名, 任课教师)、 SC(学号, 课程号, 成绩),若要求查找选修“数据库技术”这门课程的学生
* *
姓名和成绩,将使用关系( ) A.S和SC B.SC和C
C.S和C D.S、SC和C
6. 基于学生选课数据库中的3个关系:S(学号, 姓名, 性别, 年龄)、C(课程号, 课程名, 任课教师)、 SC(学号, 课程号, 成绩),若要求查找学生的平均成绩大于80分的学号和平均成绩,下面列出的SQL语句,正确的是( )。
A.SELECT 学号, AVG(成绩) FROM SC WHERE AVG(成绩)>80
B.SELECT 学号, AVG(成绩) FROM SC WHERE AVG(成绩)>80 GROUP BY 学号 C.SELECT 学号, AVG(成绩) FROM SC GROUP BY 学号 HAVING AVG(成绩)>80 D.SELECT 学号, 成绩 FROM SC GROUP BY 学号 HAVING AVG(成绩)>80 7. 下列SQL语句中,正确的是( )。
A.SELECT S#, SNAME FROM SC GROUP BY S#
B.SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)>3 C.SELECT S# FROM SC GROUP BY S# WHERE COUNT(*)>3 D.SELECT S# FROM SC WHERE COUNT(*)>3 GROUP BY S# 8. 在视图上不能完成的操作是( )。
A.更新视图 B.查询视图
C.在视图上定义新的基本表 D.在视图上定义新视图 二、填空
1. 在SQL的查询语句中,使用( )子句定义数据源,使用( )子句选择参与运算的数据行,使用( )子句指定目标列。可使用( )子句结合聚集函数进行分组统计。若对查询结果排序可使用( )子句。
2. 在SQL中,( )语句创建表和声明完整性约束条件。如果要为一个基本表增加
* *
列和完整性约束条件,应该使用( )语句。删除表的定义及表中的数据和索引,应该使用的语句是( )。
3. 视图是定义在( )之上的虚表,对视图也可以进行插入、修改、删除和查询操作。但视图不存储数据,对视图的一切操作最终要转换为对( )的操作。
三、简述题
12. SQL语言的特点?
13. SQL语言中常用的语句有哪些?
14. SQL中提供了哪些常用的聚集函数?它们如何使用? 15. 什么是连接查询?连接查询如何指定连接条件?
16. 什么是子查询?用在WHERE子句中的子查询有几种调用方式? 四、数据库操作 4. 仓库管理系统
在某仓库管理系统中,有两个表:KC表和CKMX表,其结构和部分数据如下:
表1、KC表结构和数据
材料代码 01 02 … 材料名称 计算机 电视机 … 单位 台 台 … 单价 5000.00 2000.00 … 库存数量 10 20 … 表2、CKMX表结构和数据
编号 1 材料代码 01 出库日期 2009-10-10 出库数量 4 * *
2 3 … 01 02 … 2009-11-20 2009-11-20 … 3 5 … 其中,KC表保存当前仓库库存材料的信息,CKMX表存放库存材料的出库名细。 例如,KC表第一行表示该仓库中现有计算机10台。CKMX表第二行表示2009年11月20日从仓库中出库3台计算机。
(1) 试写出创建KC表和CKMX表的SQL语句,要求定义实体和参照完整性。 (2) 写出在KC表上按材料名称建立唯一索引的SQL语句。 (3) 创建一个视图,用于查询计算机的出库明细。 (4) 写出将表中数据插入到相应表中的语句。
(5) 从表CKMX中统计出各种材料的出库次数和出库总数量,试写出SQL语句。 (6) 写出由KC表和CKMX表产生如下结果集的查询语句:
编号 1 2 …
5. 财务管理系统
出库日期 材料名称 单价 2009-10-10 计算机 5000.00 2009-11-20 计算机 5000.00 … … … 出库数量 4 3 … 金额 20000.00 15000.00 … 学校有多名学生,财务处每年要收一次学费。财务处现用两个表记录相关信息,其结构和部分数据如下表:
表1、XS表结构和数据
* *
学号 200901 200902 200903 … 姓名 张明 王晓萌 李刚 … 性别 男 男 … 年龄 18 21 20 … 所在系 计算机 信息 计算机 … 表2、JFQK表结构和数据
序号 1 学号 200901 2 200902 3 200901 … … 交费日期 2009-09-10 2009-09-10 2010-10-10 … … 300.20 4000 400.00 5000 书费 500.50 学费 5000 其中,XS表是在校学生名册和基本信息登记表,JFQK表是学生交学费情况记录。
(1) 试写出创建XS表和JFQK表的SQL语句,要求定义实体和参照完整性。 (2) 写出在XS表上按学生姓名建立唯一索引的SQL语句。 (3) 创建一个视图,用于查询计算机系同学的基本信息。 (4) 写出将表中数据插入到相应表中的语句。
(5) 将计算机系同学的年龄增加1岁,并将计算机系同学的学费减1000元。 (6) 从表JFQK中统计出每个同学的交费次数和交费总金额,试写出SQL语句。 (7) 写出由XS表和JFQK表能产生类似如下结果集的查询语句:
* *
序号 1 姓名 张明 交费日期 书费 学费 5000 合计 5500.50 2009-09-1500.50 0 2 王晓萌 2009-09-1400.00 0 5000 5400.00 …
… … … … … 第4、5章
一、选择题
1. 实体完整性要求主属性不能取空值,这通常是通过( )。
A.DBMS自动保证 B. 用户定义的完整性约束来保证 C. 定义外键来保证 D. 定义主键来保证
2. 下列SQL语句中,能够实现参照完整性控制的语句是( )。 A. NOT NULL B. PRIMARY KEY C. UNIQUE D. FOREIGN KEY
3. 若关系R(A,B,C)主码为A, 关系S(D,A)主码为D,外码为A,下面在关系S中哪个元组违反了完整性约束条件?( )。
R S
A 1 2 B 2 1 C 3 1 3 2 l 3 3 4 1 Nul
D A 2 * *
A. (1, 2) B. (2, Null) C. (3, 3) D. (4, 1)
4. 使用CREATE TABLE STU (NO CHAR(4) NOT NULL, NAME CHAR(8) NOT NULL, SEX CHAR(2), AGE INT ) 创建了表STU ,下列哪些语句可以插入到表中。( ) A.INSERT INTO STU VALUES(‘1031’,’张华’,男,23) B.INSERT INTO STU VALUES (‘1031’,’ 张华’,NULL,NULL) C.INSERT INTO STU VALUES(NULL,’ 张华’,’男’,23) D.INSERT INTO STU VALUES (‘1031’,NULL, ’男’,23) 5. 下列哪种操作不会激活触发器。( )
A. SELECT B. UPDATE C.INSERT D. DELETE 6. 在SQL语言中授权的操作是通过( )语句实现的。
A.DELETE B.UPDATE C.GRANT D.REVOKE 二、简述题
7. 什么是数据库的安全性?数据库系统中常用的安全控制方法和技术有哪些? 8. 什么是数据库的完整性?关系数据库的完整性包括哪几类? 9. 什么是触发器?触发器由哪些事件激活? 三、完整性约束定义
10. 设有关系S、SC、C如下:
S(sno, sname, age, sex, sdept) C(cno, cname, teacher) SC(sno, cno, score)
用SQL完成下列功能:
(1)创建学生表S和课程表C(要求标明主码)
(2)创建选修课程情况表SC。(要求标明主码、外码及成绩的范围)
* *
11. 假设有下面两个关系模式:
职工(职工号,姓名,年龄,进校时间,工资,部门号),其中职工号为主码 部门(部门号,部门名称,经理名,电话),其中部门号为主码
用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义: (1)定义每个模式的主码 (2)定义参照完整性
(3)定义职工年龄不得超过60岁
第6章
一、选择题
1. 关系数据库规范化是为了解决关系数据库中( )的问题而引入的。
A.提高查询速度
B.插入、删除、更新异常和数据冗余 C.保证数据的安全性和完整性 D.恢复数据库
2. 关系模式中每个分量都是不可分的数据项,则关系模式属于( ) A. 1NF B. 2NF C. 3N D. BCNF 3. 若R∈2NF,则R的每个( )
A.非主属性部分依赖于码 B.非主属性完全依赖于码 C.主属性部分依赖于码 D.主属性完全依赖于码
* *
4. 消除了非主属性对码传递函数依赖的2NF的关系模式,必定属于( ) A.1NF B.2NF C. 3NF D. BCNF 5. 关系模式中,满足2NF的模式( )
A.可能是1NF B.必定是1NF C.必定是3NF D.必定是BCNF 二、关系模式规范化
1. 设有关系模式: 选修(姓名,专业,课程,任课教师,成绩)
假设:每个学生在一个专业学习;每门课程有一个任课教师;每个学生选修的每门课程只有一个成绩;姓名、课程无重名。
(1)请写出选修关系中存在的基本函数依赖集。
(2)找出关系模式的候选码,指出哪些是主属性?那些是非主属性。 (3)分析关系模式最高属于第几范式?为什么?
(4)如果选修关系不属于3NF,请将其分解为第3NF模式集。 2. 现有一个描述学生、课程以及选课信息的关系模式:
SelectCourse(学号,姓名,年龄,课程名称,成绩,学分)。
其中:每个学生可选多门课程,每门课程只选一次;每个学生选修的每门课程有一个成绩;
每门课程都规定一定的学分。
(1)请写出SelectCourse关系中存在的基本函数依赖集。 (2)找出关系模式的候选码。
(3)分析关系模式最高属于第几范式?为什么?
(4)请将SelectCourse关系模式分解为第3NF模式集。 3. 假设某商业集团数据库中有一关系模式R如下:
R(商店编号,商品编号,数量,部门编号,负责人)。 如果规定:
(1)每个商店的每种商品只在一个部门销售。 (2)每个商店的每个部门只有一个负责人。
* *
(3)每个商店的每种商品只有一个库存量。
请回答下列问题:
(1)写出R关系中存在的基本函数依赖集。 (2)找出关系模式的候选码。
(3)分析关系模式最高属于第几范式?为什么? (4)如果R不属于3NF,请将R分解为第3NF模式集。
第7章
一、选择题
1. 在数据库设计中,将E-R图转换为关系模式的过程属于( ) 。
A.需求分析阶段 B.逻辑设计阶段 C.概念设计阶段 D.物理设计阶段 2. 关系模式中,表示实体间M:N联系是通过增加一个 ( ) A.属性实现 B.关系实现
C.关系或一个属性实现 D.关系和一个属性实现
3. 从E-R模型向关系模型转换时,一个M:N的联系转换为一个关系模式,该关系模式的关键字是 ( )
A.M端实体的关键字 B.N端实体的关键字
C.M端实体的关键字与N端实体的关键字的组合 D.重新选取其它属性
4. 在E-R模型中,如果有3个不同的实体型,2个M:N联系,根据E-R模型转换为关系模型的规则,转换为关系的数目是。( )
A.3 B.4 C.5 D.6 二、简述题
* *
5. 数据库设计涉及哪些方面的技术和知识? 6. 数据库设计包括哪几个阶段? 7. 建立E-R图包括哪几个步骤? 三、数据库设计
8. 某图书馆中图书按类分别存放在多个书库中,可供读者借阅。每个书库中有若干个管理员(这些管理员不再管理其它书库)。请设计一个数据库保存相关的信息。其中:
(1) 书库的属性包括书库编号、位置、面积等, 图书的属性包括书号、书名、出版
社等,读者的属性包括读者号、姓名、单位等,管理员的属性包括职工编号、职工姓名等属性;其它属性请自己指定。
(2) 描述借阅关系的属性包括借出日期和应还日期等
试画出书库、图书、读者、管理员及其联系的E-R图(要求注明相关属性及联系的类型), 并将其转换成关系模式(要求注明主码)。
9. 假设一个部门的数据库包括如下信息:
职工的信息:职工号、姓名、地址和所在部门。 部门的信息:部门名称、经理名、电话。 产品的信息:产品编号、产品名、价格、型号。 制造商的信息:厂称、厂址、传真。
另外还包括部门销售产品的信息和制造商生产产品的信息。
试画这个数据库的E-R图(要求注明相关属性及联系的类型), 并将其转换成关系模式(要求注明主码)。
* *
数据库系统原理练习题答案
第1章
一、选择题
1. A 2. D 3. C 4. C 5. B 6. B 7. A 8. B 9. C 10. D
11. C 12. A 二、填空
9. 数据库系统一般由(数据库)、(数据库管理系统)、(应用程序)和(数据库管理员)组成。
10. 数据库是长期存储在计算机中、有(组织)的、可(共享)的数据集合。 11. DBMS表示(DataBase Management System),它是位于(用户)和(操作系统)之间的一层数据管理软件。
12. 实体之间的联系可抽象为三类,它们是(一对一)、(一对多)和(多对多)。 13. 数据模型的三要素包括(数据结构)、(数据操作)和(数据完整性约束条件)三部分。
14. 根据数据模型的应用目的不同,数据模型分为(概念模型)、(逻辑模型)和(物理模型)等。
15. 按照数据结构的类型命名,逻辑模型分为(关系模型)、(层次模型)和(网状模型)等。
16. E-R图中,(矩形)表示实体,(椭圆)表示属性,(菱形)表示实体之间的联系。 三、简述题
* *
17. 数据库是长期存贮在计算机内的、有组织的、可共享的大量数据的集合。 18. 数据库管理系统的主要功能包括: (1)数据定义功能,
(2)数据的组织、存储和管理, (3)数据操纵功能,
(4)数据库事务的管理与运行管理, (5)数据的建立与维护, (6)其它功能。
19. 数据结构、数据操作和数据完整性约束条件构成数据模型的三要素。 20. 数据库中数据操作包括插入、修改、删除和查询。
21. 实体型之间的联系包括一对一联系、一对多联系和多对多联系三种类型。 22. 数据库领域中常用的逻辑数据模型有层次模型、网状模型、关系模型、面向对象模型等。
23. 数据库系统由数据库、数据库管理系统、应用系统和数据库管理员等组成。 24. 数据库系统三级模式结构是指模式、内模式和外模式。 四、应用题 25.
* *
26.
27.
* *
第2章
一、选择题
1. D 2. D 3. C 4. B 5. C 6. B 7. C 8.B 二、简述题
1. 关系模型由关系数据结构、关系操作和关系的完整性约束条件三部分组成。 2. 关系的完整性约束包括主键约束、外键约束和用户定义的完整性约束三种。 3. 关系代数中的查询包括关系的并、交、差、笛卡儿积、选择、投影、连接和除法等运算。
三、关系代数表示查询 1. 选课关系查询
(1) ∏Sno (σCno=‘2’(SC)) select sno from sc where cno=’2’ (2) ∏Sno,Sname (σSno=‘03’(Student))
Select sno,sname from student where sno=’03’
* *
(3) ∏Sno,Sname (σSage >20 ∧ Ssex=‘男’(Student))
Select sno,sname from student where sage>20 and ssex=’男’ (4) ∏Sno,Sname (Student
SC )
Select sc.sno,sanme from sc,student where student.sno=sc.sno (5) ∏Cno,Cname (Course
SC)
Select sc.cno,cname from course,sc where course.cno=snc.cno (6) ∏Sname,Grade (Student
(σCno=‘5’ (SC ) )
Select sname,grade from student,sc where student.sno=sc.sno and cno=’5’
(7) ∏Sno,Sname (σCname=‘数据库原理’(Student 或∏Sno,Sname (Student
∏Sno ( SC
SC
Course)
σCname=‘数据库原理’(Course) )
Select sno,sname from student,sc,course where sc.sno=student.sno and sc.cno=course.cno and cname=’数据库原理’
2.图书借阅关系查询
(1) ∏姓名,工作单位(σ读者号=‘R016’(读者)) (2) ∏姓名(σ图书号 =‘B5’(读者 (3) ∏书名(σ姓名 =‘李林’(读者
借阅)) 借阅
图书))
借阅
图书))
图书)
(4) ∏姓名(σ姓名 =‘李林’∧ 还期 = NULL(读者
或 ∏姓名((σ姓名=‘李林’(读者)) (σ还期 = NULL(借阅))
2、∏Sname,Grade (σCno=’5’(Student SC))
3、∏Sno,Sname (Student * *
∏Sno
* *
(SC
σCname=’操作系统’(Course))
第3章
一、选择题
1. C 2. D 3. C 4. B 5. D 6. C 7. C 8.C 二、填空题
4. 在SQL的查询语句中,使用(FROM)子句数据源,使用(WHERE)子句选择参与运算的数据行,使用(SELECT)子句指定目标列。可使用(GROUP BY)子句结合聚集函数进行分组统计。若对查询结果排序可使用(ORDER BY)子句。
5. 在SQL中,(CREATE TBLE)语句创建表和声明完整性约束条件。如果要为一个基本表增加列和完整性约束条件,应该使用(ALTER TABLE)语句。删除表的定义及表中的数据和索引,应该使用的语句是(DROP TABLE)。
6. 视图是定义在(基本表)之上的虚表,对视图也可以进行插入、修改、删除和查询操作。但视图不存储数据,对视图的一切操作最终要转换为对(基本表)的操作。
三、简述题
1. SQL语言集数据查询、数据操纵、数据定义和数据控功能于一体,其主要的操作语
* *
句包括CREATE、ALTER、DROP、INSERT、UPDATE、DELETE、SELECT、GRANT、REVOKE等。
2. SQL中提供了一些聚集函数,用于统计数据库数据,包括COUNT、AVG、SUM、MAX、MIN等,除COUNT(*)用法外,统计时均忽略空值,使用DISTINCT选项可忽略对重复数据的统计。聚集行数只可用于SELECT子句和HAVING子句。
3. 若一个查询同时涉及到两个表,则称之为连接查询。连接查询的连接条件可在WHERE子句中通过一个比较运算指定,或在FROM子句中在指定连接方式的同时指定连接条件。
4. 子查询又称嵌套查询,是嵌套在SELECT、INSERT、UPDATE、DELETE等语句中的SELECT查询语句。多用在WHERE子句中,使用子查询的结果作为搜索条件。在Where子句中使用子查询有以下几种方式: 由IN引出子查询、由比较运算符引出子查询、由EXISTS引出子查询。 四、数据库操作 1. 仓库管理系统
(8) 创建表
CREATE TABLE KC (
材料代码 char(2) PRIMARY KEY, 材料名称 char(20), 单位 char(10), 单价 numeric(10,2), 库存数量 int
* *
)
CREATE TABLE CKMX ( ) Or或者
CREATE TABLE CKMX (
编号 char(4) PRIMARY KEY, 材料代码 char(2), 出库日期 date, 出库数量 int,
编号 char(4) PRIMARY KEY,
材料代码 char(2) REFERENCES KC(材料代码), 出库日期 date, 出库数量 int
Foreign key (材料代码) REFERENCES KC(材料代码) ) (9) 创建索引
CREATE UNIQUE INDEX index1 ON KC(材料名称) Drop index index1 on KC (10) 创建视图
CREATE VIEW viewComputer
* *
AS
SELECT * FROM CKMX,KC
WHERE CKMX.材料代码=KC.材料代码 and KC.材料名称= '计算机'
(11) 插入数据
INSERT INTO KC VALUES('01','计算机','台',5000.00,10) INSERT INTO KC VALUES('02','电视机','台',2000.00,20) INSERT INTO CKMX VALUES('1','01','2009-10-10',4) INSERT INTO CKMX VALUES('2','01','2009-10-20',3) INSERT INTO CKMX VALUES('3','02','2009-10-20',5) (12) 统计
SELECT 材料代码,COUNT(*) as 次数, SUM(出库数量) as 出库数量 from CKMX group by 材料代码 (13) 查询
SELECT ckmx.编号,出库日期,材料名称,单价,出库数量,出库数量*单价 as 金额 FROM KC,CKMX
WHERE KC.材料代码 = CKMX.材料代码 2. 财务管理系统
(5) 创建表
CREATE TABLE XS (
学号 char(6) PRIMARY KEY,
* *
)
姓名 char(10) not null, 性别 char(2) null, 年龄 smallint, 所在系 char(20)
CREATE TABLE JFQK ( )
(6) 创建索引
序号 int PRIMARY KEY,
学号 char(6) REFERENCES XS(学号), 交费日期 date, 书费 numeric(6,2), 学费 int
CREATE UNIQUE INDEX index1 ON XS(姓名)
(7) 创建视图
CREATE VIEW viewComputer1 AS
SELECT * FROM XS WHERE 所在系 = '计算机'
(8) 插入数据
INSERT INTO XS VALUES('200901','张明', '男',18,'计算机') INSERT INTO XS VALUES('200902','王晓萌',null,21,'信息')
* *
INSERT INTO XS VALUES('200903','李刚 ', '男',20,'计算机') INSERT INTO JFQK VALUES(1,'200901','2009-09-10',500.50,5000) INSERT INTO JFQK VALUES(2,'200902','2009-09-10',400.00,5000) INSERT INTO JFQK VALUES(3,'200901','2010-10-10',300.20,4000)
(9) 更新数据
UPDATE XS SET 年龄 = 年龄 + 1 WHERE 所在系 = '计算机'
或 UPDATE viewComputer1 SET 年龄 = 年龄 + 1
UPDATE JFQK SET 学费 = 学费 -1000
WHERE '计算机' = (SELECT 所在系 FROM XS WHERE XS.学号 = JFQK.学号)
(10) 统计
SELECT 学号,COUNT(*) as 交费次数, SUM(书费+学费) as 总金额 FROM JFQK GROUP BY 学号
(11) 查询
SELECT 序号,姓名,交费日期,书费,学费,书费+学费 as 合计 FROM XS,JFQK
WHERE XS.学号 = JFQK.学号
第4、5章
* *
一、选择题
1. D 2. D 3. C 4. B 5. A 6. C 二、简述题
1. 数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。
数据库系统中常用的安全控制方法有技术包括用户标识和鉴别、存取控制、定义视图、审计、数据加密等。
2. 数据完整性是指数据库中的数据在逻辑上的一致性和准确性。
关系数据库的完整性包括实体完整性、参照完整性和用户定义完整性三类。
3. 触发器(Trigger)是用户定义在关系表上的一类由事件驱动的特殊存储过程。触发器由对表的插入、修改和删除事件激活。 三、完整性约束定义 1. 创建关系S、SC、C
CREATE TABLE S
( Sno CHAR(8) PRIMARY KEY, /*主码约束*/ Sname CHAR(20) UNIQUE, /*唯一约束*/ Ssex CHAR(2) NOT NULL, /*非空约束*/ Sage SMALLINT, Sdept CHAR(20) );
CREATE TABLE C
( Cno CHAR(4) PRIMARY KEY, /*主码约束*/
* *
Cname CHAR(40) NOT NULL,
Teacher CHAR(8) , );
CREATE TABLE SC
( Sno CHAR(8) REFERENCES S(Sno), /*外码约束*/ Cno CHAR(4),
Score SMALLINT CHECK(Score<=100), /*检查约束*/ PRIMARY KEY (Sno,Cno), /*主码约束*/ FOREIGN KEY (Cno) REFERENCES C(Cno) /*外码约束*/ );
2. 创建关系部门、职工
CREATE TABLE 部门
( 部门号 char(4) PRIMARY KEY, /*主码*/ )
CREATE TABLE 职工
( 职工号 char(8) PRIMARY KEY,
姓名 char(8),
年龄 smallint CHECK(年龄<=60), 进校时间 date, 部门名称 char(20), 经理名 char(8), 电话 char(11)
* *
)
工资 numeric(10,2),
部门号 char(4) REFERENCES 部门(部门号)
第6章
一、选择题
1. B 2. A 3. B 4. C 5. B 二、关系模式规范化
1. 关系模式: 选修(姓名,专业,课程,任课教师,成绩)
(1)基本函数依赖包括:
姓名→专业 课程→任课教师 (姓名,课程)→专业 (姓名,课程)→任课教师 (姓名,课程)→成绩
(2)关系模式的码为:(姓名,课程)
主属性包括“姓名”和“课程”。
非主属性包括“专业”,“任课教师”和“成绩”。
(3)关系模式达到1NF,但未达到2NF。因为在关系模式中存在非主属性“专业”和“任课教师”部分依赖于码的现象。
(4)关系模式可分解为 :
学生(姓名,专业)
* *
课程(课程,任课教师) 成绩(姓名,课程,成绩)
2. 关系模式: SelectCourse(学号,姓名,年龄,课程名称,成绩,学分)
(1)基本函数依赖包括:
学号→姓名 学号→年龄 课程名称→学分
(学号,课程名称)→成绩 (学号,课程名称)→姓名 (学号,课程名称)→学分 (学号,课程名称)→年龄
(2)关系模式的码为:(姓名,课程名称)
(3)关系模式达到1NF,但未达到2NF。因为在关系模式中存在 等非主属性部分依赖于码的现象。
(4)关系模式可分解为 :
学生(学号,姓名,年龄) 课程(课程名称,学分) 选课(姓名,课程名称,成绩)
3. 关系模式: R(商店编号,商品编号,数量,部门编号,负责人)
(1)基本函数依赖包括:
(商店编号,商品编号)→部门编号 (商店编号,部门编号)→负责人
“姓名”和“学分”
* *
(商店编号,商品编号)→数量
(2)关系模式的码为:(商店编号,商品编号))
(3)关系模式达到2NF,因为在关系模式中不存在非主属性部分依赖于码的现象。但
未达到3NF,因为在关系模式中存在非主属性“负责人”传递依赖于码的现象。
(4)关系模式可分解为 :
R1(商店编号,商品编号,数量,部门编号) R2(商店编号,部门编号,负责人)
第7章
一、选择题
1. B 2. B 3. C 4. C 二、简述题
1. 数据库设计涉及多方面的技术和知识,包括计算机的基础知识、程序设计的方法和技巧、软件工程的原理和方法、数据库的基本知识、数据库设计技术和应用领域的知识。
2. 数据库设计包括需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行与维护六个阶段。
3. 建立E-R图的过程包括:(1)首先确定实体型,(2)确定联系类型,(3)把实体型和联系组合成E-R图,(4)确定实体型和联系的属性。 三、数据库设计 1. 图书管理数据库
(1)图书管理数据库E-R图如下:
* *
(2)转换为关系模式如下:
书库(书库编号,地址,面积)
职工(职工编号,姓名,年龄,书库编号) 图书(图书编号,书名,作者,出版社,书库编号) 读者(读者编号,姓名,单位)
借阅(图书编号,读者编号,借出日期,还书日期)
2. 部门数据库
(1)数据库E-R图如下:
* *
(2)转换为关系模式如下:
职工(职工号,姓名,地址,部门名称) 部门(部门名称,经理,电话) 产品(产品编号,产品名,型号,单价) 销售(部门名称,产品编号,数量) 制造商(厂名,厂址,传真) 生产(产品编号,厂名,数量)
因篇幅问题不能全部显示,请点此查看更多更全内容