gpt4 book ai didi

c# - 多用户嵌入式数据库

转载 作者:搜寻专家 更新时间:2023-10-30 19:46:25 24 4
gpt4 key购买 nike

我的任务是为即将到来的项目寻找一个合适的数据库。我很难找到合适的匹配项。我们的应用程序是 .Net Framework 4.0 C# 应用程序。

首先我查看了 SQLite,但我遇到了问题,因为 SQLite 在写入期间锁定了它的数据库文件。

我有 2 个独立的应用程序使用同一个数据库同时运行,我无法确定其中一个正在写入。我试图等待锁释放,但这导致了一些数据丢失。所以我想我会发明一个队列系统,但是两个应用程序都需要使用相同的队列......所以我想我会做一个单独的窗口服务。在我看来,所有这些开始听起来像是传统的 RDBMS。

我决定回过头来问自己“我使用的数据库是否正确?”。

有人知道可以满足我的要求的数据库吗?

这是我的要求:1. 安装方便。这包括没有用户必须与我们的应用程序安装分开运行的单独“安装程序”。这首先让我相信我需要一个嵌入式数据库,但我认为可能有一些聪明的方法可以在我们的安装程序中包含数据库安装。

  1. 很难打破。这里最大的需求是它应该能够在命名管道而不是 TCP/IP 上工作,以解决安全问题(或任何降低人们系统配置破坏我们应用程序的能力的东西)。我们的应用程序将始终在同一台机器上运行。他们需要共享同一个数据库,因此如果涉及防火墙/安全/“智能用户”,使用 TCP/IP 可能会导致问题。

  2. 数据库上的长时间运行操作不应阻止其他用户读取/写入数据库。我考虑过编写一些代码来处理这个需求并仍然使用 Sqlite,但决定做更多的功课。

  3. 许可:我们想要一些可以免费重新分发的东西。我们不希望我们的最终用户需要为我们所依赖的数据库购买他们自己的单独许可证。

  4. 大小限制:我们计划在这些数据库中存储大量数据,任意限制是 Not Acceptable 。我们愿意接受操作系统对文件大小施加的限制。 SQLite 的大小限制(这是任何 Windows 机器文件的大小限制)大于 2 TB。

  5. 很高兴:能够使用 Entity Framework 。

  6. 很高兴拥有:关系数据库。我们可能允许第 3 方应用程序读取我们的数据库,并且不介意它是关系数据库而不是文档或对象数据库。但是,我们愿意为满足我们所有要求的东西做出让步。

到目前为止我看过的数据库:乌鸦数据库SQLite立方体SQLiteSQL CE

Oracle 和 Microsoft SQL Server 已获得许可并且难以重新分发。

我了解这些要求非常严格。我什至不确定是否有开箱即用的解决方案。我感谢任何人可以提供的任何帮助。

最佳答案

您需要使用 SQL Server CE 4.0:

  • 复制部署
  • 支持加密
  • 可自由分发
  • 仅从 4.0 版开始支持多线程(在您的情况下为多进程)
  • 支持4G空间
  • 支持 EF(甚至是 CodeFirst)
  • 它是关系型的,并支持 SQL Server T-SQL 的一个子集

您错误地认为它需要许可:

Microsoft SQL Server Compact 4.0 is a free, embedded database that software developers can use for building ASP.NET websites and Windows desktop applications. SQL Server Compact 4.0 has a small footprint and supports private deployment of its binaries within the application folder, easy application development in Visual Studio and WebMatrix, and seamless migration of schema and data to SQL Server.

来自 Microsoft SQL Server Compact 4.0 (MS download)

除非 4Gb 不够用,否则您可以使用它。

SQL Server Express 也是免费的,限制较少,但需要安装。

SQL CE 和 SQL Server 之间的主要区别是 CE 不支持 Sotred Procedures。但如果您使用 EF,那根本不是问题。

编辑关于许可的附加信息:

SQL Server Compact 4.0 is freely redistributable under a redistribution license agreement and application developers redistributing SQL Server Compact 4.0 can optionally register at the SQL Server Compact redistribution site. Registering will help the developers in getting information about SQL Server Compact critical security patches and hot fixes that can be further applied to the client installations.

在下载页面的底部

关于c# - 多用户嵌入式数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10485837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com