Copyright5itjob-Alan,2006.7Allrightsreserved.OracleRDBMSOracle入门1-2Copyright5itjob-Alan,2006.7.Allrightsreserved.目标学习完本课之后,你将掌握以下内容:•了解什么是RDBMS和ORDBMS•Oracle体系结构•Oracle服务器的启动和关闭,以及相关工具的使用1-3Copyright5itjob-Alan,2006.7.Allrightsreserved.ORDBMSRDBMS概述:•RationalDatabaseManagementSystem•DBMS就是对存储在计算机文件系统中的文件进行管理的软件,如Oracle、SQLServer、DB2、FoxBASE、Sybase等•如果把数据库比喻成由档案柜里的一组文件组成,那么就可以把DBMS比喻成柜中的字母索引卡片1-4Copyright5itjob-Alan,2006.7.Allrightsreserved.ORDBMSRDBMS概述(续):•RDBMS是基于现实世界对象所抽象出来的DBMS•它将信息数据模拟成现实中的对象来管理,并确定对象之间的关系及对象的属性•是以表的结构来存储信息,每个表对应一个信息实体(对象)•表又是由多行和多列组成,行即代表每个对象的数据,列代表对象的属性1-5Copyright5itjob-Alan,2006.7.Allrightsreserved.ORDBMSRDBMS设计:•概念模型–将用户的想法进行认识和抽象–以E-R图的形式来描述–实体----现实世界的对象或事物,如员工、部门–属性----描述对象的特征,如员工的编号、姓名、所在部门、薪水等属性–关系----实体之间的联系,比如部门可以拥有多名员工(1:n)1-6Copyright5itjob-Alan,2006.7.Allrightsreserved.ORDBMS实体:用带名称的长方框表示属性:用椭圆来表示,并有名字标识关系:用一个带有关系类型名的菱形表示注意:它们之间用实直线连接INSTRUCTORSTUDENTTEACH1-7Copyright5itjob-Alan,2006.7.Allrightsreserved.ORDBMSRDBMS设计(续):•数据模型–实体、属性、关系在数据库中的具体存在–实体映射为数据库中的表(Table)–属性映射为数据库中表的列(Column)–关系映射为表的主、外键–表中的每一行称为记录,每一列称为字段1-8Copyright5itjob-Alan,2006.7.Allrightsreserved.ORDBMSDB用户类型:•应用程序开发员–应用程序开发员主要在开发周期内完成数据库结构设计,应用程序开发等任务。•应用程序管理员–保证使用周期中对应用程序在功能及性能方面的维护,修改工作。1-9Copyright5itjob-Alan,2006.7.Allrightsreserved.ORDBMSDB用户类型:•数据库管理员–数据库管理员(DBA),其职能是对数据库进行日常的管理。•数据库用户–数据库用户是应用程序的使用者,通过应用程序与数据库进行交互。1-10Copyright5itjob-Alan,2006.7.Allrightsreserved.ORDBMSORDBMS:•ObjectDBMS–面向对象的关系型数据库系统,支持对象类型的存储,比如java对象的存储,blob、clob–可以有效的管理和存储多媒体、XML等数据–具备了RDBMS的所有特征•Oracle是全球第一个ORDBMS1-11Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构OracleServer:•由例程(instance)和数据库(database)两部分组成–例程:一组内存结构(SGA)和后台进程的集合–数据库:一组OS文件的集合•集成了JVM、Apacheserver、XML等1-12Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构例程(instance):•SGA(SystemGlobalArea)–所有用户进程共享的一块内存区域–主要包括共享池、数据高速缓存、重做日志缓冲区PMONLCKnRECORECOsharedPoolDatabaseBufferCacheRedoLogBufferSGA1-13Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构例程(instance)(续):•SGA(SystemGlobalArea)–共享池(Sharedpool)–存放最近执行的SQL语句和数据字典信息–主要由库高速缓存和数据字典高速缓存组成–其中,库高速缓存用于存放最近执行的SQL语句信息(语句文本、执行计划)–而数据字典高速缓存则存放最近数据字典的信息,包括表、列、索引的定义和权限信息1-14Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构例程:SGA(SystemGlobalArea)(续)•数据高速缓存DBC(DataBufferCache)–存放最近访问的数据块(即存储的数据)–工作原理:–采用LRU(LeastRecentlyUsed)算法管理高速缓存,类似于队列机制,先进先出。即队列的尾部永远存放的是最近访问的数据块。–无论是读取还是修改数据,都是在高速缓存中完成的1-15Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构例程:SGA(SystemGlobalArea)(续)•数据高速缓存DBC(DataBufferCache)(续)–结构–脏缓冲区---内容与对应数据块不一致(DML操作)–空闲缓冲区---内容与对应数据块一致(Select操作)–忙缓冲区---服务器进程正在存取的缓冲区1-16Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构例程:SGA(SystemGlobalArea)(续)•重做日志缓冲区RLB(RedoLogBuffer)–用于记载例程变化–当执行DML或DDL语句时,服务器进程会将变化首先记载到重做日志缓冲区,然后才会修改数据高速缓存!1-17Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构例程Instance(续):后台进程•启动例程时Oracle会自动启动后台进程,关闭时自动关闭进程•进程一:DBWR(DatabaseWriter)–将DBC的脏缓冲区数据写入到数据文件中–执行DML操作时被调用1-18Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构例程Instance(续):后台进程•进程二:LGWR(LogWriter)–将RLB的内容写入到重做日志中–执行DML和DDL语句–先日志后修改,即先LGWR后DBWR–每隔3秒钟执行–提交事务时也会调用该进程1-19Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构例程Instance(续):后台进程•进程三:CKPT(CheckpointProcess)–发出检查点,实现数据库的数据文件、控制文件、日志的数据同步–执行时,DBWR要将脏数据写入数据和控制文件,而且LGWR也要将RLB的内容写入重做日志1-20Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构例程Instance(续):后台进程•进程四:SMON(SystemMonitor)–执行例程恢复、合并空间碎片、释放临时数据–断电、内存故障等原因导致例程失败,此时数据尚未写入到磁盘(数据文件和控制文件中),该进程会在重新打开数据库时执行例程恢复1-21Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构例程Instance(续):后台进程•进程五:PMON(ProcessMonitor)–监视服务器进程的执行,并在进程失败时清除该进程–清除时会回退用户的当前事务、释放进程占用的所有资源(表、行)1-22Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构例程Instance(续):后台进程•进程六:ARCH(ArchiveProcess)–将重做日志的事务变化复制到归档日志–数据库必须处于ARCHIVELOG状态下,该进程才有意义–默认只有一个ARCH进程,最多可以设置10个1-23Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构PMONLCKnRECORECOsharedPoolDatabaseBufferCacheRedoLogBufferSGADataDataDataDataDataDataDataDataDataDataDatafilesRedoLogfilesParameterFileControlfilesServerUserDBWRLGWRCKPTARCHOfflinestorage1-24Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构Oracle物理结构:•1.数据文件–用于存储数据库数据,包括系统数据(数据字典)、用户数据(表、索引等)、UNDO数据、临时数据等–一个数据库至少包含一个数据文件–后缀名为.DBF的文件1-25Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构Oracle物理结构:•2.控制文件–用于记录和维护数据库的物理结构–数据文件的位置和大小–数据库名称和创建日期–重做日志文件的位置和大小–日志序列号–一个数据库至少包含一个控制文件–后缀名为.CTL的文件–控制文件中的内容只能够由Oracle本身来修改1-26Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构Oracle物理结构:•3.重做日志文件–用于记录数据库的变化–目的是为了在例程或介质失败时恢复数据–数据库至少包含两个重做日志组–循环写入–通常为Logxxx.dbf的文件1-27Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构Oracle物理结构:•4.归档日志文件–重做日志的备份–保留所有重做历史记录–通过数据文件副本和重做历史记录可以完全恢复数据库–只有数据库在ARCHIVE模式下才会生成1-28Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构Oracle物理结构:•5.参数文件–%ORA_HOME%\Db_1\database\SPFILExxx.ora•6.口令文件–%ORA_HOME%\Db_1\database\PWDxxx.ora1-29Copyright5itjob-Alan,2006.7.Allrightsreserved.Oracle体系结构Oracle逻辑结构:•1.表空间(Tablespace)–数据库的逻辑组成–分为几类:–SYSTEMtable_space(至少一个)–INDEXtable_space–TEMPORARYtable_space–UNDOtable_space–不同的数据存放在不同