资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
毕业设计(论文)外文翻译(译文)SQLite 的最佳应用领域SQLite 不同于其他大部分的 SQL 数据库引擎,因为它的首要设计目标就是简单化: 易于管理 易于操作 易于嵌入到其他大型程序 易于维护和配置许多人喜欢 SQLite,因为它占用空间小,运行速度快。 然而,这些特性只是它的部分优点,还存在着许多其他特征。用户发现 SQLite 是非常稳定的。 稳定性源于它的简单。随着数据结构的简单化,数据库出错的概率会降低。 越简单就越不容易出错。所以,除了上述的简单、小巧和稳定性外, 最重要的在于 SQLite 力争做到简单化。一个数据库引擎的简易化既可能成为一种优势也可能成为它的弱点,这取决于你想要做什么。为了实现简易化的目的,SQLite 不得不放弃一些人们认为有用的其他特性,比如高并发性,严格的存取控制,丰富的内置功能,存储过程,深奥的 SQL 语言特性,XML和 Java 扩展,万亿级别的数据测量,等等。 如果你需要这些特性,并且不介意因为数据复杂性而带来的麻烦,那么,也许 SQLite 不适合你。 SQLite 并不打算要成为一个企业级数据库引擎,也不是设计成要与 Oracle 或者 PostgreSQL 竞争的数据库。根据经验,在这些情况下使用 SQLite 比较合适:当系统管理、实现、维护的简易化比企业级数据库引擎所能提供的许多其他复杂特性更重要的时候, ,更有效果。而且事实也证明,人们在许多情况下已经清楚的认识到简单就是最好的选择。另一种看法是:SQLite 不是要取代 Oracle 公司的产品 ,而是用来取代 fopen( )函数功能的数据库 。SQLite 最佳适用场合 应用程序文件格式SQLite 作为为桌面应用程序服务的磁盘格式文件取得非常大的成功,如金融分析工具,CAD 软件包,档案管理程序等等。一般的数据库打开操作需要调用 sqlite3_open()函数,并且标记一个显式本地事务的起始点(BEGIN TRANSACTION)来保证以独占的方式得到文件的内容。 文件保存将执行一个提交(COMMIT)同时标记另一个显式本地事务起始点。这种事务处理的作用就是保证对于应用程序数据文件的更新是原子的、持久的、独立的和一致的。临时的触发器可以添加到数据库中,把所有数据库内容上的改变记录到一个(临时)撤消/ 重做日志表中。用户在数据库中撤销或重做某些内容时,这些改变都会回滚。使用这种技术,深度无限撤消/重做的实现只需要编写很少的代码。 嵌入式设备和应用程序因为 SQLite 数据库几乎不需或者很少需要管理,对于那些无人值守的设备或者无需人工支持的服务,SQLite 会是一个很好的选择。 SQLite 适用于手机,掌上电脑,机顶盒,以及其它设备等。同时,在可下载的消费者应用程序中,它作为嵌入式数据库也能很好的的应用于客户端程序。 网站在所有的中低流量的网站(也就是说,99。9的网站)中,SQLite 作为数据库引擎通常能够运行良好。 当然, SQLite 可以处理的网站流量取决于网站数据库有多大的压力。一般而言,任何使用 SQLite 的网站每天少于 10 万次的访问量应该工作正常。一个网站每天被访问 10 万次只是一个保守的估计,而不是一个硬性上限。 然而事实证明 SQLite 能够在上述流量上限的 10 倍情况下工作正常。 替代特别的文件许多程序使用 fopen( )函数,fread( )函数和 fwrite( )函数来创建和管理自定义文件格式。 SQLite 作为替换这些特设磁盘文件的数据库工作效果显著。 内部或临时数据库对于那些有许多数据且必须用不同方法筛选、分类的程序,相对于编写同样功能的代码,它往往更容易、更快速地加载到内存中的 SQLite 数据库,并使用连接查询和 ORDER BY(排序)子句按一定的顺序和排列提取数据,以这种方式使用 SQL 数据库内部连接查询使程序拥有更大的灵活性,当新的列和索引添加进入时无需给每个查询重新编码。 命令行数据集分析工具有经验的 SQL 用户可以使用命令行 sqlite 的程序来分析各种复杂的数据集。原始数据可以从 CSV 文件导入,然后这些数据可以被分割产生无数的报告摘要。 可能的用途包括网站日志分析,比赛数据统计分析,指标编制规划以及实验结果分析。当然,你也可以用企业级客户端/服务器数据库做以上同样的事。相比之下,在这种情况下使用 SQLite 的优势是:SQLite 更容易设置,由此产生的数据库是一个单独的文件,它可以存储在软盘、闪存记忆棒,也可以将这些数据以电子邮件的形式发给同事。 作为在演示或测试的企业数据库替代品如果你正在编写一个企业数据库引擎的客户端应用程序,使用允许你连接到许多不同种类的 SQL 数据库引擎的通用型数据库是明智的,最好使用混合模式静态连接到客户端的SQLite 数据库引擎。在那种方法下客户端程序可以使用一个 SQLite 数据文件单独测试或验证。 数据库教学因为 SQLite 设置简单、使用方便(安装方法简捷:只要复制 SQLite 或 sqlite 。exe 可执行文件到目标计算机,并运行它即可) 。在学习 SQL 语言的教学过程中,SQLite 会成为很好的数据库引擎。 学生可以轻松随意创建任意多个数据库, 并且可以把数据库发给老师进行评论、打分。对于那些对数据库感兴趣,想深入了解 RDBMS(关系型数据库管理系统)是如何实施工作的高层次学生,模块化、高评价、有注释文档的 SQLite 代码可以给他们打下一个良好的基础。 这并不是说学习 SQLite 是一个实现其他数据库引擎的精确模型,而是为了让学生迅速理解数据库是怎么运行的,让学生了解其他数据库系统的操作原则。 SQL 语言的扩展实验SQLite 简单且模块化的设计使得它可以成为一个用来测试数据库语言特性或新想法的优秀的原型平台。哪些场合适合使用其他的关系型数据库管理系统(RDBMS) 客户端/服务器应用如果你有许多客户端程序需要通过网络访问同一个共享数据库,你应该考虑使用客户端、/ 服务器类型的数据库引擎而不是使用 SQLite 数据库。 SQLite 是基于网上文件系统进行工作的,但由于与大多数网络文件系统有关的延迟等问题,SQLite 的性能不会变得非常出色。 此外,许多网络文件系统的文件锁定逻辑包含许多漏洞和错误(在 UNIX 和Windows 操作系统中均存在) 。如果文件锁定不工作,就像它原本被默认的, 可能造成两个或两个以上的客户端程序同时在同一个数据库中被修改的问题,从而导致数据损坏。 因为这个问题是由于潜藏于文件系统实施过程中的漏洞和错误导致的,SQLite 没有任何防护措施来阻止它的发生。一个好的经验法则是,在许多电脑通过网络文件系统同时进入同一个数据库进行访问的情况下,你应该尽量避免使用 SQLite。 高流量网站作为连接到网站后台的数据库,SQLite 可以正常工作, 但是如果你的网站非常繁忙,以至于你正在考虑布式的数据库部署,那么应该考虑使用一个企业版的客户端/服务器数据库引擎代替 SQLite。 非常大的数据集合当你在 SQLite 中开始一个事务处理的时候( 事务处理会在任何写操作发生之前产生, 而不是必须要显示的调用 BEGIN。 。 。COMMIT), 数据库引擎将不得不分配一小块脏页(文件缓冲页面)来帮助它自己管理回滚操作。 每 1MB 的数据库文件 SQLite 需要 256 字节。对于小型的数据库这些空间不算什么, 但是当数据库增长到数十亿字节的时候, 缓冲页面的尺寸就会相当的大了。 如果你需要存储或修改几十 GB 的数据, 你应该考虑用其他的数据库引擎。 高并发性SQLite 使用读/写锁对整个数据库文件加锁。 这意味着如果正在读取数据库任何部分的任何进程,所有其他进程都无法写入任何数据库的其他部分。 同样,如果任何一个进程正写入数据库,所有其他进程无法读取数据库的任何其他部分的资料。许多情况下,这不是一个大问题。在这些情况下每个程序使用数据库的时间都很短暂, 并且不会独占,所有锁持续时间不会超过几十毫秒。但也有一些应用程序需要更多的并发操作,那些应用程序可能需要寻求一种不同的解决问题的方案。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号