一、2025真题
1.在E-R图中,()的说法是正确的。
A.实体用矩形表示,属性用菱形表示,联系用椭圆表示
B.实体用菱形表示,属性用矩形表示,联系用椭圆表示
C.实体用矩形表示,属性用椭圆表示,联系用菱形表示
D.实体用椭圆表示,属性用矩形表示,联系用菱形表示
2.在某图书管理系统中,读者和书籍之间的联系类型为多对多联系设计关系模式应()。
A创建独立的读者书籍关联表
B.使用外键直接关联两表主键
C.在读者表中增加书籍编号字段
D.在书籍表中增加读者编号字段
3.数据库索引的主要作用是()。
A.防止数据被修改
B.确保数据唯一性
C.减少数据存储空间
D.加快数据查询速度
4.在DBMS中,当用户创建主键约束时,DBMS一般会自动创建()以提高查询效率。
A、视图
B、索引
C、触发器
D、存储过程
5.使用树形结构组织数据的数据库模型为()。
A网状模型
B.关系模型
C.层次模型
D.文档模型
6.限制开发人员访问敏感字段的最佳方法是()。
A.加密数据库文件
B.删除敏感字段
C.禁止所有SELECT权限
D.创建不含敏感字段的视图
1.数据库技术基础
1.2.数据库通常是指有组织地、动态地存储在( 1 );应用数据库的主要目的是解决数据( 2 )问题。
外存上的相互联系的数据的集合
共享:这是数据库的核心目的。简单来说,没有数据库之前,数据是各自为政、存放在不同应用的文件中的,容易造成冗余和不一致。数据库的出现,就是为了让多个用户、多个应用可以同时、高效、安全地访问和处理同一份数据,实现数据的共享。
数据库的根本目的是减少数据冗余、实现数据共享
数据模型
3.采用二维表格结构表达实体及实体间联系的数据模型是()。
A层次模型 使用树形结构组织数据
B网状模型 使用图形结构(网状),允许一个节点有多个父节点和子节点
C关系模型:用二维表格结构(即关系)来表达实体以及实体之间的联系。每个表格由行(元组)和列(属性)组成,这是关系数据库的基础(如MySQL、PostgreSQL等)。
D面向对象模型 不是一个图像概念
4.设计E-R图的过程中,需要确定实体所具有的属性,这一抽象称为()。
聚集
5.对象-关系模型与关系模型的区别是 ()。
A对象-关系模型支持关系嵌套,关系模型不支持
6.数据仓库在收集数据过程中, 会遇到一些略微不一致但可以纠正的数据,纠正的过程称为()。
A数据清洗
数据库的三级模式
7.数据库的视图、基本表和存储文件的结构分别对应( )。
外模式、模式、内模式
数据库通常采用三级模式结构,其中:视图对应外模式、基本表对应模式、存储文件对应内模式。
外模式(用户级):每个住户从自家窗户看到的局部风景。
模式(概念级):整栋大楼的建筑设计蓝图,展示了整体结构。
内模式(物理级):大楼的地基、管道和钢筋结构,决定了大楼如何被实实在在地建造出来。
8.9.10.11.假设某医院诊疗科、医生和患者各实体对应的关系模式如下:
诊疗科(科室代码,科室名称,电话)
医生(医生代码,姓名,科室代码)
患者(病历号,姓名,年龄,性别,病情,就诊日期,医生代码)
其中诊疗科允许有多部电话,则电话属性为 ( 8 ) 。若医生只属于一个诊疗科,并且同一天可为多位患者看病,而患者也可在不同的科室治疗,则医生和患者之间是( 9 )联系。患者关系模式的主键是( 10 ),该关系属于( 11 ) 的问题。
关系模式 = 对这张表的列名、列类型、约束、主键、依赖关系的描述,可以认为是表的结构
“关系”就是一张表
“XX联系”——指的是表之间的连线
请作答:第 8 题
A组合属性:指由多个子属性组成的属性(如“地址”由省市街道组成),不是多个取值。
B派生属性:由其他属性计算得出(如年龄由出生日期计算),不是多值。
C多值属性:在数据库的概念设计中,一个属性如果可能对应多个值(例如一个科室可以有多个电话号码),则称该属性为 多值属性。
D单值属性
请作答:第 9 题
D n:m
医生 同一天可为多位患者看病(一个医生对应多个患者)
患者 可在不同的科室治疗(意味着患者可以被多位医生诊治,即一个患者对应多个医生)
因此,医生与患者之间的看病关系是 多对多(n:m)。
请作答:第 10 题
意思就是什么字段/属性可以无歧义的准确找到唯一一条看病数据
A. 病历号 ❌ 只能标识患者,不能区分同一患者的多条就诊记录。
B. 病历号,病情,就诊日期 ❌ 同一患者同一天同一病情看不同医生?会重复。而且病情可能变化,不能稳定作为主键一部分。
C. 病历号,就诊日期,医生代码 ✅ 能唯一标识一次就诊事件(患者某天找某医生看病一次)。
D. 病情,就诊日期,医生代码 ❌ 不同患者可能有相同病情,无法唯一标识特定患者的就诊。
请作答:第 11 题
1NF,存在冗余和修改操作的不一致,以及插入异常和删除异常
根据上一问我们知道:
患者的字段/属性有...(病历号,姓名,年龄,性别,病情,就诊日期,医生代码)
主键是:(病历号,就诊日期,医生代码)
第一范式(1NF)?
要求:所有属性不可再分(即每个属性都是原子值,不能有表中有表、不能有集合值)。
本题中,病历号、姓名、年龄等都是简单值,✓ 满足 1NF。
第二范式(2NF)?
指的是1NF的情况下,所有非主属性必须完全函数依赖于整个主键
非主属性 指的是不是主键的字段 (姓名 年龄 性别 病情)
不允许出现「非主属性只依赖于复合主键的一部分」的情况。
什么是依赖/部分函数依赖?
当我们想知道某个非主属性的值的时候,只需要主键的一部分就能确定 → 部分依赖
必须知道主键的全部才能确定 → 完全依赖
要确定某个A只需要主键,然后我想要确定B,需要知道A → 传递依赖:B 对主键的依赖是 间接的
3NF:在 2NF 基础上,不存在非主属性对主键的传递依赖
现在分析这道题:
主键 =(病历号,就诊日期,医生代码)
姓名、年龄、性别 只依赖于病历号,不需要知道其他主键的没人
→ 存在 部分依赖
所以不满足第二范式
补充知识点:为什么第二范式要「消除部分依赖」?因为原来的表 患者的年龄、姓名等等信息,每次就诊的时候都会在数据库重复存储。
如果我们通过优化,修改这些字段要放在哪些表里面,
「消除部分依赖」= 姓名,年龄,性别,这些字段只依赖于病历号这个的主键,我们就把它们放到同一个表里面。患者(病历号,姓名,年龄,性别)
这样这些信息就不用每次都存了,就大大减少了冗余
12.设计关系模式时,派生属性不会作为关系中的属性来存储。员工(工号,姓名,性别,出生日期,年龄)关系中,派生属性是( ) 。
D年龄
13.联机分析处理(OLAP)与联机事务处理(OLTP)的区别是( )。
OLTP(联机事务处理)→快、准、稳。要求极快响应,不能出错。
OLAP(联机分析处理)→慢、深、广。可以接受合理的响应时间,但必须能处理海量历史数据。
A OLAP 针对数据库,OLTP 针对数据仓库
OLTP 针对的是业务数据库,OLAP 针对的才是数据仓库。
B OLAP 要求响应时间合理,OLTP 要求响应时间快
C OLAP 主要用于更新事务,OLTP 用于分析数据
D OLAP 面向操作人员,OLTP 面向决策人员
OLTP 面向一线操作人员,OLAP 面向决策分析人员(如经理、分析师)。
14.15.数据库的视图与基本表之间通过建立( 14 )之间的映像,保证数据的逻辑独立性;基本表与存储文件之间通过建立( 15 )之间的映像,保证数据的物理独立性。
外模式到模式、模式到内模式
16.17.某医院管理系统部分关系模式为:
科室(科室号,科室名,负责人,电话)、
病患(病历号,姓名,住址,联系电话)和
职工(职工号,职工姓名,科室号,职位,住址,联系电话)。
假设每个科室有一位负责人和一部电话,每个科室有若干名职工,一名职工只属于一个科室;一个医生可以为多个病患看病;一个病患可以由多个医生多次诊治;职位有医生、护士和其他。
a.科室和职工的所属联系类型是( 16 ),病患和医生的就诊联系类型是( 17 )。科室关系的主键和外键分别为( 18 )。对于就诊联系最合理的设计是( 19 ),就诊关系的主键是( 20 )。
b.若科室关系中的科室名是唯一的,并要求指出外码。请将下述SQL语句的空缺部分补充完整。
CREATE TABLE科室(科室号CHAR(3) PRIMARYKEY,
科室名CHAR(10)( 21 ),
负责人CHAR(4),
电话CHAR(20),
( 22 ));
请作答:第 16 题
题目条件:“每个科室有若干名职工,一名职工只属于【一个】科室”。
1:n
请作答:第 17 题
题目条件:“一个医生可以为多个病患看病;一个病患可以由多个医生多次诊治”。
n:m
请作答:第 18 题
这题需要注意,外键指的并不是非主属性,
外键:用于建立和加强两个表数据之间的链接的一列或多列。它指向另一个表的主键。外键可以是主属性,也可以是非主属性,甚至可以是主键的一部分。
科室号是专门用来唯一标识每个科室的编号,它是最理想的主键。
A 科室号、科室名
D 科室号、负责人
这里的“负责人”是一名职工,所以“负责人”这个属性里存的值,必须来源于“职工”关系中的主键(也就是职工号)。
因此,“负责人”是一个外键,它引用了“职工”关系。
特别强调外键和非主属性(非主键的字段),不是一回事!!!
请作答:第 19 题
A 就诊(病历号,职工号,就诊情况)
B 就诊(病历号,职工姓名,就诊情况)
首先排除AB,无法定位到 同个病人同个医生多次看病的就诊情况
C 就诊(病历号,职工号,就诊时间,就诊情况)
D 就诊(病历号,职工姓名,就诊时间,就诊情况)
根据职工关系,职工号是主键,能唯一标识一名医生。
“职工姓名”可能重名,不是唯一标识,而且它完全可以通过“职工号”从职工表里关联查询出来。如果把它存进就诊表,就造成了数据冗余(医生的名字在职工表存一遍,在就诊表又存很多遍)。这违反了规范化设计原则。
请作答:第 20 题
病历号,职工号,就诊时间
再次强调,如果主键是病历号,职工号,无法区分同一个病人同一个医生多次看病!!!
这题是根据上一问,已经推导出最优设计是:就诊(病历号,职工号,就诊时间,就诊情况)
21.22题
CREATE TABLE科室(科室号CHAR(3) PRIMARYKEY,
科室名CHAR(10)( 21 ),
负责人CHAR(4),
电话CHAR(20),
( 22 ));
A.
NOT NULL这是非空约束,只保证列不能为空,不保证唯一性。
题目明确要求“科室名是唯一的”,所以仅靠
NOT NULL不够。排除 A。
B.
UNIQUE这是唯一约束,保证该列的值在整个表中不重复。
正好满足“科室名是唯一的”这个要求。
同时,主键已经是“科室号”,这里不能再设主键,用
UNIQUE最合适。
C.
KEY UNIQUE这不是标准 SQL 语法。MySQL 里可以用
UNIQUE KEY,但标准做法和大多数教材用UNIQUE。而且从题目的设置看,B 更规范。排除 C。
D.
PRIMARY KEY一个表只能有一个主键,前面已经声明“科室号”是
PRIMARY KEY,这里不能再设主键。排除 D。
22题已知条件:
每个科室有一位“负责人”。
“负责人”是职工的一种,存的是职工的编号。
“负责人”这个字段在科室表里是
CHAR(4),与职工表的“职工号”对应。
看选项:
A.
PRIMARYKEY(科室号)NOT NULL UNIQUE主键已经在前面列级定义过了,不需要重复定义。排除 A。
B.
PRIMARY KEY(科室名)UNIQUE前面分析过,主键是科室号,不能有两个主键。排除 B。
C.
FOREIGN KEY(负责人)REFERENCES 职工(职工姓名)外键引用的是另一个表的主键。
职工表的主键是“职工号”,不是“职工姓名”。引用“职工姓名”会造成无法唯一匹配,设计错误。排除 C。
D.
FOREIGN KEY(负责人)REFERENCES 职工(职工号)FOREIGN KEY (负责人):声明本表的“负责人”列是外键。REFERENCES 职工(职工号):声明这个外键引用的是“职工”表的“职工号”列。完全符合数据库的设计规范和题目要求。
在这里声明负责人这个字段是外键,可以防止插入一个不存在的姓名,防止误删除等
23.数据库管理系统提供授权功能以便控制不同用户访问数据的权限,其主要目的为了实现数据库的( )。
C安全性
24.数据仓库通常采用三层体系结构,中间层为( )。
A 数据仓库服务器 底层:底层(数据源与存储层)
B OLAP服务器 中间层(分析处理层)
C 查询和报表工具 顶层、前端工具
D 数据挖掘工具 顶层、前端工具
25.回答“银行根据历史数据判断一个新的申请贷款人是否有偿还贷款的能力”这一问题的数据挖掘知识发现类型属于( )。
A 关联规则 “捆绑销售”
B 特征描述 “画像”对某一类数据做概括总结,只会回顾历史,不进行预测。比如,“会违约的人通常具有什么特征(年龄、收入水平等)”。
C 分类 这道题说的是一个新用户,就不会是特征描述
聚类是无中生有地创造分组,分类是照猫画虎地根据历史标签来分组。题目有“历史数据(有标签)”,所以是分类。
D 聚类
26.在数据库系统中,( 26 )用于对数据库中全部数据的逻辑结构和特征进行描述:其中,外模式、模式和内模式分别描述( 27 )层次上的数据特性。
外模式:对应于用户级或外部视图。它最贴近用户,描述的是特定用户关心的局部数据。
模式:对应于概念级或全局视图。它是对整个数据库的逻辑抽象。
内模式:对应于物理级或内部视图。它最贴近硬件,描述数据如何存储。
这道题要注意问的是逻辑结构和特征,而不是物理上的存储结构、方式等
26题:模式
27题:用户视图、概念视图和内部视图
27.以下属于DBA职责的是( ) 。
C 系统故障恢复 这是DBA的核心职责之一,确保数据库在发生故障时能通过备份和日志进行恢复。
D 负责调试安装 这是运维和实施,传统上和DBA不是同一岗位
29.30.31.假设某企业职工实体有属性:职工号、职工姓名、性别、出生日期;
部门实体有属性:部门号、部门名称、电话,
一个部门可以有多部电话。一个部门有多个职工,
职工可以在部门之间调动,要求记录职工每次调动时的调入时间和调出时间。
则职工和部门之间的联系属于( 29 ),
该联系具有的属性是( 30 ),
设计的一组满足4NF的关系模式为( 31 )。
“一个部门有多个职工,职工可以在部门之间调动”。从任何一个固定的时间点来看,一个职工只能在一个部门,所以似乎是一个 1:N 的联系。
题目要求“记录职工每次调动时的调入时间和调出时间”。这意味着,职工和部门之间的关系是随时间变化的。一个职工在其职业生涯中,可以在多个不同的部门工作过;反过来,一个部门在历史上也接纳过多个不同的职工。
29题:M:N联系
30题:B调入时间、调出时间
31题:
请作答:第 31 题
A 职工(职工号,职工姓名,性别,出生日期) 部门(部门号,部门名称,电话) 工作(职工号,部门号,工作时间)
B 职工(职工号,职工姓名,性别,出生日期) 部门(部门号,部门名称,电话) 工作(职工号,部门号,调入时间,调出时间)
AB和CD的区别在于:电话
一个部门有多个电话,如果把多个电话的多个值塞到只有一个电话的字段里面,在电话字段里存:"010-123, 010-456......" —— ❌ 不满足1NF
如果每个电话都单独存一行,即使搞不懂范式的定义,这种情况绝对也是造成大量数据冗余,绝不可能是高范式的设计需求
补充:我们假设投机取巧的方案,每个电话存入的时候后面都跟着个分隔符,这样貌似虽然不符合第一范式,但是也避免了数据冗余。但是这样的结构在后续其他增删查改需求和程序设计方面会造成埋坑,所以说更高范式的追求是必须的
CD的区别在于:工作时间已经不符合题目的要求了,必须是调入和调出时间
C 职工(职工号,职工姓名,性别,出生日期) 部门(部门号,部门名称) 部门电话(部门号,电话) 工作(职工号,部门号,调入时间,调出时间)
D 职工(职工号,职工姓名,性别,出生日期) 部门(部门号,部门名称) 部门电话(部门号,电话) 工作(职工号,部门号,工作时间)
每个字段原子化 → ✅ 满足1NF
全键,无部分依赖 → ✅ 满足2NF
无传递依赖 → ✅ 满足3NF
“表中不能同时存在两个或以上独立的一对多关系”一个实体内部,多个多值属性必须拆。不然必产生冗余 → ✅ 满足4NF
32题:通过对历史数据的分析,可以预测年收入超过80000元的年轻女性最有可能购买小型运动汽车。这是通过数据挖掘的( ) 分析得到的。
A 分类 强调对已有数据的分析
B 关联规则
C 聚类 聚类是无中生有地创造分组,分类是照猫画虎地根据历史标签来分组。
D 时序模式 重点在于事件发生的时间序列和趋势预测,比如“汽车销量下个季度将增长20%”
33.( )不是数据仓库的特点。
A面向功能
面向功能(错误):这是操作型数据库(OLTP) 的特点。传统数据库通常围绕具体的业务功能(如挂号、收费、发药)来组织数据。
数据仓库是面向主题的,它围绕高层业务分析主题(如“患者”、“科室”、“药品”)来组织数据。
B集成
数据仓库的数据来自多个异构数据源(不同系统的数据库、文件等),必须经过清洗、转换、统一格式和编码后,才能集成到一起。
C非易失
数据一旦进入数据仓库,通常不会被修改或删除。只进行定期的数据加载和追加,保证了历史分析数据的一致性和稳定性。
D随时间变化
数据仓库会记录每个数据在不同时间点的快照,并保存较长时间的历史数据,以便进行趋势分析和时间维度上的比较。
34.35.36.数据库中数据的( 34 )是指数据库正确性和相容性,以防止合法用户向数据库加入不符合语义的数据;( 35 )是指保护数据库,以防止不合法的使用所造成的数据泄漏、更改或破坏;( 36 )是指在多用户共享的系统中,保证数据库的完整性不受破坏,避免用户得到不正确的数据。
34:
A安全性:防黑客
B可靠性:数据库系统本身能否稳定运行、故障后可恢复。
C完整性 :防呆,完整性是保证数据本身是正确的
D并发控制:并发控制处理的是多个用户同时操作数据库时,如何确保事务之间不发生冲突(如丢失修改、脏读、不可重复读)
35:安全性
36:并发控制
37.在三级结构/两级映像体系结构中,对一个表创建聚簇索引,改变的是数据库的( 37 ),通过创建视图,构建的是外模式和( 38 )。
请作答:第 37 题
聚簇索引(CLUSTER INDEX):是指定表中数据的物理存储顺序,即让表中的数据行按照索引键的排序在磁盘上物理地排列。
A 用户模式
B 外模式
C 模式
D 内模式
创建普通的表、修改列的数据类型 → 模式
创建索引(尤其是影响物理存储的聚簇索引) → 内模式
创建视图 → 外模式
38:外模式/模式映像
构建虚拟的局部视图(外模式),需要定义 外模式/模式映像
改变物理存储(内模式),需要调整 模式/内模式映像。
数据库有三层世界:“映像”就是这三层之间的翻译转换规则。
外模式/模式映像:
CREATE VIEW 职工基本信息 AS
SELECT 职工号, 姓名, 职位 FROM 职工;
外模式/模式映像,就是视图的定义语句,它告诉系统如何从真实表拼出职工基本信息这个虚拟视图模式/内模式映像:
就是表和索引的物理存储定义,告诉系统逻辑上的表在硬盘上是怎么摆的。
39.40.41.假设描述职工信息的属性有:职工号、姓名、性别和出生日期;
描述部门信息的属性有:部门号、部门名称和办公地点。
一个部门有多个职工,每个职工只能在一个部门工作;
一个部门只能有一个部门经理,部门经理应该为本部门的职工,取值为职工号。
则在设计E-R图时,应将职工和部门作为实体,
部门和职工之间的工作联系是( 39 ),
要描述部门经理与部门之间的任职联系,应采用( 40 )。
由该E-R图转换并优化后的关系模式为( 41 )。
39:1:N联系
这题没有强调职工可以在多个部门之间调动
40:1:1联系
41:
A 职工(职工号,姓名,性别,出生日期) 部门(部门号,部门名称,办公地点,部门经理) 工作(职工号,部门号)
B 职工(职工号,姓名,性别,出生日期,部门经理)部门(部门号,部门名称,办公地点) 工作(职工号,部门号)
C 职工(职工号,姓名,性别,出生日期) 部门(部门号,部门名称,办公地点) 工作(职工号,部门号,部门经理)
D 职工(职工号,姓名,性别,出生日期,所在部门)部门(部门号,部门名称,办公地点,部门经理)
仔细关注题目提示:
1️⃣部门经理应该为本部门的职工,值为职工号
2️⃣在设计E-R图时,应将职工和部门作为实体!!!(实体广义上就是可以相互区分的两个不同事物,具体到这道题就是两个不同的表)
这道题没有涉及到一个实体内部有多值属性这种情况,对于实体和实体之间的联系,根据两条规则进行简化:
部门经理和部门之间是一对一的,而且部门经理本身按照题目信息,是用职工号来表示的,所以可以归并到 部门这个实体里(职工这个实体已经有职工号了)
这种做法就叫做:1:1联系:可以归并到关联的任一方实体表中。
部门和员工的【工作联系】是1:N
这里注意对比其他选项有工作这个表,其内容完全可以归并到职工表中
处理1:N“工作联系”,归并到“N”方(职工)
42.根据现有的心脏病患者和非心脏病患者的数据来建立模型,基于该模型诊断新的病人是否为心脏病患者,不适于用算法( )分析。
题目描述的场景是有监督学习,而 K-means 是典型的无监督学习算法,无法利用现有的“患者”和“非患者”标签。
A ID3:决策树,。它可以根据已有的“心脏病患者”和“非心脏病患者”的标签数据,学习出一棵分类决策树,然后让新病人按路径走到叶子节点,得出“是或否”的判断。
B K最近邻(KNN),有监督分类算法,“近朱者赤,近墨者黑”
C 支持向量机(SVM),它的目标就是在患者和非患者之间找一条最宽的分界线,新病人落在线哪边就是哪一类。
D K 均值(K-means),它完全不依赖历史标签(不在乎过去谁有病),只会按数据特征机械地分成 K 堆。最终可能会把人群分成“年纪大的和年轻的”,而不是“有病和没病的”,无法直接给出明确的医学诊断结论。
43.盗窃信用卡的人的购买行为可能不同于信用卡持有者,信用卡公司通过分析不同于常见行为的变化来检测窃贼,这属于( )分析。
A 分类 用带标签的历史数据训练模型,给新数据贴标签。
B 关联规则 捆绑销售,发现事物间的强关联
C 聚类 把数据自动分成几个簇,不参考历史信息
D 离群点 专门寻找行为和大多数数据对象显著不同的、稀有的数据点
44.从时间、地区和商品种类三个维度来分析某电器商品销售数据属于( )。
联机分析处理(OLAP)
45.在数据库设计过程中,设计用户外模式属于( 45 );数据的物理独立性和数据的逻辑独立性是分别通过修改( 46 )来完成的。
请作答:第 45 题
排除法:
A概念结构设计 产出的是全局E-R图,完全独立于任何具体数据库系统,不涉及“用户视图”的划分。
B物理设计 设计的是数据在硬盘上的存储结构、索引等内模式内容。
C逻辑结构设计
D数据库实施 不是“设计”阶段。
46:模式与内模式之间的映像、外模式与模式之间的映像
47.以下关于数据仓库的叙述中,不正确的是( )。
B数据仓库是面向业务的,支持联机事务处理(OLTP)
48.当不知道数据对象有哪些类型时,可以使用( )使得同类数据对象与其他类型数据对象分离。
A 分类 必须知道有哪些类型
B 聚类 这题要特别注意题目:不知道数据对象有哪些类型,没有事先的标签
C 关联规则
D 回归 预测一个连续数值,比如预测明天的气温、股价。
49.部门、员工和项目的关系模式及它们之间的E-R图如下所示,其中,关系模式中带实下划线的属性表示主键属性。
部门( 部门代码,部门名称,电话)
员工( 员工代码,姓名,部门代码,联系方式,薪资)
项目( 项目编号,项目名称,承担任务)

若部门和员工关系进行自然连接运算,其结果集为( 49 )元关系。由于员工和项目关系之间的联系类型为( 50 ),所以员工和项目之间的联系需要转换成一个独立的关系模式,该关系模式的主键是( 51 )。
49:部门和员工关系进行自然连接运算,应该去掉一个重复属性“部门代码”,所以自然连接运算的结果集为 7 元关系。
需要注意的是X元关系和X元联系不是一回事
元数在 E-R 模型中指一个联系包含的实体集个数。
元数在关系模型中指一个关系模式的属性个数。
50:多对多
51:(项目编号,员工代码)
因为员工和项目之间是一个多对多的联系,多对多联系向关系模式转换的规则是:多对多联系只能转换成一个独立的关系模式,由于员工关系的主键是员工代码,项目关系的主键是项目编号,因此,根据该转换规则(第三空)员工和项目之间的联系的关系模式的主键是(员工代码,项目编号)。
52.数据挖掘的分析方法可以划分为关联分析、序列模式分析、分类分析和聚类分析四种。如果需要一个示例库(该库中的每个元组都有一个给定的类标识)做训练集时,这种分析方法属于( )。
C分类分析
53.下图所示的E-R图中,应作为派生属性的是( 53 ):该E-R图应转换的关系模式为( 54 ),其中各关系模式均满足4NF。

