推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的实时数据库设计

更新时间:2019-12-25 07:36:42 大小:1M 上传用户:songhuahua查看TA发布的资源 标签:python数据库 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

Berkeley Db作为一款优秀轻便的嵌入式数据库,在实际中得到了广泛的应用,其提供了针对多种语言的API函数供开发者调用。Python是一种面向对象的解释型计算机程序设计语言,其具有强大而丰富的各类应用库,能够与其他编译型语言(C、C++等)轻松的结合在一起,可作为大型工业软件的补充。本文利用Berkeley,Db的为Python提供的API函数,设计了一款实时数据库,该数据库底层基于Berkeley,Db,应用层利用C++语言,构建了一个C/S模式的实时数据库结构,通过TCP/IP协议实现了局域网内多个客户端数据库访问。


部分文件列表

文件名 大小
基于Python的实时数据库设计.pdf 1M

【关注B站账户领20积分】

部分页面预览

(完整内容请下载后查看)
第 24 卷 第 6 期  
2017 年 6 月  
仪器仪表用户  
EIC Vol.24  
2017 No.6  
INSTRUMENTATION  
基于Python的实时数据库设计  
韩 菲,金 磊,戴文浩,李艳飞,杨 树  
(南京工程学院 能源与动力工程学院,南京 211167)  
摘 要:Berkeley Db作为一款优秀轻便的嵌入式数据库,在实际中得到了广泛的应用,其提供了针对多种语言的API  
函数供开发者调用。Python是一种面向对象的解释型计算机程序设计语言,其具有强大而丰富的各类应用库,能够  
与其他编译型语言(C、C++等)轻松的结合在一起,可作为大型工业软件的补充。本文利用Berkeley,Db的为Py-  
thon提供的API函数,设计了一款实时数据库,该数据库底层基于Berkeley,Db,应用层利用C++语言,构建了一个  
C/S模式的实时数据库结构,通过TCP/IP协议实现了局域网内多个客户端数据库访问。  
关键词:实时数据库;eclipse平台;python语言;Berkeley Db  
DOI:10.3969/j.issn.1671-1041.2017.06.008  
文章编号:1671-1041(2017)06-0028-03  
中图分类号:TP319  
文献标志码:A  
A Real-time Database Design Based on Python  
Han Fei, Jin Lei, Dai Wenhao, Li Yanfei, Yang Shu  
(School of Energy and Power Engineering, Nanjing Institute of Technology,NanJing , 211167 , China)  
Abstract:As an excellent lightweight embedded database, Berkeley Db has been widely used in practice, which provides a vari-  
ety of languages for the API function for developers. Python is an object oriented interpretation of computer programming language,  
which has a strong and rich in all kinds of application libraries with other compiled languages (C, C++ and so on), thus can be used  
as a supplement for large industrial software. A real-time database is designed in this article using API provided by python based  
on Berkeley Db, which the application layer uses C++ language and construct a real time database structure of C/S mode, where  
the client database access in local area network through TCP/IP protocol.  
Key Words:real-time database;eclipse platform;python language;Berkeley Db  
了开发周期,提高了系统的稳定性和可靠性[3]。  
0 引言  
Python语言简洁、易读以及可扩展,在国内外逐渐得  
到了广泛应用,其应用库比较丰富,可与其它高级语言  
很容易的结合。Python目前的版本号已经到了3.6,本文设  
计的实时数据库基于的版本为2.4。作为目前的主流编程  
语言,Berkeley,Db也提供了基于Python的应用模块bsddb。  
该模块封装了Python语言操作BerkeleyDb的相关函数,在  
Python开发环境中导入bsddb就可以随时调用BerkeleyDb的  
相关函数来进行数据的存储与读取等操作。  
eXtreme DB和Berkeley Db作为两款应用最为广泛的实时  
数据库,在多个领域和行业得到了广泛应用,如:网络设  
备、消费电子、国防、航空航天、工业控制、轨道交通、  
能源电力、医疗设备、地理信息、汽车电子、金融实时交  
易、通信技术、互联网等,eXtremeDB在分散控制系统的现  
场控制站中得到了成功应用[1,2]  
与内存数据库eXtreme DB不同,Berkeley Db以源代码开  
放的形式为用户提供了支持多种语言的API函数供开发者使  
用,包括c、c++、c#、java等。开发者只需要在工程中包含  
响应的头文件,就可以和方便的调用API函数进行数据库的  
相关操作,特别是在嵌入式系统中,其应用成本比eXtreme  
DB要更低。Berkeley DB可用于管理和操作测点信息,缩短  
本文基于Python语言,底层通过Berkeley Db,开发了一  
套实时数据库系统。该数据库基于客户端/服务器模式,服  
务器端进行数据库的相关操作,客户端通过TCP/IP协议与  
服务器进行网络通讯,以向服务器发送已经定义好的命令  
字的形式,进行数据库的读写、删除等过程。  
收稿日期:2017-03-24  
基金项目:江苏省高等学校大学生实践创新训练计划项目(201611276035Y)。  
作者简介:韩菲(1997-),男,江苏徐州人,本科,研究方向:能源与动力工程(火电厂集控运行)。  
第6期  
韩 菲·基Python实时数据库设计  
29  
JDK没有安装的话,Eclipse是启动不起来的。下载完以后  
直接解压缩使用,不需要安装。如果Eclipse搭建python平  
台的话,需要下载一个pydev插件,这也是Eclipse方便的地  
方,一个平台利用插件构建不同的开发环境。插件安装好  
以后,在Eclipse环境下,能够显示如图1所示的Pydev包字  
样。  
1 基于Python的数据库操作  
BerkeleyDB是一个开源的文件数据库,介于关系数据  
库与内存数据库之间,使用方式与内存数据库类似,它提  
供的是一系列直接访问数据库的函数,而不是像关系数据  
库那样需要网络通讯、SQL解析等步骤。Berkeley DB是一个  
高性能的,嵌入数据库编程库和C语言、C++、Java、Perl、  
Python、PHP、TCL以及其他很多语言都有绑定。Berkeley  
DB可以保存任意类型的键/值对,而且可以为一个键保存多  
个数据。Berkeley,DB可以支持数千的并发线程同时操作数  
据库,支持最大256TB的数据,广泛用于各种操作系统,包  
括大多数Unix类操作系统和Windows操作系统以及实时操作  
系统。  
BerkeleyDb有和Python版本号相对应的bsddb模块,  
需要注意的是,选择的bsddb模块要和Python的版本号相  
一致。在安装的时候,该模块会自动识别Python的安装目  
录,并将文件安装该目录下,以便Python工程的调用。  
Python操作Berkeley Db最基本的包含以下步骤:  
1) 初始化数据库  
图1 Pydev插件安装成功标志  
Fig.1 Pydev installation success flag  
3 实时数据库设计  
adb = db.DB()  
本文设计的实时数据库属于客户端/服务器模式。服务  
器端运行了Berkeley,DB相关操作,而所有的数据命令都是  
按照预先设计好的命令字从客户端通过TCP/IP协议和服务  
器通讯,具体的框架图如图2所示。  
2) 打开数据源  
adb.open(,…,)  
3) 插入或修改数据库中的数据  
adb.put(,…,)  
4) 关闭数据库  
adb.close()  
当然这些只是最简单的功能实现,bsddb模块还提供了  
更为复杂的API函数供Python开发者调用。  
2 Python编译平台  
任何一个编程语言都需要一个编译执行环境,目前有  
很多Python开发工具,比如vim、Sublime Text等,本文采用  
Eclipse+pydev作为Python开发工具,利用Eclipse搭建python  
执行编译环境。Eclipse是一个开放源代码的、基于Java的可  
扩展开发平台。就其本身而言,它只是一个框架和一组服  
务,用于通过插件组件构建开发环境。它提供了一个用于  
开发插件的框架,使创建、集成和使用软件工具更容易[4]。  
Eclipse是著名的跨平台的自由集成开发环境(IDE)。  
最初主要用来Java语言开发,通过安装不同的插件Eclipse  
可以支持不同的计算机语言,比如C++和Python等开发工  
具。Eclipse的本身只是一个框架平台,但是众多插件的支  
持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的  
灵活性。Eclipse是一种开放源集成化开发平台,与其他开  
发平台相比,它最大的优点就是它的插件式体系结构,不  
同的用户可以根据需求开发出自己的工具组件,并和原有  
的工具实现无缝的连接,非常灵活,极大提高了开发工具  
的使用效率[5]。  
图2 实时数据库结构框图  
Fig.2 Real time database structure diagram  
客户端的应用通过C++来实现,利用SOCKET编程可  
实现相关网络功能。服务器端的网络通讯这块,Python  
提供了专门的网络通讯模块twisted。twisted是一个用  
python语言写的事件驱动的网络框架,可以用来实现  
阻塞、非阻塞,同步、异步网络访问,他支持很多种  
协议,包括UDP、TCP、TLS和其他应用层协议,比如  
HTTP、SMTP、NNTM、IRC、XMPP/Jabber等,本文设计  
的实时数据库主要在服务器端利用的twisted的TCP/UDP  
协议。利用python开发网络程序所用的语句远少于C++的  
SOCKET,且其调试也更为简洁、方便。  
以增加数据点为例,说明本文设计的实时数据库数据  
包格式,根据客户端和服务器端的功能码定义,客户端向  
Eclipse要安装好JAVA,JDK后才能运行,如果JAVA  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载