Posted on 2008-08-12 13:57
Prayer 閱讀(273)
評論(0) 編輯 收藏 引用 所屬分類:
數據庫,SQL
容器: 物理存儲設備(真正的存儲設備),可以是操作系統目錄(文件夾)、設備或操作系統文件,表實際存儲于容器中
表空間:一個表空間可以包括多個容器,是容器的邏輯集合,一個容器只能屬于一個表空間一個表空間也只能屬于一個數據庫。
表空間分類:系統表空間(sysspace):存放這個數據庫的所有系統表格
臨時表空間(tempspace): 存放db2在執行sql指令時,因為排序、連接等工作產生的臨時表
用戶表空間(userspace):存放用戶自己定義的表
表: 在邏輯上,表存儲于一個表空間中,實際上是分布在對應表空間的物理容器中,表空間在數據庫內創建,表則在表空間內創建。
表空間中的表的數據分布在該表空間的數據容器中。
當表空間由多個數據容器構成時,db2會把表的數據用循環的方式分散在這些容器上。
例:
如果在表空間中建立一個employee表,db2 會把employee表的數據存在container0中,當數據量增大到一個extent后,就會把該表后面的數據放在container1中,當container1也用了一個extent后,再將后來的數據存到container2中,然后再到container0和container1中。
如果在這個表格空間中再創建一個表格dept,db2會從container1開始存放數據,如果再創建第三個表格project,db2會從container2開始創建表格。
最終,三個表的數據會以循環的方式,分散存放在3個容器上。
拆模:db2將數據循環分布在數據容器上的做法稱為拆模。
好處:增進數據讀取的性能
示例:你的機器上有4個磁盤驅動器,你建了一個由4個數據容器構成的表格空間,這4個數據容器分別放在這些磁盤驅動器上,通過拆模的作用,就可以將一個表格的數據“打散”在4個磁盤驅動器上,當db2需要從表格中讀取大量的數據時,就可以利用4個磁盤驅動器獨立的 I/O CHANNEL 將數據讀入DB2的緩沖池。
模式是用來將一組數據庫對象(例如,表、視圖、索引和別名)分組的唯一標識符。即,如果您正在創建一個名為 PAYROLL 的表,則需要單調地搜索數據庫以便弄清楚是否其他某些用戶已經創建了同名的表。每個對象的名稱只需要在它自己的模式中是唯一的。
大多數數據庫對象的名稱都由兩部分組成,第一部分是模式名,第二部分是對象的名稱。當創建了對象時,可以將它分配給特定模式。如果不指定模式,則將它分配給缺省模式,該模式通常就是創建對象的人員的用戶標識。例如,姓名為 Smith 的用戶可能具有一個名為 SMITH.PAYROLL 的表。
模式也成為數據庫中的一個對象。模式是在創建模式中的第一個對象時創建的。模式可以由單個所有者所有,并且所有者可以控制對其中的數據和對象的存取權。
您可以:
- 創建模式。
- 通過在創建對象時指定模式名來顯式地將對象添加到模式中。
- 通過在創建對象時不指定模式名來隱式地將對象添加到當前模式中(通常是您的用戶標識)。
- 刪除模式。
- 授予或取消對模式的特權。