a)我发现了两种模式定义:
FIRST - 描述表的一组信息称为模式, 和模式也用于描述数据库中的特定表 作为整个数据库(以及它们之间的表之间的关系,如果有的话)。
SECOND - 数据库模式是一种逻辑分组对象(如表,视图,存储过程等)的方法。将模式视为对象的容器。
我假设这两个描述描述了完全不同的概念,恰好使用相同的名称?
b)中
数据库模式是一种逻辑分组对象(如表,视图,存储过程等)的方法。将模式视为对象的容器。
如果我正确理解了上面的定义,那么数据库模式就像命名空间一样,唯一的区别是我们可以为数据库模式分配访问权限,而命名空间也不能这样做?
感谢名单
答案 0 :(得分:1)
是的,这可能令人困惑。通常,在关系数据库的上下文中,您的架构是数据库结构的集合 - 您的表,视图,键,约束等。根据您的要求,这可能会也可能不会包括触发器,用户定义的函数,自定义用户类型,存储过程等,但我也将它们作为模式对象进行混淆。
在特定关系数据库管理系统(例如,MSSQL,Postgres)的上下文中,模式是数据库对象的逻辑分组。它有两个目的:1)正如您所注意到的,它充当命名空间,允许您将相关的数据库对象组合在一起,并减少名称冲突; 2)您可以将安全设置作为一个整体分配给架构,而不是分别为架构的对象分配权限。
术语碰撞有时令人困惑,但却是有意的。通常有必要讨论整个模式的子集,并分配权限并处理这些子集上的行为 - 数据库支持这一点,允许您将这些子集分组到自己的中模式