2、数据库需求分析阶段详解
下面将详细介绍
需求分析阶段
需求分析阶段的重点是调查、收集并分析客户业务的数据需求、处理需求、安全性与完整性需求。
常用的需求调研方法有在客户的公司跟班实习、组织召开调查会、邀请专人介绍、设计调查表并请用户填写和查阅与业务相关的数据记录等。
常用的需求分析方法有调查客户的公司组织情况,各部门的业务需求情况、协助客户分析系统的各种业务需求和确定新系统的边界。
无论数据库的大小和复杂程度如何,在进行数据库的系统分析时,都可以参考下列基本步骤:
- 收集信息
- 标识实体
- 标识每个实体需要存储的详细信息
标识实体之间的关系
1. 收集信息
创建数据库之前,必须充分理解数据库需要完成的任务和功能。简单来说,就是要了解数据库中需要存储哪些信息(数据),实现哪些功能。
下面以酒店管理系统为例,我们需要了解酒店管理系统的具体功能,以及在后台数据库中保存的数据,如以下需求:
- 酒店为客人准备充足的客房,后台数据库需要存放每间客房的信息,如客房号、客房类型、价格等。
- 客人在酒店入住时要办理入住手续,后台数据库需要存放客人的相关信息,如客人姓名、身份证号等。
2. 标识实体
在收集需求信息后,必须标识数据库要管理的关键对象或实体。实体可以是有形的事物,如人或产品,也可以是无形的事物,如商业交易、公司部门或发薪周期。
在系统中标识这些实体以后,与它们相关的实体就会条理清楚。以酒店管理系统为例,我们需要标识出系统中的主要实体。
- 客房:单人间、标准间、三人间、豪华间和总统套房。
- 客人:入住酒店客人的个人信息。
注意:实体一般是名词,一个实体只描述一件事情,不能重复出现含义相同的实体。
数据库中每个不同的实体都拥有一个与之相对应的表,按照以上的酒店管理系统需求,在酒店管理系统数据库中,会对应至少两张表,分别是客房表和客人表。
3. 标识每个实体需要存储的详细信息
将数据库中的主要实体标识为表的候选实体以后,就要标识每个实体存储的详细信息,也称为该实体的属性,这些属性将组成表中的列。简单的说,就是需要细分出每个实体中包含的子成员信息。
下面以酒店管理系统为例,逐步分解每个实体的子成员信息,如下:
- 客房:客房号、客房类型、客房状态、客房描述、床位数、入住人数、价格
- 客人:客人姓名、身份证号、客人编号、入住日期、结账日期、押金、总金额
在进行实体属性分解时,含义相同的成员信息不能重复出现,如联系方式和电话等。
每个实体对应一张表,实体中的每个子成员分别对应表中的每一列。例如,从上述关系可以看出客人应该包含姓名和身份证号等列。
4. 标识实体之间的关系
关系型数据库有一项非常强大的功能,即它能够关联数据库中各个项目的相关信息,不同类型的信息可以单独存储,但是如果需要,数据库引擎还可以根据需要将数据组合起来。
在设计过程中,要标识实体之间的关系,首先需要分析数据库表,确定这些表在逻辑上是如何相关的,然后添加关系列建立起表之间的连接。
以酒店管理系统为例,客人与客房有主从关系,我们需要在客房实体中标明其入住的客房号。
2、数据库需求分析阶段详解相关推荐
- TB级别分布式关系型数据库OceanBase理论详解
OceanBase是阿里开发的分布式关系型(SQL)数据库,其目标是支持数百TB的数据量以及数十万TPS.数百万QPS的访问量,无论是数据量还是访问量,即使采用非常昂贵的小型机甚至是大型机,单台关系数 ...
- mysql数据库字段类型大全_mysql数据库字段类型详解
MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. ...
- Redis数据库教程——系统详解学习Redis全过程
Redis数据库教程--系统详解学习Redis全过程 Redis快速入门:Key-Value存储系统简介 Key-Value存储系统: Key-Value Store是当下比较流行的话题,尤其 ...
- python连接oracle数据库的方法_Python3.6连接Oracle数据库的方法详解
本文实例讲述了Python3.6连接Oracle数据库的方法.分享给大家供大家参考,具体如下: 下载cx_Oracle模块模块: https://pypi.python.org/pypi/cx_Ora ...
- laravel 调试mysql_Laravel - MySQL数据库的使用详解3(Query Builder用法2:新增、修改、删除)...
五.新增.修改.删除操作 在前文中我介绍了如何使用Query Builder(查询构造器)进行数据查询,下面接着介绍如何使用它进行数据的增.删.改操作.同样假设我们有如下用户表(user): 1,新增 ...
- db2数据备份到mysql_DB2数据库自动备份详解
DB2数据库自动备份详解 由脱机备份转换为联机备份: 在db2CMD下执行 1.连接需要备份的数据库:db2 connect to数据库名称 2.修改自动数据库备份(AUTO_DB_BACKUP)参数 ...
- python连接access数据库odbc_对Python通过pypyodbc访问Access数据库的方法详解
看书上通过ODBC访问数据库的案例,想实践一下在Python 3.6.1中实现access2003数据库的链接,但是在导入odbc模块的时候出现了问题,后来查了一些资料就尝试着使用pypyodbc,最 ...
- HubbleDotNet开源全文搜索数据库项目--技术详解
HubbleDotNet开源全文搜索数据库项目--技术详解 HubbleDotNet 简介 HubbleDotNet 和 Lucene.net 性能对比测试 HubbleDotNet 和 Lucene ...
- 资源放送丨《Oracle数据库索引分裂详解》PPT视频
点击上方"蓝字" 关注我们,享更多干货! 前段时间,墨天轮邀请数据库资深专家 孙加鹏 老师分享了<Oracle数据库索引分裂详解>,在这里我们将课件PPT和实况录像分享 ...
最新文章
- 高翔Slambook第七讲代码解读(2d-2d位姿估计)
- Cisco PT模拟实验(19) 路由器的NAT功能配置
- SQLite三种JDBC驱动的区别
- 关于Visual Studio 2017安装需要注意的细节
- 机器人编程与python语言的区别_一分钟看懂“机器人编程”和“少儿编程”的区别!...
- mimo雷达信号处理_雷达学术入门脉冲雷达信号处理概述
- Git 2.19 对Diff、Branch和Grep等做了改进
- spyder替换_Spyder 快捷键大全
- 使用Visual C#制作可伸缩个性化窗体
- DataFrame对比RDD
- Android 图片处理方法大全
- JAVA毕业设计高校实习实训管理系统计算机源码+lw文档+系统+调试部署+数据库
- 用友 U9好不好???
- 谷歌火狐等浏览器Flash安装失败,安装后进入网站仍提示未安装Flash
- [写轮眼]QQ服务调校
- 用 Python 制作商品历史价格查询
- 如何清空各种浏览器缓存
- wildfly 21中应用程序的部署
- 动态库和静态库的生成
- 安卓中图片占用内存大小分析
热门文章
- EL之Bagging(DTR):利用Bagging对回归问题(实数值评分预测)建模(调2参)
- Py之Data Base:Python和数据库的那些嘻嘻哈哈事详细攻略
- VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件
- Gradient Tree Boosting:梯度提升树详解
- (原创)7-1 银行业务队列简单模拟 (30 分)
- Laravel5.1 搭建博客 --文章的增删改查
- 2007年教育学专业基础综合考试大纲
- c++成员函数指针强制转换为一般函数指针出现问题
- ESP32中下载固件时的波特率设置和调试监控时波特率的设置
- 为什么我的vc6.0建立工程时显示不能访问类查文件类信息,类查看信息不可用