数据库:
Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。
其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统,只有一个库。可以看作是Oracle就只有一个大数据库。
数据库实例:
一个Oracle实例由一系列的后台进程和内存结构组成。一个数据库可以有n个实例。
在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例,然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件。
其实就是用来访问和使用数据库的一块进程,它只存在于内存中。
数据库实例名(instance_name)用于对外部连接。在操作系统中要取得与数据库的联系,必须使用数据库实例名。比如我们作开发,要连接数据库,就得连接数据库实例名:
jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)
表空间:
表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。
表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。
一个表空间只能属于一个数据库。
例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表空间只能属于一个数据库。
用户:
用户是在数据库实例下建立的。不同实例可以建相同名字的用户。就是一个登陆的名,当然得有密码,它跟表空间是多对多的关系的,但我们在创建用户时一般都指定默认表空间的,
若不指定用户默认表空间的话,则用户每次创建数据库对象(表,视图等)的时候,都要指定表空间,太麻烦
数据文件(dbf、ora):
数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。
一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。
角色:每个用户都有角色,它决定了该用户有什么权限,比如DBA,拥有最高权限表:这个就不用说了吧,
但要说明的是一个表只能属于一个表空间。
注:
表的数据,是由用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。
由于oracle的数据库不是普通的概念,oracle是由用户和表空间对数据进行管理和存放的。
但是表不是由表空间去查询的,而是由用户去查的。如 select * from user.tableName。
因此,不同用户可以在同一个表空间建立相同名字的表!这里区分就是用户了!
表:
有了数据库,表空间和用户,就可以用自定义的用户在自己的表空间创建表了。有了表,我们可以开发了。
关系示意图:
Oracle数据库可以创建多个实例,每个实例可以创建多个表空间(表空间只属于一个数据库),每个数据库实例创建多个用户,用户可以指定默认表空间。数据库文件是在表空间下面的,用户可以创建多个表(每个表随机存储在一个或多个数据库文件中)
安装Oracle后会有默认的实例,即ORCL。一般不创建多个实例,在默认实例下创建表空间和用户等。