【发布时间】:2010-09-17 18:43:30
【问题描述】:
什么是 Informix?我知道它是一个 DBMS,它在学习难度和语法方面与 SQL Server 相比如何?
如何开始学习 Informix?我可以知道“hello world”教程吗?
【问题讨论】:
标签: informix
什么是 Informix?我知道它是一个 DBMS,它在学习难度和语法方面与 SQL Server 相比如何?
如何开始学习 Informix?我可以知道“hello world”教程吗?
【问题讨论】:
标签: informix
IBM Informix Dynamic Server(IDS,俗称 Informix,尽管有许多其他产品属于 Informix 产品系列)是用于多种用途的出色 DBMS。它具有出色的数据管理能力,出色的数据复制能力,并且可靠。第一个基于 Informix SQL 的 DBMS 发布于 1985 年,因此它也具有类似于 Oracle、DB2、Ingres、Sybase 的长寿和血统。与所有主要的 DBMS(包括 MS SQL Server)一样,它早于 SQL 标准,因此它的某些部分不符合 SQL 标准,但它通常可以完成合理的工作。它可以在 Unix 和衍生产品(Solaris、AIX、HP-UX、Linux 和 MacOS X)以及 Windows(XP、Vista 等)上运行。
IDS 的最新版本是 11.50(完整版,11.50.FC2 或 11.50.UC2)。您可能遇到的其他版本包括 7.31、9.40、10.00 或 11.10。 Informix 还提供当前版本 7.25 的 Informix 标准引擎 (Informix SE) 和当前版本 5.20 的 Informix OnLine(IDS 的前身)。客户端工具的主要来源是客户端 SDK,当前版本 3.50。这包括 ESQL/C、ODBC、JDBC、.NET 和各种其他驱动程序。 Informix SQL(一种产品,不同于 IDS 中嵌入的 Informix SQL 方言)和 Informix 4GL。
您可以将 DBI 和 DBD::Informix 与 Perl 一起使用。 PHP 有一个 PDO_INFORMIX 和一个 PDO_IBM 驱动程序。有一个 Python 驱动程序。 Ruby 有一个驱动程序。 (古老的)Tcl/Tk 有一个古老的驱动程序。您可以在下面提到的 IIUG 网站上找到 SQLCMD(比同名的 MS SQL Server 程序早了十年多一点)。有一个 I4GL 的开源重新实现,可用作 Aubit4GL。您还可以在 4Js 和 Querix 找到 I4GL 衍生产品。您可以在 www.serverstudio.com 找到 Server Studio Java 版 (SSJE)。
规范的网站是 www.ibm.com/software/data/informix,www.informix.com 也可以带您到那里(您通常在 URL 中以 www-01.ibm.com 结尾)。您还可以在国际 Informix 用户组网站www.iiug.org 上找到很多信息。会员资格是免费的。 IIUG 提供了许多邮件列表,并包括 informix-list@iiug.com 列表和 comp.databases.informix 新闻组之间的网关。
您可以从 IBM 和 IIUG 获得该软件的试用版。
全面披露:我从 1986 年开始使用 Informix 产品,目前在 IBM 从事 IDS 方面的工作。
【讨论】:
从 .NET 开发人员的角度来看,使用 IDS 是一件很痛苦的事情。
主要原因(IDS 11.5):
这些只是一个处理 IDS 的项目中的几个项目。我可以看到它很快,我确信它是可靠的,但是如果你不能轻松地针对对象模型进行编码,那么它就毫无意义了。
【讨论】:
很抱歉,您的陈述一定有点过时了。 Informix 11.50(一个非常旧的版本,很快就会停止支持 - 我们现在是 12.10 版本)已经通过 IBM Data Server 驱动程序与 .NET 实体框架兼容。您需要做的就是在安装驱动程序后安装 VSAI 插件。我已经帮助几个 .NET 开发人员对其进行了配置,他们对此感到非常惊讶。
作为前端,您可以使用 Squirrel(开源),它使用 JDBC 连接与多个数据库一起工作。
有关字符串操作的实际版本 (12.10) 手册页,请参见 here。
Informix 现在能够混合 NoSQL 应用程序,并提供事务支持!
【讨论】:
如果您了解 SQL,则可以非常轻松地在基础级别上使用 Informix(如果您是 DBA,那就完全是另一回事了)。
对我来说,最大的问题是缺乏一个像样的开发 IDE——你可以从 QuantumDB Eclipse 插件运行基本查询,但你不能使用存储过程(我认为这是 IBM JDBC 驱动程序的问题)。 Unix 命令行界面似乎是在那里正确执行任何操作的最简单方法。
有一些技巧(比如知道连接的顺序确实很重要),但我相信你会在途中学会这些技巧。
SELECT
table1_alias.column1 column1_alias,
table2_alias.column2 column2_alias
FROM
table1 table1_alias,
table2 table2_alias
WHERE
table1_alias.column1 = table2_alias.column2
AND
table1_alias.column3 != 'value'
AND
(char_length(table1_alias.column3) > 3
AND
table1_alias.column3 IS LIKE 'another_value%'
【讨论】: