数据库期末复习(一)
数据库期末复习一基本概念DBMSDBMS数据库管理系统是用户/应用程序与数据库之间的接口。应用程序通过DBMS访问数据用户也通过DBMS操作数据。DDL和DMLDDL数据定义语言用于定义数据库的三级模式结构外模式、概念模式、内模式以及各种约束如CREATE、ALTER、DROP。DML数据操作语言用于对数据库中的数据进行操作增、删、改、查如SELECT、INSERT、UPDATE、DELETE。三级模式结构这三个概念是数据库三级模式结构的核心也是数据库管理系统DBMS实现数据独立性的关键。它们分别从**“用户怎么看”、“全局逻辑怎么组织”和“物理磁盘怎么存”**三个层次来描述数据。以图书馆比较1. 外模式External Schema—— “用户视角”定义又称子模式或用户模式是某个特定用户或应用程序所能看到的数据视图。核心特点一个数据库可以有多个外模式。它只为特定用户展示他们感兴趣或有权访问的部分数据并隐藏了其他无关数据。实现语言由**DDL数据定义语言**中的视图定义部分来定义。图书馆类比你是前来借书的普通读者。你看到的不是整个仓库而是图书馆的前台检索系统和阅览室。你只能看到书名、作者和是否在架对应你权限内的数据看不到图书的采购成本或供应商信息隐藏敏感字段。实际例子学生查询成绩只能看到分数不能看到教务老师的修改日志或者电商APP的“订单页面”只展示用户自己的订单详情而不涉及全量数据库。2. 概念模式Conceptual Schema—— “全局管理者视角”定义又称逻辑模式是数据库中全体数据的整体逻辑结构和特征的描述。核心特点它不涉及数据在磁盘上的具体存储方式只关注“这个数据库里有哪些实体、它们有哪些属性、实体之间是什么关系”比如学生选课一个学生对应多门课一门课对应多个学生。一个数据库只有唯一一个概念模式。实现语言由DDL来定义CREATE TABLE, ALTER TABLE等。图书馆类比这是馆长或总管理员眼中的全局图景。馆长清楚图书馆所有藏书不管在哪个书库、所有读者信息、所有借阅记录以及“读者-图书”之间的借阅规则但不关心每本书具体摆在哪一排货架的哪个螺丝钉位置。实际例子数据库设计阶段的ER图实体关系图转化而来的关系模型定义了Student表、Course表和SC选课表及其主外键约束。3. 内模式Internal Schema—— “存储工程师视角”定义又称存储模式是数据在数据库内部物理结构上的存储方式。核心特点它描述了数据在磁盘、磁带等存储介质上是如何存放的包括记录如何存储定长/变长、索引如何建立B树/Hash、数据是否压缩、存储位置等。一个数据库也只有唯一一个内模式。实现语言由DDL中的物理存储参数来定义不同数据库语法不同。图书馆类比这是仓库搬货员或系统架构师眼中的景象。他不关心书名是什么只关心这堆数据书装在哪个编号的箱子数据块、放在货架第几层第几格磁盘扇区/磁道、有没有贴条形码便于快速查找索引。实际例子Oracle的表空间设置、MySQL InnoDB存储引擎的页大小16KB设置、索引文件的实际排序方式。它们之间的关系关键这三个模式之间通过映射进行转换外模式/概念模式映射当用户查询一个视图时DBMS会把这个视图查询转换成对底层基础表概念模式的查询。这使得当概念模式改变例如表结构微调时只要视图不变用户的应用程序就不需要修改这叫逻辑数据独立性。概念模式/内模式映射当物理存储结构改变例如换了更快的磁盘存储结构、重建了索引只要概念模式的逻辑结构不变应用程序就无需重写这叫物理数据独立性。简单记忆口诀外模式用户看到什么视图。概念模式数据库里有什么表结构。内模式磁盘上怎么存存储文件。两级映射完整的“三级模式结构” 三级模式 两级映射Image也就是说这三者本身是结构的“骨架”但如果没有两级映射把它们串联起来数据库的数据独立性就无法实现。教材和考题中通常将“三级模式结构”统称为“三级模式两级映射”。具体补充如下1. 两级映射指的是什么外模式/概念模式映射定义了外模式与概念模式之间的对应关系。当概念模式表结构发生微小变化如增加字段时只要映射不变或调整用户的外模式视图就可以不变应用程序无需修改。这实现了逻辑数据独立性。概念模式/内模式映射定义了概念模式与内模式之间的对应关系。当内模式存储结构、索引、压缩方式改变时只要映射不变概念模式就不变应用程序也不需要重写。这实现了物理数据独立性。2. 常见的迷惑选项如果做题时遇到类似“三级模式结构只包含外模式、概念模式、内模式”的说法它本身是正确的因为说的是“三种模式”本身。但如果遇到“数据库三级模式结构就是这三种模式不包括其他内容”这种更强调“内容完整性”的选项你就要警惕了——因为严格来讲完整的体系结构包含映射。如果在多选题中提到“映射”也是该结构的组成部分一定要把它选上。简单总结记忆三级模式三样东西外模式、概念模式、内模式。两级映射两座桥梁外/概念映射、概念/内映射。合起来才构成DBMS实现数据独立性的完整架构。数据库结构概览物理磁盘内模式层 - 唯一映射2概念模式层 - 唯一映射1外模式层 - 多个用户与应用程序层普通学生应用教务管理员应用数据分析师应用外模式1学生成绩视图外模式2课程管理视图外模式3统计报表视图外模式/概念模式映射【逻辑数据独立性】全局逻辑结构学生表 / 课程表 / 选课表 / 教师表概念模式/内模式映射【物理数据独立性】物理存储结构数据文件 / B树索引 / 压缩方式 / 分区数据库物理文件看图的关键点解读配合上图更清晰从上往下看用户的操作请求从“外模式”进入最终流向物理磁盘。注意箭头位置两个映射虚线框夹在三种模式之间起到承上启下的桥梁作用。唯一 vs 多个外模式对应用户的多样需求可以有多个如图中的1、2、3。概念模式和内模式全局统一只有一个。