簡體   English   中英

數據庫模式與數據庫表空間?

[英]A database schema vs a database tablespace?

我讀數據時讀數據庫...

架構:是對象的容器

表空間:對象的邏輯存儲單元

誰能解釋這些之間的區別?

模式是命名空間 - 邏輯事物。 它用於組織數據庫對象的名稱 它與數據的存儲方式無關。

表空間是物理的東西。 它是數據的容器,與數據庫對象的邏輯組織無關。

單個對象(例如表)可以分布在多個表空間中(取決於所使用的DBMS),但它只能在單個模式中定義。 schema_1.table_1是與schema_2.table_1 不同的表 - 盡管“plain”名稱相同,但是完全限定名稱是不同的,因此它們是兩個不同的表。

在同一模式中組織的對象不一定存儲在同一個表空間中。 單個表空間可以包含來自不同模式的對象。

模式(和目錄,是另一級別的命名空間)是SQL語言的一部分,在SQL標准中定義。

表空間是物理存儲的一部分,並且是特定於DBMS的(盡管幾乎所有DBMS都支持這樣的概念),並且不是SQL查詢語言的一部分(由SQL標准定義)。 但是,它們是通過特定於供應商的SQL / DDL語句定義和管理的。

Schema運行邏輯結構
Tablespaces運行構成數據庫的物理數據文件。

來自Oracle文檔:

架構
模式是數據庫對象的集合。 模式由數據庫用戶擁有,並且與該用戶具有相同的名稱。 模式對象是直接引用數據庫數據的邏輯結構。 模式對象包括視圖索引等結構 (表空間和模式之間沒有關系。同一模式中的對象可以位於不同的表空間中,表空間可以保存來自不同模式的對象。)

表空間
數據庫分為一個或多個稱為表空間的邏輯存儲單元。 表空間分為稱為段的邏輯存儲單元,它們進一步划分為擴展區。 范圍是連續塊的集合。 表空間的大小是構成表空間的數據文件的大小。 數據庫的大小是構成數據庫的表空間的總大小。

您可以通過三種方式擴展數據庫:

 Add a datafile to a tablespace Add a new tablespace Increase the size of a datafile 

模式和表空間之間沒有關系:表空間可以包含來自不同模式的對象,模式的對象可以包含在不同的表空間中。

來自ORACLE文件。 https://docs.oracle.com/cd/B10500_01/server.920/a96524/c11schem.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM