Oracle基础ppt课件_第1页
Oracle基础ppt课件_第2页
Oracle基础ppt课件_第3页
Oracle基础ppt课件_第4页
Oracle基础ppt课件_第5页
已阅读5页,还剩138页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大型数据库技术 Oracle 根底赵明.WHY?数据库工程失败的最常见缘由之一:对数据库的实践认识缺乏,缺乏对所用根本工具的了解了解他的数据库,掌握它是怎样任务的,弄清楚它能为他做什么,并且最大限制地加以利用.主要内容Oracle根底PL/SQL数据库设计.RecommendationTHOMAS KYTE, Expert One-on-One OracleTHOMAS KYTE, Expert Oracle Database ArchitectureTHOMAS KYTE, Effective Oracle by DesignOracle Metalinkasktom.oracle.第一讲

2、Oracle根底.本节内容了解与Oracle相关的RDBMS构造掌握Oracle数据类型掌握数据定义言语掌握数据支配言语掌握事务处置和数据控制命令.Oracle 简介对象关系数据库管理系统 (ORDBMS)提供了关系数据库系统和面向对象数据库系统这二者的功能.Oracle体系构造PasswordfileInstanceSGARedo LogBufferShared PoolData DictionaryCacheLibraryCacheDBWRSMONPMONCKPTLGWROthersUserprocessServerprocessPGAControl filesDatafiles Data

3、baseDatabaseBuffer CacheRedo Log filesJava PoolLarge PoolParameterfileArchived Log files.Oracle 数据库组件 数据库由以下组件构成数据库文件控制文件恢复日志文件表空间段扩展区组件分类物理组件逻辑组件.物理组件 4-1物理组件是构成数据库的操作系统文件为数据库信息提供了实践的物理存储器 操作系统文件有三种类型数据库文件或数据文件控制文件恢复日志文件.物理组件 4-2数据库文件或数据文件它们是物理操作系统文件,它们包括诸如用户数据、系统数据等一切数据库数据数据文件中的数据以块为单位任何数据库创建时至少包含

4、一个数据文件.物理组件 4-3控制文件创建数据库时,就创建了控制文件 存储数据库的物理构造还包括关于数据库的信息数据库的称号数据文件和恢复日志文件的称号及其位置时间戳 .物理组件 4-4恢复日志文件恢复日志文件是操作系统文件,由RDBMS用于记录对数据库所做的更改 假设出现缺点,那么可从恢复日志中访问并重新运用对数据库所做的更改,维护已完成的任务不受损失数据库以下面两种方式运转NOARCHIVELOG MODEARCHIVELOG MODE .逻辑组件数据库有以下逻辑组件 表空间段扩展区.表空间 2-1数据库由称为表空间的逻辑单位组成 保管相关数据库对象的组Oracle数据库中的典型表空间包括

5、SYSTEM表空间 DATA表空间USER表空间TOOLS表空间TEMP表空间.数据库的控制空间分配例如表和索引为数据库用户设置空间配额 备份或恢复数据表空间 2-2.段 表空间中存储在数据库空间分配中的逻辑单位称为段定义为分配给逻辑数据库构造的扩展区集合不同类型的段数据段索引段回滚段暂时段.扩展区 2-1扩展区的集合由一定数目的相邻数据块和段组成增量扩展区是与上次该段中分配的扩展区大小一样或更大的后续扩展区Oracle运用独立的算法搜索整个自在空间查找第一个具有与增量扩展区具有一样的或更大大小的自在、临近数据块集合 .扩展区 2-2一旦Oracle在表空间中找到并分配了必需的可用空间,那么它

6、将分配一部分与新增扩展区大小相对应的可用空间Oracle更新段标题和数据词典,以显示新的扩展区曾经被分配而且分配的空间不再可用 .数据块代表数据库存储的最正确粒度级别 .Oracle 的构造化查询言语SQL*Plus输入、编辑、存储、检索和运转SQL命令以及PL/SQL块的工具iSQL*Plus与SQL类似,但可以经过阅读器进展访问PL/SQLSQL的扩展.SQL 命令的类别数据定义言语数据支配言语事务处置控制言语数据控制言语.Oracle主要数据类型 4-1 Character数据类型Number数据类型Date数据类型Raw和Long Raw数据类型LOB数据类型.Oracle 主要数据类

