Oracle 概念与组成

本文最后更新于:2024年3月18日 凌晨

Oracle 概念与组成

img

数据库

  • Oracle数据库是数据的物理存储,这就包括(数据文件ORA或者DBF,控制文件,联机日志,参数文件)
  • 其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库,可以看作是Oracle就只有一个大数据库。

实例

  • 一个Oracle实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成,一个数据库可以有n个实例。

用户

  • 用户是在实例下建立的,不同实例可以建相同名字的用户。

表空间

  • 表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的。
  • 一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。
  • 一个数据库schema可以存在于多个表空间。
  • 一个表空间里面可以有多个schema 通过使用表空间。
  • 管理员可以控制磁盘的布局,表空间的最常用的作用是优化性能,例如:一个最常用的索引可以建立在非常快的硬盘上而不太常用的表可以建立在便宜的硬盘上,比如用来存储用于进行归档文件的表。

数据文件(dbf, ora)

  • 数据文件是数据库的物理存储单位,数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中,而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间,一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。
  • 注意:表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中,由于oracle的数据库不是普通的概念, oracle是有用户和表空间对数据进行管理和存放的,但是表不是有表空间去查询的,而是由用户去查的,因为不同用户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!

schema:

  • 一般而言,一个用户就对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema
  • 用户是不能创建schema的, schema在创建用户的时候创建,并可以指定用户的各种表空间(这点与PostgreSQL是不同, PostgreSQL是可以创建schema并指派给某个用户)
  • 当前连接到数据库上的用户创建的所有数据库对象默认都属于这个schema(即在不指明schema的情况下),比如若用户scott连接到数据库,然后create table test(id int not null)创建表,那么这个表被创建在了scott这个schema中,但若这样create kanon.table test(id int not null)的话,这个表被创建在了kanon这个schema中,当然前提是权限允许。
  • 注意:schema并不是在创建user时就创建的,而是在该用户创建了第一个对象之后才将schema真正创建的,只有user下存在对象,他对应的schema才会存在,如果user下不存在任何对象了, schema也就不存在了。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!