Google

关系型数据库家谱

看《系分》教材,有一章节是关于数据库的,一般这种章节开篇都会列出当下几个著名的数据库产品,我不期待有symfoware,但是把Ingres列到第二位,我还是有点不解,Wiki了一下,虽然Ingres的辉煌是明日黄花(系分教材也真该更新下了),但是,面对这祖师级的数据库产品,Symfoware等后辈还是得道一声“失敬”
俺按照wiki上的介绍,把UML工具JUDE当做画图工具,画了一张关系型数据库族谱:

了解ODBC

大四有次课程设计,是做数据库应用程序的,当时按照老师的那本书中的实例,几乎没有动脑,程序就ok了
现在觉得这种行为真愚蠢。
工作后,接触的全部是跟数据库驱动相关的bug,对各种Driver的使用也了然于胸,大学时候能有这种实习机会的话,绝对大受裨益
后知后觉的事太多了…
之前一直搞不清楚ODBC是微软自己的协议,还是一种通用标准,很多数据库只有在Windows平台上才有ODBC库,比如Symfoware
但是在SQL ISO2003中没有ODBC这一章,却在第三章有对CLI的实现进行了详细说明,这让人费解。
最近综合一些信息,包括自己的理解,维基百科上的词条等,算是得到了答案:
1.用户使用ODBC是通过ODBC连接管理器+ODBC驱动程序实现的。Windows上的Microsoft ODBC是使用最广泛的ODBC管理器工具,而数据库厂商去实现ODBC驱动程序,厂商的ODBC驱动程序对用户来讲,往往是不可见的或者不能直接使用的,ODBC管理器可以用来设置ODBC数据源,而用户写的C程序也可以调用微软提供的ODBC API函数
2.ODBC标准是由微软最早提出的,发展到ODBC3的时候,已经很成熟,ISO就根据ODBC标准制订了CLI标准,现在使用的统一的的C语言接口,所以叫做Call-level Interface,功能跟ODBC几乎相同。
3.也许是习惯的缘故,Symfoware面向Windows ODBC管理器的库仍称之为ODBC库,CLI库是后来完全基于ODBC库开发出来的,接口增加了,也脱离了对ODBC管理器的依赖,扩展性和独立性都提升了不少
4.IBM的DB2公开了CLI接口,Symfoware没有,Symfoware在Windows平台可是使用ODBC API,但是非Windows场合,却不能,即使巧妙的用到了,出了问题Fujitsu是免责的

Symfoware V10がやっと発表できそうです

如题,历时两年时间,Fujitsu中间件产品之一Symfoware的V10.0发布了。刚好也是从大学毕业进入公司工作的这一段时间,一年半的时间都是在维护Symfoware,修bug,加些小功能,算是增砖添瓦,添油加醋,为Symfoware的成功发布做了一点点的小贡献。
除了FUJISTU的重要客户和内部员工,不晓得是否有人会关注V10,一些大型的开发往往都会胎死腹中,V10没有沦落至此,很是幸运,也辛苦了一大批兄弟姐妹。

shell编程–命令解释程序

最近的一个小项目因为不晓得shell编程被PM羞辱了,呜….
具体如下:
Symfoware中有两个命令能够执行DDL:命令rdbexecsql和命令rdbddlex
rdbddlex是比较早的命令,rdbexecsql则是最近开发的,支持DML,最近做了扩展。也支持了DDL
所以,rdbexecsql覆盖了rdbddlex的功能
现在想用rdbddlex的测试集测试rdbexecsql,有一个简单的方法,就是写一个shell程序,用rdbexecsql命令解释rdbddlex
写这个shell,需要用到getopts命令和熟悉rdbexecsql与rdbddlex两个命令之间的差异
删减版的shell程序的框架示意如下:
————————————————rdbddlex程序开始—————————————————————
#!/bin/bash
#rdbddlex — use rdbexecsql to replace rdbddlex(include their options)
##############################################################################
while getopts “:d:xlv:” OPTION
#:对”:d:xlv:”的解释:
#”:d:xlv:”是rdbddlex支持的参数
#“:“表示之前的option要有相应的参数,比如-d选项后必须跟数据库名
#d之前有个”:“是因为rdbddlex 的选项都是可选的,但是必须跟一个文件名作为rdbddlex 的参数
do
case $OPTION in
d)dbopt=Y
dbname=$OPTARG;;#变量$OPTARG保存了当前$OPTION对应的参数(如果有的话)
x)xopt=Y;;
l)lopt=Y;;
[...]

Symfoware

今天想到一个提高博客知名度的好方法,那就是经常把symfoware拉进来
目前我正在维护的这款数据库,虽然在国内的知名度几乎为零,但是在日本还是有一定的市场,在中国,一些面向 日本的外包公司,包括Fujitsu内部的子公司对Symfoware还是有点使用需求的。
我曾经在CSDN上的博客说这款数据库很差劲,太武断了,是因为当时还没有习惯,尽管与Oracle,DB2,SQL Server有很大差距,但是毕竟也是一款久经考验的商业数据库,比开源的MySQL,PostGreSQL要稳定可靠些。
在 Fujitsu产品群中,Symfoware只是属于软件事业部门的中间件部门的一个产品,并不是主打产品,所以,Fujitsu算不上数据库专业厂商,也没有花过多的人力和物理资源在Symfoware上,对用户来讲,Symfoware在Fujitsu服务器上表现的表现可圈可点,因此也是主要面向大客户,客服方面做的也是相当不错,主要体现在Symfoware的各种定制版本中。
而且,很重要的一个因素是,日系厂商在技术上偏保守,Symfoware也一直没有使用一些新的技术,像高端点的内存数据库,语意数据库,数据仓库等都没有,甚至,外键暂时也不支持。
其实,当初的设计者规划的架构和最后实现也是相差甚大。
目前用Symfoware的有名机构主要有:
http://software.fujitsu.com/jp/symfoware/casestudies/customer/
可惜没有看到丰田和东京证券