由于刚刚学习Oracle,我发现有些很奇怪的现象,想请教一下各位高手:
在Oracle中,每一个用户建立一个新的表(在同一个数据库),其他的用户是看不到的,而且即使同名也一样,例如:A用户在数据库C中建立了表B,而D用户也是在数据库C中建立了表B,这样是可以实现的,这个是为什么呢?
既然这样,那不是没有建立新的数据库这个必要了吗?都可以在一个数据库中实现这样的功能.

解决方案 »

  1.   

    oracle 数据库中对象名称的完整定义中包括方案名称: schema.object_name,不同用户的建立的对象分属不同的方案(方案名称就是用户名),所以不同用户下了同名数据库对象才不会冲突。(sql server 2005 也引入的 schema 的概念,原理是一样的,只不过 sql server 的 schema 和用户没有关联)。
      

  2.   

    不同用户的建立的对象属不同的用户,用schema.object区分,所以不同用户下了同名对象才不会冲突。 oracle的数据库的概念和sqlserver的不一样。
    oracle的instance(实例)类似域sql的数据库
      

  3.   

    3楼说的对。对oracle来说是方案来划分区域。
      

  4.   

    oracle中用户对应于方案
    不同用户建立的对象属于不同的方案
    不同用户只能看到他所对应的方案中的对象