2.4 扩展阅读:数据建模思想概述
在不熟悉软件开发的业务人员看来,软件似乎是一种很神秘的事物。因为对软件不熟悉,这些人对软件的看法往往容易走入两个极端:要么认为软件很简单,要么认为软件是万能的。如果再加上软件开发或数字化从业人员不懂或不熟悉业务,业务与IT之间的鸿沟就会越来越宽、越来越深。在笔者看来,身处数字化时代,大家都应该懂数字化,懂一些软件的工作机理。本书就是写给那些信息技术的非专业人士,让他们对软件或数字化工作有个概念性的认识。
如果用一个简单的数学公式来看软件,我们可以将软件理解为:
软件=数据+程序+界面
数据指的是我们如何去描述现实中的事物,比如事物叫什么名字、有多重、有多高、什么材质、什么颜色等。用软件的术语讲,就是对象、对象的属性和属性值。程序就是一段用于操作对象或对象属性的计算机代码,这些操作包括创建、删除、修改、查询、计算等。界面指的是人与软件的交互界面,包括界面布局、菜单、按钮、选择框、文本框等要素。
从软件设计和开发的过程来看,软件的设计和开发与汽车或其他机电产品的设计和开发工作基本是类似的,要有好的架构,也要考虑功能、交期、成本、质量等管理要求。实际上,软件开发的入门不难,难的是开发出功能复杂、操作简便和性能可靠的软件,这就取决于当事人的软件设计和建模,包括数据建模、流程建模、界面建模等。此处以数据建模为例,谈谈设计和建模思想对软件的影响。软件工程对数据建模的总体要求是完整性、无冗余、复用性、稳定性、开放性、集成性、优雅性和可读性。
1)完整性。数据建模的完整性要求对象和对象属性的定义等数据,应该能够满足所有的业务需求,不能有任何遗漏。
2)无冗余。数据建模的无冗余,指的是数据库表和表的字段不能出现重复,应该只有一张“脸”,而不是数出多孔,否则就很难保证数据的一致性,也将造成逻辑的混乱和存储空间的浪费。
3)复用性。复用性是模块化思想在数据建模的体现,指的是数据定义可以用于多种业务和多个场景。
4)稳定性。稳定性比较好理解,指的是数据库表在更新或扩充时,原有数据能够保证稳定,不出错。
5)开放性。开放性指的是数据表和表字段可以根据业务的变化或扩展做出相应的变化或扩展。
6)集成性。集成性指的是数据表和表字段与其他系统之间的数据交互和集成。
7)优雅性。优雅性指的是数据建模中对象、对象类、类层次等之间的包含与被包含关系清晰、可装配和可追溯。
8)可读性。可读性指的是数据建模的内容,尤其是概念模型能够被业务和用户容易地理解。
大体上,软件的数据建模包括三个步骤:概念建模、逻辑建模和物理建模。