数据库原理与技术复习题及参考答案

更新时间:2023-05-24 15:12:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中南大学网络考试 数据库原理与技术复习题及参考答案

中南大学网络教育课程考试复习题及参考答案

数据库原理与技术

一、名词解释:

1.数据管理

2.DB

3.DBMS

4.DBS

5.RDBMS

6.DBA

7.ORDBMS

8.SQL

9.关系

10.关系模型

11.关系系统

12.完整性控制

13.属性

14.2NF

15.候选码

二、单项选择题:

1.任何由二个属性组成的关系可能是 [ ]

A.1NF B.2NF C.3NF D.不能判定

2.数据冗余引起的问题主要是花费 [ ]

A.时间 B.空间 C.时间与空间 D.时间或空间

3.在数据库中,存储冗余数据是 [ ]

A.不应该的 B.应该且合理的

C.合理的但不能过度冗余 D.视情况而定

4.在关系运算中,进行自然联接运算的两个关系 [ ]

A.必有相同的列名 B.必有相同的关键字

C.没有要求 D.必有类型相同的列

5.在数据库系统中,DBMS与DB 的关系是 [ ]

A.DBMS包括DB B.DB 包括DBMS C.不一定的 D.同级关系

6.在SQL的查询语句的WHERE子句中,下列哪个不能出现? [ ]

A.sum B. != C.<> D.<=

7.关系模式 R,S具有共同的属性X,且X是R的主码,则X称为S的 [ ]

A.主码 B.外码 C.关键字 D.相对主码

8.关系系统不会具有如下哪个特征? [ ]

A.支持关系数据结构 B.支持关系数据操作

C.支持关系模型所有特征 D.支持表结构

9.一个外部关键字的属性可以 [ ]

A.1 个 B.不超过2个 C.多个 D.最多1个

10.设属性组 X,Y,Z分别是m, n, k目的,则R(X,Y)÷S(Y,Z)是( )

A. m B.n C. k D. m+n-k

11.数据库与数据仓库关系是 [ ]

A.一个概念 B.包含关系 C.不一样的概念 D.不确定的

12.数据库管理系统是一个 [ ]

A.软件系统 B.硬件系统

C.软硬件结合的系统 D.数据集合 目的。 [ ]

中南大学网络考试 数据库原理与技术复习题及参考答案

13.数据模型是( )数据特征的抽象。 [ ]

A.计算机世界 B.现实世界 C.模型空间 D.概念世界

14.在SQL的查询中,子查询中( )返回多个记录。 [ ]

A.不能 B.能 C.不一定 D.能,但有限制

15.关系模式 R为3NF,则R不存在 [ ]

A.部分依赖 B.传递依赖

C.非主属性对码的传递依赖 D.主属性对码的传递依赖

16.关系模式R为2NF,则R不存在 [ ]

A.部分依赖 B.传递依赖

C.非主属性对码的部分依赖 D.主属性对码的传递依赖

17.关于关系数据库的缺点是 [ ]

A.结构复杂 B.存取效率不高 C.操作复杂 D.操作语句难以理解与记忆

18.关系R的实体完整性控制是指 [ ]

A.主键非空 B.主键唯一

C.主键非空且唯一 D.主键非空或唯一

三、判断题:

1.任何由二个属性组成的关系不可能是 3NF。 [ ]

2.数据冗余引起的问题主要是花费空间。 [ ]

3.DB设计中优化设计的目标是减少 DB设计时间。 [ ]

4.在数据库中,不应该存储任何冗余数据。 [ ]

5.关系中的行、列均可交换。 [ ]

6.在关系统运算中,进行自然联接运算的两个关系必须具有相同关键字。 [ ] 7.在数据库设计中,由分E-R图生成总E-R图,主要是消除结构冲突与命名冲突。 [ ]

8.关系代数运算中,运算对象为两个关系的运算有并、交、选择、投影等。 [ ]

9.常用的关系运算是关系代数和逻辑演算。 [ ]

10.在数据库系统中,DBMS包括DBS和DB。 [ ]

11.SQL的标准库函数 COUNT,SUM等是不允许直接出现在查询语句中的。 [ ]

12.数据库具有数据结构化、较小冗余、易于扩充等特点。 [ ]

13.数据模型包括数据结构,数据操作,完整性约束条件。 [ ]

14.关系模式R,S具有共同的属性 X,且X是R的主码,则X称为S的外部码。 [ ]

15.关系系统是支持关系模型所有特征的系统。 [ ]

16.一个外部关键字的属性至多一个。 [ ] 17.描述事物的符号记录称为数据。 [ ]

18.数据库也就是数据仓库。 [ ] 19.数据库管理系统是一个软件系统。 [ ] 20.数据库系统指软件为主,不包括数据库与用户。 [ ] 21.数据库的数据控制功能包括安全性、并发、分布式控制等控制功能。 [ ] 22.数据模型是现实世界数据特征的抽象。 [ ] 23.在SQL的查询中,子查询中不能返回多个记录,否则会出错。 [ ] 24.关系数据库存取效率不高。 [ ]

四、填空题:

1.关系代数运算中,运算对象为两个关系的运算有并、___________、_____________等。

2.常用的关系运算是_____________与_________________。

3.SQL的标准库函数有SUM、_________等,其中不允许直接出现在查询Where子句中的有SUM、_________。

4.数据模型包括数据结构、_____________与_________________。

5.数据库系统包括计算机硬件、_____________、____________等

6.数据库的数据控制功能包括安全性、_________、_________等控制功能。

中南大学网络考试 数据库原理与技术复习题及参考答案

7.数据库设计主要包括需求分析、____________、___________、运行维护等步骤。

8.数据库系统主要包括关系、____________、___________等类型的系统。

五、简要回答以下问题:

1.为什么说ORACLE10g是完备式关系系统?

2.试比较文件系统与数据库系统的区别与联系?

六、关系代数与SQL综合应用。

1.现有如下E-R图,

实体的主要属性如下,其中下划线部分为主码:

单位(编号、名称、电话、地址、邮编、负责人员工号、 )

员工(员工号、姓名、年龄、性别、职称职务、 )

⑴试用SQL表示(即定义)上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系(一定要表示联系),其中电话以’026-’开头且唯一,性别为“男”、“女”或“其它”,各字段的类型长度可以根据需要自己确定。

⑵在上述定义的每个表中输入一个有代表性的记录,体现相互间的联系。

⑶用SQL与关系代数(两者都要)表示:

找出’新开区规划部’的电话与职工号、姓名

⑷试用SQL表示查询:

找出姓名为“张一通”的员工编号与年龄

⑸删除名称为空值的单位。(2分)

2.现有如下E-R图:

实体的主要属性如下,其中下划线部分为主码:

学校(编号、名称、电话、 )

教职工(职工号、姓名、年龄、性别、职称、 )

⑴试用SQL表示(即定义)上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系(一定要表示联系),其中电话以’0731-’开头且唯一,性别为“男”或“女”,各字段的类型长度可以根据需要自己确定。

⑵在上述定义的每个表中输入一个有代表性的记录,体现相互间的联系。

⑶用SQL与关系代数(两者都要)表示:

(a)找出’中南大学’的电话与职工号、姓名

⑷试用SQL表示查询:

找出平均年龄小于45的学校编号与名称、电话。

⑸删除名称为空值的学校。

⑹建立视图表示关系(学校名称、电话、职工号、姓名、年龄、性别)

中南大学网络考试 数据库原理与技术复习题及参考答案

3.现有如下E-R图:

实体的主要属性如下,其中下划线部分为主码:

公司(编号、名称、电话、 )

职工(职工号、姓名、年龄、性别、 )

⑴试用SQL表示(即定义)上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系(一定要表示联系),其中电话以’0731-’开头且唯一,年龄>=20,各字段的类型长度可以根据需要自己确定。

⑵用SQL与关系代数(两者都要)表示:

(a)找出’张茸芳’的学号与年龄、性别

⑶试用SQL表示查询:

找出平均年龄小于35的公司编号与名称、电话。

⑷建立视图表示关系(公司名称、电话、职工号、姓名、年龄、性别)

4.现有如下E-R图:

实体的主要属性如下,其中下划线部分为主码:

院系(编号、名称、电话、 )

