对初学者和学习能力相对较差的人而言,深刻理解和熟练使用 Oracle 数据库是非常困难的一件事,因为 Oracle 从理论到实际都非常复杂。本人见过许多开发人员装 Oracle 装的垂头丧气,其中不乏已经工作了四五年的人,但从未见过工作了好多年还装不好 SQL Server 的情况。在我刚开始接触 Oracle 的时候,也曾被它的实例和表空间搞蒙蔽了好一阵子。
概念说明
本文将要讲述的概念不包括 Oracle 体系结构里的概念。首先 Oracle 体系结构里的 SGA、PGA 等概念本人也不太理解,其次普通开发人员完全没必要搞懂 Oracle 的体系结构。本文主要讲述表空间、SCHEMA、用户、权限,这四个开发人员最常用,也最容易蒙蔽的概念。
表空间
表空间是 Oracle 数据库的逻辑划分,据库表、索引等所有的数据库对象都存放在指定的表空间中,但主要存放的是表,所以称作表空间。在物理上表空间由 1 个或者多个数据文件组成,而数据库在逻辑上由 1 个或者多个表空间组成,一个表空间只能属于一个数据库。Oracle 数据库中至少存在一个表空间,即 SYSTEM 表空间。建立 SYSTEM 表空间的目的是尽量将目的相同的表存放在一起,以提高使用效率,只应存放数据字典。
表空间分为 3 类:

