当前位置:文档之家› 内存数据库介绍

内存数据库介绍

内存数据库介绍
内存数据库介绍

常用内存数据库介绍(一)

博客分类:

内存数据库

数据结构Oracle企业应用网络应用设计模式

(注:部分资料直接来源于Internet)

1. 内存数据库简介

1.1 概念

一、什么是内存数据库

传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作一方面要进行磁头的机械移动,另一方面受到系统调用(通常通过CPU中断完成,受到CPU时钟周期的制约)时间的影响,当数据量很大,操作频繁且复杂时,就会暴露出很多问题。

近年来,内存容量不断提高,价格不断下跌,操作系统已经可以支持更大的地址空间(计算机进入了64位时代),同时对数据库系统实时响应能力要求日益提高,充分利用内存技术提升数据库性能成为一个热点。

在数据库技术中,目前主要有两种方法来使用大量的内存。一种是在传统的数据库中,增大缓冲池,将一个事务所涉及的数据都放在缓冲池中,组织成相应的数据结构来进行查询和更新处理,也就是常说的共享内存技术,这种方法优化的主要目标是最小化磁盘访问。另一种就是内存数据库

(MMDB:Main Memory Database,也叫主存数据库)技术,就是干脆重新设计一种数据库管理系统,对查询处理、并发控制与恢复的算法和数据结构进行重新设计,以更有效地使用CPU周期和内存,这种技术近乎把整个数据库放进内存中,因而会产生一些根本性的变化。两种技术的区别如下表:

内存数据库系统带来的优越性能不仅仅在于对内存读写比对磁盘读写快上,更重要的是,从根本上抛弃了磁盘数据管理的许多传统方式,基于全部数据都在内存中管理进行了新的体系结构的设计,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,从而使数据处理速度一般比传统数据库的数据处理速度快很多,一般都在10倍以上,理想情况甚至可以达到1000倍。

而使用共享内存技术的实时系统和使用内存数据库相比有很多不足,由于优化的目标仍然集中在最小化磁盘访问上,很难满足完整的数据库管理的要求,设计的非标准化和软件的专用性造成可伸缩性、可用性和系统的效率都非常低,对于快速部署和简化维护都是不利的。

2. 内存数据库历史和发展

一、雏形期

从上个世纪60年代末到80年代初。在这个时期中,出现了主存数据库的雏形。1969年IBM公司研制了世界上最早的数据库管理系统------基于层次模型的数据库管理系统IMS,并作为商品化软件投入市场。在设计IMS时,IBM考虑到基于内存的数据管理方法,相应推出了IMS/VS Fast Path。Fast Path是一个支持内存驻留

数据的商业化数据库,但它同时也可以很好地支持磁盘驻留数据。在这个产品中体现了主存数据库的主要设计思想,也就是将需要频繁访问,要求高响应速度的数据直接存放在物理内存中访问和管理。在这个阶段中,包括网状数据库、关系数据库等其他各种数据库技术也都逐渐成型。

二、技术理论成熟期

1984年,D J DeWitt等人发表了《主存数据库系统的实现技术》一文。第一次提出了Main Memory Database(主存数据库)的概念。预言当时异常昂贵的计算机主存价格一定会下降,用户有可能将大容量的数据库全部保存在主存中,提出了AVL树、哈希算法、主存数据库恢复机制等主存数据库技术的关键理论,为主存数据库的发展指出了明确的方向。

1984年,D J DeWitt等人提出使用非易逝内存或预提交和成组提交技术作为主存数据库的提交处理方案,使用指针实现主存数据库的存取访问。

1985年,IBM推出了IBM 370上运行的OBE主存数据库

1986年,RB Hagman提出了使用检查点技术实现主存数据库的恢复机制。威斯康星大学提出了按区双向锁定模式解决主存数据库中的并发控制问题。并设计出

MM-DBMS主存数据库。贝尔实验室推出了DALI主存数据库模型。

1987年,ACM SIGMOD会议中提出了以堆文件(HEAP FILE)作为主存数据库的数据存储结构。Southern Methodist大学设计出MARS主存数据库模型。

1988年普林斯顿大学设计出TPK主存数据库。

1990年普林斯顿大学又设计出System M主存数据库。

三、产品发展期和市场成长期

随着互联网的发展,越来越多的网络应用系统需要能够支持大用户量并发访问、高响应速度的的数据库系统,主存数据库市场成熟

半导体技术快速发展,半导体内存大规模生产,动态随机存取存储器(DRAM)的容量越来越大,而价格越来越低,这无疑为计算机内存的不断扩大提供了硬件基础,使得主存数据库的技术可行性逐步成熟

1994年美国OSE公司推出了第一个商业化的,开始实际应用的主存数据库产品Polyhedra

1998年德国SoftwareAG推出了Tamino Database。

1999年日本UBIT会社开发出XDB主存数据库产品。韩国Altibase推出Altibase 2000年奥地利的QuiLogic公司推出了SQL-IMDB

2001年美国McObject推出eXtremeDB。加拿大Empress公司推出EmpressDB

四、几种主存技术应用的比较

第一代:用户定制的主存数据库。通过应用程序来管理内存和数据;不支持SQL 语句, 不提供本地存储, 没有数据库恢复技术;性能好但很难维护和在别的应用中不能使用;应用在实时领域比如工厂自动化生产。

第二代:简单功能的内存数据库。能够快速处理简单的查询;支持部分的 SQL语句和简单的恢复技术;主要目的是能够快速处理大量事务;针对简单事务处理领域,尤其是交换机, 移动通信等。

第三代:通用的主存数据库。针对传统的商业关系型数据库领域,能够提供更高的性能、通用性以及稳定性;提供不同的接口来处理复杂的SQL语句和满足不同的应用领域;可以应用在计费、电子商务、在线安全领域,几乎包括磁盘数据库的所有应用领域。

五、目前几种常见的通用内存数据库

eXtremeDB:eXtremeDB实时数据库是McObject公司的一款特别为实时与嵌入式系统数据管理而设计的数据库,只有50K到130K的开销,速度达到微秒级。eXtremeDB 完全驻留在主内存中,不使用文件系统(包括内存盘)。eXtremeDB采用了新的磁盘融合技术,将内存拓展到磁盘,将磁盘当做虚拟内存来用,实时性能保持微秒级的同时,数据管理量在32BIT下能达到20G。

Oracle TimesTen:Oracle TimesTen是Oracle从TimesTen公司收购的一个内存优化的关系数据库,它为应用程序提供了实时企业和行业(例如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。Oracle TimesTen可作为高速缓存或嵌入式数据库被部署在应用程序层中,它利用标准的 SQL 接口对完全位于物理内存中的数据存储区进行操作。

SolidDB:Solid Information Technology 成立于 1992 年,全球总部位于加州Cupertino,Solid数据管理平台将基于内存和磁盘的全事务处理数据库引擎、载体级高可用性及强大的数据复制功能紧密地融为一体。

Altibase:ALTIBASE公司从1999年就一直致力于内存数据库软件和其应用的开发,提供高性能和高可用性的软件解决方案。特别适合通信、网上银行、证券交易、实时应用和嵌入式系统领域。目前占据80%以上内存数据库市场,可以说是当今数据库软件技术的领导者。目前Altibase在国内成功案例也比较多,尤其是在电信行业,已经得到了广泛认可。

常用内存数据库介绍(二)

博客分类:

?内存数据库

SQLite企业应用PythonSQL嵌入式

(部分资料直接来源于Internet)

4. 常用内存数据库

4.1 SQLite

SQLite是一个小型的C程序库,实现了独立的,可嵌入的,零配置的SQL数据库引擎。特性包括:

?事务操作是原子,一致,孤立,并且持久的(ACID),即使在系统崩溃和电源故障之后。

?零配置——不需要安装和管理。

?实现了绝大多数SQL92标准。

?整个数据库存储在一个单一的文件中。

?数据库文件可以在不同字节序的机器之间自由地共享。

?支持最大可达2T的数据库。 (241字节)

?字符串和BLOB类型的大小最大可达 2G 字节(231字节)。

?小的代码:完整配置的少于250KB,忽略一些可选特性的少于150KB。

?在大多数常见操作上比流行的客户/服务器数据库引擎更快。

?简单,易于使用的API。

?内建TCL绑定。另外提供可用于许多其他语言的绑定。

?具有良好注释的源代码,95%经过测试。

?独立:没有外部依赖。

?源代码位于公共域。可用于任何用途。

SQLite发行版包含一个独立的命令行访问程序(sqlite),可用于管理SQLite数据库,并适合作为一个如何使用SQLite库的例子。

License: SQLite使用Public domain授权(注),对于个人使用和商业使用都是免费的。

技术上的优点和特性

SQLite是一个轻量级、跨平台的关系型数据库。

◇轻量级

先说它的第一个特色:轻量级。想必SQLite的作者很看重这个特性,连它的Logo都是用的“羽毛”,来显摆它的轻飘飘。SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite一般只需要带上它的一个动态库,就可以享受它的全部功能。而且那个动态库的尺寸也挺小,以版本 3.6.11为例,Windows下487KB、Linux下347KB。

◇绿色软件

SQLite的另外一个特点是绿色:它的核心引擎本身不依赖第三方的软件,使用它也不需要“安装”。所以在部署的时候能够省去不少麻烦。

◇单一文件

所谓的“单一文件”,就是数据库中所有的信息(比如表、视图、触发器、等)都包含在一个文件内。这个文件可以copy到其它目录或其它机器上,也照用不误。

★技术上的缺点和不足

◇并发访问的锁机制

SQLite在并发(包括多进程和多线程)读写方面的性能一直不太理想。数据库可能会被写操作独占,从而导致其它读写操作阻塞或出错。

SQL标准支持不全

在它的官方网站上,具体列举了不支持哪些SQL92标准。我个人感觉比较不爽的是不支持外键约束。

◇网络文件系统(以下简称NFS)

有时候需要访问其它机器上的SQLite数据库文件,就会把数据库文件放置到网络共享目录上。这时候你就要小心了。当SQLite文件放置于NFS时,在并发读写的情况下可能会出问题(比如数据损坏)。原因据说是由于某些NFS的文件锁实现上有Bug。

★编程语言接口

SQLite支持很多种语言的编程接口。这对于我这种喜欢混用多种编程语言的人来说,是很爽的。下面我大概介绍一下。

◇C/C++

由于SQLite本身是C写的,它自带的API也是C接口的。所以C/C++用起来最直接了。假如你不喜欢面向过程的C API风格,可以另外找个C++的包装库。想重新发明轮子的同学,也可以自己包装一个。

◇Java

如果要用Java访问SQLite,可以通过SQLite的JDBC驱动,或者通过专门的SQLite包装库。我个人建议走JDBC方式,万一将来要换数据库,代码就不用大改。

◇Python

pysqlite是Python操作SQLite的首选。从Python 2.5开始,它已经被整合到Python的标准库中。看来Python社区还是蛮喜欢SQLite嘛。

◇.Net

对于喜欢.Net的同学,可以通过SQLite的https://www.doczj.com/doc/0610250895.html,驱动来访问。

◇Ruby

Ruby可以通过SQLite-Ruby操作SQLite数据库,不过我没用过。

◇Perl

在CPAN上有DBD::SQLite,不过我也没用过。

★一些非技术的参考因素

需要根据“如何选择开源项目”里面提到的几个参考因素,再评估一下。

◇授权协议(License)

SQLite使用的是Public Domain协议,这是最爽一种,可以放心大胆地用。

◇用户的普及程度

最近这几年,使用SQLite的人越来越多。包括一些大公司也开始把它整合到产品中(比如Google的Gears、Apple的Safari、Adobe的AIR)。

◇开发的活跃程度

如果到SQLite的Change Log上大致了解一下,可以看出最近5年基本上每1-2个月都会有更新。说明开发的活跃度还是非常高的。

SQLite不同于其他大部分的SQL数据库引擎,因为它的首要设计目标就是简单化:

?易于管理

?易于使用

?易于嵌入其他大型程序

?易于维护和配置

许多人喜欢SQLite因为它的小巧和快速. 但是这些特性只是它的部分优点, 使用者还会发现SQLite是非常稳定的. 出色的稳定性源于它的简单, 越简单就越不容易出错. 除了上述的简单、小巧和稳定性外, 最重要的在于SQLite力争做到简单化.

简单化在一个数据库引擎中可以说是一个优点, 但也可能是个缺点, 主要决定于你想要做什么. 为了达到简单化, SQLite省略了一些人们认为比较有用的特性, 例如高并发性、严格的存取控制、丰富的内置功能、存储过程、复杂的SQL语言特性、 XML以及Java的扩展, 超大的万亿级别的数据测量等等. 如果你需要使用上述的这些特性并且不介意它们的复杂性, 那么SQLite也许就不适合你了. SQLite没有打算作为一个企业级的数据库引擎, 也并不打算和Oracle或者PostgreSQL竞争.

仅凭经验来说SQLite适用于以下场合: 当你更看中简单的管理、使用和维护数据库, 而不是那些企业级数据库提供的不计其数的复杂功能的时候,使用SQLite是一个比较明智的选择. 事实也证明, 人们在许多情况下已经清楚的认识到简单就是最好的选择.

4.1.1 SQLite最佳试用场合

·网站

作为数据库引擎SQLite适用于中小规模流量的网站(也就是说, 99.9%的网站).

SQLite可以处理多少网站流量在于网站的数据库有多大的压力. 通常来说, 如果

一个网站的点击率少于100000次/天的话, SQLite是可以正常运行的. 100000次/天是一个保守的估计, 不是一个准确的上限. 事实证明, 即使是10倍的上述流量

的情况下SQLite依然可以正常运行.

·嵌入式设备和应用软件

因为SQLite数据库几乎不需要管理, 因此对于那些无人值守运行或无人工技术支

持的设备或服务, SQLite是一个很好的选择. SQLite能很好的适用于手机, PDA, 机顶盒, 以及其他仪器. 作为一个嵌入式数据库它也能够很好的应用于客户端程

序.

·应用程序文件格式

SQLite作为桌面应用程序的本地磁盘文件格式取得了巨大成功.例如金融分析工

具、CAD 包、档案管理程序等等. 一般的数据库打开操作需要调用sqlite3_open()函数,并且标记一个显式本地事务的起始点(BEGIN TRANSACTION)来保证以独占的方式得到文件的内容. 文件保存将执行一个提交(COMMIT)同时标记另一个显式本地事务起始点. 这种事务处理的作用就是保证对于应用程序数据文件的更新是

原子的、持久的、独立的和一致的.

数据库里可以加入一些临时的触发器,用来把所有的改变记录在一张临时的取消/

重做日志表中. 当用户按下取消/重做按钮的时候这些改变将可以被回滚. 应用这项技术实现一个无限级的取消/重做功能只需要编写很少的代码.

·替代某些特别的文件格式

许多程序使用fopen(), fread(), 或 fwrite()函数创建和管理一些自定义的文件用来保存数据. 使用SQLite替代这些自定义的文件格式将是一种很好的选择.

·内部的或临时的数据库

对于那些有大量的数据需要用不同的方式筛选分类的程序, 相对于编写同样功能

的代码, 如果你把数据读入一个内存中的SQLite数据库, 然后使用连接查询和

ORDER BY子句按一定的顺序和排列提取需要的数据, 通常会更简单和快速. 按照上述的方法使用内嵌的SQLite数据库将会使程序更富有灵活性, 因为添加新的列或索引不用重写任何查询语句.

·命令行数据集分析工具

有经验的SQL用户可以使用SQLite命令行程序去分析各种混杂的数据集. 原是数据可以从CSV(逗号分隔值文件)文件中导入, 然后被切分产生无数的综合数据报告. 可能得用法包括网站日志分析, 运动统计分析, 编辑规划标准, 分析试验结

果.

当然你也可以用企业级的客户端/服务器数据库来做同样的事情. 在这种情况下使用SQLite的好处是: SQLite的部署更为简单并且结果数据库是一个单独的文件, 你可以把它存储在软盘或者优盘或者直接通过email发给同事.

·在Demo或测试版的时候作为企业级数据库的替代品

如果你正在编写一个使用企业级数据库引擎的客户端程序, 使用一个允许你连接

不同SQL数据库引擎的通用型数据库后台将是很有意义的. 其更大的意义在于将

SQLite数据库引擎静态的连接到客户端程序当中,从而内嵌SQLite作为混合的数

据库支持. 这样客户端程序就可以使用SQLite数据库文件做独立的测试或者验证. ·数据库教学

因为SQLite的安装和使用非常的简单(安装过程几乎忽略不计, 只需要拷贝SQLite 源代码或sqlite.exe可执行文件到目标主机, 然后直接运行就可以) 所以它非常

适合用来讲解SQL语句. 同学们可以非常简单的创建他们喜欢的数据库, 然后通过电子邮件发给老师批注或打分. 对于那些感兴趣怎样实现一个关系型数据库管理

系统(RDBMS)的高层次的学生, 按照模块化设计且拥有很好的注释和文档的SQLite 源代码, 将为他们打下良好的基础. 这并不是说SQLite就是如何实现其他数据库

引擎的精确模型, 但是很适合学生们了解SQLite是如何快速工作的, 从而掌握其

他数据库系统的设计实现原则.

·试验SQL语言的扩展

SQLite简单且模块化的设计使得它可以成为一个用来测试数据库语言特性或新想

法的优秀的原型平台.

常用内存数据库介绍(三)

博客分类:

内存数据库

数据结构OracleSQLite嵌入式网络应用

(上接内存数据库介绍4.1SQLite)

4.1.2 哪些场合适合使用其他的关系型数据库管理系统(RDBMS)

·客户端/服务器程序

如果你有许多的客户端程序要通过网络访问一个共享的数据库, 你应当考虑用一个

客户端/服务器数据库来替代SQLite. SQLite可以通过网络文件系统工作, 但是因

为和大多数网络文件系统都存在延时, 因此执行效率不会很高. 此外大多数网络文

件系统在实现文件逻辑锁的方面都存在着bug(包括Unix 和windows). 如果文件锁没有正常的工作, 就可能出现在同一时间两个或更多的客户端程序更改同一个数据

库的同一部分, 从而导致数据库出错. 因为这些问题是文件系统执行的时候本质上

存在的bug, 因此SQLite没有办法避免它们.

好的经验告诉我们, 应该避免在许多计算机需要通过一个网络文件系统同时访问同

一个数据库的情况下使用SQLite.

·高流量网站

SQLite通常情况下用作一个网站的后台数据库可以很好的工作. 但是如果你的网

站的访问量大到你开始考虑采取分布式的数据库部署, 那么你应当毫不犹豫的考虑

用一个企业级的客户端/服务器数据库来替代SQLite.

·超大的数据集

当你在SQLite中开始一个事务处理的时候(事务处理会在任何写操作发生之前产生, 而不是必须要显示的调用https://www.doczj.com/doc/0610250895.html,MIT), 数据库引擎将不得不分配一小块脏页

(文件缓冲页面)来帮助它自己管理回滚操作. 每1MB的数据库文件SQLite需要256

字节. 对于小型的数据库这些空间不算什么, 但是当数据库增长到数十亿字节的时

候, 缓冲页面的尺寸就会相当的大了. 如果你需要存储或修改几十GB的数据, 你

应该考虑用其他的数据库引擎.

·高并发访问

SQLite对于整个数据库文件进行读取/写入锁定. 这意味着如果任何进程读取了数

据库中的某一部分, 其他所有进程都不能再对该数据库的任何部分进行写入操作.

同样的, 如果任何一个进程在对数据库进行写入操作, 其他所有进程都不能再读取

该数据库的任何部分. 对于大多数情况这不算是什么问题. 在这些情况下每个程序

使用数据库的时间都很短暂, 并且不会独占, 这样锁定至多会存在十几毫秒. 但是

如果有些程序需要高并发, 那么这些程序就需要寻找其他的解决方案了.

方面具体要求必要条件详细描述License是否收费免费使用

是否开源开源

是否有技术支持主要是社区支持,如果需要专业支持需要购买

商业目的的分发版本是否

仍要收费

是免费其他

性能数据容量支持

100000条以上记

是支持

并发查询处理能力SQLite在并发(包括多进程和多线程)读写方面的性能一直不太理想。数据库可能会被写操作独占,从而导致其它读写操作阻塞或出错。

查询速度是

修改速度是

平台支持32/64位全部支持

Linux/window/UNIX/mobile 支持Linux/Mac OS/Windows

运行方式支持支持嵌入式支持支持独立运行不支持

连接方式支持支持ODBC 默认不支持,必须通过第三方的ODBC驱动

支持JDBC 默认不支持,必须通过第三方的JDBC驱动

支持内存访问通过c接口(专用API)

支持网络访问不支持

SQL支持支持SQL是支持

支持Index,Trigger,Constrains,Views 支持,有资料说其不支持外键约束。

管理界面支持管理界面支持CLI

管理界面友好程度较差

4.2 Altibase

Altibase?内存数据库管理系统(DBMS),内存数据管理系统的最新技术,是一个在事务优先的环境中提供高性能和高可用性的软件解决方案。Altibase提供极限性能、容错能力和事务管理的方便性,特别是在通信、网上银行、证券交易、实时应用和嵌入式系统领域。Altibase能够最大限度的发挥数据库服务系统的潜力,使用Altibase能大大增强您公司的数据服务器的处理能力。

Alti base?内存DBMS为需要容错服务的系统提供实时数据库复制的功能。采用Altibase数据库复制的系统可以实现高性能、高可用性、数据库一致性、负载平衡和系统可伸缩性。如果您希望您的业务能够实现最大的成功,请在您的事务优先的系统中使用我们的Altibase数据库复制解决方案。

资料比较少,且需要商业License,没有详细去研究

4.3 Oracle 内存数据库系列 Berkeley DB 和 TimesTen

Oracle是最重要的商业数据库产品提供商,它也有内存数据库的产品系列:主要就是Oracle Berkeley DB 和Times Ten.前者是只支持嵌入式内存数据,后者是独立的内存优化数据库。

4.3.1 Oracle Berkeley DB

Oracle Berkeley DB是Oracle 收购了开源数据库厂商后推出的产品,其前身是Berkeley DB。它有开源版本,但且对于开源软件免费。商业版本是要付费。

Oracle Berkeley DB 系列的可嵌入开源数据库为开发人员提供了无需管理的快速、可靠的本地持久性。Oracle Berkeley DB 系列通常部署为“前沿”数据库,为不需要SQL 的应用程序用例提供很高的性能、可靠性、可伸缩性以及可用性。

Oracle Berkeley DB 产品系列

—Berkeley DB —事务处理式存储引擎,用于基本键/值数据结构中的非类型化数据—新增!版本4.7 现已推出

—针对Java 环境优化的纯Java 版Berkeley DB —新增!版本3.3

—Berkeley DB XML —原生XML 数据库,可基于XQuery 访问容器中存储的文档,并根据其内容进行索引—新增!版本 2.4 现已推出

4.3.2 Oracle TimesTen

Oracle 内存数据库TimesTen 是一个针对内存进行了优化的关系数据库,它为应用程序提供了当今实时企业和行业(如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。Oracle 内存数据库TimesTen 作为独立或嵌入式数据库部署在应用层中,利用标准的SQL 接口对完全位于物理内存中的数据库进行操作。它也可以用作Oracle 数据库的内存中数据库缓存,以改进用户应用程序的响应时间和吞吐量。

4.4 eXtremeDB

eXtremeDB内存式实时数据库是为实时系统及嵌入式系统而特别设计的数据库。与同类产品不同,eXtremeDB不是通过对企业数据库面向实时嵌入式应用进行剪裁而来;而是总结了30年来McObject公司在编译器、实时编程、数据管理、内核级驱动软件等领域的经验,面向实时嵌入式应用从头开发的最新实时数据管理技术。

eXtremeDB满足了您对实时数据库的一切期待:高级数据定义语言、并行访问、基于交

易及灵活的索引… …等等。不仅如此,出乎您的意外,eXtremeDB在紧凑的引擎中还提供诸如事件触发、目标历史等等功能。

e X treme DB嵌入式数据库满足更多的实时开发的要求。

·最快的内存数据库。

·极小尺寸和极小的内存消耗

·多种索引支持

·高可用性-组合选项

·非常灵活的数据存储:内存式,磁盘式或混合式

·多种应用接口:两种SQL,两种更快的原始接口

·几乎牢不可破-

又一个商业内存数据库产品,这个特点是实时数据库,号称最快。

常用内存数据库介绍(四)

博客分类:

?内存数据库

嵌入式DerbyHSQLDB应用服务器算法

4.5 H2 Database

h2是Thomas Mueller提供的一个开源的、纯java实现的关系数据库,官方网站:https://www.doczj.com/doc/0610250895.html,/html/main.html。

它的主要特性是:

?非常速的数据库引擎

?开源、免费数据库

?支持JDBC和ODBC API,支持SQL

?支持嵌入式,服务器和集群模式。支持内存数据库。

?提供基于浏览器的管理控制台

?整个应用本身只有1MB左右。

其他特性还包括

?基于磁盘或内存的数据库、表,支持只读数据库、临时表。

?两段式事务支持

?支持多个连接。表级别的锁。

?基于成本的优化,为复杂查询使用遗传算法,零管理。

?滚动的、可修改的result set支持。支持大结果集、外部结果排序。

?加密数据库(AES或XTEA),SHA-256密码加密。

性能比较(摘自h2database网站)

嵌入模式下H2的性能比较

Test Case Unit H2 HSQLDB D erby

Simple: Init ms 610 657 3187

Simple: Query (random) ms 297 312 1828

Simple: Query (sequential) m s 203 266 1766

Simple: Update (random) ms 1078 1484 22031

Simple: Delete (sequential) ms 234 281 7407

Simple: Memory Usage MB 6 7 11

BenchA: Init ms 859 438 4047

BenchA: Transactions ms 5266 2875 17500

BenchA: Memory Usage MB 9 14 10

BenchB: Init ms 4016 2687 16875

BenchB: Transactions ms 2609 3282 4250

BenchB: Memory Usage MB 9 10 8

BenchC: Init ms 891 594 5766

BenchC: Transactions ms 4359 75438 11718

BenchC: Memory Usage MB 9 18 9

Executed statements # 594255 594255 594255

Total time ms 20422 88314 96375

Statements per second # 29098 6728 6166

.Net使用H2

?

1.嵌入式应用。有一个项目在为.Net使用H2,使用CLI重新编译H2。还没有

深入关注。

2.ODBC。但性能一般。

4.5 其他内存数据库

包括Derby, HSQLDB等

(JavaEye对字数的限制,请见下一章 5 内存数据库之比较

常用内存数据库介绍(五)

博客分类:

内存数据库

SQLiteLinuxJDBCMobileOracle

5.内存数据库之比较

上述内存数据库,首先由于License限制,排除了所有的商业数据库产品包括:

Alitibase

Oralce Berkelay DB

Oracle TimesTen

eXtrmeDB

还包括 Berkelay DB这样的开源,但限制商业使用的数据库。

所以比较的重点就是SQLite和H2

方面具体要求必要条件SQLite H2

License 是否收费免费使用免费使用

是否开源开源开源

是否有技术支持主要是社区支

持,如果需要

主要是社

区支持,

专业支持需要购买如果需要专业支持需要购买

商业目的的分发版本是否仍

要收费

是免费免费其他

性能数据容量

支持

100000条

以上记录

是支持支持

并发查询处理能力SQLite在并

发(包括多进

程和多线程)

读写方面的性

能一直不太理

想。数据库可

能会被写操作

独占,从而导

致其它读写操

作阻塞或出

错。

并发性较

好(在模

拟器中有

使用,支

持50个并

发查询没

问题)

查询速度是数据量少的情况非常好

修改速度是

平台支持32/64位全部支持全部支持(需java平台支持)

Linux/window/UNIX/mobile 支持

Linux/Mac

OS/Windows

全部支持

(需java

平台支

持)

运行方式支持支持嵌入

支持支持

支持独立运行不支持支持

连接方式支持支持ODBC 不支持支持

支持JDBC 必须通过第三

方的JDBC驱

支持

支持内存访问通过c接口

(专用API)

通过

JDBC,不

支持API

访问

支持网络访问不支持支持

SQL支持支持SQL 是支持支持

支持Index,Trigger,Constrains,Views 支持,有资料

说其不支持外

键约束。

支持

管理界面支持管理

界面

支持CLI

支持Web

界面的

管理控

制台

管理界面友好程度较差较好常用内存数据库介绍(六)

博客分类:

内存数据库

数据结构SQLiteXPSQLWindows

6. 性能测试

下面分别对SQLite和H2进行了性能测试

6.1SQLite测试方案

6.1.1 测试环境

主机:操作系统:Windows XP;

CPU:Intel Dual 2.2GHZ;

内存: 1.99GB内存

测试目标版本:SQLite 3.6.12

6.1.2 测试数据

测试数据库表ip_table结构如下

字段名类型

Id(PK)Integer

Dst_ip Varchar(20)

Agent_ip Varchar(20)

Dst_mac Varchar(20)

Dst_port Integer

Dst_vlan Varchar(20)

6.1.2 测试过程

使用C++编写了测试工程,启动测试程序后,先分别插入50000条和1000000条数据,然后执行一系列的测试

6.1.3 测试结果

用例名

5w(条)单

个线程

100w(条)单

个线程

100w

(条)10个并

发线程

初始插入时间2s45s

初始插入时间(不加索

引)

1.782s38.109s

插入1条记录

100纳秒以

100纳秒以内0.0016s

插入1000条记录0.047s0.047s0.453s 插入1000条记录(无索

引)

0.6s1s11.39s

查询一条记录

100纳秒以

100纳秒以内0.0033s

查询一条记录(不使用索

引)

0.016s0.375s 2.859s

查询1000条记录0.016s0.391s 2.828s 查询1000条记录(不使用

索引)

0.015s0.375s 2.906s

查询全部记录分组统计

Group by

0.688s15.473s

查询1000 条(结果排0.031s0.39s 2.453s

序)

查询所有记录(结果排

序)

0.766s16.203s33.594s

更新一条记录

100纳秒以

100纳秒以内0.0043s

更新一条记录(不使用索

引)

0.016s0.359s 2.719s

更新10000条数据0.062s0.047s

更新10000条数据(无索

引)

0.016s0.375s 2.719s

删除一条数据

100纳秒以

100纳秒以内0.0041s

删除一条条数据(无索

引)

0.125s 5.047s

删除10000条数据0.078s0.078s

删除10000条数据(无索

引)

79-125ms 5.031s

结论:

1. SQLlite内存数据库的处理速度很快;

2. SQLlite内存数据库在查找数据时有索引的情况下,查询、更新、删除速度快;

3. SQLlite内存数据库并发性比较差,可以认为并发能力为0;

4. SQLlite内存数据库占用内存空间,100w条数据在40M左右(创建单个索引,6个字段)

5. 针对数据流探针来说,5w条数据SQLlite归并的速度在0.688s,可以尝试将部分功能用数据库归并实现。

6. SQLLite支持自定义函数,效率没有测试,应该和他提供的API效率差不多

7. SQLLite支持复合sql语句

常用内存数据库介绍(七)

博客分类:

内存数据库

数据结构SQL ServerSQLJDBCWindows

6.2 H2测试方案

6.2.1 测试环境

主机:操作系统:Windows Server 2003 Enterprise Edition SP2;

CPU:Intel Dual-Core 2.5GHz;

内存: 3.99GB内存

测试目标版本:H2database 1.1.110

6.2.2 测试数据

测试数据库表employee结构如下

字段名类型

ID(PK)Integer

Name Varchar(20)

Age Varchar(20)

departmentID Varchar(20)

测试数据库表department结构如下

字段名类型

DeptID(PK)Integer

Dept Varchar(20)

mangerID Integer

F1varchar(255)

F2varchar(255)

F3varchar(255)

F4varchar(255)

F5varchar(255)

F6varchar(255)

F7varchar(255)

F8varchar(255)

F9int

6.2.2 测试过程

使用Java编写了测试工程,启动测试程序后:

l 50000条级别的测试:先分别插入到employee表、department表、alary表中50000、和1000、50000条数据,然后执行一系列的测试

内存数据库介绍

常用内存数据库介绍(一) 博客分类: 内存数据库 数据结构Oracle企业应用网络应用设计模式 (注:部分资料直接来源于Internet) 1. 内存数据库简介 1.1 概念 一、什么是内存数据库 传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作一方面要进行磁头的机械移动,另一方面受到系统调用(通常通过CPU中断完成,受到CPU时钟周期的制约)时间的影响,当数据量很大,操作频繁且复杂时,就会暴露出很多问题。 近年来,内存容量不断提高,价格不断下跌,操作系统已经可以支持更大的地址空间(计算机进入了64位时代),同时对数据库系统实时响应能力要求日益提高,充分利用内存技术提升数据库性能成为一个热点。 在数据库技术中,目前主要有两种方法来使用大量的内存。一种是在传统的数据库中,增大缓冲池,将一个事务所涉及的数据都放在缓冲池中,组织成相应的数据结构来进行查询和更新处理,也就是常说的共享内存技术,这种方法优化的主要目标是最小化磁盘访问。另一种就是内存数据库 (MMDB:Main Memory Database,也叫主存数据库)技术,就是干脆重新设计一种数据库管理系统,对查询处理、并发控制与恢复的算法和数据结构进行重新设计,以更有效地使用CPU周期和内存,这种技术近乎把整个数据库放进内存中,因而会产生一些根本性的变化。两种技术的区别如下表:

内存数据库系统带来的优越性能不仅仅在于对内存读写比对磁盘读写快上,更重要的是,从根本上抛弃了磁盘数据管理的许多传统方式,基于全部数据都在内存中管理进行了新的体系结构的设计,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,从而使数据处理速度一般比传统数据库的数据处理速度快很多,一般都在10倍以上,理想情况甚至可以达到1000倍。 而使用共享内存技术的实时系统和使用内存数据库相比有很多不足,由于优化的目标仍然集中在最小化磁盘访问上,很难满足完整的数据库管理的要求,设计的非标准化和软件的专用性造成可伸缩性、可用性和系统的效率都非常低,对于快速部署和简化维护都是不利的。 2. 内存数据库历史和发展 一、雏形期 从上个世纪60年代末到80年代初。在这个时期中,出现了主存数据库的雏形。1969年IBM公司研制了世界上最早的数据库管理系统------基于层次模型的数据库管理系统IMS,并作为商品化软件投入市场。在设计IMS时,IBM考虑到基于内存的数据管理方法,相应推出了IMS/VS Fast Path。Fast Path是一个支持内存驻留

地理信息数据库产品及应用服务研究

地理信息数据库产品及应用服务研究 发表时间:2020-02-28T15:24:55.907Z 来源:《建筑学研究前沿》2019年21期作者:蒲妍婷 [导读] 随着科技的发展,如何将各种数据进行融会贯通,可以迅速、科学的被查找,利用已经成为了时代发展不可忽视的探索问题 新疆天拓空间信息测绘有限公司 841000 摘要:随着科技的发展,如何将各种数据进行融会贯通,可以迅速、科学的被查找,利用已经成为了时代发展不可忽视的探索问题,而地理信息数据库则是为提供各种地理信息而形成的基础数据库,这种数据库的建设可以促进地理信息测量的准确性和各种信息服务的及时性,地理信息数据库产品及其应用服务的发展状况直接影响着这种数据库建设的作用发挥,本文对此展开研究。 关键词:地理信息数据库建设应用服务技术 引言: 机械化、信息化已经是信息化时代各行业发展的趋势,因此很多国家开始不断的重视信息化工程的建设,我国亦是如此,如何进行信息化数据库,让各行业的工作效率能够进一步提升?目前,在地理信息数据库建设方面,很多相关的新型产品不断被应用其中,提升了地理信息数据库的逐步完善,例如,地图数据库、国土资源数据库等,它们承载了社会建设、土地规划、社会经济等发展需要的重要信息,随着人们生活水平的提升,交通建设、水电建设、教育建设都需要不断的改革创新,而这些创举都离不开地理信息的支持,因此这就是地理数据库产品的存在价值。 ―、地理信息数据库的发展 地理信息库建设是全球化趋势,不论是发达国家还是发展中国家都需要这一工程来服务自身发展,但是相比而言,发达国家的经济水平和科学技术更为先进,因此他们的地理信息数据库建设步伐也相对领先,而我国的数字化地理数据库问世基本可以追溯到1994年,经过近十年的发展,截止到2002年,我国的地理信息数据库已基本成型,覆盖面日益广泛,例如,地图信息库、地理信息分项数据库、专题数据库等都得到了社会的广泛认可。 随着时代的进一步发展,我国相关部门对于地理信息数据库的建设力度不断加大,相关的技术支持和资金支持也日益提升,地理信息数据库产品已经被逐渐应用到人们生活的各个领域,对于人们生活质量提升、精神生活充实奠定了良好的基础,尤其是对于土地建设相关工程的辅助作用也是日益提升。更重要的是,现在的人们在旅游过程中也在尝试利用地理信息数据库带来的便利。此外,对于社会经济发展也起到了积极的促进作用。相信在未来,地理信息数据库产品的应用范围和自身价值将得到更广泛的发展。 二、地理信息数据库建设的技术需求和应用要点 地理信息数据库的积极作用已经毋庸置疑,但是想要其发挥进一步的积极作用还需要加大建设力度,而这些工作的前提就是研究建设过程中的特点和社会需求,下面就对地理信息数据库建设的技术需求和应用特点进行分析。 (一)地形要素的动态变增技术需求 地理环境的复杂性决定了地理信息数据库建设的难度,因此需要不断的挖掘先进的技术来促使这一工程的建设,其中地理要素的动态变增技术就十分关键,所谓地形要素的动态变增技术是针对不同地理环境,对不同区域进行相关数据库信息的采集和增量设置,从而用数据的新增、删除和变更来记录这种地形区域的变化,最终实现实时更新、数据可视化的效果,进一步促使地理信息数据集的建设与完善。 (二)地理信息数据产品的应用要点 地理信息数据是十分复杂的,涉及到复杂的数学公式和法则,按照时间、空间等参照记性数字化表示,通过各种数据的记录来反映不同的地理信息,例如,地理目标的定位、面积、长度等,实现某个区域的科学、准确可视性。让现实世界的各种地理标志进行数据化、比例缩小化等。地理信息数据库则是这些海量信息的综合平台,实现最大范围的某些地理信息的查询、利用,最终促使地理信息数据产品的形成和应用。 (三)地理信息数据库的设计 地图数据库的存储是能够在不影响数据基础结构的前提之下,将主要包括线划地图的数据库、数字高程模型数据库、正影像数据库以及地名地址数据库的建设,在基础地理信息数据库的建设中添加必要的制图数据,并且灵活地运用数据的支持实现高效地地图数据库的制图与更新。数据库的设计越是精准,涵盖的范围越是广泛,越能发挥它最初的设计的价值。现实中很多经济发展都需要依赖一定的地理信息数据,因此,地理信息数据库的设计一定要精准、科学,既能够最大范围的囊括各种地理信息还能够快速的被查询、应用才是未来发展必然要满足的条件。 三、地理信息数据库建设的应用服务 2017版国家基础地理信息数据库,包含2万4千多幅图,具有9大类地理要素、34个数据层、1.8亿个要素对象。相比2016版,新的数据库对全国的1亿8千多万个地理要素进行了变化核查,实测了1千多万个地理要素。这是地理信息数据库建设的成果体现,通过此信息数据库,人们可以迅速的捕捉关于居民、境界、植被、地理信息。 地理信息数据库的建设最终目的还是服务社会发展,因此它的应用服务特点和范围决定了它价值的发挥程度。地理信息数据库产品的应用促使了各种地理空间数据信息的广泛应用,尤其是工程建设、水利调查、地理灾害预防等方面更是离不开地理信息,因此地理信息数据库建设的应用是涉及到国家经济、社会、文化发展等各个领域的。 地理信息数据库产品可以有效的服务于社会发展,发挥巨大的商业价值和商业潜力,因此对于相关产品的研发、设计,也需要建立起严格的监管制度,确保地理信息数据的采集、整理和产品研发,并且这个过程中的数据保密性也是必然不能忽视的。一个严密、科学的产品才能服务于项目建设的最终形成,对于地理信息数据库建设亦是如此。 此外,地理信息数据库产品数量比较大,而且分类也十分复杂,因此为了发挥其价值应当对需求客户进行细分,针对其需求和应用研发更适合的产品,按照需求来研发各种终端产品,最终更好地服务社会发展,扩大自身的发展前景。在未来,随着社会的发展,地理信息数据库的建设的应用服务范围将会更广,应用价值也会更高,不论是地图数据建设还是各种地理信息的获取都将依靠这种庞大的数据库建

内存数据库(sqllite)使用介绍

内存数据库(sqllite)使用介绍 数据库的发展 数据库技术的发展,已经成为先进信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。数据库技术最初产生于20世纪60年代中期,根据数据模型的发展,可以划分为三个阶段:第一代的网状、层次数据库系统;第二代的关系数据库系统;第三代的以面向对象模型为主要特征的数据库系统。 第一代数据库的代表是1969年IBM公司研制的层次模型的数据库管理系统IMS和70年代美国数据库系统语言协商CODASYL下属数据库任务组DBTG提议的网状模型。层次数据库的数据模型是有根的定向有序树,网状模型对应的是有向图。这两种数据库奠定了现代数据库发展的基础。这两种数据库具有如下共同点:1.支持三级模式(外模式、模式、内模式)。保证数据库系统具有数据与程序的物理独立性和一定的逻辑独立性; 2.用存取路径来表示数据之间的联系; 3.有独立的数据定义语言; 4.导航式的数据操纵语 言 第二代数据库的主要特征是支持关系数据模型(数据结构、关系操作、数据完整性)。 关系模型具有以下特点:1.关系模型的概念单一,实体和实体之间的连系用关系来表示; 2.以关系数学为基础; 3.数据的物理存储和存取路径对用户不透明; 4.关系数据库语言是 非过程化的。 第三代数据库产生于80年代,随着科学技术的不断进步,各个行业领域对数据库技术提出了更多的需求,关系型数据库已经不能完全满足需求,于是产生了第三代数据库。主要有以下特征:1.支持数据管理、对象管理和知识管理;2.保持和继承了第二代数据库系统的技术;3.对其它系统开放,支持数据库语言标准,支持标准网络协议,有良好的可移植性、可连接性、可扩展性和互操作性等。第三代数据库支持多种数据模型(比如关系模型和面向对象的模型),并和诸多新技术相结合(比如分布处理技术、并行计算技术、人工智能技术、多媒体技术、模糊技术),广泛应用于多个领域(商业管理、GIS、计划统计等),由此也衍生出多种新的数据库技术。 分布式数据库允许用户开发的应用程序把多个物理分开的、通过网络互联的数据库当作一个完整的数据库看待。并行数据库通过cluster 技术把一个大的事务分散到cluster中的多个节点去执行,提高了数据库的吞吐和容错性。多媒体数据库提供了一系列用来存储图像、音频和视频对象类型,更好地对多媒体数据进行存储、管理、查询。模糊数据库是存储、组织、管理和操纵模糊数据库的数据库,可以用于模糊知识处理。 内存数据库的起因,分类 一、雏形期 从上个世纪60年代末到80年代初。在这个时期中,出现了主存数据库的雏形。1969年IBM 公司研制了世界上最早的数据库管理系统------基于层次模型的数据库管理系统IMS,并作为商品化软件投入市场。在设计IMS时,IBM考虑到基于内存的数据管理方法,相应推出了IMS/VS Fast Path。Fast Path是一个支持内存驻留数据的商业化数据库,但它同时也可以很好地支持磁盘驻留数据。在这个产品中体现了主存数据库的主要设计思想,也就是将需要频繁

常用免费外文全文数据库

常用免费外文全文数据库 1.SpringerLINK数据库 德国施普林格(Springer-Verlag)是世界上著名的科技出版集团, 通过SpringerLink系统提供其学术期刊及电子图书的在线服务。2002年7月开始,Springer公司和EBSCO/Metapress 公司在国内开通了SpringerLink服务。 访问方式:镜像服务器(本校读者无需登录)、国外站点(用户需登录出国并自付国际网络通信费)。 访问权限:校园网IP地址范围。 访问全文:(PDF格式)需要使用Acrobat Reader软件,如需安装,可由此下载Acrobat Reader。 2.EBSCOhost数据库 EBSCO公司通过国际专线提供检索服务,校园网的用户检索、下载无需支付国际网络通信费。采用IP控制访问权限,不需要帐号和口令。 3.WorldSciNet数据库 WorldSciNet为新加坡世界科学出版社(World Scientific Publishing Co.)电子期刊发行网站,该出版社委托EBSCO / MetaPress 公司在清华大学图书馆建立了世界科学出版社全文电子期刊镜像站. 4.Ptics Express Optics Express由美国光学学会创办,刊登光学技术领域方面的报告和新进展。提供1997年创刊以来的全部文献,以平均49天一期的速度出版,并支持彩色图像和多媒体文件。 网站地址:https://www.doczj.com/doc/0610250895.html,/ 创建者:Optical Society 0f America 5.New Journal 0f Physics New Journal 0fPhysics由英国皇家物理学会和德国物理学会出版,提供1998年创刊以来的全部文献。所有用户可免费获取电子版文章。 网站地址:https://www.doczj.com/doc/0610250895.html, 创建者:Institute of Physics & German Physical Society 6.The Journal of Machine Learning Research The Journal of Machine Learning Research由麻省理工学院出版,是机械研究领域的优质学术性论文的平台,用户可下载2000年创刊以来的全部文章。 网站地址:https://www.doczj.com/doc/0610250895.html,/ 创建者:MIT Press 7.Journal of Insect Science Journal of Insect Science由亚利桑那大学图书馆创办。它收集整理网上发布的有关昆虫生物学和节枝动物生态学的论文。可下载从2001年创刊至今的全部文献。 网站地址:https://www.doczj.com/doc/0610250895.html,/ 创建者:Library of the University of Arizona 8.Geometry & Topology GTP:Geometry&Topology Publication是英国沃里克大学的数学系建立的,GT是国际化的数学类在线期刊,内容涉及几何学、拓扑学及其应用等领域。提供如下三种期刊的所有文献:Geometry&Topology(1997年创刊至今),Geometry&Topology Monographs(1998年

数据库系统综合概论

第一章数据库系统概论 本章目的在于使读者对数据库系统的基本知识能有一个较为全面的了解,为今后的学习和工作打下基础。本章重点介绍了有关数据库结构和数据库系统组织的基本知识和基本概念,以及常见的三种类型的数据库系统的特点。重点介绍关系数据库的有关知识。 1.1 数据管理技术发展史 随着生产力的不断发展,社会的不断进步,人类对信息的依赖程度也在不断地增加。数据作为表达信息的一种量化符号,正在成为人们处理信息时重要的操作对象。所谓数据处理就是对数据的收集、整理、存储、分类、排序、检索、维护、加工、统计和传输等一系列工作全部过程的概述。数据处理的目的就是使我们能够从浩瀚的信息数据海洋中,提取出有用的数据信息,作为我们工作、生活等各方面的决策依据。数据管理则是指对数据的组织、编码、分类、存储、检索和维护,它是数据处理的一个重要内容中心。数据处理工作由来以久,早在1880 年美国进行人口普查统计时,就已采用穿孔卡片来存储人口普查数据,并采用机械设备来完成对这些普查数据所进行的处理工作。电子计算机的出现以及其后其硬件、软件的迅速发展,加之数据库理论和技术的发展,为数据管理进入一个革命性阶段提供有力的支持。根据数据和应用程序相互依赖关系、数据共享以及数据的操作方式,数据管理的发展可以分为三个具有代表性的阶段,即人工管理阶段、文件管理阶段和数据库管理阶段。 【1 】人工管理阶段 这一阶段发生于六十年代以前,由于当时计算机硬件和软件发展才刚刚起步,数据管理中全部工作,都必须要由应用程序员自己设计程序完成去完成。由于需要与计算机硬件以及

各外部存储设备和输入输出设备直接打交道,程序员们常常需要编制大量重复的数据管理基 本程序。数据的逻辑组织与它的物理组织基本上是相同的,因此当数据的逻辑组织、物理组织或存储设备发生变化时,进行数据管理工作的许多应用程序就必须要进行重新编制。这样就给数据管理的维护工作带来许多困难。并且由于一组数据常常只对应于一种应用程序,因此很难实现多个不同应用程序间的数据资源共享。存在着大量重复数据,信息资源浪费严重。【2 】文件管理阶段 这一阶段发生于六十年代,由于当时计算机硬件的发展,以及系统软件尤其是文件系统的出现和发展,人们开始利用文件系统来帮助完成数据管理工作,具体讲就是:数据以多种组织结构(如顺序文件组织、索引文件文件组织和直接存取文件组织等)的文件形式保存在外部存储设备上,用户通过文件系统而无需直接与外部设备打交道,以此来完成数据的修改、插入、删除、检索等管理操作;使用这种管理方式,不仅减轻进行数据管理的应用程序工作量,更重要地是,当数据的物理组织或存储设备发生变化时,数据的逻辑组织可以不受任何影响,从而保证了基于数据逻辑组织所编制的应用程序也可以不受硬件设备变化的影响。这样就使得程序和数据之间具有了一定的相互独立性。 但由于数据文件的逻辑结构完全是根据应用程序的具体要求而设计,它的管理与维护完全是由应用程序本身来完成,因此数据文件的逻辑结构与应用程序密切相关,当数据的逻辑结构需要修改时,应用程序也就不可避免地需要进行修改;同样当应用程序需要进行变动时,常常又会要求数据的逻辑结构进行相应的变动。在这种情况下,数据管理中的维护工作量也是较大的。更主要的是由于采用文件的形式来进行数据管理工作,常常需要将一个完整的、相互关联的数据集合,人为地分割成若干相互独立的文件,以便通过基于文件系统的编程来实现来对它们的管理操作。这样做同样会导致数据的过多冗余和增加数据维护工作的复杂性。例如人事部门、教务部门和医务部门对学生数据信息的管理,这三个部门中有许多数据是相同的,如姓名、年龄、性别等,由于是各部门均是根据自己的要求,建立各自的数据文件和应用程序,这样不仅造成了大量的相同数据重复存储,而且在修改时,常常需要同时修改三个文件中的数据项,如修改学生年龄,此外若需要增加一个描述学生的数据项,如通讯地址,那么所有的应用程序就必须都要进行相应的修改。除此之外,采用文件系统来帮助进行数据管理工作,在数据的安全和保密等方面,也难以采取有效的措施加以控制。 3 】数据库管理阶段 1在不断改进和完善文件系统的过程中,从六十年代后期开始,人们逐步研究和发展了以数据的统一管理和数据共享为主要特征的数据库系统。即在数据在统一控制之下,为尽可能多的应用和用户服务,数据库中的数据组织结构与数据库的应用程序相互间有较大的相对独立性等。与以往前数据管理方法和技术相比,利用数

【内存数据库】内存数据库的原理及应用

内存数据库的原理及应用 摘要 近年来,数据库系统在各种领域中扮演了关键角色,但传统的基于磁盘的关系数据库系统却不能满足上述应用高性能、实时/近实时数据访问的要求,内存数据库系统则可以很好地满足各种应用系统的实时数据管理需求,本文主要阐述了内存数据库的基本概念,并对其和传统基于磁盘的数据库进行了比较,此外对其在内存中的数据管理方式有一定的介绍。 1.内存数据库概述以及内存数据库技术的发展 内存数据库,也称主存数据库,是一个较新的研究领域,目前对内存数据库尚无一定义。内存数据库的本质特征是其主拷贝或“工作版本”常驻内存。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多。 内存数据库与磁盘数据库之间主要区别在于:内存数据库主数据库常驻内存,体系结构设计的优化目标是提高内存和CPU使用效率由于事务处理无需进行磁盘访问,使用内存数据库的应用系统性能得到极大提高。 随着电子技术的快速发展,计算机内存已越来越便宜,这使得计算机上配置的内存容量变得越来越大。现在一些商用的系统已配置几GB甚至更多的主存,另外,随着计算机及操作系统从32位向64位的发展,使理论上计算机可配置内存总数达B。从前,利用虚拟内存或内存交换技术来使大于地址空间或大于物理内存的程序可以运行,这些技术在当时乃至现在都具有重要的意义,然而,现在的问题是如何充分利用大内存,使程序运行更快。 随着计算机应用领域不断扩大和应用程度不断加深,人们对数据库技术提出了新的更高的要求。主存数据库技术,是随着存储技术的发展和现代应用的高性能需求产

开源内存数据库的调研与分析

一、内存数据库具备的一些基本功能 1):数据的管理,内存数据库机制是支持永久数据的管理的,包括数据库的的定义、存储、维护等功能。 2):数据的操作,内存数据库支持对数据进行增,删,改,查,数据完整性校验等一些基本功能。 3):事务管理,内存数据库支持调度,进程间、线程间的一些并发等操作。 4):数据恢复备份机制,内存数据库支持在线备份和系统崩溃后的自动恢复。

