首頁  >  文章  >  資料庫  >  oracle物件有哪些

oracle物件有哪些

青灯夜游
青灯夜游原創
2022-02-24 18:36:456588瀏覽

oracle物件有:1、表(Table);2、索引(Index);3、簇(Cluster);4、視圖;5、Synonym;6、序列(Sequence);7、流程( Procedure)和函數(Function);8、觸發器;9、約束等。

oracle物件有哪些

本教學操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。

Oracle的資料庫物件有哪些:

資料庫的功能就是組織管理和儲存各種資料庫物件。資料庫中的物件是我們進行資料管理的基本。本篇會回顧資料庫物件的一些基本知識,讓我們更清楚的了解這些Oracle資料庫物件。

1. 表(Table):

我們操作資料庫的時候,大部分都是操作表來完成的。表是一個邏輯概念,是資料庫組織管理資料的基本單位。

表可以分為關係表和物件表。關係表包含堆疊表、索引組織表、外部表。我們常用的為堆表。

堆表對應的段是以堆的結構形式儲存的,儲存的資料邏輯上市無序的。

表與段(Segment)對應的關係如下

對於非分區表,一個表對應一個段;

對於分區表,一個分區對應一個段;

對於有子分區的表,一個子分區對應一個段;

其他的資料庫物件與此類似

1.1 表分區
表格分區(Partition),就是根據用戶的資料狀況和業務需求,將表中的資料由一個段中變為多個段存儲,以方便對用戶資料的管理與維護,提升查詢操作的效能。當然也有一些缺點,使用不當的話會出現一些性能問題;應用分區表需要有更多的經驗,更全面的考量,這也對開發者提出了更高的要求。

何時應用分區:

首先需要考慮的是資料量,足夠大的資料量才有分區的必要,少量資料根本沒必要進行分區。 Oracle官方推薦,表格所佔的儲存空間超過2GB時,可以考慮對錶進行分割。一般來說盡量避免分區,需要分區一定要有充分的理由。
如果目前非分區的表已經影響了使用者對資料的管理和維護,可以考慮分區。
分割區之後是否能提升使用者的查詢及操作效能。
關於如何分區,我們後面的文章在繼續分析。

2. 索引(Index):

#索引是建立在表格上的邏輯物件。索引可以提高表格資料的存取查詢效率,對效能最佳化有著非常大的作用。索引也是和一個或多個段相關聯,索引最終儲存的位置也是段。不同類型的索引有不同的儲存邏輯結構,如B樹,Bitmap(點陣圖)等。

索引是表的可選項,建立適當的索引是資料庫最佳化的重中之重。然而索引可以提高查詢效率,同時也會降低DML操作的效率,兩者綜合考慮後才會有比較好的效能。

關於索引的資料庫最佳化方案,大多是避免索引失效,優化索引使用順序等。 B*樹索引,點陣圖索引等索引會在後面的文章中具體去說一下。

3. 簇(Cluster):

#簇是一個包含一個或多個表資料的資料庫對象,其中被包含的表中都會具有共同的一列或多列,這些列稱為簇鍵列。

建立簇需要對應的權限,開發中使用不多。簇可以分為索引簇和哈希簇,區別就是查找資料的時候前者通過簇鍵列上的索引,後者使用簇鍵列的哈希值。根據使用場景來決定來使用那種類型。

4.視圖(View) & 物化視圖(Materialized View):

視圖是一種虛定義的邏輯對象,主要使用來簡化業務邏輯、方便開發維護,視圖並不包含任何數據,其數據基於視圖對應的其他物件。

視圖可以提供一些增刪改查的操作,同時有一定的安全性,可以屏蔽一些列,使用起來也比較靈活。但對於性能會有一些影響。

物化視圖,相對於視圖而言,物化視圖可以實際儲存數據,和表格一樣對應相關的段落。

物化視圖可以用來匯總,計算等業務。同時也可以在一定條件下進行增刪改查,也可以建立索引等。

5. 同義詞(Synonym):

#同義詞也是虛的一個邏輯對象,不會儲存任何資料。本質上算是其他資料物件的一個別名。同時可以將同義詞的權限分配給不同的用戶,作為安全管理的一種方式。

6. 序列(Sequence):

#序列不儲存任何數據,使用者可以透過序列取得一系列有序的數值。

定義序列的時候可以定義序列名,升降序,步長等。如果負載並發很高的情況下,序列的成長會影響整體的效能。

7. 過程(Procedure) & 函數(Function):

過程和函數都是虛擬邏輯對象,不儲存資料。主要功能就是使用資料庫編碼的呼叫來執行一系列任務。

過程和函數都是資料庫中的對象,有一組SQL或一些其他的PL語句組成。為解決特定問題而編寫的一單元。

不同的是函數有一個回傳值,除此之位,過程和函數在其他方面都相同。

8.觸發器(Trigger):

觸發器也是資料庫的一個邏輯對象,不儲存資料。主要是透過資料庫編碼,在事件自動觸發的時候執行一組指令。

其執行過程是自動的,當某一個事件觸發相關條件後,則會執行。

9. 約束(Constraint):

#約束是資料庫中的邏輯對象,其功能是透過一些內部或自動逸邏輯來實現對資料的檢查和限制,使其符合某種規則或標準。從而實現數據的規則化,標準化。

常見的約束有

  • 主鍵約束

  • 唯一約束

  • 非空約束

  • 外鍵約束

  • 自訂約束(檢查約束)

推薦教學:《Oracle教學

以上是oracle物件有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn