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

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

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


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


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


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


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


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


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


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


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


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


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

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),每个视图只包含用户所需的特定数据。外模式/模式映像通过视图的定义和相应的查询语句,将外部模式与概念模式之间建立了映射关系。


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


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


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


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

相关文章
|
12月前
|
数据库
达梦数据库的物理备份和还原简解
达梦数据库的物理备份和还原简解
241 1
达梦数据库的物理备份和还原简解
|
12月前
|
存储 安全 数据库
什么是数据库的外模式和模式映像?
什么是数据库的外模式和模式映像?
|
5月前
|
存储 JSON 数据库
理解数据库中的模式
【5月更文挑战第6天】这篇文章探讨了数据库模式的重要性和多种优化技巧。模式提供了一个命名空间来组织数据库对象,如表、视图和索引。通过使用模式,复杂的应用程序可以变得更容易理解和维护。文章介绍了防止日期重叠的 PostgreSQL 排除约束,用于存储树结构的物化路径方法,以及结合 NoSQL 的 JSON 列来简化数据存储。这些策略能帮助优化数据库设计和提升系统效率。
83 1
理解数据库中的模式
|
12月前
|
存储 数据库 数据安全/隐私保护
数据库模式
一、数据库模式 数据库模式(Database Schema)是指数据库中数据的逻辑结构和组织方式。它定义了数据库中的表、字段、关系和约束等元素,以及它们之间的关系和依赖关系。数据库模式描述了数据库的结构和组织方式,是数据库的蓝图或设计方案。 数据库模式包括以下几个方面: 1. 表结构:数据库模式定义了数据库中的表,包括表的名称、字段和数据类型等。每个表代表一个实体或关系,每个字段代表一个属性。 2. 主键和外键:数据库模式定义了表之间的关系,包括主键和外键的定义。主键是表中唯一标识记录的字段,外键是表中引用其他表主键的字段。 3. 约束:数据库模式定义了数据的约束条件,包括唯一约束、非空约束、
131 0
|
5月前
|
SQL 存储 定位技术
数据库基础(一):数据库创建、分离、附加、删除、备份
数据库基础(一):数据库创建、分离、附加、删除、备份
|
关系型数据库 MySQL 数据库
数据库基础(二)----- 约束,数据库的设计、备份和还原
数据库基础(二)----- 约束,数据库的设计、备份和还原​ 约束 ✔  概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性 ✔  分类:     1. 主键约束:primary key     2. 非空约束:not null     3. 唯一约束:unique     4. 外键约束:foreign key ✔  非空约束:not null,值不能为null      1. 创建表时添加约束 CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT NULL -- name为非空 );      2. 创建表
数据库基础(二)----- 约束,数据库的设计、备份和还原
|
关系型数据库 MySQL 数据库
数据库内核月报 - 2018年1月
#01 MySQL · 引擎特性 · Group Replication内核解析之二 #02 MySQL · 引擎特性 · MySQL内核对读写分离的支持 #03 PgSQL · 内核解析 · 同步流复制实现分析 #04 MySQL · 捉虫动态 · UK 包含 NULL 值备库延迟分析 .
2406 0
下一篇
无影云桌面