二、FastDB FastDB是一个高效率的内存数据库系统,在磁盘上的数据库文件和使用该数据库的每一个应用程序占用的虚拟内存空间相映射,这样取消了数据文件和缓冲池中的数据传输。再将整个文件数据读入内存,并且使用了高性能的锁工具实现了只读模式线程间、单个更改模式线程和多个只读模式线程间的并发执行。FastDB通过位图实现对内存进行分配,最小单位块是分配量子(16字节)。如此大大提高了数据引用的局部性(对象数据尽可能分配在连续的内存区域),最小化了修改页的数目和减少了事务提交时间。事务提交协议基于一个影子根页算法,对数据库执行原子更新操作,恢复效率很高,在存储数据结构上可以采用T-tree结构(T-tree和A VL-tree相似,只是T-tree中每个节点中顺序存储了多个值),对于大量相似重复性数据的查询性能相当高;也可以采用Hash存储,这是用关键字段定位表中记录的最好办法(采用等号进行查询)。 影子根页算法概述:FastDB数据库中每条对象都具有唯一的标识符(OID),用作一个数组(对象索引)的下标,元素值表示对象的一个句柄,在FastDB数据库中存在两个索引(当前索引和影子索引),当某个对象第一次被修改时,它会创建一个副本,当前索引中的对象句柄被修改指向副本,影子索引仍然包含一个指向该对象原始版本的句柄。所有更改发生在副本上,FastDB在对象索引的一个特殊位图页上标记出哪个索引包含修改过的对象句柄。 当一个事务被提交时,FastDB首先检查对象索引的尺寸的大小,若增长了,还会重新为对象索引的影子副本重新分配内存,然后释放“旧对象”占用的内存,释放后,将修改过的所有位图页flush到磁盘上,然后FastDB将改变数据库头部中的当前对象索引指示符,以切换对象索引的角色。当前对象索引将变成影子索引之后,FastDB 把修改过的所有句柄从新的对象索引中复制到先前是影子的、现在已成为当前的对象索引中。此时,两个索引都得到了同步。 优点: 具备实时能力及便利的C++接口。FastDB针对应用程序通过控制读访问模式作了优化。通过降低数据传输的开销和非常有效的锁机制提供了高速的查询。对每一个使用数据库的应用数据库文件被影射到虚拟内存空间中。因此查询在应用的上下文中执行而不需要切换上下文以及数据传输。 fastdb中并发访问数据库的同步机制通过原子指令实现,几乎不增加查询的开销。fastdb假定整个数据库存在于RAM中,并且依据这个假定优化了查询算法和接口。此外,fastdb 没有数据库缓冲管理开销,不需要在数据库文件和缓冲池之间传输数据。 Fastdb支持事务、在线备份以及系统崩溃后的自动恢复。事务提交协议依据一个影子根页面算法来自动更新数据库。恢复可以执行得非常快,为临界应用提供了高可用性。此外,取消事务日志改进了整个系统的性能,并且使得可以更有效的利用系统资源。 fastdb是一个面向应用的数据库,数据库表通过应用程序的类信息来构造。fastdb支持自动的模式评估。

