2017-07-17 58 views
2

嗨,我是在CS领域的新人,有一件事是,在问这个问题之前,我已经使用了它,但是这让我更加混淆了两个定义,我发现只是问哪一个是正确的? 。 在此链接中我找到了多个答案哪一个是正确的? What is purpose of database schema?数据库模式究竟是什么?

,我发现这个事情困惑我,我,我认为两者是相互指南我不同..

1)SQL架构是对象的容器。例如,您可能拥有一个大型企业应用程序,然后为不同目的使用不同架构(例如,将HR相关表放入HR架构,将相关表格记入会计架构等)是一种很好的做法。架构可以由任何用户拥有,并且所有权可以转让。

2)数据库模式是描述数据库的全部配置,包括所有的表,关系,索引的定义等

我的问题是不同的我已阅读多个答案这也有,但我发现了多个答案,这使我更加困惑

回答

2

两者都是正确的。 “Schema”有多重含义。你的第一个含义是你用CREATE SCHEMA - 一个对象容器得到的模式。您的第二个含义是独立于SQL Server的“数据库模式”的一般含义。通常情况下,从上下文中可以清楚地知道哪些含义是有意的 - “数据库模式”通常是单数的,而单个数据库中的“模式”指的是容器。所以,如果你想特别困惑,你可以讨论一个数据库模式其中有多个模式。

2

简单地说,Schemadatabase instance

您可以使用关系型数据库都CREATE SCHEMA MYDATABASECREATE DATABASE MYDATABASE如MySQL创建一个新的数据库实例的代名词。

Schema这个词曾经被认为是过于学术化,稍后会过时。

两者都是Okey,但Schema听起来有点怪胎。

+0

你说的是真正专为MySQL(问题是关于SQL Server)。在MySQL中,'SCHEMA'是'DATABASE'的语法同义词。然而,即使对于MySQL数据库来说,谈论数据库模式也是正常的,而不会将数据库模式与数据库本身混淆 - 这是一个独立于所用数据库系统(而SQL Server模式是实现细节)的抽象概念。 –