中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
MCDBA 数据库设计学习BLOG
作者:未知 时间:2004-04-15 12:12 出处:Blog 责编:chinaitpower
              摘要:暂无

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

 

 

 

 

 

 

 


 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有