这可能是一个新手(或更糟)的问题。但我一直把模式视为数据库中的表定义。这是错误的,或者不完全正确。我已经忘记了我在数据库课程中学到的很多内容。
这可能是一个新手(或更糟)的问题。但我一直把模式视为数据库中的表定义。这是错误的,或者不完全正确。我已经忘记了我在数据库课程中学到的很多内容。
关于模式的更多信息:
在SQL 2005中,模式是一种分组对象的方式。它是一个可以放置对象的容器,人们可以拥有此对象。您可以授予模式的权限。
在2000年,模式等同于用户。现在它已经摆脱了束缚,变得非常有用。您可以将所有用户过程放入某个特定的模式中,将管理员过程放入另一个模式中。授予适当的用户/角色执行权限,然后您就完成了对特定过程的授权。很不错。
点符号表示如下:
Server.Database.Schema.Object
或
myserver01.Adventureworks.Accounting.Beans
根据我对以下类比的理解,我尝试回答:
我喜欢将其与普遍理解的术语进行比较的被接受答案。但对我来说有点困惑。这是我更新后的版本:
从存储/内存角度来看,它们之间的关系如下:
Database (complete house) >>> schema (one room) >>> table (one closet in the room)
数据库:是一座完整的房子,没有副本。
模式:是一个特定的房间。在这座房子(数据库)中可以有许多房间(模式)。
表格:是房间内的存储柜或桌子。在一个房间里可以有许多表格。
通过减少技术理解它:
删除数据库:将整座房子夷为平地(从计算机中永久删除)。之后,房子(数据库)中不再存在任何部分。
删除模式:删除一个房间的所有内容。还有其他房间有内容(其他带有存储数据的模式)
删除表格:删除一个完整房子(数据库)中的一个房间(模式)中存储的某个存储柜或桌子的内容。因此,在这个房间(模式)中,还有其他的表格,存储着它们的内容。
架构包含数据库。
数据库是架构的一部分。
因此,架构>数据库。
架构包含视图、存储过程、数据库、触发器等。