期末复习样卷

news2024/11/28 8:41:26

期末复习样卷

目录

  • 期末复习样卷
  • 选择题
  • 简答题
    • 1. 画E-R图并将其转换为适当的关系模型
    • 2. 规范化模式分解——教学关系(学号,姓名,年龄,性别,系别,系主任,课程名,成绩)
    • 3.关系代数-检索选修课程号为C2或C4的学生的学号
    • 4. 关系代数-检索没有学习课程号为C2的学生的学号与姓名
  • SQL题
    • 1. 表定义:创建供应情况表
    • 2. 建立城市为上海的客户2016年的订单信息视图
    • 3. 在学生表student上创建触发器,插入学生记录,同步更新班级表class中人数
    • 4. 存储过程:返回学生总数,男生人数,女生人数
    • 5. 插入图书信息
    • 6. SQL更新:删除-删除“吴宾”的所有成绩记录
    • 7. SQL更新:修改“王大力”的“计算机导论”课程成绩为70
    • 8. 查询产品类别名称为“一体机”且一次销售数量在45及以上的产品销售信息
    • 9.查询一次订购了4,7,8号产品的客户名及电话
    • 10. 统计各级职位(不含NULL)员工人数,按照人数降序排列。

选择题

  1. 写一个修改到数据库中,与写一个表示这个修改的运行记录到日志文件中是两个不同的操作,对这两个操作的顺序安排应该是 B
    A .前者先做

    B .后者先做
    C . 由程序员在程序中作安排

    D .哪一个先做由系统决定

  2. 数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的( D)。
    A 可靠性
    B 一致性
    C 完整性
    D 安全性

  3. 数据库系统的数据独立性是指( B )。
    A 不会因为某些存储结构的变化而影响其他的存储结构
    B 不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序
    C 不会因为存取策略的变化而影响存储结构
    D 不会因为数据的变化而影响应用程序

  4. 数据模型的三要素是( A )。
    A 数据结构、数据操作和完整性约束
    B 关系模型、层次模型、网状模型
    C 实体、属性和联系
    D 外模式、模式和内模式

  5. 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特性的是( A )。
    A 模式
    B 内模式
    C 存储模式
    D 外模式

  6. 数据库系统的基本特点是( B )。
    A 数据结构化;数据独立性高:数据冗余大,易移植;数据由DBMS统一管理和控制
    B 数据结构化;数据独立性高:数据冗余小,易扩充;数据由DBMS统一管理和控制
    C 数据结构化;数据独立性高;数据冗余大,易扩充;数据由文件系统统一管理和控制
    D 数据非结构化;数据独立性高;数据冗余小,易扩充;数据由文件系统统一管理和控制

  7. 在关系模型中,一个关键字是( D )。

    A 不能由全部属性组成

    B 由一个属性组成

    C 由一个或多个任意属性组成

    D 可由一个或多个能惟一标识该关系模式中任意元组的属性组成

  8. 数据库的 B是指数据的正确性和相容性.

    A .安全性

    B .完整性

    C .并发控制

    D .恢复

  9. StudentSCCourse表中已有数据如下:

    Student:

    SnoSnameSdeptSsexSage
    1234501aaaCS21
    1234502bbbCS20
    1234503cccIS22

    Course

    CnoCnameCpnoCcredit
    C01UuuuC081
    C02VvvvC072
    C03WwwwC062
    C10XxxxC153
    C11YyyyC161
    C12ZzzzC204

    SC

    SnoCnoGrade
    1234501C0180
    1234501C0288
    1234502C0190
    1234503C1085
    1234503C1191

    若在SC表上建立外码:
    Foreign Key (Sno) References Student(Sno) ON Delete Cascade

    ON Update NO Action,

    Foreign Key (Cno)References Course(Cno)ON Delete Cascade

    ON Update NO Action,

    则下面的操作不正确的是 D

    A.在Student表中删除一个学生的基本信息:(学号1234501,姓名aaa,系别CS,性别男,年龄21),则SC表中第一行、第二行选课记录均被删除;

    B.将Course表中的课程号C12修改为C13

    C.删除SC表上第二行选课记录。

    D.将Course表中的课程号C01修改为C15

    下面的操作不正确的是D,将Course表中的课程号C01修改为C15会破坏SC表中的外键约束,因为SC表中的第一行记录的Cno为C01,而C01并不存在于Course表中,因此无法更新外键所关联的记录,会导致更新失败。

    其他操作均正确,具体说明如下:

    A. 在Student表中删除一个学生的基本信息:(学号1234501,姓名aaa,系别CS,性别男,年龄21),则SC表中第一行、第二行选课记录均被删除。这是因为在SC表中,学号为1234501的学生选修了C01和C02两门课程,而这两门课程都与学生信息表中的学号为1234501的记录关联,因此在学生信息表中删除该记录时,SC表中与该学生相关的选课记录也会被级联删除。

    B. 将Course表中的课程号C12修改为C13,这个操作不会影响SC表中的记录,因为SC表中的选课信息是根据课程号和学号来关联的,修改了课程号不会影响到SC表中的学生选课信息。

    C. 删除SC表上第二行选课记录,这个操作也是正确的,因为SC表的删除操作不会影响到其他表。

  10. 事务的隔离性是指 C

    A .事务中包括的所有操作要么都做,要么都不做
    B .事务一旦提交,对数据库的改变是永久的
    C .一个事务内部的操作及使用的数据对并发的其他事务是隔离的
    D .事务必须使数据库从一个一致性状态变到另一个一致性状态

  11. 设有两个事务Tl 、T2 ,其并发操作如图所示,下列评价正确的是 .C

    A .该操作不存在问题

    B .该操作丢失修改
    C .该操作不能重复读

    D .该操作读“脏”数据
    在这里插入图片描述

  12. 数据库系统并发控制的主要方法是采用C 机制。
    A .拒绝

    B .改为串行
    C .封锁

    D .不加任何控制

  13. 数据恢复的建立冗余数据的常用技术A。

    A. 数据转储和登记日志文件

    B. 数据备份和加密技术

    C. 视图与审计

    D. 数据库镜像

  14. 下列属于数据库物理设计工作的是 B

    A .将E-R 图转换为关系模式

    B .选择存取路径

    C . 建立数据流图

    D .收集和分析用户活动

  15. 在数据库设计中,用E-R 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库 设计的B阶段。

    A .需求分析

    B .概念设计

    C .逻辑设计

    D .物理设计

简答题

1. 画E-R图并将其转换为适当的关系模型

某IT公司的数据库信息:

①部门具有部门编号、部门名称、办公地点;

②部门员工具有员工编号、姓名、级别,员工只在一个部门工作;

③每个部门有唯一一个部门员工作为部门经理;

④实习生具有实习编号、姓名、年龄,只在一个部门实习;

⑤项目具有项目编号、项目名称、开始日期、结束日期;

⑥每个项目由一名员工负责,由多名员工、实习生参与;

⑦一名员工只负责一个项目,可以参与多个项目,在每个项目具有工作时间;

⑧每个实习生只参与一个项目。

(1)试画出这个数据库的E-R图。

(2)转化为适当的关系模型,并给出关系的主码和外码。

在这里插入图片描述

部门(部门编号,部门名称,办公地点,部门经理员工编号)

主码:部门编号

外码:部门经理编号 -> 员工(员工编号)

员工(员工编号,姓名,级别,部门编号)

主码:员工编号

外码:部门编号 -> 部门(部门编号)

实习生(实习编号,姓名,年龄,部门编号)

主码:实习编号

外码:部门编号 -> 部门(部门编号)

项目(项目编号,项目名称,开始日期,结束日期,负责员工编号)

主码:项目编号

外码:负责员工编号 -> 员工(员工编号)

员工项目参与关系(员工编号,项目编号,工作时间)

主码:(员工编号,项目编号)

外码:员工编号 -> 员工(员工编号)

外码:项目编号 -> 项目(项目编号)

2. 规范化模式分解——教学关系(学号,姓名,年龄,性别,系别,系主任,课程名,成绩)

已知关系模式:教学(学号,姓名,年龄,性别,系别,系主任,课程名,成绩),一个学生隶属一个系,一个学生可以选修若干门课,选修的课程只有一个成绩,一个系只有一个系主任。

请分析关系模式,回答下列问题:

(1)写出关系的函数依赖集,并确定关系的候选码;

(2)分析关系模式的范式等级(说明理由);

(3)若未达到第3范式,请进行模式分解规范到第3范式。

1)学号 - > 姓名,年龄,性别,系别

学号、课程名 - > 成绩

系别 -> 系主任

候选码(学号,课程名)

2)姓名、所在系部分依赖于学号,所以存在部分依赖于候选键,属于1NF

3)不属于3NF 分解成:R1(学号,课程名,成绩) R2(学号,姓名,年龄,性别,系别) R3(系别,系主任)

3.关系代数-检索选修课程号为C2或C4的学生的学号

设有三个关系:

S(SNO,SNAME,AGE,SEX)

SC(SNO,CNO,GRADE)

C(CNO,CNAME,TEACHER)

用关系代数表达式表示查询语句:检索选修课程号为C2或C4的学生的学号。

πSNO​(σCNO='C2' ∨ CNO='C4'(SC))

4. 关系代数-检索没有学习课程号为C2的学生的学号与姓名

设有三个关系:

S(SNO,SNAME,AGE,SEX)

SC(SNO,CNO,GRADE)

C(CNO,CNAME,TEACHER)

用关系代数表达式表示查询语句:检索没有学习课程号为C2的学生的学号与姓名。

π(SNO, SNAME)(S) - π(SNO, SNAME)(S ⨝ σ(CNO = 'C2')(SC))

SQL题

1. 表定义:创建供应情况表

供应情况表spj:

列名说明数据类型约束
SNO供应商号CHAR(6)主码
PNO零件号CHAR(6)主码
JNO项目号CHAR(6)主码
QTY供应数量SMALLINTDEFAULT 100,大于0
CREATE TABLE SPJ (
  SNO CHAR(6) NOT NULL,
  PNO CHAR(6) NOT NULL,
  JNO CHAR(6) NOT NULL,
  QTY SMALLINT DEFAULT 100 CHECK (QTY > 0),
  PRIMARY KEY (SNO, PNO, JNO)
);

2. 建立城市为上海的客户2016年的订单信息视图

建立城市为上海的客户2016年的订单信息视图v_order,包括顾客号、顾客名、该顾客2016年的订单数及订单总额。

其中客户表cutomer表结构为

在这里插入图片描述

订单表`order`表结构为

在这里插入图片描述

CREATE VIEW v_order
AS
SELECT customer.customer_id,customer_name,count(order_id),sum(total_money)
from customer,`order`
where YEAR(order_date)=2016 and city="上海" and customer.customer_id = `order`.customer_id
GROUP BY customer.customer_id

3. 在学生表student上创建触发器,插入学生记录,同步更新班级表class中人数

在学生表student上创建触发器,插入学生记录,同步更新班级表class中对应班级人数。

表结构定义如下:

班级表class:

classno char(7) 班级号,主键,

classname char(20) 班级名

number int 班级人数。

学生表student:

no char(9) 学号,主键;

name char(10) 姓名;

sex enum(‘男’,‘女’) 性别;

age SMALLINT 年龄;

classno char(7) 班级号,外键(取值参照class的classno)。

delimiter $$
CREATE TRIGGER update_class_number AFTER INSERT ON student
FOR EACH ROW
BEGIN
    UPDATE class SET number = number + 1 WHERE classno = NEW.classno;
END $$

4. 存储过程:返回学生总数,男生人数,女生人数

#存储过程 tj_rs:根据系名,统计该系学生总数,男生人数,女生人数。

[注意:SQL表名请用小写]

学生数据库db_student包括三个数据表student(学生表)、course(课程表)和sc(选课表)。表结构如下:

1、student(学生表):

SNO学号CHAR(7)

SNAME姓名CHAR(10)

SSEX性别CHAR(2)

SAGE年龄SMALLINT

SDEPT所在系 VARCHAR(20)

2、course(课程表)

CNO课程号CHAR(10)

CNAME课程名VARCHAR(20)

CCREDIT学分SMALLINT

SEMSTER学期SMALLINT

PERIOD学时SMALLINT

3、sc(选课表)

SNO 学号CHAR(7)

CNO 课程号CHAR(10)

GRADE 绩 SMALLINT

CREATE PROCEDURE tj_rs (IN deptName VARCHAR(20), OUT total INT, OUT male INT, OUT female INT)
BEGIN
    SELECT COUNT(*) INTO total FROM student WHERE SDEPT = deptName;
    SELECT COUNT(*) INTO male FROM student WHERE SDEPT = deptName AND SSEX = '男';
    SELECT COUNT(*) INTO female FROM student WHERE SDEPT = deptName AND SSEX = '女';
END;

5. 插入图书信息

将图书信息插入到book表中,其中书号 7, 书名 组合数学, 作者 刘迪, 价格 36.70, 数量 37。

表结构如下:

book(图书) 表:bno 书号,bname 书名,author 作者,price 单价,quantity 库存数

在这里插入图片描述

表名请用小写。

INSERT INTO book (bno, bname, author, price, quantity)
VALUES (7, '组合数学', '刘迪', 36.70, 37);

6. SQL更新:删除-删除“吴宾”的所有成绩记录

有student、course、sc表;删除“吴宾”的所有成绩记录。

student:
在这里插入图片描述

