数据库小测+期末总结

Posted 绀香零八

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库小测+期末总结相关的知识,希望对你有一定的参考价值。

复习数据库用,如有错误,欢迎在评论区指正~

试卷结构如下:
一、选择题 【10 ~ 15个,每题1分,总共10 ~ 15分】
二、简答题 【5~6个,总共25分】
三、关系代数+SQL语句题 【总共30分】
关系代数 * 3 + SQL语句必考:建表、建视图、删除、更新、授权 + select * 10
四、分析题 【4个,总共30分左右】
必考两个大题是:ER图转表、规范化,另外两个未知,据说是作业题

本文已转pdf,如需可取:
链接 https://pan.baidu.com/s/1nTaHt61IPCggFKUjsxvWuw
提取码:vvx2

选择题

  1. 数据库的完整性是指数据的( C )。
    ①正确性 ②合法性 ③不被非法存取 ④相容性 ⑤不被恶意破坏
    A、①和③
    B、②和⑤
    C、①和④
    D、②和④

  2. 下列四项中说法不正确的是( C )。
    A、数据库减少了数据冗余
    B、数据库中的数据可以共享
    C、数据库避免了一切数据的重复
    D、数据库具有较高的数据独立性

  3. 设属性A是关系R的主属性,则属性A不能取空值,这是( A )。
    A、实体完整性规则
    B、参照完整性规则
    C、用户定义完整性规则
    D、域完整性规则

  4. 有一名为“列车运营”实体,含有:车次、日期、实际发车时间、 实际抵达时间、情况摘要等属性,该实体主码是( C )。
    A、车次
    B、日期
    C、车次+日期
    D、车次+情况摘要

  5. 有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于( C )。
    A、实体完整性约束
    B、参照完整性约束
    C、用户自定义完整性约束
    D、关键字完整性约束

  6. 数据的逻辑独立性是指( C )。
    A、内模式改变,模式不变
    B、模式改变,内模式不变
    C、模式改变,外模式和应用程序不变
    D、内模式改变,外模式和应用程序不变

  7. 要保证数据库的逻辑独立性,需要修改的是( A )。
    A、模式与外模式之间的映象
    B、模式与内模式之间的映象
    C、模式
    D、三级模式

  8. SQL语言的GRANT和REVOKE语句主要用来维护数据库的( A )。
    A、安全性
    B、完整性
    C、可靠性
    D、一致性

  9. SQL数据定义语言中,表示外码约束的关键字是(B )。
    A、UNIQUE
    B、FOREIGN KEY
    C、PRIMARY KEY
    D、CHECK

  10. 关系数据模型是目前最重要的一种数据模型,它的三个要素分别是( B)。
    A、实体完整性、参照完整性、用户自定义完整性
    B、数据结构、关系操作、完整性约束
    C、数据增加、数据修改、数据查询
    D、外模式、模式、内模式

  11. 对关系模式的规范化,错误的说法是( B )。
    A、规范化的关系消除了操作中出现的异常现象
    B、规范化的规则是绝对的,规范化的程度越高越好
    C、关系模式规范化的过程是通过对关系模式进行分解来实现的
    D、对多数应用来说,分解到3NF就足够了

  12. 在关系数据库系统中,为了简化用户的查询操作,而又不增加数据的存储空间,常用的方法是创建( C )。
    A、另一个表
    B、游标
    C、视图
    D、索引

  13. 为了对表中的各行进行快速访问,应对此表建立( C )。
    A、约束
    B、规则
    C、索引
    D、视图

  14. 一个关系只有一个( D )。
    A、 候选键
    B、外键
    C、超键
    D、主键

  15. 设关系R,S的元组个数分别为K,L,R与S自然连接结果中的元组个数为M,则下面最正确的说法是( D )。
    A、M≤min(K,L)
    B、M≥max(K,L)
    C、min(K,L)≤M≤max(K,L)
    D、K,L,M之间的关系不确定

  16. 设属性组X,Y,Z分别是m,n,k目关系,则R(X,Y)÷S(Y,Z)是( A )目关系
    A、m
    B、m+k
    C、n
    D、m+n

  17. 在视图上不能完成的操作是( C )。
    A、更新视图
    B、查询
    C、在视图上定义新的基本表
    D、在视图上定义视图

  18. 数据独立性是指( C )。
    A、用户与数据独立
    B、用户与应用程序相互独立
    C、应用程序与所用的数据相互独立
    D、应用程序与数据库管理系统独立

  19. 以下哪项不属于实现数据库系统安全性的主要技术方法(D )。
    A. 存取控制技术
    B. 视图技术
    C. 审计技术
    D. 出入机房登记和加防盗门

  20. 关于关系下面正确的为( D )。
    A、关系是笛卡儿积的任意子集
    B、不同属性不能出自同一个域
    C、实体可用关系来表示,而实体之间的联系不能用关系来表示
    D、关系的每一个分量必须是不可分的数据项

  21. 关系模式的候选关键字可以有( C )。
    A、 0个
    B、 1个
    C、 1个或多个
    D、多个

  22. SQL中,与“NOT IN”等价的操作符是( D )。
    A、=SOME
    B、< >SOME
    C、=ANY
    D、< >ANY

  23. 为了对表中的各行进行快速访问,应对此表建立( C )。
    A、约束
    B、规则
    C、索引
    D、视图

  24. 在下列关于关系的陈述中,错误的是( B )
    A、 表中任意两行的值不能相同
    B、 表中任意两列的值不能相同
    C、 行在表中的顺序无关紧要
    D、列在表中的顺序无关紧要

  25. 关系模型主要具有以下特点( D )
    Ⅰ 关系模型的概念单一,实体以及实体之间的联系都用关系来表示;
    Ⅱ 以关系代数为基础;
    Ⅲ 数据独立性强;
    Ⅳ 关系数据库语言是非过程化的。
    A、Ⅰ、Ⅱ和Ⅲ
    B、Ⅰ、Ⅱ和Ⅳ
    C、Ⅱ、Ⅲ和Ⅳ
    D、都是

  26. SQL中,下列涉及空值的操作,不正确的是 ( C )
    A、 AGE IS NULL
    B、 AGE IS NOT NULL
    C、 AGE = NULL
    D、 NOT (AGE IS NULL)

  27. 下列四项中,不属于数据库特点的是( C )
    A、 数据共享
    B、数据完整性
    C、 数据冗余很高
    D、数据独立性高

  28. 数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为( C )。
    A、 数据定义功能
    B、 数据管理功能
    C、数据操纵功能
    D、 数据控制功能

  29. 下列四项中,不属于关系数据库特点的是( D )。
    A、数据冗余小
    B、数据独立性高
    C、数据共享性好
    D、多用户访问

  30. 在关系数据库中,标识元组的属性或属性组称为( A )
    A、码
    B、 索引
    C、 字段
    D、 标识

  31. 3NF通过( C )规范为BCNF。
    A、消除非主属性对码的部分函数依赖
    B、消除非主属性对码的传递函数依赖
    C、消除主属性对码的部分和传递函数依赖
    D、消除非平凡且非函数依赖的多值依赖

  32. 完整性检查和控制的防范对象是下列哪项,防止它们进入数据库( A)
    A、不合语义的数据
    B、 非法用户
    C、 非法读数据
    D、非法写数据

  33. 对关系模式的规范化,错误的说法是( B )。
    A、规范化的关系消除了操作中出现的异常现象
    B、规范化的规则是绝对的,规范化的程度越高越好
    C、关系模式规范化的过程是通过对关系模式进行分解来实现的
    D、对多数应用来说,分解到3NF就足够了

  34. 要保证数据库的数据独立性,需要修改的是( A )。
    A、三层模式之间的两级映像
    B、 模式与内模式
    C、模式与外模式
    D、 三层模式

  35. DB的三级模式结构中最接近用户的是( C )。
    A、内模式
    B、概念模式
    C、外模式
    D、用户模式

  36. 已知成绩关系如图所示。请问,执行SQL语句:

    SELECT COUNT(DISTINCT学号) FROM成绩 WHERE分数>60
    查询结果是( B )。
    A、1
    B、2
    C、3
    D、4

  37. 设有一个关系:DEPT(DNO,DNAME),如果要找出第三个字母为W,并且至少包含4个字母的DNAME,则查询条件子句应写成:WHERE DNAME LIKE( B )。

    A、‘_ _ %W _’     
    B、‘_ _W% _’     	
    C、‘_ % W _ _’    
    D、‘_ W _ %
  38. DB的三级模式结构中最接近底层硬件的是( A )。
    A、内模式
    B、外模式
    C、概念模式
    D、用户模式

  39. SQL中,“SALARY IN(1000,2000)”的语义是(D )。
    A、 SALARY<=2000 AND、 SALARY>=1000
    B、 SALARY<2000 AND、 SALARY>1000
    C、 SALARY=1000 AND、 SALARY=2000
    D、 SALARY=1000 OR SALARY=2000

  40. 对由SELECT–FROM—WHERE—GROUP–ORDER组成的SQL语句,其在被DBMS处理时,各子句的执行次序为( C )。
    A、SELECT—FROM—GROUP—WHERE—ORDER
    B、FROM——SELECT–WHERE——GROUP——ORDER
    C、FROM——WHERE——GROUP——SELECT——ORDER
    D、SELECT——FROM——WHERE——GROUP——ORDER

  41. 数据表中某一个属性的值为NULL,则表示该数据值为( D )。
    A、 0
    B、 空字符
    C、空字符串
    D、无任何数据

  42. 已知关系:厂商(厂商号,厂名),厂商号为主码;产品(产品号,颜色,厂商号),产品号为主码,厂商号为外码。假设两个关系中已经存在如图所示元组:

    若再往产品关系中插入如下元组:
    ①(P03,红,C02)
    ②(P01,蓝,C01)
    ③(P04,白,C01)
    ④(P05,黑,C04)
    能够插入的元组是( B )。
    A、 ①②④
    B、①③
    C、 ①②
    D、 ①④

  43. 关系规范化中的删除操作异常是指(A)。
    A、不该删除的数据被删除
    B、不该插入的数据被插入
    C、应该删除的数据未被删除
    D、应该插入的数据未被插入

    1.插入失败是该插入的没插入,异常是不该插入的被插入。
    2.删除失败是该删除的没删除,异常是不该删除的被删除。
    3.关系能规范化中的,不属于2NF的关系就会出现异常。

  44. 从E-R模型关系向关系模型转换时,一个m:n联系转换为关系模式时,该关系模式的码是(C)。
    A、M端实体的码
    B、N端实体的码
    C、M端实体码与N端实体码组合
    D、重新选取其他属性

  45. 已知关系R={A,B,C,D,E,F},F={A→C, BC→DE,D→E,CF→B},则
    (AB)*的闭包是(B)。
    A、ABCDEF
    B、ABCDE
    C、ABC
    D、AB

  46. 设有关系R(A,B,C)和S(C,D)。与SQL语句select A,B,D from R,S where R.C=S.C等价的关系代数表达式是(B)。
    在这里插入图片描述

简答题

  1. 解释数据库系统中的数据独立性。 P30

            数据独立性包括数据的逻辑独立性和物理独立性。
            当模式改变时,由数据库管理员对各个外模式/模式映像做相应的改变,可以使外模式保持不变。应用程序是根据外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性。
            当数据库的存储结构改变时,由数据库管理员对模式/内模式映像做相应的改变。可以使模式保持不变,从而不必改变应用程序,保证了数据与程序的物理独立性。

  2. 简述实现数据库安全性控制的常用技术。 P137

    用户身份鉴别、多层存取控制、视图、审计、数据加密

  3. E-R图转换为关系模型的一般原则(给几分答几条) P232

    1.一个实体型转换为一个关系模式
    2.一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
    3.一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
    4.一个m:n联系转换为一个关系模式
    5.三个或三个以上实体间的一个多元联系转换为一个关系模式。
    6.具有相同码的关系模式可合并

  4. 什么是事务?事务的ACID特性分别是什么? P293~P294

            事务是是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。

            事务具有4个特性:原子性、一致性、隔离性和持续性。
            原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做
            一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态一致性状态。当数据库中只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态 。
            隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰
            持续性:一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。

  5. 什么是数据库的恢复? P295

    数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能,这就是数据库的恢复。

  6. 登记日志文件时,为什么必须要先写日志文件后写数据库? P300

            把对数据库的修改写到数据库和把表示这个修改的日志记录写到日志文件中是两个不同的操作。在这两个操作之间可能发生故障,即这两个写操作只完成了一个。如果先写了数据库修改,而在运行记录中没有登记下这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性。所以为了安全,一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。

  7. 在数据库中为什么要有并发控制? P309+P310

            数据库是一个共享资源,可以供多个用户使用。当多个用户并发地存取数据库时就会产生多个事务同时存取同一数据的情况 。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏事务的一致性和数据库的一致性。所以数据库管理系统必须提供并发控制机制。并发控制机制是衡量一个数据库管理系统性能的重要标志之一。

  8. 什么是两段锁协议? P319

            两段锁协议指所有事务必须分两个阶段对数据项加锁和解锁。
            “两段”锁的含义是,事务分为两个阶段, 第一阶段是获得封锁,也称为扩展阶段,在这个阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁 ;第二阶段是释放封锁,也称为收缩阶段,在这个阶段,事务可以释放任何数据项上的任何类型的锁,但是不能再申请任何锁 。

