四大开源数据库是哪些

四大开源数据库是哪些,第1张

开源世界中的那几个免费数据

发布时间:2011-11-22 09:34:30 来源:CSDN 评论:0 点击:1476 次 字号:大 中 小

QQ空间 新浪微博 腾讯微博 人人网 豆瓣网 百度空间 百度搜藏 开心网 复制 更多 0

开源数据库MySQLMySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源

开源数据库MySQL

MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

盘点:开源社区那些免费的数据库软件

MySQL为多种编程语言提供了API,包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。而其自身是采用C和C++编写的,使用了多种编译器进行测试,所以,MySQL能够保证源代码具有很强的可移植性。这样的一款数据库,自然能够支持几乎所有的 *** 作系统,从Unix、Linux到Windows,具体包括AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多种 *** 作系统。最重要的是,它是一个可以处理拥有上千万条记录的大型数据库。

与此同时,MySQL也产生了很多分支版本的数据库也非常值得推荐。

首先是MariaDB,它是一个采用Maria存储引擎的MySQL分支版本,是由原来MySQL的作者 Michael Widenius创办的公司所开发的免费开源的数据库服务器。与MySQL相比较,MariaDB更强的地方在于它拥有更多的引擎,包括Maria存储引擎、PBXT存储引擎、XtraDB存储引擎、FederatedX存储引擎,它能够更快的复制查询处理、运行的速度更快、更好的功能测试以及支持对Unicode的排序等。

其次是rcona,它为MySQL数据库服务器进行了改进,在功能和性能上较MySQL有着很显著的提升。该版本提升了在高负载情况下的InnoDB的性能,同时,它还为DBA提供一些非常有用的性能诊断工具,并且提供很多参数和命令来控制服务器行为。

第三是Percona Server,它使用了诸如google-mysql-tools、Proven Scaling和 Open Query对MySQL进行改造。并且,它只包含MySQL的服务器版,并没有提供相应对 MySQL的Connector和GUI工具进行改进。

非关系型数据库NoSQL

从NoSQL的字面上理解,NoSQL就是Not Only SQL,被业界认为是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

盘点:开源社区那些免费的数据库软件

当然,NoSQL也是随着互联网Web20网站的兴起才能取得长足的进步。关键的需求在于,传统的关系数据库在应付Web20网站,特别是超大规模和高并发的SNS类型的web20纯动态网站显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

首先推荐的是Oracle NoSQL Database,这是一个社区版。Oracle的这个NoSQL Database, 是在10月4号的甲骨文全球大全上发布的Big Data Appliance的其中一个组件,Big Data Appliance是一个集成了Hadoop、NoSQL Database、Oracle数据库Hadoop适配器、Oracle数据库Hadoop装载器及R语言的系统。

其次推荐的是Membase。Membase是NoSQL家族的一个新的重量级的成员。Membase是开源项目,源代码采用了Apache20的使用许可。该项目托管在GitHubSource tarballs上,目前可以下载beta版本的Linux二进制包。该产品主要是由North Scale的memcached核心团队成员开发完成,其中还包括Zynga和NHN这两个主要贡献者的工程师,这两个组织都是很大的在线游戏和社区网络空间的供应商。

并且,Membase容易安装、 *** 作,可以从单节点方便的扩展到集群,而且为memcached(有线协议的兼容性)实现了即插即用功能,在应用方面为开 发者和经营者提供了一个比较低的门槛。做为缓存解决方案,Memcached已经在不同类型的领域(特别是大容量的Web应用)有了广泛的使用,其中 Memcached的部分基础代码被直接应用到了Membase服务器的前端。通过兼容多种编程语言和框架,Membase具备了很好的复用性。在安装和配置方面,Membase提供了有效的图形化界面和编程接口,包括可配置 的告警信息。

Membase的目标是提供对外的线性扩展能力,包括为了增加集群容量,可以针对统一的节点进行复制。 另外,对存储的数据进行再分配仍然是必要的。

第三推荐的是Hibari。Hibari在日语中意思为“云雀”,它是一个专为高可靠性和大数据存储的数据库引擎,可用于云计算环境中,例如 webmail、SNS和其他要求T/P级数据存储的环境中。同时,Hibari也支持Java,C/C++,Python,Ruby和Erlang语言的客户端。

第四推荐的是memcachedb。这是一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是 不需要严格事务约束,能够被持久化保存的应用场景,例如memcachedb被应用在新浪博客上面。

第五推荐的是Leveldb。这是一个Google实现的非常高效的kv数据库,目前的版本12能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计,特别是LSM算法。LevelDB是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。

XML数据库的优势

XML数据库是一种支持对XML格式文档进行存储和查询等 *** 作的数据管理系统。在系统中,开发人员可以对数据库中的XML文档进行查询、导出和指定格式的序列化。目前XML数据库有三种类型:XMLEnabledDatabase(XEDB),即能处理XML的数据库;NativeXMLDatabase(NXD),即纯XML数据库;HybridXMLDatabase(HXD),即混合XML数据库。

关系数据库中的第一代XML支持是切分(或分解)文档,以适应关系表格或将文档原封不动地存储为字符或二进制大对象(CLOB 或 BLOB)。这两个方法中的任一种都尝试将XML模型强制转换成关系模型。然而,这两种方法在功能和性能上都有很大的局限性。混合型模型将XML存储在类似于DOM的模型中。XML数据被格式化为缓冲数据页,以便快速导航和执行查询以及简化索引编制。

在这里,首要要推荐的XML数据库是Sedna。它号称是一款原生态的XML数据库,提供了全功能的核心数据库服务,包括持久化存储、ACID事务、索引、安全、热备、UTF8等。实现了 W3C XQuery 规范,支持全文搜索以及节点级别的更新 *** 作。

第二款XML数据库是BaseX。这款数据库用来存储紧缩的XML数据,提供了高效的 XPath和XQuery的实现,同时,它还提供一个前端 *** 作界面。

盘点:开源社区那些免费的数据库软件

第三款推荐的是XMLDB。这款数据库使用了关系型数据库来存储任意的XML文档,因为所采用的存储机制,所以文档的搜索速度特别快,同时执行XSL转换也相当快。XMLDB同时还提供了一个PHP的模块,可以应用在Web应用中。

第四块推荐的是X-Hive/DB。它是一个为需要高级XML数据处理和存储功能的软件开发者设计的强大的专属XML数据库。X-Hive/DB Java API包含存储、查询、检索、转换和发表XML数据的方法。

与传统关系型数据库相比,XML数据库具有以下优势:第一,XML数据库能够对半结构化数据进行有效的存取和管理。如网页内容就是一种半结构化数据,而传统的关系数据库对于类似网页内容这类半结构化数据无法进行有效的管理。第二,提供对标签和路径的 *** 作。传统数据库语言允许对数据元素的值进行 *** 作,不能对元素名称 *** 作,半结构化数据库提供了对标签名称的 *** 作,还包括了对路径的 *** 作。第三,当数据本身具有层次特征时,由于XML数据格式能够清晰表达数据的层次特征,因此XML数据库便于对层次化的数据进行 *** 作。XML数据库适合管理复杂数据结构的数据集,如果己经以XML格式存储信息,则XML数据库利于文档存储和检索;可以用方便实用的方式检索文档,并能够提供高质量的全文搜索引擎。另外XML数据库能够存储和查询异种的文档结构,提供对异种信息存取的支持。

用SQL,先建立SQL数据库连接和数据保存,可参考组态王功能例程里面的SQL数据库连接和保存例子,再用数据库函数AA=KVAverageValueInFieldName("此内为KVADODBGrid Class控件列名称");AA为内存实数,可将AA显示在屏幕上。我这个是求平均的例子。如果用报表速度很慢,而且不方便。用SQL速度快。

是通过映射文件来映射的。举个简单的例子,例如我有个Teacher实体类(某教学管理系统老师用户):

private Integer id; //编号

private String name; //姓名

private String password; //密码

private Date createDate; //创建日期

同时,我创建了数据表TEACHER:

create table teacher( id number(9) primary key, --编号 name varchar2(20), --姓名 password varchar2(20), --密码 create_date date --创建日期 );

这时,怎么关联它们呢?通过加载hibernate框架,我们就可以使用映射文件来关联实体类和数据库了

文件名:Teacherhbmxml(必须与实体类名字一致)

内容:

<xml version="10" encoding="utf-8">

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 30//EN" " >

之前不知道elasticsearch 科普了一下发现时基于Lucene的 那肯定不能用作KV数据库的跟Lucene不能当KV数据库一个道理 Lucene构建索引的消耗太大 不是实时的

基于多年前用Lucene的经验

不知道现在成立不成立~

第九讲 组态王与数据库连接

第一节 SQL 访问管理器

概述

组态王SQL 访问功能实现组态王和其他外部数据库(通过ODBC 访问接口)之间的数据传输。它包括组态王的SQL 访问管理器和相关的SQL 函数。

SQL 访问管理器用来建立数据库字段和组态王变量之间的联系,包括“表格模板”和“记录体”两部分。通过表格模板在数据库表中建立相应的表格;通过记录体建立数据库字段和组态王之间的联系。同时允许组态王通过记录体直接 *** 作数据库中的数据。

创建数据源及数据库

首先建一个数据库,这里我们选用Access 数据库(路径:d:\peixun,数据库名为:mydbaccdb )。

然后,用Windows 控制面板——管理工具——数据源(ODBC )新建一个Microsoft Access Driver(mdb, accdb)驱动的数据源,名为:mine ,然后配置该数据源,指向刚才建立的Access 数据库(即mydb accdb ),如图9-1所示:

图9-1 ODBC 数据源的建立

创建表格模板

1、在工程浏览器窗口左侧“工程目录显示区”中选择“SQL 访问管理器”中的“表格模板”选项,在右侧“目录内容显示区”中双击“新建”图标d出创建表格模板对话框,在对话框中建立三个字段,如图9-2所示:

图9-2 创建表格模板对话框

2、单击“确认”按钮完成表格模板的创建。

建立表格模板的目的是定义数据库格式,在后面用到SQLCreatTable ()函数时以此格式在Access 数据库中自动建立表格。

创建记录体

1、在工程浏览器窗口左侧“工程目录显示区”中选择“SQL 访问管理器”中的“记录体”选项,在右侧“目录内容显示区”中双击“新建”图标d出创建记录体对话框,对话框设置如图9-3所示:

图9-3 创建记录体对话框

记录体中定义了Access 数据库表格字段与组态王变量之间的对应关系,对应关系如下所示:

即:将组态王中\\local\$Date变量值写到Access 数据库表格日期字段中;将\\local\$Time变量值写到Access 数据库表格时间字段中;将\\local\原料油液位变量值写到Access 数据库表格原料油液位值字段中;

2、单击“确认”按钮完成记录体的创建。

注:记录体中的字段名称必须与表格模板中的字段名称保持一致,记录体中字段对应的变量数据类型必须和表格模板中相同字段对应的数据类型相同。

第二节 对数据库的 *** 作

连接数据库

1、在工程浏览器窗口的数据词典中定义一个内存整型变量:

变量名:DeviceID

变量类型:内存整型

2、新建一画面,名称为:数据库 *** 作画面。

3、选择工具箱中的工具,在画面上输入文字:数据库 *** 作。

4、在画面中添加一按钮,按钮文本为:数据库连接。

5、在按钮的d起事件中输入如下命令语言,如图9-4所示:

图9-4 数据库连接命令语言

上述命令语言的作用是使组态王与mine 数据源建立了连接(即与mydbmdb 数据库建立了连接)。

在实际工程中将此命令写入:工程浏览器〉命令语言〉应用程序命令语言〉启动时中,即系统开始运行就连接到数据库上。

创建数据库表格

1、在数据库 *** 作画面中添加一按钮,按钮文本为:创建数据库表格。

2、在按钮的d起事件中输入如下命令语言,如图9-5所示:

图9-5 创建数据库表格命令语言

上述命令语言的作用是以表格模板“Table1”的格式在数据库中建立名为“KingTable ”的表格。在生成的KingTable 表格中,将生成三个字段,字段名称分别为:日期,时间,原料油液位值,每个字段的变量类型、变量长度及索引类型与表格模板“Table1”中的定义一致。

此命令语言只需执行一次即可,如果表格摸板有改动,需要用户先将数据库中的表格删除才能重新创建。在实际工程中将此命令写入:工程浏览器〉命令语言〉应用程序命令语言〉启动时中,即系统开始运行就建立数据库表格。

插入记录

1、在数据库 *** 作画面中添加一按钮,按钮文本为:插入记录。

2、在按钮的d起事件中输入如下命令语言,如图9-6所示:

图9-6 插入记录命令语言

上述命令语言的作用是在表格KingTable 中插入一个新的记录。

按下此按钮后,组态王会将bind1中关联的组态王变量的当前值插入到Access 数据库表格“KingTable”中,从而生成一条记录,从而达到了将组态王数据写到外部数据库中的目的, 查询记录

用户如果需要将数据库中的数据调入组态王来显示,需要另外建立一个记录体,此记录体的字段名称要和数据库表格中的字段名称一致,连接的变量与数据库中字段的类型一致, *** 作过程如下:

1、在工程浏览器窗口的数据词典中:

a 、变量名:记录日期

变量类型:内存字符串

初始值:空

b 、变量名:记录时间

变量类型:内存字符串

初始值:空

c 、变量名:原料油液位返回值

变量类型:内存实型

初始值:0

2、新建一画面,名称为:数据库查询画面。

3、选择工具箱中的工具,在画面上输入文字:数据库查询。

4、在画面上添加三个文本框,在文本框的“字符串输出”、“模拟量值输出”动画中分别连接变量\\本站点\记录日期、\\本站点\记录时间、\\本站点\原料油液位返回值,用来显示查询出来的结果。

5、在工程浏览窗口中定义一个记录体,记录体窗口属性设置如图9-7所示:

图9-7 记录体属性设置对话框

6、在画面中添加一按钮,按钮文本为:得到选择集

7、在按钮的d起事件中输入如下命令语言,如图9-8所示:

图9-8 记录查询命令语言对话框

此命令语言的作用是:以记录体Bind2中定义的格式返回KingTable 表格中第一条数据记录。

8、单击“文件”菜单中的“全部存”命令,保存您所作的设置。

9、单击“文件”菜单中的“切换到VIEW ”命令,进入运行系统。运行此画面,单击“得到选择集”按钮数据库中的数据记录显示在文本框中,如图9-9所示:

图9-9 数据库记录查询

10、在画面上添加四个按钮,按钮属性设置如下:

a 、按钮文本:第一条记录

“d起时”动画连接:SQLFirst( DeviceID );

b 、按钮文本:下一条记录

“d起时”动画连接:SQLNext( DeviceID );

c 、按钮文本:上一条记录

“d起时”动画连接:SQL Prev ( DeviceID );

d 、按钮文本:最后一条记录

“d起时”动画连接:SQL Last ( DeviceID );

上述命令语言的作用分别为查询数据中第一条记录、下一条记录、上一条记录和最后一条记录从而达到了数据查询的目的。

断开连接

1、在“数据库 *** 作画面”中添加一按钮,按钮文本为:断开数据库连接。

2、在按钮的d起事件中输入如下命令语言SQL Disconnect ( DeviceID); 如图9-10所示:

图9-10 断开数据库连接命令语言

在实际工程中将此命令写入:工程浏览器〉命令语言〉应用程序命令语言〉退出时中,即系统退出后断开与数据库的连接。

