数据库原理与技术程学先第二版第8章.ppt
- 文档编号:10022441
- 上传时间:2023-05-23
- 格式:PPT
- 页数:97
- 大小:974.50KB
数据库原理与技术程学先第二版第8章.ppt
《数据库原理与技术程学先第二版第8章.ppt》由会员分享,可在线阅读,更多相关《数据库原理与技术程学先第二版第8章.ppt(97页珍藏版)》请在冰点文库上搜索。
第八章Oracle数据库系统,8.2Oracle10g的体系结构,8.3Oracle10g的安全管理,8.4Oracle10g的空间管理,8.5Oracle10gPL/SQL编程,8.1Oracle数据库概述,退出,本章要点,8.6Oracle数据查询,8.7Oracle系统管理,8.1Oracle数据库概述,R,一、概述ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
二、Oracle10g的特点1首个为网格计算设计的数据库2借助网格计算,提高可用性和可伸缩性3优异的安全特性4借助自我管理数据库降低成本,R,8.1Oracle数据库概述,R,8.1Oracle数据库概述,三、数据库的基本管理1启动数据库启动数据库的命令是Startup,基本命令语法如下:
STARTUP(MOUNT|OPEND);EXCLUSIVE|PARALLEL|NOMOUNT说明:
EXCLUSIVE和PARALLEL表示以独占或共享方式打开。
NOMOUNT表示以例程方式打开或关闭数据库。
R,8.1Oracle数据库概述,【例8.1】打开数据库WaremanageSQLstartupopendWaremanage说明:
“SQL”为SQLPlus提示符。
2关闭数据库语句格式:
SHUTDOWNNORMAL|IMMEDIATE|ABORT|TRANSACTIONAL,说明:
(1)Shutdownnormal,正常关闭数据库。
(2)Shutdownimmediate,立即关闭数据。
(3)Shutdownabort,直接关闭数据库和例程。
(4)Shutdowntransactional,等待所有有事务连接的用户完成事务后再关闭数据库。
R,8.1Oracle数据库概述,3设置数据库选择Oracle-ORacDB10g-homelConfigurationandMigrationToolsDatabaseConfigurationAssistant进行配置。
4创建数据库在一个Oracle10g系统上可以建立多个数据库。
创建数据库的步骤可参照书上内容。
R,8.1Oracle数据库概述,R,8.1Oracle数据库概述,5删除数据库当数据库不再需要或已经测试完毕时,为了增加系统和数据库的执行效率,可以删除不需要的数据库。
具体步骤可参照书中内容。
8.2.1概述Oracle系统的体系结构是指Oracle数据库服务器的主要组成以及这些组成部分间的联系和操作方式。
从宏观上看,Oracle数据库服务器主要由两部分组成:
数据库和实例。
数据库用于保存数据的一系列物理结构和逻辑结构,数据库是静态的。
实例是由服务器在运行过程中内存结构和一系列进程组成的,实例是动态的。
R,R,8.2Oracle10g的体系结构,R,8.2Oracle10g的体系结构,8.2.2物理存储结构Oracle数据库的物理存储结构操作系统下数据库的文件组织和实际的数据存储。
按其作用不同Oracle数据库的物理存储结构可以分为三类:
数据文件日志文件控制文件,R,8.2Oracle10g的体系结构,数据文件每一个Oracle数据库有一个或多个物理的数据文件(datafile)。
一个数据库的这些数据文件包含全部数据库数据。
数据文件有下列特征:
一个数据文件仅与一个数据库联系。
一旦建立,数据文件不能改变大小一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。
R,8.2Oracle10g的体系结构,日志文件每一个数据库有两个或多个日志文件(redologfile)的组。
日志的主要功能是记录对数据所作的修改。
日志文件主要是保护数据库以防止故障。
日志文件中的信息仅在系统故障或介质故障后恢复数据库时使用。
R,控制文件每一个Oracle数据库有一个控制文件(controlfile),它记录数据库的物理结构,包含下列信息类型:
数据库名;数据库数据文件和日志文件的名字和位置。
数据库建立日期。
每一次Oracle数据库的实例启动时,它的控制文件用于标识数据库和日志文件。
8.2Oracle10g的体系结构,8.2.3逻辑、存储结构Oracle数据库逻辑、存储结构是按层次管理的,内存中数据结构分为段、区和块.块是内存与硬盘之间交换的最小单位;区由多块组成,段由多个区组成;从逻辑结构看分为数据库、表空间、逻辑对象。
一个数据库有一到多个表空间;一个表空间可以有多个逻辑对象;1个逻辑对象只属于1个表空间。
R,8.2Oracle10g的体系结构,图8.12数据库、表空间、数据文件、逻辑对象间关系,R,块(block)是oracle数据库进行逻辑管理的最基本单元。
数据库进行读写以块为单位进行。
大小由db_block_size参数决定。
区(extent)是Oracle数据库的最小存储单元。
由一系列连续的块组成的空间。
每一次系统分配和回收空间都以区间为单位进行。
8.2Oracle10g的体系结构,段(segment)是表空间中指定类型的逻辑结构。
由一个或多个区组成。
一个单独的表可以是一个段。
段有以下几种常见类型:
数据段、索引段、回滚段和临时段。
数据对象(LogicObject)或模式对象,是由用户创建的逻辑结构。
如表、视图、索引、簇。
8.2Oracle10g的体系结构,R,表空间(tablespace)是拥有存放表、索引和视图等对象的磁盘逻辑空间。
由一个或多个物理文件表示,是数据库中最顶层的逻辑存储结构,是数据库的逻辑划分。
在Oracle10g中,表空间有以下几种:
系统(SYSTEM)表空间,SYSAUX表空间;回滚(UNDO)表空间,用户(USERS)表空间,8.2Oracle10g的体系结构,R,8.2Oracle10g的体系结构,8.2.4内存结构ORACLE的内存区域主要存储下列信息:
执行的程序代码;连接的会话信息;程序执行期间所需数据及共享的信息和存储在外存储上的缓冲信息。
在一个实例中,一般有三个主要内存区域:
系统全局区(SystemGlobalArea,SGA);程序全局区(ProgramGlobalArea,PGA);用户全局区(UserGlobalArea,UGA)。
R,8.2Oracle10g的体系结构,系统全局区(SGA):
如果多个用户同时连接到同一实例时,在实例的SGA中数据可为多个用户所共享,所以又称为共享全局区。
在SGA中存储信息将内存划分成几个区:
数据库缓冲存储区;日志缓冲区、共享池;请求和响应队列;数据字典存储区和其它各种信息。
R,软件代码区,用于存储正在执行的或可以执行的程序代码。
软件区默认的设置为只读形式,可安装成共享或非共享。
ORACLE系统程序是可共享的,用户程序可以共享也可以不共享。
8.2Oracle10g的体系结构,R,8.2Oracle10g的体系结构,8.2.5数据字典数据字典提供有关该数据库的信息。
可以用SQL存取数据字典,允许查询。
数据库数据字典是由基本表和用户可存取的视图组成。
基本表:
数据字典的基础是一组基本表,存储相关的数据库的信息;用户可存取视图:
视图将基本表中信息解码成可用信息。
数据字典驻留在SYSTEM表空间中。
每一视图集有三种视图包含有类似信息,彼此以前缀相区别,前缀为USER、ALL和DBA。
前缀为USER的视图,为用户视图,是在用户的模式内。
前缀为ALL的视图,为扩展的用户视图(为用户可存取的视图)。
前缀为DBA的视图为DBA的视图。
8.2Oracle10g的体系结构,R,8.3.1用户管理和权限管理用户是允许访问数据库系统的有效账户,是可以对数据库资源进行访问的实体。
用户使用在数据库中创建的用户账户连接到数据库。
用户管理的内容包括:
创建用户。
修改用户。
删除用户。
8.3Oracle10g的安全管理,创建新用户创建用户。
语句格式:
CREATEUSER设置口令。
语句格式:
IDENTIFIEDBY用系统管理员身份登录。
使用conn语句。
给用户授予权限或安排角色,语句格式:
GRANTONTO|PUBLICWITHGRANTOPTION.,8.3Oracle10g的安全管理,【例8.6】创建用户zqh,口令为“zqh,12345”,默认表空间为users,大小为80MB,临时表空间为temp。
1SQLcreateuserzqh-创建用户2identifiedbyzqh,123456-设置口令3defaulttablespaceusers-确定用户的表空间和表空间的大小4temporarytablespacetemp-分配默认的表空间5quota80monusers-分配临时表空间6passwordexpire-在用户第一次登录时提示修改口令,8.3Oracle10g的安全管理,修改用户修改密码、帐户锁定或解锁。
【例8.7】修改用户密码。
SQLalteruserzqhidentifiedbyz123;【例8.8】解除帐户锁定SQLalteruserzqhaccountlock;【例8.9】锁定用户密码SQLalteruserzqhaccountunlock;,8.3Oracle10g的安全管理,R,8.3Oracle10g的安全管理,删除用户删除用户,语句格式:
DropUser;回收权限,语句格式:
REVOKEONFROM|CASCADECONSTRAINTS。
说明:
CASCADECONSTRAINTS表示同时删除具有参照完整性限制条件的对象,即References权限。
R,8.3Oracle10g的安全管理,8.3.2角色管理对相同对象有相同权限的用户归类管理,称为角色。
一种角色包括多个用户,具有相同权限。
角色是权限的集合。
管理角色可以使用角色将权限与其他角色组合起来,以便于为用户授予多个权限和角色。
R,8.3Oracle10g的安全管理,创建角色。
语句格式:
CREATEROLEIDENTIFIEDBY。
授予角色权限用Grant语句对角色进行授权。
修改角色用Alterrole语句修改角色来改变用户的权限,使用revoke语句来回收权限。
删除角色语句格式:
DROPROLE。
R,8.3Oracle10g的安全管理,在系统中,数据字典ROLE_SYS_PRIVS保存了所有角色拥有的权限情况。
字典USER_TAB_PRIVS_MADE保存了所有授权者、被授权者、对象与权限情况。
R,8.4Oracle10g的空间管理,8.4.1表空间表空间是一个逻辑概念,所有的数据实际上放在一个或多个物理文件中,一个物理文件对应一个表空间。
在创建数据库时就必须创建表空间,并指定数据文件。
创建与删除表空间都可以利用Oracle管理工具实现,也可以使用命令完成。
R,创建表空间语句格式:
CREATETABLESPACEDATAFILESIZEK|MREUSEREUSE表示可以重用已有的数据文件。
DEFAULTSTORAGE(INITIALK|MNEXTK|MMINEXTENTSMAXEXTENTS|UNLIMITEDPCTINCREASE)指定分配给表空间新对象的默认存储参数。
ONLINE|OFFLINE指定表空间的状态是联机或脱机。
PERMANENT|TEMPORARY指定表空间的类型是永久还是临时。
MANAGEMENTLOCAL|DICTIONARY。
指定表空间的区管理存储方式是本地管理还是在字典中管理。
8.4Oracle10g的空间管理,R,8.4Oracle10g的空间管理,修改表空间,语句格式:
ALTERTABLESOACERENAMEDATAFILETO对表空间中的数据文件重新命名。
ADDDATAFILE向表空间添加数据文件。
DEFAULTSTORAGEONLINE|OFFLINEPERMANENT|TEMPORARYBEGINBACKUP|ENDBACKUP对表空间中的数据文件执行在线备份。
ENDBACKUP表示在线备份完成。
R,8.4Oracle10g的空间管理,删除表空间语句格式:
DROPTABLESOACEINCLUDINGCONTENTSCASCADECONSTRAINTS说明:
(1)当删除的表空间中含有数据对象时,删除表空间的语句中必须包括:
INCLUDINGCONTENTS。
(2)CASCADECONSTRAINTS表示同时删除表空间中其他表的引用完整性约束,避免对已删除表的主码的引用。
R,查询表空间和数据字典,8.4Oracle10g的空间管理,表8.1与表空间相关的数据字典,8.4.2段创建段,语句格式:
CREATESEGMENTTABLESPACEN指定段所属表空间名。
STORAGE(INITIALK|MNEXTK|MMINEXTENTSMAXEXTENTS|UNLIMITEDPCTINCREASE)指定分配给段的默认空间。
ONLINE|OFFLINE指定表空间的状态是联机或脱机。
8.4Oracle10g的空间管理,R,R,8.4Oracle10g的空间管理,【例8.11】创建一个回滚段,所属表空间名为RBS,每区大小1M。
SQLcreaterollbacksegmentrbs1tablesoacerbs2storage(initial1Mnext1Mminextents1maxextents10optimal6M)说明:
其中OPTIMAL表示当回滚段增长超过其指定值(6M)时,如果没有当前活动事务,将自动收回超过部分。
8.4Oracle10g的空间管理,修改段,语句格式:
ALTERSEGMENTDEFAULTSTORAGEONLINE|OFFLINE删除段,语句格式:
DROPSEGMENT,R,8.4Oracle10g的空间管理,8.4.3表Oracle数据库中有4种类型的表。
普通表:
以无序方式存储在表段中。
簇表:
由共享相同数据块的一组表组成,优点是节省空间,可以改善SQL的查询性能。
索引表:
数据以B+树结构存放在主键所对应的索引段中,索引块不仅包含键列数据,也包含非键列数据。
分区表:
数据划分为更小的部分,分别存储到不同的分区段中。
R,8.4Oracle10g的空间管理,创建表,语句格式:
CREATETABLE.(NULL|NITNULL,PCTFREEINITRANSMAXTRANSTABLESPACEPCTFREE指定预留自由空间(百分比数),默认为10.DEFAULTSTORAGE(INITIALK|MNEXTK|MMINEXTENTSMAXEXTENTS|UNLIMITEDPCTINCREASE)CLUSTER()指定表放置在所指聚簇中。
PARALLEL并行查询进程个数。
AS基于对已存在的表的查询建立新表。
CACHE|NOCACHELOGGING|NOLOGGING,R,修改表,语句格式:
ALTERTABLETO改变表的名称ALTERTABLEADD在表的后面增加一个字段ALTERTABLEMODIFY修改表中字段的定义描述ALTERTABLEADDCONSTRAINTPRIMARYKEY()添加主键约束ALTERTABLECACHE把表放在数据库的内存区ALTERTABLENOCACHE把表从数据库的内存区取出,8.4Oracle10g的空间管理,R,删除表,语句格式:
TRUNCATETABLE只删除数据保留表结构,即清空表或截断表DROPTABLE数据和表结构彻底删除序列管理Oracle序列是一个顺序数发生器,在某些应用(例如凭证序号)中要求关键字值按升或降序自动生成。
子语句格式:
CREATESEQUENCE,8.4Oracle10g的空间管理,R,8.4Oracle10g的空间管理,序列生成说明有如下选项:
STARTWITH:
序列的第1个数字,默认为1。
MINVALUE:
序列最小数。
CYCLE:
在达到限制值后重复。
要删除序列,用DROPSEQUENCE同义词管理:
同义词指为表或列起的别名。
CREATEPUBLICSYNONYMFOR
(1)名字可以是表名,也可以是列名。
(2)PUBLIC表示只能由数据库管理员操作。
R,8.4Oracle10g的空间管理,8.4.4索引索引是一种树状结构,从逻辑设计方面分为:
单列索引和组合索引;唯一性索引、非唯一性索引;基于函数的索引。
从物理实现的角度分为:
分区索引、非分区索引,B树索引;正向索引、反向索引;位图索引和位图联接索引。
R,8.4Oracle10g的空间管理,创建索引,语句格式:
CREATEUNIQUEINDEXONUNIQUE指定创建唯一索引,默认为非唯一索引。
(ASC|DESC)TABLESPACEPCTFREEINITRANSMAXTRANSSTORAGELOGGING|NOLOGGINGNOSORTREVERSEREVERSE指定创建反序索引,R,8.4Oracle10g的空间管理,修改索引,语句格式:
ALTERINDEXRENAMETO改变索引名称ALTERINDEXREBUILDCOMPUTESTATISTICS;收集索引统计信息删除索引,语句格式:
DROPINDEX,R,8.4Oracle10g的空间管理,8.4.4视图创建视图,语句格式:
CREATEORREPLACEVIEWASWITHCHECKOPTIONCONSTRAINTCONSTRAINT_NAMEWITHREADONLY说明:
(1)ORREPLACE表示允许在重名的情况下创建视图。
(2)WITHCHECKOPTION不允许对所选择的视图的行使用插入或修改命令。
删除视图:
DROPVIEW,R,8.5Oracle10gPL/SQL编程,8.5.1PL/SQL简介PL/SQL是Oracle在标准SQL语言基础上的扩展。
PL/SQL不仅允许嵌入SQL语句,而且允许定义变量、常量、使用条件语句和循环语句,允许使用异常处理各种错误。
PL/SQL优点:
(1)有利于客户/服务器环境下的应用。
(2)适合于客户环境。
R,8.5Oracle10gPL/SQL编程,8.5.2PL/SQL语言基础1PL/SQL块结构PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块,PL/SQL块语法:
DECLARE-BEGIN-EXCEPTION-END,R,8.5Oracle10gPL/SQL编程,说明:
声明部分(Declarationsection):
声明部分包含了变量和常量的数据类型和初始值。
由关键字DECLARE开始执行部分(Executablesection):
执行部分是PL/SQL块中的指令部分,由关键字BEGIN开始,异常处理部分(Exceptionsection):
这一部分可选PL/SQL块中的每一条语句都必须以分号结束,。
每一个PL/SQL块由BEGIN或DECLARE开始,以END结束。
注释由-标示。
R,8.5Oracle10gPL/SQL编程,2PL/SQL数据类型标量类型复合类型引用类型LOB类型,R,8.5Oracle10gPL/SQL编程,标量类型,标量(scalar)数据类型没有内部组件,它们大致可分为以下四类:
number;character;date/time;boolean复合类型,PL/SQL有两种复合数据结构:
记录和集合。
记录由不同的域组成,集合由不同的元素组成。
R,8.5Oracle10gPL/SQL编程,记录复合数据类型在使用前必须被定义;由域(由数据元素构成的逻辑组)所组成。
域可以是标量(scalar)数据类型或其他记录类型。
集合INDEX_BY表,集合是稀疏的;嵌套表;VARRAY,不可进行数据绑定,集合是紧密的。
R,8.5Oracle10gPL/SQL编程,PL/SQL记录定义方式显式定义:
使用TYPE命令在声明部分定义变量类型,然后再创建该记录的变量。
语法:
TYPEISRECORD();是由逗号分隔的列表。
隐式定义:
使用%TYPE属性声明,可以动态创建。
R,8.5Oracle10gPL/SQL编程,INDEX_BY表集合定义:
TYPEISTABLEOFNOTNULLINDEXBYBINARY_INTERGET;
(1)可以是任何合法的PL/SQL数据类型,包括:
PLS/INTEGER、SIGNTYPE、和BOOLEAN。
(2)INDEX_BY表不能存储在数据库中。
创建INDEX_BY表的变量:
DECLARETYPEISTABLEOFVARCHAR2(5)INDEXBYBINARY_INTEGERBEGIN,R,8.5Oracle10gPL/SQL编程,嵌套表定义:
TYPEISTABLEOFNOTNULL只能使用标量数据类型字段以及只用于数据库的数据类型。
嵌套表不与表中的其它数据存放在同一个数据块中。
嵌套表中集合可自动设置为NULL。
嵌套表不保证元素的顺序。
嵌套表集合数据是离线存储,适合于大型集合。
R,VARRAY表定义TYPEISVARRAY|VARYINGARRAY()OFNOTNULL是一维元素的数据类型,如果是记录,则只能使用标量数据字段。
VARRAY集合是在线存储,适合于小型集合。
VARRAY表可以顺序保存。
与嵌套表相似,VARRAY能够自动设置为NULL。
VARRAY与表中的其他数据存放在同一个数据块中。
8.5Oracle10gPL/SQL编程,R,8.5Oracle10gPL/SQL编程,LOB(Largeobject)数据类型用于存储类似图像,声音这样的大型数据对象,可以是二进制数据也可以是字符数据;最大长度不超过4G。
支持任意访问方式.大致可分为以下四类:
BFILEBLOBCLOBNCLOB,R,8.5Oracle10gPL/SQL编程,3PL/SQL控制结构控制结构控制PL/SQL程序流程的代码行PL/SQL支持条件控制和循环控制结构。
条件控制:
IF和CASE结构IFTHEN语句IFTHENELSE语句IFTHENELSIF语句,R,8.5Oracle10gPL/SQL编程,循环控制LOOP循环语句EXIT退出循环语句EXITWHEN结束循环语句WHILE.LOOP语句FOR.LOOP语句GOTO语句:
GOTOLABEL对于块、循环、IF语句而言,从外层跳转到内层是非法的。
R,4游标游标是其内部指向被处理的语句的指针或句柄。
Oracle中的游标有两种:
显式游标、隐式游标。
显式游标是用CURSOR.IS命令定义的游标,可以对查询语句(SELECT)返回的多条记录进行处理。
隐式游标是在执行插入(INSERT)、删除(DELETE)、修改(UPDATE)和返回单条记录的查询(SELECT)语句时由PL/SQL自动定义的。
8.5Oracle10gPL/SQL编程,R,8.5Oracle10gPL/SQL编程,显式游标操作打开游标推进游标关闭游标声明显式游标要在程序中使用游标,必须首先定义游标。
CURSORIS,R,8.5Oracle10gPL/SQL编程,打开显式游标OPEN提取游标数据FETCHINTO,或FETECGINTOBUL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 技术 程学先 第二