53:年龄
54:D员工(工号,姓名,性别,出生日期) 员工电话(工号,电话)
一个实体内部,多个多值属性必须拆。
如果一个员工有多个电话,要么在“电话”字段里塞多个值(违反1NF),要么为多部电话重复存储员工信息(造成冗余,违反4NF)。
要满足 4NF(第四范式),必须消除独立的多值依赖。题中隐含的设定是“一个员工可以有多个电话”,这正是典型的多值事实。
55.根据历史数据,确定一个就诊人员是否可能患心脏病,可以采用( )算法。
A C4.5 这是决策树算法的一种,专门用于分类。它能根据历史患者数据(带“患病/未患病”标签)学习出一棵决策树,然后用这颗树去判断新病人“是”或“否”会患病。完全匹配题意。
B Apriori 这是经典的关联规则挖掘算法,用来发现“如果...就...”的捆绑关系
C K-means 这是聚类算法,属于无监督学习。它会在不知道任何标签的情况下把数据分成几堆
D EM 同样是无监督的聚类
56.关于聚类算法K-Means和DBSCAN的叙述中,不正确的是( ) 。
A K-Means和DBSCAN的聚类结果与输入参数有很大的关系
B K-Means基于距离的概念而DBSCAN基于密度的概念进行聚类分析
C K-Means很难处理非球形的簇和不同大小的簇,DBSCAN可以处理不同大小和不同形状的簇
K-Means基于距离,天然倾向于发现圆形或球形的簇,对条形、环形等“非球形簇”以及大小差异悬殊的簇处理效果很差。而DBSCAN基于密度连通性,可以识别出任意形状的簇(如环形、“S”形),且对簇的大小变化不敏感。
D 当簇的密度变化较大时,DBSCAN不能很好的处理,而K-Means则可以
两者均不能较好处理
57.在采用三级模式结构的数据库系统中,如果对数据库中的表Emp创建聚簇索引那么应该改变的是数据库的( )。
内模式:索引影响物理存储
外模式(用户模式):用户看到的局部数据视图。
模式(逻辑模式):数据库中全体数据的逻辑结构和特征的描述,比如有哪些表、表的列名和数据类型。
内模式(存储模式):数据在数据库内部的物理结构和存储方式的描述,比如数据文件如何组织、是否压缩加密、采用什么类型的索引等。
58.以下关于扩展E-R图设计的描述中,正确的是( )。
A 联系可以看作实体,与另一实体产生联系,称为聚合
B 联系的属性可以是其关联实体的标识符属性
联系的属性是描述这个联系本身特征的,不能是关联实体的标识符。
C 属性可以与其他实体产生联系
标准E-R模型中,属性是实体或联系的最小描述单位,不能脱离实体或联系而独立存在,更不能与其他实体产生联系。这是一个常见的原则,即属性不可再分且不具有结构。
D 三个实体之间的联系与三个实体之间的两两联系是等价的
三个实体间的多元联系(如“教师”、“学生”、“课程”三者间的“授课”联系)与它们之间的三个“两两二元联系”在语义上完全不同,绝对不等价。
50.60.聚类的典型应用不包括( 59 ),( 60 )是一个典型的聚类算法。
A 商务应用中,帮助市场分析人员发现不同的客户群
B 对WEB上的文档进行分类
C 分析WEB日志数据,发现相同的用户访问模式
D 根据以往病人的特征,对新来的病人进行诊断 不是聚类应用,是分类应用):“根据以往病人的特征,对新来的病人进行诊断”。这有明确的“以往病人”作为历史标签数据
60题:
A 决策树 分类算法
B Apriori 挖掘规则
C k-means
D SVM 分类算法
61.在数据库系统运行维护阶段,通过重建视图能够实现( )
C数据的逻辑独立性
62.数据模型通常由( )三要素构成。
D数据结构、数据操纵、完整性约束
63.64.在某企业的工程项目管理数据库中供应商关系 Supp、项目关系Proj 和零件关 系 Part 的 E-R 模型和关系模式如下

