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

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

时间:2023-05-29 14:56:22浏览次数:31  
标签:概念模式 外部 数据库 映像 视图 模式

在数据库设计中,外模式/模式映像(External Schema/Conceptual Schema Mapping)是指将外部模式与概念模式之间的映射关系。外部模式是指用户或应用程序对数据库的特定视图或子集的定义,而概念模式是指数据库的整体逻辑结构和组织方式。外模式/模式映像的作用是将外部模式与概念模式解耦,使得数据库系统可以同时支持多个不同的外部模式,并提供数据的独立性和灵活性。

下面我们将详细介绍外模式/模式映像的概念,并通过一个具体的示例来说明其在数据库设计中的应用。

在数据库设计中,通常采用三级模式结构:外部模式、概念模式和内部模式。外部模式是用户或应用程序对数据库的可见部分,它定义了用户能够看到和操作的数据和操作方式。概念模式是数据库的整体逻辑结构和组织方式,它是数据库管理员(DBA)定义的全局模式,表示数据库的总体视图。内部模式是数据库在存储介质上的物理表示,它定义了数据的存储方式和访问路径。

外模式/模式映像将外部模式与概念模式之间的映射关系定义了用户视图与全局视图之间的转换方式。它允许数据库系统支持多个不同的外部模式,并提供了以下几个重要的优势:

  1. 数据的独立性:通过外模式/模式映像,数据库系统可以在概念模式的基础上定义不同的外部模式,使得用户能够根据自己的需求定义和操作数据。这种数据独立性使得数据库系统更加灵活,可以适应不同用户和应用程序的需求。

  2. 安全性和隐私保护:外模式/模式映像可以限制外部模式对数据库的访问权限,确保只有授权的用户可以访问和操作数据。通过定义适当的映射关系,可以实现数据的隐私保护和安全控制。

  3. 简化系统维护:外模式/模式映像将外部模式与概念模式解耦,使得对数据库结构的更改和调整可以在不影响外部模式的情况下进行。这简化了系统的维护工作,减少了对外部模式的影响。

现在,我们将通过一个具体的示例来说明外模式/模式映像的应用。

假设我们有一个在线商城的数据库系统,包含了用户信息、商品信息和订单信息等。我们需要为不同类型

的用户提供不同的界面和功能,例如管理员界面、顾客界面和供应商界面。每种用户类型都有不同的数据需求和操作权限。

首先,我们定义了概念模式,表示数据库的整体结构和组织方式。概念模式包括了用户信息、商品信息和订单信息等实体和它们之间的关系。

CREATE TABLE User (
    UserId INT PRIMARY KEY,
    UserName VARCHAR(50),
    UserType VARCHAR(20),
    ...
);

CREATE TABLE Product (
    ProductId INT PRIMARY KEY,
    ProductName VARCHAR(100),
    Price DECIMAL(10, 2),
    ...
);

CREATE TABLE Order (
    OrderId INT PRIMARY KEY,
    UserId INT,
    ProductId INT,
    OrderDate DATE,
    ...
);

然后,我们根据不同类型的用户需求,定义了相应的外部模式。管理员界面需要管理用户信息和商品信息,顾客界面需要浏览和下单,供应商界面需要管理商品信息和订单信息。

管理员界面的外部模式定义:

CREATE VIEW AdminView AS
SELECT UserId, UserName
FROM User;

CREATE VIEW ProductManagementView AS
SELECT ProductId, ProductName, Price
FROM Product;

顾客界面的外部模式定义:

CREATE VIEW CustomerView AS
SELECT UserId, UserName
FROM User;

CREATE VIEW ProductView AS
SELECT ProductId, ProductName, Price
FROM Product;

CREATE VIEW OrderView AS
SELECT OrderId, ProductId, OrderDate
FROM Order
WHERE UserId = :UserId;

供应商界面的外部模式定义:

CREATE VIEW SupplierView AS
SELECT UserId, UserName
FROM User;

CREATE VIEW ProductManagementView AS
SELECT ProductId, ProductName, Price
FROM Product;

CREATE VIEW OrderManagementView AS
SELECT OrderId, UserId, OrderDate
FROM Order
WHERE ProductId IN (SELECT ProductId FROM Product WHERE UserId = :UserId);

通过以上的定义,我们可以看到不同的外部模式定义了不同的视图(Views),每个视图只包含用户所需的特定数据。外模式/模式映像通过视图的定义和相应的查询语句,将外部模式与概念模式之间建立了映射关系。

在实际应用中,当用户使用不同的界面登录到数据库系统时,系统根据用户的身份和权限,提供相应的外部模式视图进行数据的展示和操作。例如,管理员登录时,系统显示管理员界面,并根据AdminViewProductManagementView视图提供相关的用户信息和商品信息管理功能。顾客登录时,系统显示顾客界面,并根据CustomerViewProductViewOrderView视图提供相关的商品浏览和下单功能。供应商登录时,系统显示供应商界面,并根据SupplierViewProductManagementViewOrderManagementView视图提供相关的商品和订单管理功能。

