发现数据对象 -- 数据库开发的关键

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

转载于:https://blog.51cto.com/gang4415/259819

发现数据对象 -- 数据库开发的关键相关推荐

  1. java从入门到精通_Java大数据:数据库开发从入门到精通

    在Java大数据开发任务当中,数据存储是非常关键的一环,涉及到分布式文件系统.分布式数据库,数据库是后端系统当中支持数据存储的重要组件.今天我们就来聊聊Java大数据,数据库开发从入门到精通,应该如何 ...

  2. Java大数据:数据库开发从入门到精通

    在Java大数据开发任务当中,数据存储是非常关键的一环,涉及到分布式文件系统.分布式数据库,数据库是后端系统当中支持数据存储的重要组件.今天我们就来聊聊Java大数据,数据库开发从入门到精通,应该如何 ...

  3. 简析Visual C++中的活动数据对象

    简析Visual C++中的活动数据对象 程序运行效果截图: 摘 要: 本文简要介绍了微软的活动数据对象(ADO)模型,结合实例阐述了在Visual C++环境下使用ADO操纵数据库的基本步骤,分析A ...

  4. 北语20春oracle数据开发2,北语20春《Oracle数据库开发》作业3题目【标准答案】

    20春<Oracle数据库开发>作业3 试卷总分:100  得分:100 一.单选题 (共 17 道试题,共 85 分) 1.当启动Oracle实例,如果不需要装置数据库,可以使用如下() ...

  5. 肖锰:浪潮GS开发平台学习札记(五)——数据对象和数据模型的建立

    在上节中建立了001用户,我们使用001登录系统,登录后的界面大体如下图所示. 我们点到[专业开发平台],找到[集成开发平台],这就是浪潮GS中的重头戏--GSP Studio. 首先我们建立一个新的 ...

  6. 肖锰:浪潮GS开发平台学习札记(五)——数据对象和数据模型

    名词解释: 数据对象:是描述数据存储信息的元数据.如表.视图.主键. 数据模型:是描述业务对象的数据结构.数据约束以及数据访问的元数据. 数据模型由主对象.子对象.字段和关联等组成. 在上节中建立了0 ...

  7. Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法

    Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法 把开发手册理了一遍,发现还有几个点没有记录下来,其中一个就是使用点对的粗对齐和使用参考目标的精确对齐.为了把这个学习笔记凑够 ...

  8. 大数据开发:大数据与数据库技术发展变化

    在大数据处理当中,数据库无疑是提供关键性支持的技术之一,面对不断新增的海量数据,更加需要数据库提供稳定的底层支持,才能支持数据处理其他环节的工作.今天我们来做一个简单的大数据与数据库技术介绍. 谈到大 ...

  9. 58到家MySQL数据库开发规范(javamysql数据)

    58到家MySQL数据库开发规范(javamysql数据) 一.基础规范 表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4 解读: (1)通用,无乱码风险,汉字3字 ...

最新文章

  1. ExtJS 表单 submit时错误处理
  2. 金融系列4《基本指令》
  3. 从mysql高可用架构看高可用架构设计
  4. Zygote工作流程分析
  5. php psr 编码规范_PHP之PSR-4规范:自动加载
  6. oracle数值型转为char类型,PLSQL: Oracle函数to_char转化数字型指定小数点位数的技巧...
  7. mysql数据排序指令_MySQL 排序 | 菜鸟教程
  8. mfc color 亮度_双十一4K投影仪怎么选?小心别掉“亮度坑” - 电视
  9. 通过缓存数据库结果提高PHP性能
  10. 无人车飞速狂飙,黑科技如何为其加油打气?
  11. 1.4信息系统基础-软件构件技术知识
  12. qml demo分析(maskedmousearea-异形窗口)
  13. PMP项目管理培训课程
  14. Python的遗传算法GA优化深度置信网络DBN超参数回归预测
  15. vue请求接口报错405(Method Not Allowed)
  16. 支付宝客户端架构解析:iOS 客户端启动性能优化初探
  17. 游戏业务DDoS攻防对抗案例分享
  18. vue开发web端实现列表左右联动效果
  19. 安装autoconf
  20. 【MP4 QuickTime隐写】tcsteg、jpegEOFx、detect anomalies in video files

热门文章

  1. 【SQL】表A多个字段,关联表B一个字段说明
  2. mybatis动态调用表名和字段名
  3. 在阿里云的Ubuntu ECS instance 使用Apt-get安装git
  4. 安装和卸载C#写的 windows service
  5. Java Web开发Tomcat中三种部署项目的方法
  6. nginx的root alias 指令
  7. 【带流程眼镜的思考】消除“等待”就是提高效率
  8. Direct3D 开发之旅 3D 游戏基本概念的介绍2
  9. SyncNavigator 注册机 使用教程
  10. LAMP 2.2 Apache配置静态缓存