Introduction to Schema Objects 資料庫 schema 是存儲數據結構的邏輯容器,被稱為 。例如,表和索引是 通過 SQL 來創建和操作 資料庫用戶具有口令並擁有各種資料庫的許可權,每個用戶擁有一個單獨的 ,schema 與用戶具有相同的名字 schema 包含相應用戶的全 ...
Introduction to Schema Objects
資料庫 schema 是存儲數據結構的邏輯容器,被稱為
schema objects
。例如,表和索引是schema objects
schema objects
通過 SQL 來創建和操作資料庫用戶具有口令並擁有各種資料庫的許可權,每個用戶擁有一個單獨的
schema
,schema 與用戶具有相同的名字schema 包含相應用戶的全部數據。 例如,hr 用戶擁有 hr schema,包含如雇員表之類的對象。在生產資料庫中,一個資料庫 schema 的擁有者通常表示一個資料庫應用程式,而不是一個人
在一個 schema 里,某一特定類型的每個 scheme 對象都有一個唯一的名字。例如
hr.employees
是指 hr schema 中的 employees 表。圖 2-1 描述了一個名為 hr 的 schema 擁有者,及其在 hr schema 內的 schema對象
Schema Object Types
在關係型資料庫中,最重要的 schema 對象是表,表在行上存儲數據
Oracle SQL 使你能夠創建和操作許多其他類型的 schema 對象,包括以下這些:
對象 | 描述 |
---|---|
索引 Indexes | 對於每一個被索引的表行或表簇行,索引都包含一個條目 ,以提供直接、快速的行訪問 Oracle 資料庫支持多種類型的索引 |
分區 Partitions | 大型表和索引的分片,每個分區有其自己的名稱,並可能有其自己的存儲特征 |
視圖 Views | 視圖是對一或多個表、或其他視圖中的數據的自定義表示,可以把它們看作存儲的查詢 視圖實際上並不包含數據 |
序列 Sequences | 序列是一個由用戶創建的對象,可以被多個用戶共用,用來生成整數 序列通常用於生成主鍵值 |
維度 Dimensions | 維度定義多個列集之間的父子關係,列集中的所有列必須都來自同一個表 維度通常用於對客戶、產品、時間之類的數據進行分類 |
同義詞 Synonyms | 同義詞是另一個 shema 對象的別名;因為同義詞只是一個別名,在數據字典中只存儲它的定義信息 |
PL/SQL subprograms and packages | PL/SQL 是 Oracle 對 SQL 的過程化擴展。PL/SQL 子程式是命名的 PL/SQL 塊,可以使用參數進行調用;PL/SQL 包用於將邏輯上相關的 PL/SQL 類型、變數、子程式進行分組 |
- 還有一些其他類型的對象也存儲在資料庫中,並可以使用 SQL語句來創建和操作,但不包含在 shemale 中。這些對象包括資料庫用戶、角色、上下文、目錄對象
Schema Object Storage
一些 schema 對象將數據存儲在段(segments)中。例如,一個未分區的堆表或索引會創建一個段。其他 schema 對象,如視圖和序列,則只包含元數據
這一節僅描述有段的 schema 對象
Oracle 資料庫邏輯上將 schema 對象存儲在表空間中。在 schema 和表空間之間沒有任何的關係:一個表空間可以包含不同 schema 中的對象,一個schema 中的對象也可以包含在不同的表空間中。每個對象的數據在物理上存儲在一或多個數據文件中
圖 2-2 顯示了一種在表段、索引段、表空間、數據文件之間的可能配置。一個表的數據段跨越兩個數據文件,這兩個數據文件屬於同一個表空間。一個段不能跨多個表空間