便携式非关系数据库

时间:2009-02-22 16:31:16

标签: python non-relational-database portable-database

我想尝试/玩非关系型数据库,最好是解决方案是:

  • 便携式,意味着它不需要安装。理想情况下,将目录复制粘贴到某个位置会使其工作。我不介意它是否需要编辑一些配置文件或运行首次使用的配置工具。
  • 可从python
  • 访问
  • 适用于Windows和Linux

你能为我推荐什么?

基本上,我希望能够在我没有用户权限的共享linux服务器上安装此系统。

9 个答案:

答案 0 :(得分:7)

我建议您考虑BerkelyDB 并了解许可问题。

我对人们在没有资格的情况下推荐BerkleyDB感到非常厌倦 - 你只能在GPL下分发BDB系统,或者从Oracle那里分发一些未知且不公开的许可费用。

对于在当地没有使用的“本地”游戏,它可能是一个好主意。请注意,有许可证等着咬你。

这也提醒我们,在询问GPL是否可以接受的技术建议时,这是一个好主意。

my own question关于可移植的C API数据库,虽然建议了一系列其他产品,但没有一个嵌入式产品具有Python绑定。

答案 1 :(得分:5)

Metakit是一个有趣的非关系型嵌入式数据库,支持Python。

安装只需复制一个共享库和.py文件。它适用于Windows,Linux和Mac,并且是开源的(MIT许可)。

答案 2 :(得分:4)

答案 3 :(得分:4)

如果您习惯认为关系数据库必须像PostgreSQL或MySQL一样庞大而且很重,那么SQLite会让您感到惊喜。

它是关系型的,非常小,使用单个文件,具有Python绑定,不需要额外的权限,可以在Linux,Windows和许多其他平台上运行。

答案 4 :(得分:3)

你看过CouchDB了吗?它是非关系型的,可以相对轻松地迁移数据,并且它具有couchdb-python形式的Python API。它确实有SpidermonkeyErlang形式的一些相当不寻常的依赖关系。

对于纯python解决方案,我不知道PyDBLite已经走了多远,但它仍然值得一试。

答案 5 :(得分:2)

BerkeleyDB :(似乎有一个绑定到python的API:http://www.jcea.es/programacion/pybsddb.htm

答案 6 :(得分:0)

你看过Zope Object Database吗?

此外,SQLAlchemyDjango's ORM层使SQLite上的架构管理几乎透明。


修改

http://www.sqlalchemy.org/docs/05/ormtutorial.html#define-and-create-a-table开始 了解如何创建SQL表以及它们如何映射到Python对象。

虽然你的问题很模糊,但你的评论似乎表明你可能想要先定义Python对象,让它们工作,然后通过SQLAlchemy将它们映射到关系模式对象。

答案 7 :(得分:0)

如果您只是来自Python,您可能会考虑使用Pickle来序列化对象。如果您希望使用其他工具来访问相同的数据,那么就无法工作了。它内置于python中,因此您不应该有任何特权问题,但它不是真正的数据库,因此它可能不适合您实验的需要。

答案 8 :(得分:0)

在此处添加对TinyDB的引用,因为此页面显示在许多搜索的顶部。它是python中的一个可移植的非关系数据库。它将python dicts存储到本地json文件中,并使它们可用于类似于mongodb的数据库操作。它还有一个扩展到mongodb命令的端口,不同之处在于,您不会在另一个系统服务器上工作,而是在本地json文件上运行。

与目前选择的答案不同,它是在宽松的MIT开放许可下。

链接: