MCDBA 數(shù)據(jù)庫設(shè)計學習BLOG
2004-4-14
規(guī)劃存儲管理
1 有且只能有一個主數(shù)據(jù)文件
2 數(shù)據(jù)和事務(wù)日志永遠不能在同一個文件中
3 兩個數(shù)據(jù)庫之間不能共享一個文件組
4 當估算數(shù)據(jù)庫大小時,應(yīng)該使用表和索引.
5 無限文件增長只受操作系統(tǒng)和物理磁盤容量的限制.
6 文件組,就是把一組文件象單個文件一樣的處理,這些文件的組稱為文件組,
通過它實現(xiàn)了一個數(shù)據(jù)庫存放在多個磁盤可能,通過練習理解了文件組的概念。
練習:
USE master
GO
Create database ExamNotes
ON Primary
(Name =‘ExamNotes_data‘,filename=‘d:\testdata\ExamNotes_data.mdf‘ ,
size=4MB,
MAXSIZE=16MB,
FileGrowth=2mb),
FILEGROUP SUCCESS
(Name =‘ExamNotes1_data1‘,Filename=‘d:\testdata\ExamNotes1_data1.ndf‘,
size=4Mb,
maxsize=8mb,
filegrowth =500kb),
(Name =‘ExamNotes1_data2‘,Filename=‘d:\testdata\ExamNotes2_data2.ndf‘,
size=4Mb,filegrowth=10%)
log on(NAME =‘ExamNotes1_Log‘,
filename=‘d:\testdata\ExamNotes_Log.ldf‘,
size=4Mb,maxsize=16mb)
向數(shù)據(jù)庫中添加由兩個文件組成的文件組
ALTER DATABASE Exam
ADD FILEGROUP ExamFG1
GO
ALTER DATABASE exam
ADD FILE
( NAME = exam_data3,
FILENAME = ‘d:\testData\exam_data3.ndf‘,
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB),
( NAME = exam_data4,
FILENAME = ‘d:\testData\exam_data4.ndf‘,
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB)
TO FILEGROUP ExamFG1
ALTER DATABASE exam
MODIFY FILEGROUP examFG1 DEFAULT
GO
欲刪除文件組,必先刪除該組文件
ALTER DATABASE EXAM
REMOVE FILE exam_data4
ALTER DATABASE EXAM
REMOVE FILE exam_data3
ALTER DATABASE EXAM
REMOVE FILEGROUP EXAMFG1
一個有用的SP:
EXEC sp_spaceused USERTABLENAME
查出某個表的記錄數(shù)和使用的空間大小,因為在實際應(yīng)用中會出現(xiàn)某個表超大的情形.
在數(shù)據(jù)庫中為表指定文件組的用法如ON后面子句,注意ON [PRIMARY]中的[PRIMARY]是主文件組而非主鍵.
CREATE TABLE [ACC_PAYMETHOD_MSTR] (
[PAYMETHODID] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[PAYMETHODNAME] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[STAMPUSERNAME] [STAMPUSERNAME] NULL ,
[STAMPDATETIME] [STAMPDATETIME] NULL
) ON [PRIMARY]
相應(yīng)的改變默認文件的語法為: 實現(xiàn)約束的6種 1 Unique Key 2 Primary Key ALTER TABLE PRODUCT
ALTER DATABASE
MODIFY FILEGROUP
確保數(shù)據(jù)完整性
Alter table
Add constraint
alter table product
add constraint uk_product
UNIQUE (SupplierID,Productname)
Alter table product
add constraint pl_product
PRIMARY KEY (ProductID)
3 Foreign Key
Alter table product
add constraint fk_product_suppliers
Foreign KEY (ProductID) references suppliers (ID)
4 CHECK 約束
Alter table product
add constraint DF_product_UNITSinstock
CHECK (Unitsinstock >=0 or UnitsINStock is NULL)
5 NOT NULL 約束
Alter table product
ALTER COLUMN DISCONTINUED BIT NOT NULL
6 默認約束
ADD CONSTRAINT DF_PRODUCTS_UNITPRICE
DEFAULT 0 FOR UNITPRICE