【问题标题】:Do you know a database written in Perl with DBI interface?你知道用 Perl 编写的带有 DBI 接口的数据库吗?
【发布时间】:2010-06-06 13:58:18
【问题描述】:

你知道一个纯粹用 Perl 编写的带有 DBI 接口的数据库吗? 或者如果没有安装 MySql 或 Postgresql 并且我只想使用 Perl 可以使用什么?

谢谢。

好的,我只是想要一些可以与 Catalyst 一起使用的东西。

【问题讨论】:

  • 您能说明一下您的目标吗?纯 Perl 对您来说重要还是零安装重要?
  • 如果您想在没有 Pg 或 MySQL 的情况下进行测试,请查看 this test script in Fey::Test

标签: database perl dbi


【解决方案1】:

SQLite 怎么样? DBD::SQLite

【讨论】:

  • 我对这个答案投了赞成票,但 SQLite 回答了问题的第二部分,而不是第一部分。该问题要求使用 Perl 编写的数据库。 SQLite 是用 C 实现的。我假设发布者想要一些可以在没有任何依赖项的情况下部署的纯 perl,例如 Apache Derby for Java (db.apache.org/derby)
  • 这里有两个问题。第一个是关于用 Perl 编写的数据库。第二个更笼统。弗兰克的回答适用于第二个就好了。
  • 没有澄清,我猜零安装更重要,这就是正在寻找的答案。
  • DBD::SQLite 没有任何非 Perl 外部依赖项。它包含 C 源代码。
【解决方案2】:

我相信DBD::CSV 是一个简单的 DBD 实现,它使用 Text::CSV 将数据持久化到 CSV 文件中。

【讨论】:

    【解决方案3】:

    这很大程度上取决于您认为“数据库”是什么。

    如果您只是想要一些东西来存储您的数据,可以使用许多 Perl 数据库。这里列出了一些:http://www.perl.com/pub/a/2004/09/12/embedded.html

    • 领带::文件

    • 伯克利数据库

    • SQLite

      请注意,尽管我在这里看到“SQLite 是用 C 编写的”cmets,但文章明确指出

      方便地,DBI 驱动程序用于 SQLite,DBD::SQLite,已经包含 数据库引擎本身作为 模块 - 所以安装这个模块 是所有需要能够 使用 Perl 中的 SQLite。

    但是,以上都不是真正的数据库引擎,支持事务等...,尽管有些允许类似 SQL 的查询语言访问

    我不知道在 Perl 中实现了任何真正的数据库引擎。

    【讨论】:

    • 我找到了一个但是没有DBI接口。
    • @Aftershock:请编辑您的问题以更具体地说明您需要什么以及您的限制是什么。目前每个人都只是在猜测,这对任何人都没有帮助。 :)
    • 好吧,我只是想发现我的选择。我考虑使用 Catalyst,据我所知它需要一个数据库。我想它可能会帮助其他寻找纯 Perl 数据库的人。
    • Aftershock:恕我直言,我认为您实际上并不想要一个纯 Perl 数据库。任何重要的查询都会很慢。 DB 是您真正需要性能的少数几个方面之一。
    【解决方案4】:

    Perl 规则 34:

    如果您能想象得到,那就是 DBD 它的模块;)

    http://search.cpan.org/search?m=module&q=DBD::&s=1

    【讨论】:

      【解决方案5】:

      AFAIK 在纯 perl 中没有 relational 的数据库,这并不经济;您可能会在 CPAN 上查看 ACME。

      基本上你有两个选择:一个纯 perl 模块,它提供一个 DBD 包,例如 .txt、.csv 或 .xml 文件。

      如果没有,您也可以使用纯 perl 实现自己的 BDB/DBM 样式系统,就像 Ken Thompson 在 C 中使用 DBM 所做的那样。但是,它不会像拥有基于 SQL 的关系数据库那样复杂。

      如果您希望使用 SQL,请使用基于 SQL 的数据库。

      【讨论】:

        【解决方案6】:

        DBD::DBM 是一个纯 Perl 数据库驱动程序,自 1.42 版(2004 年 4 月)以来它就是 DBI 本身的一部分。它可以使用相应的模块处理各种不同的数据库格式,例如BerkleyDBSDBM_File(核心模块)。

        需要将其与MLDBM 结合使用才能获得可用的数据库(否​​则每个表只支持两列)。

        DBD::DBM 的文档非常丰富,很好地概述了不同的选项以及如何设置它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-04-12
          • 1970-01-01
          • 2016-06-17
          • 2012-12-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多