数据库(考前两天版本)
数据库(考前两天版本)
选择题
1.数据库系统的核心数据库管理系统
2.数据库系统中,物理数据独立性是指应用程序与存储在磁盘上数据库的物理模式是相互独立的
3.数据库系统的特点是数据共享,数据独立,减少数据冗余,避免数据不一致和加强数据保护
4.数据库是长期存储在计算机内的有组织,可共享的数据组织
5.数据库管理系统能够实现数据查询,插入和更新等操作的数据库语言称为数据操纵语言
6.在关系代数中,对一个关系做投影操作后,新关系的元组个数小于或等于原来关系的元组个数
7.概念模型(E-R)图属于概念结构设计
8.从E-R图模型关系转向关系模型转换时,一个M:N的关系转换为关系模式时,该关系模式的码是M端实体码与N端实体码的结合
9.自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个属性
10.==广义笛卡尔积==不属于专门的关系运算
11.有15个实体类型,并且他们之间存在着15个不同的二元联系,其中5个一对一联系类型,5个一对多,5个多对多联系,根据转换规则,这个E-R图转换的关系模式有20个
12.*SQL 删除表的命令*
• *考点*:DROP vs DELETE
• *解析*:
◦ *DELETE*:删除表中的数据(如 “清空学生表”),但表还在(像清空 Excel 表格内容)。
◦ *DROP*:删除整个表(如 “删除学生表”),表结构都消失(像删掉整个 Excel 文件)。*题目场景*:“删除表” 对应 DROP。
13.关系规范化中的删除操作异常是指不该删除的数据被删除
14.*事务的一致性*
• *考点*:事务的四大特性(ACID)
• *解析*:事务就像 “原子操作”:要么全部成功,要么全部失败。*举例*:转账时,从 A 账户扣钱和给 B 账户加钱必须同时完成。如果扣钱后系统崩溃,未加钱,数据库会 “回滚” 到扣钱前的状态,确保 A 和 B 的总金额不变(一致性)。
15.日志文件的作用 还原所有操作
16.*关系模式的范式*
• *考点*:BCNF 范式的判断
• *解析*:题目中 “每门课程的每个名次唯一对应一个学生”,说明:
◦ 名次→学生(单值依赖),不存在冗余数据。
符合最高范式 BCNF,就像 “每个座位号唯一对应一个人”,没有模糊性。
17.事务的原子性是指事务中包括的所有操作要么都做,要么都不做
18.*事务的隔离性*
• *考点*:并发操作的问题
• *解析*:隔离性确保事务之间 “互相看不见” 中间状态。例如:
◦ 你正在修改工资表中的数据,同事同时查询该表,看到的是你修改前的 “干净数据”,不会看到中间错误状态。
19.*SQL 权限管理命令*
• *考点*:GRANT(授权) vs REVOKE(收权)
• *解析*:
◦ GRANT:给用户 “发钥匙”(如 “允许张三查询学生表”)。
◦ REVOKE:收回钥匙(如 “禁止李四修改成绩表”)。*题目场景*:“撤消权限” 对应 REVOKE。
20.并发操作会带来丢失修改,不可重复读,读脏数据数据不一致
判断题
1.数据库管理系统的主要功能是管理数据
2.SELECT * FROM table 返回所有列
3.GROUP BY 用于分组统计
4.外键确保参照完整性
5.主键可以由多个字段组成
6.视图是虚表
7.索引不一定提高查询性能
• 注意:如果数据量小或查询不频繁,索引可能反而拖慢速度。
8.ER 图中菱形表示联系
9.SQL Server 表中可以存在重复行
10.数据不应存放在一张表中
填空题
*主码唯一标识行,_外键_____建立表间关系*
SQL 中用于授权的语句是__GRANT____
*数据库设计阶段:需求分析→_概念设计_____→逻辑设计*
*三级模式:内模式、模式、外模式______*
数据模型的三要素: 数据结构,数据操作和数据约束条件
大题1
某医院病房计算机管理中需要如下信息:
科室:科号、科名、科地址、科电话
病房:病房号、所属科号
医生:工作证号、姓名、职称、所属科号、年龄
病人:病历号、姓名、性别、年龄、主治医生号、病房号
其中一个科室有多个病房和多个医生;一个病房只能属于一个科室,一个病房可以住多个病人,一个病人只能住一个病房,一个医生也只能属于一个科室,但可以负责多个病人的治疗,一个病人的主治医生只有一个
大题2
学生(学号,姓名,性别,年龄,所在系)
课程(课程号,课程名,先行课)
选课(学号,课程号,成绩)
(1) 查找所有课程名
Π课程名(课程)
(2) 选修 C1 课程的学生姓名
Π姓名(σ课程号=‘C1’( 选课 学生))
(3) 学号、平均成绩,降序排序
SELECT 学号, AVG(成绩) AS 平均成绩
FROM 选课
GROUP BY 学号
ORDER BY 平均成绩 DESC;
(4) 男学生的学号、姓名、课程名、成绩
SELECT 学生.学号, 学生.姓名, 课程.课程名, 选课.成绩
FROM 学生
JOIN 选课 ON 学生.学号 = 选课.学号
JOIN 课程 ON 选课.课程号 = 课程.课程号
WHERE 学生.性别 = '男';
(5) 子查询:选修 C1 的学生
SELECT 学号, 姓名
FROM 学生
WHERE 学号 IN (SELECT 学号FROM 选课WHERE 课程号 = 'C1'
);
(6) 创建视图 S_Sum
CREATE VIEW S_Sum AS
SELECT 学生.学号, 学生.姓名, SUM(选课.成绩) AS 总成绩
FROM 学生
JOIN 选课 ON 学生.学号 = 选课.学号
GROUP BY 学生.学号, 学生.姓名;
WHERE 课程号 = ‘C1’
);
(6) 创建视图 S_Sum```sql
CREATE VIEW S_Sum AS
SELECT 学生.学号, 学生.姓名, SUM(选课.成绩) AS 总成绩
FROM 学生
JOIN 选课 ON 学生.学号 = 选课.学号
GROUP BY 学生.学号, 学生.姓名;