Supp (供应商号,供应商名,地址,电话) //供应商号唯一标识Supp中的每一个元组
Proj (项目号,项目名,负责人,电话) //项目号唯一标识 Proj 中的每一个元组
Part (零件号,零件名) //零件号唯一标识 Part 中的每一个元组
其中,每个供应商可以为多个项目供应多种零件,
每个项目可以由多个供应商供应多种零件,
每种零件可以由多个供应商供应给多个项目。
SP_P 的联系类型为( 63 ),( 64 )。
每个供应商可以为多个项目供应多种零件,每个项目可以由多个供应商供应多种零件,每种零件可以由多个供应商供应给多个项目”,说明三个实体间的联系类型应为:多对多对多。
63:*:*:*
64:需要生成一个独立关系模式,该模式的主键为(供应商号,项目号,零件号)
65.数据的物理存储结构,对于程序员来讲,( )。
采用数据库方式管理数据是不可见的,采用文件方式管理数据是可见的
对程序员来说,数据库方式被模式/内模式映像完全屏蔽了。程序员只需操作逻辑上的“表”,完全不用关心数据在硬盘上是如何存储、索引的。
66.数据仓库中的数据组织是基于(多维 )模型的。
数据仓库的核心数据组织方式:是多维模型。
这是它与操作型数据库(OLTP,联机事务处理)最根本的区别之一。关系模型:这是操作型数据库(OLTP)的基础。
67.68.数据挖掘中分类的典型应用不包括( 67 )。( 68 )可以用于数据挖掘的分类任务。
请作答:第 67 题
A 识别社交网络中的社团结构,即连接稠密的子网络
B 根据现有的客户信息,分析潜在客户
C 分析数据,以确定哪些贷款申请是安全的,哪些是有风险的
D 根据以往病人的特征,对新来的病人进行诊断
请作答:第 68 题
A EM 无监督的聚类,聚类天生就是“无监督”的
B Apriori
C K-means
D SVM
69.( )是按用户的观点对数据和信息建模,强调其语义表达功能,易于用户理解。
B 概念数据模型
概念数据模型(Conceptual Data Model):也称为信息模型,它是面向用户、面向现实世界的。它的目标是用用户能理解的语言和图形(如E-R图),来描述现实世界中的实体、属性和联系,完全不涉及任何具体的数据库实现细节。它强调语义,易于沟通,是数据库设计的第一个阶段。
70.假设某企业信息管理系统中的5个实体:
部门(部门号,部门名,主管,电话),
员工(员工号,姓名,岗位号,电话),
项目(项目号,名称,负责人),
岗位(岗位号,基本工资),
亲属(员工号,与员工关系,亲属姓名,联系方式)。
该企业有若干个部门,每个部门有若干名员工;
每个员工承担的岗位不同其基本工资也不同;
每个员工可有多名亲属(如:父亲、母亲等);
一个员工可以参加多个项目,每个项目可由多名员工参与。
下面( )属于弱实体对强实体的依赖联系。
弱实体是指其存在必须依赖于另一个实体(强实体)的实体,它不能独立存在。判断的关键是:这个实体脱离它所依赖的实体,是否有独立存在的意义。
A 部门与员工的“所属”联系
B 员工与岗位的“担任”联系
C 员工与亲属的“属于”联系 对于企业来说,这个员工的亲属信息只能是依附员工存在
D 员工与项目的“属于”联系
71.以下对关系模型的描述不正确的是( )。
A 与网状模型和层次模型相比,关系模型更复杂 这是完全说反了。相比网状和层次模型,关系模型的极大优势正是结构简单、概念单一。
B 关系模型是由若干个关系模式组成的集合
C 关系是一个实例,对应于程序设计语言中变量的概念
D 关系模型是采用表格结构来表达实体集以及实体集之间的联系
72.数据模型的三要素中不包括( )。
A 数据结构
B 数据类型
C 数据操作
D 数据约束
73.74.某本科高校新建教务管理系统,支撑各学院正常的教学教务管理工作。经过初步分析,
系统中包含的实体有学院、教师、学生、课程等。
考虑需要将本科学生的考试成绩及时通报给学生家长,新增家长实体;
考虑到夜大、网络教育学生管理方式的不同,需要额外的管理数据,新增进修学生实体:
规定一个学生可以选择多门课程,每门课程可以被多名学生选修;
一个教师可以教授多门课程,一门课程只能被一名教师讲授。
( 73 )实体之间为多对多联系,( 74 )属于弱实体对强实体的依赖联系。
73 学生、课程
74 家长、学生
75.一个取值域是原子的,是指该域的元素是( )单元。
不可分的
76.77.OLTP 指的是( 76 ),OLAP 指的是( 77 )。
联机事务处理/联机分析处理
78.相比于文件系统,用数据库系统管理数据,具有( )的优势。
数据独立性高
应用程序和数据之间实现了高度的解耦。当你修改数据的物理存储方式或全局逻辑结构时,可以最大限度地保证应用程序不需要跟着修改。
79.数据的逻辑独立性由( )的映射实现。
A外模式到逻辑模式
外模式/模式映像 局部视图 ↔ 全局逻辑表 逻辑独立性
模式/内模式映像 全局逻辑表 ↔ 物理存储 物理独立性
80.视图属于数据库系统三级模式结构的
B外模式
1. 内模式(物理模式):描述了数据在物理存储介质上的存储方式和组织方式。
2. 概念模式(逻辑模式):描述了整个数据库的逻辑结构,包括数据的实体、关系和约束等。
3. 外模式(用户模式):对用户或应用程序的数据需求进行抽象和描述,是对概念模式的一种子集。
81.数据模型的组成要素不包括( )。
A数据结构
B数据操作
C并发控制
D数据的完整性约束条件
82.( openGauss )是国产数据库管理系统。
83.数据仓库是为了构建新的分析处理环境而出现的一种数据存储和组织技术,其特征不包括( )。
A数据的组织面向主题
B数据是集成的
C数据是相对不稳定的
D数据是反映历史变化的
其特征包括:面向主题、数据是集成的、数据是相对稳定的,以及数据是反映历史变化的。
83.某学生想要设计一个博客系统,在数据库的概念设计阶段提出了如下图所示的E-R模型,其中的联系类型为( 5 ),联系的属性为( 6 )。