第三节 数据库查询控件 利用组态王提供的KV ADODBGrid Class 控件可方便地实现数据库查询工作, *** 作过程如下:

1、 单击工具箱中的“插入通用控件”工 具或选择菜单命令“编辑\插入通用控件”,则

d出控件对话框。在控件对话框内选择“KV ADODBGrid Class”选项,如图9-11所示:

图9-11 通用控件对话框

2、在画面中添加一KV ADODBGrid Class控件选中并双击控件,在d出的动画连接属性对话框中设置控件名称为:grid1。

第九讲 组态王与数据库连接 - 100 -

3、选中控件并单击鼠标右键,在d出的下拉菜单中执行“控件属性”命令d出属性对话框,如图9-12所示:

图9-12 控件属性对话框

单击窗口中的“浏览”按钮,在d出的数据源选择对话框中选择前面创建的mine 数据源,此时与此数据源连接的数据库中所有的表格显示在“表名称”的下拉框中,从中选择欲查询的数据库表格,(在这里我们选择前面建立的KingTable 表格),此表格中建立的所有字段将显示在“有效字段”中,利用

“格式”编辑框对字段进行编辑。

4、设置完毕后关闭此对话框,利用按钮的命令语言实现数据库查询和打印工作,设置如下:

按钮一:查询全部记录:

grid1FetchData() ;

grid1FetchEnd() ;

按钮二:条件查询:

long aa;

aa= grid1QueryDialog();

if (aa==1)

{

grid1FetchData();

grid1FetchEnd();

}

按钮三:打印控件:

grid1Print() ;

按钮四:保存:(将控件查询出的数据以CSV 为后缀名,保存到指定路径)

和选择您所查询的字段名称并可通过“标题”和

第九讲 组态王与数据库连接 - 101 -

grid1SaveToCSV (“d:\peixun\dataCSV”) ;

课后复习

1、阅读组态王软件帮助中的KV ADODBGrid Class控件帮助说明。

2、制作一个动态数据查询系统来查询数据记录。

数据是平台运营商的重要资产,可能提供API接口允许第三方有限度地使用,但是显然是为了增强自身的业务,与此目的抵触的行为都会受到约束。

收集数据主要是通过计算机和网络。凡是经过计算机处理的数据都很容易收集,比如浏览器里的搜索、点击、网上购物、……其他数据(比如气温、海水盐度、地震波)可以通过传感器转化成数字信号输入计算机。

收集到的数据一般要先经过整理,常用的软件:Tableau和Impure是功能比较全面的,Refine和Wrangler是比较纯粹的数据整理工具,Weka用于数据挖掘。

Hadoop是一个能够对大量数据进行分布式处理的软件框架。用于统计分析的R语言有个扩展R + Hadoop,可以在Hadoop集群上运行R代码。更具体的自己搜索吧。

可视化输出的工具很多。建议参考wikipedia的“数据可视化”条目。

Tableau、Impure都有可视化功能。R语言也可以绘图。

还有很多可以用来在网页上实现可视化输出的框架或者控件。

大致基于四种技术:Flash(Flex)或者JS(HTML5)或者Java或者ASPNET(Silverlight)

Flash的有Degrafa、BirdEye、Axiis、Open Flash Chart

JS的有Ajaxorg、Sencha Ext JS、Filament、jQchart、Flot、Sparklines、gRaphael、TufteGraph、Exhibit、PlotKit、ExplorerCanvas、MilkChart、Google Chart API、Protovis

Java的有Choosel、google-visualization-java、GWT Chronoscope、JFreeChart

ASPNET的有Telerik Charts、Visifire、Dundas Chart

目前我比较喜欢d3(Data-Driven Documents),图形种类丰富,有交互能力,你可以去d3jsorg看看,有很多种图形的demo。

以上就是关于四大开源数据库是哪些全部的内容,包括:四大开源数据库是哪些、组态王的历史数据查询,要怎么样才能最快的统计最大最小平均值报表行数列数不定,可以查任意时间的数据、如何将SQL数据映射到KV数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9551058.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存