什么是数据库的外模式和模式映像?

外部模式/图像模式是句子到逻辑结构的映射。
外部模式是用户看到的数据的特定方面。
例如:客户看不到他们的订单。
概念模式是数据库的全局逻辑结构。
示例:User 表包含所有用户数据。

外部模式/模式图像可实现数据独立性。
示例:添加用户的地址字段未设置到客户的视图中。
外部模式提供安全控制。
例如:客户只检查他们的订单。
外部模式简化了维护。
示例:要拆分订单表,只需更改视图即可。


:各方有不同的看法。
示例:Customer OrderView 自动筛选订单。

系统立刻将问题变成了疑问。
例如:OrderView 切换为按用户 ID 过滤搜索。

评价一下自己。

数据库的三级模式和二级映像

哎,你问我三级图和二级图库的事。
我向你解释一下。
别混淆了。

上周一位客户问我这个问题。
尝试了该程序,对此有点困惑。
我把我的理解告诉了他。

这里是一个三层的例子,说白了,就是DBMS创建的三个抽象层,防止我们使用数据库的时候头晕。
这种抽象级别隐藏了数据存储方式的细节。

1 . Schema(架构概念):我认为这一点很关键,它是数据库设计者赋予所有用户的逻辑全局结构。
你可以把它想象成数据库的“IT信息卡”,它告诉你数据库里有哪些数据和关系,但不会告诉你它存储在哪里。
例如,在 2 02 3 年我在上海工作的一个项目中,我们定义了一个模式,指定了客户、订单和产品表的结构,但我并不关心存储库中包含哪些文件。
这部分比较稳定,任何变化都会产生重大影响。

2 外部模式(用户模式):这是给予特定用户或应用程序的视图。
该模式取自模式并包含仅对该用户可用的信息。
例如,销售部门的人只能看到客户表和订单表,而看不到生产表。
2 02 2 年我在深圳做会计系统的时候,HR系统使用的外部模型只有员工信息和工资表,没有任何与库存相关的内容。
外部方法可能有多种,但同一用户通常只使用一种。

3 内部模式(物理模式):这是最低级别,描述数据如何存储在介质(硬盘)中。
比如使用什么文件格式、如何构造列表、是否压缩数据等。
这部分变化比较频繁,但是影响了最后一级的存储效率。
2 02 1 年我在北京的时候,为了提高查询速度,我们把一个内部文件的模式从顺序存储改为下载存储。

接下来是次映像,它是DBMS在三种模式之间搭建的桥梁,以便它们能够正常转换。

1 .外部模式/图像模式:这创建了最大的逻辑独立性。
这意味着如果账户架构发生修改(例如,您在订单表单中添加品牌字段),只要相应修改图像即可,外部架构用户(例如销售部门)的界面不需要进行任何更改。
当我在 2 02 3 年开发该电子商务系统时,后端管理员更改了产品类别的结构,但前端用户看到的页面列表完全保持不变,基于此图像。

2 模式/模式内图像:这保证了身体的自由。
也就是说,如果修改内部Schema(例如添加索引),Rational Schema 和External Schema 都不会改变。
比如2 02 2 年,我们增加了一个大的B+树索引。
没有这样的事,而且是好事,而且还是他说的。
这部分主要涉及存储效率。

请允许我给你一些指示。
他们攻击的警告也在这里:

概念模型(方法)是核心,应谨慎更改。
我之前2 02 1 年的坑就是没有设计好账户模型。
后来改了几次,外部模型也得改,整个系统就被忽略了。
外部方法是用户特定的,可以独立于内部方法和方法。
2 02 2 年做ERP系统的时候,发现财务和库存用的外部模型完全不同,但底层存储结构是共享的。
映像由 DBMS 本身管理。
我们通常不必担心它,但了解您的问题会有所帮助。
比如2 02 3 年系统崩溃了,经过一番查找,图/内部检测到图像错误,导致物理结构丢失。

换句话说,只要记住:模式管理“什么数据”,外部模式“谁使用它”,内部模式管理“如何保存”,图像管理“传输什么”。
实现细节请参考DBMS手册。
但是,我正在考虑图像出错的特殊情况......