在 E-R 模型中,几元联系就是看一个联系的边连着几个实体集。三个实体 → 三元联系。
图中只有一个联系连接了三个实体集(用户、博客、评论),并且联系中包含了“发表时间”“发表”等属于三者交互的属性,那么该联系类型是:三元联系
E-R模型3要素:实体、联系和属性。实体用矩形框表示,在框中记入实体名;联系用菱形框表示,在框中记入联系名;属性用椭圆形表示,将属性名记入框中。
对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写*;对于多对多关系,则要在两个实体连线方向各写*,*。
根据阅读这张图,发表这个联系具有着发表时间这个属性
84.以下关于数据库三级模式的说法中,正确的是( )。
A内模式改变时,外模式必须改变
B外模式改变时,逻辑模式必须改变
C数据库中存储文件的结构对应于内模式
D一个数据库只有一个外模式
85.与层次模型和网络模型相比,关系模型( )。
A结构复杂
B没有通用化的查询工具
C没有严格的数学支撑
D实现细节对程序员不可见
86.( 两段锁 )协议规定对任何数据进行读写之前必须对该数据加锁,且在释放一个封锁之后,事务不再申请和获得任何其他封锁。
该描述符合两段锁协议(Two-Phase Locking Protocol)。两段锁协议是一种用于处理并发控制的技术,用于确保事务的隔离性和一致性。
两段锁可以保证多个事务的并发执行是可串行化的调度。(两个并发执行的结果和两个先后串行一样)
87.在事务隔离级别中,( )隔离级别禁止不可重复读取和脏读现象,但是有时可能出现幻读数据。
脏读取(Dirty Read) 指的是:一个事务读取了另一个事务尚未提交的数据。如果那个未提交的事务最终被回滚(撤销),那么读到的数据就是不存在/错误的,像“脏”数据一样。
不可重复读指的是:在同一个事务中,两次读取同一条数据,得到的结果不一致(因为另一个事务在这期间修改并提交了这条数据)。
禁止不可重复读,就是要求数据库在同一个事务内,多次读取同一数据时,结果必须始终相同。
未授权读取:也称为读未提交(Read Uncommitted):允许脏读取,但不允许更新丢失。如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。
授权读取:也称为读提交(Read Committed):允许不可重复读取,但不允许脏读取。读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。
可重复读取(Repeatable Read):禁止不可重复读取和脏读取,但是有时可能出现幻影数据。读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。
序列化(Serializable):提供严格的事务隔离。它要求事务序列化执行,事务只能一个接着一个地执行,但不能并发执行。
88.一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问了这个数据,然后使用了这个数据。这种现象称为( )。
脏读
89.当多个事务执行时,任一事务的更新操作,在其成功提交之前,对其他事务都是不可见的,这指的是事务的( 隔离性 )。
90.两个事务T1和T2遵守两段锁协议,则并发调度结果( )。
B 是可串行化的,可能会发生死锁
D不是可串行化的,可能会发生死锁
若所有事务都遵守两段锁协议,则它们的任何并发调度结果都是可串行化的。并不能杜绝死锁。
91.要求事务在读数据前必须先加S锁,读完后即释放的协议是( )。
A 一级封锁协议
B 二级封锁协议
C 三级封锁协议
D 两段锁协议
一级防丢改,写加X锁读不加锁,只防止修改丢失
二级防脏读(+丢失修改),写加X锁,读前S加锁读完释放
三级防重读(+丢失修改+脏读),写加X锁,读前加S锁,事物结束释放
两段保顺序,加锁分成两阶段
92.下表为两个事务T1和T2的一个并发调度。其中,数据项A的初值为3,B的初值为4;变量X、Y为事务中的局部变量。语句X=Read(A)表示读取数据项A的值到变量X,Write(A,X)表示将变量X的值写入数据项A中。此并发调度执行结束后A和B的值分别为( 59 );该调度( 60 )。


