模式与表和数据库之间有什么区别?

What is the difference between a schema and a table and a database?

这可能是一个类似(或更糟)的问题。但我一直将模式视为数据库中的表定义。这是错误的或不完全正确的。我不太记得我的数据库课程。


架构 -> 平面图

数据库->房子

桌子->房间


关系模式是表的逻辑定义——它定义了表的名称,以及每列的名称和类型。这就像一个计划或蓝图。数据库架构是整个数据库的关系架构的集合。

表是具有一堆行(又名"元组")的结构,每行都具有模式定义的属性。表上可能还有索引,以帮助查找某些列上的值。

从形式上讲,数据库是任何数据的集合。在这种情况下,数据库将是表的集合。 DBMS(数据库管理系统)是管理和运行数据库的软件(如 MySQL、SQL Server、Oracle 等)。


简而言之,模式是对整个数据库的定义,因此它包括表、视图、存储过程、索引、主键和外键等。


已显示此特定帖子仅与 Oracle 相关,并且在另一个 DB 的上下文中,Schema 的定义会发生变化。

可能只是用谷歌搜索一下,但仅供参考的术语在定义上似乎确实有所不同,这是最烦人的事情:)

在 Oracle 中,数据库就是数据库。在您的脑海中,将其视为数据文件和重做日志以及数据库本身磁盘上的实际物理存在(即不是实例)

架构实际上是一个用户。更具体地说,它是用户拥有的一组表/过程/索引等。另一个用户有不同的架构(他/她拥有的表),但是用户也可以看到他们拥有选择权限的任何架构。所以一个数据库可以包含数百个模式,每个模式有数百个表。您可以在同一个数据库中的不同模式中拥有同名的表。

表是一个表,一组包含数据的行和列,并且包含在模式中。

例如,SQL Server 中的定义可能不同。我不知道这一点。


Schema 的行为看起来像在 OOP 世界中看到的父对象。所以它不是数据库本身。也许这个链接很有用。

但是,在 MySQL 中,两者是等价的。关键字 DATABASE 或 DATABASES
无论出现在哪里,都可以用 SCHEMA 或 SCHEMAS 替换。示例:

  • 创建数据库 <=> 创建模式
  • 显示数据库 <=> 显示模式

MySQL 文档

架构


n


n


n


n


关于模式的更多信息:

在 SQL 2005 中,模式是对对象进行分组的一种方式。它是一个可以放入对象的容器。人们可以拥有这个对象。您可以授予对架构的权限。

在 2000 年,架构相当于一个用户。现在它已经摆脱了束缚并且非常有用。您可以将所有用户 procs 放入某个架构中,并将您的 admin procs 放入另一个架构中。将 EXECUTE 授予适当的用户/角色,您就可以在特定过程上授予 EXECUTE。好的。

点符号是这样的:

Server.Database.Schema.Object

myserver01.Adventureworks.Accounting.Beans


n


在oracle中Schema是一个数据库下的一个用户,例如scott是orcl数据库中的一个schema。
在一个数据库中,我们可能有许多模式,例如 scott


n


架构包含数据库。

数据库是模式的一部分。

所以,模式 > 数据库。

架构包含视图、存储过程、数据库、触发器等。


n


n