下面将详细介绍

需求分析阶段

需求分析阶段的重点是调查、收集并分析客户业务的数据需求、处理需求、安全性与完整性需求。

常用的需求调研方法有在客户的公司跟班实习、组织召开调查会、邀请专人介绍、设计调查表并请用户填写和查阅与业务相关的数据记录等。

常用的需求分析方法有调查客户的公司组织情况,各部门的业务需求情况、协助客户分析系统的各种业务需求和确定新系统的边界。

无论数据库的大小和复杂程度如何,在进行数据库的系统分析时,都可以参考下列基本步骤:

  1. 收集信息
  2. 标识实体
  3. 标识每个实体需要存储的详细信息

标识实体之间的关系

1. 收集信息

创建数据库之前,必须充分理解数据库需要完成的任务和功能。简单来说,就是要了解数据库中需要存储哪些信息(数据),实现哪些功能。

下面以酒店管理系统为例,我们需要了解酒店管理系统的具体功能,以及在后台数据库中保存的数据,如以下需求:

  • 酒店为客人准备充足的客房,后台数据库需要存放每间客房的信息,如客房号、客房类型、价格等。
  • 客人在酒店入住时要办理入住手续,后台数据库需要存放客人的相关信息,如客人姓名、身份证号等。

2. 标识实体

在收集需求信息后,必须标识数据库要管理的关键对象或实体。实体可以是有形的事物,如人或产品,也可以是无形的事物,如商业交易、公司部门或发薪周期。

在系统中标识这些实体以后,与它们相关的实体就会条理清楚。以酒店管理系统为例,我们需要标识出系统中的主要实体。

  • 客房:单人间、标准间、三人间、豪华间和总统套房。
  • 客人:入住酒店客人的个人信息。

注意:实体一般是名词,一个实体只描述一件事情,不能重复出现含义相同的实体。

数据库中每个不同的实体都拥有一个与之相对应的表,按照以上的酒店管理系统需求,在酒店管理系统数据库中,会对应至少两张表,分别是客房表和客人表。

3. 标识每个实体需要存储的详细信息

将数据库中的主要实体标识为表的候选实体以后,就要标识每个实体存储的详细信息,也称为该实体的属性,这些属性将组成表中的列。简单的说,就是需要细分出每个实体中包含的子成员信息。

下面以酒店管理系统为例,逐步分解每个实体的子成员信息,如下:

  • 客房:客房号、客房类型、客房状态、客房描述、床位数、入住人数、价格
  • 客人:客人姓名、身份证号、客人编号、入住日期、结账日期、押金、总金额

在进行实体属性分解时,含义相同的成员信息不能重复出现,如联系方式和电话等。

每个实体对应一张表,实体中的每个子成员分别对应表中的每一列。例如,从上述关系可以看出客人应该包含姓名和身份证号等列。

4. 标识实体之间的关系

关系型数据库有一项非常强大的功能,即它能够关联数据库中各个项目的相关信息,不同类型的信息可以单独存储,但是如果需要,数据库引擎还可以根据需要将数据组合起来。

在设计过程中,要标识实体之间的关系,首先需要分析数据库表,确定这些表在逻辑上是如何相关的,然后添加关系列建立起表之间的连接。

以酒店管理系统为例,客人与客房有主从关系,我们需要在客房实体中标明其入住的客房号。