关系代数和SQL语句:

基于课本上的三张表,完成以下题目:
一、用关系代数语句完成下列操作:

  1. 查询“物理”系的男同学的姓名;

  2. 查询选修了“数据结构”课程的学生姓名及成绩;

  3. 查询至少选修了95001选修的全部课程的同学学号;
    在这里插入图片描述

二、用SQL语句完成下列操作:

  1. 建立选课表SC,要求建表语句中有主码约束,外码约束。(必考)

    create table SC(
    	sno varchar(15),
    	cno varchar(5),
    	grade int,
    	primary key(sno,cno),
    	foreign key(cno) references C(cno),
    	foreign key(sno) references S(sno)
    );
    
  2. 建立一个“数学”系的学生视图,MA_Student(sno,sname,ssex);(必考)

    create view MA_Student
    as
    select sno,sname,ssex
    from S
    where sdept='数学';
    
  3. 授予用户U1对COURSE表进行添加操作的权限; (必考)

    grant insert on COURSE to U1
    
  4. 查询选修了“数据库”且成绩及格的学生姓名及其成绩,将结果按成绩降序排列;

    select sname,grade from SC
    inner join C on SC.cno=C.cno
    inner join S on SC.sno=s.sno 
    where cname='数据库' and grade>=60
    order by grade desc;
    
  5. 检索姓名以“李”打头的所有学生的姓名和年龄;

    select sname,sage from S where sname like '李%'
    
  6. 求年龄大于所有女同学年龄的男学生姓名和年龄;

    select sname,sage from S where sage>all(select sage from S where ssex='女') and ssex='男';
    
  7. 查询学生201215121选修课程的总学分数;

    select sum(ccredit) from SC 
    inner join C on SC.cno=C.cno
    where sno='201215121';
    
  8. 查询李勇同学不学的课程的课程号和课程名;

    select cno,cname from c where cno not in (select cno from sc,s where sc.sno=s.sno and sname='李勇')
    
  9. 查询至少有3门课程成绩及格的学生学号;

    select sno from sc where grade>=60 group by sno having count(cno)>2;
    
  10. 查询选修了3门以上课程的学生学号;

    select sno from sc group by sno having count(cno)>2;
    
  11. 求各个课程号及相应的选课人数;

    select cno,count(sno) from sc group by cno;
    
  12. 查询平均成绩大于85的学生学号和姓名;

    select sc.sno,sname from sc,s where sc.sno=s.sno group by sc.sno having avg(grade)>85;
    
  13. 查询没选修过2学分课程的同学的学号、姓名;

    select s.sno,sname from s,sc where s.sno=sc.sno and cno not in (select cno from c where ccreadit=2);  
    -- 不相关子查询
    
    select sno,sname from s where not exists (select * from c,sc where c.cno=sc.cno and s.sno=sc.sno and ccredit=2);  
    -- 相关子查询
    
  14. 查询选修了全部课程的学生的学号;(必考原题)

    select sno from s where not exists 
    	(select * from c where not exists
    		(select * from sc where sno=s.sno and cno=c.cno)
    );
    

    相当于双层for循环 最里面一旦发现有课程未选修,第二层循环为真第一层循环为假就否定掉当前学生学号
    S表遍历1遍,C表遍历count(sno)遍,SC表遍历count(sno)*count(cno) 遍。

  15. 将全体“物理”系学生的选课记录删除;(必考)

    delete from SC where sno in (select sno from s where sdept='物理');
    
  16. 将全体“计算机科学”系学生的成绩置零;(必考)

    update SC set grade=0 where sno in (select sno from s where sdept='计算机科学');
    

