我有一些应用程序,我想要编写的,有类似的数据需求,我有困难,找出哪个数据库管理系统最好。我想要一些开源的东西,有一个合理的许可(不是MySQL)。
其中一个应用程序是“家庭信息”应用程序,它是一个组合联系人、家谱、家族史和照片/元数据跟踪器。因此,数据需求相当温和(以现代标准衡量)。
问题的一部分是,我并不完全确定在RDBMS中我想做的事情是否容易,甚至可能,这是我所熟悉的。我甚至可能需要为不同的方面使用多个DBMS。
我要存储的数据包含三个主要部分:父节点、数据节点和属性。
父节点由标识信息、子节点列表和一组属性组成。
数据(子)节点包含某种内容,或者是文本数据,或者是二进制数据,以及一组属性。
属性是键/值对,其中的值相当简单--原语(布尔型、字节、int、double等)、日期、枚举类型或相当短的字符串。这些属性是我遇到的最麻烦的部分--弄清楚如何存储不同类型的属性,在不同的数据类型下都可以透明地访问它们。
请推荐某种数据存储库,它将允许我在Java虚拟机环境(Java和/或Scala)中以最小的难度实现这样的系统。
发布于 2015-03-04 02:35:59
我使用和喜欢的一个免费数据库是火鸟。它可以在本地使用,也可以作为一个中小型多用户DB使用,占用空间非常小,并且有许多库可供其使用。它重量轻,维护方便,符合ISO/IEC 9075数据库语言SQL的要求。
不过,最小安装并不具备数据库管理系统( DBMS )(如Oracle )的所有功能,但您可以选择添加哪些库(UDF和DLL)。还请参阅https://www.ibphoenix.com/和IBExpert个人版,以及优秀的DB浏览器和管理器。
发布于 2015-03-03 03:24:50
您可以在RDBMS中这样做。我推荐Postgres。http://www.postgresql.org/。您也可以将二进制数据存储在磁盘上,并使用数据库存储文件名。
发布于 2015-03-04 05:37:19
如果您能够澄清父节点和子节点应该形成树状结构还是类似于网络的结构,这将是有帮助的。尽管如此,您所描述的系统可以被构建,使用几乎任何类型的现代数据库系统或库:关系型、面向对象、多范式、分层、网络这些都是罕见的以及面向文档和其他NoSQL数据库系统。它只是一个优先排序或平衡需求,功能,开发平台的选择,等等。
显然,如果您对数据模型更加具体,答案可能会更有帮助。例如,如果您的数据模型是分层的,那么像这和这这样的讨论将提供更具体的意见或建议。根据您的系统需求,您甚至可以使用某种简单的JSON存储(通过上面相应的链接查看NoSQL信息)。
选择还可能受到系统预期使用(拥有正确许可证的选择软件可能很棘手)、您计划为系统使用的编程语言(开发平台)以及系统是否应该支持多个平台以及哪个平台(开发和目标都支持)的影响。
https://softwarerecs.stackexchange.com/questions/17612
复制相似问题