[英]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.