常用文献检索数据库

一、常用文献检索数据库 1、Springerlink数据库 Springer是德国施普林格(Springer)出版公司出版的全文数据库数据库。所提供的全文电子期刊共包含439种学术期刊(其中近400种为英文期刊),按学科分为以下11个“在线图书馆”:生命科学、医学、数学、化学、计算机科学、经济、法律、工程学、环境科学、地球科学、物理学与天文学,是科研人员的重要信息源。 2、HighWire Press数据库 HighWire Press是提供免费全文的、全球最大的学术文献出版商之一,于1995年由美国斯坦福大学图书馆创立。最初,仅出版著名的周刊“Journal of Biological Chemistry”,目前已收录电子期刊340多种,文章总数已达130多万篇,其中超过47万篇文章可免费获得全文;这些数据仍在不断增加。通过该界面还可以检索Me 564034381 19:25:58 dline收录的4500余种期刊中的1200多万篇文章,可看到文摘题录。HighWire Press收录的期刊覆盖以下学科:生命科学、医学、物理学、社会科学。 3、NCBI PUBMED数据库 https://www.doczj.com/doc/0610250895.html,/pubmed PubMed系统是由NLM的国家生物技术信息中心(National Center for Biotechnology Information,NCBI)开发的用于检索MEDLINE、PreMEDLINE数据库的网上检索系统。从1997年6月起,PubMed在网上免费向用户开放。它具有收录范围广泛、更新速度快、检索系统完备、链接广泛的特点。PubMed系统包含三个数据库:MEDLINE、PreMEDLINE和Record supplied by Publisher。 4、sciencedirect数据库 SD是荷兰Elsevier公司的核心产品,是全学科的全文数据库,它拥有1263种科技和医学电子全文期刊数据库 5、Blackwell数据库 英国Blackwell出版公司是世界上最大的期刊出版商之一,出版期刊总数已超过700种,其中理科类期刊占54%左右,其余为人文社会科学类。涉及学科包括:农业、动物学、医学、工程、数学统计、计算机技术、商业经济、生命科学、物理学、人文科学、艺术、社会及行为科学等。 6、ProQuest博士论文全文检索系统, 美国ProQuest数据库是世界著名的学位论文数据库,收录有欧美1,000余所大学文、理、工、农、医等领域的博士、硕士学位论文,是学术研究中十分重要的信息资源。 7、OAIster学位论文数据库 二、专利 1、欧洲网上专利数据库

