我以前做接触了不少的mysql和mssql,现在刚刚开始接触oracle。在网上也看了很多的资料,但是还是有些东西不明白。
1.网上说如果以前做sql数据库的,在刚学oracle的时候会有很多的误区,比如sql数据库和oracle的数据库不是一回事,简单的说oracle的一个用户就相当于sql中的一个数据库了,不知道是不是这样呢?
2.还有,我平时用mysql的时候用命令建数据库:create datedate test; 那么oracle怎么建数据库呢?
3. 以前想登陆到test数据库的时候只要输入用户名密码就可以了(只要有test的权限),那么登陆oracle的时候也是这样么?还是得先用sys登陆,然后再用其他的用户连接呢?语法是什么啊?
4.哪位可以帮我用mysql或者mssql的理解来解释一下Oracle么?比如,oracle的的表空间相当于mysql里的什么。
谢谢……

解决方案 »

  1.   

    1 是的,当时就是,这样!2 oracle也有create datedate命令,手工建库。但该语句那是相当的,浩瀚。DBCA建库,方便快捷。3 可以直接用目标用户连接。sqlplus username/passwd@tnsname
      

  2.   

    建议忘掉MS SQL,然后先看一遍ORACLE的帮助文档中的 concept
      

  3.   

    oracle的表空间是一个逻辑概念,一个表空间可以包含多个物理文件,这些文件也称数据文件,相当sql中数据库文件;也就是说,表空间是oracle为了便于管理增加的一个逻辑概念。
      

  4.   


    1.是
    2.使用DBCA建库
    3.sys是管理员,语法用秀才兄的就行,登录后不需要在换用户。
    4.表空间不是一两句话说的清的,给贴点资料,自己啃下。SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计。Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的。
      典型应用一:控制用户所占用的表空间配额。  在一些大型的数据库应用中,我们需要控制某个用户或者某一组用户其所占用的磁盘空间。这就好像在文件服务器中,需要为每个用户设置磁盘配额一样,以防止硬盘空间耗竭。所以,在数据库中,我们也需要限制用户所可以使用的磁盘空间大小。为了达到这个目的,我们就可以通过表空间来实现。
      我们可以在Oracle数据库中,建立不同的表空间,为其设置最大的存储容量,然后把用户归属于这个表空间。如此的话,这个用户的存储容量,就受到这个表空间大小的限制。
      典型应用二:控制数据库所占用的磁盘空间。  有时候,在Oracle数据库服务器中,可能运行的不止一个服务。除了数据库服务器外,可能还有邮件服务器等应用系统服务器。为此,就需要先对Oracle数据库的磁盘空间作个规划,否则,当多个应用程序服务所占用的磁盘空间都无限增加时,最后可能导致各个服务都因为硬盘空间的耗竭而停止。所以,在同一台服务器上使用多个应用程序服务,我们往往需要先给他们进行磁盘空间的规划和分配。各个服务都不能够超过我们分配给他的最大限额,或者超过后及时的提醒我们。只有这样,才能够避免因为磁盘空间的耗竭而导致各种应用服务的崩溃。
      典型应用三:灵活放置表空间,提高数据库的输入输出性能。  数据库管理员还可以将不同类型的数据放置到不同的表空间中,这样可以明显提高数据库输入输出性能,有利于数据的备份与恢复等管理工作。因为我们数据库管理员在备份或者恢复数据的时候,可以按表空间来备份数据。如在设计一个大型的分销系统后台数据库的时候,我们可以按省份建立表空间。与浙江省相关的数据文件放置在浙江省的表空间中,北京发生业务记录,则记录在北京这个表空间中。如此,当浙江省的业务数据出现错误的时候,则直接还原浙江省的表空间即可。很明显,这样设计,当某个表空间中的数据出现错误需要恢复的时候,可以避免对其他表空间的影响。
      另外,还可以对表空间进行独立备份。当数据库容量比较大的时候,若一下子对整个数据库进行备份,显然会占用比较多的时间。虽然说Oracle数据库支持热备份,但是在备份期间,会占用比较多的系统资源,从而造成数据库性能的下降。为此,当数据库容量比较大的时候,我们就需要进行设置多个表空间,然后规划各个表空间的备份时间,从而可以提高整个数据库的备份效率,降低备份对于数据库正常运行的影响。
      典型应用四:大表的排序操作。  我们都知道,当表中的记录比较多的时候,对他们进行查询,速度会比较慢。第一次查询成功后,若再对其进行第二次重新排序,仍然需要这么多的时间。为此,我们在数据库设计的时候,针对这种容量比较大的表对象,往往把它放在一个独立的表空间,以提高数据库的性能。
      典型应用五:日志文件与数据文件分开放,提高数据库安全性。  默认情况下,日志文件与数据文件存放在同一表空间。但是,这对于数据库安全方面来说,不是很好。所以,我们在数据库设计的过程中,往往喜欢把日志文件,特别是重做日志文件,放在一个独立的表空间中,然后把它存放在另外一块硬盘上。如此的话,当存放数据文件的硬盘出现故障时,能够马上通过存放在另一个表空间的重做日志文件,对数据库进行修复,以减少企业因为数据丢失所带来的损失。常用原则
    1、一般较大的表或索引单独分配一个tablespace。 
    2、Read only对象或Read mostly对象分成一组,存在对应的tablespace中。 
    3、若tablespace中的对象皆是read only对象,可将tablespace设置成read only模式,在备份时,read only tablespace只需备份一次。 
    4、高频率insert的对象分成一组,存在对应的tablespace中。 
    5、增、删、改的对象分成一组,存在对应的tablespace中。 
    6、表和索引分别存于不同的tablespace。 
    7、存于同一个 tablespace中的表(或索引)的extent 大小最好成倍数关系,有利于空间的重利用和减少碎片。 根据以上原则,数据库表空间设计如下:原则上每个schema对应一个表空间和一个相应索引表空间;每个schema下的大表对应一个单独的表空间和索引表空间;对于需要分区的特大表,则每个子分区对应一个单独的表空间和索引空间。
      

  5.   

    那请问,如果我想要做一个测试程序。我以前做的时候是在sql里面再建个库,如:TEST数据库然后在它里面建表和添加数据。那么如果是oracle的话,我需要建数据库还是建个用户就行了呢?还需要建表空间么?(oracle我已经安装了)
      

  6.   


    你首先需要建一个表空间,然后建一个用户,将这个用户指定到这个表空间,然后用这个用户登录到ORACLE,建表(默认是建在这个用户所在的表空间下),然后添加数据就可以了。