【问题标题】:What do schema and catalog mean?架构和目录是什么意思?
【发布时间】:2018-06-22 06:44:53
【问题描述】:

来自数据库系统概念,作者 Silberschatz 等人:

4.5.7 架构、目录和环境

与早期的文件系统一样,早期的数据库系统也只有一个名称 所有关系的空间。用户必须协调以确保他们做到了 不要尝试为不同的关系使用相同的名称。当代的 数据库系统为命名关系提供了三级层次结构。 层次结构的顶层由目录组成,每个目录都可以 包含架构。包含 关系和视图 等 SQL 对象 架构内。 (一些数据库实现使用术语 “数据库” 代替术语目录。)

为了对数据库执行任何操作,用户(或程序) 必须首先连接到数据库。用户必须提供用户名 通常是用于验证用户身份的密码。每个 用户有一个默认目录schema,组合是唯一的 给用户。当用户连接到数据库系统时,默认 为连接设置目录和模式;这对应于 当前目录被设置为用户的主目录时 用户登录操作系统。

要唯一标识关系,可以使用由三部分组成的名称,例如 例如,catalog5.univ schema.course 我们可以省略目录 组件,在这种情况下,名称的目录部分被认为是 成为连接的默认目录。因此,如果 catalog5 是 默认目录,我们可以使用 univ schema.course 来识别相同的 唯一的关系。

  1. 一个关系有一个模式,它是所有关系的集合 关系的属性。上面引用中的“模式”似乎 对应多个关系。是否“模式”在 上面引用的意思与关系的架构相同吗?
  2. 目录和数据库有什么关系?是关系 目录和数据库之间是一对一的吗?
  3. 目录和模式在 mysql、postgresql 或 SQL Server?

谢谢。

【问题讨论】:

  • 这至少是 5 个独立的问题,很难回答。

标签: database


【解决方案1】:

您在#1 中的第一句话毫无意义。

像“person”这样的表/关系具有像“name”、“phone”和“email”这样的属性/列。

表在称为模式的命名空间中组合在一起。因此,像“仓库”这样的模式可以有一个名为“person”的表,而另一个像“sales”这样的模式也可以有一个巧合的名为“person”的表。每个目录都有一个或多个模式,每个模式都带有一个名称,例如这里看到的“仓库”和“销售”。

除了作为命名空间之外,模式通常还充当安全边界。据我所知,这是一个实现细节,不是 SQL 标准所要求的。

“模式”一词也通常以不同的、更随意和通用的方式使用,用于描述为满足应用程序需求而做出的表和列设计选择。请参阅下面 IMSoP 的第一条评论。非正式意义上的模式可能涉及正式 SQL 标准意义上的任意数量的目录、模式、表和列。

至于#2,你的报价解释了这一点。 “目录”和“数据库”是同义词。 SQL 标准正式使用“目录”一词。

对于#3,努力实现 SQL 标准的高级数据库通常支持该标准定义的所有级别:集群 > 目录 > 架构 > 表。这包括 Postgres 和 Microsoft SQL Server。

H2 Database Engine 支持单独的数据库,每个数据库都是带有模式的目录,但没有将目录/数据库组合在一起的集群。

MySQL 受到更多限制,不支持完整的层次结构,从我对 MySQL 文档的有限搜索中可以看出。


有关更多信息,请参阅此相关问题:What's the difference between a catalog and a schema in a relational database?

【讨论】:

  • 我认为问题1的混淆在于我们经常谈论“数据库模式”通常意味着“数据库的结构”。因此,“表的模式”将是“该表的结构”。正如你所说,这与 SQL 标准用来表示“一组表”的“模式”的含义不同
  • 至于 MySQL,我的理解是 MySQL 的“数据库”有点像“目录”,有点像“模式”——你可以使用 USE 语句选择“当前数据库”,并且使用database.object 表示法跨数据库查询。 MySQL 中的INFORMATION_SCHEMA 视图将数据库名称放在SCHEMA 列中,而不是CATALOG 列中。
  • @IMSoP 关于您对“模式”的第一条评论,谢谢,我在我的回答中添加了一条注释。至于您对 MySQL 的第二条评论,这是我成为Postgres 粉丝的众多原因之一。 ;-)
猜你喜欢
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 2023-03-08
  • 2023-04-03
  • 1970-01-01
相关资源
最近更新 更多