如何为数据库服务器配置存储和内存

服务器管理,本文介绍在设计数据库服务器系统地存储与内存时应该注意地一些基本原则. 随着服务器硬件地功能变得越来越强大,而价格一路急剧下跌,许多公司(尤其是小公司)发现如今购买数据库服务器面临众多选择.这意味着,经验相对欠缺地数据库管理员们也被要求设计功能越来越强大地系统.在为大型系统设计数据库系统时,能够买到有许多硬盘和充足内存地大型数据库服务器.以下是在设计系统时应当遵守地一些基本原则.文档来自于网络搜索 存储系统 人们在设计磁盘阵列时最常犯下地错误就是,只计算所需地闲置容量.闲置容量只是设计存储子系统时要考虑地一部分而已;另一个部分就是存储系统需要支持地输入输出操作次数.文档来自于网络搜索 应当遵守地一条基本原则就是,写操作频繁地数据库最好使用阵列,而读操作频繁地数据库通常最好使用阵列.原因在于,如果把数据写到阵列,性能会受到影响.由于把数据写到阵列上,存储系统必须在写数据之前计算出奇偶检验位,而算出奇偶检验位需要相当长地时间,这意味着写到阵列上地性能会降低.文档来自于网络搜索 由于这种性能影响,我们总是建议你应当把事务日志放到阵列上.事务日志是写操作始终很频繁地文件,不管数据库是以读操作为主地数据库,还是以写操作为主地数据库.数据库也应当放在阵列上,具体来说放在与事务日志文件所在阵列不同地另一个阵列上.文档来自于网络搜索 对每个磁盘阵列进行分区时,应当确保分区正确对齐.默认情况下,及以下版本没有正确对齐分区,这会导致磁盘子系统地性能达不到最理想水平.可以通过使用实用程序(中地)创建分区来解决这个问题.这样创建地每个分区其对齐偏移量应为;在默认情况下,创建地每个分区其对齐偏移量为. 在默认情况下创建地分区其对齐偏移量为.文档来自于网络搜索物理数据库构建 微软最近开始推荐使用地一项比较新地技术就是,针对两个至四个核心当中地每个核心,数据库应当有一个物理数据库文件.应当为数据库里面地每个文件组做到这一点.文档来自于网络搜索 如果你地服务器有两个四核,那么共有八个核心.我们假定数据库有两个文件组,一个名为,另一个名为.那么每个文件组都应当有两个至四个物理文件.这项技术让可以对磁盘输入输出进行优化.可能地话,你应当尽量分散文件,以便位于每个存储阵列上地文件尽可能少.文档来自于网络搜索 数据库地配置应有点不同.配置数据库时,建议针对每个核心,数据库应当有一个物理文件.这样系统就可以为数据库尽量加快输入输出操作.与用户数据库一样,放在每个磁盘阵列上地文件也应当尽可能少.文档来自于网络搜索 你在数据库里面应当始终至少有两个文件组.第一个文件组包括表,第二个组包括索引.你需要让它们位于不同地文件组,那样查询索引时,装入到表地操作不会受到影响,反之亦然.文档来自于网络搜索 系统内存 在过去,购买只安装了数内存地数据库服务器相当常见.那是因为内存地价格还很昂贵. 如今,内存价格相当便宜;只要你能承受得了,应当购买尽量多地内存.内存越多,数据库地运行速度几乎总是越快.例外情况就是,如果你安装地内存超过了数据库地大小.举例来说,如果你有大小地数据库,但安装了内存,那么为服务器添加更多内存对提升数据库地性能没有帮助,因为可能已经能把整个数据库装入到内存中.文档来自于网络搜索在决定为分配多大内存时,绝对不要让把所有内存都分配给它.因为操作系统需要内存

常用外文数据库介绍]

常用外文数据库介绍 SpringerLINK数据库 德国施普林格(Springer-Verlag)是世界上著名的科技出版集团, 通过SpringerLink系统提供其学术期刊及电子图书的在线服务。2002年7月开始,Springer公司和EBSCO/Metapress公司在国内开通了SpringerLink服务。 访问方式:镜像服务器(本校读者无需登录)、国外站点(用户需登录出国并自付国际网络通信费)。 访问权限:校园网IP地址范围。 访问全文:(PDF格式)需要使用Acrobat Reader软件,如需安装,可由此下载Acrobat Reader。 EBSCOhost数据库 EBSCO公司通过国际专线提供检索服务,校园网的用户检索、下载无需支付国际网络通信费。采用IP控制访问权限,不需要帐号和口令。 WorldSciNet数据库 WorldSciNet为新加坡世界科学出版社(World Scientific Publishing Co.)电子期刊发行网站,该出版社委托EBSCO / MetaPress 公司在清华大学图书馆建立了世界科学出版社全文电子期刊镜像站. Ptics Express Optics Express由美国光学学会创办,刊登光学技术领域方面的报告和新进展。提供1997年创刊以来的全部文献,以平均49天一期的速度出版,并支持彩色图像和多媒体文件。 网站地址:https://www.doczj.com/doc/0610250895.html,/ 创建者:Optical Society 0f America New Journal 0f Physics New Journal 0fPhysics由英国皇家物理学会和德国物理学会出版,提供1998年创刊以来的全部文献。所有用户可免费获取电子版文章。 网站地址:https://www.doczj.com/doc/0610250895.html, 创建者:Institute of Physics & German Physical Society

