摘要: SQLite作为嵌入式数据库,通常针对的应用的数据量相对于通常DBMS的数据量是较小的。所以它的存储模型设计得非常简单,总的来说,SQLite把一个数据文件分成若干大小相等的页面,然后以B树的形式来组织这些页面。而对于大型的数据库管理系统,比如Oracle,或者DM ,存储模型要复杂得多。就拿Oracle来说吧,它对数据文件不仅从物理进行分块,而且从逻辑上进行分段,盘区和页的一个层次划分,DM也一样。不管怎么说,数据库文件要存储大量的数据,为了更好管理,查询和操作数据文件,DBMS不得不从物理上、逻辑上对数据文件的数据进行复杂的组织。 阅读全文
posted @ 2009-06-01 21:12 YY哥 阅读(8476) 评论(2) 推荐(0) 编辑
摘要: 最大子段和问题的分治与动态规划求解。 阅读全文
posted @ 2009-06-01 18:56 YY哥 阅读(16782) 评论(5) 推荐(2) 编辑
摘要: 线性时间选择问题 阅读全文
posted @ 2009-06-01 11:27 YY哥 阅读(3506) 评论(1) 推荐(0) 编辑
摘要: oracle的number数据类型 阅读全文
posted @ 2009-06-01 11:12 YY哥 阅读(17530) 评论(0) 推荐(0) 编辑
摘要: 库函数strlen解析 阅读全文
posted @ 2009-05-19 20:09 YY哥 阅读(1778) 评论(3) 推荐(0) 编辑
摘要: 两个字节对齐算法 阅读全文
posted @ 2009-05-14 09:26 YY哥 阅读(4281) 评论(0) 推荐(2) 编辑
摘要: 很多问题,看似简单,背后却隐藏着天机,C语言的字符串就是这样的,一起来看看C字符串的背后。 阅读全文
posted @ 2009-05-09 19:35 YY哥 阅读(3282) 评论(1) 推荐(0) 编辑
摘要: 关于const与指针的一点小结 阅读全文
posted @ 2009-04-11 10:34 YY哥 阅读(7167) 评论(2) 推荐(0) 编辑
摘要: 虚拟机技术在现在是一个非常热的技术,它的历史也很悠久。最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与c++最大的不同在于它必须在Java虚拟机上运行。Java虚拟机掀起了虚拟机技术的热潮,随后,Microsoft也不甘落后,雄心勃勃的推出了.Net平台。由于在这里主要讨论SQLite的虚拟机,不打算对这些做过多评论,但是作为对比,我会先对Java虚拟机作一个概述。 阅读全文
posted @ 2009-03-18 18:59 YY哥 阅读(10526) 评论(6) 推荐(0) 编辑
摘要: SQLite封锁机制的实现需要底层文件系统的支持,不管是Linux,还是Windows,都提供了文件锁的机制,而这为SQLite提供了必要的支持。本节就来谈谈SQLite使用到的文件锁。 阅读全文
posted @ 2009-03-10 21:54 YY哥 阅读(10148) 评论(5) 推荐(2) 编辑
摘要: 本节主要谈谈SQLite的锁机制,SQLite是基于锁来实现并发控制的,所以本节的内容实际上是属于事务处理范畴,但是SQLite的锁机制实现非常的简单而巧妙,所以想在这里单独讨论一下。如果真正理解了它,对整个事务的实现也就差不多理解了。 阅读全文
posted @ 2009-03-01 12:32 YY哥 阅读(10510) 评论(2) 推荐(1) 编辑
摘要: SQLite Version3.3.6源代码文件结构 阅读全文
posted @ 2009-02-26 16:18 YY哥 阅读(10862) 评论(10) 推荐(2) 编辑
摘要: 由于内容较多,所以断续没有写完的内容。 阅读全文
posted @ 2009-02-26 14:53 YY哥 阅读(6865) 评论(2) 推荐(0) 编辑
摘要: 个人认为pager层是SQLite实现最为核心的模块,它具有四大功能:I/O,页面缓存,并发控制和日志恢复。而这些功能不仅是上层Btree的基础,而且对系统的性能和健壮性有关至关重要的影响。其中并发控制和日志恢复是事务处理实现的基础。SQLite并发控制的机制非常简单——封锁机制;别外,它的查询优化机制也非常简单——基于索引。这一切使得整个SQLite的实现变得简单,SQLite变得很小,运行速度也非常快,所以,特别适合嵌入式设备。好了,接下来讨论事务的剩余部分。 阅读全文
posted @ 2009-02-26 14:16 YY哥 阅读(9038) 评论(4) 推荐(0) 编辑
摘要: 从本章开始,将对SQLite的每个模块进行讨论。讨论的顺序按照我阅读SQLite的顺序来进行,由于项目的需要,以及时间关系,不能给出一个完整的计划,但是我会先讨论我认为比较重要的内容。本节讨论SQLite的事务处理技术,事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复,由于内容较多,分为两节。好了,下面进入正题。 阅读全文
posted @ 2009-02-26 10:45 YY哥 阅读(10588) 评论(8) 推荐(1) 编辑
摘要: 本节是前一节内容的后续部分,这两节都是从全局的角度SQLite内核各个模块的设计和功能。只有从全局上把握SQLite,才会更容易的理解 SQLite的实现。SQLite采用了层次化,模块化的设计,而这些使得它的可扩展性和可移植性非常强。而且SQLite的架构与通用DBMS的结构差别不是很大,所以它对于理解通用DBMS具有重要意义。好了,下面我们开始讨论SQLite剩余的两部分:Back-End(后端)和 Compiler(编译器)。 阅读全文
posted @ 2009-02-17 21:12 YY哥 阅读(12936) 评论(16) 推荐(1) 编辑
摘要: 从本章开始,我们开始进入SQLite的内核。为了能更好的理解SQLite,我先从总的结构上讨论一下内核,从全局把握SQLite很重要。SQLite的内核实现不是很难,但是也不是很简单。总的来说分为三个部分,本章主要讨论虚拟机(Virtual Machine),但是这里只是从原理上概述,不会太多的涉及实际代码。但是概述完内核之后会仔细讨论源代码的。好了,下面我们来讨论虚拟机(VM)。 阅读全文
posted @ 2009-02-15 16:55 YY哥 阅读(14427) 评论(8) 推荐(1) 编辑
摘要: 本节讨论事务,事务是DBMS最核心的技术之一.在计算机科学史上,有三位科学家因在数据库领域的成就而获ACM图灵奖,而其中之一Jim Gray(曾任职微软)就是因为在事务处理方面的成就而获得这一殊荣,正是因为他,才使得OLTP系统在随后直到今天大行其道.关于事务处理技术,涉及到很多,随便就能写一本书.在这里我只讨论SQLite事务实现的一些原理,SQLite的事务实现与大型通用的DBMS相比,其实现比较简单.这些内容可能比较偏于理论,但却不难,也是理解其它内容的基础.好了,下面开始第二节---事务. 阅读全文
posted @ 2009-02-14 21:43 YY哥 阅读(13321) 评论(4) 推荐(2) 编辑
摘要: SQLite入门与分析---设计与概念 阅读全文
posted @ 2009-02-13 22:43 YY哥 阅读(21226) 评论(12) 推荐(4) 编辑
摘要: SQLite分析---简介 阅读全文
posted @ 2009-02-12 21:27 YY哥 阅读(56605) 评论(31) 推荐(13) 编辑