具有强类型和无大小限制的轻量级 SQL 数据库

Posted

技术标签:

【中文标题】具有强类型和无大小限制的轻量级 SQL 数据库【英文标题】:Lightweight SQL database with strong typing and no size limit 【发布时间】:2012-10-12 15:51:28 【问题描述】:

我正在寻找一个轻量级的 SQL 数据库引擎,它可以在与我正在开发的 .NET 应用程序相同的进程中运行,无需其他安装。我知道两种选择:

    SQLite SQL Server Compact Edition

乍一看,这些对我来说是相当不错的选择,因为它们支持我需要的大多数高级功能(例如并发、事务等),而无需单独安装数据库服务器。然而,它们都有一个主要的缺点:

    SQLite 使用动态类型,即no errors will be thrown if you try to insert the wrong data type into a column。额外的数据验证是我首先使用数据库的一半原因。 SQL Server CE 有一个4 GB size limit。

是否有任何其他可以在 .NET 上下文中使用的可以“xcopy”部署的数据库引擎?

【问题讨论】:

数据库必须是关系型的吗? 动态类型并不意味着弱类型,它的意思是,你需要好的单元测试。 ORM 可以解决您的大部分打字困难。 @TonyHopkinson 在很大程度上我同意。然而,人们很可能会从我的软件外部访问这个数据库,这意味着我无法控制针对数据库运行的所有代码。此外,如果一个随机错误以某种方式 将其投入生产,我希望数据库能够捕获它。额外的安全层。 @Phil。同意 如果您无法控制对 SqlLite 数据库的访问,那么这不是一个选项。 当您说其他代码将针对数据库运行时,这是在同一台机器上对吗?如果涉及远程访问,这两种方法都不是好的解决方案。 【参考方案1】:

我认为Firebird 满足所有需求,并且它具有原生 .NET 驱动程序

http://www.firebirdsql.org/en/development-net-provider/

【讨论】:

以上是关于具有强类型和无大小限制的轻量级 SQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章

Spark 数据集 - 强类型

面试准备Java基本数据类型

如何在 PostgreSQL 9.5 中为“int”数据类型设置大小限制

如何在 PostgreSQL 9.5 中为“int”数据类型设置大小限制

有符号和无符号数据类型

C++ 中关于有符号类型(singned)和无符号类型(unsigned)