7、型 4-2 Character 数据类型CharVarchar2LongNumber 数据类型Number(p, s) .Oracle 主要数据类型 4-3Date 数据类型DateTimestampInterval day to secondInterval year to monthTimestamp with time zoneTimestamp with local time zone.Oracle 主要数据类型 4-4Raw和Long Raw数据类型用于存储二进制数据LOB数据类型CLOBBLOBBFILE.数据定义言语数据定义命令CREATE命令ALTER命令DROP命令TRUNC

8、ATE命令.数据支配言语数据支配命令INSERTSELECTUPDATEDELETE.事务处置和数据控制命令事务处置控制命令COMMITSAVEPOINTROLLBACK数据控制言语GRANTREVOKE.Oracle的语句处置DDLDML大多数DML都包含了Queryupdate emp set ename=King Sley where ename=King;QueryQuery和DML在Oracle的执行阶段非常类似Query前往结果集,DML修正结果集中的值.Oracle的语句处置解析对提交的语句进展语法和语义检查优化生成一个可在Oracle中用来执行语句的最正确方案行资源生成为会话获

9、得最正确方案和建立执行方案执行完成实践执行查询的行资源生成步骤的输出.Oracle的语句处置解析(Parsing):将曾经提交的语句分解,断定属于哪种类型,并在其上执行各种检验操作语法检查:正确表述,符合SQL规那么?语义分析:正确运用SQL对象?授权?歧义?检查Shared Pool:已被其他Session处置过?.Oracle的语句处置Shared PoolSGA的一部分,高速缓存以及以前执行过的SQL、PL/SQL、Data Dictionary等恰当运用Shared Pool是在Oracle中建立可伸缩处理方案的关键.Oracle的语句处置硬解析(hard parse)语句经过执行阶段

10、的每一个步骤:从解析到优化、到行资源生成和执行软解析(soft parse)语句经过执行阶段的某些步骤,特别是跳过优化步骤最昂贵的步骤.Oracle的语句处置当Oracle接纳到语句后,就会对其进展HASH处置V$SQL动态性能视图生成HASH值后,Oracle在Shared Pool中搜索,寻觅具有一样HASH值的语句将找到的SQL_TEXT与用户的SQL语句进展比较,确保两者完全一样.Oracle的语句处置Oracle确认用户的SQL语句和Shared Pool中的一样后,还必需确定两者在语义上一样不同用户能够有一样称号的表验证查询是在一样的环境中解析环境是指可以影响到查询方案生成的一切设

11、置,如SORT_AREA_SIZE、OPTIMIZER_MODE等假设各个查询的优化器方式不同,它们也是不一样的.索引存储在常规表中行采用没有特定的次序存储Oracle将获取的名字与ROWID进展关联ROWID是表中行的物理地址,可以告知对象的来源、所处的文件以及文件中特定数据块.Oracle的语句处置到目前为止,当Oracle完成了一切任务,并且找到了匹配查询,它就可以从解析过程中前往,报告曾经进展了一次软解析假设没有找到匹配查询,就需求进展硬解析.索引B树索引(Balenced Tree).索引进展FTS(Full Table Scan)时,进展批量数据读取假设Oracle以为用户的查询将

12、选取超越全体记录的2%5%,那么就会趋向运用FTS.小结 2-1数据库有两类组件:物理组件和逻辑组件物理组件是操作系统文件,有下面三种类型:数据库文件或数据文件、控制文件、恢复日志文件逻辑组件决议数据库中物理空间的运用,它包括:表空间、段、数据区、方式对象.小结 2-2Oracle支持Char、Varchar2、Number、Long、Date、Raw、Long Raw和LOB等数据类型CREATE、ALTER、DROP和TRUNCATE是用于定义数据的不同命令INSERT、UPDATE、DELETE和SELECT是用于支配数据的不同命令COMMIT、SAVEPOINT和ROLLBACK是用于

