发现数据对象--数据库开发的关键
发现数据对象--数据库开发的关键 不管你是开发简单的数据库系统,还是复杂的系统甚至是作数据仓库,选用Sybase或oracle,乃至简单的用Access或Foxpro,只要是关系型数据库都难免为了设计那一张张表颇费心思。起初写代码的时候并不用考虑这些事情,因为前期的设计工作已经有人做了,看起来也就那么回事,不就是第二范式或第三范式吗。后来才发现,整理出那几张表确实不容易,弄的不好的话数据结构一变动,所有的代码都得变,这恐怕是我们做过数据库系统的人都经历过的。经过几次经验教训,摸索出自己的一套发现数据的方法,拿出来和大家切磋切磋。(以图书馆为例,烂的不能再烂的例子了)。
第一步,找物。数据库管理的就是公司或部门运作需要的数据,和业务相关,必然也和物相关,唯物论嘛。你说人事系统中没有物,其实人事系统中的档案就是数据的原始形态,没有计算机前还不是档案在起作用,是管理的对象。在图书管理系统中的物就是图书了。相应的也就有图书号、作者、出版社、出版年月、库存量,库存位置等数据项了。这些数据往往是数据一致性和完整性考虑的重点所在。
第二步,找人。以人为本嘛,围绕相应的物必然存在和它们有关系的人。在图书管理系统中,自然就有图书管理员和读者了。数据库管理系统本身是为了方便人管理数据的,可它往往也喜欢把管理数据的人的情况记录下来,防止出现职责不明,也是数据管理中的一条主线。习惯把图书管理员称为员工,读者称为客户,相应的有ID号,姓名,性别,照片,住址,身份等等。
第三步,找单据。在具体的业务中往往存在大量的单据,如入库单,借书单,还书单等等需要和客户或相应业务部门作信用记录或记账用的单据,往往和人和物都有关系,这时你就发现前面已经找好的人和物在这里就用上了。如果分析作的好的话,这里需要的数据项前面基本上都有了,只要引用就可以了。因为这些单据是经常使用的,所以主要索引的建立往往也在此就可以确定了。
第四步,找汇报和总结。统计和报表是每个数据库系统不可缺少的功能,它的来源往往是实际业务工作的需要,有的有现成的报表参考还好,没有的话,你就要想到,不能便于使用人员向上级部门作业绩汇报和对下级进行总结的系统,是得不到使用人员尤其的管理人员的认可的,你就等着返工吧。这时候,充分的沟通就会进一步完善前三步设计的数据项。在图书管理系统中,我们不仅设计了常用的馆藏统计、借阅统计、更新统计等和日常业务相关的报表,还作了各类图书利用率统计、破损(遗失)统计、借阅量统计等等便于决策的报表,这些设计是从管理人员的例行报告中偶尔看到的,极大满足了系统的实际使用效果,也是很多书上没有提到过的。
至此,应该是发现了大多数的数据项了。另外的数据项就是常规的业务流程分析了,从物到物或从物到帐,找出新的业务关系数据,这些数据也将是快速模型法变化较多的地方。没办法,管理方法的更新必然带来业务流程的微微变化,但基本上述四项数据是没有多大变化的。
然后就可以考虑用第Z范式来整理得到的数据对象,确定保障数据完整性、一致性和并发性策略和机制。根据业务流程和具体开发使用的数据库系统来设计一套的权限控制策略,制作精美的人机交互界面。