数据库表空间和schema的理解

面向的问题:

为何表不属于表空间,而属于用户名?

       现有oracle的一个实例:springs,表空间:axis,某一用户名:sfivy.
       现用sfivy登录,新建表:customers,创建完成后,却发现customers表属于sfivy,而不是属于axis.
       即在查询时,写sql语句时,
       select * from sfivy.customers --- 正确;
       select * from axis.customers --- 错误。
       逻辑上的归属关系不是实例-->;表空间-->;表吗?

解决的方案:

多个用户都可以在同一个表空间里面建表。而且表名字可以一样,这时候,如果按照

表空间.表名字  你让oracle给你访问哪一个表?

实际上,oracle就是遵循SQL92。不同的用户可以有相同名字的对象。

这样的要求,必然是按照 用户名.objectname来访问。

schema

方案(Schema)为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。 一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema。这也就是我们在企业管理器的方案下看到schema名都为数据库用户名的原因。

 

实际上,你可以把tablespace是对具体存储的一个抽象而已。它仅仅是用来存储对象而已。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值