




已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第5章 數(shù)據(jù)庫對象的創(chuàng)建與使用,5.1 數(shù)據(jù)庫對象概述,Oracle數(shù)據(jù)庫的基本對象,Oracle10g對象及模式組織方式,表 table,視圖 view,函數(shù) function,過程 procedure,觸發(fā)器 trigger,包 package,對象類型 object type,索引 index,同義詞 synonyms,序列 sequence,用create table命令創(chuàng)建表,SQLcreate table dept(deptno number(2) not null, dname varchar2(14 byte), loc varchar2(13 byte), constraint pk_dept_1 primary key(deptno) using index tablespace rensh_app storage ( initial 64k next 5k minextents 1 maxextents 2147483645 pctincrease 1 freelists 1 freelist groups 1) pctfree 10 initrans 2 maxtrans 255) tablespace rensh_app pctfree 10 pctused 40 initrans 1 maxtrans 255 storage ( initial 64k next 0k minextents 1 Maxextents 2147483645 pctincrease 0 freelists 1 freelist groups 1) logging;,注意: 兩個非常重要的偽列:rowid和rownum。 rowid是偽列(pseudo-column)。是行數(shù)據(jù)在一個特定數(shù)據(jù)文件中的物理位置。在任何數(shù)據(jù)庫中行的rowid是不相同的。由于rowid直接指向行數(shù)據(jù)的物理位置,所以,通過使用rowid來刪除或更新行會比通過全表掃描來確定行從而刪除或更新行要快得多。 rownum只是從表中選擇出的行的序號,與每個具體的行無關(guān)。,在原來已有表的基礎(chǔ)上建立一個新表,命令格式: SQLCreate table as select from old_table where condition;,常見的表管理命令,將一個列設(shè)置成不可用(將該列設(shè)置成unused后,使用戶感覺到該列是不存在的,即使查詢也看不到),SQLalter table employee set unused column job;,刪除表中不可用的列,SQLalter table test drop unused columns;,5.3 表的類型,根據(jù)表的存儲結(jié)構(gòu)可分為以下幾類: 常規(guī)表,即通常使用的表,也稱為堆表(Heap Table). 全局臨時表(Global Temporary Table),簡稱為GTT,也稱為臨時表. 組織索引表Index Organized Table,簡稱IOT. 外部表(External Table) 分區(qū)表(Partitions Table) 蔟表(Clustered Table) 嵌套表(Nested Table) 對象表(Object Table) XML表,5.3.2 全局臨時表(Global Temporary Table),它總是在用戶的臨時表空間中創(chuàng)建。全局臨時表或者是包含特定的會話數(shù)據(jù),或者是包含特定的事務(wù)數(shù)據(jù)。,臨時表與常規(guī)表之間的區(qū)別,(1)臨時表在創(chuàng)建后并不象其他常規(guī)表一樣分配段(segment)。 (2)不同的會話使用相同的GTT會得到不同的臨時表空間。 (3)當會話或事務(wù)結(jié)束時,臨時段自動被清除。臨時表也會隨著數(shù)據(jù)庫的關(guān)閉從臨時段中消失。 (4)包含特定事務(wù)數(shù)據(jù)的臨時表僅在事務(wù)打開或活動時可用。一旦事務(wù)被提交或回滾關(guān)閉,那么,在事務(wù)表中的數(shù)據(jù)則被自動清除。,5.3.3 索引組織表(Index Organized Table),簡稱IOT,所謂索引組織表就是以B樹結(jié)構(gòu)共同存儲行的主鍵和數(shù)據(jù)的一種存儲方式。數(shù)據(jù)是存儲在B樹的葉子節(jié)點上。,何時使用IOT最合適呢?,避免冗余數(shù)據(jù)存儲。當表中若干個列組成主關(guān)鍵字且在一行中占較大部分時,建議使用IOT。 開發(fā)大型數(shù)據(jù)庫(VLDB)和聯(lián)機事務(wù)處理OLTP應(yīng)用時使用IOT。 開發(fā)時間系列的應(yīng)用。 使用IOT能有效地存儲嵌套表。 使用可擴展的索引數(shù)據(jù)。 電子商務(wù),互聯(lián)網(wǎng)及數(shù)據(jù)倉庫。,5.3.4 外部表(External Table),定義: 外部表就是以數(shù)據(jù)庫內(nèi)部表的形式定義,且其數(shù)據(jù)并不在數(shù)據(jù)庫內(nèi)部存儲的一種表。該表與數(shù)據(jù)庫外部某個扁平文件相對應(yīng)。 扁平文件的格式可有許多種,如文本格式、Microsoft Excel格式等。它是獲取外部數(shù)據(jù)的一種手段,與SQL*Loader等同屬于析取-轉(zhuǎn)換-裝載ETL(Extract,Transform,Load)操作。 在使用外部表時,需要使用目錄對象。,5.3.5 分區(qū)表(Partitioning Table),分區(qū)包括分區(qū)表和分區(qū)索引。 所謂分區(qū)表是按照條件把數(shù)據(jù)分成若干個較小的且更易于管理的片。 分區(qū)表中的每個行被明確地指定給一個分區(qū),分區(qū)關(guān)鍵字就決定每個行所在的分區(qū)。分區(qū)關(guān)鍵字可以是從1到16個列的集合。,單獨存儲會帶來許多好處:,多個分區(qū)可減少數(shù)據(jù)丟失或損壞的可能性。 可獨立地備份和恢復(fù)每個分區(qū)。 控制每個分區(qū)的映射到磁盤驅(qū)動器,這對平衡I/O負載是非常重要的。 可改善可管理性,易用性和性能。 對應(yīng)用程序來說,分區(qū)是透明的,而標準的DML語句只與分區(qū)的表有關(guān)。,5.3.6 簇表(Clustered Table),簇(cluster)是管理表中數(shù)據(jù)的一種方法。簇是由共享相同數(shù)據(jù)塊的一組表組成。這些表可以是一個或多個,有可共享的公共列并一起使用。這些表公共列稱為簇關(guān)鍵字。 但選擇關(guān)鍵字列時也有一些原則: 一個好的聚簇關(guān)鍵字應(yīng)有足夠多的唯一值,即對應(yīng)于同一個關(guān)鍵字值的行有很多。這樣,與之相對應(yīng)的行才能填充滿一個數(shù)據(jù)塊。,何時使用簇表呢?,(1)在創(chuàng)建簇表之前,必須先創(chuàng)建簇。簇表的使用依賴于簇。但是,在向簇表插入和更新數(shù)據(jù)之前,必須在該表上手工創(chuàng)建聚簇索引。使用聚簇并不影響在簇表上創(chuàng)建其他的索引。 (2)表與表之間有主/從參照關(guān)系,主要用于經(jīng)常性的連接查詢操作。 (3)這些表以只讀查詢?yōu)橹?,很少或不做插入更新操作?5.3.7 嵌套表(Nested Table),如果表中列被定義的數(shù)據(jù)類型是一個表類型,則該表類型就可稱為嵌套表,即表中之表。包含嵌套表的表稱為主表。嵌套表可被用于數(shù)據(jù)庫表列的數(shù)據(jù)類型或者是對象表類型的一個屬性。 創(chuàng)建嵌套表的具體步驟為: (1)定義表類型 (2)創(chuàng)建主表,格式與常規(guī)表相同。,5.4 完整性約束,數(shù)據(jù)完整性的基本約束: 檢查(Check)-在數(shù)據(jù)字典和系統(tǒng)中用C表示; 主鍵(Primary key)-用P表示; 外鍵(Foreign Key)-用R表示; 唯一性(Unique)-用U表示; 視圖上的只讀(Read Only)-用O表示; 視圖上選擇(Check Option On a View)-用V表示。,5.5 索 引,在Oracle中,有以下幾種類型的索引: B樹索引(B*Tree Indexes):大多數(shù)創(chuàng)建的常規(guī)索引都屬B樹索引。簇索引和唯一性索引都以B樹作為基本結(jié)構(gòu)。 基于函數(shù)的索引(Function-Based Indexes) 位圖索引(Bitmap Indexes) 反向鍵索引(Reverse Key Indexes) 降序索引(Descending) 壓縮索引(Compressed Indexes) 本地和全局索引(Local And Global Indexes),5.5.1 B樹索引,B樹索引是最為常見的索引結(jié)構(gòu),也是多數(shù)索引采用的默認結(jié)構(gòu)。這種結(jié)構(gòu)特別適合于檢索高基數(shù)數(shù)據(jù)列,即該列的唯一索引值個數(shù)與其數(shù)據(jù)行數(shù)之比接近1的情況。換言之,被索引的列值很少有相同的值。,5.5.2 位圖索引,位圖索引也同樣采用B樹結(jié)構(gòu),只是索引值全部集中在葉子節(jié)點。位圖中的每個位對應(yīng)于一個rowid。如果位值為1,則意味著對應(yīng)于rowid的行包含該索引鍵值。所以,位圖的映射功能是將數(shù)據(jù)位的位置轉(zhuǎn)化成實際的r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預(yù)防感冒安全課件
- 儀器管理標識培訓(xùn)
- 科室職業(yè)健康培訓(xùn)
- 音樂課件軟件小學(xué)生
- 水肌酸產(chǎn)品項目建設(shè)管理方案(參考模板)
- 電網(wǎng)側(cè)獨立儲能示范項目環(huán)境影響報告書(范文模板)
- 2025年脲醛塑料項目合作計劃書
- xx片區(qū)城鄉(xiāng)供水一體化項目風(fēng)險管理方案(范文模板)
- 2025年真空電子器件及零件項目建議書
- 2025年抗?jié)儾∷庬椖拷ㄗh書
- 《食品生產(chǎn)經(jīng)營企業(yè)落實食品安全主體責(zé)任監(jiān)督管理規(guī)定》解讀與培訓(xùn)
- 2025年日歷表(A4版含農(nóng)歷可編輯)
- 高空作業(yè)車外墻施工方案
- 扶貧農(nóng)產(chǎn)品購銷合同協(xié)議(農(nóng)產(chǎn)品購銷合同模板)
- 汽車維修高級工考試試題及參考答案
- 檢驗科安全管理制度匯總
- GB/T 5782-2016六角頭螺栓
- GB/T 23445-2009聚合物水泥防水涂料
- GB/T 13451.2-1992著色顏料相對著色力和白色顏料相對散射力的測定光度計法
- GB/T 11264-2012熱軋輕軌
- 山東省中小學(xué)校檔案管理暫行辦法
評論
0/150
提交評論