数据模型是对现实世界数据特征的抽象,是数据库系统的核心和基础

张开发
2026/4/17 3:50:18 15 分钟阅读

分享文章

数据模型是对现实世界数据特征的抽象,是数据库系统的核心和基础
数据模型是对现实世界数据特征的抽象是数据库系统的核心和基础常见的数据模型包括以下几类层次模型采用树形结构表示各类实体及实体间的联系每个节点表示一个记录类型节点间的连线表示记录类型间一对多的父子联系优点是结构清晰、查询效率高缺点是无法直接表示多对多联系。网状模型采用网状结构表示实体及实体间的联系允许一个节点有多个父节点也可以有多个节点没有父节点能够更直接地描述现实世界缺点是结构复杂用户使用难度较大。关系模型以二维表格形式组织数据由行元组和列属性组成实体及实体间的联系都通过关系表来表示具有数据结构简单、数据独立性高、支持集合操作等优点是目前主流数据库系统采用的数据模型。面向对象数据模型将面向对象思想与数据库技术结合以对象为基本存储单元每个对象包含属性和方法支持对象标识、封装、继承和多态等特性适合处理复杂的数据类型和非结构化数据。二、关系代数关系代数是关系数据库的理论基础是一种抽象的查询语言通过对关系的运算来表达查询请求核心运算符包括选择σ从关系中筛选出满足给定条件的元组是对行的操作例如σ条件(R)表示从关系R中选出符合条件的行。投影π从关系中选取指定的若干属性列是对列的操作例如π属性列表(R)表示从关系R中选出指定的列同时会自动去除重复的元组。连接⨝将两个关系中的元组按照一定的条件拼接成新的元组最常用的是等值连接和自然连接自然连接会自动去除重复的属性列。并∪将两个相容关系属性个数相同、对应属性类型相同的元组合并去除重复元组后组成新的关系。差−从一个关系中去除属于另一个相容关系的元组返回剩余的元组组成的新关系。笛卡尔积×将两个关系的元组进行所有可能的组合返回的新关系的元组个数是两个关系元组个数的乘积属性个数是两个关系属性个数之和。三、SQL基础SQL结构化查询语言是关系数据库的标准操作语言核心操作包括四类SELECT查询用于从数据库表中检索满足条件的数据基本语法为SELECT 列名 FROM 表名 WHERE 条件 GROUP BY 分组字段 HAVING 分组条件 ORDER BY 排序字段支持多表连接查询、子查询等复杂操作。INSERT插入用于向表中添加新的元组基本语法为INSERT INTO 表名(列1, 列2, ...) VALUES(值1, 值2, ...)也支持批量插入和子查询结果插入。UPDATE更新用于修改表中已有的数据基本语法为UPDATE 表名 SET 列1值1, 列2值2 WHERE 条件未加WHERE条件时会更新表中所有元组的对应字段。DELETE删除用于删除表中满足条件的元组基本语法为DELETE FROM 表名 WHERE 条件未加WHERE条件时会清空表中的所有数据但不会删除表结构。四、视图View视图是从一个或多个基本表或其他视图导出的虚拟表本身不存储数据其数据来源于基本表的实时计算。作用简化用户的查询操作、提供数据的逻辑独立性、对不同用户提供不同粒度的数据访问权限保护敏感数据的安全性。操作可以像基本表一样对视图进行查询操作部分满足条件的视图如单表导出、不含聚集函数和分组支持插入、更新和删除操作操作结果会映射到对应的基本表。五、索引索引是数据库中用于提高查询效率的数据结构相当于图书的目录能够减少查询时的磁盘I/O次数常见类型包括聚簇索引索引的顺序与表中数据的物理存储顺序一致一个表只能有一个聚簇索引查询范围数据时效率极高适合经常按范围查询的字段缺点是更新数据时可能需要调整物理存储顺序开销较大。非聚簇索引索引的顺序与数据的物理存储顺序无关一个表可以有多个非聚簇索引叶子节点存储指向数据行的指针适合等值查询的字段查询单条数据时效率较高。B树索引目前数据库中最常用的索引结构是一种平衡多路查找树所有数据都存储在叶子节点叶子节点之间通过指针相连形成有序链表支持高效的等值查询、范围查询和排序操作具有良好的动态平衡性和查询稳定性。六、规范化理论规范化理论用于指导关系模式的设计减少数据冗余、避免插入、删除和更新异常核心范式包括第一范式1NF要求关系中的所有属性都是不可再分的原子值是关系模式的最基本要求。第二范式2NF在满足1NF的基础上消除非主属性对主键的部分函数依赖即所有非主属性都完全依赖于整个主键而不是主键的一部分。第三范式3NF在满足2NF的基础上消除非主属性对主键的传递函数依赖即非主属性不依赖于其他非主属性。BC范式BCNF在满足3NF的基础上消除主属性对主键的部分和传递函数依赖要求所有函数依赖的决定因素都包含候选键是更严格的规范化要求能够进一步减少数据冗余。七、函数依赖与Armstrong公理函数依赖是指在关系模式中属性集X的值确定时必然能唯一确定属性集Y的值记为X→Y是数据语义层面的约束反映了属性之间的内在联系。Armstrong公理是推导函数依赖的基本规则包含三条基本公理自反律若Y⊆X⊆U则X→Y成立增广律若X→Y成立且Z⊆U则XZ→YZ成立传递律若X→Y和Y→Z成立则X→Z成立。基于这三条公理可以推导出合并规则、伪传递规则、分解规则等导出规则能够从给定的函数依赖集合推导出所有隐含的函数依赖。八、无损连接分解无损连接分解是将一个关系模式分解为多个关系模式时的重要特性指分解后的多个关系通过自然连接操作能够恢复到原来的关系且不会丢失或额外生成元组保证数据的一致性。判定方法可以通过构造初始判定表根据函数依赖逐步修改判定表的元素如果最终表中出现全a的行则说明该分解是无损连接分解。九、事务ACID特性事务是数据库执行的最小逻辑工作单元是一组不可分割的操作集合要么全部执行成功要么全部不执行具有四个核心特性原子性Atomicity事务中的操作要么全部完成要么全部不执行任何操作失败都会导致整个事务回滚到执行前的状态。一致性Consistency事务执行前后数据库的完整性约束不会被破坏数据始终处于一致的状态。隔离性Isolation多个事务并发执行时每个事务的执行不会被其他事务干扰事务内部的操作和数据对其他事务是隔离的。持久性Durability事务一旦提交其对数据库的修改就会永久保存即使发生系统故障也不会丢失。十、并发控制并发控制是指当多个事务同时访问数据库时为了避免出现丢失修改、不可重复读、读脏数据等并发问题对事务的执行顺序进行协调的机制核心技术包括封锁协议通过对数据对象加锁来控制事务对数据的访问常见的锁包括共享锁S锁读锁和排他锁X锁写锁共享锁允许多个事务同时读取数据排他锁只允许一个事务修改数据。两段锁协议是保证并发调度可串行化的重要协议要求事务的执行分为两个阶段第一阶段是扩展阶段只能申请加锁不能释放锁第二阶段是收缩阶段只能释放锁不能申请加锁。死锁检测当多个事务互相等待对方持有的锁时就会发生死锁数据库系统通过超时检测或等待图检测的方式发现死锁通常采用撤销一个或多个代价最小的事务的方式来解除死锁释放被占用的资源。

更多文章