首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模式和目录意味着什么?

模式和目录意味着什么?
EN

Stack Overflow用户
提问于 2018-01-12 18:57:48
回答 1查看 2.5K关注 0票数 0

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

4.5.7模式、目录和环境 与早期的file系统一样,早期数据库系统也有一个用于所有关系的名称空间。用户必须进行协调,以确保他们没有试图使用相同的名称为不同的关系。现代数据库系统为提供了一个用于命名关系的三级层次结构。层次结构的顶层由目录组成,每个目录都可以包含架构关系和视图等SQL对象包含在架构中。(一些数据库实现使用术语“database”来代替目录。) 为了在数据库上执行任何操作,用户(或程序)必须将rst连接到数据库。用户必须提供用户名,通常是验证用户身份的密码。每个用户都有一个默认目录模式,并且这种组合对用户是唯一的。当用户连接到数据库系统时,将为连接设置默认目录和架构;这对应于当用户登录到操作系统时将当前目录设置为用户的主目录。 为了标识一个唯一的关系,可以使用一个三部分的名称,例如,5.univ schema.course我们可以省略目录组件,在这种情况下,名称的目录部分被认为是连接的默认目录。因此,如果catalog5是默认目录,则可以使用univ schema.course唯一地标识相同的关系。

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

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-13 03:46:41

你在第一句中的第一句话是毫无意义的。

像“person”这样的表/关系具有属性/列,如“名称”、“电话”和“电子邮件”。

表在称为架构的命名空间中组合在一起。因此,像“仓库”这样的模式可以有一个名为“person”的表,而另一个模式(如“sales”)也可以有一个名为“person”的表。每个目录都有一个或多个模式,每个模式都带有一个名称,如此处所示的“仓库”和“销售”。

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

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

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

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

H2数据库引擎支持单独的数据库,每个数据库都是带有架构的目录,但不支持集群将目录/数据库组合在一起。

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

有关更多信息,请参见以下相关问题:关系数据库中的目录和模式有什么区别?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48232448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档