选择哪个数据库?

时间:2010-04-05 03:51:50

标签: sql database selection nosql

我有以下标准

  • 应使用用户名和密码保护数据库。不应该复制数据库文件并使用它,否则就像MS Access一样。

  • 没有中央数据库服务器。每台机器将在本地运行自己的数据库服务器,用户将启动同步。概念的灵感来自像Git这样的分布式版本控制系统。所以它应该有很好的复制支持。

  • 不需要强一致性。用户将在需要时同步其他数据库。如果发生冲突,应该可以找到冲突并将其(从应用程序)呈现给用户以进行修复。

  • 如果可以的话,数据的修改会很好。例如发票变更的完整历史记录。

  • 我探索了面向文档的数据库并倾向于相同。但我不知道该选择什么。

  • 数据库很小,未来几年甚至不会达到1GB(比如说3年)。

请随意建议您认为可能适合的任何数据库。任何指针都非常受欢迎。

提前致谢。

3 个答案:

答案 0 :(得分:2)

我正在寻找完全相同的东西。还没找到。这个领域的一个有趣项目是Bestpractical的Prophet(以及基于此构建的bug跟踪器SD)。我不知道它有多活跃,我不认为它使用加密文件格式(但在你的场景中,整盘加密将是一个可行的解决方案)。

先知的流行语让人读起来像这样:

  

具有自我修复冲突解决方案的基础,半对等,对等复制,断开连接,版本化的属性数据库。

答案 1 :(得分:0)

我做过这样的事情,一个垂直市场的客户希望使用我的ClipMate程序来存储和分发与医疗相关的数据,并且不希望数据“逃到野外”。
我利用数据库的加密功能(Elevatesoft的DBISAM,它有一个直接编译成Delphi程序的引擎)和我的保护包装器Armadillo的“硬件锁定”功能。 因此,当有人从垂直市场客户购买该程序时,他们会获得应用程序(下载或CD)并进行安装。安装后,会出现一个注册对话框,显示其“硬件指纹”(由Armadillo报告)。这是从它们的以太网地址,CPU串行,硬盘驱动器串行等等中得出的,我可能在其中任何一个都是错的,但这是一般的想法。他们将其调用,并生成一个对最终用户/机器组合唯一的密钥。注册密钥“解锁”加密的数据库,加密密钥是注册码的一部分。 最终用户在没有密钥的情况下不能使用数据,并且他们不能在不接收其他解锁代码的情况下放弃或传输数据。这很紧张。对于低价位的应用程序来说太烦人了,但是它们为它收取了很多费用,所以值得。

无论如何,回顾一下:数据库是加密的,只有当程序正确注册到特定用户/计算机时才能访问加密代码(对于读取数据库的程序)。

你可以用Access,MySQL等来做这件事。只是在数据库级加密数据(我想他们支持这个,没有?)或者在现场级加密数据,如果你想要终极控制并且可以使用使用自定义前端应用程序来阅读该内容。

答案 2 :(得分:0)

以下是我要找的人:

  

来自official site:CouchDB是基于对等的分布式   数据库系统,它允许用户   和服务器来访问和更新   断开时相同的共享数据   然后双向复制   那些改变以后。

     

CouchDB文档存储,视图和   安全模型旨在工作   一起做出真正的双向   复制高效可靠。   文件和设计都可以   复制,允许完整的数据库   申请(包括申请)   设计,逻辑和数据)   复制到笔记本电脑以供离线使用,   或者复制到远程服务器   办公室很慢或不可靠   连接使共享数据   困难的。

知道如何使用用户帐户保护couchDB数据吗?例如Mysql需要用户登录才能使用数据。我只期待一个简单的身份验证,而不是为了傻瓜证明。我只是不希望数据打开进行编辑。加密文件系统似乎有点矫枉过正。