oracle体系结构
oracle数据库通常采用的是三级模式、二级映像结构。即外模式、模式、内模式;外模式/模式映像,模式/内模式映像。
模式schema也称为逻辑模式,是数据库中全体数据的逻辑结构和特征描述,是所有应用程序的公共数据结构。模式的特点:
a、)一个数据库有且只有一个模式,它统一的、综合地考虑所有用户的需求,并将这些有机的组成一个逻辑整体。
b、)模式是逻辑的,它与具体的应用程序无关或不属于某个应用程序。它描述的是一个数据库的总体结构,是装配数据的一框架。
c、)模式是以某种数据模型为基础的。定义模式时不仅要定义数据的逻辑结构,而且还要定义这些数据项之间的联系,定义与数据项有关的安全性、完整性等。
d、)模式设计是数据库设计的重要任务。
外模式 external schema 也称为用户模式,是数据库用户(应用程序、终端用户)能够看见何使用的局部数据的逻辑结构和特征描述,是用户所用的数据库结构。它的特点:
a、)一个数据库具有多个外模式,分别对应于每个用户。
b、)外模式是保证数据库完全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,而看不见其他数据。
c、)可以通过授权的方式,使一个用户可以使用另一个用户的外模式。
内模式 internal schema 也称为存储模式,是对数据的物理结构和存储方式的描述,是数据在数据库内部的表示方式,是整个数据库底层结构的表示,是数据库在物理存储方面的描述。其特点:
a、)一个数据库有且只有一个内模式。
b、)一个数据库由多个文件组成。
c、)内模式对用户是透明的。
d、)内模式不同于物理层。它只是一个描述(数据是否压缩、加密;存储方式是按顺序、B树结构、Hash方法;按照什么样的方式组织索引;记录的结构有何规则等)。
在ORACLE数据库中,模式对应整个数据库中的表、索引、序列;外模式对应某个用户的表、索引、序列、视图、同义词,也称为“方案对象”;内模式对应存储结构,比如逻辑存储结构(表空间、区、段、块等)、物理存储结构(数据文件、控制文件、重做日志文件、初始化参数文件、配置文件等)。
二级映像
二级映像保证了数据库的数据独立性。
外模式/模式映像:指由模式生成外模式的规则,定义了各个外模式和模式之间的对应关系。其特点:
a、)一个数据库可以有多个外模式/模式映像。对应于一个模式可以有多个外模式,所以每个外模式都有一个外模式/模式映像。
b、)给数据库提供了逻辑独立性。逻辑独立性是指应用程序和数据的逻辑结构之间是相互独立的,即当模式放生变化(表增删字段或增加新表)时,只要数据库管理员对相应的外模式/模式映像做相应的修改,就可以使外模式保持不变。
模式/内模式映像:指模式在物理设备中的存储结构,定义了模式和内模式之间的对应关系。其特点:
a、)一个数据库只有一个模式/内模式映像。因为数据库只有一个模式和内模式。
b、)给数据库提供了物理独立性。指应用程序和存储在磁盘上的数据库中的数据是相互独立的。即,数据在磁盘上的数据库中如何存储完全由DBMS来管理,应用程序不需要了解,只需要了解数据的逻辑结构就可以了。
oracle数据库的存储结构分为 逻辑存储结构和物理存储结构,他们是相互独立又相互联系的。
逻辑存储结构主要描述ORACLE数据库的内部存储结构,即描述的是在oracle数据库中如何组织、管理数据,逻辑存储结构和平台是无关,是由oracle数据库定义、创建和管理。
物理存储结构主要描述ORACLE数据库的外部存储结构,即描述的是在操作系统中如何组织、管理数据。物理存储结构和平台是有关的。
从物理上看,数据库是由控制文件、数据文件、重做日志文件、初始化参数文件等操作系统文件组成。从逻辑上看是由 表空间(系统表空间和用户表空间)组成。表空间是最大的逻辑单位,接下来是,段、区、块。表空间可以理解为存储数据用的数据文件的一个分类。块是最小的逻辑单位,是数据管理的单位,即数据管理中输入输出的最小单位。逻辑存储结构中的块对应于操作系统中的块。
多个块组成区;多个区组成段;多个段组成表空间;多个表空间组成逻辑数据库。
一个区只能在一个数据文件中,一个段中的各个区可以分别在多个数据文件中。组成区的块是连续的。
表空间 tablespace 一个表空间可以包含多个数据文件,但以个数据文件只能属于一个表空间。任何方案对象被逻辑地存储在表空间中,同时又被物理地存储中数据文件中。方案对象的定义被存储中不同于存储其他数据的表空间system中。一个用户的不同方案对象的数据可以被存储在不同的表空间中。数据库、数据文件、表空间、方案对象的关系是:数据库包含表空间,表空间又包含数据文件,数据文件又包含方案对象,方案对象又可以同时属于不同的数据文件中。
名称 |
分类 |
说明 |
EXAMPLE |
非系统表空间 |
实例表空间,存放案例数据库的方案对象信息及其培训资料 |
SYSAUS |
系统表空间 |
辅助系统表空间,用于减少系统表空间负荷,提高系统的作业效率 |
SYSTEM |
系统表空间 |
存放关于表空间的名称、控制文件、数据文件等管理信息,它属于SYS、SYSTEM方案,仅能被SYS,SYSTEM或其他具有足够权限的用户使用。不能删除或重命名SYSTEM表空间 |
TEMP |
非系统表空间 |
临时表空间,存放临时表和临时数据,用于排序。 |
UNDOTBS1 |
非系统表空间 |
重做表空间,存放数据库的有关重做信息和数据 |
USERS |
非系统表空间 |
用户表空间,存放永久性用户对象和私有信息,因此也被称为数据表空间。一般系统用户使用SYSTEM表空间,非系统用户使用USERS表空间 |
段:用于存储表空间中某一种特定的、具有独立存储结构的数据库对象的数据,它由一个或多个联系的区组成。当创建表、索引、簇等对象时,oracle就会为这些对象分配存储空间(段)。段分为:表段、表分区段、索引段、索引分区段、临时段、回退段、撤销段、二进制大对象段(如果数据长度少于4000字节,则与其他列数据会一起存放在表段中;否则数据就会被存放到二进制大对象段中)。
段类型
段类型 |
名称 |
Index partition |
索引分区段 |
Table partition |
表分区段 |
Table |
表段 |
Cluster |
簇段 |
Index |
索引段 |
Rollback |
回退段 |
Deferred rollback |
延迟回退段 |
Undo |
撤销段(还原段) |
Temporary |
临时段 |
Cache |
高速缓存段 |
Lob |
二进制大对象段 |
Lobindex |
二进制大对象索引段 |
进程结构
进程包括:用户进程、oracle进程。oracle进程有包括:服务器进程、后台进程。服务器进程又分为:专用服务器进程和共享服务器进程。
服务器进程为客户端的用户进程提供服务。用户进程必须通过服务器进程才能访问数据库。服务器进程的任务是:
a、)解析并执行用户提交的SQL语句;
b、)搜索SGA区的数据库缓存,决定是否读取数据文件。如果数据块不在SGA区的数据库缓存中,则将其从数据文件中读入;
c、)将查询或执行后的结果或错误信息返回给用户。
后台进程:ORACLE将管理和操作复杂数据块的任务划分,分别由几个相互独立的、各就其职的后台进程来分工合作,共同完成任务。后台进程的任务:
a、)在内存和外存之间进行I/O操作;
b、)监视各个进程的状态;
c、)协调各个进程的任务;
d、)维护系统的性能;
e、)保证系统的可靠性;
主要的后台进程:
进程名 |
简写 |
是否可选 |
System monitor |
SMON |
|
Process monitor |
PMON |
|
Database writer数据库写进程 |
DBWn |
|
Log writer 日志写进程 |
LGWR |
|
Checkpoint 检查点进程 |
CKPT` |
|
Archice 归档进程 |
ARCn |
可选 |
Recoverer 恢复进程 |
RECO |
可选 |
Lock 锁进程 |
LCKn |
可选 |
Recovery writer 闪回恢复写进程 |
RVWR |
可选 |
Change tracking writer 闪回变化跟踪写进程 |
CTWR |
可选 |
Job queue monitor 作业队列监视进程 |
CJOn |
可选 |
Job queue 作业队列进程 |
Jnnn |
可选 |
Dispatcher 调度进程 |
Dnnn |
可选 |
Shared server 共享服务器进程 |
Snnn |
可选 |
简写的进程名中的n表示根据任务的多少,该进程可以有多个正在运行。Oracle最多可以启动10个归档进程(ARC0,ARC1,ARC2…ARC9)。Orace最多可以有10个锁进程(LCK0,LCK1…LCK9)