提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档文章目录数据库系统学习笔记共享锁与排他锁三级模式公共属性列外键SQL中的NULL值SQL中的通配符OS与DBMS直接的关系需求分析阶段规范化持久性并发控制数据库设计六阶段集合运算无损联接与保持函数依赖什么是分布式数据库什么是数据库系统数据库管理系统的主要功能是什么DBS的组成简述关系模型的三个组成部分解释文件系统为什么会存在数据冗余这种数据冗余会导致哪两种典型的问题SQL Server的许可系统为什么蒋用户分成四类请将他们按层次从高到低排列出来并发操作会带来哪几类数据的不一致性问题一、二、三级封锁协议分别可以解决哪几类数据不一致性问题什么是触发器触发器由那几部分组成数据库至少包含几种后缀名的文件分别存放什么信息**SQL Server 数据库至少包含以下** ***\*两种\**** **必需的文件三种常见**视图可以更新吗会影响到实际表吗什么是关系的实体完整性、参照完整性和用户自定义完整性建立在关系模式主码上的索引就是主索引吗为什么在同一个SQL语句中的having子句和where子句中的条件是什么关系简述数据库系统生存期的七个阶段**✅ 补充说明**什么是事务事务具有哪些特征**示例**数据库常见的故障有哪些什么是数据库系统安全性数据库安全性控制的常用方法包括哪些数据库系统学习笔记共享锁与排他锁共享锁S锁读锁用于读取操作允许多个事务同时读取同一数据对象。排他锁X锁写锁用于写操作当一个事务T对数据对象A加上排他锁以后只有该事务T可以对A读取和修改操作而其他任何事务都不能再对A加任何类型的锁。请求的锁共享锁排他锁共享锁S兼容不兼容排他锁X不兼容不兼容假设有一行数据“余额 100元”。场景事务 T1 想要扣款 10 元。操作T1 给“余额”加上排他锁。结果T1 可以读取余额100并修改为 90。此时事务 T2 想要查询余额它必须申请共享锁。因为 T1 持有排他锁T2 的查询请求会被阻塞排队等待直到 T1 提交事务并释放锁。这样就避免了 T2 在 T1 修改过程中读到混乱的数据。本题选择AT1已对A加了共享锁其他事务只能对A加共享锁能读但不能加排他锁不能写。三级模式在数据库系统中三级模式结构包括外模式、概念模式和内模式外模式用户视图层是用户或应用程序能看到的数据视图是概念模式的子集虽然屏蔽了底层复杂性但仍依赖于DBMS软件实现。概念模式全局逻辑层描述数据库的全局逻辑结构是数据库设计人员与用户沟通的工具完全独立于硬件和软件只关注数据的语义和关系常用E-R图表示。内模式物理存储层描述数据在磁盘上的存储方式高度依赖硬件和软件如存储引擎、文件系统等。本题选择C易错选B。主要是没能正确区分逻辑模型和概念模型举例说明概念模型“学生选课”系统中有“学生”、“课程”、“选课”三个实体学生和课程通过选课关联。→ 这个描述不涉及任何数据库软件也不管数据怎么存纯业务语义。逻辑模型在 MySQL 中我们创建Student(id, name)、Course(cid, title)、Enrollment(sid, cid)三张表并定义主外键。→ 这已经是在特定 DBMSMySQL下的设计依赖软件。公共属性列外键在关系数据库中实现实体之间的联系是通过表与表之间的公共属性。SQL中的NULL值SQL 中对空值NULL的判断规则NULL不是值而是“未知”或“缺失”的状态。判断字段是否为空必须使用IS NULL或IS NOT NULL。严禁使用、!、、等比较运算符与NULL进行比较否则逻辑会失效。NOT (AGE IS NULL)是合法的逻辑表达式等价于AGE IS NOT NULL。本题选择CNULL表示“未知”或“缺失”不是一个具体的值任何等值比较都会返回UNKNOWN而不是TRUE或FALSEB选项是判断字段是否不为空的标准写法SQL中的通配符在 SQL 的LIKE子句中%和_是通配符用于进行模糊查询。结合上一道题目找出倒数第三个字母为 W 的部门名这两个符号的具体含义如下%含义 匹配任意长度的字符串包括长度为零的空字符串。例子%W匹配以 W 结尾的字符串如AWE, W, ABCW。W%匹配以 W 开头的字符串如WABC, W, WXYZ。%W%匹配包含 W 的字符串如AWB, W, ABCW。_含义 匹配单个字符。例子__W匹配第三个字符是 W且总长度为 3 的字符串如ABW。W__匹配第一个字符是 W且总长度为 3 的字符串如WAB。根据题目要求“倒数第三个字母为W”可表示为%_W__即W前有任意数量字符后有任意两个字符。但选项中无此模式。选项B_%W_表示W是第三个字符结合“至少4个字母”可表示为%_W_%。例如“ABWCD”中W是第三个字符符合“倒数第三个”若总长度为5。综合分析最合适的选项是B。OS与DBMS直接的关系在数据库系统DBS中数据库管理系统DBMS是位于用户与操作系统OS之间的一层系统软件其核心职责是管理数据库的存储、检索、更新、事务处理和安全控制等。为了完成这些任务DBMS需要依赖操作系统提供的底层服务例如文件管理、内存管理、进程调度和设备驱动等。因此DBMS会主动调用OS的接口或服务来完成数据的物理存储、读取或系统资源的分配而不是由OS主动调用DBMS也不是相互调用或完全独立并发运行。这种调用关系是单向的DBMS → OS。本题选择B那为什么有人会说 C通常是把“调用”理解成了更宽泛的“调度/启动/运行”OS 会启动DBMS 进程、调度DBMS 线程运行——但这不叫“OS 调用 DBMS”而是 OS 在管理进程/线程。真正的“调用”在体系结构里通常指“上层软件通过接口使用下层服务”这才对应DBMS → OS。需求分析阶段数据库设计是一个系统化的过程通常包含多个阶段其中需求分析阶段是整个设计流程的起点。在这一阶段设计者需要与用户沟通深入理解业务需求、数据操作方式以及系统功能从而为后续的概念设计、逻辑设计和物理设计提供明确的方向和依据。本题选择A网上也有选择C的虽然题目中提到“应用程序设计”但其工作内容如功能规划、用户交互、数据处理逻辑等本质上依赖于对数据需求的准确认知而这一认知正是从需求分析阶段开始建立的。因此应用程序设计的工作可以视为在需求分析基础上展开其起点应归于数据库设计的需求分析阶段。如果把“应用程序设计”理解为基于表结构的详细设计/实现设计具体 SQL、接口、表单、存储过程、事务边界等那通常要等到逻辑结构关系模式/表、主外键、约束确定后才好展开所以网上也有选择C。规范化关系数据库的规范化理论是数据库设计中的核心内容其核心目标是如何构造合适的数据逻辑结构。在数据库逻辑设计阶段规范化通过分解关系模式消除数据冗余、更新异常、插入异常和删除异常从而确保数据的一致性和完整性。本题选择A选项B“如何构造合适的数据物理结构”属于物理设计范畴涉及存储结构、索引、分区等与规范化无关。选项C“如何构造合适的应用程序界面”属于应用开发或用户界面设计不属于数据库理论范畴。选项D“如何控制不同用户的数据操作权限”属于数据库安全与权限管理是数据库管理系统的功能而非规范化理论解决的问题。持久性在数据库管理系统DBMS中事务的持久性是指一旦事务提交其对数据库的修改就应永久保存即使系统发生故障或崩溃修改结果也不能丢失。实现持久性的核心机制依赖于恢复管理子系统。该子系统通过日志记录redo log和检查点checkpoint等技术确保已提交事务的操作能够被持久化到非易失性存储设备如磁盘中。当系统崩溃后恢复管理器可依据日志重做redo已提交但尚未写入磁盘的事务操作从而保证数据不丢失。本题选择DA. 安全性管理子系统负责用户权限控制、数据访问安全与持久性无关。B. 完整性管理子系统负责约束约束如主键、外键、约束以保证数据一致性不涉及事务提交后的持久化。C. 并发控制子系统负责协调多个事务的执行顺序确保隔离性避免数据冲突不负责持久化。并发控制在数据库系统中多个用户可能同时访问和修改数据。如果缺乏有效协调一个用户的操作可能会干扰另一个用户的操作导致数据不一致或错误结果。为解决此类问题数据库管理系统需实施并发控制机制。并发控制的核心目标是在允许多用户并行操作数据的同时防止因交叉干扰导致的数据错误或逻辑冲突。它通过锁机制、事务隔离级别等技术确保事务的独立性和数据的一致性。本题选择C完整性控制用于保证数据的正确性、有效性和相容性例如约束、触发器等不直接解决用户间操作干扰问题。安全性控制用于防止未授权访问或数据泄露如用户权限管理不涉及操作顺序或并发冲突。访问控制是安全性控制的一部分控制用户能访问哪些资源不解决并发操作间的干扰。数据库设计六阶段始于搞清楚用户要什么需求分析。画图用E-R图描述业务逻辑概念设计。转换把图变成表逻辑设计。优化存储决定表怎么存最快物理设计。动手建库写代码建表导入数据实施。长期维护监控、备份、优化运行维护。选项 A错误需求分析阶段的核心是收集和分析用户需求明确系统功能与数据要求尚未涉及E-R图或数据模型的转换。选项 B错误概念设计阶段的任务是构建E-R图用于描述现实世界的实体、属性及关系是概念模型的建立而非转换为关系模型。选项 C正确逻辑设计阶段的核心任务正是将概念设计阶段形成的E-R图转换为具体的关系数据模型即关系模式包括实体与联系的转化、属性映射、模式优化等完全符合题干描述。选项 D错误物理设计阶段关注的是为关系模型选择合适的存储结构、索引、分区等物理实现细节与E-R图转换无关。这道题考查的是数据库设计各阶段的核心任务关键在于区分“概念模型构建”与“逻辑模型转换”的界限。E-R图是概念模型将其转换为关系模型是逻辑设计阶段的标志性工作。集合运算并集Union符号为 A∪B表示由属于集合 A 或集合 B 的所有元素组成的集合。例如若 A {1, 2}B {2, 3}则 A∪BA∪B {1, 2, 3}。并集强调“或”的关系只要元素在任一集合中出现即被包含。交集Intersection符号为 A∩B 表示由同时属于集合 A 和集合 B 的所有元素组成的集合。例如若 A {1, 2}B {2, 3}则 A∩BA∩B {2}。交集强调“且”的关系元素必须在两个集合中同时存在。差集Difference符号为 A−B 或 A∖B表示由属于集合 A 但不属于集合 B 的所有元素组成的集合。例如若 A {1, 2, 3}B {2, 3, 4}则 A−BA−B {1}。差集体现“剔除”逻辑从 A 中移除与 B 共有的部分。补集Complement符号为 Ac表示在全集 U 中不属于集合 A 的所有元素组成的集合。例如若全集 U {1, 2, 3, 4, 5}A {1, 2}则 Ac {3, 4, 5}。补集依赖于全集的定义是相对于全集而言的“剩余部分”。对称差集Symmetric Difference符号为 A⊕B或 A△B 表示属于 A 或 B 但不同时属于两者的元素组成的集合。例如若 A {1, 2}B {2, 3}则 A⊕B {1, 3}。对称差集可以理解为“异或”逻辑即只保留独有部分剔除公共部分。子集Subset符号为 A⊆B表示集合 A 中的每一个元素都属于集合 B。若 A 是 B 的真子集即 A ≠ B则记作 A⊂BA⊂B。例如{1, 2} ⊆⊆ {1, 2, 3}且 {1, 2} ⊂⊂ {1, 2, 3}。空集Empty Set符号为 ∅或 {}表示不含任何元素的集合。空集是任何集合的子集也是集合运算中的“零元”。本题选择BS-R表示①部分S-(S-R)表示②部分与R∩S等价无损联接与保持函数依赖无损联接想象一下如果你把一张大表拆成两张小表之后再通过自然联接Natural Join把它们拼回去如果拼出来的结果和原来一模一样没有多出数据也没有丢失数据这就是无损联接。保持函数依赖分解后的各个小表应该能覆盖原来大表所有的业务规则即函数依赖。A. 是无损联接也是保持FD的分解B. 是无损联接但不保持FD的分解C. 不是无损联接但保持FD的分解D. 既不是无损联接也不保持FD的分解正确答案是 A。什么是分布式数据库数据分布在计算机网络的不同计算机上网络中的每个节点具有独立处理的能力可以执行局部应用同时每个节点也能通过网络通信子系统执行全局应用。数据分布性数据不是集中在一个服务器上而是分散存储在多台机器可能跨机房、跨城市甚至跨国。逻辑整体性对用户或应用程序而言它看起来就像一个普通的单一数据库无需关心数据实际存在哪里。站点自治性每个节点站点可以独立管理自己的本地数据具有一定的自主控制权。透明性系统对用户隐藏了数据分布的复杂性包括位置透明你不用知道数据在哪台机器上复制透明你不知道数据是否有备份分片透明你不知道数据被拆成了几块什么是数据库系统数据库系统是实现有组织地、动态地存储大量关联数据方便多用户访问的计算机软、硬资源组成的系统。它包含关联数据的集合、DBMS和用户应用程序等。数据库管理系统的主要功能是什么数据库定义、操作、事务管理、并发控制、安全与权限控制、备份与恢复、数据字典管理等功能DBS的组成数据库、数据库管理系统、应用程序、软硬件平台、数据库管理员、用户简述关系模型的三个组成部分数据结构基本数据结构是关系数据操纵关系模型提供一组完备的高级关系运算分为关系代数和关系演算数据完整性规则包括实体完整性、参照完整性和用户自定义完整性关系模型 数据结构表 操作集合查询/更新 完整性约束规则解释文件系统为什么会存在数据冗余这种数据冗余会导致哪两种典型的问题由于文件系统难于实现数据共享相同的数据可能会在多个文件中重复出现即产生数据冗余。数据冗余会导致数据异常和数据不一致SQL Server的许可系统为什么蒋用户分成四类请将他们按层次从高到低排列出来系统管理员SASystem Admin数据库拥有者DBODatabase Owner公共用户guest / public一般用户user并发操作会带来哪几类数据的不一致性问题一、二、三级封锁协议分别可以解决哪几类数据不一致性问题问题丢失更新、读脏数据、不可重复读一级封锁解决丢失更新问题二级封锁解决丢失更新和度脏数据问题三级封锁解决丢失更新、读脏数据、不可重复读问题✅并发操作引起的三类数据不一致性问题问题类型定义关键特征示例简述丢失更新Lost Update两个事务同时修改同一数据后提交者覆盖前者的更新写-写冲突T1 和 T2 同时读 A100分别改为 150 和 200最终只保留一个结果读“脏”数据Dirty Read读取了另一个未提交事务修改的数据而该事务随后回滚读-写冲突读未提交T1 修改 A200未提交T2 读到 200T1 回滚 → T2 读到无效值不可重复读Non-Repeatable Read同一事务内两次读同一数据结果不同因其他事务已提交修改读-写-读冲突T1 第一次读 A100T2 修改 A200 并提交T1 第二次读得 200 注幻读Phantom Read是不可重复读的一种扩展涉及新行插入/删除传统三级封锁协议不能完全解决幻读。✅ 二、三级封锁协议对比表封锁协议加锁规则锁释放时机能解决的问题不能解决的问题一级封锁协议1PL- 写前加X 锁不要求读加锁X 锁事务结束才释放✅ 丢失更新❌ 脏读 ❌ 不可重复读二级封锁协议2PL- 写前加X 锁- 读前加S 锁- X 锁事务结束释放 - S 锁读完立即释放✅ 丢失更新 ✅ 脏读❌ 不可重复读三级封锁协议3PL- 写前加X 锁- 读前加S 锁- X 锁事务结束释放 - S 锁事务结束才释放✅ 丢失更新 ✅ 脏读 ✅ 不可重复读值修改型❌ 幻读需范围锁或 Serializable 隔离级别丢失更新Lost Update现象两个事务同时读取同一数据项各自修改后写回后提交的事务覆盖了前一个事务的更新导致前者的修改“丢失”。示例T1 读 A100T2 也读 A100T1 将 A 改为 150T2 将 A 改为 200若 T2 先写回T1 后写回或反之最终结果只反映其中一个更新另一个丢失。读“脏”数据Dirty Read现象一个事务读取了另一个尚未提交的事务所修改的数据。若后者回滚则前者读到的是“不存在”的无效数据。示例T1 修改 A200未提交T2 读取 A200T1 因错误回滚A 恢复为 100T2 读到的 200 是“脏数据”。不可重复读Non-Repeatable Read现象在同一事务中两次读取同一数据项得到不同结果因为其他事务在两次读之间修改并提交了该数据。包括三种情况数据值被修改如 A 从 100 变为 200数据被删除第二次读不到新数据被插入幻读Phantom Read有时单独列出但在传统三级封锁中归入不可重复读。一级封锁协议1PL规则事务在修改数据前必须加X 锁排他锁直到事务结束提交或回滚才释放 X 锁。解决的问题✅丢失更新因为写操作加 X 锁到事务结束其他事务无法同时写避免覆盖二级封锁协议2PL规则满足一级协议写前加 X 锁事务结束释放读数据前必须加 S 锁共享锁读完后立即释放 S 锁不是等到事务结束。解决的问题✅丢失更新继承一级✅读脏数据因为要读未提交的数据必须等其 X 锁释放而未提交事务持有 X 锁不放所以读操作会被阻塞无法读到脏数据三级封锁协议3PL规则满足一级协议写前加 X 锁事务结束释放读数据前加 S 锁S 锁一直保持到事务结束才释放关键区别。解决的问题✅丢失更新X 锁到结束✅读脏数据S 锁需等 X 锁释放即等对方提交✅不可重复读因为 S 锁持续到事务结束其他事务无法修改该数据保证多次读一致什么是触发器触发器由那几部分组成是数据库中一种特殊的存储过程它不需要用户显式调用而是在特定的数据操作事件如 INSERT、UPDATE、DELETE发生时自动执行。核心思想当某事发生时自动做另一件事触发器是一个能有系统自动执行对数据库修改的语句事件对数据库的插入、删除、修改等操作条件条件成立执行相应动作否则什么也不能做动作如果满足预定条件由DBMS执行这些动作因此触发器 事件 条件 动作并在指定时机BEFORE/AFTER自动执行数据库至少包含几种后缀名的文件分别存放什么信息SQL Server 数据库至少包含以下*两种*必需的文件三种常见文件后缀文件类型存放的信息是否必需.mdf主数据文件Primary Data File- 数据库的启动信息如数据库版本、状态等 -用户数据和系统表数据- 指向其他数据文件的指针✅ 是每个数据库有且仅有一个.ndf次要数据文件Secondary Data File-额外的用户数据当主文件空间不足或需要分散 I/O 时使用 - 可有多个也可没有❌ 否可选.ldf日志文件Log File-事务日志记录所有事务的开始、修改、提交/回滚信息 - 用于恢复、回滚、复制、高可用等✅ 是至少一个视图可以更新吗会影响到实际表吗可以会视图本身不存储数据它只是一个“保存好的查询语句”。所以当你“更新视图”时并不是在更新一个独立的“虚拟表”而是数据库系统自动把你的更新操作转换成对底层实际表基表的操作。因此更新视图 间接更新实际表。什么是关系的实体完整性、参照完整性和用户自定义完整性完整性Integrity是指数据的正确性、有效性和一致性实体完整性关系的主键Primary Key不能取空值NULL且必须唯一。参照完整性外键Foreign Key的值必须是被参照关系主表中某个主键的值或者为空NULL如果属性集K是关系模式R1的主键同时K也是关系模式R2的外键那么在R2的关系中K的取值只允许两种可能NULL or 等于R1关系中某个主键用户自定义完整性由用户根据具体应用语义定义的约束条件反映现实世界的业务规则。完整性类型约束对象核心规则实现方式示例实体完整性主键Primary Key主键 ≠ NULL且唯一PRIMARY KEY,UNIQUE NOT NULL参照完整性外键Foreign Key外键 主表主键值 或 NULLFOREIGN KEY REFERENCES ...用户自定义完整性任意列或行满足用户定义的业务规则取值范围、格式等CHECK,NOT NULL, 触发器等建立在关系模式主码上的索引就是主索引吗为什么不是主索引从概念上主要是指索引结构中的搜索码的顺序与数据文件中的记录存储的物理顺序一致的索引建立在主码上的索引未必满足一致性要求。主索引Primary Index 是数据库系统中一种特定类型的索引结构源于有序文件组织的物理存储模型。它的核心特点是建立在数据文件的排序字段上且该排序字段通常是主码或候选码。主索引 在按主码或候选码物理有序存储的数据文件上为该排序字段建立的稀疏索引。在同一个SQL语句中的having子句和where子句中的条件是什么关系关系说明互补协作WHERE先筛选出符合条件的“原始行”这些行才参与后续的分组HAVING再对分组后的“聚合结果”进行筛选。✅ 因此二者可以同时出现在一个查询中共同完成“先过滤个体再过滤群体”的需求。特性WHERE子句HAVING子句作用对象原始表中的行单条记录分组后的结果GROUP BY 产生的组执行顺序在GROUP BY之前执行在GROUP BY之后执行能否使用聚合函数❌ 不能如COUNT(),SUM()等✅ 可以能否引用 SELECT 中的列别名❌ 一般不能取决于 DBMS❌ 通常也不能应使用原始表达式目的过滤参与分组的原始数据过滤分组后的聚合结果执行顺序逻辑上FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY简述数据库系统生存期的七个阶段阶段序号阶段名称主要目标主要工作内容关键输出特点说明1规划阶段判断是否需要开发数据库系统评估项目可行性- 初步调研组织需求 - 分析技术/经济/操作可行性 - 制定项目计划与预算可行性分析报告、项目章程高层决策阶段决定项目是否启动2需求分析阶段全面、准确地收集用户对数据和处理功能的需求- 与用户沟通业务流程 - 确定数据范围、结构、约束、安全要求 - 建立数据字典、数据流图DFD《需求规格说明书》面向用户强调“做什么”而非“怎么做”3概念设计阶段建立独立于具体 DBMS 的全局逻辑数据模型- 使用 E-R 模型建模 - 设计实体、属性、联系 - 构建并验证全局 E-R 图全局 E-R 图、概念模式与硬件/软件无关用户视角的数据视图4逻辑设计阶段将概念模型转换为特定 DBMS 支持的数据模型如关系模型- E-R 图转关系模式 - 规范化如 3NF、BCNF - 定义主键、外键、完整性约束逻辑数据库模式SQL DDL 脚本面向 DBMS确定表结构和约束5物理设计阶段为逻辑模型选择最优的物理存储结构和访问方法- 设计存储结构、文件组织 - 创建索引、聚簇、分区策略 - 考虑性能、空间、安全物理存储方案、索引设计、配置参数依赖具体 DBMS如 Oracle、SQL Server6实现与部署阶段创建实际数据库加载数据开发并集成应用- 执行 DDL 创建数据库 - 编写应用程序/存储过程/触发器 - 数据清洗与初始加载 - 进行系统测试可运行的数据库系统、初始数据、应用从设计走向现实完成系统构建7运行与维护阶段保障系统长期、稳定、高效、安全运行- 日常监控、备份与恢复 - 性能调优 - 用户权限管理 - 故障处理 - 根据新需求进行局部修改系统日志、优化报告、更新版本持续时间最长占生命周期 80% 以上✅ 补充说明迭代性各阶段并非严格线性常有反馈和返工如维护阶段发现需求遗漏可能回退到需求或设计阶段。角色分工阶段 1–3系统分析师、用户代表主导阶段 4–5数据库设计师主导阶段 6–7开发人员、DBA数据库管理员、运维人员主导。什么是事务事务具有哪些特征事务是数据库管理系统DBMS中用户定义的一个逻辑工作单元它由一系列数据库操作如 INSERT、UPDATE、DELETE、SELECT 等组成。这些操作要么全部成功执行要么全部不执行是一个不可分割的整体。✅ 简单说事务是“全做或全不做”的操作序列。示例银行转账操作BEGIN TRANSACTION; UPDATE accounts SET balance balance - 100 WHERE name Alice; UPDATE accounts SET balance balance 100 WHERE name Bob; COMMIT;这两个 UPDATE 必须同时成功否则全部回滚如 Alice 扣款成功但 Bob 未到账则整个操作无效。事务必须满足ACID四个基本性质这是保证数据库可靠性和一致性的核心特性全称含义说明AAtomicity原子性事务是不可分割的最小工作单元事务中的所有操作要么全部完成要么全部不执行。即使在执行过程中发生故障也必须回滚到事务开始前的状态。CConsistency一致性事务执行前后数据库必须保持一致性状态事务不能破坏数据库的完整性约束如主键、外键、CHECK 约束等。例如转账前后总金额不变。IIsolation隔离性并发执行的多个事务相互隔离互不干扰一个事务的中间状态对其他事务不可见。即使多个事务并发执行最终结果应等价于某种串行执行顺序。DDurability持久性一旦事务提交其结果永久保存即使系统崩溃如断电、宕机已提交事务的结果也不会丢失通常通过日志实现。数据库常见的故障有哪些故障类别常见原因影响范围磁盘数据是否损坏恢复机制是否需要人工干预典型恢复时间1. 事务内部故障- 程序逻辑错误如除零、死循环 - 违反完整性约束 - 用户主动回滚 - 死锁被系统终止仅当前事务❌ 否利用undo 日志回滚该事务的所有操作❌ 否DBMS 自动处理毫秒~秒级2. 系统故障- 操作系统崩溃 - DBMS 异常退出 - 断电 - 内存故障所有正在运行的事务内存中数据丢失❌ 否重启后 - 对已提交事务 →redo 日志重做- 对未提交事务 →undo 日志回滚基于 WAL 机制❌ 否自动恢复秒~分钟级3. 介质故障- 硬盘物理损坏坏道、烧毁 - 病毒删除数据文件 - 误删数据库文件 - 自然灾害部分或全部数据库文件✅ 是1. 从最近备份全量/增量恢复数据 2.重放归档日志/事务日志至故障前状态✅ 是需 DBA 操作分钟~小时级取决于备份策略什么是数据库系统安全性数据库安全性控制的常用方法包括哪些数据库系统安全性Database Security是指保护数据库中的数据防止非法访问、篡改、泄露或破坏确保数据的机密性、完整性、可用性和可控性。简单来说只允许合法用户以合法方式访问其有权访问的数据。方法控制方法说明典型技术/手段1. 用户身份认证Authentication验证用户身份是否合法- 用户名/密码 - Windows 集成认证如 SQL Server - 多因素认证MFA - Kerberos、LDAP、证书认证2. 存取控制Access Control控制用户对数据库对象的访问权限-自主存取控制DAC通过GRANT/REVOKE授予权限 -强制存取控制MAC基于安全标签如军用系统 - 角色Role管理简化权限分配3. 视图机制View Mechanism为不同用户定制数据“窗口”隐藏敏感字段- 创建仅包含部分列/行的视图 - 用户只能查询视图无法访问基表4. 审计Auditing记录用户操作行为用于监控与事后追查- 启用数据库审计日志 - 记录登录、DDL、DML 操作 - 分析异常行为如多次失败登录5. 数据加密Encryption对敏感数据进行加密存储或传输-传输加密SSL/TLS防网络窃听 -存储加密TDE透明数据加密 -列级加密对身份证、银行卡号等字段单独加密6. 安全策略与防火墙从网络和系统层面防护- 数据库防火墙过滤非法 SQL - 网络隔离VLAN、DMZ - 最小权限原则Principle of Least Privilege