免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2069 | 回复: 5
打印 上一主题 下一主题

程序设计:问一个涉及到数学原理的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-01-19 15:30 |只看该作者 |倒序浏览
我最近想写一个数据库的实现,当然,就我一个人,要达到工业标准是不可能的,只能编一个模型。我想分三步走。
1。实现关系代数,成果就是实现关系代数的一个函数库,实现嵌入式开发
2。sql解释/执行程序,相当于操作系统的shell
3。网络接口

现在,在进行1的时候我遇到了一个问题,就是实现这一层的功能,不能与sql等价。因为sql操作不仅仅是包含关系运算,还包括数据处理,比如
[update table1
set col1=co1+1
where col2>;0
要想用函数实现,我想到的只能这样:
已经实现了选择和投影关系运算select_project(表名,属性集,逻辑表达式)的情况下,还要编一个数据处理函数void inc_col1(),update函数的接口是这样的:
int update(void (* data_processor)(), 表名,属性集,逻辑表达式)

这样确实实现了功能,但是我觉得有几点不足:
1。复用度不高,无法被sql解释/执行程序有效复用,sql解释/执行程序几乎要重新独立编写。
2。我曾经认为,事务回滚可以用逆运算来实现,比如我举的上面那个例子,但是,大多数情况下,无法用逆运算实现,比如insert,delete就无法用逆运算实现。还有,即使理论上存在逆运算,也无法智能求得逆运算动作,只能由调用者给出(比如上面的例子,其逆运算是col1=co1-1),这还是逆运算比较简单的情况。

我想出现以上如此不合协现象的原因,第一是我可能走了歪路,第二是函数的表示能力比sql语句弱,函数可能相当于线性的确定有限自动机,而sql语句可能是上下文无关文法对应的处理机。(注意我这里说得函数不是指类似于处理sql语句串的函数)

这些想法是否正确?希望大家谈谈自己的看法。

论坛徽章:
0
2 [报告]
发表于 2004-01-20 16:12 |只看该作者

程序设计:问一个涉及到数学原理的问题

设计模式里好几个模式都挺合您用的,可以看看,然后试试!
不要用纯C来写了,虽然效率上比C++高10%左右

论坛徽章:
0
3 [报告]
发表于 2004-02-02 08:51 |只看该作者

程序设计:问一个涉及到数学原理的问题

感谢Celetium的回复!我昨天晚上才从老家回来,已经十几天没有上网了。
我有一个感觉,就是现在国内谈软件,管理层都谈cmm之类,技术人员则谈oop,而不注重实际能力的提高,我对oop的看法,引用周星驰的《国产007》上的一句台词,“其实,它也是一个风筒”。如果一个软件用c实现不了,那么用c++或是java也实现不了。
不知大家是否同意我的看法?

论坛徽章:
0
4 [报告]
发表于 2004-02-02 12:31 |只看该作者

程序设计:问一个涉及到数学原理的问题

我非常 不 同意你的意见!!!
按你这么说,那还可以说:如果一个软件汇编实现不了,那么C,C++,java也实现不了,如果一个软件机器语言实现不了,那么汇编,C,C++,JAVA也。。。这都是相当于废话,一个低级语言当然比高级语言涵盖的指令要广!oop不是一种技术手段,是一种思想!照你这么说实际能力就是掌握机器语言的能力!象你这样只考虑实现,不考虑重用、不考虑维护的实在不是什么高明之士!!!!

论坛徽章:
0
5 [报告]
发表于 2004-02-02 12:56 |只看该作者

程序设计:问一个涉及到数学原理的问题

Celetium兄不要生气,我的意思是说我提的问题跟oop关系不大,另外鄙人参见工作只有两年半,才疏学浅,还请Celetium兄以及各位同仁多多指教。

论坛徽章:
0
6 [报告]
发表于 2004-02-03 08:40 |只看该作者

程序设计:问一个涉及到数学原理的问题

关于自动机的问题,全都不记得了。不过rollback的问题能看到的唯一解决方案就是使用日志。否则是不可能得到足够的信息以便回滚的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP