在我的LGPLv3许可的开源项目中,我需要一个小型演示数据库。项目针对多个数据库,因此为了测试的一致性,最好有一些简单的 SQL 脚本和所有数据库的相同演示数据。
Microsoft 提供了一个用于 SQL Server 的小型演示数据库,称为pubs (与Northwind一起包含在 SQL Server 2000 的演示数据库包中)。它有两种形式:作为 SQL 脚本和插入式数据库文件。脚本受版权保护如下:
/* */
/* InstPubs.SQL - Creates the Pubs database */
/* */
/*
** Copyright Microsoft, Inc. 1994 - 2000
** All Rights Reserved.
*/
我修改了一个脚本来为 SQLite 生成具有相同数据的数据库。但现在我意识到这可能不是一个好主意。所以,我想澄清一些问题:
- 我可以并且应该在我的项目中包含原始 SQL 脚本/MDF 文件 Microsoft 脚本并保留版权吗?
- 我可以而且应该包含修改后的 SQL 脚本/sqlite 数据库,如果可以,谁将拥有该脚本/数据库的版权?
- 是否有任何开源演示数据库可以用于我的目的(包括和修改 SQL 脚本)?比如这个?
我几乎可以肯定,前两个答案是“否”,第三个答案是“是”。但我还不确定。
更新: 发现另外两个基础BIRT和Chinook首先是 Eclipse 许可证,第二个是 MS-PL,我再次不确定是否可以使用它们。
更新 2: 似乎没什么大不了的。我意识到我可以为代码的不同部分使用独立的许可证。因为它不是项目代码的重要部分,而只是一个测试数据库,所以我可以使用它的原始许可证 BSD、Eclipse、MS-PL 来工作和包含它。
所以现在的主要问题是,我应该使用哪个?条件是它必须相当简单(大约 10 个表)并且脚本应该在大多数数据库引擎上执行而无需进行重大修改。Chinook似乎是一个理想的选择,但它不是来自主要软件提供商,我想使用一些已经流行且“经过测试”的数据库。
最后更新: 经过一些重新/搜索后,我放弃了让一个测试数据库来统治的想法,因为这极大地限制了数据库引擎的某些功能并且测试变得不切实际。所以我会为每个引擎使用不同的数据库。至于 MS 数据库,我认为这只是妄想症,MS 可能不会因为任何事情起诉我 :)。