摘要:
虽然不能完全避免死锁,但可以使死锁的数量减至最少。将死锁减至最少可以增加事务的吞吐量并减少系统开销,因为只有很少的事务: ◆回滚,而回滚会取消事务执行的所有工作。◆由于死锁时回滚而由应用程序重新提交。下列方法有助于最大限度地降低死锁: ◆按同一顺序访问对象。◆避免事务中的用户交互。◆保持事务简短并在一个批处理中。◆使用低隔离级别。◆使用绑定连接。按同一顺序访问对象如果所有并发事务按同一顺序访问对象... 阅读全文
摘要:
1)不应该针对整个系统进行数据库设计,而应该根据系统架构中的组件划分,针对每个组件所处理的业务进行组件单元的数据库设计;不同组件间所对应的数据库表之间的关联应尽可能减少,如果不同组件间的表需要外键关联也尽量不要创建外键关联,而只是记录关联表的一个主键,确保组件对应的表之间的独立性,为系统或表结构的重构提供可能性。2)采用领域模型驱动的方式和自顶向下的思路进行数据库设计,首先分析系统业务,根据职责定... 阅读全文
摘要:
大型ERP等数据库系统常见几种设计1. 自增长 primary key 采用自增长 primary key主要是性能。早期的数据库系统,经常采用某种编号,比如身份证号码,公司编号等等作为数据库表的 primary key。然而,很快,大家就发现其中的不利之处。 比如早期的医院管理系统,用身份证号码作为病人表的 primary key。然而,第一,不是每个人都有身份证;第二,对于国外来的病... 阅读全文
摘要:
大型MIS的开发应重视数据库设计80年代初以来,国内许多计算机专家先后深入一些大型企业,力图开发出理想的大型MIS。实践证明,开发出的大型MIS,多数不很理想。原因何在?据作者一孔之见,其中一条重要的原因,就是在开发过程中对MIS的数据库设计重视不够,没有把它当作一件头等大事来处理。一个大型MIS,如果它的数据库设计出了问题,就是出了大问题,或者说从根本上出了问题。这样的MIS,不会成功,只会失败... 阅读全文
摘要:
数据库模型的设计是否合理会极大影响系统的使用性能。笔者依据多年来设计和使用数据库的经验,提出以下一些设计原则,供同仁们参考。 慎用游标(Cursor) 游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待甚至死机,笔者在某市“住房公积金管理系统&rdq... 阅读全文
摘要:
我们在软件开发的过程中无论是使用瀑布模式还是敏捷模式开发,都会有软件设计这个阶段,只不过是设计的范围不同而已,下面我就先简单介绍几个常用的图,下面的图有的是我画的,有的是从google来的,希望大家不要介意,本文的目的在于总结设计阶段所需要的图。1、E-R图--实体联系图 (Entity-Relationship )E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念... 阅读全文
摘要:
我在前面的文章里面已经写过了E-R图、类图、用例图、流程图4种,今天我在介绍2种图形:UML静态结构图和数据库模型图一、UML静态结构图--描绘类、对象、数据结构以及存在于它们之间的逻辑关系。下图为本人画的例图:二、数据库模型图--描绘数据库表、视图之间关系的图形。 使用“数据库模型图”模板,您可以通过以下方法,为关系数据库和对象关系数据库设计并记录逻辑模型图:从头开始创建... 阅读全文
摘要:
观看本文的讨论的开发流程的时候,有两点需要注意: 首先,流程不是狭义的流程,也就是说不是单只写代码这个过程,包括了软件工程整个流程。 其次,我所讲的这个流程不见得正确,准确的说是肯定不能适用于全部软件开发项目,也就是说不是银弹,其实说起来连大部分都涵盖不了,顶多就是一部分吧。 可行性分析 这个一般都是做战略的专家来做的,他们更加有市场的前瞻性,俗话说就是看的更远一些,搞市场分析、调研,看看... 阅读全文