什么是数据库模式?

架构是数据库的蓝图,可确保最佳组织

一个数据库模式是一个集合元数据描述对象和信息之间的关系数据库。设想模式的一种简单方法是将它看作一个包含表、存储过程、视图和相关数据资产的盒子。模式定义了这个机器的基础结构。

数据库模式定义

在最基本的层面上,该模式用作数据资产的容器。但是,不同的数据库供应商以不同方式运行模式。例如,oracle将每个模式视为用户帐户。要创建新架构,数据库管理员将创建具有预期模式名称的新数据库用户。

模式与数据模型不同。

为什么模式问题

因为模式构成了数据库的基本结构特性,所以大多数数据库环境在模式级别上对对象应用访问权限。

例如,公司数据库可能包含一系列用户。每个用户会引发模式,但是单独授予对不同模式的访问权限,并且权限的粒度到主题架构之外的用户。

大多数数据库管理工具都没有列出模式;相反,它们列出了数据库和用户。

PHP Myadmin的屏幕截图显示如何编辑特权

例如,一家公司为Bob和Jane创建了用户帐户(模式)。它还为HR和市场营销。然后,它让每个部门的分析师访问该部门的模式帐户。

HR分析师在HR模式中创建表和视图,并授予Bob读取(而不是写入)列出员工姓名和员工ID号的表的权限。此外,HR分析师可能授予Jane读写列出员工电话号码的表的权限。

通过这种方式授予访问权,只有正确的角色和用户才能读取、写入或修改较大数据库中的自包含数据资产中的数据。

每个数据库引擎都希望模式作为在多用户环境中分离数据的基础方法。

不同的数据库引擎以不同的方式对待用户和模式。参考特定于数据库引擎的文档,以发现围绕用户、模式和权限授予的特定语法和逻辑模型。

创建模式

模式是使用结构化查询语言。例如,在Oracle中,通过创建拥有schema的用户帐户来创建schema:

创建用户Bob.
被temporary_password
默认表空间的例子
例如配额10M
临时表空间临时
系统配额5M
概要app_user
密码到期;

借助于用户名或用户帐户已添加到的一个或多个角色,授予其他用户访问新模式。

模式与数据模型

模式在本质上不是用来做任何事情的;相反,它是支持数据库中权限分段的基础设施。条款模式数据模型但是,它们是可以互换使用的。

它令人困惑,但使用起来并没有错模式引用由表和视图之间的特定关系连接起来的特定表和视图集合。本文中概述的模式即体系结构方法是大写s版本的模式。模式即数据关系是小写s版本——同义词。许多在线参考网站模糊了这一本质区别。

数据模型是表的集合和在特定键上加入的视图。这些数据资产在一起,提供经营宗旨。将数据模型应用于架构非常完全可以接受 - 实际上,对于大型和复杂的数据模型,将它们与模式相关联用于智能数据库管理。但是,使用模式模型或将数据模型作为架构处理数据模型并不是必要的。

用于存储的数据库模式

例如,人力资源部门可能包括其架构员工绩效审查的数据模型。数据模型而不是为这些评论创建模式,而是可以在HR架构(以及其他数据模型以及其他数据模型中),并通过表的前缀和数据模型中对象的视图名称来保持逻辑上。

数据模型可以获得一个非正式的名称,例如绩效考核,然后所有表和视图都可能是前缀的pr_。员工列表表可能被引用为hr.pr_employee在不需要履行绩效评估的新架构。

此页面是否有帮助?