59:A=7,B=6 执行较晚的会覆盖之前的结果
60:一个并发调度是 正确的,通常指:
最终结果等于某个串行调度的结果,因此结果是不正确的
一个并发调度是可串行化的,当且仅当它的执行结果等价于某一种串行调度(即 T1 全部执行完再执行 T2,或 T2 全部执行完再执行 T1)的结果。
这个并发控制不可以串行化
93.一级封锁协议能够防止( )。
①丢失修改②不可重复读③读脏数据
94.如果事务T获得了数据项R上的X锁,则T对R( )。
A 只能读不能写
B 只能写不能读
C 既可读又可写
D 不能读不能写
X锁的具体作用是排他,事务 T 获得了数据项 R 上的 X锁,意味着 T 对 R 拥有独占访问权,T 自己既可以读 R,也可以写 R
其他事务不能对 R 加任何锁(既不能读也不能写),直到 T 释放 X锁
而S就是字面意义上的只可读不可写
95.并发执行的各个事务之间不能互相干扰,属于事务的( )。
隔离性
96.以下关于并发调度的说法中,正确的是( )。
A 以不同串行方式调度执行两个事务,结果都相同
B 并发调度结果与某一种串行调度结果相同,是并发调度正确的必要条件
C 不满足两段锁协议的并发调度,其结果一定是错误的
D 满足两段锁协议的并发调度不会产生死锁
97.98.99.下表是某两个事务并发执行时的调度过程,这里不会出现不可重复读的问题,是因为这两个事务都使用了( 65 );
两个事务的并行执行结果是正确的,是因为这两个事务都使用了( 66 );
在执行过程中没有发生死锁,这是因为( 67 )导致的。