分析题

一、设有关系模式R(U,F),其中属性集合U={A,B,C,D,E, F},函数依赖集合F={A→C,AB→D,C→E,D→F}。回答下列问题:

  1. 关系R的侯选码是什么。

    AB

  2. R属于第几范式?并说明理由。

    第一范式

    R中存在非主属性对主属性的部分依赖:A–>C

  3. 如果关系R不属于3NF,请将关系R逐步分解为3NF。写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。

    首先消除非主属性对主属性的部分函数依赖:A–>C
    将关系R分解:
    R1(A,C,E)
    R2(A,B,D,F)

    然后消除关系R1中非主属性对主属性的传递依赖A–>C,C–>E,
    和关系R2中 非主属性对主属性的传递依赖AB–>D,D–>F
    进一步分解R1:
    R11(A,C)
    R12(C,E)
    进一步分解R2:
    R21(A,B,D)
    R22(D,F)

二、假设某旅馆业务规定,每个帐单对应一个顾客,帐单的发票号是唯一的,帐单中包含一个顾客姓名、到达日期和顾客每日的消费明细,帐单的格式如下表所示。
在这里插入图片描述
如果根据上述业务规则,设计一个关系模式:
R(发票号,到达日期,顾客姓名,消费日期,项目,金额)。
试回答下列问题:

  1. 写出R基本函数依赖。

    发票号–>到达日期,顾客姓名   【看这题几分,几分写成几个】
    发票号,消费日期,项目–>金额

  2. R的候选码是什么?

    (发票号,消费日期,项目)

  3. 判断R最高可达到第几范式,为什么?

    R∈1NF
    因为R中存在非主属性对主属性的部分依赖:发票号–>到达日期,顾客姓名

  4. 给出R的一个的3NF分解。

    R1(发票号,到达日期,顾客姓名)
    R2(发票号,消费日期,项目,金额)

填空题 [不考]

  1. SELECT语句的六个子句分别是:selectfromwheregrouporderhaving

  2. 最常见的数据模型是:层次模型、网状模型关系模型

  3. 数据库系统一般由数据库数据库管理系统应用程序、DBA和用户构成。

  4. 数据模型由三部分组成:数据结构、数据操作完整性约束

  5. 数据库中的二级映像为模式/内模式外模式/模式

  6. SQL数据定义语言中,表示外码约束的关键字是foreign key

  7. SQL数据定义语言中,表示主码约束的关键字是primary key

  8. 关系操作的特点是集合操作。

  9. SELECT 语句查询条件中的谓词“=ANY”与运算符IN等价。

  10. 在数据库中,只存放视图的定义,不存放视图对应的数据。

  11. 如果两个实体之间具有m: n联系,则将它们转换为关系模型的结果是 3 个表。

  12. 若有关系模式R(A,B,C)和 S(C,D,E),SQL语句SELECT A, D FROM R,S WHERE R.C=S.C AND E= '80’;对应的系代数表达式是

以上是关于数据库小测+期末总结的主要内容,如果未能解决你的问题,请参考以下文章

数据库小测+期末总结

洛谷P3954 成绩民间数据

noip2017普及 luogu3954 成绩

开学小测总结(下)

个人总结

Android 期末课堂代码总结