设计数据库步骤

设计数据库

  • •          在需求分析阶段,设计数据库的一般步骤为:

–         收集信息

–         标识对象

–         标识每个对象的属性

–         标识对象之间的关系

  • •          在概要设计阶段和详细设计阶段,设计数据库的步骤为:

–         绘制E-R图

–         将E-R图转换为表格

–         应用三大范式规范化表格

下面我们以一个BBS简易论坛的数据库设计为例来看看设计数据库的步骤:

  • 收集信息:

与该系统有关人员进行交流、坐谈,充分理解数据库需要完成的任务

BBS论坛的基本功能:

l        用户注册和登录,后台数据库需要存放用户的注册信息和在线状态信息;

l        用户发贴,后台数据库需要存放贴子相关信息,如贴子内容、标题等;

l        论坛版块管理:后台数据库需要存放各个版块信息,如版主、版块名称、贴子数等;

  • 标识对象(实体-Entity)

标识数据库要管理的关键对象或实体

实体一般是名词:

l        用户:论坛普通用户、各版块的版主。

l        用户发的主贴

l        用户发的跟贴(回贴)

l        版块:论坛的各个版块信息

  • 标识每个实体的属性(Attribute)

  • 标识对象之间的关系(Relationship)

l        跟贴和主贴有主从关系:我们需要在跟贴对象中表明它是谁的跟贴;

l        版块和用户有关系:从用户对象中可以根据版块对象查出对应的版主用户的情况;

l        主贴和版块有主从关系:需要表明发贴是属于哪个版块的;

l        跟贴和版块有主从关系:需要表明跟贴是属于哪个版块的;

  • 绘制E-R图

  • 将E-R图转化为表格

    • •          将各实体转换为对应的表,将各属性转换为各表对应的列
    • •          标识每个表的主键列,需要注意的是:没有主键的表添加ID编号列,它没有实际含义,用于做主键或外键,例如用户表中的“UID”列,版块表中添加“SID”列,发贴表和跟贴表中的“TID”列
    • •          在表之间建立主外键,体现实体之间的映射关系

这里我们绘制ER图可以使用微软的Word或VISIO以及Sybase公司的PowerDesigner,它主要用于和客户沟通交流意见,并反复修改,直到客户确认。客户确认后,再将E-R图转换为表。上面我们已经做好了这个工作。那接下来就是最后一步:应用三大范式对设计的多张表进行审核并规范化表的结构

时间: 2024-08-29 16:05:41

设计数据库步骤的相关文章

mysql之设计数据库

设计数据库的步骤 1.充分了解需求文档2.从需求文档中抽实体 实体:就是真实存在的事物(名词) 3.通过需求抽出每个实体的属性 实体的属性:就是实体的描述以及特征 4.分析实体之间关系建立关系 实体的关系:就是事物与事物存在的联系 5.将实体,属性 表间的关系转化为E-R图 长方形 表示 实体 椭圆 表示实体的属性 菱形 表示实体之间关系 6.将实体转化为表结构 实体名称:就是表名 实体属性: 就是其的字段 7.根据需求和需要 设置每个表的主键,设置表间关系等

以DDD为开发模式的设计开发步骤可以是

以DDD为开发模式的设计开发步骤可以是:1)分析需求:2)画出用例图,系统中各个角色如何使用系统,也包括外部系统如何使用系统,也包括系统中到某个时间点自动启动的某些功能(此时角色就是时间):3)针对各个用例图,就知道了系统使用的各种业务场景,同时也明确了系统的边界,从而就明确了领域模型的边界:4)在领域模型的边界内划分聚合,找出每个聚合的边界,找出边界内的聚合根,实体,值对象:这步是难点.这里一定不能混淆的一个概念是,领域建模不是以用户为中心的建模,而是以用户的需求为中心的建模.所以要努力寻找各

Hibernate之实体类设计基本步骤

1.先设计一个基类BaseBean (1)@MappedSuperclass表示实体类父类 package com.life.hibernate.bean; import java.util.Date; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Temporal; im

如何设计数据库(1)?(芮)

为什么需要设计数据库 这里我们思考两个问题: 修建茅屋需要设计吗?修建大厦需要设计吗? 结论是:当数据库比较复杂(如数据量大,表较多,业务关系复杂)时,我们需要先设计数据库: 因为,良好的数据库设计能够: q 节省数据的存储空间 q 能够保证数据的完整性 q 方便进行数据库应用系统的开发 糟糕的数据库设计: q 数据冗余.存储空间浪费 q 内存空间浪费 q 数据更新和插入的异常 软件项目开发周期 我们再来看看软件项目的开发周期: • 需求分析阶段:分析客户的业务和数据处理需求; • 概要设计阶段

使用PowerDesigner设计数据库

使用PowerDesigner设计数据库 设计数据库有如下6个主要步骤: 1.需求分析:了解用户的数据需求.处理需求.安全性及完整性要求: 2.概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型: 3.逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图: 4.物理结构设计:设计数据的存储结构和存取方法,如索引的设计: 5.系统实施:组织数据入库.编制应用程序.试运行: 6.运行维护:系统投入运行,长期的维护工作. 在此我要说的是使用PowerDesigner设计数据库的

[数据库设计]数据库设计三大范式

为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际开发中最为常见的设计范式有三个: 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式. 第一范式的合理遵循需要根据系统的实际需求来定.比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个

[转]oracle设计数据库应选择正确的数据类型

原文地址:http://blog.sina.com.cn/s/blog_5014663501007n40.html 在设计数据库的时候,选择正确的数据类型,往往可以避免很多的问题,正确理解数据库的类型,对于存储空间规划,应用性能调整都会很有帮助,下面是我个人的一点总结: 1. Char 定长格式字符串,在数据库中存储时不足位数填补空格,不建议使用,会带来不必要的麻烦 a.  字符串比较的时候,如果不注意(char不足位补空格)会带来错误 b.  字符串比较的时候,如果用trim函数,这样该字段上

linux(centOS6) 安装Mysql 5.6.19数据库步骤、 问题以及相应的解决办法

数据库版本:Ver 14.14 Distrib 5.6.19, for Linux (x86_64) using  EditLine wrapper linux版本: Linux version 2.6.32-279.el6.x86_64 ([email protected]) (gcc ve rsion 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Fri Jun 22 12:19:21 UTC 20 12 采用的rpm安装方式. 1.官网下载

Synopsys.milkway.vH-2013.Linux32_64 2CD设计数据库

Synopsys.milkway.vH-2013.Linux32_64 2CD设计数据库Synopsys的Milkway设计数据库已对第三方开放访问,该数据库是Galaxy设计平台的关键组成部分.Galaxy设计平台将通过使■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□ + 诚信合作,保证质量!!!长期有效: + 电话TEL:18980583122 客服 QQ:1140988741 邮件(Email):[email protected] ■□■□■□■□■□■□■□■□