刚开始接触ORACLE,以前一直用MS SQL的,有个概念搞不明白,请教:
 
1.ORACLE数据库和关表空间的关系。看资料说:ORACLE一个数据库是由redo、control、data、temp文件构成的,
那我创建的表空间又有一个数据文件,那表空间数据文件跟数据库的data文件有联系和区别?
因为创建表时数据又是存放在表空间的数据文件里的,那表空间的数据文件跟数据库的DATA文件是不是存在某种从属关系的呢?MSSQL的话,创建数据库时,有一个数据库的文件,创建表时,存放在这个数据库文件中了。

解决方案 »

  1.   

    在oracle中,表空间是存储概念上的,建立表空间需要有对应的数据文件,数据文件建立好之后直接会把一定的磁盘空间分配给它,这样可以对数据库的存储空间进行有效的管理。然后在建表的时候指定对应的表空间,该表的数据就会都存在表空间对应的数据文件上,和Mysql那种每个表一个文件的方式比起来,存储的可控性更强。oracle和mysql不同,不存在mysql中那种数据库的概念,而是实例的概念,当然,也可以在实例里建立不同的user来区分,每个user对应的表都是相对独立的,比如两个user下可以分别建同名的表,但又可以通过授权来交互使用。
      

  2.   

    database= online redo log files+ control files+ data files
    每个表空间有1个或多个数据文件,这些数据文件也就是上面的data file,属于数据库的组成部分
      

  3.   

    表空间是oracle软件系统对物理数据库的相关数据的上的逻辑划分,一个数据库可以逻辑上划分多个表空间,每个数据库至少有一个表空间(称之为system表空间),
    每个表空间上由同一个磁盘上的一个或多个文件组成,这些文件就是数据文件,
      

  4.   

    一个表空间对应一个或多个磁盘上的数据文件,表空间是数据库逻辑概念,数据文件是你操作系统上的文件(它属于你oracle数据库的文件)