首页 快速掌握oracle数据库基础知识

快速掌握oracle数据库基础知识

举报
开通vip

快速掌握oracle数据库基础知识Oracle基础主要内容ORACLE体系结构1数据库对象2事务和锁3ORACLE体系结构Oracle简称甲骨文;是仅次于微软公司的世界第二大软件公司;公司成立于1979年;是加利福尼亚州的第一家在世界上推出以关系型数据管理系统RDBMS为中心的一家软件公司&Oracle不仅在全球最先推出了RDBMS;并且事实上掌握着这个市场的大部分份额&他们的RDBMS被广泛应用于各种操作环境:WindowsNT、基于UNIX系统的小型机、IBM大型机以及一些专用硬件操作系统平台&Oracle数据库管理系统是一个以关系型和面向对象...

快速掌握oracle数据库基础知识
Oracle基础主要内容ORACLE体系结构1数据库对象2事务和锁3ORACLE体系结构Oracle简称甲骨文;是仅次于微软公司的世界第二大软件公司;公司成立于1979年;是加利福尼亚州的第一家在世界上推出以关系型数据管理系统RDBMS为中心的一家软件公司&Oracle不仅在全球最先推出了RDBMS;并且事实上掌握着这个市场的大部分份额&他们的RDBMS被广泛应用于各种操作环境:WindowsNT、基于UNIX系统的小型机、IBM大型机以及一些专用硬件操作系统平台&Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统;其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用&因其在数据安全性与数据完整性控制方面的优越性能;以及跨操作系统、跨硬件平台的数据互操作能力;使得越来越多的用户将Oracle作为其应用数据的处理系统&Oracle数据库是基于“客户端/服务器”Client/Server模式结构&客户端应用程序执行与用户进行交互的活动&其接收用户信息;并向“服务器端”发送请求&服务器系统负责管理数据信息和各种操作数据的活动&ORACLE体系结构Oracle数据库有如下几个强大的特性:支持多用户、大事务量的事务处理数据安全性和完整性的有效控制支持分布式数据处理可移植性很强Oracle大体上分两大块;一块是应用开发;一块是系统管理&开发主要是写写存储过程、触发器什么的;还有就是用Oracle的Develop工具做form&有点类似于程序员;需要有较强的逻辑思维和创造能力&管理则需要对Oracle数据库的原理有深刻的认识;有全局操纵的能力和紧密的思维;责任较大;因为一个小的失误就会丢失整个数据库;相对前者来说;后者更看重经验&OracleServer通常所说的oracle主要是指OracleServer即oracle数据库服务器&OracleServer主要是由实例instance和数据库database两部组成.一般来说一个实例只能加载一个数据库;在特殊情况下;比如RAC环境;一个库可以有多个例程访问&实例:一组内存结构SGA和后台进程的集合&数据库:一组数据文件的集合&主要由数据文件;控制文件和重做日志文件.ORACLE体系结构口令文件实例SGA日志缓冲区共享缓冲区数据字典库缓冲区DBWRSMONPMONCKPTLGWROthers用户进程服务器进程PGA控制文件数据文件数据库数据缓冲区重做日志文件Java池其他参数文件归档日志文件ORACLE体系结构1.实例是一组内存结构SGA和后台进程的集合.2.一个实例只能打开一个库.后台进程结构内存结构实例SGA重做日志缓冲区共享缓冲区数据字典缓冲区库缓冲区DBWRSMONPMONCKPTLGWROthers数据缓冲区Java池Large池ORACLE体系结构ORACLE的实例1.建立一个用户连接2.创建一个会话3.连接方式&jdbc;sqlplus会话创建数据库用户用户进程服务器进程连接建立Oracle服务器ORACLE体系结构连接ORACLESERVERORACLE体系结构数据库物理结构数据库在物理上结构主要由数据文件dbf;控制文件ctl;重做日志文件log组成&口令文件参数文件归档日志文件控制文件数据文件重做日志文件Oracle数据库数据库物理结构1、数据文件用于存储数据库的数据&包括系统数据;用户数据等&当建库或建 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 空间时;数据文件是由DATAFILE选项指定的&数据库逻辑上的一个或多个表空间组成;表空间物理上是由一个和多个数据文件组成&数据库表空间数据文件逻辑物理ORACLE体系结构2、重做日志用于记录数据库变化;当进行实例恢复或者介质恢复时需要使用重做日志&当进行数据DML;DDL等操作时;事务变化被写到重做日志缓冲区;在特定时刻LGWR进程会将重做日志缓冲区内容写入重做日志&一般情况下;数据库有三个重做日志组&并且循环使用&3、控制文件用于记录和维护数据库的物理结构;并并且每个数据库至少包含一个控制文件&Oracle实例访问数据库正是通过控制文件建立关联的;oracle实例会根据控制文件记录的信息打开所有数据文件和重做日志&ORACLE体系结构数据库逻辑结构数据库的数据物理上存放在数据文件中;而逻辑上则存放在了表空间中;oracle是使用表空间、段;区;数据块等逻辑结构来管理对象空间&关系图:数据库表空间段逻辑区数据块物理数据文件OS块ORACLE体系结构ORACLE体系结构表空间;段;区;块的组成层次表空间数据文件段块区段ORACLE体系结构表空间是数据库中最大的逻辑单位;一个Oracle数据库至少包含一个表空间;就是名为SYSTEM的系统表空间&每个表空间是由一个或多个数据文件组成的;一个数据文件只能与一个表空间相关联&表空间的大小等于构成该表空间的所有数据文件大小之和&CREATETABLESPACEtablespacenameDATAFILE‘’SIZEintegerK|MAUTOEXTENDOFF|ON;创建表空间的语法是:ORACLE体系结构主要内容ORACLE体系结构1数据库对象2事务和锁3数据库对象模式是对用户所创建的数据库对象模式对象的总称通常一个模式对应一个用户&主要介绍数据库对象用户表视图物化视图索引序列同义词触发器用户和权限Oracle使用角色的方法来限定各种用户的权力;在系统中可以有许多用户;各种用户有各种不同的角色;拥有不同的权力&实践表明与其很明确的赋一组权限给一个角色;不如赋给一个角色;然后把这个角色赋给一组用户&这样就可以实现动态的权限管理;当这组用户的权限必须改变时;只需改变角色的权限就可以了&要连接到Oracle数据库;就需要创建一个用户帐户每个用户都有一个默认表空间和一个临时表空间CREATEUSER命令用于创建新用户CREATEUSERusernameIDENTIFIEDBYpasswordDEFAULTTABLESPACEtablespaceTEMPORARYTABLESPACEtablespace;用户和权限权限指的是执行特定命令或访问数据库对象的权利权限有两种类型;系统权限和对象权限系统权限允许用户执行某些数据库操作;如创建表就是一个系统权限对象权限允许用户对数据库对象如表、视图、序列等执行特定操作角色是一组相关权限的组合;可以将权限授予角色;再把角色授予用户;以简化权限管理&表表的记录行row和字段列column构成;是数据库中存储数据的结构&要进行数据的存储和管理;首先要在数据库中创建表;即表的字段列结构&有了正确的结构;就可以用数据操作命令;插入、删除表中记录或对记录进行修改&数据完整性约束表的数据有一定的取值范围和联系;多表之间的数据有时也有一定的参照关系&在创建表和修改表时;可通过定义约束条件来保证数据的完整性和一致性&约束条件是一些 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf ;在对数据进行插入、删除和修改时要对这些规则进行验证;从而起到约束作用&完整性包括数据完整性和参照完整性;数据完整性定义表数据的约束条件;参照完整性定义数据之间的约束条件&数据完整性由主键PRIMARYKEY、非空NOTNULL、惟一UNIQUE和检查CHECK约束条件定义;参照完整性由外键FOREIGNKEY约束条件定义&表创建表的语法表的创建需要CREATETABLE系统权限;表的基本创建语法如下:CREATETABLE表名列名数据类型宽度DEFAULT表达式COLUMNCONSTRAINT;...TABLECONSTRAINTTABLE_PARTITION_CLAUSE;通过子查询创建表如果要创建一个同已有的表结构相同或部分相同的表;可以采用以下的语法:CREATETABLE表名列名...ASSQL查询语句;表修改表结构增加新列增加新列的语法如下:ALTERTABLE表名ADD列名数据类型DEFAULT表达式COLUMNCONSTRAINT;如果要为表同时增加多列;可以按以下格式进行:ALTERTABLE表名ADD列名数据类型DEFAULT表达式COLUMNCONSTRAINT...;表修改列修改列的语法如下:ALTERTABLE表名MODIFY列名数据类型DEFAULT表达式COLUMNCONSTRAINT如果要对表同时修改多列;可以按以下格式进行:ALTERTABLE表名MODIFY列名数据类型DEFAULT表达式COLUMNCONSTRAINT...;其中;列名是要修改的列的标识;不能修改&如果要改变列名;只能先删除该列;然后重新增加&其他部分都可以进行修改;如果没有给出新的定义;表示该部分属性不变&表删除列删除列的语法如下:ALTERTABLE表名DROPCOLUMN列名CASCADECONSTRAINTS;如果要同时删除多列;可以按以下格式进行:ALTERTABLE表名DROPCOLUMN列名数据类型DEFAULT表达式COLUMNCONSTRAINT...CASCADECONSTRAINTS;当删除列时;列上的索引和约束条件同时被删除&但如果列是多列约束的一部分;则必须指定CASCADECONSTRAINTS才能删除约束条件&表分区表在某些场合会使用非常大的表;比如人口信息统计表&如果一个表很大;就会降低查询的速度;并增加管理的难度&一旦发生磁盘损坏;可能整个表的数据就会丢失;恢复比较困难&根据这一情况;可以创建分区表;把一个大表分成几个区小段;对数据的操作和管理都可以针对分区进行;这样就可以提高数据库的运行效率&分区可以存在于不同的表空间上;提高了数据的可用性&表表分区的依据分区的依据可以是一列或多列的值;这一列或多列称为分区关键字或分区列&所有分区的逻辑属性是一样的列名、数据类型、约束条件等;但每个分区可以有自己的物理属性表空间、存储参数等&分区有三种:范围分区、哈希分区和列表分区&范围分区RANGEPARTITIONING:根据分区关键字值的范围建立分区&比如;根据省份为人口数据表建立分区&哈希分区HASHPARTITIONING:在分区列上使用HASH算法进行分区&列表分区ListPARTITIONING:根据预先定义好的分区键数值确定记录被分配到哪个分区&视图视图的概念视图是基于一张表或多张表或另外一个视图的逻辑表&视图不同于表;视图本身不包含任何数据&表是实际独立存在的实体;是用于存储数据的基本结构&而视图只是一种定义;对应一个查询语句&视图的数据都来自于某些表;这些表被称为基表&通过视图来查看表;就像是从不同的角度来观察一个或多个表&视图有如下一些优点:*可以提高数据访问的安全性;通过视图往往只可以访问数据库中表的特定部分;限制了用户访问表的全部行和列&*简化了对数据的查询;隐藏了查询的复杂性&视图的数据来自一个复杂的查询;用户对视图的检索却很简单&视图*一个视图可以检索多张表的数据;因此用户通过访问一个视图;可完成对多个表的访问&*视图是相同数据的不同表示;通过为不同的用户创建同一个表的不同视图;使用户可分别访问同一个表的不同部分&视图可以在表能够使用的任何地方使用;但在对视图的操作上同表相比有些限制;特别是插入和修改操作&对视图的操作将传递到基表;所以在表上定义的约束条件和触发器在视图上将同样起作用&视图视图的创建创建视图需要CREAEVIEW系统权限;视图的创建语法如下:CREATEORREPLACEFORCE|NOFORCEVIEW视图名别名1;别名2...AS子查询WITHCHECKOPTIONCONSTRAINT约束名WITHREADONLY其中:ORREPLACE表示替代已经存在的视图&FORCE表示不管基表是否存在;创建视图&NOFORCE表示只有基表存在时;才创建视图;是默认值&视图的查看USER_VIEWS字典中包含了视图的定义&物化视图物化视图是一种特殊的物理表;“物化”Materialized视图是相对普通视图而言的&普通视图是虚拟表;应用的局限性大;任何对视图的查询;Oracle都实际上转换为视图SQL语句的查询&这样对整体查询性能的提高;并没有实质上的好处&物化视图的类型ONDEMAND、ONCOMMIT&二者的区别在于刷新方法的不同;ONDEMAND顾名思义;仅在该物化视图“需要”被刷新了;才进行刷新REFRESH;即更新物化视图;以保证和基表数据的一致性;而ONCOMMIT是说;一旦基表有了COMMIT;即事务提交;则立刻刷新;立刻更新物化视图;使得数据和基表一致&物化视图可以分为以下三种类型:包含聚集的物化视图;只包含连接的物化视图;嵌套物化视图&三种物化视图的快速刷新的限制条件有很大区别;而对于其他方面则区别不大&物化视图创建物化视图时可以指定多种选项创建方式BuildMethods:包括BUILDIMMEDIATE和BUILDDEFERRED两种&BUILDIMMEDIATE是在创建物化视图的时候就生成数据;而BUILDDEFERRED则在创建时不生成数据;以后根据需要在生成数据&默认为BUILDIMMEDIATE&查询重写QueryRewrite:包括ENABLEQUERYREWRITE和DISABLEQUERYREWRITE两种&分别指出创建的物化视图是否支持查询重写&查询重写是指当对物化视图的基表进行查询时;Oracle会自动判断能否通过查询物化视图来得到结果;如果可以;则避免了聚集或连接操作;而直接从已经计算好的物化视图中读取数据&默认为DISABLEQUERYREWRITE&在建立物化视图的时候可以指定ORDERBY语句;使生成的数据按照一定的顺序进行保存&不过这个语句不会写入物化视图的定义中;而且对以后的刷新也无效&物化视图物化视图和普通视图的区别普通视图不存放数据;物化视图存放数据在使用视图进行查询时;是通过View中的SQL查询原表的数据;不能提高查询性能&在通过物化视图进行查询时;直接读取物化视图的数据;提高查询性能&对普通视图应用更新、删除操作会影响原表的数据&只读物化视图不能进行DML操作&可更新物化视图可进行DML操作;并且在刷新时操作会被推送回原表&可写物化视图可进行DML操作;但刷新后所有修改操作在刷新后全部丢失索引Oracle数据库的索引索引INDEX是为了加快数据的查找而创建的数据库对象;特别是对大表;索引可以有效地提高查找速度;也可以保证数据的惟一性&索引是对数据库表中一列或多列的值进行排序的一种结构使用索引可快速访问数据库表中的特定信息&索引不论逻辑上和物理上都与相关的表的数据无关;索引需要独立的存储空间;所以索引在创建之初就需要设置对应的表空间在创建PRIMARYKEY和UNIQUE约束条件时;系统将自动为相应的列创建惟一UNIQUE索引&索引的名字同约束的名字一致&索引索引的创建创建索引不需要特定的系统权限&建立索引的语法如下:CREATE{UNIQUE|BITMAP}INDEX索引名ON表名列名1;列名2;...;其中:UNIQUE代表创建惟一索引;不指明为创建非惟一索引&BITMAP代表创建位图索引;如果不指明该参数;则创建B*树索引&列名是创建索引的关键字列;可以是一列或多列&删除索引的语法是:DROPINDEX索引名;索引索引有各种类型;除了标准索引外;还有一些特殊类型的索引的类型基于函数的索引反向键索引位图索引唯一索引组合索引索引唯一索引1、何时创建:当某列任意两行的值都不相同2、当建立PrimaryKey主键或者Uniqueconstraint唯一约束时;唯一索引将被自动建立3、语法:CREATEUNIQUEINDEXindexONtablecolumn;组合索引1、何时创建:当两个或多个列经常一起出现在where条件中时;则在这些列上同时创建组合索引2、组合索引中列的顺序是任意的;也无需相邻&但是建议将最频繁访问的列放在列表的最前面3、语法:CREATEINDEXindexONtablecolumn1;column2;索引位图索引1、何时创建:列中有非常多的重复的值时候&例如某列保存了“性别”信息&Where条件中包含了很多OR操作符&较少的update操作;因为要相应的更新所有的bitmap2、结构:位图索引使用位图作为键值;对于表中的每一数据行位图包含了TRUE1、FALSE0、或NULL值&3、优点:位图以一种压缩格式存放;因此占用的磁盘空间比标准索引要小得多4、语法:CREATEBITMAPINDEXindexONtablecolumn;column...;5、例子:createtablebitmaptableasselect*fromindextablewhereownerin'SYS';'PUBLIC';索引分区索引分区索引就是简单地把一个索引分成多个片断&通过把一个索引分成多个片断;可以访问更小的片断也更快;并且可以把这些片断分别存放在不同的磁盘驱动器上避免I/O问题&创建分区索引的方法:create index IDX_PART_RANGE_ID ON T_PARTITION_RANGEid local  partition i_range_p1 tablespace tbspart01; partition i_range_p2 tablespace tbspart01; partition i_range_p3 tablespace tbspart02; partition i_range_pmax tablespace tbspart02  ;序列序列是用于生成唯一、连续序号的对象序列可以是升序的;也可以是降序的使用CREATESEQUENCE语句创建序列SQL>CREATESEQUENCEseq_toysSTARTWITH10INCREMENTBY10MAXVALUE2000MINVALUE10NOCYCLECACHE10;指定第一个序号从10开始指定序号之间的间隔为10表示序列的最大值为2000表示序列的最小值为10在达到最大值后停止生成下一个值指定内存中预先分配的序号数序列创建和删除序列SQL>ALTERSEQUENCEseq_toysMAXVALUE5000CYCLE;使用ALTERSEQUENCE语句修改序列;不能更改序列的STARTWITH参数使用DROPSEQUENCE语句删除序列SQL>DROPSEQUENCEseq_toys;同义词同义词SYNONYM是为模式对象起的别名;可以为表、视图、序列、过程、函数和包等数据库模式对象创建同义词&同义词有两种:公有同义词和私有同义词&公有同义词是对所有用户都可用的&创建公有同义词必须拥有系统权限CREATEPUBLICSYNONYM;创建私有同义词需要CREATESYNONYM系统权限&私有同义词只对拥有同义词的账同义词的创建和使用同义词的创建语法如下:CREATEPUBLICSYNONYM同义词名FOR模式名.对象名@数据库链路名;其中:PUBLIC代表创建公有同义词;若省略则代表创建私有同义词&模式名代表拥有对象的模式账户名&同义词数据库链路名是指向远程对象的数据库链接&删除同义词的语法如下DROPSYNONYM同义词名;删除同义词的人必须是同义词的拥有者或有DROPANYSYNONYM权限的人&删除同义词不会删除对应的对象&触发器触发器是特定事件出现的时候;自动执行的代码块&类似于存储过程;触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的;而触发器是不能被直接调用的&触发器必须由事件才能触发&触发器的触发事件分可为3类;分别是DML事件、DDL事件和数据库事件&触发器的类型可划分为4种:数据操纵语言DML触发器、替代INSTEADOF触发器、数据定义语言DDL触发器和数据库事件触发器&各触发器的作用:主要内容ORACLE体系结构1数据库对象2事务和锁3数据库事务事务的概念:事务用于保证数据的一致性;它由一组相关的dml语句组成;该组的dml语句要么全部成功&要么全部失败&DML数据操作语言增删改事务的特性有四个:ACID原子性atomicity:语句级原子性;过程级原子性;事务级原子性一致性consistency:状态一致;同一事务中不会有两种状态隔离性isolation:事务间是互相分离的互不影响这里可能也有自治事务持久性durability:事务提交了;那么状态就是永久的数据库事务事务的优点:*把逻辑相关的操作分成了一个组&*在数据永久改变前;可以预览数据变化&*能够保证数据的读一致性&COMMIT操作把多个步骤对数据库的修改;一次性地永久写入数据库;代表数据库事务的成功执行&ROLLBACK操作在发生问题时;把对数据库已经作出的修改撤消;回退到修改前的状态&在操作过程中;一旦发生问题;如果还没有提交操作;则随时可以使用ROLLBACK来撤消前面的操作&SAVEPOINT则用于在事务中间建立一些保存点;ROLLBACK可以使操作回退到这些点上边;而不必撤销全部的操作&一旦COMMIT完成;就不能用ROLLBACK来取消已经提交的操作&一旦ROLLBACK完成;被撤消的操作要重做;必须重新执行相关操作语句&数据库事务事务和锁当执行事务操作时dml语句;oracle会在被作用的表上加锁;防止其他用户改变表的结构&提交事务当执使用commit语句可以提交事务.当执行了commit语句之后;会确认事务的变化、结束事务、删除保存点、释放锁;当使用commit语句结束事务之后;其他会话将可以查看到事务变化后的新数据;savepoint保存点名称;--创建一个保存点rollbackto保存点名称;--回滚到保存点回滚事务当执行rollback时;通过指定保存点可以回退到指定的点rollback--取消全部事务commit之后不能rollback数据库事务数据库锁Oracle数据库中的锁机制数据库是一个多用户使用的共享资源&当多个用户并发地存取数据时;在数据库中就会产生多个事务同时存取同一数据的情况&若对并发操作不加控制就可能会读取和存储不正确的数据;破坏数据库的一致性&在数据库中有两种基本的锁类型:排它锁ExclusiveLocks;即X锁和共享锁ShareLocks;即S锁&当数据对象被加上排它锁时;其他的事务不能对它读取和修改;加了共享锁的数据对象可以被其他事务读取;但不能修改&数据库事务Oracle数据库锁分类根据保护对象的不同:1DMLlockdatalocks;数据锁:用于保护数据的完整性;2DDLlockdictionarylocks;字典锁:用于保护数据库对象的结构例如表、视图、索引的结构定义;3Internallocks 和latches内部锁与闩:保护内部数据库结构;4Distributedlocks分布式锁:用于OPS并行服务器中;5PCMlocks并行高速缓存管理锁:用于OPS并行服务器中&在Oracle中最主要的锁是DML也可称为datalocks;数据锁锁&DML锁的目的在于保证并发情况下的数据完整性&在Oracle数据库中;DML锁主要包括TM锁和TX锁;其中TM锁称为表级锁;TX锁称为事务锁或行级锁&数据库事务锁出现在数据共享的场合;用来保证数据的一致性&当多个会话同时修改一个表时;需要对数据进行相应的锁定&锁有“只读锁”、“排它锁”;“共享排它锁”等多种类型;而且每种类型又有“行级锁”一次锁住一条记录;“页级锁”一次锁住一页;即数据库中存储记录的最小可分配单元;“表级锁”锁住整个表&若为“行级排它锁”;则除被锁住的行外;该表中其他行均可被其他的用户进行修改Update或删除delete&若为“表级排它锁”;则所有其他用户只能对该表进行查询select操作;而无法对其中的任何记录进行修改或删除&当程序对所做的修改进行提交commit或回滚rollback后;锁住的资源便会得到释放;从而允许其他用户进行操作&如果两个事务;分别锁定一部分数据;而都在等待对方释放锁才能完成事务操作;这种情况下就会发生死锁&谢谢观看
本文档为【快速掌握oracle数据库基础知识】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
书云
人民教育工作者
格式:ppt
大小:531KB
软件:PowerPoint
页数:51
分类:企业经营
上传时间:2022-06-22
浏览量:1