小弟做小型数据库有几年了.
由于工作的不断深入,
也有越来越多的问题题困扰着!
请大家帮忙!
1. 怎样使用"关系型数据库系统与面向对象程序设计";
2. 大型数据库系统的客户端设计原则和方法都有什么
3. 多层系统,服务器怎样通知客户端我的数据已经改变

解决方案 »

  1.   

    这些都不是小问题哦,胡乱说两句第1个是关系数据库和OOD的映射问题,现在一般都会整一个OR Mapping机制出来,像JAVA平台流行的Hibernate,Borland的ECO中也有这个功能,或者自己写代码建立映射关系;
    第2个是属于系统设计的范畴,个人觉得客户端的设计原则当然是随需而设计了,考虑的因素至少包括运行环境、系统架构、功能需求、界面要求、最终用户应用水平等等。至于设计方法我认为有广义和狭义之分,就狭义的传统软件工程模型中的设计过程来看,至少涉及架驱设计、模型(数据库)设计、数据设计、功能设计、界面设计等等,不同的设计中当然方法也有所不同。
    第3个中客户端为什么要通知客户端呢,所谓服务端一般都是被动应答的啊,改变就改变了。然后收到客户端发出的请求后告诉他变了就行了。难道要主动广播推送“数据改变”的消息给所有客户端? 
      

  2.   

    1. 使用对象封装数据集,有原则和现成的经验; 
    2. 海量的数据集,提供怎样查询才更合理,提供怎样操作才更有效,
    3. 多层系统,当然是可以使用客户端重复查询服务器状态来判断服务器数据是否更新.
       对于实时数据分析系统,还是有一定用途的. 我还是想希望服务器可以主动服务!使用惯了TDataSet组件,有些东西我还不能跨越!
    还有,楼上的朋友一定经验丰富!
      

  3.   

    第3个中客户端为什么要通知客户端呢,所谓服务端一般都是被动应答的啊,改变就改变了。然后收到客户端发出的请求后告诉他变了就行了。难道要主动广播推送“数据改变”的消息给所有客户端? 
    -----------------------------------------------
    我理解楼主的意思~
    如用户A打开某数据后不做任何操作,数据都是在本地缓存中滞留的,如果用户B也同时打开该记录后,保存,那么用户A看到的只是一个幽灵数据,这时用户A对该数据进行保存,其数据就会进行回滚!
    鉴于以上情况:
    也就需要在服务器端做修改后,服务器端主动通知一下客户端。
    这个做法是在三层结构下,客户端发出Save动作后,服务器收集所有Active为True的IP,对这些计算机进行发消息,通知客户该数据已做修改,等等
      

  4.   

    可以手工使用SQL进行更新和事务保护,至少可以保证服务数据的正确性!
    而后又有新的问题,你对数据集有了操作,就需要对显示结果进行更新,
    要么你更新数据集,要么你手动生成查询结果.前者增加了数据服务的负荷,
    后者实现工作量比较大,除非你重新实现数据集控件,不然你就不能使用数据控件!
      

  5.   

    可以手工使用SQL进行更新和事务保护,至少可以保证服务数据的正确性! 
    而后又有新的问题,你对数据集有了操作,就需要对显示结果进行更新, 
    要么你更新数据集,要么你手动生成查询结果.
    前者增加了数据服务的负荷, 而且可能丢失你现在的编辑游标!
    后者实现工作量比较大,除非你重新实现数据集控件,不然你就不能使用数据控件! 
      

  6.   

    有些数据分析系统,对数据的实时性比较高!
    总共的数据会在爱10000条之内!
    ---------------------------------
    如果我做海量的数据系统管理,
    也不会提供实时分析的功能!
    ---------------------------------
    例如我有1000个设备,对其监控,
    因为,每个设备发生故障都是灾难性的!
    而且用户又喜欢DBGrid的查看方式!