这可能是一个非常糟糕的问题。但我一直将模式视为数据库中的表定义。这是错误的或不完全正确的。我不太记得我的数据库课程了。
当前回答
As https://www.informit.com/articles/article.aspx?p=30669
所有对象的名称在一定范围内必须是唯一的。每一个 数据库必须有唯一的名称;模式名称不能重复 在单个数据库的范围内,表的名称必须为 在单个模式的作用域中是唯一的,列名必须是 在表中是唯一的。类中索引的名称必须唯一 数据库。
其他回答
schema包含数据库。
数据库是Schema的一部分。
schema >数据库。
模式包含视图、存储过程、数据库、触发器等。
简而言之,模式是整个数据库的定义,因此它包括表、视图、存储过程、索引、主键和外键等。
这篇文章只涉及到Oracle, Schema的定义在另一个DB上下文中会发生变化。
可能是那种让人受不了的事情,但供你参考的术语似乎在定义上有所不同,这是最烦人的事情:)
在Oracle中,数据库就是数据库。你可以把它想象成数据文件和重做日志,以及数据库本身在磁盘上的实际物理存在(即不是实例)。
Schema实际上就是一个用户。更具体地说,它是用户拥有的一组表/ pros /索引等。另一个用户有不同的模式(他/她拥有的表),但是用户也可以看到他们有选择特权的任何模式。因此,一个数据库可以由数百个模式组成,每个模式由数百个表组成。您可以在同一数据库中的不同模式中拥有具有相同名称的表。
表是一个表,一组包含数据的行和列,并且包含在模式中。
例如,SQL Server中的定义可能不同。我不知道这件事。
就像MusiGenesis说的那样,在大多数数据库中:
架构:数据库:表::平面图:房子:房间
但是,在Oracle中,它可能更容易想到:
架构:数据库:表::所有者:房子:房间
我试着根据我对以下类比的理解来回答:
A database is like the house In the house there are several types of rooms. Assuming that you're living in a really big house. You really don't want your living rooms, bedrooms, bathrooms, mezzanines, treehouses, etc. to look the same. They each need a blueprint to tell how to build/use them. In other words, they each need a schema to tell how to build/use a bathroom, for example. Of course, you may have several bedrooms, each looks slightly different. You and your wife/husband's bedroom is slightly different from your kids' bedroom. Each bedroom is analogous to a table in your database. A DBMS is like a butler in the house. He manages literally everything.
推荐文章
- 模式、表和数据库之间的区别是什么?
- 我看到VARCHAR(255)如此频繁地使用(而不是其他长度),有什么好的原因吗?
- 使用pgadmin连接到heroku数据库
- Delete_all vs destroy_all
- 我如何移动一个redis数据库从一个服务器到另一个?
- 如何首次配置postgresql ?
- 数据库性能调优有哪些资源?
- 如何在PostgreSQL中自动更新时间戳
- 当使用JDBC连接到postgres时,是否可以指定模式?
- 对象'DF__*'依赖于列'*' -将int改为double
- 将映像存储在MongoDB数据库中
- 重复Mongo ObjectId的可能性在两个不同的集合中生成?
- 字符串作为SQL数据库的主键
- 比较两个SQL Server数据库(模式和数据)的最佳工具是什么?
- 如何检查一个表是否存在于给定的模式中