13、控制事务处置的命令GRANT和REVOKE是用于控制数据的两条命令.第二讲 查询和SQL函数 .回想-Oracle根底2-1 DBMS是一个相关数据的集合和一组用来访问数据的程序。数据中可以识别的关系如下一对一一对多多对多用于存储和检索数据库中数据的言语是 SQL.回想-Oracle根底2-2Oracle 支持 Char、Varchar2、Number、Long、Date、Raw、Long Raw和Lob以存储数据。Create、Alter、Drop 和Truncate是用于定义数据的不同命令。Insert、Update、Delete和SELECT是用于支配数据的不同命令。Commit、Sav

14、epoint和Rollback是可用于控制事务的命令。Grant和Revoke是用于控制数据的两个命令。.本节目的SELECT语句的运用SQL*Plus中的运算符SQL*Plus函数暂时表.SELECT 语句 4-1SELECT 可以用于创建现有表的副本插入来自其他表的记录运用别名让列显示其他称号.SELECT 语句 4-2创建现有表的副本 Create table asSELECT column_names from ; .SELECT 语句 4-3插入来自其他表的记录 Insert into (SELECT column_names from );.SQL*Plus 中的运算符运算符的分类

15、算术运算符比较运算符逻辑运算符集合运算符衔接运算符.算术运算符 算术运算符用于执行数学计算不同的算术运算符 加 (+)减 (-)乘 (*)除 (/).比较运算符比较运算符用于将一个表达式与另一个表达式进展比较不同的比较运算符=、!=、=INLIKEIS NULLBETWEEN和NOT BETWEEN.逻辑运算符逻辑运算符用于合并两个条件的结果以产生单个结果不同的逻辑运算符ANDORNOT.集合运算符 集合运算符用于合并两个独立查询的结果不同的集合运算符 UnionUnion allIntersectMinus.衔接运算符 衔接运算符用于将两个或多个字符串合并在一同符号 (|) 表示衔接运算符.

16、SQL*Plus 函数 11-1SQL*Plus函数用于支配数据接受一个或多个参数并前往一个值SQL*Plus函数的类别单行函数分组函数.单行函数对每一行前往一个值也称为标量函数在SELECT和WHERE子句中运用SQL*Plus 函数 11-2.单行函数的分类日期函数字符函数数字函数转换函数其他函数常规函数SQL*Plus 函数 11-3.日期函数Add_monthsLast_dayMonths_betweenRoundNext_dayTrunc Greatest SQL*Plus 函数 11-4.字符函数Substr InstrLengthLpadRpadTrimDecodeSQL*Plu

17、s 函数 11-5.数字函数ModRoundTruncSignLnSQL*Plus 函数 11-6.SQL*Plus 函数 11-7转换函数To_char( )To_date( )To_number( ).SQL*Plus 函数 11-8其他函数UidUserVsize .SQL*Plus 函数 11-9常规函数NVLNVL2NULLIFCOALESCE.SQL*Plus 函数 11-10分组函数基于一组行产生结果对每组前往一个值.SQL*Plus 函数 11-11不同的分组函数AvgMaxMinSumCountStddevVariance.Group By 和 Having 子句Group

18、By 子句用于将信息划分为较小的组每一组行前往针对每组的单个结果行Having 字句用于指定针对行的某些条件它限定组中的行.ROLLUP 和 CUBEROLLUP结果集包含分组行和小计行ROLLUP (column_name1,column_name2)CUBE产生交叉表格报表CUBE (column_name1,column_name2, column_name3).暂时表只在用户会话期间存在的表数据在用户事务处置期间继续存在运用 CREATE GLOBAL TEMPORARY TABLE 命令不会自动获得空间插入的值仅在此特定会话中可用.小结 2-1SELECT 语句可以用于创建表的副本插

