oralce schema 的设计意思

来源:这里教程网 时间:2026-03-03 17:44:35 作者:

模式是一个逻辑概念,它将所有相关对象(表、视图、索引、进程、包等)逻辑地组织到一个 集合 中。一般来说,模式的名称与负责该模式的用户的名称是一致的。 建筑物相当于一个数据库。一栋楼有两户,用户a和用户B,当用户a进入自己的房间(schema)时,可以在自己的房间里添加桌子(table)、椅子(view)、沙发(index)等。 当然,用户B也可以将不同的桌子、椅子和沙发添加到自己的模式中。 嗯,我们知道用户a和用户B有不同的房间(模式),所以通常我们会直接说用户a或用户B,这样我们就可以区分他们不同的桌椅。 但严格来说,我们应该说用户a的房间(schema)不同于用户B的房间(schema)。所以我们一般说用户a,它直接代表模式a。 这些类似用户名的节点实际上是一个模式,其中包含各种对象,例如表、视图、序列、存储过程、同义词、索引、集群和数据库链接。用户通常对应于一个模式。用户的架构名称等于用户名,并且是用户的默认架构。 以你电脑的用户为例,如果你的电脑有三个用户,那么每个用户在登录系统时可以看到(使用)不同的功能

Databaseschema是指数据库架构结构的定义,即创建哪些表以及表中的属性。Databaseinstance是指您创建的数据库 ]模式是数据库对象的集合。为了区分每个集合,我们需要给这个集合一个名称,我们在enterprisemanager方案下看到了这个名称实际上,这些类似用户名的节点是一个模式,它包含各种对象,例如表、视图、序列、存储过程、synnyms、索引、集群和数据库链接。 用户通常对应于模式。用户的架构名称等于用户名,并且是用户的默认架构。这就是为什么我们看到模式名都是enterprisemanager模式中的数据库用户名。 一个用户有一个缺省的schema,其schema名就等于username,当然一个用户还能够使用其它的schema。假设我们訪问一个表时,没有指明该表属于哪一个schema中的,系统就会自己主动给我们在表上加上缺省的sheman名。比方我们在訪问数据库时,訪问scott用户下的emp表,通过select * from emp; 事实上,这sql语句的完整写法为select * from scott.emp。在数据库中一个对象的完整名称为schema.object,而不属user.object。相似假设我们在创建对象时不指定该对象的schema,在该对象的schema为用户的缺省schema。这就像一个用户有一个缺省的表空间,可是该用户还能够使用其它的表空间,假设我们在创建对象时不指定表空间,则对象存储在缺省表空间中,要想让对象存储在其它表空间中,我们须要在创建对象时指定该对象的表空间。 SQL> ALTER SESSION SET CURRENT_SCHEMA = scott; --改变用户缺省schema名 一个用户有一个缺省的schema,其schema名就等于用户名,当然一个用户还可以使用其他的schema。如果我们访问一个表时,没有指明该表属于哪一个schema中的,系统就会自动给我们在表上加上缺省的sheman名。比如我们在访问数据库时,访问scott用户下的emp表,通过select * from emp; 其实,这sql语句的完整写法为select * from scott.emp。在数据库中一个对象的完整名称为schema.object,而不属user.object。类似如果我们在创建对象时不指定该对象的schema,在该对象的schema为用户的缺省schema。这就像一个用户有一个缺省的表空间,但是该用户还可以使用其他的表空间,如果我们在创建对象时不指定表空间,则对象存储在缺省表空间中,要想让对象存储在其他表空间中,我们需要在创建对象时指定该对象的表空间。 SYSAUX表空间被称为系统辅助表空间,是10g版本开始推出的新功能,主要的目的是为SYSTEM表空间减负,Oracle对SYSTEM表空间的维护有一套独立的体系,对SYSTEM表空间操作会占用额外的CPU资源,而且效率低下,详见我之前发表的文章为什么不要把用户表存储到SYSTEM表空间。在10g版本,增加了SYSAUX辅助表空间,将EM、AWR等组件的表从SYSTEM表空间挪到了SYSAUX表空间中,这样大大减少了SYSTEM表空间的消耗,也减少了Oracle对SYSTEM表空间维护的成本。   但是有几个比较坑爹的组件需要的表并没有挪到SYSAUX表空间,比如常见的审计用到的AUD$表,很多DBA都可能遇到SYSTEM表空间使用率过高,查询发现是AUD$表很大导致的,我们的数据库正好打开了审计功能,正好可以拿来做实验。

mysql> SELECT table_name, table_type, engine FROM information_schema.tables WHERE table_schema = 'db5' ORDER BY table_name;

system用户具有DBA权限,但是没有SYSDBA权限。平常一般用该帐号管理数据库。登录em时只能使用normal登录。 推荐阅读: https://blog.csdn.net/weixin_40913898/article/details/120645705

推荐阅读:

相关推荐