学生(学号、姓名、年龄、性别、 )

⑴试用SQL表示(即定义)上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系(一定要表示联系),其中电话以’88’开头且唯一,年龄>=12,各字段的类型长度可以根据需要自己确定。

⑵用SQL与关系代数(两者都要)表示:

(a)找出’信息学院’的电话与学生学号、姓名

⑶建立视图表示关系(院系名称、电话、学号、姓名、年龄、性别)

5.现有如下E-R图:

实体的主要属性如下,其中下划线部分为主码:

部门(编号、名称、电话、部门负责人号、 )

职工(职工号、姓名、年龄、性别、工资、津贴、 )

⑴试用SQL表示(即定义)上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系(一定要表示联系),其中电话以’0731-’开头,年龄>=18,工资+津贴<=5000,各字段的类型长度可以根据需要自己确定。

⑵用SQL与关系代数(两者都要)表示

(a)找出职工’ 王晓芳’的职工号与年龄、性别

中南大学网络考试 数据库原理与技术复习题及参考答案

⑶试用SQL表示查询:

找出平均工资大于3000的部门编号与名称、电话。

⑷建立视图表示关系(部门名称、电话、职工号、姓名、年龄、性别)

6.现有如下E-R图:

实体的主要属性如下,其中下划线部分为主码: 仓库(仓库号、仓库名、面积、货位数、保管员, ) 零件(零件号、零件名称、规格型号、计量单位、供货商号、价格、 )

库存(?,?,库存量)

⑴试用SQL表示(即定义)上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系(外码),价格在0到10万之间,其中的类型长度可以根据需要确定。?,?处需要填上相应的属性。

⑵用SQL与关系代数表示查询:

a> 找出‘成品库II’(名)的仓库号、面积、货位数。

⑶试用SQL表示查询:

找出‘110110011’号零件的所在的仓库号,仓库名,货位数。

七、关系数据库设计综合应用。

1.有一关系模式R(A、B、C、D),满足的函数赖关系为

F ={ A—>C,AC—>B, B—>D }

(1)求关系模式的码,并写出求解过程。

2.有一关系模式R(A、B、C、D),满足的函数赖关系为

F ={ AB—>C,AC—>B, AC—>D,D—>B }

(1)试判断R的最高范式,并说明理由。

3.有一关系模式R(A、B、C、D、E),满足的函数赖关系为

F ={ A—>BC, AD—>E,B—>D }

(1)求关系模式的码,并写出求解过程。

4.有一关系模式R(A、B、C、D、E),满足的函数赖关系为

F ={ B A, A D, A E, AD C,B D }

(1)试判断R的最高范式,并说明理由。

5.试证明:关系模式R为BCNF,则R一定为2NF。

而关系模式R为2NF,则不一定为BCNF。

6.有一关系模式R(A、B、C、D),满足的函数赖关系为

F ={ B C, BD A,D C }

(1)求关系模式的码,并写出求解过程。

八、SQL编程综合应用。

1.编写程序:

写程序表示产生以’1390731’(7位)开头的11位手机号,后4位都为数字,其中第末位不为4。要求将结果存入数据库表中。

2.编写程序:

编写程序,表示如下要求:

n个学生(可以不用输入,固定一个数即可,如230),平均分成m个班(多余的人尽量平均放到前面

中南大学网络考试 数据库原理与技术复习题及参考答案

的班),请产生学号,其中前四位为’i305’,第五位为班号如1,2分别表示1,2班,第6、7、8位表示序列号,第9位固定为5。要求将结果存入数据库表中。

3.编写程序,并写出程序运行产生的最后一个结果。

用PL/SQL编写程序,表示产生以’i6081’开头的第9位固定为3的6、7、8位不超过236的多个学号。要求将结果存入数据库表中。

4.试编写程序:

用PL/SQL编写程序,表示产生以’09011’开头的第8位不为4而第9位固定为3的6、7、8位不超过136的多个学号。要求将结果存入数据库表中。

5.试编写程序:

产生以’湘A-0’开头的两位字母、两位数字(如湘A-0AA99,湘A-0BB66,湘A-0SS77),的不少于200个的车牌号码,其中要求尾数不为4,并要求存入数据库表v_number(l_number varchar(20),Memo varchar(32))。

6.试编写程序:

写程序表示产生以’888’(3位)开头的6位QQ号存入一个号码表中,表中字段除号码外,还有一个标注字段。后3位都为数字,其中末位一般不为4,但如果最后4位是‘444’,则允许并标注为”特别号”,号码中尾数为6,7,8,9都需标注为”幸运号”。 要求将结果存入数据库表中。

假如已有表 QQ_number ,内有字段qno char(11), spec char(8);

中南大学网络考试 数据库原理与技术复习题及参考答案

参考答案

一、名词解释:

1.数据管理:对数据进行收集、存储、检索、维护、传播等活动的总和。是数据量发展到一定程度计算机管理的重点。

2.DB:在DBMS的集成管理下,有较高的数据独立性,有较少的冗余,相互间有文件的集成.如答案为:存储数据的仓库,给一半分,答:相互间有联系的数据集成,给全分。

3.DBMS:数据库管理系统,管理数据库的软件系统。是有数据库的计算机系统的中心管理软件,一般依赖于操作系统。

4.DBS:DBS:数据库系统(1分),包括DB,DBMS与DBA的计算机系统。

5.RDBMS:关系数据库管理系统,即以表来表示实体及其联系的数据库管理系统,如典型的ORACEL,SQL SERVER等,现在流行的大型数据库系统基本上都是RDBMS。

6.DBA:数据库管理员,负责对数据库进行管理、监控、优化操作的人员。

7.ORDBMS:对象关系数据库管理系统,即在关系数据库管理系统的基础上,支持面向对象的特点,支持类型的定义与对象的定义,支持组合、引用、继承等类型扩充规则。

8.SQL:结构化查询语言,现已成为为关系数据库的标准查语言,有ANSI与ISO标准,还有SQL2 与SQL3两种标准。

9.关系:一组集合的笛卡尔乘积的子集,满足某一特定地条件的集合。一般表示为表结构。

10.关系模型:用表来表示实体与实体间联系的模型。

11.关系系统:支持表结构、且支持选择、投影、联接等关系运算而不依赖于物理路径的系统。

12.完整性控制:保证数据是正确有效相容的一种机制

13.属性:实体的某一特性或特征,常用来描述实体。

14.3NF:关系模式中所有非主属性都是非传递依赖于码的,或:关系模式R中不存在任何非主属性传递依赖于任意一个码,则称R为3NF。

15.候选码:关系的属性或属性集,能唯一标识整个关系,但没有真子集(比其小)能标识关系。或者关系的属性或属性集能完全决定关系的全部属性。

二、单项选择题:

1.C 2.C 3.C 4.D 5.D 6.A 7.B 8.C 9.C 10.A

11.C 12.A 13.A 14.D 15.D 16.C 17.B 18.A

三、判断题:

1.× 2.× 3.× 4.× 5.√ 6.× 7.√ 8.× 9.× 10.×

11.× 12.√ 13.√ 14.√ 15.× 16.× 17.√ 18.× 19.√ 20.×

21.× 22.× 23.× 24.√

四、填空题:

1.关系代数运算中,运算对象为两个关系的运算有并、__交___、___差__、___除____、___联接___等。

2.常用的关系运算是____关系代数____与____关系演算____。

3.SQL的标准库函数有__SUM__、__AVG___、__MAX__等,其中不允许直接出现在查询Where子句中的有__SUM___、__AVG__。

4.数据模型包括数据结构、_数据操作__与___完整性约束条件______。

5.数据库系统包括计算机硬件、____数据库管理系统等软件,数据库,DBA等人员___等。

6.数据库的数据控制功能包括安全性、____完整性,并发___等控制功能。____等,用于数据库应用系统的开发工具主要有VB、___ PB, Delphi____等。

7.数据库设计主要包括需求分析、____概念设计,逻辑设计,物理设计(编码调试)____、运行维护等步骤。

8.数据库系统主要包括关系、_____层次,网状(面向对象)___等类型的系统。

五、简要回答以下问题:

1.为什么说ORACLE10g是完备式关系系统?

答:首先ORACLE是关系系统,因为ORACLE支持SQL,支持表结构,支持选择、投影、联接而不依赖于任务物理路径。

