MCDBA 数据库设计学习BLOG

王朝mssql·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

MCDBA 数据库设计学习BLOG

MCDBA 数据库设计学习BLOG MCDBA 数据库设计学习BLOG

2004-4-14

规划存储管理

1 有且只能有一个主数据文件

2 数据和事务日志永远不能在同一个文件中

3 两个数据库之间不能共享一个文件组

4 当估算数据库大小时,应该使用表和索引.

5 无限文件增长只受操作系统和物理磁盘容量的限制.

6 文件组,就是把一组文件象单个文件一样的处理,这些文件的组称为文件组,

通过它实现了一个数据库存放在多个磁盘可能,通过练习理解了文件组的概念。

练习:

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)

向数据库中添加由两个文件组成的文件组

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

查出某个表的记录数和使用的空间大小,因为在实际应用中会出现某个表超大的情形.

在数据库中为表指定文件组的用法如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]

相应的改变默认文件的语法为:

ALTER DATABASE <Database Name>

MODIFY FILEGROUP <Filegroup name> DEFAULT

确保数据完整性

实现约束的6种

Alter table <table name>

Add constraint <constraint name>

<constraint type><constraint define>

1 Unique Key

alter table product

add constraint uk_product

UNIQUE (SupplierID,Productname)

2 Primary Key

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 默认约束

ALTER TABLE PRODUCT

ADD CONSTRAINT DF_PRODUCTS_UNITPRICE

DEFAULT 0 FOR UNITPRICE

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航