Oracle是一种关系数据库管理系统(RDBMS)。关系数据库是按照二维表结构方式组织的数据集合,每个表体现了集合理论中定义的数学概念 ── 关系。
数据库(Database)是一个数据容器,它包含了表、索引、视图、过程、函数、包等对象,并对其进行统一的管理。
一、数据库的内部结构:
1.表空间(TABLESPACE)
作用:
1、合理利用资源
2、提高系统的效率和性能
system 表空间:存放oralce内部结构和数据字典
sysaux 表空间:存放新增的表空间
undo 表空间:存放撤销信息
users 表空间: 存放用户信息的(数据库管理员的信息)
temp 表空间: 提供用户临时使用
2. 表(TABLE)
列 字段(列名 长度 类型)
行 记录
3. 约束条件(CONSTRAINT)
1、主键约束(primayr key):最多只有一个,唯一的
2、缺省( default ): 默认值
3、检查(check):保证列的值符合一定条件
4、唯一性(unique):保证列的值唯一
5、外键(foreign key):参照 delete cascade
4.分区(PARTITION)
分成小表,叫分区
5.索引(INDEX)
帮助快速查找,保证列值得唯一性
6. 用户(USER)
只得是用户拥有的数据库对象
7.方案(SCHEMA)
用户的方案,可以操纵哪些表
8.同义词
别名
9.权限及角色(ROLE)
赋予某个角色一些增删改查的权限
10.段(SEGMENT)、盘区(EXTENT)和数据块(DATA BLOCK)
段 就是数据库对象,它消耗存储空间,如表、索引、回滚段等。当创建表的时候,将创建一个表段,当创建一个分区表时,即在每个分区上创建一个段,当创建索引 时,将创建一个索引段,每一个消耗存储空间的对象最终被存储在一个单一的段中,有回滚段,临时段,聚簇段、索引段等。一个段可以拥有来自许多不通数据文件 中的盘区
盘区由块组成,一个块是在Oracle中空间分配的最小单元,是Oracle读写磁盘的对象,Oracle中的块通常有3个常见的大小 ,2K ,4K,8K。
一个段是由一个或多个盘区所组成,一个盘区是由一些连续分配的块。
数据块(Oracle Data Blocks),本文简称为“块”,是Oracle最小的存储单位,Oracle数据存放在“块”中。一个块占用一定的磁盘空间。特别注意的是,这里的“块”是Oracle的“数据块”,不是操作系统的“块”。Oracle请求的数据量不到一块,Oracle也会读取整个块。所以说,“块”是Oracle读写数据的最小单位或者最基本的单位
二、数据库外部结构
1、数据文件(DATAFILE):
在创建一个新的表空间的时候,在内存里给它分配一个文件夹
如:datafile 'd:/hello1.dbf'
2、重做日志文件(REDO LOG FILES)
当数据被破坏时,用于恢复
3、控制文件(CONTROL FILES)
用于记录数据库的外部结构
1、数据库的名称和构建时间
2、数据库文件与重置日志和名称的所在位置
3、日志记录的序列码
4. 表
用来存储和操作数据的结构,由行和列组成
5.表结构 :
表结构:由固定的列组成
记录:行数据组成
字段:由数据项构成
关键字:区分行记录
它们之间的关系 :
1、一对一
2、一对多
3、多对多
6. 实例
数据库实例是用于和操作系统进行联系的标识,也就是说数据库和操作系统之间的交互使用的是数据库实例。
7.系统全局区
当激活Oracle 12C数据库时,系统会先在内存内规划一个固定区域,用来存储每位使用者所需存取的数据以及Oracle 12C运作时必备的系统信息。
这个区域称为系统全局区(System Global Area),俗称SGA 。(一组共享的内存结构,存储里实例的数据和控制的文件信息)
(1)数据块缓存区。 用来存储读取数据块副本
(2)字典缓存区。存储用户账号、数据文件名、盘区位置、表说明、权限等
(3)重做日志缓冲区:用于恢复
(4)SQL共享池:用于存储字典以及库缓存
程序全局区(PGA)
内存区,包含每个服务器的数据和控制信息
8.后台进程
数据库的物理结构和存储结构之间的关系是由后台进程来维持。
主要的背景处理程序下。
(1)DBWR(数据库写入程序):
(2)LGWR(日志写入程序):
(3)SMON(系统监控程序):
(4)PMON(进程监控程序):
(5)CKPT(检查点进程):
(6)RECO(恢复进程):
(7)ARCH(归档进程):