MCDBA 数据库设计学习BLOG

http://tech.ddvip.com   2007年06月16日    社区交流 收藏本文

MCDBA 数据库设计学习BLOG

  规划存储管理

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

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

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

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

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

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

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

  练习:

  USE master

  GO

  Create database ExamNotes

  ON Primary

  (Name ='ExamNotes_data',filename='d:  estdataExamNotes_data.mdf' ,

  size=4MB,

  MAXSIZE=16MB,

  FileGrowth=2mb),

  FILEGROUP SUCCESS

  (Name ='ExamNotes1_data1',Filename='d:  estdataExamNotes1_data1.ndf',

  size=4Mb,

  maxsize=8mb,

  filegrowth =500kb),

  (Name ='ExamNotes1_data2',Filename='d:  estdataExamNotes2_data2.ndf',

  size=4Mb,filegrowth=10%) 

  log on(NAME ='ExamNotes1_Log',

  filename='d:  estdataExamNotes_Log.ldf',

  size=4Mb,maxsize=16mb)

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

  ALTER DATABASE Exam

  ADD FILEGROUP ExamFG1

  GO

  ALTER DATABASE exam

  ADD FILE

  ( NAME = exam_data3,

  FILENAME = 'd:  estDataexam_data3.ndf',

  SIZE = 5MB,

  MAXSIZE = 100MB,

  FILEGROWTH = 5MB),

  ( NAME = exam_data4,

  FILENAME = 'd:  estDataexam_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

责编:豆豆技术应用

正在加载评论...