您的位置:知识库 » 项目管理

项目小结之数据库设计

作者: 姜敏  来源: 博客园  发布时间: 2009-04-08 14:07  阅读: 5156 次  推荐: 0   原文链接   [收藏]  
摘要:作者总结了在一个小的项目中完整的数据库设计
[1] 项目小结之数据库设计
[2] 项目小结之数据库设计
[3] 项目小结之数据库设计

 

  下面来简单介绍下前三种范式:
  一:第一范式。是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。 所谓第一范是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。 例如有一张存储文件的表,正确应该是这样:可以看到这个表包含了好几个列,如果我们把这些信息都放在一列里面那么就不满足上面定义的1NF了。

create table Regulations (
   ID                   int                  identity,
   Title                nvarchar(200)        null,
   FileAddress          varchar(255)         null,
   OpenDate             datetime             null,
   TypeID               int                  null,
   PostDate             datetime             null,
   constraint PK_REGULATIONS primary key (ID)
)

       二:第二范式:在第一范式的基础上建立起来的。要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键、主码。像上面的Regulations的ID列就是一个身份标识列(identity)。

       三:第三范式:要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如:上面有了一个文件表 Regulations,如果这个表是存储的主文件,它相应的还有n个附件信息的话,我们就需要创建另外一张附件表来存储附件。两表如何联系起来呢,我们可以把主文件表的主键随同附件信息做为一条记录插入到附件表中,这里插入的主文件表信息中只包含了主键ID,并没有插入其它信息,这种关系就满足了第三范式要求。

create table Attachment (
   ID                   int                  identity,
   FileID               int                  null,//主文件主键ID
   Address              varchar(255)         null,
   Title                nvarchar(200)        null,
   constraint PK_ATTACHMENT primary key (ID)
)

 

0
0

项目管理热门文章

    项目管理最新文章

      最新新闻

        热门新闻