数据库设计步骤--了解用户需求:拿出一个问题清单
2016-01-04 15:18
555 查看
从项目一开始,就应该着手考虑询问客户哪些问题以便于更好地了解项目的目标和范围。
1.功能:
主要讨论期望系统实现什么功能,还要涉及如何实现这些功能。记录客户提出的系统应该如何工作的想法仍有用的。
•系统应该实现什么功能?
•构建此系统的原因是什么?你希望它究成哪些任务?
•系统应该呈现什么样的外观?大致绘出用户界面?
•系统的不同部分分别需要多少响应时间(通常交互式响应时间应该小于5s,而报表和其他脱机活动可能花费更长的时间)?
•需要什么样的报表?
•最终用户是否需要定义新的报表?
•髙级用户和管理员是否需要定义新的报表?
2.数据需求:
有助于弄清项目的数据需求。了解需要什么数据将有助于着手定义数据库中的表。
•用户界面需要什么数据?
•应该从哪里获取数据?
•这些数据段是如何关联的?
•当前如何处理这些任务?数据来自何处?
3.数据完整性:
数据完整性,有助于定义将在数据库中构建的一些完整性约束。
•各个字段允许获取哪些值?
•需要哪些字段(例如,客户记录是否需要电话号码?传真号呢?电子邮件地址呢?是其中的一项而不是所有项)?
•各个字段的有效域(允许的值)是什么?允许什么样的格式,要求等?
•哪些字段应该参照外键?(例如,一个地址的State字段可能需要包含在States表中并且—个CustomerlD字段可能需要包含在Customers表中。我曾看到过带有很长的标准注释淸单的客户,并且Comments宁段只能取那些值)。
•在下订单之前是否需要客户记录?
•若客户取消一个账户,是希望删除对应的记录?还是仅将它们标记为非活动的?
•系统需要何种级别的可靠性?
•是否需要全天候访问(24/7)系统?
•数据的易失性如何?需要采用什么样的备份频率?
•如果系统崩溃会带來多大的灾难?
•需要多快的备份和运行速度?
•如果发生系统崩溃丟失一些数据将会带来何种后果?
4.安全性:
安全性,有助于确定哪种数据库产品最佳(不同的产品提供不同形式的安全性)和使用何种体系结构。
•每个用户是否需要单独的口令?(通常是个好想法)
•不同的用户是否需要使用不同的数据段?(例如,售货员可能需要客户信用卡号码,但是订单履行技术员可能不需要)
•数据库内的数据否需要加密?
•是否需要提供审计线索来记录执行的每项操作和执行人?(例如,可以查询哪个职员增加了订购最新iPod的客户的优先级,然后询问此店员这样做的原因)
•有哪些不同类别的用户?
•每类用户的数量将是多少?每次是否只允许一个人访问数据?是否拥有数百名乃至上千名用户(如同某些Web应用程序的情况那样)?
•现有的文档是否描述了用户的任务和职责?
5.环境
收集有关项目将替代或交互的其他系统和处理过程的信息。
•该系统足增强还是替代现有的系统?
•是否存在描述现有系统的文档资料?
•现有的系统是否有可供调研的纸制表单?
•需要现有系统中的哪些特性?不需要要哪些特性?
•现有的系统使用何种类型的数据?存储的方式如何,以及不同的数据段的关联方式如何?
•是否存在说明现有系统数据的文档?
•是否存在此系统必须与之交互的其他系统?
•它如何与这些系统正确交互?
•新项目是否问现有的系统发送数据?如何发送?
•新项目是否从现有的系统接收数据?如何接收?
•是否存在说明这些系统的文裆?
•业务的运作方式如何?
1.功能:
主要讨论期望系统实现什么功能,还要涉及如何实现这些功能。记录客户提出的系统应该如何工作的想法仍有用的。
•系统应该实现什么功能?
•构建此系统的原因是什么?你希望它究成哪些任务?
•系统应该呈现什么样的外观?大致绘出用户界面?
•系统的不同部分分别需要多少响应时间(通常交互式响应时间应该小于5s,而报表和其他脱机活动可能花费更长的时间)?
•需要什么样的报表?
•最终用户是否需要定义新的报表?
•髙级用户和管理员是否需要定义新的报表?
2.数据需求:
有助于弄清项目的数据需求。了解需要什么数据将有助于着手定义数据库中的表。
•用户界面需要什么数据?
•应该从哪里获取数据?
•这些数据段是如何关联的?
•当前如何处理这些任务?数据来自何处?
3.数据完整性:
数据完整性,有助于定义将在数据库中构建的一些完整性约束。
•各个字段允许获取哪些值?
•需要哪些字段(例如,客户记录是否需要电话号码?传真号呢?电子邮件地址呢?是其中的一项而不是所有项)?
•各个字段的有效域(允许的值)是什么?允许什么样的格式,要求等?
•哪些字段应该参照外键?(例如,一个地址的State字段可能需要包含在States表中并且—个CustomerlD字段可能需要包含在Customers表中。我曾看到过带有很长的标准注释淸单的客户,并且Comments宁段只能取那些值)。
•在下订单之前是否需要客户记录?
•若客户取消一个账户,是希望删除对应的记录?还是仅将它们标记为非活动的?
•系统需要何种级别的可靠性?
•是否需要全天候访问(24/7)系统?
•数据的易失性如何?需要采用什么样的备份频率?
•如果系统崩溃会带來多大的灾难?
•需要多快的备份和运行速度?
•如果发生系统崩溃丟失一些数据将会带来何种后果?
4.安全性:
安全性,有助于确定哪种数据库产品最佳(不同的产品提供不同形式的安全性)和使用何种体系结构。
•每个用户是否需要单独的口令?(通常是个好想法)
•不同的用户是否需要使用不同的数据段?(例如,售货员可能需要客户信用卡号码,但是订单履行技术员可能不需要)
•数据库内的数据否需要加密?
•是否需要提供审计线索来记录执行的每项操作和执行人?(例如,可以查询哪个职员增加了订购最新iPod的客户的优先级,然后询问此店员这样做的原因)
•有哪些不同类别的用户?
•每类用户的数量将是多少?每次是否只允许一个人访问数据?是否拥有数百名乃至上千名用户(如同某些Web应用程序的情况那样)?
•现有的文档是否描述了用户的任务和职责?
5.环境
收集有关项目将替代或交互的其他系统和处理过程的信息。
•该系统足增强还是替代现有的系统?
•是否存在描述现有系统的文档资料?
•现有的系统是否有可供调研的纸制表单?
•需要现有系统中的哪些特性?不需要要哪些特性?
•现有的系统使用何种类型的数据?存储的方式如何,以及不同的数据段的关联方式如何?
•是否存在说明现有系统数据的文档?
•是否存在此系统必须与之交互的其他系统?
•它如何与这些系统正确交互?
•新项目是否问现有的系统发送数据?如何发送?
•新项目是否从现有的系统接收数据?如何接收?
•是否存在说明这些系统的文裆?
•业务的运作方式如何?
相关文章推荐
- MySQL SELECT同时UPDATE同一张表 You can't specify target table 'sys_user' for update in FROM clause
- 【SQL Server】SQL触发器经验详解
- MySQL触发器更新本表数据异常:Can’t update table ‘tbl’ in stored function/trigger because it is already used by s
- Jedis远程连接Redis服务器报错(connect time out)解决方案
- 浅谈MySQL主键
- MySQL模拟Oracle的Sequence两种方法
- CentOS7安装mongoDB数据库
- MYSQL获取自增ID的四种方法
- OracleHelper类
- MySQL 序列使用AUTO_INCREMENT
- CentOS7 安装MongoDB 3.0服务器
- 数据库集群分类和介绍
- 将数据库数据转换为xml格式
- 通用性安装redis和基本配置
- Redis Benchmark 性能测试
- Oracle的rollup、cube、grouping sets函数
- MSSQL查询某个表在哪些存储过程中使用过
- 数据库之存储过程
- SAP Lumira连接数据库
- 类型:Oracle;问题:oracle 时间加减;结果:ORACLE 日期加减操作