深入讨论:Oracle方案的概念及其与数据库的关系
首先,我们首先了解该方案的概念,然后了解该方案与数据库之间的关系。先看看他们的定义:
复制代码代码如下所示:
模式是数据库对象的集合(由用户使用)。
模式对象是直接引用数据库的逻辑结构。
用户是数据库中定义的可以连接的名称。
模式和用户帮助数据库管理员管理数据库安全。
从定义中我们可以看到架构的数据库对象的集合,为了区分每一集,我们需要给一个名称节点集,许多类似的用户名,这些名字是我们看到在企业管理器下的程序,用户的节点名称类似于图式,其中包含各种对象,如表、视图、序列、存储、程序、同义词、索引、簇和数据库链接。
用户通常对应于一个模式,而用户的架构名称等于用户名和用户的默认架构。这是为什么我们看到的架构名称作为企业经理的计划下的数据库用户名。Oracle数据库可以创建一个新的模式,创建一个模式,只有通过用户的地址创作(甲骨文虽然有创建模式的说法,但它不是用来创建一个schema),创建一个用户名和用户名同时创建用户的方法和shcema作为用户默认的。也就是说,图式的数量作为用户数相同,和架构名称对应于用户的名字一个接一个,而同样是所有。我们可以将模式称为用户别名,尽管它不准确,但更容易理解。
一个用户有一个缺省的图式,图式是等于一个用户,当然你也可以使用其他模式。如果我们访问一个表没有说明该模式的表,系统会自动添加默认的sheman名向我们的桌子上。例如,我们访问数据库时,我们参观史葛用户EMP表,通过SELECT * FROM EMP;事实上,SQL语句的完整语句的SELECT * FROM scott.emp.the全称数据库中的对象是schema.object,不user.object.if我们我们不创建对象时指定对象的架构对象的模式是用户的默认模式。它就像一个用户有一个默认的表空间,但用户也可以使用其他表空间,如果我们不指定表空间在创建对象时,对象存储在默认表空间中,要使对象存储在其他表空间中,我们需要在表中指定对象空间,创建对象。
咳嗽,说这么多,给你举个例子,否则,一切都很无聊!
复制代码代码如下所示:
SQL > gruant DBA史葛
创建表测试(名称char(10));
表的创建。
SQL >创建表system.test(名称char(10));
表的创建。
SQL >插入测试值(斯科特);
1行创建。
SQL> insert into system.test values ('system');
1行创建。
提交;
提交完整的。
SQL >连接系统/经理
有联系的.
从测试中选择*;
名称
----------
系统
SQL >改变会话设置current_schema =史葛;-更改用户的默认架构名称
会议改变。
从测试中选择*;
名称
----------
斯科特
已选择的主人,table_name从dba_tables哪里table_name =上(测试);
业主table_name
------------------------------------------------------------
史葛试验
系统测试
上述查询就是我说的使用模式为用户别名的基础。事实上,在使用中,shcema完全相同的用户,有在一个地方的架构的名称出现用户名的外观没有区别。从上面的解释,它应该很容易理解的方案是什么,我会重新分析方案和数据库之间的关系。
上述方案是用户使用的数据库对象集合,用户有默认模式,模式等于用户,当然您也可以使用其他模式。
我们只能登录到具有一定身份的数据库,然后在数据库中操作。但是,当用户进入数据库时,他可以在不同的数据库中操作不同的数据库对象,也就是说,数据库是由不同类型的数据库对象组成的,而解决方案是由不同数据库中的数据库对象组成的。
例如:我们安装Oracle数据库系统生成一个默认的数据库为Oracle,安装之后,我们将创建一个数据库命名为快,这一次,我们到Oracle数据库系统,我们发现系统默认用户(包括系统/系统/ sysmen)都有自己相应的方案。在这一点上,我们创建一个用户:testuser,系统将自动为testuser产生一个同名的名字。然后我们可以创建表AA,属于计划testuser;你也可以创建表AA的名称相同,但属于系统以同样的方式,我们可以登录对Oracle数据库对象操作的testuser用户身份数据库的其他模式。
但我们不能操作数据库对象在快的。然后登录快来创建表testuser.bb和testuser.aa。然后,对testuser数据库对象包括快的AA、BB和其他默认对象,Oracle的表AA和其他默认对象数据库快。