可移植的非关系数据库
-
05-09-2019 - |
题
我想尝试/尝试非关系数据库,最好的解决方案是:
- 便携式,这意味着它不需要安装。理想情况下,只需将目录复制粘贴到某个地方即可使其工作。我不介意第一次使用时是否需要编辑一些配置文件或运行配置工具。
- 可从 python 访问
- 适用于 Windows 和 Linux
你能为我推荐什么?
本质上,我希望能够在共享 Linux 服务器上安装这个系统,而我在该服务器上几乎没有用户权限。
其他提示
元工具包 是一个有趣的非关系型嵌入式数据库,支持Python。
安装只需复制单个共享库和 .py 文件。它适用于 Windows、Linux 和 Mac,并且是开源的(MIT 许可)。
如果您习惯于认为关系数据库必须像 PostgreSQL 或 MySQL 这样又大又重,那么您会对 SQLite 感到惊喜。
它是关系型的,非常小,使用单个文件,具有 Python 绑定,不需要额外的权限,并且可以在 Linux、Windows 和许多其他平台上运行。
你看过吗 沙发数据库?它是非关系型的,可以相对轻松地迁移数据,并且具有以下形式的 Python API couchdb-python. 。它确实有一些相当不寻常的依赖关系,其形式为 蜘蛛猴 和 埃尔兰 尽管。
至于纯Python的解决方案,我不知道还有多远 PyDBLite 已经来了,但仍然值得一看。
伯克利数据库:(似乎有一个 API 绑定到 python : http://www.jcea.es/programacion/pybsddb.htm)
你看过吗 Zope 对象数据库?
还, SQL炼金术 或者 Django 的 ORM 层使得 SQLite 上的模式管理几乎透明。
编辑
从...开始 http://www.sqlalchemy.org/docs/05/ormtutorial.html#define-and-create-a-table了解如何创建 SQL 表以及它们如何映射到 Python 对象。
虽然您的问题很模糊,但您的评论似乎表明您可能希望首先定义 Python 对象,让它们工作,然后通过 SQLAlchemy 将它们映射到关系模式对象。
如果你只是从 Python 来来去去,你可能会考虑使用 泡菜 序列化对象。当然,如果您想使用其他工具来访问相同的数据,那么这是行不通的。它内置于 python 中,因此您不应该遇到任何特权问题,但它不是真正的数据库,因此它可能不适合您的实验需求。