sc:
在这里插入图片描述

course:

在这里插入图片描述

DELETE FROM sc
WHERE sno IN(SELECT sno FROM student WHERE sname='吴宾');


7. SQL更新:修改“王大力”的“计算机导论”课程成绩为70

#修改“王大力”的“计算机导论”课程成绩为70。

学生数据库db_student包括三个数据表student(学生表)、course(课程表)和sc(选课表)。表结构如下:

1、student(学生表):

SNO学号CHAR(7)

SNAME姓名CHAR(10)

SSEX性别CHAR(2)

SAGE年龄SMALLINT

SDEPT所在系 VARCHAR(20)

2、course(课程表)

CNO课程号CHAR(10)

CNAME课程名VARCHAR(20)

CCREDIT学分SMALLINT

SEMSTER学期SMALLINT

PERIOD学时SMALLINT

3、sc(选课表)

SNO 学号CHAR(7)

CNO 课程号CHAR(10)

GRADE 成绩 SMALLINT

[注意:SQL表名请用小写]

UPDATE sc
SET GRADE = 70
WHERE SNO = (
SELECT SNO
FROM student
WHERE SNAME = '王大力'
    
) AND CNO = (
SELECT CNO
FROM course
WHERE CNAME = '计算机导论'
);

8. 查询产品类别名称为“一体机”且一次销售数量在45及以上的产品销售信息

查询产品类别名称为“一体机”且一次销售数量在45及以上的产品销售信息,输出订单详情id、产品号、销售数量和销售额,结果按订单详情id升序排列。

其中订单详情表order_detail表结构为
在这里插入图片描述

产品表product表结构为

在这里插入图片描述

产品类别表category表结构为

在这里插入图片描述

SELECT order_detail.order_id, order_detail.buy_number, order_detail.total_money
FROM order_detail
INNER JOIN product ON order_detail.product_id = product.product_id
INNER JOIN category ON product.category_id = category.category_id
WHERE category.name = '一体机' AND order_detail.buy_number >= 45;

9.查询一次订购了4,7,8号产品的客户名及电话

查询一次订购了4,7,8号产品的客户名及电话。

其中客户表customer表结构为

在这里插入图片描述

订单表`order`表结构为

在这里插入图片描述

订单详情表order_detail表结构为

在这里插入图片描述

产品表product表结构为
在这里插入图片描述

SELECT customer_name,phone FROM customer
WHERE customer_id in (SELECT customer_id from `order` 
       where not exists(select * from order_detail od WHERE product_id in(4,7,8) 
AND NOT EXISTS(select * FROM order_detail
WHERE order_id=`order`.order_id and od.product_id = product_id)));

10. 统计各级职位(不含NULL)员工人数,按照人数降序排列。

统计各级职位(不含NULL)员工人数,按照人数降序排列。输出职位,人数。

在这里插入图片描述

SELECT COUNT(*) as count
FROM employee
WHERE job_title IS NOT NULL
GROUP BY job_title
ORDER BY count DESC;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620499.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

重装Windows系统

1.前言 有的时候,面对杂乱的文件系统,整理是十分困难的…… 有的时候,下载软件的时候会附带上某一些病毒、木马…… 有的时候,不满于更新后的系统…… 这些种种都可以使用重装系统解决,接下来我来带您学习重装windows…

煤炭价格学习

大佬发表时间在2022.11.17 神华月线,因为没有送配股,所以肯定是除权看的(前复权看的不要跟我谈技术,因为你不配) 除权,前复权,后复权 理解这三者区别之前,首先我们要简单了解 除权和…

【String字符串之后续】

我们继续上一篇文章为大家讲解,String字符串的相关知识,希望大家有所收获💞💞💞 字符串前篇的链接: link 目录 1.字符串的替换2.字符串的拆分3.字符串截取4.去掉空格5.String的不可变性6. 字符串的修改7.StringBuilde…

STL:string类使用

编码: ASCII unicode–utf-8 utf-16----一个字符2个字符 utf-32----一个字符4个字节 gbk–中文编码表 string: 是一个特殊的容器,对数据(字符数组)和库函数(strlen等)进行封装 STL提供的内容…

OpenStack部署(三)

OpenStack部署 6. Neutron6.1 创建Neutron数据库并授权6.2 获得admin凭证6.3 创建 neutron 用户并设置密码6.4 添加admin角色到neutron 用户6.5 创建neutron服务实体6.6 创建网络服务API端点6.7 安装并配置neutron服务6.8 链接plugin.ini文件6.9 初始化neutron数据库6.10 重启计…

连续两年!PingCAP 入选 Gartner 云数据库“客户之声”,获评“卓越表现者”最高分

近日,全球权威信息技术研究与咨询机构 Gartner 发布了云数据库市场领域 2023 Gartner Peer Insights™“Voice of the Customer” 报告,PingCAP 在报告中获得的客户总体评分达到 4.9 分(满分 5 分),在所有入选企业中位…

CBCGPCaptionBar 使用实例说明

CBCGPCaptionBar的位置如下: 如图区域就是 MainFrame.h中声明: CBCGPCaptionBar m_wndCaptionBar; MainFrame.cpp中创建显示控件: BOOL CMainFrame::CreateCaptionBar () { if (!m_wndCaptionBar.Create (WS_CHILD | WS_V…

力扣第三天 242.有效字母异位词 349 两个数组的交集

目录 1.242. 有效的字母异位词 2.349. 两个数组的交集 - 力扣(LeetCode)​​​​​​ 使用算法笔记: 总结: 1.242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意…

15. 算法之排序算法

前言 排序是在软件开发中经常遇到的需求。比如基于订单的创建时间倒排,基于金额大小排序等等,那么这些排序底层是怎么写的呢,本节,我们就常用排序算法展开介绍。 1. 冒泡排序 1.1 算法思想 冒泡排序是最基础的排序算法。冒泡排…

HashMap 的底层原理和源码分析

tip:作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 推荐:体系化学习Java(Java面试专题) 文章目录 一、HashMap…

【迷宫】地下迷宫游戏-微信小程序开发流程详解

可曾记得,小时候上学路边买的透明铅笔盒,里面内嵌了一个小球,它用重力可从起点滚动到终点,对小朋友来说是感觉有趣的,在这个游戏的基础上,弄一款微信小程序的迷宫探索游戏试试,在不同关卡的迷宫…

14 【Vuex】

1.理解 Vuex 1.1 Vuex 是什么 概念:专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对Vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用…

基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试

完成了测试台软件分析和编程环境搭建后,接下来就是软件的编写。本章主要包括 软件窗口界面设计和功能代码实现。以某型号数据记录仪的工作需求为目标,根据测试 工作流程,以 Linux-Qt 为主要开发手段,设计一款功能完备、界面友…

Java8 Stream详解及结束操作方法使用示例(三)

结束操作是指结束 Stream 该如何处理的操作,并且会触发 Stream 的执行。下面是一些常用的结束操作方法。结束操作会对数据源进行遍历,因此是及早求值的。 Java8 Stream详解及中间操作方法使用示例(一) ​​​​​​​Java8 Strea…

三种经典博弈(取石子问题)

三种经典博弈 巴什博奕威佐夫博奕尼姆博奕 博弈是有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简…

一体化协同平台助力企业回归生产本质,创造价值

核心观点 单点工具的串联无法有效解决研效痛点问题,企业需要通过一体化协同平台提高端到端价值流动效率。一体化协同平台的价值是软件工程理念最大化落地、数字化研发管理、沉浸式研发体验。一体化协同平台集成需要评估闭环效率杠杆,确定集成边界和集成…

什么是关系模型? 关系模型的基本概念

关系模型由IBM公司研究员Edgar Frank Codd于1970年发表的论文中提出,经过多年的发展,已经成为目前最常用、最重要的模型之一。 在关系模型中有一些基本的概念,具体如下。 (1)关系(Relation)。关系一词与数学领域有关,它是集合基…

TensorRT 从7.2升级到8.5,改写plugin以适配新版本

前言 TensorRT是NVIDIA推出的一款高效深度学习模型推理框架,其包括了深度学习推理优化器和运行时,能够让深度学习推理应用拥有低时延和高吞吐的优点。 TensorRT的版本迭代速度非常快,很多之前写的plugin在版本升级后可能就没法直接使用&…

广州虚拟动力携数字人交互技术产品参展第十九届深圳文博会

2023年6月7-11日 深圳国际会展中心 第十九届深圳文博会正式举办! 广州虚拟动力携数字人交互技术产品参展 诚邀您莅临粤港澳大湾区馆(11号馆) 广东参展团展位参观交流 数字技术,引领文化产业新发展 中国文化及相关文化产业的…

【Apache Pinot】Controller、Broker 和 Server 的概念和工作流程

背景 笔者最近一段时间使用 Apache Pinot 比较多,发现目前国内使用 Pinot 的很少,所以跟他相关的资料也比较少,本人在扩容,升级,部署,查询等方面操作有些许经验,知道其中有很多细节需要注意和规…