数据库中的Schema是什么?

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 翻译自:http://database.guide/what-is-a-database-schema/   在数据库中,schema(发音 “skee-muh” 或者“skee-mah”,中文模式)是数据库的组织和结构,schemas andschemata都可以作为复数形式。

 

翻译自:http://database.guide/what-is-a-database-schema/

 

在数据库中,schema(发音 “skee-muh” 或者“skee-mah”,中文模式)是数据库的组织和结构,schemas andschemata都可以作为复数形式。

模式中包含了schema对象,可以是表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、

主键(primary key)、外键(foreign key)等。数据库模式可以用一个可视化的图来表示,它显示了数据库对象及其相互之间的关系

以上是架构图的简单示例。它显示了三个表,以及它们的数据类型,表之间的关系,以及它们的主键和外键。

 

这是一个更复杂的数据库模式示例:

 

在这种情况下,模式图分为四个部分:

(1)Customer Data(客户数据):与客户有关的数据,如姓名,地址等

(2)Business(业务):业务所需的数据,例如员工,商店位置,付款细节等

(3)Inventory(库存):所有产品的细节。在这里,产品是电影,所以它包含电影标题,类别,演员等数据。

(4)Views(视图):关于用于评估的数据的特别观点,所以通过这些模式图,我们可以进一步创建一个数据库,

实际上,MySQL Workbench允许我们直接从图中生成一个Create Table脚本,然后我们就可以直接用这个脚本去创建一个数据库,还可以直接将一个数据库转换为一个关系图表。

 

架构和数据库是一样的吗?

在涉及数据库时,有很多关于模式的混淆。问题经常出现在模式和数据库之间是否存在差异,如果是,那么差异是什么。

 

取决于供应商

造成混淆的部分原因是数据库系统倾向于以自己的方式处理模式。

  • MySQL文档指出,物理,一个模式是与数据库的代名词因此,模式和数据库是一回事
  • 但是,Oracle数据库文档指出某些对象可以存储在数据库中,但不能存储在模式中。因此,模式和数据库是两回事
  • 根据这篇SQL Server技术文章,模式是数据库中的一个独立实体。所以,它们是两个不同的东西

因此,根据您使用的RDBMS,模式和数据库可能是也可能不是同一个东西。

那么SQL标准呢?

ISO / IEC 9075-1 SQL标准定义了一个模式作为  描述符的持久性,命名集合

如果你之前感到困惑,希望我没有让它变得更糟......

广义

混淆的另一个原因可能是由于术语模式具有如此广泛的含义。它在不同的背景下具有不同的内涵。

单词schema来自希腊语  skhēma,意思是形式,  形象形状计划

模式在心理学中用于描述组织信息类别及其之间关系的有组织的思想或行为模式。

在设计数据库之前,我们还需要查看信息类别以及它们之间的关系。在我们开始使用DBMS中物理模式之前,我们需要创建一个概念模式

在软件开发中,在讨论模式时,可以讨论概念模式,物理模式,内部模式,外部模式,逻辑模式等。其中每一个都有其特定的含义。

DBMS的模式定义

以下是三个领先数据库系统的模式的快速定义:

MySQL的

从概念上讲,模式是一组相互关联的数据库对象,例如表,表列,列的数据类型,索引,外键等。

...。

在MySQL中,物理上,模式数据库是同义词您可以替换关键字SCHEMA而不是DATABASEMySQL SQL语法,例如使用CREATE SCHEMA而不是CREATE DATABASE

资料来源:  “MySQL词汇表”MySQL 5.7参考手册。MySQL的。检索2016年6月6日。

 

SQL Server

表,字段,数据类型以及数据库的主键和外键的名称。

“词汇表”SQL Server 2016技术文档。Microsoft Developer Network。检索2016年6月6日。

 Oracle数据库

Oracle数据库的模式系统与其他系统完全不同。Oracle的架构与数据库用户密切相关。

模式是数据的逻辑结构,或架构对象的集合。模式由数据库用户拥有,并且与该用户具有相同的名称。每个用户拥有一个架构。

来源:  “数据库对象”Oracle Database Online Documentation 12c第1版(12.1)。Oracle帮助中心。检索2016年6月6日。

这篇关于DBMS的模式定义的文章提供了更多细节。

创建架构

尽管它们在定义模式方面存在差异,但上述三个DBMS中的每一个都支持该CREATE SCHEMA语句。

这就是相似性结束的地方。

MySQL的

在MySQL中,  CREATE SCHEMA创建一个数据库。

这是因为  CREATE SCHEMA 是它的同义词  CREATE DATABASE换句话说,您可以使用 CREATE SCHEMA或  CREATE DATABASE执行相同的操作。

Oracle数据库

在Oracle数据库中,该CREATE SCHEMA语句实际上并不创建模式。这是因为已经为每个数据库用户创建了一个模式。

在Oracle中,该  CREATE USER  语句创建模式。

在Oracle中,  CREATE SCHEMAstatement允许您使用表和视图填充模式,并为这些对象授予权限,而无需在多个事务中发出多个SQL语句。

SQL Server

在SQL Server中,CREATE SCHEMA将根据您提供的名称创建架构。

与MySQL不同,该  CREATE SCHEMA 语句创建一个与数据库分开定义的模式。

与Oracle不同,该  CREATE SCHEMA 语句实际上创建了模式。

在SQL Server中,一旦创建了架构,就可以向其中添加用户和对象。

结论

术语模式可以在许多不同的上下文中使用。在特定数据库管理系统中创建模式的上下文中,您需要使用DBMS定义模式。

当您切换到新的DBMS时,请务必查找该系统如何定义模式。

 

您可以考虑给博主来个小小的打赏以资鼓励,您的肯定将是我最大的动力。

微信 支付宝
作者: 落花四月
关于作者:潜心于网络安全学习。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
NoSQL 算法 测试技术
图数据库基准测试 LDBC SNB 系列讲解:Schema 和数据生成的机制
作为大多数图数据库性能测试标配的 LDBC SNB 它是如何保障不同系统环境之间的测评比较公平且基准测试结果可重复的呢?本文从数据和 Schema 生成入手同你讲解它的原理。
33 2
图数据库基准测试 LDBC SNB 系列讲解:Schema 和数据生成的机制
|
4月前
|
SQL Java 数据库连接
Java【付诸实践 01】使用org.apache.ibatis.plugin.Interceptor拦截器实现全局mapper.xml参数注入(可用于切换数据库实例schema)源码实例分享
Java【付诸实践 01】使用org.apache.ibatis.plugin.Interceptor拦截器实现全局mapper.xml参数注入(可用于切换数据库实例schema)源码实例分享
38 0
|
存储 关系型数据库 MySQL
MySQL 数据库 Schema 设计的性能优化①:高效的模型设计
前言 很多人都认为性能是在通过编写代码(程序代码或者是数据库代码)的过程中优化出来的,其实这是一个非常大的误区。真正影响性能最大的部分是在设计中就已经产生了的,后期的优化很多时候所能够带来的改善都只是在解决前妻设计所遗留下来的一些问题而已,而且能够解决的问题通常也比较有限。 博主将就如何在 MySQL 数据库 Schema 设计的时候保证尽可能的高效,尽可能减少后期的烦恼会分3篇文章来进行详细介绍!
|
SQL 算法 Linux
【数据库】Star Schema Benchmark 标准测试集优化(三)
【数据库】Star Schema Benchmark 标准测试集优化(三)
65 1
【数据库】Star Schema Benchmark 标准测试集优化(三)
|
SQL Oracle 架构师
【数据库】Star Schema Benchmark 标准测试集优化(二)
【数据库】Star Schema Benchmark 标准测试集优化(二)
121 0
|
SQL 测试技术 数据库
【数据库】Star Schema Benchmark 标准测试集优化(一)
【数据库】Star Schema Benchmark 标准测试集优化(一)
138 0
|
存储 关系型数据库 Java
知识分享之PostgreSQL——数据库中的模式(Schema)
日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。 同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。
313 0
知识分享之PostgreSQL——数据库中的模式(Schema)
|
自然语言处理 Cloud Native 数据挖掘
云原生向量数据库Milvus(二)-数据与索引的处理流程、索引类型及Schema(下)
本文将介绍 Milvus 系统中数据写入、索引构建、数据查询的具体处理流程,同时,还会介绍Milvus支持的索引类型;另外,还将讲述如何定义字段和集合Schema。
|
SQL 存储 弹性计算
云原生向量数据库Milvus(二)-数据与索引的处理流程、索引类型及Schema(上)
本文将介绍 Milvus 系统中数据写入、索引构建、数据查询的具体处理流程,同时,还会介绍Milvus支持的索引类型;另外,还将讲述如何定义字段和集合Schema。
|
存储 缓存 安全
MySQL数据库的schema设计优化
本文介绍了数据库schema常见的一些缺陷,以及一些优化方法。
157 1

热门文章

最新文章