数据库设计
在需求分析阶段,数据库设计人员需要分析用户的需求,
将分析结果记录下来,形成需求分析报告。
在这个阶段中,双方需要进行深入的沟通,以避免理解不准确导致后续的工作出现问题。
在需求分析中有许多琐碎、耗时的工作,常见的工作有:收集数据、解决冲突、为数据形成标准。
收集数据
一个企业内的数据可能分散、零碎,由不同人员负责管理的。
为了使用数据库系统管理这些数据,需要尽可能多地收集数据,并理解企业的业务过程和数据处理流程,理解数据处理的性能需求。
可以利用数据流图等工具辅助分析与理解。
解决冲突,包括命名冲突(同名异义、异名同义)、属性冲突、结构冲突。
例如,商品库存数量是否包含已下订单未出库数量;到货数量和入库数量以哪一个为准;用户名和昵称、真实姓名如何区分;性别使用男、女还是 0、1 或 f、m 来表示。
为数据形成标准
为数据形成一些标准,如商品编号一共有多少位,未来是否会增加位数,每一位的含义是什么。
订单编号按照什么规则生成,如何避免编号重复,编号中包含哪些信息,是否加入一些随机数防止被推测等。
在概念数据库设计阶段,将对用户的需求进行综合、归纳、
抽象,形成概念模型。
概念模型使设计人员摆脱数据库系统的具体技术问题,将精力集中在分析数据及数据之间联系等方面。
一般通过绘制 E-R 图,直观呈现数据库设计人员对用户需求的理解。
逻辑数据库设计面向数据库系统,在概念数据库设计中完
成 E-R 图等成果后,将其转换为 DBMS 支持的数据模型(如关
系模型),完成实体、属性和联系的转换。
在进行逻辑数据库设计时,应遵循一些规范化理论,如范式(将在后面的小节中详细讲解)。
不规范的设计可能会导致数据库出现大量冗余、插入异常、删除异常等问题。
物理数据库设计阶段需要确定数据库的存储结构、
文件类型等。
通常 DBMS 为了保证其独立性与可移植性,承担了大部分任务。
数据库设计人员只需要考虑硬件、操作系统的特性,为数据表选择合适的存储引擎,为字段选择合适的数据类型等,以及评估磁盘空间需求等工作。
数据库实施就是将前面那些工作的成果实施起来。
比如使用 SQL 语句创建数据库、数据表,编写与调试应用
程序等。
数据库运行和维护就是将数据库系统正式投入运行。
在运行后进行一些维护、调整、备份、升级等工作。
数据库设计对数据的存储性能、数据的操作都有很大的关系。
为了避免不规范的数据库出现数据冗余,造成插入、删除、更新操作异常等情况,就要满足一定的规范化要求,这就是范式(Normal Form)。
版权声明: 本文为 InfoQ 作者【在即】的原创文章。
原文链接:【http://xie.infoq.cn/article/b07961059baa0588f9451289e】。文章转载请联系作者。
评论