美文网首页我爱编程
oracle:tablespace schema block e

oracle:tablespace schema block e

作者: 359c7a79d70f | 来源:发表于2016-07-10 22:35 被阅读37次

    oracle中存储的层次结构总结如下:

    1. 数据库由一个或多个表空间组成
    1. 表空间由一个或多个数据文件组成,一个表空间包含多个段

    2. 段由一个或多个区组成

    3. 区是数据文件中一个连续的分配空间,由一个或多个块组成

    4. 块是数据库中最小、最基本的单位,是数据库使用的最小的I/O单元

    5. 每个用户都有一个对应的方案(user:schema = 1:1; schema:tablespace=n:1)

    6. service name 服务名(其实就是:数据库名),装 ORACLE 时肯定要指定的一个名字

    7. tablespace 表空间,数据库对象的磁盘存储位置

    8. schema 方案,数据库对象的逻辑分类

    9. user 用户,等同于 schema

    10. service name > tablespace > schema(user)

    是数据存储的物理单位,也是数据文件中最基础的单位,数据直接存储在块上。是oracle空间分配的最小单位。oracle中的块大小常见的有三种,2KB、4KB、8KB。块的大小在数据库创建时就已经固定下来,数据库中每个块的大小都是相同的,而且所有的块都有相同的格式,由“块头+表目录+行目录+空闲空间+数据空间”组成。块头包含着块类型(比如是表块、还是索引块)的信息、磁盘上块的位置等信息。表目录(table directory),如果有的话,包含着此块中存储各行的表的信息(如果一个块中存有多个表中的数据)。行目录(row directory)包含着数据行的描述信息,它是一个指针数组,指示了每一行在数据块中的物理位置。块头、表目录、行目录统称为块开销(block overhead),是oracle原来统计、管理块本身的。剩下的两部分很简单,已经存有数据的就是数据空间,暂时没存的就是空闲空间。
    又叫盘区,是数据文件中一个连续的分配空间
    ,它比块要大,由块组成。有些对象分配空间时可能至少需要两个盘区,比如回滚段,而这两个盘区不一定要求相连。区的大小从一个块到2GB不等
    是oracle数据库中的分配单位,对象如表、索引等都是以段为单位进行分配。当创建一个表时将创建一个表段,创建一个索引时就创建一个索引段。每一个消耗存储空间的对象最终被存储到一个单一的段中。有回滚段、临时段、聚簇段、索引段等。表空间
    是一个逻辑容器.它和数据文件关联起来,一个表空间至少有一个数据文件与之关联。一个表空间可以有多个段,一个段只能属于一个表空间。方案(schema) 又叫模式,是比表空间小一级的逻辑概念,它也是一个逻辑容器。多个用户可能共用一个表空间,那如何区分开每一个用户?那么在表空间中对每个用户都有一个对应的方案,用于保存单个用户的信息。
    一个用户(
    user
    )一般对应一个** schema**,该用户的 schema 名等于用户名,并作为该用户缺省的 schema。这也就是我们在企业管理器的 schema 下看到 schema 名都为数据库用户名的原因。Oracle 数据库中不能新创建一个 schema,要想创建一个 schema,只能通过创建一个 user 的方法解决(Oracle 中虽然有 create schema 语句,但是它并不是用来创建一个 schema 的),在创建一个 user 的同时为这个 user 创建一个与用户名同名的 schem 并作为该用户的缺省 shcema。即 schema 的个数同 user 的个数相同,而且 schema 名字同 user 名字一一对应并且相同,所有我们可以称 schema 为 user 的别名,虽然这样说并不准确,但是更容易理解一些。

    **schema **和 user 一般是一致的,建立一个 user 后即可得到一个 schema,如:HR 用户建立后便有 HR 方案,接下来建立表、索引等数据库对象时,要指定其属于哪个 schema,也要指定其存放在哪个 tablespace 里。也可以这样理解,schema 是数据库对象的逻辑归属和分类,而 tablespace 是数据库对象的物理和实际存放位置。Schema 就是用户所属对象的一个集合,对象包括表,索引,视图,JAVA,PL/SQL块等。Schema 的名字与用户名一样,当创建一个用户时,这个用户所对应的shema也同时创建,用户名与schema交互使用。Schema 与tablespace之间没有什么联系,同一个schema的对象可以存储在不同的表空间中,同一个表空间中可以存储不同schema的对象。不要在SYS和SYSTEM SCHEMA下创建其它数据对象。

    相关文章

      网友评论

        本文标题:oracle:tablespace schema block e

        本文链接:https://www.haomeiwen.com/subject/wlwdjttx.html