19、入来自其他表的记录显示列别名SQL*Plus提供不同类型的运算符运用集合运算符可以合并查询SQL*PLUS 函数划分为单行函数和分组函数.小结 2-2转换函数用于转换数据类型分组函数对每组前往一个值Rollup 和 Cube 运算符用于查找表达式的聚集和超级聚集在暂时表中数据在用户事务处置期间继续存在.第三讲 锁和表分区.回想 Select语句的用途在SQL*Plus中可以运用各种类型的操作符运用集合操作符可以合并查询SQL*PLUS函数被归类为单行函数和分组函数Rollup和Cube操作符用于查找表达式的聚集和超级聚集暂时表中的数据在用户事务处置期间可继续运用.目的掌握锁定的概念及其实现用法

20、掌握表分区的概念及其实现方法 .锁定概念 8-1允许或回绝资源访问的一种机制资源可以是特定行或整个表控制对数据的并发访问防止在同时访问一样资源的用户之间出现破坏性的交互操作.锁定类型行级锁表级锁行级锁行被排他锁定在某行的锁被释放之前,其他用户不能修正此行运用commit或rollback命令释放锁Oracle经过运用 INSERT、UPDATE和SELECTFOR UPDATE语句自动获取行级锁锁定概念 8-2.SELECTFOR UPDATE子句在表的一行或多行上放置排他锁用于防止其他用户更新该行可以执行除更新之外的其他操作锁定概念 8-3.FOR UPDATE WAIT子句防止无限期地等待

21、锁定的行允许对锁的等待时间进展更多的控制等待间隔必需指定为数值文字等待间隔不能是表达式、赋值变量或PL/SQL变量锁定的概念 8-4.表级锁维护表的数据在多个用户同时访问数据时确保数据的完好性可以设置为三种方式:共享、共享更新和排他语法: Lock table in ;锁定概念 8-5.共享锁锁定表仅允许其他用户执行查询操作不能插入、更新和删除多个用户可以同时在同一表中放置此锁锁定概念 8 - 6.共享更新锁锁定要被更新的行允许其他用户同时查询、插入、更新未被锁定的行在SELECT语句中运用“FOR UPDATE子句,可以强迫运用共享更新锁允许多个用户同时锁定表的不同行锁定概念 8 - 7.排

22、他锁与其他两种锁相比,排他锁是限制性最强的表锁仅允许其他用户查询数据不允许执行插入、删除和更新操作在同一时间仅允许一位用户在表上放置排他锁共享锁与此相反锁定概念 8-8.分区的概念是指可以将表拆分为几个部分在数据仓库运用程序中非常有用根据键值范围对表进展拆分表的每个部分称为“分区分区被独立存储和管理经过援用逻辑表称号进展查询和更新表分区 13-1.分区方法分区类型范围分区散列分区复合分区列表分区表分区 13-2.范围分区 根据列值的范围将行映射到分区由表的分区规范进展定义PARTITION BY RANGE ( column_list ) 由每个单独分区的分区规范进展定义VALUES LESS

23、 THAN ( value_list ) 其中 column_list 是列的有序列表value_list 是 column_list 中列值的有序列表表分区 13 - 3.范围分区的语法create table (column_name data type,column_name data type,.) partition by range(column_name) (partition values less than , partition values less than );表分区 13-4.散列分区在分区列上运用 hash 函数是比范围分区更好的选择假设不知道将有多少数据映射到指

24、定的范围,散列分区非常有用分区的数目应是 2 的幂可以对散列分区进展命名,并将其存储在特定的表空间中表分区 13-5.散列分区的语法:CREATE TABLE ( . ) PARTITION BY HASH(column_list) PARTITIONS ( PARTITION TABLESPACE , PARTITION TABLESPACE tablespace_name);表分区 13-6.复合分区运用范围分区方法对数据进展分区,并在每一个分区内运用散列分区方法将其划分为子分区允许命名子分区允许将子分区存储在特定的表空间兼具范围分区和散列分区的优点表分区13-7.复合分区的语法CREAT

25、E TABLE ( ) PARTITION BY RANGE(column_list) SUBPARTITION BY HASH(column_list) SUBPARTITIONS STORE IN(, , ,.) ( PARTITION VALUES LESS THAN() ( SUBPARTITION TABLESPACE , .SUBPARTITION TABLESPACE ,SUBPARTITION TABLESPACE ) PARTITION VALUES LESS THAN() );表分区13 - 8.列表分区基于 PARTITION BY LIST 中指定的分区键对表进展分区明

