一、填空题(每题2分,共10分)
1. 索引字段值不唯一,应该使用的索引类型为( 普通索引 )
2. 只有满足联接条件的记录才包含在查询结果中,这种联接为( 内联接)
3. E-R模型的组成包括那些元素(实体 )( 属性 )(关系 )
4. 事务所具有的特性有( 原子性 )(一致性 )( 隔离性 )(持久性 )
5、结构化程序设计的三种基本逻辑结构是(顺序结构),(选择结构),(循环结构)。
二、选择提 (每题1分,共20分)
1、在删除整表数据,同时保留表结构时,采用( C )的效率比( A )要高;
A. delete B. drop table C. truncate Table
2、数据库管理系统中,能实现对数据库中的数据进行插入/修改/删除的功能称为(C);
A.数据定义功能 B.数据管理功能 C.数据操作功能 D.数据控制功能
3、24、在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过(B)。
A:候选键 B:主键 C:外键 D:超键
4、数据库管理系统DBMS S是 ( D);
A.信息管理的应用软件 B.数据库系统+应用程序
C.管理中的数据库 D.管理数据的软件
5、关系数据库中,实现表与表之间的联系是通过 (B)。
A、实体完整性规 B、参照完整性规则
C、用户自定义的完整性 D、值域
6、设有部门和职员两个实体,每个职员只能属于一个部门,一个部门可以有多名职员,则部门与职员实体之间的联系类型(B)。
A、m:n B、1:m C、m:1 D、1:1
7、设有课程和学生两个实体,每个学生可以选修多个课程,一个课程可以有多名学生选修,则课程与学生实体之间的联系类型( A )。
A、m:n B、1:m C、m:1 D、1:1
8、如果一个班只能有一个班长,而且一个班长不能同时担任其它班的班长,班级和班长两个实体之间的关系属于(D)。
A、m:n B、1:m C、m:1 D、1:1
9、索引字段值不唯一,应该选择的索引类型为( B )。
A:主索引 B:普通索引 C:候选索引 D:唯一索引
10、如果指定参照完整性的删除规则为"级联",则当删除父表中的记录时( C )。
A:系统自动备份父表中被删除记录到一个新表中
B:若子表中有相关记录,则禁止删除父表中记录
C:会自动删除子表中所有相关记录
D:不作参照完整性检查,删除父表记录与子表无关
11、设有两个数据库表,父表和子表之间是一对多的联系,为控制子表和父表的关联,可以设置"参照完整性规则",为此要求这两个表( B )。
A:在父表连接字段上建立普通索引,在子表连接字段上建立主索引
B:在父表连接字段上建立主索引,在子表连接字段上建立普通索引
C:在父表连接字段上不需要建立任何索引,在子表连接字段上建立普通索引
D:在父表和子表的连接字段上都要建立主索引
12、把实体-联系模型转换为关系模型时,实体之间多对多联系在模型中是通过(C)_。
A:建立新的属性来实现 B:建立新的关键字来实现
C:建立新的关系来实现 D:建立新的实体来实现
13、用树形结构来表示实体之间联系的模型称之为( B)
A. 关系模型 B. 层次模型 C.网状模型 D. 数据模型
14、SQL语句中修改表结构的命令是( C )_。
A:MODIFY TABLE B:MODIFY STRUCTURE
C:ALTER TABLE D:ALTER STRUCTURE
15 、用SQL语句建立表时将属性定义为主关键字,应使用短语( B )。
A:CHECK B:PRIMARY KEY
C:FREE D:UNIQUE
16、SQL实现分组查询的短语是 ( B )。
A:ORDER BY B:GROUP BY C:HAVING D:ASC
17、数据库系统中采用*技术的目的是为了保证( A)
A. 数据的一致性 B. 数据的可靠性 C. 数据的完整性 D. 数据的安全性
18、在数据库设计中,表示用户业务流程的常用方法是(A)
A. DFD B. 程序流程图 C. E-R图 D. 数据结构图
19、为"歌手"表增加一个字段"最后得分"的 SQL 语句是(A)。
A)ALTER TABLE 歌手 ADD 最后得分 F(6,2)
B)ALTER DBF 歌手 ADD 最后得分 F 6,2
C)CHANGE TABLE 歌手 ADD 最后得分 F(6,2)
D) CHANGE TABLE 学院 INSERT 最后得分
20、插入一条记录到"评分"表中,歌手号、分数和评委号分别是"1001"、9.9 和"105",
正确的 SQL 语句是(C)。
A)INSERT VALUES("1001",9.9, "105")INTO;
评分(歌手号,分数,评委号)
B)INSERT TO 评分(歌手号,分数,评委号);
VALUES("1001",9.9,"105")
C)INSERT INTO 评分(歌手号,分数,评委号);
VALUES("1001",9.9,"105")
D)INSERT VALUES("100"9.9"105")TO;
评分(歌手号,分数,评委号)
三、SQL基础题( 共30分)
设教学数据库Education有三个关系:
学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学习关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME)
查询问题:
(1)检索计算机系的全体学生的学号,姓名和性别; 3分
(2)检索学习课程号为C2的学生学号与姓名; 3分
(3)检索选修课程名为“DS”的学生学号与姓名; 3分
(4)检索选修课程号为C2或C4的学生学号; 3分
(5)检索至少选修课程号为C2和C4的学生学号; 3分
(6)检索不学C2课的学生姓名和年龄; 5分
(7)检索学习全部课程的学生姓名; 5分
(8)查询所学课程包含学生S3所学课程的学生学号。 5分
(1)检索计算机系的全体学生的学号,姓名和性别;
SELECT Sno,Sname,Sex
FROM S
WHERE Sdept =’CS’;
(2)检索学习课程号为C2的学生学号与姓名;
1.SELECT Sno,Sname FROM S WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno=‘C2’)
2.SELECT S.Sno,Sname FROM S,SC WHERE S.Sno=SC.Sno AND SC.Cno=‘C2’;
(3)检索选修课程名为“DS”的学生学号与姓名
本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C表中,但S和C表没有直接联系,必须通过SC表建立它们二者的联系。 C → SC → S
基本思路:
(1)首先在C表中找出“DS”课程的课程号Cno;
(2)然后在SC表中找出Cno等于第一步给出的Cno 集合中的某个元素Cno;
(3)最后在S关系中选出Sno等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname送入结果表列。
SELECT Sno,Sname
FROM S
WHERE Sno IN(SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=‘DS’));
(4)检索选修课程号为C2或C4的学生学号;
SELECT Sno
FROM SC
WHERE Cno=‘C2’ OR Cno=‘C4’;
(5)检索至少选修课程号为C2和C4的学生学号;
SELECT Sno
FROM SC X,SC Y
WHERE X.Sno=Y.Sno AND X.Cno=‘C2’ AND Y.Cno=‘C4’ ;
(6)检索不学C2课的学生姓名和年龄;
A.SELECT Sname FROM S WHERE Sno NOT IN ( SELECT Sn FROM SC WHERE Cno=‘C2’);
或者
B.SELECT Sname FROM S WHERE NOT EXISTS ( SELECT * FROM SC WHERE SC.Sno=S.Sno AND Cno=‘C2’);
(7)检索学习全部课程的学生姓名;
在表S中找学生,要求这个学生学了全部课程。换言之,在S表中找学生,在C中不存在一门课程,这个学生没有学。
SELECT Sname
FROM S
WHERE NOT EXISTS
(SELECT *
FROM C
四、简答题(每题5分,共20分,其中1,2 任选一题,其他必做题)
1. Oracle的索引有几种,各有何用途
唯一索引:索引列的所有值都只能出现一次,即必须唯一
非唯一索引:索引列的值可以重复
函数索引:保存了数据列基于function返回的值
反向索引:转了索引码中的字节,是索引条目分配更均匀,用于减少索引叶的竞争。
位图索引:适合与决策支持系统;做UPDATE代价非常高;非常适合OR操作符的查询;基数比较少的时候才能建位图索引
域索引:主要用于多媒体数据;
2、mysql存储引擎常用的有3种,分别是什么,各自分别有什么特点,应用场景是哪些?
1.1 innoDB
优点:支持事务管理,崩溃修复能力和并发控制,支持自动增长列,支持外键;
缺点:读写效率较差,占用数据空间大;
应用场景:适合于对事务完整性要求高,要求并发控制,需要频繁更新,删除等操作的数据库;
1.2 MyISAM
优点:占用空间小,处理速度快;
缺点:不支持事务的完整性和并发性;
应用场景:适用于表主要用于插入新纪录和读出记录,对应用完整性和并发性要求低;
1.3 MEMORY存储引擎
优点:处理速度快;
缺点:数据易丢失,生命周期短;
应用场景:适用于读写速度快,对数据安全性要求低,使用相对较小的数据库表;
2. 请描述char,varchar,nvarchar的区别
CHAR:存储定长数据
VARCHAR:存储变长数据
NVARCHAR:存储变长数据, Unicode编码,支持多语言
3. 何为范式,有几种,试列举并简要描述之
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小
第一范式(1NF)实体中的某个属性有多个值时,必须拆分为不同的属性
第二范式(2NF)要求数据库表中的每个实例或记录必须可以被唯一地区分
第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息
4. 试论Oracle与SQL Server, MYSQL 三类之区别
此题答案可能比较广泛,故不列出标准
五、综合题(每题10分,共30分,第1题必做,其余任选两题)
--以下各题可能存在多种答案,故不列出标准
1. 请以任何语言实现1+2+3+…+100
2. 请以任何语言实现求1-100之间的质数
3. 门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现在只允许进门一次,确定开关和灯的对应关系?
4. 烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?
5. 如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?
6. 12个球一个天秤,现知道只有一个和其它的重量不同,问用天秤怎样称才能用三次就找到那个球。(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)
7. 在9个点上画10条直线,要求每条直线上至少有三个点?
8. 在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?