三级封锁协议
两段锁协议
两段锁可以保证多个事务的并发执行是可串行化的调度。
偶然的调度
两段锁是不能保证死锁的,没有发生是因为这次的调度刚好没有出现而已。
100.以下关于数据库事务的说法中,错误的是( )。
A 数据库事务是恢复和并发控制的基本单位
B 数据库事务必须由用户显式地定义
C 数据库事务具有ACID特性
D COMMIT和ROLLBACK都代表数据库事务的结束
101.以下关于数据库事务的叙述中,正确的是( )。
一个数据库事务可以包含一组SQL语句
102.原子性、一致性、持久性、( )是数据库事务的四个特征。
隔离性
103.如果一个事务已获得数据项R上的共享锁,则其他事务( )。
可获得R上的共享锁
104.事务具有 ACID特性,其中C是指事务的( )。
A原子性(Atomicity)
B持续性(Durability)
C隔离性(Isolation)
D一致性 (Consistency)
105.106.107.事务T1将数据库中的A值从50改为30,事务T2读A值为30,事务T1又将刚才的操作撤销,A值恢复为50。这种情况属于(读脏数据 ), 是由于数据库系统在( 并发控制 )方面的不当引起的,能解决此问题的方法是( 75 )。
A一级封锁协议和二级封锁协议
B二级封锁协议和三级封锁协议
C一级封锁协议和三级封锁协议
D一级封锁协议、二级封锁协议和三级封锁协议
具体到这道题中,和一级协议没有直接关系。
二级封锁协议本身就能防止脏读
三级封锁协议也能防止脏读(还能防止不可重复读)
但一级封锁协议不能防止脏读
108.下面说法中错误的是( )。
A并发事务如果不加控制,可能会破坏事务的隔离性
B可串行化调度是正确的调度
C两段锁协议能够保证可串行化调度
D两段锁协议能够确保不会产生死锁
109.如果事务T获得了数据项R上的共享锁,则T对R( )。
只能读不能写
110.111.并发操作可能带来的数据不一致性有( 78 ),解决的办法是并发控制,主要技术是( 79 )。
丢失修改、不可重复读、读脏数据
封锁
112.用于提交和回滚事务的语句为( )。
COMMIT TRANSACTION 和 ROLLBACK TRANSACTION
113.下图中两个事务的调度属于( )。