数据库基础与管理信息系统概述

第1章数据库基础与管理信息系统概述 数据库广泛地应用于各企业组织和政府机构,与人们的日常生活息息相关。在现代信息社会中,将有更高比例的人力物力投入信息产业。数据是信息产业的原料,数据需要经过组织和管理才能发挥它的实用性。然而管理数据的有效利器就是数据库和与它相关的数据库管理系统。大家知道Delphi在开发数据库及设计应用程序界面方面有着不同寻常的优势,开发简单、设计方便、容易上手、帮助完善,只要对编程略有基础则使用Delphi开发一般的应用程序界面及数据库应用程序都易如反掌,所以它越来越受程序员的青睐。业界盛传执着的程序员使用C++,聪明的程序员使用Delphi。使用Delphi编程往往可以使程序员的工作事半功倍,因此目前开发小型的管理信息系统大都采用Delphi。 本章首先介绍数据库的常用基本概念、传统数据库的发展阶段,给出应该掌握的基本术语、概念;然后介绍管理信息系统的定义、特点、结构、分类,以及管理信息系统的开发方法。 1.1 什么是数据库 数据库描述了现实世界中的某些方面,构成了现实世界中的一个微小世界。数据库是一个逻辑上紧密相连的数据集。该数据集中的数据具有某些固有的语义含义。数据库是为某个特定目标设计、建立和使用的,它拥有确定的用户组和这些用户组感兴趣的预定的应用。数据库是一个持久数据的集合,这些数据用于某种应用系统中,是由一个或几个数据表格组成的,数据表格是由数据组成的,是一个统一管理的相关数据的集合,数据库的特点是能被各种用户共享,具有最小的冗余度,数据间有紧密的联系但又有较高的对程序的独立性。 数据库中的表、视图、存储过程、索引等具体存储数据或对数据进行操作的实体,称为数据库的对象。数据库是这些对象的集合,该集合中容纳着各种各样的数据库对象。 1.2 数据库管理技术的发展阶段 数据管理指的是对数据的分类、组织、编码、储存、检索和维护。计算机信息系统是一类数据密集型的应用,不论哪一类信息系统,都建立在大量数据事实基础之上,管理这种大量的、持久的、共享的数据是这类计算机应用面临的共同问题。 数据库管理技术大致经历了3个阶段: ?人工管理阶段。 ?文件管理阶段。 ?数据库系统阶段。

