您能否从数据库开发角度或Oracle角度描述术语“架构”的差异。
答案 0 :(得分:1)
答案 1 :(得分:1)
在ORACLE中,模式和用户实际上是相同的,即使SQL标准(从1996年)没有要求这样做。 “模式”一词在SQL标准中定义;这可能是ORACLE引用“schema”一词的原因。
但是,ORACLE“CREATE SCHEMA”关键字甚至没有创建模式:我永远不会在ORACLE项目中使用关键字“SCHEMA”。 架构中包含的所有对象都可以在没有关键字“SCHEMA”的情况下创建。
这是ORACLE 12C中“架构”的定义: “命名的数据库对象集合,包括表和索引等逻辑结构。模式具有拥有它的数据库用户的名称。”
http://docs.oracle.com/database/121/CNCPT/glossary.htm#CNCPT89131
上述句子意味着一个模式只能存在于一个用户中(模式不能跨越多个用户)。
以下URL的状态,即用户不能拥有或与多个架构相关联:
https://community.oracle.com/thread/960972?tstart=0
http://searchoracle.techtarget.com/answer/Can-I-create-multiple-schemas-in-Oracle-for-one-user
创建ORACLE用户并创建该用户拥有的对象后,所有对象都被视为一个称为模式的集合。单词“schema”特定于SQL标准,但是ORACLE页面的内容意味着所有模式对象始终包含在用户中。
<小时/>
ORACLE“CREATE SCHEMA”声明具有误导性。我完全不会使用它有两个原因:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6014.htm
“CREATE SCHEMA”ORACLE关键字仅支持标准SQL,而不支持 ORACLE数据库中的所有功能。
上述页面还指出在创建用户时会自动创建架构。
“Oracle数据库会在您创建用户时自动创建架构”
参考文献:
http://www.oratable.com/oracle-user-schema-difference/
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6014.htm
SQL标准: