ORACLE數據庫培訓講義_第1頁
ORACLE數據庫培訓講義_第2頁
ORACLE數據庫培訓講義_第3頁
ORACLE數據庫培訓講義_第4頁
ORACLE數據庫培訓講義_第5頁
已閱讀5頁,還剩104頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

提交評論