26、确地控制行到分区的映射指定分区键的离散值不同于范围分区和散列分区表分区 13-9.将记录插入已分区表记录被存储到表的分区中基于指定的分区键执行与定义的分区边境进展比较例如SQL INSERT INTO ord_mast VALUES(o001,12-jan-96, V001,p,12-jan-97);SQL INSERT INTO ord_mast VALUES(o010,12-feb-99, V002,c,15-mar-99);SQL INSERT INTO ord_mast VALUES(o012,12-feb-99, V002,c,15-mar-99);表分区 13-10.分区维护操作修

27、正已分区表的一个分区划分为两类事件:方案事件 - 定期删除最旧分区的操作非方案事件 处理运用程序或系统问题表分区13-11.维护分区各种分区维护操作如下添加分区挪动删除结合截断拆分合并交换表分区表分区 13 - 12.本地域索引在 Oracle9i 之前的版本中,不能为表的每个分区定义本地域索引在 Oracle9i 之前的版本中,仅可以定义非分区的全局域索引如今,可以为范围分区表上的分区定义本地域索引其他类型的分区不支持此功能表分区13 - 13.锁用于在用户之间控制对数据的并发访问锁有两种类型 - 行级锁和表级锁行级锁用于指定的行表级锁用于整个表SELECTFOR UPDATE OF 子句用

28、于锁定指定的行小结 2-1.FOR UPDATE WAIT子句用于指定获取锁的时间间隔表级锁包括共享方式、共享更新方式和排他方式分区是将一个表拆分为物理上独立的几个部分类型 - 范围分区、散列分区和复合分区范围分区 - 基于键值范围散列分区 - 基于 hash 函数分区域索引是 Oracle9i 中引入的新功能允许在范围分区表上定义本地域索引小结 2-2.第四讲 数据库对象.回想锁用于在用户之间控制对数据的并发访问行级锁用于指定的行表级锁用于整个表SELECTFOR UPDATE OF 子句用于锁定指定的行FOR UPDATE WAIT 子句用于指定获取锁的时间间隔表级锁包括共享、共享更新和排

29、他方式分区是将表拆分为物理上独立的部分范围分区 - 基于键值范围散列分区 - 基于散列函数分区域索引是 Oracle9i 引入的新功能.本节内容同义词序列视图索引簇.同义词 2-1数据库对象的交换称号优点简化 SQL 语句隐藏对象的称号和一切者为分布式数据库的远程对象提供了位置透明性提供对对象的公共访问.同义词 2- 2同义词类型私有公用CREATE SYNONYM 命令用于创建同义词DROP SYNONYM 命令用于删除同义词USER_SYNONYMS包含有关同义词的信息.序列2 - 1生成独一、延续的整数用于生成主键值Create Sequence 语句用于创建序列序列可以是升序排序,也可

30、以是降序排序.序列2 - 2访问序列Nextval Currval Alter Sequence修正序列定义Drop Sequence 从数据库中删除序列.视图 5- 1经过定制的表示方式,用来显示来自一个或多个表的数据也称为“虚拟表或“已存储的查询基表 - 创建视图所根据的表.视图5 - 2视图的优点提供了另外一种级别的表平安性隐藏数据的复杂性简化用户的 SQL 命令将运用程序与基表定义的修正隔分开来从另一个角度提供数据.视图5 - 3CREATE OR REPLACE VIEW 语句用于创建视图ORDER BY 子句可以用来按特定的顺序对行进展陈列带有错误的视图FORCE 选项用于创建带有

31、错误的视图查询援用不存在的表查询援用无效列创建视图时没有相应权限.视图 5- 4联接视图经过联接多个表来创建视图DML只能修正一个基表键保管表联接视图中的表,其主键列显示在联接视图中视图中的函数在视图中可以运用函数和表达式.视图 5- 5分区视图数据存储在单独的表分区中在运转期间,运用 UNION ALL将这些表分区结合起来DROP VIEW语句从数据库中删除视图有关视图的信息查询 USER_VIEWS .索引10 - 1与表关联的可选构造加快 SQL 语句的执行减少磁盘 I/OCREATE INDEX 语句用于创建索引在逻辑上和物理上独立于表中的数据Oracle 自动维护索引.索引 10-

32、2独一索引确保在定义索引的列中没有反复的值Oracle 自动为主键和独一键列创建独一索引CREATE UNIQUE INDEX 语句用于创建独一索引.组合索引在表的多个列上创建的索引也称为“衔接索引组合索引中的列可以按恣意顺序陈列对于在 WHERE 子句中包含多个列的查询,可以提高数据访问速度索引10 - 3.反向键索引反转索引列中的每一个字节将数据插入操作分布在整个索引上在创建索引时运用 REVERSE 关键字索引 10- 4.位图索引为低基数列创建BITMAP INDEX 语句用于创建位图索引优点减少呼应时间降低空间占用索引10 - 5.索引组织表表的数据存储在与其关联的索引中对表数据的修

33、正只会导致对索引的更新基于主键进展搜索CREATE TABLE 命令与 ORGANIZATION INDEX 子句一同用于创建索引组织表索引 10- 6.普通表与索引组织表的对比普通表索引编排表ROWID 唯一地标识行主键唯一地标识行隐式的 ROWID 列没有隐式的 ROWID 列基于 ROWID 的访问基于主键的访问顺序扫描返回所有行完全索引扫描返回所有行,并按主键顺序排列普通表可以存储在簇中索引组织表不能存储在簇中支持分发、复制和分区不支持分发、复制和分区索引10 - 7.基于函数的索引基于一个或多个列上的函数或表达式创建的索引表达式中不能包含聚集函数sum,count,avg,min,m

34、ax不能在 LOB、REF 或嵌套表列上创建索引 10- 8.键紧缩索引将索引键拆分为前缀项和后缀项在一个索引块中,经过后缀项共享前缀项即可到达紧缩的目的节省磁盘空间在一个索引块中可以存储更多的键COMPRESS 子句用于创建这种索引索引 10- 9.分区索引索引存储在不同的分区中分区索引的类型本地索引本地前缀索引本地无前缀索引全局索引全局前缀索引全局无前缀索引索引10 - 10.簇 2- 1有公共列的两个或多个表的集合簇表中的数据存储在公共数据块中簇键簇中行的独一标识符用于获取行.簇 2- 2创建簇应首先创建簇,然后创建组成簇的表CREATE CLUSTER 语句用于创建簇优点减少磁盘 I/

35、O节省磁盘空间缺陷插入操作的性能降低.小结2 - 1同义词是数据库对象的交换称号同义词隐藏了对象的称号和一切者序列生成独一、延续的整数Nextval和Currval用于访问序列.小结 2- 2视图是一种经过定制的表示方式,用于显示来自一个或多个表的数据索引加快了SQL语句的执行速度在表的多个列上创建的索引称为“组合索引在索引组织表中,数据访问基于主键值簇是一组表,这些表拥有公共列,并且一同运用.第五讲 Oracle中的OOP概念 .回想同义词是数据库对象的交换称号同义词隐藏了对象的称号和一切者序列生成独一、延续的整数Nextval 和 Currval 用于访问序列视图是一种经过定制的表示方法,用来显示来自一个或多个表中的数据索引加快了SQL语句的执行速度在表的多个列上创建的索引称为“组合索引在索引组织表中,数据访问基于主键的值簇是一组表,这些表拥有公共列,并且一同运用.本节内容ORDBMS与RDBMS的比较 Oracle中的对象.ORDBMS 与 RDBMS 的比较5- 1RDBMS 每当重用某项功能时,都需求进展编译ORDBMS 允许定义对象类型在关系数据库中存储复杂的业务模型开发运用程序的速度更快.ORDBMS 与 RDBMS 的比较5- 2OOP的概念 在程序中组织数据和代码的一种方式OOP中涉及的概念对象可重用的运用程序组件类对象的定义

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论