2、数据库需求分析阶段详解相关推荐

  1. TB级别分布式关系型数据库OceanBase理论详解

    OceanBase是阿里开发的分布式关系型(SQL)数据库,其目标是支持数百TB的数据量以及数十万TPS.数百万QPS的访问量,无论是数据量还是访问量,即使采用非常昂贵的小型机甚至是大型机,单台关系数 ...

  2. mysql数据库字段类型大全_mysql数据库字段类型详解

    MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. ...

  3. Redis数据库教程——系统详解学习Redis全过程

    Redis数据库教程--系统详解学习Redis全过程 Redis快速入门:Key-Value存储系统简介 Key-Value存储系统:     Key-Value Store是当下比较流行的话题,尤其 ...

  4. python连接oracle数据库的方法_Python3.6连接Oracle数据库的方法详解

    本文实例讲述了Python3.6连接Oracle数据库的方法.分享给大家供大家参考,具体如下: 下载cx_Oracle模块模块: https://pypi.python.org/pypi/cx_Ora ...

  5. laravel 调试mysql_Laravel - MySQL数据库的使用详解3(Query Builder用法2:新增、修改、删除)...

    五.新增.修改.删除操作 在前文中我介绍了如何使用Query Builder(查询构造器)进行数据查询,下面接着介绍如何使用它进行数据的增.删.改操作.同样假设我们有如下用户表(user): 1,新增 ...

  6. db2数据备份到mysql_DB2数据库自动备份详解

    DB2数据库自动备份详解 由脱机备份转换为联机备份: 在db2CMD下执行 1.连接需要备份的数据库:db2 connect to数据库名称 2.修改自动数据库备份(AUTO_DB_BACKUP)参数 ...

  7. python连接access数据库odbc_对Python通过pypyodbc访问Access数据库的方法详解

    看书上通过ODBC访问数据库的案例,想实践一下在Python 3.6.1中实现access2003数据库的链接,但是在导入odbc模块的时候出现了问题,后来查了一些资料就尝试着使用pypyodbc,最 ...

  8. HubbleDotNet开源全文搜索数据库项目--技术详解

    HubbleDotNet开源全文搜索数据库项目--技术详解 HubbleDotNet 简介 HubbleDotNet 和 Lucene.net 性能对比测试 HubbleDotNet 和 Lucene ...

  9. 资源放送丨《Oracle数据库索引分裂详解》PPT视频

    点击上方"蓝字" 关注我们,享更多干货! 前段时间,墨天轮邀请数据库资深专家 孙加鹏 老师分享了<Oracle数据库索引分裂详解>,在这里我们将课件PPT和实况录像分享 ...

最新文章

  1. 高翔Slambook第七讲代码解读(2d-2d位姿估计)
  2. Cisco PT模拟实验(19) 路由器的NAT功能配置
  3. SQLite三种JDBC驱动的区别
  4. 关于Visual Studio 2017安装需要注意的细节
  5. 机器人编程与python语言的区别_一分钟看懂“机器人编程”和“少儿编程”的区别!...
  6. mimo雷达信号处理_雷达学术入门脉冲雷达信号处理概述
  7. Git 2.19 对Diff、Branch和Grep等做了改进
  8. spyder替换_Spyder 快捷键大全
  9. 使用Visual C#制作可伸缩个性化窗体
  10. DataFrame对比RDD
  11. Android 图片处理方法大全
  12. JAVA毕业设计高校实习实训管理系统计算机源码+lw文档+系统+调试部署+数据库
  13. 用友 U9好不好???
  14. 谷歌火狐等浏览器Flash安装失败,安装后进入网站仍提示未安装Flash
  15. [写轮眼]QQ服务调校
  16. 用 Python 制作商品历史价格查询
  17. 如何清空各种浏览器缓存
  18. wildfly 21中应用程序的部署
  19. 动态库和静态库的生成
  20. 安卓中图片占用内存大小分析

热门文章

  1. EL之Bagging(DTR):利用Bagging对回归问题(实数值评分预测)建模(调2参)
  2. Py之Data Base:Python和数据库的那些嘻嘻哈哈事详细攻略
  3. VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件
  4. Gradient Tree Boosting:梯度提升树详解
  5. (原创)7-1 银行业务队列简单模拟 (30 分)
  6. Laravel5.1 搭建博客 --文章的增删改查
  7. 2007年教育学专业基础综合考试大纲
  8. c++成员函数指针强制转换为一般函数指针出现问题
  9. ESP32中下载固件时的波特率设置和调试监控时波特率的设置
  10. 为什么我的vc6.0建立工程时显示不能访问类查文件类信息,类查看信息不可用