Oracle简介
DBMS组成
• • • • 数据库描述语言 数据库操纵/查询 数据库翻译程序 数据库管理程序
DBMS的功能
• • • • • 存储、检索、修改数据 保证数据的一致性 解决并发问题 支持对数据库操作的各种接口(高级语言) 进行数据管理
数据库的发展过程
• 层次型 • 网状型 • 关系型
基于关系代数模型 数据以表的形式组织存放 自动建立约束关系,保持数据完整性 流行的关系数据库: Oracle,SQL Server , Sybase,Informix
SGA包括共享池、数据缓冲区、重做日志缓冲区等
Oracle数据库体系结构
• 进程结构——Oracle启动后的操作系统进程
ARCH PMON SMON CKPT RECO
SGA
Shared Pool
Database Buffer Cache Redo Log Buffer
USER Dnnn LISTENER DBWR LGWR
Oracle数据库体系结构
• 内存结构
数据库中使用内存的最大部分是系统全局区SGA,同时也 是影响数据库性能最大的一个参数。除此之外,还有程序 全局区(PGA)、排序区(SORT AREA)、JAVA池等
SGA
Shared Pool Database Buffer Cache Redo Log Buffer
• 对象-关系型数据库
什么是Oracle?
• Oracle 公司成立于 1977 年,是全球最大 的信息管理软件及服务供应商,也是全球 第二大独立软件公司,世界上第一家推出 商品化关系型数据库管理系统的公司 • Oracle 是该公司推出的商用关系数据库产 品,包括DBMS和一些相关的管理开发工具
Data Files Control Files
Redo Log Files Parameter File Server Parameter File
物理结构
• 数据文件 :用来存储数据库中的全部数据,如数据库表中的 数据和索引数据,通常为后缀名为.dbf格式的文件。 • 日志文件 :名字通常为Log*.dbf,它是除与表空间联系紧密 的数据文件以外的重要的操作系统文件。重做日志(Redo Log Log)也称为事务日志(Transaction Log),其记录着针对 Transaction Log 数据库进行的修改操作或事务。 • 控制文件 :用于描述数据库结构的二进制文件,存储如数 据库名、数据库的数据文件和日志文件的名字及位置等信 息,其名字通常为Ctr*.ctl。 • 参数文件 :9i前为一个文本文件,用于记录Oracle数据库运 行时的一些重要参数,如数据块大小、内存结构的配置等。 9i后可用两个参数文件,另增一个二进制文件。
Oracle实例进程结构
• 后台进程
– 为了使系统性能最好和协调多个用户,在多进 程实例系统中使用一些附加进程 – 随数据库实例启动时启动,一直维持到数据库 运行结束
• • • • 数据写入进程(DBWR)、日志写入进程(LGWR) 归档进程(ARCH)、恢复进程(RECO) 检查点进程(CKPT)、封锁进程(LCKn) 系统监控(SMON)、进程监控(PMON)…等
Oracle数据库体系结构
SGA(System Global Area)
Shared Pool Shared Pool Database Database Buffer Cache Buffer Cache
Redo Log Redo Log Buffer Buffer
DBWR DBWR Servers Servers
Oracle实例进程结构
• Oracle实例进程结构:
用户进程 多进程 Oracle实例进程 单进程 服务器进程 后台进程
Oracle实例进程结构
• 单进程结构
•所有的Oracle代 码由一个进程执行 •单进程实例只允 许单个用户使用
ORACLE RDBMS SERVER
Shared Pool
SGA
Oracle 数据库系统简介
叶自然 2006.10.26
数据库概述
• 数据库
是按照一定的数据模型组织存储在一起的,能为 多个应用程序共享的、与应用程序相对独立及相 互关联的数据集合
• DBMS
为保证数据库中数据的安全性和一致性,必须有 一组软件来完成相应的控制和管理任务,这样的 软件被称为DBMS
应用系统开发工具 网络接口
ORACLE RDBMS
CASE*系列
开发工具 高级语言接口
DBA管理工具 ADIMINISTRATION TOOLS EXP/IMP SQLLOAD
Oracle数据库产品
• SQL*PLUS 一个扩展的数据查询语言,用于最底层的数据操作。 • PL/SQL 一种过程化的数据查询语言。 • Oracle Developer 应用系统开发工具,用于前端开发,如报表等。 • Oracle Enterprise Manager DBA管理工具 • Oracle Designer 建模工具 • Oracle Net Service (先前版本为SQL*Net,Net8) 网络接口
为什么要使用Oracle?
• 支持大数据库、多用户的高性能的事务处 理。 • Oracle遵守数据存取语言、操作系统、用户 接口和网络通信协议的工业标准。 • 实施安全性控制和完整性控制。 • 支持分布式数据库和分布处理。 • 具有可移植性、可兼容性和可连接性。
Oracle数据库产品组成
应用系统开发工具 Oracle*系列 开发工具
总结
谢
谢
Database Buffer Cache
•主要用于单任务 的机器。
应用软件
Oracle实例进程结构
• 多进程结构
•多个进程执行 ARCH PMON SMON Oracle代码的不 同部分 •多进程允许多个 用户同时使用 CKPT RECO
SGA
Shared Pool
Database Buffer Cache Redo Log Buffer
Oracle实例(INSTANCE)
• 数据库启动时,首先启动实例,系统自动 将分配系统全局区SGA,并启动Oracle的 多个后台进程 • 内存区域和后台进程合称一个Oracle实例, 一个数据库可对应多个实例
– SGA是由Oracle为一个实例分配的一组共享内 存区域 – 后台进程异步地为所有的数据库用户执行不同 的任务 – 参数文件决定了实例的特征及大小
Oracle数据库体系结构
• 逻辑结构
Oracle数据库的逻辑结构描述了数据库从逻辑上如何存储 数据库中的数据。
数据库 表空间
Part of
Part of Data Index
段
Rollback
Temp
数据块
Free
区
Used
逻辑结构
• 表空间 表空间(Table Space):Oracle逻辑存储结构的最高层, : 一个数据库就是个若干个表空间组成的。每个表空间对应 操作系统中的一个或多个数据文件,但每个数据文件只能 属于一个表空间。包括系统、回滚和临时三种表空间。 • 段(Segment):一个表空间包含多个段,包括一个表空间 : 内特定逻辑结构的所有数据。段有多种类型,对应不同类 型的数据库对象,常见段类型有数据段、索引段、临时段 和回滚段。 • 区(Extent):是由很多连续的数据块组成的数据库存储空 : 间。Oracle为每个表分配了一个以上的区以形成那个表的 数据段,并为每个索引分配一个以上的区形成它的索引段。 • 数据块 数据块(Database Block):也称为逻辑块或Oracle块,对 : 应磁盘上的一个或多个物理块。其大小由初始化参数 db_block_size决定,典型块的大小是2KB。
LGWR LGWR ARCH ARCH
Redo Log Files
Users Users
Data Files
Control Files Spfile
Oracle数据库体系结构
• 物理结构
数据库物理结构是由构成概念数据库的操作系统文件所决 定的,这些文件是活动的、可扩充的,它会随着数据量的 增加和应用程序的增大而变化。
•通常使用的 Oracle都是多进 USER Dnnn LISTENER DBWR LGWR 程实例结构
Oracle实例进程结构
• 用户进程 • 服务器进程
Oracle实例进程结构
• 用户进程(User Process)在用户运行应 用程序时自动产生。 • 系统创建服务器进程(Server Process)处 理用户进程的请求。 • Server进程和User进程通信并为所连接的 User进程请求服务。 • Server进程对于用户发出的SQL语句进行语 法分析、编译、执行用户的SQL语句。
Oracle数据库的发展
• 1979 第一个以SQL语言为基础的关系数据库系统; • 1986 Oracle5,具分布式数据库处理能力,支持C/S结构; • 1988 Oracle6,支持过程化PL/SQL,带事务处理(TPO)选 件,使用SQL*Net进行通讯; • 1992 Oracle7,带过程数据库选项(procedural database option)和并行服务器选项(parallel server option),释 放了关系型数据库的潜力; • 1997 Oracle8,对象关系数据库系统,支持面向对象技术; • 1998 Oracle8i,网络计算数据库,全面支持Internet技 术,内核用Java改写; • 2000 Oracle9i,继承和改进了Oralce8i的特点; • 2004 Oracle10g,第一个支持网格计算的关系数据库。