第四章 數(shù)據(jù)庫對象_第1頁
第四章 數(shù)據(jù)庫對象_第2頁
第四章 數(shù)據(jù)庫對象_第3頁
第四章 數(shù)據(jù)庫對象_第4頁
第四章 數(shù)據(jù)庫對象_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第四章第四章數(shù)據(jù)庫對象回顧q 鎖用于保護多用戶環(huán)境下被修改的數(shù)據(jù)q 鎖分為兩種級別,即行級鎖和表級鎖q 表分區(qū)允許將一個表劃分成幾部分,以改善大型應(yīng)用系統(tǒng)的性能q 分區(qū)方法包括范圍分區(qū)、散列分區(qū)、復合分區(qū)和列表分區(qū)q 分區(qū)維護操作包括添加、刪除、截斷、合并和拆分分區(qū)目標q 使用同義詞q 使用序列q 創(chuàng)建視圖q 創(chuàng)建索引數(shù)據(jù)庫對象簡介 q Oracle 數(shù)據(jù)庫對象又稱模式對象q 數(shù)據(jù)庫對象是邏輯結(jié)構(gòu)的集合,最基本的數(shù)據(jù)庫對象是表q 其他數(shù)據(jù)庫對象包括:數(shù)據(jù)庫對象數(shù)據(jù)庫對象 同義詞序列視圖索引同義詞 3-1q同義詞是現(xiàn)有對象的一個別名。q簡化SQL語句q隱藏對象的名稱和所有者q提供對對象的公共訪問

2、q同義詞共有兩種類型:同義詞私有同義詞公有同義詞私有同義詞只能在其模式內(nèi)訪問,且不能與當前模式的對象同名。(比如scott用戶的emp表,scott用戶不能創(chuàng)建與emp同名的私有同義詞)公有同義詞可被所有的數(shù)據(jù)庫用戶訪問。同義詞 3-2CREATE SYNONYM emp FOR SCOTT.emp;SCOTT.emp的別名模式名表名私有同義詞公有同義詞CREATE PUBLIC SYNONYM emp_syn FOR SCOTT.emp;同義詞名稱同義詞 3-3創(chuàng)建或替換現(xiàn)有的同義詞CREATE OR REPLACE SYNONYM emp_syn FOR SCOTT.emp;替換現(xiàn)有的同義

3、詞SQL DROP SYNONYM emp; SQL DROP PUBLIC SYNONYM emp_syn; 刪除同義詞序列q 序列是用于生成唯一、連續(xù)序號的對象q 序列可以是升序的,也可以是降序的q 使用CREATE SEQUENCE語句創(chuàng)建序列SQL CREATE SEQUENCE toys_seqSTART WITH 10INCREMENT BY 10MAXVALUE 2000MINVALUE 10NOCYCLECACHE 10;指定第一個序號從 10 開始指定序號之間的間隔為 10表示序列的最大值為 2000表示序列的最小值為 10在達到最大值后停止生成下一個值指定內(nèi)存中預先分配的序

4、號數(shù) 訪問序列q通過序列的偽列來訪問序列的值qNEXTVAL 返回序列的下一個值qCURRVAL 返回序列的當前值SQL INSERT INTO toys (toyid, toyname, toyprice) VALUES ( toys_seq.NEXTVAL, TWENTY, 25);SQL INSERT INTO toys (toyid, toyname, toyprice) VALUES ( toys_seq.NEXTVAL, MAGIC PENCIL, 75);指定序列的下一個值SQL SELECT toys_seq.CURRVAL FROM dual;檢索序列的當前值更改和刪除序列S

5、QL ALTER SEQUENCE toys_seq MAXVALUE 5000 CYCLE;不能包含 start with參數(shù)值使用ALTER SEQUENCE語句修改序列,不能更改序列的START WITH參數(shù)使用DROP SEQUENCE語句刪除序列SQL DROP SEQUENCE toys_seq;視圖q 視圖以經(jīng)過定制的方式顯示來自一個或多個表的數(shù)據(jù)q 視圖可以視為“虛擬表”或“存儲的查詢”q 創(chuàng)建視圖所依據(jù)的表稱為“基表”q 視圖的優(yōu)點有:q 提供了另外一種級別的表安全性q 隱藏的數(shù)據(jù)的復雜性q 簡化的用戶的SQL命令q 隔離基表結(jié)構(gòu)的改變q 通過重命名列,從另一個角度提供數(shù)據(jù)創(chuàng)

6、建視圖 3-1studnostudnamestudmarkssubnostudcaste1Rob452Open2James334SC3Jesica405OpenStud_detailsStud_viewstudnostudnamesubno1Rob22James43Jesica5創(chuàng)建視圖CREATE VIEW stud_viewAS SELECT studno, studname, subnoFROM Stud_details;創(chuàng)建視圖 3-2q創(chuàng)建視圖的語法: CREATE OR REPLACE FORCE VIEW view_name (alias, alias.) AS select_s