中南大学网络考试 数据库原理与技术复习题及参考答案

其次,在ORACLE中,支持完整性操作如实体完整性用PRIMARY KEY来定义、参照完整性用外键来定义,用户自定义完整性用CHECK或TRIGGER来定义。

2.试比较文件系统与数据库系统的区别与联系?

联系:数据库系统也是文件系统,因为数据库最终是通过操作系统读取的,以文件为最终组织形式。 区别:数据库是有组织的、冗余小的,相互有联系的文件的集合,而文件系统中,文件一般没有联系,冗余问题也较少考虑。

六、关系代数与SQL综合应用。

1.现有如下E-R图:

实体的主要属性如下,其中下划线部分为主码:

单位(编号、名称、电话、地址、邮编、负责人员工号、 )

员工(员工号、姓名、年龄、性别、职称职务、 )

⑴试用SQL表示(即定义)上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系(一定要表示联系),其中电话以’026-’开头且唯一,性别为“男”、“女”或“其它”,各字段的类型长度可以根据需要自己确定。

答案:

create table dept(dno char(6) primary key, dname varchar(32), tel char(12) check( substr(tel, 1,4) = ’026-’),add varchar2(32),post char(6));

create table emp(eno char(7) primary key, ename char(8), age number(2), sex char(2) check(SEX in (’男’,’女’,’其它’), title varchar2(12),dno char(6) references dept (dno)) alter table dept add manager_no char(7) references emp(eno)

⑵在上述定义的每个表中输入一个有代表性的记录,体现相互间的联系。

insert into dept values(‘110011’,’新开区规划部’,’026-88883210’,’湖南长沙星沙开元路16号’,410061,null);

insert into emp values(‘1101101’,’ 张一通’,26,’男’,’科长’,’110011’);

⑶用SQL与关系代数(两者都要)表示:

找出’新开区规划部’的电话与职工号、姓名

select tel, eno, ename

from dept, emp where dept.dno=emp.dno and dname=’新开区规划部’;

Πtel,eno,ename (δdname=‘新开区规划部’(dept)| |emp )

⑷试用SQL表示查询:

找出姓名为“张一通”的员工编号与年龄

select eno, age

from emp where ename=’张一通’;

⑸删除名称为空值的单位。

Delete from dept where dname is null;

2.现有如下E-R图,

实体的主要属性如下,其中下划线部分为主码:

学校(编号、名称、电话、 )

教职工(职工号、姓名、年龄、性别、职称、 )

中南大学网络考试 数据库原理与技术复习题及参考答案

⑴试用SQL表示(即定义)上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系(一定要表示联系),其中电话以’0731-’开头且唯一,性别为“男”或“女”,各字段的类型长度可以根据需要自己确定。

create table university(uno char(6) primary key,uname varchar(32),tel char(12) check substr(tel,1,4)=’0731-’);

create table emp(empno char(8) primary key, ename char(8), age number(2) check(age>=20), sex char(2) check(sex in ‘男’,’女’), title varchar2(8), uno char(6) references university(uno))

⑵在上述定义的每个表中输入一个有代表性的记录,体现相互间的联系。

insert into university values(‘110101’,’ 中南大学’,‘0731-8839628);

insert into emp values(‘303111’,’ 欧阳正菁’,22, ’女’,’讲师’,’110101’);

⑶用SQL与关系代数(两者都要)表示:

(1)找出’中南大学’的电话与职工号、姓名

select empno,ename from emp

where uno in (select uno from university where uname =’中南大学’

Πempno,age (δuname=‘中南大学’(university)| |emp)

⑷试用SQL表示查询:

找出平均年龄小于45的学校编号与名称、电话。

Select uno, uname, tel from university where uno in (select uno from emp having avg(age)<45 groupp by35 group by uno)

⑸删除名称为空值的学校。

delete from university where uname is null;

⑹建立视图表示关系(学校名称、电话、职工号、姓名、年龄、性别)

create view uniemp(学校名称、电话、职工号、姓名、年龄、性别) as

select uname,tel,empno,ename,age,sex from university,emp

where university.uno=emp.uno;

3.现有如下E-R图:

实体的主要属性如下,其中下划线部分为主码:

公司(编号、名称、电话、 )

职工(职工号、姓名、年龄、性别、 )

⑴试用SQL表示(即定义)上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系(一定要表示联系),其中电话以’0731-’开头且唯一,年龄>=20,各字段的类型长度可以根据需要自己确定。

create table corporation(cno char(6) primary key,cname varchar(32),tel char(12) check substr(tel,1,4)=’0731-’);

create table emp(empno char(8) primary key,ename char(8),age number(2) check(age>=20), sex char(2),cno char(6) references corporation(cno))

⑵用SQL与关系代数(两者都要)表示:

找出’张柟芳’的学号与年龄、性别

select empno,age,sex from emp where ename=’ 张柟芳’

Πempsno,age,sex (δename=‘张柟芳’(emp) )

⑶试用SQL表示查询:

找出平均学生年龄大于35的公司编号与名称、电话。

Select cno, cname, tel from corporation where cno in (select cno from emp having avg(age)>35 group by cno, empno)

⑷建立视图表示关系(公司名称、电话、职工号、姓名、年龄、性别)

中南大学网络考试 数据库原理与技术复习题及参考答案

create view sd_stud(公司名称、电话、职工号、姓名、年龄、性别)as select cname,tel,empno,ename,age,sex

from corporation,emp where o=emp.empno)

4.现有如下E-R图:

实体的主要属性如下,其中下划线部分为主码:

院系(编号、名称、电话、 )

学生(学号、姓名、年龄、性别、 )

⑴试用SQL表示(即定义)上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系(一定要表示联系),其中电话以’88’开头且唯一,年龄>=12,各字段的类型长度可以根据需要自己确定。

create table school_dept(sdno char(4) primary key,sdname varchar(32),tel char(7) check substr(tel,1,2)=’88’);

create table stud(sno char(8) primary key,sname char(8),age number(2) check(age>=12), sex char(2),sdno char(4) references school_dept(cno))

⑵用SQL与关系代数(两者都要)表示:

找出’信息学院’的电话与学生学号、姓名

select sno,sname from stud where sdno in (select sdno from school_dept

where sdname =’ 信息学院’

Πsno,age (δsdname=‘信息学院’(school_dept)| |stud )

⑶试用SQL表示查询:

找出平均学生年龄大于21的院系编号与名称、电话。

Select sdno, sdname, tel from school_dept where sno in (select sno from stud having avg(age)>21 group by sdno,sno)

5.现有如下E-R图:

实体的主要属性如下,其中下划线部分为主码:

部门(编号、名称、电话、部门负责人号、 )

职工(职工号、姓名、年龄、性别、工资、津贴、 )

⑴试用SQL表示(即定义)上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系(一定要表示联系),其中电话以’0731-’开头,年龄>=18,工资+津贴<=5000,各字段的类型长度可以根据需要自己确定。

create table dept(dno char(4) primary key,dname varchar(32), tel char(12) check( substr(tel, 1,5) = ’0731-’)

create table emp(eno char(7) primary key,ename char(8),age number(2) check(age>=18),sex char(2), sal number(10,2),comm. Number(10,2) , dno char(4) references dept (dno), check(sal+comm.)<=5000)

⑵用SQL与关系代数(两者都要)表示:

找出职工’李芳芳’的职工号与年龄、性别

select eno, age, sex from emp where ename=’李芳芳’

Πeno, age, sex (δename=‘李芳芳’(emp) )

⑶试用SQL表示查询:

中南大学网络考试 数据库原理与技术复习题及参考答案

找出平均工资大于2000的部门编号与名称、电话。

Select dno,dname,tel from dept where dno in (select dno from emp having avg(sal)>2000 group by dno);

⑷建立视图表示关系(部门名称、电话、职工号、姓名、年龄、性别)

create view dept_emp(部门名称、电话、职工号、姓名、年龄、性别) as

select dname,tel,eno,ename,age,sex from emp,dept where emp.dno=dept.dno

6.现有如下E-R图:

实体的主要属性如下,其中下划线部分为主码: 仓库(仓库号、仓库名、面积、货位数、保管员, ) 零件(零件号、零件名称、规格型号、计量单位、供货商号、价格、 )

库存(?,?,库存量)

⑴试用SQL表示(即定义)上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系(外码),价格在0到10万之间,其中的类型长度可以根据需要确定。?,?处需要填上相应的属性。

⑵用SQL与关系代数表示查询:

a> 找出‘成品库II’(名)的仓库号、面积、货位数。

⑶试用SQL表示查询:

找出‘110110011’号零件的所在的仓库号,仓库名,货位数。

解:(1)??处分别填仓库号,零件号

Create table warehouse(wno char(4) primary key, wname varchar2(32), size number(8,2), l_num number(8),eno char(7) references emp(eno),emp_name char(8))

Create table part(pno char(9) primary key, pname varchar2(32), p-size varchar2(32), cust_no char(7), p_price number(10,2) check(p_price between 0 and 100000))

Create table store(wno char(4) references warehouse.wno, pno char(9) references part.pno, num number(12,2))

⑷用SQL与关系代数表示查询:

a> 找出‘成品库II’号仓库的仓库号、面积、货位数。

select wno, size, l_num from warehouse where wno=’成品库II’

Πwno,size_l_num(δwname=‘成品库II’(warehouse) )

⑸试用SQL表示查询:

找出‘110110011’号零件的所在的仓库号,仓库名,货位数。

Select wno, wname, sum(l_num) from warehouse

where wno in (select wno from store where pno=’ 110110011’);

七、关系数据库设计综合应用。

1.由已知条件可知:函数关系的右属性不包含A,所以码中必包含A

易知A能推出所有其它属性,所以A是码

可知R的码有{A}

2.因为不存在非主属性,所以R为3NF,但有D—>B,所以R不为BCNF。

3.求关系模式的码, 并写出求解过程

解:在F中的右边没有B,则R的码一定含有B,

+又BF ={B,A,D,E,C}, 所以R的码为B且只有B

4.因为有B C,而C为非主属性,则R不为2NF,即R的最高范式为1NF.

5.证明:第一部分,采用反证法,假定R不为2NF,则一定存在非主属性对码的部分依赖,即如码X,非

中南大学网络考试 数据库原理与技术复习题及参考答案

主属性Y,则一定存在X’真包含于X,有X’ Y,由于X’不为码,Y为非主属性,Y\ X’,所以R不为BCNF。

第二部分,可以通过举例说明,R为2NF,而R不为BCNF。

6.解:在F中的右边没有B,所以R的码一定含有B,又:

+BF={B,C},即B不为R的码

+考虑B与其它属性的组合, ABF={A,B,C};

++BCF={A,B,C}; BDF={B,C,D,A};知BD为码

+又ABCF={A,B,C},所以R的码只有BD一个

八、SQL编程综合应用。

1.编写程序:

编写程序产生以’1390731’(7位)开头的11位手机号,要求末位不为4。

提示:程序结构为: DECLARE 变量定义 BEGIN 程序体 END;

DECLARE

BH :NUMBER= 10000;

PH CHAR(4);

BEGIN

while BH< =19999 LOOP

If mod(BH,10)<>4) then

INSERT INTO temp_table (BH)

select ‘139073’||to_char(BH) from dual;

BH :=BH + 1;

end loop;

END;

2.编写程序:

编写程序,表示如下要求:

n个学生(可以不用输入,固定一个数即可,如230),平均分成m个班(多余的人尽量平均放到前面的班),请产生学号,其中前四位为’i305’,第五位为班号如1,2分别表示1,2班,第6、7、8位表示序列号,第9位固定为5。要求将结果存入数据库表中。

参考答案:

/*首先需要有输入语句输入n与m ,也可以直接在程序中指定*/

DECLARE

BH,k, j, k1 number:= 1;

BEGIN

k:=int(n,m); /* 学生数除班数取整,即平均每个班多少人 */

j:=mod(n,m); /* 学生除班数取整后的余数,即平均到每个班后还剩下多少人 */

For i=1..m loop

If i<=j then

k1:=k+1; /* 前面j个班都会多出一个学生 */

else

k1:=k; /* 班号大于j的学生数为平均数k */

End if;

While BH<=k1 LOOP

If BH <10 then

INSERT INTO temp_table (sno)

select ‘i305’||to_char(i)||’00’||to_char(BH)||’5’ from dual;

Else if BH>=100 then

INSERT INTO temp_table (sno)

select ‘i305’||to_char(i)||to_char(BH)||’5’ from dual;

else

中南大学网络考试 数据库原理与技术复习题及参考答案

INSERT INTO temp_table (sno)

select ‘i305’||to_char(i)||’0’||to_char(BH)||’5’ from dual;

end if;

end if;

BH :=BH + 1;

end loop;

end loop;

END;

3.编写程序,并写出程序运行产生的最后一个结果。

用PL/SQL编写程序,表示产生以’i6081’开头的第9位固定为3的6、7、8位不超过236的多个学号。

答案

DECLARE

v_LC number:= 1;

V_no number;

BEGIN

while v_LC< =236 LOOP

v_no:=1000+v_lc;

INSERT INTO temp_table (sno)

Select ‘i608’||to_char(v_no)||’3’ from dual;

v_LC := v_LC + 1;

end loop;

END;

最后一个结果是:i60812363。

4.编程题:

用PL/SQL编写程序,表示产生以’09011’开头的第8位不为4而第9位固定为3的6、7、8位不超过136的多个学号。要求将结果存入数据库表中。

DECLARE

v_LC number:= 1;

BEGIN

while v_LC< =136 LOOP

if mod(v_LC,10)<>4 then

If v_LC <10 then

INSERT INTO temp_table (sno)

select ‘0901100’||to_char(v_LC)||’3’ from dual;

Else if v_LC<100 then

INSERT INTO temp_table (sno)

Select ‘090110’||to_char(v_LC)||’3’ from dual;

ELSE

INSERT INTO temp_table (sno)

Select ‘09011’||to_char(v_LC)||’3’ from dual;

End if;

End if;

else

v_LC := v_LC + 1;

end if;

end loop;

END;

中南大学网络考试 数据库原理与技术复习题及参考答案

5.试编写程序:

产生以’湘A-0’开头的两位字母、两位数字(如湘A-0AA99,湘A-0BB66)的不少于100个的车牌号码,其中要求尾数不为4,并要求存入数据库表v_number(l_number varchar(20),Memo varchar(32))。 DECLARE

car_code number:= 1;

BEGIN

while car_code< 100 LOOP

If car_code <10 and mod(car_code,10)<>4 then

INSERT INTO v_number (l_number) select ‘湘A-0AA0’||to_char(car_code) from dual; INSERT INTO v_number (l_number) select ‘湘A-0BB0’||to_char(car_code) from dual;

Else if mod(car_code,10)<>4 then

INSERT INTO v_number (l_number) Select ‘湘A-0AA’||to_char(car_code) from dual;

INSERT INTO v_number (l_number) Select ‘湘A-0BB’||to_char(car_code) from dual;

end if ;

car_code := car_code + 1;

end loop;

END;

6.试编写程序:

写程序表示产生以’888’(3位)开头的9位QQ号存入一个号码表中,表中字段除号码外,还有一个标注字段。后3位都为数字,其中末位一般不为4,但如果最后4位是‘444’,则允许并标注为”特别号”,号码中尾数为6,7,8,9都需标注为”幸运号”。

假如已有表 QQ_number ,内有字段qno char(11), spec char(8);

假定先建立了表QQ_num(QQ_id,memo)

DECLARE

QQ_code number_:= 8000000;

QQ_idM char;

memom char;

BEGIN

while QQ_code< =8999999 LOOP

if mod(QQ_code,1000)=444 then

qq_idm:=’88’||to_char(qq_code);

memom:=’ 特别号’;

If mod(qq_code,10)<>4 then

If mod(qq_code,10) in (6,7,8,9) then

qq_idm:=’88’||to_char(qq_code);

memom:=’幸运号’;

else

qq_idm:=’88’||to_char(qq_code);

end if;

end if;

INSERT INTO QQ_num (qq_id,memo)

Select qq_idm,memom from dual;

qq_code := qq_code + 1;

end loop;

END;

本文来源:https://www.bwwdw.com/article/8cv4.html

Top