oracle數據庫對象的創(chuàng)建與使用.ppt_第1頁
oracle數據庫對象的創(chuàng)建與使用.ppt_第2頁
oracle數據庫對象的創(chuàng)建與使用.ppt_第3頁
oracle數據庫對象的創(chuàng)建與使用.ppt_第4頁
oracle數據庫對象的創(chuàng)建與使用.ppt_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章 數據庫對象的創(chuàng)建與使用,5.1 數據庫對象概述,Oracle數據庫的基本對象,Oracle10g對象及模式組織方式,表 table,視圖 view,函數 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)。是行數據在一個特定數據文件中的物理位置。在任何數據庫中行的rowid是不相同的。由于rowid直接指向行數據的物理位置,所以,通過使用rowid來刪除或更新行會比通過全表掃描來確定行從而刪除或更新行要快得多。 rownum只是從表中選擇出的行的序號,與每個具體的行無關。,在原來已有表的基礎上建立一個新表,命令格式: SQLCreate table as select from old_table where condition;,常見的表管理命令,將一個列設置成不可用(將該列設置成unused后,使用戶感覺到該列是不存在的,即使查詢也看不到),SQLalter table employee set unused column job;,刪除表中不可用的列,SQLalter table test drop unused columns;,5.3 表的類型,根據表的存儲結構可分為以下幾類: 常規(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)建。全局臨時表或者是包含特定的會話數據,或者是包含特定的事務數據。,臨時表與常規(guī)表之間的區(qū)別,(1)臨時表在創(chuàng)建后并不象其他常規(guī)表一樣分配段(segment)。 (2)不同的會話使用相同的GTT會得到不同的臨時表空間。 (3)當會話或事務結束時,臨時段自動被清除。臨時表也會隨著數據庫的關閉從臨時段中消失。 (4)包含特定事務數據的臨時表僅在事務打開或活動時可用。一旦事務被提交或回滾關閉,那么,在事務表中的數據則被自動清除。,5.3.3 索引組織表(Index Organized Table),簡稱IOT,所謂索引組織表就是以B樹結構共同存儲行的主鍵和數據的一種存儲方式。數據是存儲在B樹的葉子節(jié)點上。,何時使用IOT最合適呢?,避免冗余數據存儲。當表中若干個列組成主關鍵字且在一行中占較大部分時,建議使用IOT。 開發(fā)大型數據庫(VLDB)和聯(lián)機事務處理OLTP應用時使用IOT。 開發(fā)時間系列的應用。 使用IOT能有效地存儲嵌套表。 使用可擴展的索引數據。 電子商務,互聯(lián)網及數據倉庫。,5.3.4 外部表(External Table),定義: 外部表就是以數據庫內部表的形式定義,且其數據并不在數據庫內部存儲的一種表。該表與數據庫外部某個扁平文件相對應。 扁平文件的格式可有許多種,如文本格式、Microsoft Excel格式等。它是獲取外部數據的一種手段,與SQL*Loader等同屬于析取-轉換-裝載ETL(Extract,Transform,Load)操作。 在使用外部表時,需要使用目錄對象。,5.3.5 分區(qū)表(Partitioning Table),分區(qū)包括分區(qū)表和分區(qū)索引。 所謂分區(qū)表是按照條件把數據分成若干個較小的且更易于管理的片。 分區(qū)表中的每個行被明確地指定給一個分區(qū),分區(qū)關鍵字就決定每個行所在的分區(qū)。分區(qū)關鍵字可以是從1到16個列的集合。,單獨存儲會帶來許多好處:,多個分區(qū)可減少數據丟失或損壞的可能性。 可獨立地備份和恢復每個分區(qū)。 控制每個分區(qū)的映射到磁盤驅動器,這對平衡I/O負載是非常重要的。 可改善可管理性,易用性和性能。 對應用程序來說,分區(qū)是透明的,而標準的DML語句只與分區(qū)的表有關。,5.3.6 簇表(Clustered Table),簇(cluster)是管理表中數據的一種方法。簇是由共享相同數據塊的一組表組成。這些表可以是一個或多個,有可共享的公共列并一起使用。這些表公共列稱為簇關鍵字。 但選擇關鍵字列時也有一些原則: 一個好的聚簇關鍵字應有足夠多的唯一值,即對應于同一個關鍵字值的行有很多。這樣,與之相對應的行才能填充滿一個數據塊。,何時使用簇表呢?,(1)在創(chuàng)建簇表之前,必須先創(chuàng)建簇。簇表的使用依賴于簇。但是,在向簇表插入和更新數據之前,必須在該表上手工創(chuàng)建聚簇索引。使用聚簇并不影響在簇表上創(chuàng)建其他的索引。 (2)表與表之間有主/從參照關系,主要用于經常性的連接查詢操作。 (3)這些表以只讀查詢?yōu)橹?,很少或不做插入更新操作?5.3.7 嵌套表(Nested Table),如果表中列被定義的數據類型是一個表類型,則該表類型就可稱為嵌套表,即表中之表。包含嵌套表的表稱為主表。嵌套表可被用于數據庫表列的數據類型或者是對象表類型的一個屬性。 創(chuàng)建嵌套表的具體步驟為: (1)定義表類型 (2)創(chuàng)建主表,格式與常規(guī)表相同。,5.4 完整性約束,數據完整性的基本約束: 檢查(Check)-在數據字典和系統(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):大多數創(chuàng)建的常規(guī)索引都屬B樹索引。簇索引和唯一性索引都以B樹作為基本結構。 基于函數的索引(Function-Based Indexes) 位圖索引(Bitmap Indexes) 反向鍵索引(Reverse Key Indexes) 降序索引(Descending) 壓縮索引(Compressed Indexes) 本地和全局索引(Local And Global Indexes),5.5.1 B樹索引,B樹索引是最為常見的索引結構,也是多數索引采用的默認結構。這種結構特別適合于檢索高基數數據列,即該列的唯一索引值個數與其數據行數之比接近1的情況。換言之,被索引的列值很少有相同的值。,5.5.2 位圖索引,位圖索引也同樣采用B樹結構,只是索引值全部集中在葉子節(jié)點。位圖中的每個位對應于一個rowid。如果位值為1,則意味著對應于rowid的行包含該索引鍵值。所以,位圖的映射功能是將數據位的位置轉化成實際的r

溫馨提示

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

評論

0/150

提交評論