您好,欢迎访问三七文档
大型数据库技术—Oracle基础赵明WHY?•数据库项目失败的最常见原因之一:对数据库的实际认识不足,缺乏对所用基本工具的了解•了解你的数据库,掌握它是怎样工作的,弄清楚它能为你做什么,并且最大限度地加以利用主要内容•Oracle基础•PL/SQL•数据库设计Recommendation•THOMASKYTE,ExpertOne-on-OneOracle•THOMASKYTE,ExpertOracleDatabaseArchitecture•THOMASKYTE,EffectiveOraclebyDesign•OracleMetalink•asktom.oracle.com第一讲Oracle基础本节内容•理解与Oracle相关的RDBMS结构•掌握Oracle数据类型•掌握数据定义语言•掌握数据操纵语言•掌握事务处理和数据控制命令Oracle简介•对象关系数据库管理系统(ORDBMS)•提供了关系数据库系统和面向对象数据库系统这二者的功能Oracle体系结构PasswordfileInstanceSGARedoLogBufferSharedPoolDataDictionaryCacheLibraryCacheDBWRSMONPMONCKPTLGWROthersUserprocessServerprocessPGAControlfilesDatafilesDatabaseDatabaseBufferCacheRedoLogfilesJavaPoolLargePoolParameterfileArchivedLogfilesOracle数据库组件•数据库由下列组件构成•数据库文件•控制文件•恢复日志文件•表空间•段•扩展区•组件分类•物理组件•逻辑组件物理组件4-1•物理组件是构成数据库的操作系统文件•为数据库信息提供了实际的物理存储器•操作系统文件有三种类型•数据库文件或数据文件•控制文件•恢复日志文件物理组件4-2•数据库文件或数据文件•它们是物理操作系统文件,它们包括诸如用户数据、系统数据等所有数据库数据•数据文件中的数据以块为单位•任何数据库创建时至少包含一个数据文件物理组件4-3•控制文件•创建数据库时,就创建了控制文件•存储数据库的物理结构•还包括关于数据库的信息•数据库的名称•数据文件和恢复日志文件的名称及其位置•时间戳物理组件4-4•恢复日志文件•恢复日志文件是操作系统文件,由RDBMS用于记录对数据库所做的更改•如果出现故障,则可从恢复日志中访问并重新应用对数据库所做的更改,保护已完成的工作不受损失•数据库以下面两种模式运行•NOARCHIVELOGMODE•ARCHIVELOGMODE逻辑组件•数据库有下列逻辑组件•表空间•段•扩展区表空间2-1•数据库由称为表空间的逻辑单位组成•保留相关数据库对象的组•Oracle数据库中的典型表空间包括•SYSTEM表空间•DATA表空间•USER表空间•TOOLS表空间•TEMP表空间数据库Data1.Ora1MBData2.Ora1MBSYSTEM表空间Data3.Ora4MBUSER表空间数据文件•数据库的控制空间分配(例如表和索引)•为数据库用户设置空间配额•备份或恢复数据表空间2-2段•表空间中存储在数据库空间分配中的逻辑单位称为段•定义为分配给逻辑数据库结构的扩展区集合•不同类型的段•数据段•索引段•回滚段•临时段扩展区2-1•扩展区的集合由一定数目的相邻数据块和段组成•增量扩展区是与上次该段中分配的扩展区大小相同或更大的后续扩展区•Oracle使用独立的算法搜索整个自由空间查找第一个具有与增量扩展区具有相同的或更大大小的自由、临近数据块集合扩展区2-2•一旦Oracle在表空间中找到并分配了必需的可用空间,则它将分配一部分与新增扩展区大小相对应的可用空间•Oracle更新段标题和数据词典,以显示新的扩展区已经被分配而且分配的空间不再可用数据块•代表数据库存储的最佳粒度级别2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb数据块扩展区扩展区段Oracle的结构化查询语言•SQL*Plus•输入、编辑、存储、检索和运行SQL命令以及PL/SQL块的工具•iSQL*Plus•与SQL类似,但可以通过浏览器进行访问•PL/SQL•SQL的扩展SQL命令的类别•数据定义语言•数据操纵语言•事务处理控制语言•数据控制语言Oracle主要数据类型4-1•Character数据类型•Number数据类型•Date数据类型•Raw和LongRaw数据类型•LOB数据类型Oracle主要数据类型4-2•Character数据类型•Char•Varchar2•Long•Number数据类型•Number(p,s)Oracle主要数据类型4-3•Date数据类型•Date•Timestamp•Intervaldaytosecond•Intervalyeartomonth•Timestampwithtimezone•TimestampwithlocaltimezoneOracle主要数据类型4-4•Raw和LongRaw数据类型•用于存储二进制数据•LOB数据类型•CLOB•BLOB•BFILE数据定义语言•数据定义命令•CREATE命令•ALTER命令•DROP命令•TRUNCATE命令数据操纵语言•数据操纵命令•INSERT•SELECT•UPDATE•DELETE事务处理和数据控制命令•事务处理控制命令•COMMIT•SAVEPOINT•ROLLBACK•数据控制语言•GRANT•REVOKEOracle的语句处理•DDL•DML–大多数DML都包含了Query–updateempsetename='KingSley'whereename='King';•Query•Query和DML在Oracle的执行阶段非常类似–Query返回结果集,DML修改结果集中的值Oracle的语句处理•解析–对提交的语句进行语法和语义检查•优化–生成一个可在Oracle中用来执行语句的最佳计划•行资源生成–为会话取得最佳计划和建立执行计划•执行–完成实际执行查询的行资源生成步骤的输出Oracle的语句处理•解析(Parsing):将已经提交的语句分解,判定属于哪种类型,并在其上执行各种检验操作–语法检查:正确表述,符合SQL规则?–语义分析:正确应用SQL对象?授权?歧义?–检查SharedPool:已被其他Session处理过?Oracle的语句处理•SharedPool–SGA的一部分,高速缓存以及以前执行过的SQL、PL/SQL、DataDictionary等•恰当使用SharedPool是在Oracle中建立可伸缩解决方案的关键Oracle的语句处理•硬解析(hardparse)–语句通过执行阶段的每一个步骤:从解析到优化、到行资源生成和执行•软解析(softparse)–语句通过执行阶段的某些步骤,特别是跳过优化步骤(最昂贵的步骤)Oracle的语句处理•当Oracle接收到语句后,就会对其进行HASH处理–V$SQL动态性能视图•生成HASH值后,Oracle在SharedPool中搜索,寻找具有相同HASH值的语句•将找到的SQL_TEXT与用户的SQL语句进行比较,确保两者完全相同Oracle的语句处理•Oracle确认用户的SQL语句和SharedPool中的相同后,还必须确定两者在语义上相同–不同用户可能有相同名称的表•验证查询是在相同的环境中解析–环境是指能够影响到查询方案生成的所有设置,如SORT_AREA_SIZE、OPTIMIZER_MODE等–如果各个查询的优化器模式不同,它们也是不相同的索引•存储在常规表中行采用没有特定的次序存储•Oracle将获取的名字与ROWID进行关联–ROWID是表中行的物理地址,可以告知对象的来源、所处的文件以及文件中特定数据块Oracle的语句处理•到目前为止,当Oracle完成了所有工作,并且找到了匹配查询,它就可以从解析过程中返回,报告已经进行了一次软解析•如果没有找到匹配查询,就需要进行硬解析索引•B树索引(BalencedTree)索引•进行FTS(FullTableScan)时,进行批量数据读取•如果Oracle认为用户的查询将选取超过全体记录的2%~5%,那么就会趋向使用FTS小结2-1•数据库有两类组件:物理组件和逻辑组件•物理组件是操作系统文件,有下面三种类型:数据库文件或数据文件、控制文件、恢复日志文件•逻辑组件决定数据库中物理空间的使用,它包括:表空间、段、数据区、模式对象小结2-2•Oracle支持Char、Varchar2、Number、Long、Date、Raw、LongRaw和LOB等数据类型•CREATE、ALTER、DROP和TRUNCATE是用于定义数据的不同命令•INSERT、UPDATE、DELETE和SELECT是用于操纵数据的不同命令•COMMIT、SAVEPOINT和ROLLBACK是用于控制事务处理的命令•GRANT和REVOKE是用于控制数据的两条命令第二讲查询和SQL函数回顾-Oracle基础2-1•DBMS是一个相关数据的集合和一组用来访问数据的程序。•数据中可以识别的关系如下•一对一•一对多•多对多•用于存储和检索数据库中数据的语言是SQL回顾-Oracle基础2-2•Oracle支持Char、Varchar2、Number、Long、Date、Raw、LongRaw和Lob以存储数据。•Create、Alter、Drop和Truncate是用于定义数据的不同命令。•Insert、Update、Delete和SELECT是用于操纵数据的不同命令。•Commit、Savepoint和Rollback是可用于控制事务的命令。•Grant和Revoke是用于控制数据的两个命令。本节目标•SELECT语句的使用•SQL*Plus中的运算符•SQL*Plus函数•临时表SELECT语句4-1•SELECT可以用于•创建现有表的副本•插入来自其他表的记录•使用别名让列显示其他名称SELECT语句4-2•创建现有表的副本Createtablenew_table_nameasSELECTcolumn_namesfromexisting_table_name;SELECT语句4-3•插入来自其他表的记录Insertintotable_name(SELECTcolumn_namesfromexisting_table_name);SQL*Plus中的运算符•运算符的分类•算术运算符•比较运算符•逻辑运算符•集合运算符•连接运算符算术运算符•算术运算符•用于执行数学计算•不同的算术运算符•加(+)•减(-)•乘(*)•除(/)比较运算符•比较运算符•用于将一个表达式与另一个表达式进行比较•不同的比较运算符•=、!=、、、=、=•IN•LIKE•ISNULL•BETWEEN和NOTBETWEEN逻辑运算符•逻辑运算符―用于合并两个条件的结果以产生单个结果•不同的逻辑运算符―AND―OR―NOT集合运算符•集合运算符•用于合并两个独立查询的结果•不同的集合运算符•Union•Unionall•Intersect•Minus连接运算符•连接运算符•用于将两个或多个字符串合并在一起•符号(||)表示连接运算符SQL*Plus函数11-1•SQL*Plus函数•用于操纵数据•接受一个或多个参数并返回一个值•SQL*Plus函数的类别•单行函数•分组函数•单行函数•对每一行返回一个值•也称为标量函数•在SELECT和WHERE子句中使用SQL*Plus函数11-2•单行函数的分类•日期函数•字符函数•数字函数•转换函数•其他函数•常规函数SQL*Plus函数11-3•日期函数•Add_mo
本文标题:Oracle基础
链接地址:https://www.777doc.com/doc-11514 .html