请问ORACLE9i中的方案(Schema)和表空间(tablespace)以及数据库(database)之间的关系究竟是怎么回事啊?
谢谢!Best Regards!
Jack

解决方案 »

  1.   

    一个databases 包含 -->tablespaces
                       -->schemas表,索引等对象放在 tablespaces中,但是它们可以属于不同的schema(user)
      

  2.   

    那tablespace和schema有关系吗?是什么关系?
    当我创建一个用户后,怎样将方案中的表指定给该用户,还是将表空间中的表指定给用户啊?在9i以前的8.x系列的oracle产品中,似乎没有引入schema(方案)的概念,但9i引入方案的概念后,通过它的OEM似乎可以观察到,所有的表都只能在方案中看到,而且查询的时候也可以引用方案进行查询!如有以下结构:
    Databases
        |__ Ora9i -- SYSTEM
             |__ Schema
             |    |__ ...
             |    |__ HR
             |    |__ ...
             |
             |__ Storage
                  |__Tablespaces
                      |__ ...
    当我查询的时候使用一下sql语句:
    SELECT * FROM HR.EMPLOYEES;
    这里的HR就是在方案中啊,在TABLESPACES中并没有HR啊,我记得以前这样写的话,这里的HR往往是指Tablespace啊 。希望大家帮我解决这个疑惑!!!Jack
      

  3.   

    所有的数据库对象都是存放在表空间中,你上面所说的HR,你应该看看HR在创建的时候指定的表空间是什么,不一定非要显示为HR啊
      

  4.   

    方案和用户一般是一致的,建立一个用户后即可得到一个方案,如HR用户建立后便有HR方案,然后表等数据库对象,建立时指定他属于哪个方案,也要指定他存放在哪个表空间里。  也可以这样理解,方案是数据库对象的逻辑归属和分类,而表空间是数据库对象的物理和实际存放位置。
      

  5.   

    那为什么要使用schema来对数据库对象(table,index,view,...)进行逻辑归属和分类呢?这样做有什么好处啊?直接把这些数据库对象用tablespace来进行逻辑归属和分类不行吗?迷惑中!:((
      

  6.   

    somethings(询问一切)说得好,
    如是他从书上抄下来的现在的,建议他把那本书名提供给大家
    如是他自己写的,建议他去写书
      

  7.   

    hehe,来学习。还是没太看明白
    我自己建两个表,表名都是ABC,一个放在system方案里,一个放在QS里。然后在SQL*PLUS里打"select * from abc",结果是什么???
    表空间怎么放在了存储里,这样。看来我还是再看几天书再来问,现在一塌糊涂,可是书也没好书,看了更迷糊啊。