常用国外数据库及检索介绍

常用国外数据库详细介绍(按国家分类) 一、美国 (1) Wiley InterScience(英文文献期刊) 主页:https://www.doczj.com/doc/0610250895.html,/ 简介:Wiley InterScience是John Wiely & Sons 公司创建的动态在线内容服务,1997年开始在网上开通。通过InterScience,Wiley公司以许可协议形式向用户提供在线访问全文内容的服务。Wiley InterScience收录了360多种科学、工程技术、医疗领域及相关专业期刊、30多种大型专业参考书、13种实验室手册的全文和500多个题目的Wiley学术图书的全文。其中被SCI收录的核心期刊近200种。期刊具体学科划分为:Business, Finance & Management (商业、金融和管理)、Chemistry (化学)、Computer Science (计算机科学)、Earth Science (地球科学)、Education (教育学)、Engineering (工程学)、Law (法律)、Life and Medical Sciences (生命科学与医学)、Mathematics and Statistics (数学统计学)、Physics (物理)、Psychology (心理学)。 (2)美国IEEE (英文文献期刊) 主页:https://www.doczj.com/doc/0610250895.html,/ 简介:IEEE(Institute of Electrical & Electronics Engineers)是电子信息领域最著名的跨国性学术团体,其会员分布在世界150多个国家和地区。据IEEE统计,IEEE会员总数2001年比2000年增加3.1%,达到377342人,其中学生会员为65669人,增长12.6%。 随着人们的信息越来越多地来自Internet,IEEE需要为会员提供更加完善和全面的电子信息产品和服务。IEEE应成为IEEE会员获得信息的首选之地。IEEE必须识别正确的信息,并提供对它们的访问方法。实现这个目标的重要一步是通过IEEE Xplore与IEEE/IEE Electronic Library (IEL)连接。IEL包括了1988年以来IEEE和IEE的所有期刊杂志和会议录,以及IEEE的标准,可以通过题目、关键词和摘要进行查阅。 (3)美国EBSCO(英文文献期刊) 主页:https://www.doczj.com/doc/0610250895.html, 简介:EBSCO公司从1986年开始出版电子出版物,共收集了4000多种索引和文摘型期刊和2000多种全文电子期刊。该公司含有Business Source Premier (商业资源电子文献库)、Academic Search Elite(学术期刊全文数据库)等多个数据库。 Business Source Premier收录了三千多种索引、文摘型期刊和报纸,其中近三千种全文刊。数据库涉及国际商务、经济学、经济管理、金融、会计、劳动人事、银行等的主题范围,适合经济学、工商管理、金融银行、劳动人事管理等专业人员使用。数据库中有较著名"华尔街日报"(The Walls Street Journal)、"哈佛商业评论"(Harvard Business Review)、"每周商务"(Business Week)、"财富"(Fortune)、"经济学家智囊团国家报告" (EIU Country Reports)、American Banker、Forbes、The Economist等报刊。该数据库从1990年开始提供全文,题录和文摘则可回溯检索到1984年,数据库每日更新。 学术期刊集成全文数据库(Academic Search Premier,简称ASP):包括有关生物科学、工商经济、资讯科技、通讯传播、工程、教育、艺术、文学、医药学等领域的七千多种期刊,其中近四千种全文刊。 EBSCO内含有两个免费数据库:

法律数据库产品介绍

H EIN O NLINE 法律数据库产品介绍 The Modern Link to Legal History! ――法律历史与现代的链接! ●1300种全球核心法学期刊,大部分从创刊号收录至今●1500部法学经典学术专著 ●检索简单方便, PDF/文本轻松转换 ●法学研究者不可或缺的基本学术研究资源 William S. Hein & Co., Inc.公司从事法律出版及信息服务已有近80年的历史,在美国乃至全球均享有盛名,现为全球最大的法律期刊的提供商、订购商和法律图书馆界的服务商。 HeinOnline法律数据库(https://www.doczj.com/doc/0610250895.html,)现有近1300种法学期刊,675卷国际法领域权威巨著,100000多个案例,1000 多部精品法学学术专著。自2000年进入市场以来,在全球法律文献市场取得了巨大的成功, 2002年曾获得过国际法律图书馆协会颁发的"最佳商业网站奖";2001年获得美国法律图书馆协会颁发的"最佳新产品奖",美国所有法学院均已订购。该数据库是法学教学、研究和学习的必备资料库。 网址:https://www.doczj.com/doc/0610250895.html,

HeinOnline 数据库各文库内容简介 ?Law Journal Library 法学期刊库(核心文库!!!) 期刊种类:1300种。卷次:32124卷。页数:20717958页。 本库包含近1300种法律和法律相关期刊。经过出版社的授权,绝大部分期刊的收录都是从第一期开始直到当前期次。本文库堪称HeinOnline数据库中最核心的文库,所收录的期刊主要分为: ●美国律师协会期刊库(American Bar Association Journals) ●美国核心/被引用最多的法学期刊库(Core U.S./Most Cited Law Journals) ●刑事司法期刊库(Criminal Justice Journals) ●国际及非美国法学期刊库(International & Non-U.S. Law Journals) ●知识产权期刊库(Intellectual Property Journals) ●被引用最多的期刊库(Most-Cited Journals) ?American Law Institute Library 美国法学会库 文献种类:82种。卷次:4501卷。页数:824464页。 收录了美国法学会的年度报告、纪要、会议讲稿集粹、新闻通讯、《ALI法律报道》等法律文献资源。全部文献可回溯到该会的创立时期,是研究美国法学会最重要的文献资源。 ?Code of Federal Regulations 美国联邦法典文库 文献种类:70种。卷次:8074卷。页数:5002892页。 HeinOnline数据库对美国联邦法典文库的覆盖非常全面,收录的文献最早是从1938年开始的。 美国联邦法典文库具有多重浏览和检索功能。从联邦纪事文库模块也可以进入到该库的内容中来。 ?English Reports 英国报告文库 文献种类:14种。卷次:190卷。页数:242052页。 英国报告文库是案例文库,其中的页面是以图像格式为基础,再现了原始报告的再版版本(包含100000多个案例),其与索引、图表一起构成了本库的主要内容。除此之外,丰富的导航功能,例如案例定位功能、图表导航功能,以及高级检索功能,可以帮助您轻松找到需要的案例。 ?Federal Register Library 美国联邦纪事文库 文献种类:10种。卷次:21395卷。页数:4720426页。 本库中的联邦纪事文库覆盖全面,收录其中的文献最早发表于1936年。本库具有多重浏览与检索功能。收录其中的文献包括:开始于1938年的联邦规章法典、开始于1935年的美国行政指南以及开始于1965年的总统文件每周汇编。 ?Foreign & International Law Resources Database 国际法数据库(重点文库!)

相关主题
文本预览
相关文档 最新文档