通过外模式/模式映像,我们实现了不同用户类型的数据独立性和灵活性。每个用户只

能访问和操作与其权限相符的数据,保证了数据的安全性和隐私保护。同时,外模式/模式映像还简化了系统的维护工作,允许在不影响外部模式的情况下对数据库结构进行调整和优化。

总结来说,外模式/模式映像是将外部模式与概念模式之间的映射关系,它实现了数据库系统的数据独立性和灵活性。通过定义不同的外部模式视图,每个用户类型可以访问和操作与其权限相符的数据,实现了数据的安全性和隐私保护。外模式/模式映像还简化了系统的维护工作,允许在不影响外部模式的情况下对数据库结构进行调整和优化。

标签:概念模式,外部,数据库,映像,视图,模式
From: https://www.cnblogs.com/sap-jerry/p/17440403.html

相关文章

  • 关于电商解决方案里 Cart calculation 的数据库 Contention 问题
    在电商开发领域中,"ContentiononthedatabaseIOduetoupdateofthecart,cartentriesandpromotionresults"指的是由于购物车、购物车条目和促销结果的更新而导致的数据库输入/输出(IO)冲突。购物车是电商网站中重要的功能之一,它允许用户将所需的商品添加到购物车中并进......
  • 玩转MySQL数据库之SQL优化之慢查询
    本系列为:MySQL数据库详解,为千锋资深教学老师独家创作,致力于为大家讲解清晰MySQL数据库相关知识点,含有丰富的代码案例及讲解。如果感觉对大家有帮助的话,可以【关注】持续追更~文末有本文重点总结,技术类问题,也欢迎大家和我们沟通交流!前言从今天开始本系列文章就带各位小伙伴学习......
  • 上万条最好的周公解梦ACCESS\EXCEL数据库
    虽然之前已经有了《7千多条周公解梦断梦秘书ACCESS数据库》、《4千多周公解梦包含化解方法ACCESS数据库》等相关的周公解梦的数据库,但今天发现的周公解梦的记录数量已经达到了上万条,虽然分类没有《7千多条周公解梦断梦秘书ACCESS数据库》多,但记录数多出了不少。分类情况汇总有:01......
  • 装饰器模式
    一、定义装饰器模式动态地给一个对象增加一些额外的职责。就增加功能而言,装饰器模式比生成子类更为灵活。二、UML类图三、示例需求:假设开一个奶茶店,奶茶种类繁多,如红豆奶茶,布丁奶茶,珍珠奶茶,红豆珍珠奶茶等,并根据不同配料计算价格,并且根据每个客户的要求,每种奶茶又可以加糖或......
  • 上万条全球各国纸币大全含图ACCESS数据库
    《上万条全球各国纸币大全含图ACCESS数据库》是今天采集自钱币大全网站的纸币资料,大类包含:中国大陆、中国台湾、中国香港、中国澳门、亚洲纸钞、欧洲纸钞、美洲纸钞、非洲纸钞、大洋洲、其他纸钞等,而且纸币信息包含:国家名称、英文名称、目录编号、纸钞面额、纸钞年版、纸钞规格、......
  • 聊聊分布式解决方案Saga模式
    Saga模式Saga模式使用一系列本地事务来提供事务管理,而一个本地事务对应一个Saga参与者,在Saga流程里面每一个本地事务只操作本地数据库,然后通过消息或事件来触发下一个本地事务,如果其中一个本地事务失败了,Saga就会执行一系列补偿事务来实现回滚操作。(补偿事务简单来讲就是对之前本......
  • 3万多条含图片的菜谱资料ACCESS\EXCEL数据库
    我记得之前我采集、提取过两份菜谱资料数据库,一份是菜谱数据不上万的带图片的,详情点击这里,一份是2万多条记录但格式未整理并且没有图片的。而今天的这个3万多条含图片的菜谱资料ACCESS数据库包含了3万多条常菜谱做法,并且结构简洁,最主要的是每个菜谱都包含图片。菜谱分50个大类......
  • 近万采集中华典故网站文章大全ACCESS\EXCEL数据库
    一个学语文的朋友问我有没有关于中华典故以及万物由来的数据,我看了看手头的资料发现还真没有,而且网上似乎也没有这一类的成品,因此就用程序采集了一个中华典故网的文章。分类统计情况有:成语典故(共4198条)、典故杂闻(共702条)、国外典故(共29条)、科学典故(共29条)、历史典故(共374条)、神......
  • 责任链模式
    将一堆“事情”串联在一起,有序执行,就叫责任链一、概述责任链模式(ChainofResponsibilityPattern)是将链中每一个节点看作是一个对象,每个节点处理的请求均不同,且内部自动维护一个下一节点对象。当一个请求从链式的首端发出时,会沿着链的路径依次传递给每一个节点对象,直至有对象......
  • 观察者模式
    一、观察者模式1、概念描述观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,主题对象在状态发生变化时,会通知所有观察者对象。Redis和常用消息中间件的发布订阅模式,都是基于该原......