来自https://stackoverflow.com/questions/2674222/what-is- Purpose-of-database-schema的答案中的这些定义是不同的。
哪个是正确的?
SQL 模式是对象的容器。例如,您可能有一个大型企业应用程序,那么最好将不同的模式用于不同的目的(例如,将 HR 相关表放入 HR 模式,将会计相关表放入会计模式等)。任何用户都可以拥有模式,并且所有权是可以转让的。 [https://stackoverflow.com/a/2674259,部分来自http://msdn.microsoft.com/en-us/library/ms190387.aspx]
数据库模式是描述数据库整个配置的定义,包括其所有表、关系、索引等。 [http://en.wikipedia.org/wiki/Database_schema]
两者都是正确的。 “模式”有多种含义。你的第一个含义是你通过
CREATE SCHEMA
获得的模式——对象容器。你的第二个含义是独立于 SQL Server 的“数据库模式”的一般含义。通常,从上下文中可以清楚地看出其含义——“数据库模式”通常是单数,而单个数据库中的“模式”指的是容器。因此,如果您想特别困惑,您可以讨论其中包含多个模式1的数据库模式2。
简单来说,
Schema
是database instance
的同义词
您可以在关系型数据库(例如MySql)中使用
CREATE SCHEMA MYDATABASE
和CREATE DATABASE MYDATABASE
来创建新的数据库实例。
Schema
这个词曾经被认为过于学术化,后来就被废弃了。
两者都不错,但是
Schema
听起来有点极客。