版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ORACLE数据库培训讲义
DBA第一部分
目的:
1、了解ORACLE数据库体系结构。
2、初步从整体上认识ORACLE。
3、学会基础的ORACLE配置。
目录:
1.ORACLE体系结构
2.开始ORACLE
3.ORACLE实例管理
4.创建数据库
5.管理控制文件
6.管理联机日志文件
7.管理表空间和数据库文件
8.管理表、索引、数据完整性
9.管理用户、权限、角色。
1、ORACLE体系结构
Oracle整体结构图
Instance
User
processSharedPoolSGA
Library
DatabaseRedoLog
Cache
BufferCacheBuffer
ServerDataDictionary
process
CacheJavaPoolLargePool
PGA
(PMON)(SMON)(DBWR)(LGWR)(CKPT)(Others)
11
Password
file
1-1
ORACLE数据库服务器
一个ORACLE数据库服务
器:
•就是一个数据库管理系统,它
对信息提供了一种开放的、全面
的、完整的管理。
•由一个ORACLE数据库和一个
ORACLE数据库实例组成。
1-2
ORACLE数据库实例
一个ORACLE数据库实例:
•就是一个访问数据库的方法或方式
•对应于一个也是只能一个打开的数据库
•由内存结构和多个后台服务器进程组成。
Instance
内存结构
后台进程
1-3
ORACLE数据库
一个ORACLE数据库:
•由控制文件、REDO文件、数据文件三种文
件类型组成
•有逻辑和物理二种结构
物理结构
ORACLE数据库的物理结构指的是一组在数据库中,由多个操
作系统文件组合在一起的集合,包括:
•控制文件,包含了用于维护和校验数据库完整性的信息。
•REDO文件,包含了数据库的最近的操作记录日志
•数据文件,最重要部分,包含了数据的信息
1-6
内存结构
ORACLE数据库内存结构包括二个内存区域:
•SystemGlobalArea(SGA):在实例启动时分配,它是实
例中的一个基础组件。
•ProgramGlobalArea(PGA):在服务器进程启动的时候分
配。作
PGA
1-7
SystemGlobalArea
SGA由几种内存结构组成:
•共享池(SharedPool)
・数据库缓冲区(DatabaseBufferCache)
•REDO日志缓冲池(RedoLogBuffer)
・大型池(LargePool)
•JAVA缓冲池(JavaPool)
Instance
1-8
SystemGlobalArea
•是动态的,可在ORACLE运行期间进行调整。
•大小由参数SGA_MAX_SIZE决定。
•在SGA中分配、管理内存时,都是以粒度为单位的,粒
度由以下决定:
•相邻内存块的分配。
•基于SGA_MAX_SIZE:
4M,SGA_MAX_SIZE<128M
16MSGA_MAX_SIZE>128M
1-9
共享池(Sharedpool)
Sharedpool用于存放:
•最近执行过的SQL语句
•最近用过的数据定义
Sharedpool有二个性能有关的内存结构:
•LibraryCache
•DataDictionaryCache
Sharedpool大小由SHARED_POOL_SIZE
1-10
LibraryCache
•LibraryCache用于存放最近执行过的SQL语句、PL/SQL
程序。
•管理内存分配用LRU(leastrecentlyused)算法。
•由二个内存结构组成:
共享SQL语句区域
共享PL/SQL区域
•大小由SharedPool的大小决定。
■1-11
DataDictionaryCache
•DataDictionaryCache用于存放最近使用的用户定义,包
括数据文件、表、索引、用户、权限等。
•在SQL、PL/SQL语句编绎期间,服务器进程会在Data
DictionaryCache中查找最近访问的用户定义,而不会去数
据库文件中找,通过这种方式,加快处理速度,提高系统的
性能。
•DataDictionaryCache大小由SharedPool大小决定。
1
1-12
DatabaseBufferCache
•用于存储从数据库文件中读取出来的数据块复制。
•在读取数据或更新数据操作中,通过DatabaseBuffter
Cache能使性能得到很大的提高。
•DatabaseBufferCache内存管理通过LRU算法实现。
•DB_BLOCK_SIZE决定数据块的大小。
•由下面互不关系的子Cache组成:
•DB_CACHE_SIZE
•DB_KEEP_CACHE_SIZE
•DB_RECYCLE_CACHE_SIZE
1-13
RedoLogBuffer
・记录数据块记录的变化日志
•主要是用于数据库的恢复
•变化记录也被称之为重做体(REDOENTRIES),重做体
包括了重构的信息或重做的变化。
•大小由LOG_BUFFER决定。
RedoLog
Buffer
1-14
LargePool
•在SGA中,是可选的内存区。
・用于减轻SharedPool的负担。
•用于:
共享连接的SESSION内存区(UGA)o
I/O服务进程
备份、恢复操作或RMAN管理
并行执行的消息缓冲区
•内存管理不有LRU算法
•大小用LARGE_POOL_SIZE
•可以动态调整
1-15
JavaPool
•用于ORACLE中内嵌JAVA程序,如JSQL。
•大小由JAVA_POOL_SIZE决定,大小一般都要在
20M以上。如巢不用,把配置值设置为1M。
1-16
ProgramGlobalArea
•为连接到数据库的用户所用
的内存区。
•当用户进程创建时进行分配。PGA
Server
•当用户进程退出时回收。process
•内存为非共享的,分配时只
能分配给一个用户使用。
1-17
ProcessStructure
ORACLE数据库在运行期间使用下面几种进程:
用户进程:一个数据库用户请求连接到
ORACLE服务器时启动。
服务器进程:连接到ORACLE数据库实例,当
一个用户创建一个SESSION时启动。
后台进程:数据库实例启动时启动。
1-18
用户进程(UserProcess)
•一个和ORACLE数据库请求交互的程序。
•和ORACLE建立连接。
•不和ORACLE数据库直接交互。
Connection
established
Databaseuser
1-19
服务器进程(ServerProcess)
•一个和ORACLE数据库直接交互的程序。
•进行普通的调用并返回结果。
•有二种进行连接方式:专用连接、共享连接。
1-20
后台进程(BackgroupProcess)
•用于维护和管理ORACLE数据库的物理结构和储结构之间的
关系。
・主要后台进程包括:
DBWnPMONCKPTLGWRSMON
•可选后台进行包括:
ARCnLMDnQMNnCJQOLMONRECO
DnnnLMSSnnnLCKnPnnn
1-21
数据库写进程(DBWn)
InstanceDBWn进程完成把数据库缓冲
区的内容写回数据库文件,开
始启动于:
•Checkpoint完成
・没有空闲的数据缓冲区
(zfCTTtx/xx*x*•设置时间已到
•有RACping请求
•表空间脱机(offline)
Redo•表空间修改为只读
DataControl榴
filesfiles•删除表、或truncate表
•表空间开始begin
Databasebackup
1-22
日志写(LGWR)
InstanceLGWR进程完成把重做日志
缓冲区的内容写到REDO文
件,开始启动:
•Comrrdt进行提交事务
•Redo缓冲区1/3时
•在redo缓冲区有1M日
志
_,一—®的•每三秒启动一次
DataControlLog•在DBWn进程写之前
files京lesfiles
Database
1-23
系统监控进程(SMON)
Instance
SMON进程主要用于:
•数据库实例恢复
•管理空闲表空间
•回收临时表空间
\^^z
Redo
DataControlLog
filesfilesfiles
Database
1-24
进程监控进程(PMON)
Instance
用于服务器进程运行失败后
的清理工作,包括:
・回滚事务
・释放锁资源
zf***Tx/,\,\x**"*,\,释放相关的其他资源
•重启死的发器
dispatchers)
1-25
检查点进程(CKPT)
CKPT进程主要负责:
•更新文件头信息
•更新控制文件信息
•唤醒DBWn进程
Redo
DataControlLog
filesfilesfiles
Database
1-26
归档进程(ARCn)
•是可选的后台进程
•当归档(ARCHIVELOG)模式已设置的时候,完
成联机日志的自动归档。
•保存在数据库操作中产生的所有日志变化记录,这
些记录全部保存在归档日志中。
ARCn.
1-27
逻辑结构
ORACLE体系结构中的逻辑结构是指数据库中的物理空间如
何分配使用。它由一个层次体系结构组成:
表空间(tablespace)一段(segment)-区(extent)-block(块)
一个数据库由一组表空间组成,一个表空间由一个或多个段
(segment)组成,一个段由多个区组成,一个区由多个数据块
组成,块是数据库中读写操作中最小的组织单位。
Tablespace
Datafile
__Extent_旦!艺叵一一
1-28
2、开始ORACLE
数据库管理维护工具
工具描述
OracleUniversal用于安装、更新、删除ORACLE组件。
Installer(OUI)
OracleDatabase是一个图形化操作工具,用于交互式的
Configuration创建、删除、修改数据库
Assistant
SQL*Plus用于访问、操作数据库的父互式工具。
OracleEnterprise图形化操作工具,用于管理、监控、性
Manager能调整等操作。
2-1
数据库管理维护工具・OUI
E凶
欢迎使用
OracleUniversalInstaller将指导您完成Oracle产品的安装和配置
单击"下一步"可以向前一步.
单击"上一步"可以后退一步.
单击“已安装产品,可以查看所有已安装的产品
卸装产品.
关于OracleUniversalInstaller,
上一
2-2
数据库管理维护工具・DBCA
2-3
数据库管理维护工具-SQLPLUS
2-4
数据库管理维护工具OEM
文件(日导航器(电对象(0)工具①配置©帮助(由ORACLE
EnterpriseManagef
iba数据库OracleEnterpriseManager
OracleEnterpriseManager是一个菅理捱
管理完整的Oracle环境,包括数据库,
IAS服务器,应用程序和服务。
诊断,修改和优化多个数据库。
在多个系统上,按不同的附间间隔调度
通过网络管理数据库条件。
管理来自许多位置的多个网络节点和服
和其他管理员共享任务。
将相关的服务组合在一起,便于对任务
的管理。
启动集成的Oracle和第三方工具。
有关Console的详细信
请单击速成教学按钮
2-5
3、管理ORACLE实例
初始化参数文件
OracleInstance
SGA
SharedPool
LibraryDatabaseRedoLog
CacheBufferCacheBuffer
DataDictionary
CacheJavaPooLargePool
spfiledbOl.ora
CONNECT/ASSYSDBA
STARTUP
3-1
初始化参数文件
•数据库实例启动时所用的配置参数。
,有二种类型:
•明确指定的,在参数文件中配置说明。
•默认的,在参数文件中不指定,采用系统默认值。
・一个数据库中可有多个参数文件,但只有一个是默认
的,INITVSIDNORA或SPFILEvSID>.ORA
•有二种类型
•静态文本文件,PFILE
•二进制文件,SPFILE,在数据库运行期间可修改。
3-2
启动数据库操作
启动数据库时,默认读取参数次序:
•SPFILE<SID>.ORA
•默认SPFILE
•INIT<SID>.ORA
•默认PFILE
STARTUP
指定PFILE可以忽略读取参数次序,直接有用指定PFILE
STARTUPPFILE=$ORACLE_HOME/dbs/initDBAl.ora
PFILE可以引用到SPFILE中:
SPFILE=/database/startup/spfileDBAl.ora
3-3
启动数据库过程
OPEN
STARTUPAllfilesopenedas
describedbythecontrol
MOUNTfileforthisinstance
Controlfile
openedforthis
NOMOUNTinstance
Instance
started
SHUTDOWN
SHUTDOWNI
3-4
关闭数据库
SHUTDOWN[immediate]/[abort]/[transactional]
|A|1
ShutdownModeTN
AllownewconnectionsNoNoNoNo
|No|Yes
WaituntilcurrentsessionsendNoNo
Yes|
WaituntilcurrenttransactionsendNoNoYes
ForceacheckpointandclosefilesNoYesYesYes
关闭模式:
-A=ABORT
-I=IMMEDIATE
-T=TRANSACTIONAL
-N=NORMAL
3-5
通过诊断文件监控数据库
诊断文件:
•包含了实例运行期间所发生的事件相关的信息。
•用于分析解决问题。
•用于的基于日常的数据库管理比较好的方式
诊断文件有几种类型:
•alertvSID>.log文件,包括了数据库日常操作事件。
位置由参数backgroup_dump_dest决定
・后台进程跟踪文件,存放当后台进程运行出错时输出
的信息。位置由参数backgroup_dump_dest决定。
・用户跟踪文件,存放用户操作发生错误信息或用户
直接导出(一般通过DUMP)的相关信息。位置由参
数:user_dump_dest决定。
3-6
4、创建数据库
创建数据库先决条件
创建数据库前,必须有下列先决条件:
•一个用户帐号,这个帐号的认证方式是下列其
中之一:
・操作系统认证
•密码文件认证
•足够内存启动实例(一个实例最少内存要求
50M以上)
,足够的硬盘空间(一个基本的数据库要求1G以
上)
4-1
操作系统环境配置
在操作系统中设置下列的环境变量:
•ORACLE_BASE
•ORACLE_HOME
•ORACLE_SID
•ORA_NLS33
•PATH
•LD_LIBRARY_PATH
4-2
DatabaseConfigurationAssistant
用DatabaseConfigurationAssistant,完成下歹U的
功能:
•创建数据库
•配置数据库选项
•删除数据库
•管理数据库模板
•通过预定义模板配置生成新的模板
•从当前存在的数据库中生成新的模板
・删除数据库模板
4-3
用DBCA创建数据库
1、选择数据库选项(创建、删除、修改数据库等)
2、指定数据库类型(数据仓库、通用、新数据库等)
3、指定全局数据库名和SID
4、选择特性(专用模式、共享模式)
5、选择数据库可选项(只有类型是创建新数据库才会出现)
6、指定内存、字符集、数据库文件大小、文件位置等选项。
7、定义数据库存储选项。
8、最后一项:
•创建数据库
•保存为模板
•产生数据库创建脚本
4-4
5、管理控制文件
控制文件
,是一个二进制文件
•定义物理数据库的当前状态
•用于维护数据库的完整性
•数据库启动到MOUNT状态时
要读控制文件Database
Control
•一组控制文件对于一个数据库files
•控制文件丢失时,要进行数据
库的恢复
•控制文件大小在数据库创建时
指定,或重建控制文件时指定。
5-1
控制文件内含信息
一个控制文件包含下面的信息:
•数据库名称和标识
•数据库创建的时间戳
•表空间名
Database
•数据库文件和联机日志文件的名
Control
称和所处位置files
•当有在线联机日志的序列号
・检查点(CHECKPOINT)信息
•联机日志归档信息
•备份信息
5-2
多重控制文件
为了防止控制文件的损坏导致数据库无法正常运行,一个数据库
中会设置多个相同控制文件的COPY,这就是多重控制文件。
CONTROLFILES=
$HOME/ORADATA/u01/ctrl01.ctl,$HOME/ORADATA/u02/ctrl02.ctl
5-3
使用SPFILE实现多重控制文件
修改SPFILE
ALTERSYSTEMSETcontrol_files=
*$HOME/ORADATA/u01/ctrl0T.ctl1,
*$HOME/ORADATA/u02/ctrl02.ctl1SCOPE=SPFILE;
正常关闭数据库
shutdownimmediate
创建额外的控制文件
cp$HOME/ORADATA/u01/ctrl01.ctl
$HOME/ORADATA/u02/ctrl02.ctl
启动数据库
startup
5-4
使用PFILE实现多重控制文件
正常关闭数据库
shutdownimmediate
创建额外的控制文件
cp$HOME/ORADATA/u01/ctrl01.ctl
$HOME/ORADATA/u02/ctrl02.ctl
编辑PFILE文件,增加控制文件配置信息到PFILE参数文件
CONTROL_FILES=$HOME/ORADATA/u01/ctrl01.ctl,
-$HOME/ORADATA/u02/ctrl02.ctl)
启动数据库
startup
5-5
在数据库中查询控制文件信息
控制文件状态和的位置等相关信息可以通过下列查
询视图的SQL语句获得:
•V$CONTROLFILE:显示与实例相关的所有控制文件
的名称和状态。
•V$PARAMETER:显示所有参数的名称和状态。
•SHOWPARAMETERCONTROL_FILES:显示控制
文件的名称、状态、和位置。
SQL>select*fromv$controlfile;
STATUSNAME
D:\DATABASE\ORACLE9I\ORfiDATA\ORADB\CONTROL01.CTL
D:\DATABfiSE\ORfiCLE9I\ORfiDATA\ORADB\CONTROL02.CTL
D:\DATABASE\ORfiCLE9I\ORADATA\ORADB\CONTROL03.CTL
5-6
6、管理联机日志文件
联机日志文件介绍
・记录数据生产的所有变化。
•提供了恢复机制,用于数据库实例破坏的数据恢复。
•以组的形式组织管理。
•最少要有二个组,每个组以一个到多个文件组成。当
一个组有多个文件的时候,建议不要把所有文件放在同
一个地方。
Redo
程
6-1
联机文件结构
Group1Group2Group3
Diski
Member
MemberDisk2
6-2
联机文件工作方式
•联机日志文件的以循环的方式进行使用的。
•当一个联机日志文件记录的日志信息满的时候,
LGRW进程会把把日志写到下一组的文件。即发生
下列动作:
・调用日志交换(altersystemswitchlogfileo
・检查点(checkpoint)操作。
•相关信息写入控制文件。
6-3
手工联机日志switch和checkpoint
手工联机日志交换:
ALTERSYSTEMSWITCHLOGFILE;
通过设置下列参数进行定期Checkpoint:
FAST_START_MTTR_TARGET.
FAST_START_MTTR_TARGET=600
手工checkpoint用ALTERSYSTEMCHECKPOINT命令:
ALTERSYSTEMCHECKPOINT;
6-4
增加联机日志组
ALTERDATABASEADDLOGFILEGROUP3
(1$HOME/ORADATA/u01/log3a.rdo,,
1$HOME/OR2kDATA/u02/log3b.rdo')
SIZEIM;
logla.rdolog2a.rdo
loglb.rdolog2b.rdo
Group1Group2
6-5
删除联机日志组
ALTERDATABASEDROPLOGFILEGROUP3;
Group1Group2Group3
6-7
删除联机日志组文件成员
ALTERDATABASEDROPLOGFILEMEMBER
1$HOME/ORADATA/u04/log3c.rdo';
Group1Group2
6-8
联机日志文件信息查询
联机日志组和文件相关的信息可以通过查询下列
的视图取得:
•V$LOG
•V$LOGFILE
SQL>select*fromu$log;
GROUP*THREADMSEQUENCEttBVTESMEMBERSARCSTATUSFIRST_CHANGEttFIRST.TIME
11820971521NOCURRENT562227403-7月-05
21620971521YESINACTIUE562048503-7月-05
31720971521YESfiCTIUE562206903-7月-05
SQL>select*fromu$logfile;
GROUPttSTATUSTYPEMEMBER
1ONLINED:\DATABASE\ORACLE9I\ORADATA\ORADB\REDO01.LOG
3ONLINED:\DATABASE\ORACLE9I\ORADATA\ORADB\REDO03.LOG
2ONLINED:\DATABASE\ORACLE9I\ORADATA\ORADB\REDO02.LOG
SQL>
6-9
归档日志文件
•已写满的联机日志文件可以归档到某一指定地方。
•在数据库运行中,以归档模式运有二个方面的好处:
•恢复:数据库的文件备份、加上归档文件和联机日志,
可以保存所有的已处理的事务。当数据库发生破坏时,
通过这些文件可以完成数据库的恢复。
•备份:在运行的数据库中,可以进行备份。
•默认的情况下,数据库是运行在非归档模式下的。
•归档主要是由进程ARCn进程自动完成。
•可以通过SQL语句手工进行归档。
•通过配置,可以进行日志的多份归档。
6-10
7、管理表空间和数据文件
表空间和数据文件
ORACLE数据的存储,在逻辑上讲,是存储在表空间里;
在物理上讲,是存储在数据文件中。
•表空间:
•一个表空间只能属于一个数据库。
•一个表空间由多个数据文件组成。
•进一步划分,可以分成逻辑上的多个存储单元。
•数据文件:
•一个数据库文件只能属于其中一个表空Database
•是具体存放数据的地方。
Tablespace
Datafiles
7-1
表空间类型
•系统表空间
•数据库创建的时候一起创建。
•包含了系统字典表信息。
•包含了系统回滚空间
•非系统表空间
•由用户进行管理分配。
•用于存储用户数据。
•分为临时表空间、回滚表空间、普通表空间。
7-2
表空间的空间管理方式
•本地管理表空间管理:
•表空间空闲空间部分由表空间自己进行管理。
•通过位图进行空闲空间的记录。
•位图每一位对应一个块或一组块。
•位图每一位用。或1表示,1表示对应的空间已用,0表
不未用。
•字典管理表空间管理:
•表空间空闲空间部分由数据字典表进行管理。_
•当表空间进行分配或回收时,字典表记录会进行更新操
作。
7-3
创建表空间
创建表空间用createtablespace命令:
CREATETABLESPACEuserdata
DATAFILE*/uOl/oradata/userdataOl.dbf*SIZE5M;
创建本地管理表空间:
CREATETABLESPACEuserdata
DATAFILE1/uOl/oradata/userdataOl.dbf*SIZE500M
EXTENTMANAGEMENTLOCALUNIFORMSIZE128K;
创建字典管理表空间:
CREATETABLESPACEuserdata
DATAFILE*/uOl/oradata/userdataOl.dbf*
SIZE500MEXTENTMANAGEMENTDICTIONARY
DEFAULTSTORAGE
(initialIMNEXT1MPCTINCREASE0);
7-4
回滚表空间
•用于存储回滚记录信息。
•不能包含其他对象。
•管理都是以本地表空间方式进行管理。
•管理方式建议采用自动管理方式(91以后)
CREATEUNDOTABLESPACEundol
DATAFILE'/uOl/oradata/undoOl.dbf1SIZE40M;
7-5
临时表空间
•用于数据处理过程中的排序操作。
•可以由多个用户进行共享。
•不能包含任何长期保留的信息。
•强烈建议以本地表空间的管理方式进行临时表空间的
管理
CREATETEMPORARYTABLESPACEtemp
TEMPFILE*/uOl/oradata/tempOl.dbf1SIZE20M
EXTENTMANAGEMENTLOCALUNIFORMSIZE4M;
7-6
只读表空间
通过下列SQL语句把表空间修改为只读表空间:
ALTERTABLESPACEuserdataREADONLY;
•数据只能进行读,不能进行写(如更新数据)操作。
•对象(如表、索引)可以从表空间中删除。
7-7
查询表空间信息
获取表空间和数据文件的相关信息可以查询下列
视图:
表空间信息:
dba_tablespaces
V$tablespace
数据文件信息:
dba_data_files
v$datafile
临时表空间信息:
dba_temp_files
v$tempfile
7-8
、管理表、索引、数据完整性
用户数据存储方式
RegulartablePartitioned
table
Index-organizedCluster
table
8-1
ORACLE内置数据类型
Datatype
Relationship
1-REF
LDATE
-TIMESTAMP
-RAW(N)
-BLOB,CLOB,
NCLOB,BFILE
-LONG,LONGRAW
_ROWID,UROWID
8-2
创建表
CREATETABLEhr.employees(
employee_idNUMBER(6),
first__nameVARCHAR2(20),
last_nameVARCHAR2(25),
emailVARCHAR2(25),
phone_numberVARCHAR2(20),
hire_dateDATEDEFAULTSYSDATE,
job_idVARCHAR2(10),
salaryNUMBER(8,2),
commission_j5ctNUMBER(2,2),
manager_idNUMBER(6),
department_idNUMBER(4))
TABLESPACEUSERS;
8-3
创建表原则
把表分布在不同的表空间。
•创建的表不能放在SYSTEM表空间、UNDO表
空间、TEMPORARY表空间。
•尽量使用本地管理表空间,减少表空间的碎片。
•在业务量繁忙、数据量大的情况下,表和索引尽
量放在不同的表空间。
•当数据量非常大的时候,可考虑分区表。
8-4
创建临时表
仓建临时表用GLOBALTEMPORARY句:
CREATEGLOBALTEMPORARYTABLE
hr.employees_temp
ASSELECT*FROMhr.employees;
•临时表只存在于一个事务、一个连接SESSION活动期
间。
•DML操作没有锁的概念。
•可以在临时表上进行创建索引、视图、触发器等。
8-5
Truncate、delete、Drop表
TRUNCATETABLEhr.employees;
Truncate表相当于删除一个表的所有数据,同时回
收表空间。
Deletefromhr.departments;
正常删除一个表的所有数据,不会回收使用的空间。
Droptablehr.departments;
正常删除表,回收使用的空间。
8-6
索引分类
•从逻辑上分:
•单列或多列组合索引
•唯一或非唯一索引
•函数索引
•Domain索弓I
•从物理上分:
•分区索引和非分区索引
・B・TREE索引和反转索引
•位图索引
8-7
■TREE索弓I
8-8
位图索引
Table
Index
n
ROWIDROWIDbitmap
<Blue,10.0.3,12.8.3,1000100100010010100>
<Green,10.0.3,12.8.3,0001010000100100000>
<Red,10.0.3,12.8.3,0100000011000001001>
►〈Yellow,10.0.3,12.8.3,0010001000001000010>
8-9
■TREE索弓|、位图索引比较
B-tree索引B让map索弓I
适合于高基数的情况下适合于低基数的情况下
修改索引值消耗少的资修改索引值消耗非常多
源的资源
在query语句中,不能用在query语句中,可以直
于逻辑运算接用于逻辑运算
多用于OLTP系统多用于DSS系统
8-10
创建索引
创建B-TREE索弓|:
CREATEINDEXhr.employees_last_name_idx
ONhr.employees(last_name)PCTFREE30
STORAGE(INITIAL200KNEXT200K
PCTINCREASE0MAXEXTENTS50)
TABLESPACEindx;
创建BITMAP索弓I:
CREATEBITMAPINDEXorders_region_id_idx
ONorders(region_id)PCTFREE30
STORAGE(INITIAL200KNEXT200K
PCTINCREASE0MAXEXTENTS50)
TABLESPACEindx;
8-11
数据完整性
约束名描述
Notnull指定某一列值不能为空。
unique列值或组合列值是唯一的。
Primarykey指定某一列值或组合列值作为表的
主健值,即唯一。
Foreignkey指定某一列值或组合列值必须来源
于另一表的某一列值或组合列值。
check指明某一列值或组合列值必须满足
指定条件。
8-12
数据完整性检查过程
nDML
Statement
Checknondeferred
constraints
COMMIT
Checkdeferred
constraints
8-13
创建表时定义约束
CREATETABLEhr.employee(
idNUMBER(7)
CONSTRAINTemployee_id_pkPRIMARYKEY
DEFERRABLE
USINGINDEX
STORAGE(INITIAL100KNEXT100K)
TABLESPACEindx,
last_nameVARCHAR2(25)
CONSTRAINTemp1oyee_last_name_nnNOTNULL,
dept_idNUMBER(7))
TABLESPACEusers;
8-14
创建约束实例
创建主键:
altertableEMP
addconstraintPK_EMP_NOprimarykey(EMPNO);
创建外键:
altertableEMP
addconstraintFK_DEPT_NOforeignkey(DEPTNO)
referencesdept(DEPTNO);
仓ll建check:
altertableEMP
addconstraintCK_EMP_ID
check(empno>1000andempno<9999);
8-15
9、管理用户、权限、角色
用户、安全机制
9-1
数据库方案
・一个方案就是对象集合的
命名。SchemaObjects
•当创建一个用户的时候、Tables
相对应的方案也会自动创建。Triggers
用户删除的时候、对应的方Constraints
案也会删除。Indexes
Views
・一个用户只能和一个方案
相关联。即一个用户只能有Sequences
一个方案。Storedprogramunits
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论