C非可串行化调度
设 A=100,B=100,然后按调度顺序计算,再对比两种串行调度的结果。
并发调度结果:A=200x0.3=60,B=20-100= -80
不论是怎么串行,先后执行哪个,结果都不会相同
114.满足两阶段封锁协议的调度一定是( )。
可串行化调度
115.保证并发调度的可串行化,是为了确保事务的( )。
隔离性和一致性
串行调度天然保持一致性(前提是单个事务正确)。
116.117.并发执行的三个事务T1 、T2 和T3,事务T1 对数据 D1 加了共享锁,事务T2、 T3分别对数据 D2 、D3 加了排他锁,之后事务T1 对数据( 84 );事务T2对数据( 85 )。
84:D D2 、D3 加排他锁和共享锁都失败
事务 T1:已对 D1 加了 共享锁(S锁)
事务 T2:已对 D2 加了 排他锁(X锁)
事务 T3:已对 D3 加了 排他锁(X锁)
加了排他锁的情况下,只要不解锁,其他事务不能加任何锁
共享锁允许其他事务加共享锁(读锁),但是也不可以加排他锁,不然就自相矛盾了
85:D1 加共享锁成功 ,D3 加排他锁失败
118.119.如下图所示的并发调度,假设事务T 1、T 2执行前数据项X、Y的初值为X=100,Y=200。该调度执行完成后,X、Y的值为( 86 );此类不一致性称为( 87 ) 。

X= 70,Y=270
87:丢失修改
丢失修改的定义:
两个事务读同一数据,各自修改,后写者覆盖先写者的结果,导致先写者的修改丢失。
120.事务有多种性质,“一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也将永久有效。”这一性质属于事务的( 持久性 )。
121.122.事务一旦提交,即使在写入数据库前数据尚在内存中而发生故障造成系统重启,该事务的执行结果也必须入数据库,该性质称为事务的( 持久性),为保证这一性质,必须使用( 日志 )。
123.124.如下图所示的调度,其中事务T 1、T 2仅对数据项A、B进行操作,则该调度( 91 );
假如该调度已经产生死锁,如果要从事务 T 1 、T 2中进行回滚以解除死锁,从代价最小的角度考虑,应回滚事务(T2 ) 。

A满足两段锁协议、不发生死锁
B满足两段锁协议、会发生死锁
S-LOCK(B) 请求 B 的 S 锁 → B 已被 T1 加 X 锁 → 不兼容 → T2 等待
X-LOCK(A) 请求 A 的 X 锁 → A 已被 T2 加 S 锁 → 不兼容 → T1 等待
T2未修改数据故应该回滚t2
125.SQL中,用于提交和回滚事务的语句分别是( ) 。
COMMIT WORK和ROLLBACK WORK
126.127.假设系统中只有事务T1和T2,两个事务都要对数据D1和D2进行操作。若 T1对D1已加排他锁, T1 对D2已加共享锁;那么T2对D1( 94 ),那么T2对D2( 95 )。
加共享锁、加排他锁都失败
加共享锁成功,加排他锁失败
E-R图相关概念
实体(Entity):一张表
对应现实世界的“对象”,有属性(Attributes)
例如:供应商表,里面有供应商诸多信息、零件表
E-R图中通常用矩形表示
属性(Attribute):表中的字段
实体或联系的特征
例如:供应商的名称、地址、电话
用椭圆表示,连线到它所属的实体或联系
联系(Relationship)
实体之间的关系,是描述‘谁和谁发生了什么事’的实体,联系属性总是依赖于多个实体
例如:供应商和零件之间有采购的关系,有一张采购表,里面的外键分别来自供应商和零件表。
用菱形表示,可以有自己的属性(例如采购数量、采购日期)
如果一个表包含多个实体的主键作为外键,通常这个表就是联系表。
我们在分析题目的时候发现,如果一个实体和另一个实体有多对多联系→ 必然需要联系表。
1对1是可以完美写在一张表里面
一对多考虑冗余需要拆分,但是可以用外键来关联两张表
多对多联系无法被表完整存储,需要新构造一个中间表
1. 对于 1:N 联系(一个部门有多个职工):将“1”端(部门)的主键,放到“N”端(职工)的实体表中。
2.2. 对于 1:1 联系(一个部门有一位经理):将任意一方的主键,放到另一方的实体表中。
3.3. 对于 M:N 联系(多个学生选修多门课程):这时,任何一方都放不下对方的主键(因为会产生严重冗余)。因此,必须为这个联系单独新建一张表。
一对多和多对多的区别是:多对多需要新构造一个关联表,两个实体会变成三张表。一对多拆分完还是两个表,多方用主键关联少方。