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