7、tatement創(chuàng)建視圖 3-3使用 ORDER BY 子句創(chuàng)建視圖CREATE OR REPLACE VIEW ord_ven ASSELECT * FROM vendor_master ORDER BY venname;創(chuàng)建帶有錯誤的視圖CREATE FORCE VIEW ven ASSELECT * FROM venmaster;聯(lián)接視圖 2-1StudnoStudnameSubmrksSubno1Rob4522James3343Jesica404SubnoSubname2English4Maths5ScienceStud_detailsSub_detailsStudnoStudname

8、SubmrksSubname1Rob45English2James33Maths3Jesica40MathsCREATE VIEW Stud_sub_view ASSELECT Studno, Studname, Submrks, SubnameFROM Stud_details, Sub_Details WHERE Stud_details.Subno=Sub_details.Subno;Stud_sub_view聯(lián)接視圖聯(lián)接視圖 2-2創(chuàng)建外聯(lián)接視圖CREATE VIEW ven_ord_outj_view ASSELECT vm.vencode, venname, orderno, od

9、ate, ostatusFROM vendor_master vm, order_master omWHERE vm.vencode = om.vencode(+);SELECT vm.vencode, venname, orderno, odate, ostatusFROM vendor_master vm LEFT OUTER JOIN order_master omON vm.vencode = om.vencode;視圖上的DML語句q在視圖上也可以使用修改數(shù)據(jù)的DML語句,如INSERT、UPDATE和DELETEq視圖上的DML語句有如下限制:q只能修改一個底層的基表q如果修改違反

10、了基表的約束條件,則無法更新視圖q如果視圖包含連接操作符、DISTINCT 關(guān)鍵字、集合操作符、聚合函數(shù)或 GROUP BY 子句,則將無法更新視圖q如果視圖包含偽列或表達式,則將無法更新視圖鍵保留表StudnoStudnameSubmrksSubno1Rob4522James3343Jesica404SubnoSubname2English4Maths5ScienceStud_detailsSub_detailsStudnoStudnameSubmarksSubnoSubname1Rob452English2James334Maths3Jesica404Maths鍵保留表因為 Studno

11、既是 Stud_details 中的主鍵,也是聯(lián)接結(jié)果中的主鍵 Stud_details 為什么是鍵保留表?聯(lián)接視圖q 視圖中可以使用單行函數(shù)、分組函數(shù)和表達式q 使用DROP VIEW語句刪除視圖視圖中的函數(shù)CREATE VIEW item_view AS SELECT itemcode, LOWER(itemdesc) item_descFROM itemfile; SQL DROP VIEW toys_view; 索引 3-1q 索引是與表相關(guān)的一個可選結(jié)構(gòu)q 用以提高 SQL 語句執(zhí)行的性能q 減少磁盤I/Oq 使用 CREATE INDEX 語句創(chuàng)建索引q 在邏輯上和物理上都獨立于表

12、的數(shù)據(jù)q Oracle 自動維護索引索引 3-2q 索引有各種類型,除了標準索引外,還有一些特殊類型的索引:索引的類型基于函數(shù)的索引反向鍵索引位圖索引唯一索引組合索引索引 3-3SQL CREATE INDEX item_index ON itemfile (itemcode) TABLESPACE index_tbs;創(chuàng)建標準索引重建索引SQL ALTER INDEX item_index REBUILD; 刪除索引SQL DROP INDEX item_index; 唯一索引SQL CREATE UNIQUE INDEX item_index ON itemfile (itemcode);

13、q 唯一索引確保在定義索引的列中沒有重復值q Oracle 自動在表的主鍵列上創(chuàng)建唯一索引q 使用CREATE UNIQUE INDEX語句創(chuàng)建唯一索引組合索引SQL CREATE INDEX comp_index ON itemfile(p_category, itemrate);q 組合索引是在表的多個列上創(chuàng)建的索引q 索引中列的順序是任意的q 如果 SQL 語句的 WHERE 子句中引用了組合索引的所有列或大多數(shù)列,則可以提高檢索速度q 反向鍵索引反轉(zhuǎn)索引列鍵值的每個字節(jié)q 通常建立在值是連續(xù)增長的列上,使數(shù)據(jù)均勻地分布在整個索引上q 創(chuàng)建索引時使用REVERSE關(guān)鍵字反向鍵索引SQL

14、CREATE INDEX rev_index ON itemfile (itemcode) REVERSE;SQL ALTER INDEX rev_index REBUID NOREVERSE;位圖索引SQL CREATE BITMAP INDEX bit_index ON order_master (orderno);q 位圖索引適合創(chuàng)建在低基數(shù)列上q 位圖索引不直接存儲ROWID,而是存儲字節(jié)位到ROWID的映射q 減少響應(yīng)時間q 節(jié)省空間占用基于函數(shù)的索引SQL CREATE INDEX lowercase_idx ON toys (LOWER(toyname);q 基于一個或多個列上的函數(shù)或表達式創(chuàng)建的索引q 表達式中不能出現(xiàn)聚合函數(shù)q 不能在LOB類型的列上創(chuàng)建q 創(chuàng)建時必須具有 QUERY REWRITE 權(quán)限SQL SELECT toyid FROM toys WHERE LOWER(toyname)=doll;獲取索引的信息SQL SELECT INDEX_NAME, TABLE_NAME, COLUMN_NAME FROM USER_IND_CO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論