数据库中的外模式,概念模式,内模式的理解
外模式/模式映像如何保证数据的逻辑独立性?内模式/模式映像如何保证数据的物理独立性。
·
- 外模式(External Schema)
- 用户视角的数据呈现
- 外模式是数据库用户能够直接接触和使用的部分,就像是为不同用户定制的专属数据窗口。它根据用户的需求和权限,将数据库中的部分数据以一种方便用户理解和操作的方式展现出来。
- 例如,在一个医院信息管理系统中,医生看到的外模式可能主要是患者的病历信息,包括症状、诊断结果、治疗方案等;而收费处工作人员看到的外模式可能侧重于患者的费用信息,如挂号费、检查费、药费等。
- 数据安全性的保障
- 通过外模式可以实现数据的安全访问控制。不同的外模式可以设置不同的访问权限,确保用户只能看到和操作他们被授权的数据内容。
- 比如,医院的普通护士可能只能查看患者的基本护理信息,而无法修改重要的诊断记录,这是通过对外模式的权限设置来实现的。
- 个性化的用户体验
- 外模式可以根据不同用户群体的业务流程和使用习惯进行定制。这使得不同的用户能够以最适合自己的方式与数据库进行交互。
- 例如,对于医院的药剂师来说,他们的外模式可能会以方便药品调配的方式呈现患者的用药信息,如按药品类别、用药时间等顺序排列。
- 用户视角的数据呈现
- 概念模式(Conceptual Schema)
- 数据库的整体逻辑架构
- 概念模式是对数据库中全部数据的逻辑结构和特征的统一描述,它就像是数据库的蓝图。这个蓝图定义了数据库中有哪些数据实体、这些实体之间有什么样的关系,以及数据需要遵循的完整性规则等内容。
- 以电商数据库为例,概念模式会包括 “用户”“商品”“订单” 等实体。“用户” 和 “订单” 之间存在 “一个用户可以有多个订单” 的关系,“订单” 和 “商品” 之间存在 “一个订单包含多个商品” 的关系。同时,还会规定像 “订单金额必须等于所购商品价格总和” 这样的完整性规则。
- 设计与维护的核心依据
- 对于数据库管理员(DBA)和数据库设计人员来说,概念模式是数据库设计、开发和维护的关键依据。它指导着数据库的构建过程,包括表结构的设计、索引的设置、数据约束的定义等各个方面。
- 例如,在设计电商数据库的表结构时,根据概念模式中定义的实体和关系,会设计出 “用户表”(包含用户 ID、姓名、联系方式等列)、“商品表”(包含商品 ID、名称、价格等列)和 “订单表”(包含订单 ID、用户 ID、商品 ID、金额等列)等基本表结构。
- 外模式和内模式的桥梁
- 概念模式在数据库的三层架构中起到承上启下的作用。它通过外模式 / 模式映像与外模式相连,使得用户看到的局部数据能够与数据库的整体逻辑结构相匹配;同时,它通过模式 / 内模式映像与内模式相连,保证了数据库的物理存储能够正确地反映其逻辑结构。
- 数据库的整体逻辑架构
- 内模式(Internal Schema)
- 数据的物理存储细节
- 内模式描述的是数据在数据库内部的实际存储方式和物理结构,包括数据是如何存储在存储介质(如磁盘)上的,采用了什么样的文件组织形式,是否有索引以及索引的结构是怎样的,数据是否经过压缩等内容。
- 例如,在关系数据库中,数据可能以表的形式存储在磁盘文件中,每个表的数据可能被划分为多个数据块进行存储。索引可能采用 B - 树结构,以提高数据查询的速度。
- 性能优化的关键层面
- 内模式的设计直接影响数据库的性能。合理的物理存储结构和索引策略可以大大提高数据的存储效率和查询效率。
- 比如,对于一个经常需要按照日期范围查询数据的数据库应用,在内模式设计时,可以针对日期字段建立合适的索引结构,如 B - 树索引,这样在进行日期相关的查询时,数据库能够快速定位到相关的数据记录,减少查询时间。
- 与概念模式的紧密联系
- 内模式虽然关注的是物理存储细节,但它是紧密围绕概念模式进行设计的。概念模式中的逻辑结构和数据关系会引导内模式的设计方向。
- 例如,如果概念模式中有一个实体关系是 “多对多” 的,那么在内模式设计时,可能需要采用特殊的存储方式(如关联表)来存储这些关系数据,以确保物理存储能够正确地反映这种逻辑关系。
- 数据的物理存储细节
外模式/模式映像如何保证数据的逻辑独立性?
-
理解逻辑独立性
- 数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构(概念模式)是相互独立的。也就是说,当数据库的逻辑结构发生变化时,用户的应用程序不需要修改,仍能正确地运行,这主要是通过外模式 / 模式映像来实现的。
-
外模式 / 模式映像的工作原理
- 映射关系的建立
- 外模式 / 模式映像定义了外模式(用户视图)与概念模式(数据库的整体逻辑结构)之间的对应关系。它就像是一个翻译器,将用户对外模式的操作请求转换为对概念模式的操作。
- 例如,在一个图书馆管理数据库中,有一个概念模式包含 “书籍信息表”(包含书籍编号、书名、作者等列)、“读者信息表”(包含读者编号、姓名等列)和 “借阅记录表”(包含借阅记录编号、书籍编号、读者编号等列)。对于普通读者这个用户群体,外模式可能是一个视图,只显示读者自己的借阅信息,包括书名、借阅日期等。这个外模式视图通过外模式 / 模式映像与概念模式中的相关表建立了映射关系。
- 屏蔽逻辑结构变化
- 当数据库的概念模式发生变化时,例如在上述图书馆数据库中,新增了一个 “书籍分类” 列到 “书籍信息表” 中,只要外模式 / 模式映像能够进行相应的调整,外模式就可以保持不变。
- 比如,可以通过修改视图的定义(即外模式 / 模式映像)来确保读者看到的外模式(自己的借阅信息视图)仍然只显示书名和借阅日期,不受新增 “书籍分类” 列的影响。这就像在一个建筑中,内部房间的布局(概念模式)发生了变化,但从外面看(外模式),建筑的外观和入口(用户操作界面)并没有改变。
- 映射关系的建立
-
具体实现过程中的保障机制
- 视图更新机制(以关系数据库为例)
- 在关系数据库中,外模式通常通过视图来实现。当概念模式中的表结构发生变化时,数据库管理系统(DBMS)会根据外模式 / 模式映像(视图的定义)来检查这种变化是否会影响外模式。
- 如果不影响,例如只是在某个表中增加了一个与外模式无关的列,那么外模式(视图)可以继续正常使用。如果有影响,DBMS 可以通过修改视图的定义来适应这种变化。例如,当在 “借阅记录表” 中删除了一个原来在外模式视图中有映射的列时,DBMS 可以重新定义视图,去掉这个列对应的映射,从而保证外模式视图的逻辑结构不变。
- 抽象层的转换(在更广泛的数据库系统中)
- 数据库系统内部有一个抽象层来管理外模式 / 模式映像。这个抽象层包含了一系列规则和元数据,用于处理外模式与概念模式之间的转换。
- 当概念模式变化时,抽象层会根据预先定义的规则和元数据来调整外模式与概念模式之间的映射。例如,概念模式中的某个实体名称发生了改变,抽象层可以通过名称映射规则,将外模式中对该实体的引用自动更新为新的名称,从而保证外模式的逻辑结构不受影响。
- 视图更新机制(以关系数据库为例)
内模式/模式映像如何保证数据的物理独立性
-
理解物理独立性
- 数据的物理独立性是指用户的应用程序与数据库的物理存储结构是相互独立的。即当数据库的物理存储结构发生改变时,应用程序不需要修改,仍能正确地访问数据。内模式 / 模式映像在这个过程中起到了关键的作用。
-
内模式 / 模式映像的工作原理
- 映射关系的建立
- 内模式 / 模式映像定义了概念模式(数据库的逻辑结构)与内模式(数据库的物理存储结构)之间的对应关系。它就像是一个桥梁,将数据库的逻辑表示和物理存储连接起来。
- 例如,在一个关系数据库中,概念模式定义了一个 “员工表”,包含 “员工编号”、“姓名”、“部门” 等列。内模式则描述了这些数据在磁盘上的存储方式,如数据以何种文件格式存储,是否有索引(比如对 “员工编号” 建立了 B - 树索引),数据记录是如何划分存储块等物理细节。内模式 / 模式映像将 “员工表” 这个逻辑结构与它的物理存储方式对应起来。
- 屏蔽物理结构变化
- 当数据库的内模式(物理存储结构)发生变化时,例如,将存储数据的磁盘从普通硬盘更换为固态硬盘,或者改变数据的存储组织方式(如原来按顺序存储,现在采用哈希存储部分数据),只要内模式 / 模式映像能够进行相应的调整,概念模式就可以保持不变。
- 就好比图书馆的藏书(数据)从木质书架搬到了金属书架(物理存储结构改变),但图书的分类目录(概念模式)不变。只要调整目录与书架之间的对应关系(内模式 / 模式映像),读者(应用程序)仍然可以按照原来的方式查找图书(访问数据)。
- 映射关系的建立
-
具体实现过程中的保障机制
- 存储结构转换机制(以关系数据库为例)
- 当内模式发生变化时,数据库管理系统(DBMS)会根据内模式 / 模式映像来调整对数据的访问方式。如果是存储设备的更换,DBMS 会利用映像中的信息,重新定位数据在新设备上的存储位置。
- 例如,在从普通硬盘到固态硬盘的迁移过程中,数据块在新硬盘上的起始地址和存储格式可能会有所不同。内模式 / 模式映像中记录了原来硬盘上数据块与逻辑结构(如数据表)的对应关系,DBMS 可以根据这个映像,将这些对应关系转换到新硬盘的存储环境中,确保应用程序对数据表的访问不受影响。
- 索引结构调整(在存在索引的情况下)
- 当内模式中的索引结构发生变化时,如优化索引(从一个简单的索引结构转换为更高效的结构),内模式 / 模式映像会引导对索引的重新构建和应用程序对索引的正确使用。
- 例如,将一个 B - 树索引进行重建以提高查询性能,内模式 / 模式映像会记录新索引与概念模式中数据表的关系。当应用程序通过索引进行查询时,DBMS 会根据映像中的信息,将查询请求正确地引导到新的索引结构上,使应用程序感觉不到索引结构的变化,从而保证了物理独立性。
- 存储结构转换机制(以关系数据库为例)

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)