开发者社区> zting科技> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

嵌入式轻量级数据库 SQLite和 System.Data.SQLite

简介:
+关注继续查看

http://www.uushare.com/group/10003/topic/26435

SQLite是遵守ACID的關聯式資料庫管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。

不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。

特征

库实现了多数的SQL-92标准,包括事务,就是代表原子性、一致性、隔離性和持久性的(ACID),触发器和多数的复杂查询。不进行类型检查。你可以把字符串插入到整数列中。例如,某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候。其他用户认为这是主要的缺点。

多个进程或线程可以访问同一个数据而没有问题。可以并行的满足多个读访问。只有在其他访问当前不被服务的时候才能满足写访问;否则写访问失败并带有一个错误代码(也可以在可配置的超时过期之后自动的重试)。

System.Data.SQLite

是一个原始SQLite的加强版.  它将是一个原版的sqlite3.dll完全替代品 (你甚至就可以把它重命名为sqlite3.dll).  它不需要链接.NET 运行时,所以可以脱离.NET独立发布然而它内嵌了一个完整的 ADO.NET 2.0 引擎,为开发提供了完整的支持.

特性

完整的 ADO.NET 2.0 实现
整个工程完全基于VS2005  ADO.NET 2.0全新构建使用了全部的ADO.NET framework新特性.  包括完整的 DbProviderFactory 支持,自动的分布式事务调用广泛的模式支持此外所有的类都是从 ADO.NET 2.0 的基类继承下来的.

支持完整和精简的 .NET Framework 以及 C/C++
这个库不需要链接依赖.NET运行时,100%兼容原始的sqlite3.dll,可以使用非托管的C/C++ 进行开发.

可移植的数据库文件
未加密的 SQLite 数据库文件可以自由的跨平台和处理器使用,包括非Windows平台加密之后的数据库可以在全部Windows平台上使用.

可以信赖的速度,比包括Sql Server Mobile 在内的其它大多数嵌入式数据库都要快速
SQLite'
安装所占用的空间相对于Sql Mobile可谓忽略不计了它在运行的时候占用更少的内存,同时生成的数据库也更小.

数据库加密
可以对整个数据库文件进行加密.  支持二进制和明文的密码.

支持使用Visual Studio 20xx 设计
你可以向Server Explorer添加一个SQLite 连接使用查询设计器创建处查询语句向一个数据集中拖拽一个表格等等! SQLite的开发者可以在包括体验版在内的各种Visual Studio 2005下工作.

单文件再发布包容量在400kb以下
SQLite本身和ADO.NET 封装捆绑编译在一起.  预编译的二进制文件提供了 x86, IA64, x64 ARM 的版本.

广泛的SQL语言支持
SQLite 
支持大部分的SQL92 标准(see below).  支持命名和未命名的参数以 UTF-8 UTF-16 编码通过优化的管道传入SQLite 内核.

用户自定义的函数  排序
全面支持用户自定义函数和排序方式,意味着你可以用自己喜欢的.NET语言来实现SQLite没有提供的特性.  这一切将非常的简单.

提供了全部的源代码.  100% 免费.
全部的封装库源代码都是公有的.  无论是个人还是商业应用都没有任何的协议约束.

最新

支持 Mono
支持 ADO.NET 3.5 Entity Framework
支持 Visual Studio 2005/2008 设计器

SQLite 的官方网址:
http://www.sqlite.org/

System.Data.SQLite 的官方网址:
http://sqlite.phxsoftware.com/

 


本文转自火地晋博客园博客,原文链接:http://www.cnblogs.com/yelaiju/archive/2010/08/29/1811828.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Unity 之 关于停止协程的五种方式解析
通过代码结合示例一一解析了五种停止协程的方式。
413 0
阿里云开源PolarDB数据库,与社区共建云原生分布式数据库生态
5月29日,阿里云开发者大会上,阿里巴巴宣布开源云原生数据库能力,对外开放关系型数据库PolarDB for PostgreSQL 源代码,服务百万开发者,与社区开发者一起共建云原生分布式数据库生态。“我们希望将阿里云在云原生分布式数据库技术上积累的丰富经验,通过标准技术组件和系统的方式开放出来,共建开源数据库生态。”阿里云智能数据库产品事业部负责人李飞飞表示。
19101 0
关于一些主流博客框架的介绍
关于一些主流博客框架的介绍
193 0
Unity工程无代码化
Unity工程无代码化目的Unity默认是将代码放入工程,这样容易带来一些问题。 代码和资源混合,职能之间容易互相误改。 当代码量膨胀到一定程度后,代码的编译时间长到无法忍受。新版的unity支持通过asmdef来将代码分成多个dll工程,有所缓解。
1404 0
全文检索技术--理论篇
全文检索技术 什么是全文检索技术? 数据分类,一共分为两种:结构化数据和非结构化数据 通俗上讲,做开发的同学应该对结构化的数据已经非常的了解。
3252 0
C# 不重启程序修改并保存配置文件(appSettings节点)
原文:C# 不重启程序修改并保存配置文件(appSettings节点) private static void UpdateAppConfig(string newKey, string newValue) { bool isModified = false; foreach (string key in ConfigurationManager.
1205 0
Android动态修改ToolBar的Menu菜单
Android动态修改ToolBar的Menu菜单 效果图 实现 实现很简单,就是一个具有3个Action的Menu,在我们滑动到不同状态的时候,把对应的Action隐藏了。
1308 0
锁、C#中Monitor和Lock以及区别
1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取锁之后因为异常,致锁无法释放,所以需要在try{} catch(){}之后的finally{}结构体中释放锁(Monitor.Exit())。
2092 0
+关注
3549
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载