24数据库原理与设计-试题回忆¶
文档信息
编者:Egopposer(line2345)
日期:2025/12/13
0、前言及试题概览¶
由于数据库考卷试题量很大,加之送分题很多,课件上的难题超纲题几乎不会出现。本文档只列举其中部分题目和需要专门背诵的题目。部分题目可能存在描述模糊或错误的情况。
说明
斜体为记忆模糊的题目
黑体为我认为需要关注的点
试题概览:(主观评价较多,仅供娱乐)
| 题量 | 特大 |
|---|---|
| 难易度(软院专业课中) | 8/10 |
| 送分题占比 | 50%? |
| 背诵记忆占比 | 30%(但内容多) |
| 21-23均分 | |
| 21-23平均满绩率 |
- pdf下载链接: 软院数据库-试题回忆 PDF
1、 选择题(1.5*20=30)¶
例如:
- 给出两表等值连接的结果
- 插入、删除在给定视图中是否合法
- Mysql 语句的某些性质
- 复合属性怎么转化为表
2、填空题(1*10=10)¶
纯送分,非常简单的概念
例如:(左侧为题目概述,右侧为填空答案)
- 系统为sql语句提供的缓存区----游标
- 索引依赖的数据结构----B+树
- 开始事务的sql语句--START TRANSACTION或BEGIN
- 什么什么什么什么--触发器
不限于此,注意误写错字
3、简答题(4*4=16)¶
24年考题:
-
数据库的设计步骤及每一步的结果(重点)
-
排序规则和字符集的作用(冷门点)
-
保证数据库安全性的措施(重点)
-
事务的特征ACID及每一项的含义(重点)
大部分都是常看的重点,只有一个排序规则和字符集的作用出的很冷,(课件上好像不是很详细)
总之是很磨人的部分,内容又多,又不能不背。
4、关系代数与sql语句题(12+8)¶
题干(关系模式):
患者(患者号,姓名,年龄)
医生(医生号,姓名,科室)
就诊表(患者号,医生号,就诊时间,诊断结果)
- 同时编写关系代数和sql语句(三小题,每题4分)
- 查询就诊过李医生的所有患者号
- 查询就诊过王医生且曾有过高血压诊断历史的患者姓名
- 查询就诊过医院所有科室的患者号(FOR ALL查询)
- 只编写sql语句
- 忘了
- 查询没有接诊记录的医生姓名
- 查询就诊过王医生两次以上的患者姓名
- 授予用户user1查询患者姓名,患者姓名,医生姓名,就诊科室,就诊时间的权限,但不能查看诊断结果(视图+授权)
总结:
- 第一部分由于需要同时编写关系代数,所以sql基本只能出基本的连接查询和一部分EXIST和IN查询,我觉的FOR ALL查询应该是重点中的重点,应该每年都会考
-- 对于关系代数,有个小的点,课件和作业上对于连接的处理基本都是先选择(投影)再连接,习惯问题,建议按课件的风格来。
-- 对于sql语句,当你写完并重新审视曾经的作业和课件时,你应该注意到了一点,那就是你院非常极其特别喜欢EXIST查询嵌套,以至于几乎就没有JOIN、UNION、INTERSECT、EXCEPT的事。而且我想吐槽的就是,FOR ALL查询使用EXCEPT实现逻辑非常的清晰,没有任何嵌套。但是无一例外,课件和习题中都是用的是EXIST查询嵌套,想必答案也是吧,也可能给分,但我就不知道了。
-- 建议往死里练EXIST嵌套查询
- 第二部分就考察第一部分没有的东西了,例如聚合函数(SUM,COUNT)、GROUP BY、HAVING、授权和视图之类的,难度不大。
- 今年没有任何编写触发器,存储过程,控制流和函数的题(更不用说游标了),好像对这一块要求极低,仅在填空部分出现?可供参考
- 注:不要在网上Leetcode、牛客这些地方找sql的题做,效率极低且收益不大。低难度的题你看看就会了,高难的题这些刷题网站都聚焦于开窗函数,日期处理。考察点差距很大。
-- 你猜我为什么知道
5、设计题(6+8+10)¶
-
范式及其分解(原题,(司机编号,汽车牌照,行驶路程,车队编号,车队总管)那个)(6分)
-
找候选键(2分)
- 为什么不是第二范式,并分解为第二范式(2分)
-
分解为第三范式(2分)
-
ER图及表转换(8分)
-
画ER图
- 转化为表(关系模式)
没啥好说的,就注意多对多关系加张表,一对多关系加外键就行了
- 大型sql填空(10分,一空一分)
- 建表,完整性约束等等(4分)
- 主键外键定义
- CHECK检查
- 关系运算符(2分)
- BETWEEN AND
- 补写sql语句
- 相当于第四大题第二部分的类型