关系数据库范文

时间:2023-11-24 17:26:17

关系数据库

关系数据库篇1

关键词 GIS数据库;地图数据库;辩证关系

中图分类号P28 文献标识码A 文章编号 1674-6708(2014)111-0112-02

地理信息系统也就是我们简称的GIS,他具有管理、采集、描述、贮存以及分析等各个方面的地理分布与地球之间所有相关的数据信息。当前,信息社会随着不断的进步与发展,我们应用的GIS是作为集合了所有的地理空间以及和所有的信息统计相结合的系统,它也是作为信息传送的重要基础设施,并且得到了广泛的关注,是我国当前最为热门的一类课题研究。在其它国家,这种技术从上个世纪就已经得到了大力的发展,所以技术也相对成熟,成功率也相对较高。在我国这种技术发展的较晚,但势头却很猛烈,现阶段已经取得了一定的进展,也具有一定的突破,并且应用在相关的单位当中。然而与国外相比较仍然会存在一定的差距,在技术方面还需要不断的学习和研究,我们很多技术人员在近些年以来都在开发GIS的数据库系统,并且也取得了一定的成效,这也为以后的发展奠定了基石。

1 GIS数据库概念分析

1)在当前形势下,由于科学技术在不断的发展,尤其在计算机技术领域方面以及在系统信息,数据库等方面的实践研究都已经得到了很大程度的提升,并且也取得了一定的成功,这也就促使人们在应用地理信息时不会仅限在单一的产品中了,而会把计算机的有效管理应用在更为繁琐的地理信息当中,同时便将经济与社会当中的所有信息等方面进行有效的叠加,从而取得更大的价值,并且把效益放大化,获得良好的成绩,所以,这就产生了GIS的产业发展与相应的理论研究。然而,在这其中我们要清楚,GIS所应用的基础必须基于系统信息,而它的基础则是建立在相关联的数据库上。我们要清楚,GIS是和其他的系统相同的,都具有同样的特性,所以在设计上应该遵守相应的设计。由于GIS的技术服务不仅仅是地图产品,他还具有更多的实用功能,他可以对地理信息以及对其全面的整合都具有很大的帮助,比如在统计信息、检索、管理以及在分析方面等都比较突出;

2)我们在认识地理信息以及依赖和利用这方面的知识已经具有很长的历史了,而最为有效的应用就是相关的地图信息,因此,在进行研究时我们发现,地图历史要早于文字,并且他应用了地图的语言以及相关的数学法则的综合应用,把世界客观的一面通过地图加以呈现,但是从实质上我们看出,他是通过应用符号、公式化以及更为抽象的表现出客观世界,因此,通过地图表现,我们才可以更为真切的对生存环境做进一步的认识,同时也借助于了有效又其简单的工具,看到了客观世界,这种信息的传递以及认知能力是无法替代的,所以,不管我们未来会发展成怎样,都离不开地图的应用,依赖于他;

3)在GIS数据库当中,他所存储的一般都是地理信息,其中包括有属性图形数据等,并且具有不同的特征,比如有分辨率和数据的精准度,一种是描述尺度的,另外一种是描述数据的精准度的,对此,我们可以看出,在GIS数据库当中已经不再显示比例尺了,所以,他不具有这方面的意义的,也就是说,如果指地名时,只代表一种社会信息,并不代表其它意义,所以,也可以说是地理信息。而所谓的比例尺也只不过指的是地图数据库的一种特征。在一般情况下我们所说的比例尺,也就是地图数据库,并不是所说的GIS。通常GIS我们是把他当成一个信息仓库,所反映出的信息是更为真实和直接的,并不是在特定要求下所反映出来的。

2地图数据库

地图数据库是大不相同于GIS数据库的,他是带有一定的比例尺概念,并且建立了一个具有特定比例尺的仓库,如果需要应用更多的比例尺地图时,就要进行建立更多的数据库,如果条件允许,也可以建立几个分支数据库,方便管理。一般情况下,GIS可以管理地图数据库,我们也可以建立专门系统对其进行管理。在管理过程当中,对地图数据库的管理模式需要应用简单模式,也就是一幅图可以配备一个文件。此外,在地图数据库当中,会带有一定的图形属性表现,这主要包括有大小、文字、符号、图层、线型以及粗细等方面。而一般在GIS数据库当中是不会体现出这些属性的,他只是针对一些规范要求和图式来改变的,并不代表专一性,也没有体现出更多的属性。在地图数据库当中,产品的管理都是具有相应的标准模式的,都是电子产品,所以就会保留他们的各种本质特点,但是,怎样对其进行分层管理,对其进行有效的编辑,并且显示出必备的图层以及印刷颜色的要求以及对大小进行无限修改,拼接或裁切和量测等方面进行有效的调整。在其它方面,如果需要更新地图数据库时,也可以针对部分进行有调整的更新变化,从而减少电子地图的调整时间。在一般的情况下,地图数据库在更新方面会很慢,属下游产品,在更新方面还取决于GIS数据库,并不是取决它的上游数据源,他们之间的关系属于单向。由于在地图当中会存储大量的信息,而这些信息都是通过过人为进行修改和编辑的,所以我们所看到的这些信息都不是现实世界当中所反映出来的真实特点,更不是在GIS数据库当中的真实内容了。

3 结论

当前,信息社会随着不断的进步与发展,我们应用的GIS是作为集合了所有的地理空间以及和所有的信息统计相结合的系统,它也是作为信息传送的重要基础设施。在我国,由于建设GIS技术已经发展了多年,并且很多专家在这种技术方面也已经更为深入的进行了研究,并且已经取得了一定的进展,也具有一定的突破,并且应用在相关的单位当中。虽然与国外相比较仍然会存在一定的差距,还需要不断的学习和研究,我们很多科技人员在近些年以来都在开发GIS的数据库系统,并且也取得了一定的成效,这也为以后的成功发展奠定了很大的基础。

参考文献

[1]施一军.基于GIS技术建立地图数据库的构想和实现[J].测绘通报,2011(1).

[2]郭仁忠.关于空间信息的哲学思考[J].测绘学报,23(3).

[3]陈泽民.子地图的数据交换(CNSDTF)实现[J].现代测绘,26(3).

关系数据库篇2

(黄淮学院信息工程学院,驻马店 463000)

摘要: 本文从体系结构,内部函数,外部接口,索引算法等方面对SQLite进行了改进与优化;针对信息家电特点重新设计了实时数据库的存储方式,利用主动规则库来提高系统的实时性能,并基于SQLite对家庭网关进行了CGI程序设计。

关键词 : SQLite;家庭网关;嵌入式Linux;内存数据库

中图分类号:TP311.1 文献标识码:A 文章编号:1006-4311(2015)26-0069-03

作者简介:李宏升(1973-),男,河南新蔡人,讲师,工学硕士,主要从事互联网与嵌入式应用研究方向。

0 引言

在信息家电系统中,要用遥控器对各类信息家电主动控制,并随家庭环境的变化对信息家电进行自动控制,整个系统中存在着大量实时数据的采集和处理需求。目前对数据的处理通常采用基于数据库的方式,所以构建具有实时性能的嵌入式数据库系统是家庭网关设计环节必须要解决的问题。

结合国内外家庭网关研究的现状和进展,如何改进嵌入式实时数据库对信息家电状态信息的采集处理效率;如何优化数据库系统的资源占用,成为家庭网关系统设计的重要环节。

1 家庭网关的发展与演进

作为智能家居的大脑,家庭网关的作用至关重要。本文主要针对家庭网关数据库平台进行研究,选择合适的数据库架构,改进、移植相关软件,搭建网关的软件系统,设计网关系统中心主模块和web服务程序,实现嵌入式web 服务器的基本功能。

2 嵌入式开发环境的选择

要想保证系统能够真正地发挥自身功能,选择合适的操作系统至关重要。现阶段比较成熟的嵌入式系统主要有:Windows CE、Unix、Linux、QNX等。从家庭网关平台日后的系统升级、维护和功能扩展这些角度出发,本文中的家庭网关平台采用Linux2.6版本作为软件开发平台。

Linux2.6内核拥有更多的新特性:性能方面,采用了新的内核抢占式算法和新的I/O调度算法;稳定性方面,改进了内核加载和导出机制,提高了平台的稳定性和可靠性。设备支持方面,系统内核取消了对大型系统的限制,支持更多的控制器和设备;文件系统方面,扩展了文件的属性,保证了系统的信息安全,增强了PCI总线支持,对USB、蓝牙等外设总线进行功能扩展,满足多种短距离无线传输,方便家庭网关的内部组网。[1]

3 嵌入式网关系统的模块化设计

家庭网关软件系统采用模块化设计,包括系统定制、系统服务、设备模块、控制模块、显示模块、软件开发控制等。其中系统定制模块包括系统移植、内核定制、驱动开发等部分;系统服务模块由系统中心、可移植层、设备管理器、维护管理器、存储系统组成,如图1所示;设备模块主要包括视频模块、Zigbee模块、网络模块等;控制模块主要由web 服务器和各种应用服务器组成[2]。

4 SQLite数据库的改进与移植

4.1 数据库的选型

家庭网关中的嵌入式实时数据库是为了完成家电状态信息的管理而设计的小型数据库。应具备如下功能:支持多种数据类型;支持创建和删除多个表;支持对记录进行插入删除修改和查询操作;支持表的索引操作;支持触发操作,以满足信息家电之间的统一协作。

基于嵌入式linux系统的数据库非常多,常用的有以下几种:

Oracle Database Lite;DB2 Everyplace;Berkeley DB;Firebird;MySQL;SQLite。本文选取的SQLite数据库系统是一个简单易用、开放源码的轻量级嵌入式数据库管理系统。它具有以下优势:支持ACID事务;不需要安装配置、支持大部分SQL92;数据存储在单一的磁盘文件中;最大支持数据库到2TB;内核精小;数据操作速度快等。

4.2 SQLite的应用系统设计

SQLite系统的体系结构包括8个主要模块,如图2所示。

应用程序接口是SQLite的公共接口,通过main.c,table.c,legaey.c,vdbeapi.c程序来实现。词法分析器负责将原始的SQL语句按顺序传送到语法分析器里。语法分析器是一个基于上下文环境的输入语法解释器,采用非终结符析构器的概念,大大降低了出错的几率。通过调用代码生成器,可生成SQL查询所需的虚拟机代码。虚拟机是使用堆栈存储指令来实现处理代码生成器产生代码的虚拟引擎。B-树驱动器通过表和索引中的B-tree创建相应的数据库实例。B-tree模块在磁盘建立1024字节大小的页面缓存,进行读写缓冲,管理数据库文件的读/写锁定的权限。SQLite通过Linux系统的操作系统接口来打开和关闭、删除和创建文件,释放磁盘的缓冲。[3]

SQLite系统与Linux的外部接口的具体应用集成在一起,由程序调用相应的核心API函数去实现对数据的存取操作。Sqlite3_open()可以打开数据库文件,建立SQLite引擎;sqlite3_exec()对查询结果进行处理;sqlite3_close()用来关闭数据库文件,释放SQLite引擎。

4.3 对SQLite存储结构及索引机制的改进

由于SQLite所有数据都保存在设备的flash中,为了减少FO操作,延长Flash的寿命,对数据的操作都设计为在内存中完成,只在设备启动和修改保存数据时才进行FO操作。将SQLite改进为基于内存的嵌入式关系型数据库,提高数据操作效率,增强实时性能。

4.4 优化SQL数据在内存中的存储结构

在内存中采用区段式结构进行内存数据的组织管理,将存储空间逻辑地划分为多个分区。每个分区存储一个关系。区段式数据组织管理机制如图3所示。

为保证数据结构的紧凑性,内存数据库中的关系表按编号登记在分区表中。当有新数据段插入时,在分区表或段表中找到插入点,插入点后的所有表项都往后移动一项;而删除一个表项时,则删除点之后的所有表项都往前移动一项。

为节省内存占用,分区表和段表均采用动态数组结构,具体操作是:创建时都先申请适当大小的表项空间,数据的增加使得区段表不断增长,当表项空间不够时,再申请一定数量的空间。相反,数据的删除操作使得区段表不断缩短,当其尾部出现大量的空表项时,回收空表项占用的内存。[4]

4.5 优化内存数据库的索引机制

为适应智能家居中对实时数据频繁的查找和更新需求,进一步改进高效的索引机制加速操作的执行速度,需优化内存数据库的索引机制。SQLite系统采用是基于改进的Hybrid-HT的H-T索引机制,本文通过优化H-T机制中的哈希函数,通过对哈希表长的控制,分散了键值对记录指针和哈希地址的操作范围,从而高效率利用内存空间,提高查询、修改的操作速度。[5]

5 家庭网关数据库系统的设计

本文构造的嵌入式家庭网关,是以S3C440系列嵌入式微处理器为中心,uCLinux嵌入式操作系统作为家庭网关的底层,移植部分功能模块作为家庭网关硬件平台。信息家电通过IAIDL接口向家庭网关注册,每个家电的注册信息、参数和状态信息都存放在SQLite数据库中,如图4所示。

信息家电接口定义语言(IAIDL)是一种用来定义智能家居网络中信息家电的说明性语言,是对设备资源信息的描述。

以某公司生产的某信息空调为例,其IAIDL描述如下:

美的空调 is <空调>

{

enum type=(slow,normal,quick);

enum switch=(on,off);

attribute厂家=美的电器公司;

attribute功率=1.5P;

state温度状态Temp int(29:<20:the_min_value>,<40:the_max_value>);

state风速状态fan type(normal,normal);

function设置温度void ST Temp(in int st(20,40)):

function设置风速void ST Fan(in type ff);

function开关void On Off(in switch 00);

}

SQLite中家电信息表的生成

IAIDL定义了家庭网络中设备之间的互操作,详细描述信息家电的属性和功能。家庭网关利用编译器提取设备所发送的IAIDL描述内容进行解析,利用API函数将相关信息存储在SQLite数据表中。SQLite库中的信息表包含设备类型表、设备列表、设备属性表、设备接口表、事件通道表五种表格。由系统将设备类型号作为关键字,作为每类设备的唯一标识,如图5所示。[6]

编译器对设备IAIDL完成分析扫描后,通过API函数接口生成数据库文件。信息家电启动时,系统会在内存区域生成设备状态表的副本作为设备运行状态表。这些文件不会随着时间的变化而发生改变,真正实时变化是处于运行状态的设备状态信息。

实时监控系统按一定的扫描频率对内存中的设备运行状态表进行扫描,数据采集模块按照设定的频率对外部信号进行采集,经数据处理模块将数据存入内存中的设备运行状态表,获取最新的状态数据,完成对设备状态的实时更新和控制。

信息家电中的黑色家电是供人们娱乐休闲用的,如电视机、VCD、音响等。黑色家电的状态绝大多数情况下不会发生改变,所以设定所有的黑色家电都没有实时状态信息,在内存中不生成设备运行状态表,需要查询时可以从flash中读取。

而白色家电的状态会随着时间的变化而不断变化,数据的实时性要求很高,如空调、电冰箱等,是改善生活环境提高物质生活水平的。白色家电启动后在内存中生成设备运行状态表,可以随时监视到设备状态。

在系统中构建主动规则库对设备的实时状态进行监控,当设备状态变化时对家电进行自动控制,或设备状态异常进行报警,由ECA规则来实现。一旦信息家电出现异常情况,就要进行报警操作。信息家电在满足这些设定的事件时,系统能自动执行规定好的动作。[7]

在设备运行过程中,数据随着各种设备的运行不断产生,系统将新的状态数据写入内存,实时数据会转储为历史数据。为保证系统的稳定性,系统中的实时数据备份模块负责周期性将内存中设备状态表数据保存到Flash中。当设备运行故障时,可以从历史数据库中进行恢复。

6 家庭网关WEB服务器的设计

家庭网关中各种动态信息需要服务器实时创建,服务器程序与客户端浏览器有较强的交互能力。本文采用BOA+CGI应用程序构建WEB服务器。CGI是外部扩展应用程序与Web服务器交互的一个标准接口。Web服务器通过调用CGI程序实现和Web浏览器的交互,处理来自客户端浏览器输入的数据,从而完成客户端与服务器的交互,实现动态Web技术。[8]

WEB服务器从SQL查询结果中读取信息,同时把这些信息返回给客户端。CGI应用程序可以使用printf()函数将查询结果以HTML的形式输出到客户端,向客户端返回动态页面,实现用户WEB服务器与数据库SQLite的交互。

总之,整个家庭网关程序设计都以嵌入式数据库实时SQLite为核心,可有效满足家庭网关对信息家电实时数据管理要求。

7 结论

本文针对嵌入式设备的实时性特点,结合家庭网关的实际应用需求,对SQLite数据库系统的体系结构、内部函数、外部接口、索引算法等方面进行了改进与优化。提高了系统整体实时性能;完善了数据库的安全性;降低了系统资源占用,良好的匹配了现有ARM架构的家庭网关硬件体系,完全能满足家庭网关对信息家电实时数据管理的要求。

由于自身水平、设备条件有限,本文还有很多需进一步改进的地方,如事务处理的调度和执行策略方面;身份验证、数据加密等安全性研究方面,对报警库,CA库,ECA库的详细设计方面还有待于进一步的充实和完善。

参考文献:

[1]宋安,习勇,魏急波.基于μCLinux的NAT设备的设计与开发[J].电子工程师,2005-05-15.

[2]徐叶,袁敏,李国军.嵌入式Web服务器远程监控系统的设计与实现[J].计算机与现代化,2013-02-27.

[3]王俊,郭书军.嵌入式Web服务器的实现及其CGI应用[J]. 电子设计工程,2011-11-05.

[4]高建国,崔业勤.ARTs-EDB的内存数据存储管理[J].微计算机信息,2010-01-25.

[5]陈嘉.嵌入式主存数据库索引机制的研究与改进[D].湖南师范大学,2006:278-282.

[6]刘志东.基于嵌入式Web技术的远程射频识别系统的设计与实现[D].西北民族大学硕士论文,2012-04-01.

[7]贺永恒.基于IAIDL的信息家电体系结构研究[J].中国科技信息,2009(04):154-156.

关系数据库篇3

关键词:XML;DOM;关系数据库;转换

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)13-2988-03

The Data Transformation Methods for XML Documents to Relational Databases Based on DOM

ZHU Xing-tong

(School of Computer and Electronics Information, Guangdong University of Petrochemical Technology, Maoming 525000, China)

Abstract: With the popularity of Internet and the rapid development of Web technology, XML is quickly becoming the standards for data representation and exchange, the emergence of a large number of XML data in order to achieve fast query and efficient exchange of data, you need to transform from XML document to a relational database. This article describes the data transformation methods for XML documents to relational databases based on DOM.

Key words: XML; DOM; relational database; transform

1 XML技术

XML[1]是eXtensible Markup Language的缩写,称为可扩展标记语言。1998年2月W3C正式推出了XML(XML1.0)。XML的前身是SGML(Standard Generalized Markup Language,标准通用标记语言)。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,它可以标记任何一种事物。XML的跨平台型,它提供了一种不同的应用程序之间进行数据库交换的公共标准,是一种公共的交互平台。XML文件是由标记以及它所包含的内容构成的文本文件,这些标记可自由定义,其目的是使得XML文件能够很好地体现数据的结构和含义。W3C推出XML的主要目的是使得Internet网络上的数据相互交流更方便,让文件的内容更加显而易懂。

W3C XML1.0规范给出一种XML通用数据模型。XML文档定义为具有一个名字和根元素。一个XML文档有一棵树组成。一棵XML文档树是一个节点的集合,其中每个节点至少有一个父节点,并可以有多个有序的孩子节点。一个XML文档存在六种类型的节点:

1)声名节点。包括XML声明信息和DTD声明信息。

2)元素节点。每个元素节点有一个名字、一个父节点、一个属性节点集、一个有序的由元素节点、字符数据节点和注释节点组成的孩子集。其中根元素节点没有父元素,而且每个文档只有一个根元素节点,它引用整个XML文档资源。

3)字符数据节点。文档中的字符数据字符串,包括CDAT段。

4)属性节点。每个属性节点有一个元素父节点、一个属性名和一个属性值。多值属性例如IDREFS,分成多个节点。

5)注释节点。由一个该文注释组成。

6)处理指令节点。由一个目标和数据组成。

下面给出一个XML文档例子。

XML实用教程

范立锋

24

人民邮电出版社

智能计算

曾黄麟

28

重庆大学出版社

2 文档对象模型(DOM)

XML解析器是XML和应用程序之间的一个软件组织,为应用程序从XML文件中解析出所需要的数据,XML解析模型如图1所示。

文档对象模型(Document Object Model,DOM)提供了一种从其他的应用程序中调用或管理XML数据的方法。处理方法是将一个XML文档看作一个对象,通过固定的方法和属性对XML文档的不同标记进行读写。DOM规范的核心就是树模型,对于要解析的XML文档,解析器会把XML文档加载到内存中,在内存中为XML文件建立逻辑形式的树,上面XML文档例子对于的DOM树图2所示。DOM就是XML文档的一个结构化的视图,它将一个XML文档看作是一棵节点树,而其中的每一个节点代表一个可以与其进行交互的对象。树的节点是一个个的对象,通过操作这棵树和这些对象就可以完成对XML文档的操作,为处理文档的所有方面提供了一个完美的概念性框架。通过DOM解析器处理XML文件效率高,但是,十分消耗系统的资源,比较适合复杂但相对较小的文件。DOM解析器解析XML文件需要下列几个步骤:

1)建立一个DOM解析工厂;

2)通过解析工厂创建DOM解析器;

3)解析指定的XML文件;

4)根据标记名称获得node标记列表;

5)遍历每一个node节点;

6)获得标记内容。

3 XML文档到关系数据库的数据转换

XML文件和关系数据库有很多相似之处,关系数据库采用二维表方式存储数据,XML文件通过标记之间的关系来描述数据。关系数据库提供了对于大批量数据的有效存储管理和快速信息检索、查询的功能。XML文件是基于标记的文本文件,兼容性好,便于组织、解析和交换数据。某个系统获得一个XML文件后,可能需要将XML中的某些标记包含的文本内容转化为数据库中表的一条记录,以便发挥关系数据库在管理数据方面的优势;另一方面,一个应用系统可能需要将关系数据库表中的某些记录转化为一个XML文件,以便与其他系统交互数据,发挥XML文件在数据交换上的优势。

要把XML文件中数据写入关系数据库中,首先需要利用解析器解析出XML文件中的数据,再利用某种技术获得数据库的连接,把数据写进数据库。Sun 公司制定了 JAXP(Java API for XML Processing) 规范,用于在 Java 程序中以一种标准的方式对 XML 文档进行处理。将XML中的某些标记中的内容转化为数据库中表的一条记录,主要步骤如下[5-6]:

1)使用DOM解析器获取标记中的数据;

2)连接数据库,将获取的文本数据作为一条记录添加到数据库。

下面给出使用Java语言开发的基于DOM的XML文档到SQL Server2000数据库的数据转换的实例,实现把上面XML文档例子的数据写入SQL Server2000数据库中books表中,主要代码如下。

public class XMLToDatabase{

public static void main(String args[]){

Connection con=null;

Statement sql=null;

ResultSet rs=null;

try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(Exception e){

System.out.println(""+e);

}try { con=DriverManager.getConnection("jdbc:odbc:books","","");

sql=con.createStatement();

DocumentBuilderFactory factory=

DocumentBuilderFactory.newInstance();

factory.setIgnoringElementContentWhitespace(true); //忽略缩进空白

DocumentBuilder domPaser=factory.newDocumentBuilder();

Document document=domPaser.parse(new File("books.xml")) ;

Element root=document.getDocumentElement();

NodeList list1=root.getElementsByTagName("title");

NodeList list2=root.getElementsByTagName("author");

NodeList list3=root.getElementsByTagName("price");

NodeList list4=root.getElementsByTagName("publisher");

int size=list1.getLength();

String [] title=new String[30];

String [] author=new String[20];

double [] price=new double[4];

String [] publisher=new String[30];

for(int k=0;k

Node titleNode=list1.item(k);

Node authorNode=list2.item(k);

Node priceNode=list3.item(k);

Node publisherNode=list4.item(k);

title[k]= titleNode.getTextContent().trim();

author[k]=authorNode.getTextContent().trim();

String str=priceNode.getTextContent().trim();

price[k]=Double.parseDouble(str);

publisher[k]=publisherNode.getTextContent().trim();

String insertData="INSERT INTO books VALUES('"

+ title[k]+"','"+ author[k]+"','"+ price[k]+"',"+publisher[k]+")";

sql.executeUpdate(insertData);

}con.close();

}catch(Exception e){ System.out.println(e); }

}}

运行上面的程序将前面的XML文档例子中的数据转换到SQL Server2000数据库中,books表中的数据如图3所示。

4 结束语

关系数据库系统相当成熟,把XML文档数据转换到关系数据库中,可以发挥关系数据库在管理数据方面的优势.本文介绍的利用Java语言实现基于DOM的XML文档到SQL Server2000数据库的数据转换方法,经实例验证是正确可行的。利用Java语言与DOM相结合来解析XML文档,需要把XML文档全部加载到内存中。如果XML文档非常庞大,以及解析器耗尽内存,就会造成内存溢出异常。

参考文献:

[1] W3C.Extensible Markup Language (XML) 1.0 (Fifth Edition)[EB/OL]./TR/2008/REC-xml-20081126/.

[2] 朱珊娜,李书琴,安福定.XML文档到关系数据库的转换研究[J].计算机工程与设计,2008,29(21):5507-5509.

[3] 林耀进.基于实现XML文档与关系数据库转换的方法[J].计算机与现代化,2007(6):43-45.

[4] 蔚晓娟,冉静,李爱华,等.基于DOM的XML解析与应用[J].计算机技术与发展,2207,17(4):86-88.

[5] 范立锋.XML实用教程[M].北京:人民邮电出版社,2009.

[6] 哈罗德,刘文红.Java 语言与XML处理教程:SAX,DOM,JDOM,JAXP与TrAX指南[M].北京:电子工业出版社,2003.

关系数据库篇4

关键词:关系型 数据库 理论 实践

中图分类号:TP311 文献标识码:A 文章编号:1674-098X(2014)07(b)-0054-01

数据库设计(Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。而关系型数据库则是创建在关系模型基础上的数据库,是借助于集合代数等数学概念和方法来处理数据,使之能够有效地存储数据,以满足用户的各种应用需求。

1 数据库的重要性

数据库设计是计算机软件设计的重要内容,同时也是支撑计算机软件系统运行的关键,是软件设计的起点,起着决定性的质变作用,必须对数据库的设计高度重视起来。

(1)数据库设计最起码要占用整个项目开发的40%以上的时间。数据库是用户需求的直观反应和表现,需求的要求和变化都要一一体现在数据库的设计中。

(2)数据库设计不仅仅停留在页面demo的表面,还有模块交互、表之间的联系、中转数据等所需要的字段。因此,在数据库设计中不仅包括基本的数据存储,还包括逻辑数据的存储。

(3)数据库设计完成后,项目80%的设计开发在脑海中已经完成了。在设计每一个字段时,已经考虑好这些字段的运用,在表中如何体现。当数据库设计完成后,程序中所有的实现思路和实现方式已经考虑清楚了,否则会造成一系列不可预测的问题。

由此可见,数据库设计在整个软件开发过程中起到了举足轻重的作用。

2 关系型数据库设计的基本步骤

关系型数据库设计的过程可大体分为四个时期七个阶段。

(1)用户需求分析时期,主要是了解和分析用户对数据的功能需求和应用需求,是整个设计过程的基础,事关整个数据库应用系统设计的成败。

(2)数据库设计时期,主要是将用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的数据模型,可用实体―联系模型来表示,然后将其转换为已选好的关系型数据库管理系统RDBMS所支持的一组关系模式并为其选取一个适合应用环境的物理结构,包括存储结构和存取方法。

(3)数据库实现时期,包括数据库结构创建阶段和应用行为设计与实现阶段,是根据数据库的物理模型创建数据库、创建表、创建索引、创建聚簇等。

(4)数据库运行与维护阶时期,最后一个阶段则是数据库应用系统经过试运行后即可投入正式运行。

3 关系型数据库设计的几个原则

在进行关系型数据库的设计过程中,要遵循以下几个原则,借此可以提高数据库的存储效率、数据完整性和可扩展性。

3.1 命名规范化

在概念模型设计中,对于出现的实体、属性及相关表的结构要统一。例如在数据库设计中,指定学生Sstudent,专指本科生,相关的属性有:学号、姓名、性别、出生年月等,及每个属性的类型、长度、取值范围等都要进行确定,这样就能保证在命名时不会出现同名异义或异名同义、属性特征及结构冲突等问题。

3.2 数据的一致性和完整性

在关系型数据库中可以采用域完整性、实体完整性和参照完整性等约束条件来满足其数据的一致性和完整性,用check、default、null、主键和外键约束来实现。

3.3 数据冗余

数据库中的数据应尽可能地减少冗余,这就意味着重复数据应该减少到最少。例如:若一个部门职员的电话存储在不同的表中,假设该职员的电话号码发生变化时,冗余数据的存在就要求对多个表进行更新操作,若某个表不幸被忽略了,那么就会造成数据不一致的情况。所以在数据库设计中一定要尽可能存在少地冗余。

3.4 范式理论

在关系数据库设计时,一般是通过设计满足某一范式来获得一个好的数据库模式,通常认为3NF在性能、扩展性和数据完整性方面达到了最好的平衡,因此,一般数据库设计要求达到3NF,消除数据依赖中不合理的部分,最终实现使一个关系仅描述一个实体或者实体间一种联系的目的。

4 以具体实例设计的关系型数据库设计的实践

以大学教学管理软件开发中的数据库设计为例进行分析。

(1)重视系统的总体设计。总体设计不仅与软件项目顺利开展的进度有关,还与是否可以达到预期的项目开发目标有关。下面以大学教学管理数据库开发为例进行说明。

(2)首先对大学教学管理软件所涉及的数据进行详细的分析。按照上述的设计思想,共设计了如下表,例如,学生关系表、专业关系表等,然后创建视图和存储过程。

①学生关系表S:S#(学号),SNAME(姓名),SSEX(性别),SBIRTHIN(出生年月)等字段,主键为S#(学号)。②专业关系表SS:SCODE#(专业代码),SSNAME(专业名称)等字段,主键为SCODE#(专业代码)。③课程关系表C:C#(课程号),CNAME(课程名称),CLASSH(学时)等字段,主键为C#(课程号)。④设置关系表CS:SCODE#(专业代码),C#(课程号)等字段,主键为SCODE#(专业代码),C#(课程号)。⑤学习关系表SC:S#(学号),C#(课程号),GRADE(分数)等字段,主键为S#(学号),C#(课程号)。⑥教师关系表T:T#(教工号),TNAME(姓名),TSEX(性别)等字段,主键为T#(教工号)。⑦讲授关系表TEACH:T#(教工号),C#(课程号)等字段,主键为TEACH:T#(教工号),C#(课程号)。

数据库中的每一个表都建立了主键,部分表为了满足查询和排序的需要,还需要建立索引。例如查询学生信息时,除了按学号查询,有时还会用到按照班级查询。因此,在学生表中除了对主键“学号”建立主索引外,也对“班级”建立了次索引。同时,在数据库中,数据按照主键和外键的关系,建立起了关系。另外,根据查询需要,还建立了教学安排视图、课程成绩视图和学生平均成绩视图及相关的存储过程。

5 结语

通过前面的分析和研究,数据库的设计是非常重要的,为之后整个系统的稳定可靠运行提供了稳固的后台保障。数据库必须与应用程序的业务需求相辅相成,在设计过程中要严格遵循关系数据库的设计步骤,并灵活运用上述原则。

参考文献

[1] 潘博.计算机软件数据库设计的重要性以及原则研究[J].计算机光盘软件与应用,2013(8).

[2] 王晓军.数据库设计的理论和实践在软件开发中的作用[J].科技与生活,2012 (8).

[3] 孟志伟.管理系统的数据库设计[J].信息与电脑,2009(7).

[4] 李长海,郭颖,董广辉.浅析数据库设计[J].数字技术与应用,2010(8).

关系数据库篇5

关键词:对象关系数据库;面向对象;AMOS II

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)34-2016-02

A New Generation of Object-Relational Database: AMOSII

LIU Yan-hong1,2

(1.Nanjing Institute of Industry Technology Information Engineering, Nanjing 210046, China; 2.Nanjing University of Aeronautics and AstronauticsCollege of Information Science and Technology,Nanjing210016,China)

Abstract: Object-relational database can be combined with a single relational database system and a single object-oriented database system. It overcomes their limitations and is a new direction for research and discussion. AMOS II is the latest generation of object-relational database and has powerful object-oriented features. It provides the features and functions that a large number of next-generation database should have. The case of AMOS II fully reflects the advanced nature of the relational database.

Key words: object-relational database; object oriented; AMOS II

1 引言

随着数据库技术的发展,原有的数据库系统很难适应新的应用领域中的复杂对象和这些对象的复杂行为的需求。新的应用需求推动了数据库技术的研究, 其中最重要的研究方向之一就是使用一种与人们认识客观事物的过程一致的方法, 这就是面向对象的方法。这种方法大大提高软件开发的效率。对象关系数据库是面向对象技术与数据库技术相结合的产物。

2 对象-关系数据库

对象关系数据库兼有关系数据库和面向对象的数据库两方面的特征。即它除了具有原来关系数据库的种种特点外,还应该提供以下特点:

1) 允许用户扩充基本数据类型。即允许用户根据应用需求自己定义数据类型、函数和操作符,而且一经定义,这些新的数据类型、函数和操作符将存放在数据库管理系统核心中,可供所有用户公用。

2) 能够在SQL中支持复杂对象。由多种基本类型或用户定义的类型构成的对象。能够支持子类对超类的各种特性的继承,支持数据继承和函数继承,支持多重继承,支持函数重载。能够提供功能强大的通用规则系统,而且规则系统与其他的对象-关系能力是集成为一体的。

3 新一代对象关系数据库的优势

3.1 传统的关系数据库的缺陷

传统的关系数据库局限性为:

1) 面向机器的语法数据结构,数据模型单一,数据类型简单、固定。

2) 不能依据某一类型的数据类型来扩展数据类型。

3) 结构与行为完全分离。

4) 存储管理的对象有限,事物处理能力较差。

3.2 新一代对象关系数据库的特征和功能

1) 数据库应支持复杂的数据类型,并能存储和处理复杂对象。还要具备支持用户自定类型和可扩展能力。

2) 数据库必须对其它系统开放。

3) 系统必须具有可移植性,可连接性,可扩展性和可互操作性。实现程序设计语言和数据库语言的无缝的集成。

4 AMOS II应用案例分析

AMOS II是最新一代的对象关系数据库,它充分体现了对象关系数据库的强大功能。

4.1 学生课程成绩查询案例

有若干学生,学生信息包括学号,姓名,班级。有若干选修课程,课程信息包括课程号,课程名,成绩。实现功能:1、通过查询语句,可以查看所有的学生信息和课程信息。2、输入学生信息如姓名,可以查看到他所选课程的相关内容。3、输入课程名称可以查看到选这门课的学生姓名。4、输入学生姓名,可以统计出该生选的所有课程名称和课程数。

4.2 案例设计与分析

1) AMOS II具有面向对象数据库的特点。

在OODB中, 用类来描述对象的结构特征和行为特征。它有下面的定义形式:

class < 类名> [ (参数表) ]properties

{类的特征}

在本案例中课程和学生类设计如下:

create type kecheng properties(

sid charstring,//课程号//

sname charstring,//课程名//

scoreinteger //期末成绩//

);

create type student properties(

tidcharstring,//学生号//

tname charstring,//学生姓名//

banjicharstring //班级//

);

创建kecheng的对象并且赋值用以下命令:

create kecheng(sid, sname,score) instances

:s1("01","Chinese",91),:s2("02","English",90),

…;

创建student的对象并且赋值用以下命令:

create student (tid, tname, banji) instances

:t1("08001","zhangsan","3ban"),

:t2("08002","lisi", "4ban"),

…;

函数设计举例如下:

create function o_derect(student nonkey)-> as stored;

//输入参数student类,返回该学生所选课程的元组//

create function sname(kecheng nonkey)->charstring as stored;

create function tname(student nonkey)->charstring as stored;

create function tid(student nonkey)->charstring as stored;

…;

以上定义的源代码保存在文件lyh.amosql中。AMOSQL类似于SQL语言。例如用下面命令对学生信息进行查询:

select tin (x), tname(x), from student (x);

在AMOS II中运行并得出结果,如图1。

这些类、对象、属性和函数的设计,充分体现了面向对象技术的特点。

2) AMOS II具有强大的可扩充功能。

AMOS II提供的Java函数的接口。在AMOS II中可以调用用户自定义的Java函数。

本案例用Java语言定义函数tongji()并保存在名为lyh.java的文件中。该函数的功能是接受输入参数为学生名,输出该学生所选择的课程名并统计出课程个数。

为了能在AMOS II调用该函数,需要在javademo.osql文件中添加下面的语句:

create function tongji(charstring)->charstring as foreign "JAVA:lyh/tongji";

运行后如图2所示。

这充分体现了AMOS II允许用户根据应用需求自己定义数据类型、函数,具有强大的可扩展功能。

5 总结和展望

综上,对象―关系数据库是面向对象技术与数据库技术相结合的产物。AMOS II是最新的一代对象关系数据库,具有强大的面向对象的功能。从学生课程成绩查询案例,可以看到AMOS II具有面向对象数据库的特点,允许用户根据应用需求自己定义数据类型、函数和操作符,具有强大的可扩展功能,体现了对象关系数据库的先进性。本文用具体案例介绍了在AMOS II中如何定义类,对象和函数,和如何调用Java自定义函数,实现统计函数的功能。

对象―关系数据库技术还处于研究发展阶段,在很多方面它还面临很多的挑战,例如对象―关系数据库还可以从面向对象数据库那里吸收养分和研究成果,如路径索引、对象聚集等。相信对象―关系数据库有着美好的发展前景。

参考文献:

[1] 赵志升,许素文,杨小姝.对象――关系数据库管理系统及其特性与实现[J].电脑开发与应用,2002,15(8):47-48.

[2] 王治.对象―关系数据库技术及其发展[J].九江师专学报:自然科学版,2003,22(5):86-88.

[3] 郭小荟.对象关系数据库系统实现方法的研究[J].2001,1(2):29-32.

关系数据库篇6

关键词:数据库建模;统一建模语言;概念模型;关系数据模型;映射

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)32-1025-02

A Method for Relational Database Modeling Based on UML

LU Ying, LIN Yin

(Information Science and Engineering School,Jiangsu Polytechnic University,Changzhou,213164, China)

Abstract: Database modeling plays an important role in the process of software development. A database concept model Based on UML(Unified Modeling Language) is presented according to object oriented Analysis model. The mapping rules between database concept model and relation data model is discussed.

Key words: database modeling; unified modeling language; concept model; relational data model; mapping

1 引言

在数据密集型软件系统的开发过程中,数据库设计占据着非常重要的地位。20世纪90年代至今,面向对象技术在软件工程领域得到了广泛应用,统一建模语言UML(Unified Modeling Language)成为软件系统分析和设计中的主要建模工具。[1]当今数据库的设计和实现仍然是以关系模型为基础,常用的数据建模工具与UML完全不同,这些数据建模工具针对数据实体本身进行描述、忽略了软件系统的其他业务因素和需求对数据的影响。[2]这种情况使得软件分析设计团队与数据库设计团队之间的关注点在项目开发之初就出现偏差,导致团队之间的通信和协同工作产生困难,系统的应用程序和数据库之间容易产生不一致性,最终会影响整个软件系统的质量。

针对上述问题,提出了一个基于UML的关系数据库建模框架。在整个软件项目开发阶段,软件分析设计团队与数据库设计团队使用相同的建模工具,解决了彼此之间通信和沟通不畅问题,既避免了上述问题带来的弊端、也从一定程度上提高了整个软件项目的开发效率。

UML是一种建模语言、一种标准的表示方法。UML共定义了9种不同的图,把它们有机地结合起来可以描述一个软件系统的整体特征。UML利用通用机制为图附加了一些额外的信息,提供了适当的扩展机制,增加了使用上的灵活性。[3]使用UML进行数据库建模就是利用了UML的可扩展机制和可定制特点。

2 关系数据库建模方法及步骤

2.1 数据库概念模型的设计

数据库设计的首要任务是概念模型的设计。概念模型不仅能表现设计人员的思想,而且应简单清晰,便于用户理解。最常用的概念模型表示方法是实体―联系方法,该方法用E-R图描述现实世界的数据及数据之间的联系,与系统分析和设计阶段采用的建模工具UML没有直接联系,不利于系统分析设计人员和数据库设计人员之间的协同工作。[4]如果从UML所表示的系统需求分析模型出发,直接将系统分析阶段得到的对象模型映射成数据库的概念模型,就可以较好的实现数据库设计与系统分析设计之间的一致和同步。

用面向对象方法和UML进行需求分析,通常建立三种形式的模型,它们分别是功能模型、对象模型和动态模型。这三种模型从三个不同但又密切相关的角度描述目标系统,从不同侧面反映了系统的实质性内容,综合起来则全面地反映了对目标系统的完整需求。对象模型表示静态的、结构化的系统的“数据”性质,它是对模拟客观世界实体的对象以及对象彼此间的关系的映射。通常使用UML提供的类图来表示对象模型,类图由类(对象)及类(对象)之间的关系组成。[5]

数据库设计以系统的需求分析结果为前提,可以将需求分析阶段得到的对象模型即类图直接映射成数据库的概念模型。下面以一个简化的教学管理系统为例,说明从UML类图出发映射得到数据库概念模型的方法。

在表示教学管理系统的对象模型(类图)中,包括的主要内容有:1)学校分为若干系部、各个系部由特定的教师组成;2)课程分别由不同的系部开设,学生与课程之间存在选课关系;3)学生分为本科生和研究生两类。

将类图直接映射成相应数据库的概念模型如图1所示。具体的映射和表示方法是,将类图中的每个类(对象)映射为一个数据实体,数据实体的表示符号与类(对象)表示符号有细微差别,数据实体中只包括实体名称和描述实体静态特征的属性两部分内容。此外为了将数据库概念模型中的实体表示符号与对象模型中的类(对象)表示符号区分开,在每个实体名称的右侧附加了一个数据库模型标志。

在图1所表示的数据库概念模型中,将相应类图中类(对象)之间的关系直接映射成为数据实体之间的关系。系部实体与教师实体之间存在一对多的聚集关系;系部与课程之间存在一对多的开课关联。课程与学生之间存在多对多的选课关联,并将该关联表示成一个关联实体,它沿用了UML类图中关联类的含义,表示两个实体之间复杂的多对多关联及其关联的性质(附加信息)。有些情况下,在系统分析的对象模型中,关联类是隐含的,在将对象模型映射成数据库概念模型的过程中,建议将两个类(对象)之间的多对多关联映射成两个实体间带显式关联实体的多对多关联类型,以方便进一步将概念模型映射为关系数据模型。图1中,学生实体与研究生、本科生两个实体之间的继承关系是由相应类图直接映射得到的。

对于每个独立主实体(非子类实体、非关联实体),应该标出相应的主键属性,在图1中以下划线标示。

2.2概念模型向关系模型的映射方法

关系数据库设计中,概念模型建立之后,需要将数据库的概念结构转换成关系数据库的逻辑结构表示、即基本表结构形式。在概念模型向关系模型的转换过程中,仍然沿用传统的关系数据库建模思想,但基本表结构的表示方法是基于UML的符号。下面从图1所示的例子出发,阐述概念模型到基本表结构的转换规则。

1)实体的转换

对于概念模型中的独立主实体,可将每一个实体转换为一个关系(即基本表),实体的属性即为关系的属性,实体的主键即为关系的主键。

2)对于实体间的关联和聚集关系,可根据不同情况分别转换

①对于一对一的关联或聚集关系,可在相关联的两个实体的任一实体所对应的关系中增加新属性,新属性为另一实体所对应的主键。

②对于一对多的关联或聚集关系,可在多端实体所对应的关系中增加新属性,新属性为一端实体所对应的主键。

③对于多对多的关联或聚集关系,将关联实体转换为一个独立的关系(即基本表),关系的属性由两端实体的主键和关联实体本身的属性组合而成;关系的主键由两端实体所对应的主键组合而成。

对于图1所表示的概念模型,按照上述转换规则转换得到的一部分基本关系(基本表)如图2所示,其中PK表示主键、FK表示外键。

3)对于实体之间的继承关系有两种转换方法

一种方法称为“子类实体上卷”法,将整个继承结构涉及的实体映射成一个基本关系。具体方法是,首先以父类实体为基础映射成一个基本表(可以称其为父表),然后逐渐将相关子类实体中的属性添加到父表中,父类实体的主键即为该基本表的主键。图3所示的学生表就是通过“子类实体上卷”法得到的结果,为了体现出学生的分类关系,在学生表中增加了一个属性“学生类别”,其取值只能是“研究生”或“本科生”。图2和图3所表示的表结构综合起来,就是由图1所示的概念模型映射得到的关系数据库的结构,即教学管理数据库的基本表结构。这种方法可以减少基本表的数量,便于数据管理和提高查询效率;缺点是在基本表的使用过程中,某些元组的部分属性值为空,降低了数据库的存储效率。

概念模型中继承关系的另一种映射方法称为“父类实体下卷”法,将每个子类实体转换为一个基本表,可以称为子表;并把父类实体中的属性添加到各个子表中,即子表的属性由其父类实体属性和自身属性两部分组成,父类实体的主键即为子表的主键。图4所示的研究生表和本科生表是根据“父类实体下卷”法映射得到的结果。图2和图4综合起来,同样可以表示由图1所示的概念模型映射得到的关系数据库的完整结构,即教学管理数据库的基本表结构。这种方法将一个继承结构映射成多个基本表,在数据库使用过程中会涉及多个表的访问,但便于将不同的信息分类管理,也解决了“子类实体上卷”法中的浪费存储空间问题。

3 结束语

基于UML的关系数据库建模方法,将通用建模语言UML引入数据库设计过程,直接从需求分析阶段得到的对象模型映射出数据库概念模型,从而打破了软件系统分析设计团队和数据库设计团队之间的分隔,便于团队之间通过协同工作来定义软件系统的业务活动。在软件项目开发和使用过程中经常会发生需求变化,上述提出的关系数据库建模方法也便于数据库能够根据应用系统的改进而进行及时修改和完善。

参考文献:

[1] 刁成嘉.UML系统建模与分析设计[M].北京:机械工业出版社,2007:9-12.

[2] Naiburg E J, Maksimchuk R A..UML数据库设计应用[M].陈立军,郭旭,译.北京:人民邮电出版社,2002:6-8.

[3] 兰博,雅各布森,布切.UML参考手册[M].姚淑珍,译.北京:机械工业出版社,2001:17-29.

[4] Jeffrey D. Ullman/Jennifer Widom.A First Course In Database Systems(影印版)[M].北京:清华大学出版社,1998:40-51.

关系数据库篇7

1 数据库系统表

为了维护数据库系统的正常运转,数据库管理系统中设计了一系列的系统数据表,用于跟踪数据库的总体信息。当用户建立数据库及数据表时,系统表将自动记录下相关信息。这里仅介绍SSA数据库中与实现多表关联查询技术相关的三个系统表及其主要列:

表pbcattbl:存储数据库中所有用户表的信息。列pbt_tnam存放表名。

表pbcatcol:存储所有用户表的列信息。列pbc_tnam 存放表名;pbc_cnam存放列名。

表sysforeignkeys:存储具有关联性的两个表的相关信息。列foreign_tname存放外表表名;primary_tname存放主表表名;columns存放两表关联的关键字。

2 多表关联查询算法

①用表pbcattbl,在数据窗口(简称DW)中显示所有用户表的表名;

②用户在DW中进行多表选择,系统通过表Sysforeignkeys判断所选表的关联性。如非关联,给出提示并返回②,否则③;

③动态地创建相应数量的DW,利用表pbcatcol,在每个DW中显示其中一张所选表的所有列名;

④用户根据实际需求,从这些DW中选择任意多个列名,系统自动生成一张由这些列组成的新表;

⑤对生成的新关联表进行多条件的组合查询。

3 关键代码的实现

3.1 表名显示

用select pbt_tnam from pbcattbl从系统表中选出所有表名,并显示在DW中。

3.2 判断所选表的关联性

定义变量

integer sum //选中表的个数

integer num //关联表的个数

integer ipos //字段起始位

string lst[] //关联表名

string pm[] //存放关联等式

string col[] //读取关联信息

if sum>1 then num=1

for i=1 to sum

for j=1 to i-1

k=k+1

select columns into:col[k] from sysforeignkeys where foreign_tname=:lst[j] and primary_tname=:lst[i];

if isnull(col[k]) or col[k]= '' then

select columns into: col[k] from sysforeignkeys where foreign_tname=:lst[i] and primary_tname=:lst[j];

if isnull(col[k]) or col[k]= '' then pm[k]= ''

else

ipos=pos(col[k], ' IS ')

pm[k]=lst[i]+'.'+left(col[k],ipos)+'='+lst[j]+'.'+right(col[k],len(col[k])-ipos-3)

num=num+1

end if

else

ipos=pos(col[k], ' IS ')

pm[k]=lst[j]+'.'+left(col[k],ipos)+'='+lst[i]+'.'+right(col[k],len(col[k]-ipos-3)

num=num+1

end if

next

next

if num

messagebox("warning","所选表不关联,请重选")

return

end if

end if

3.3 列名显示

通过select pbc_cnam from pbcatcol where pbc_tnam= lst[i](所选表名)来实现。

3.4 关联表的组合查询

参考通用组合查询算法[1],可实现=、> 、< 、=、like等多重组合查询。

4 结束语

本文提出的查询方法,可直接从数据库系统表中读取信息,而系统表由数据库服务器自动维护,因此提高了应用程序的运行性能。对于不同的数据库系统,只需修改程序中系统表的表列名称即可,程序具有通用性。

参考文献

[1] 严怀成,王敏.基于PowerBuilder的通用查询的设计与实现.微机发展.2005.6:124-126.

[2] 郭宝利. PowerBuilder 8.0完全解析.电子工业出版社,2002.

关系数据库篇8

数据库营销作为本世纪90年代一种方兴未艾的营销形式,包含了关系营销的观念,着重于给顾客提供全方位的持续的服务,从而和市场建立长期稳定的关系;同时和现代信息技术、网络技术相结合,利用计算机信息管理系统(MIS)来充分的建设和利用客户数据库,而且,强大而完善的数据库是未来网络营销和电子商务的基础。 

1.未来的顾客服务模式与CRM的运用

顾客服务模式的变化 

忠诚、持久而稳定的顾客群成为企业最宝贵的资源,国外,93%的公司首席执行官认为"顾客资源"是企业成功和更具有竞争力的最重要的因素。企业营销的关键是争取和留住顾客,满足消费者个性化地需求,和顾客建立互相信任的稳定的双向沟通的互动关系。传统的只是单向被动的适应消费者的营销方式已经落在时代变化的后面,这种慢一拍的市场跟进不仅不能享受到高额利润,在这个快速变化的社会往往对企业而言还可能是致命的。现代的企业各个部门将被高度整合起来,以顾客为中心工作,追求顾客的终身价值。 

顾客关系管理(CRM)呼之欲出 

实现顾客的忠诚度,满足顾客随时变化的需求,相应的是企业管理的重心正从内部向外部扩展,从生产制造向顾客关系管理转移:ERP—SCM—CRM……顾客关系管理( Customer Relationship Management CRM)。据2001年2月27日中国经营报消息,上海罗氏制药公司和康柏合作,投资400万启动大中华地区制药行业真正意义上的客户管理系统(CRM),由Sibel公司提供软件解决方案,上海罗氏希望在3、4年内通过CRM的建设,彻底改变与客户打交道的方式。 

CRM作为新一代的顾客资源管理系统,把企业的销售、市场和服务等部门整合起来,有效地把各个渠道传来的客户信息集中在一个数据库里。公司各个部门之间共享这同一个客户数据库,发生在这个客户上的各种接触,无论是他何时索要过公司简介,还是他是否曾经购买过产品都记录在案,每个与这一顾客打交道的部门经手人可以很轻易地查询到这些数据,让这个顾客得到整体的关怀。从中我们也可发现,CRM系统的基础是一个数据完备、功能完善的客户数据库在营销中的整体功能发挥。 

 

2. 数据库营销的实际应用

数据库营销,是在企业通过收集和积累消费者大量的信息,经过处理后预测消费者有多大可能去购买某种产品,以及利用这些信息给产品以精确定位,有针对性地制作营销信息达到说服消费者去购买产品地目的。通过数据库的建立和分析,各个部门都对顾客的资料有详细全面的了解,可以给予顾客更加个性化的服务支持和营销设计,使“一对一的顾客关系管理”成为可能。数据库营销是一个“信息双向交流”的体系,它为每一位目标顾客提供了及时作出反馈的机会,并且这种反馈是可测定和度量的。 

数据库营销在西方发达国家的企业里已相当普及,在美国,1994年Donnelley Marketing公司的调查显示,56%的零售商和制造商有营销数据库,10%的零售商和制造商正在计划建设营销数据库,85%的零售商和制造商认为在本世纪末,他们将需要一个强大的营销数据库来支持他们的竞争实力。从全球来看,数据库直销作为市场营销的一种形式,正越来越受到企业管理者的青睐,在维系顾客、提高销售额中扮演着越来越重要的作用。 

宏观功能——市场预测和实时反应 

客户数据库的各种原始数据,可以利用“数据挖掘技术”和“智能分析”在潜在的数据中发现赢利机会。基于顾客年龄、性别、人口统计数据和其它类似因素,对顾客购买某一具体货物可能性作出预测;能够根据数据库中顾客信息特征有针对性的判定营销策略,促销手段,提高营销效率,帮助公司决定制造适销的产品以及使产品制定合适的价格;可以以所有可能的方式研究数据,按地区、国家、顾客大小、产品、销售人员、甚至按邮编,从而比较出不同市场销售业绩,找出数字背后的原因,挖掘出市场潜力。企业产品质量上或者功能的反馈信息首先通过市场、销售、服务等一线人员从面对面的顾客口中得知,把有关的信息整理好以后,输入数据库,定期对市场上的顾客信息进行分析,提出报告,帮助产品在工艺或功能上的改善和完美,产品开发部门作出前瞻性的研究和开发;管理人员可以根据市场上的实时信息随时调整生产和原料的采购,或者调整生产产品的品种,最大限度的减少库存,做到“适时性生产”(JIT)。 

微观功能——分析每位顾客的赢利率 

事实上,对于一个企业来说,真正给企业带来丰厚利润的顾客只占所有顾客中的20%,他们是企业的最佳顾客,赢利率是最高的,对这些顾客,企业应该提供特别的服务、折扣或奖励,并要保持足够的警惕,因为竞争对手也是瞄准这些顾客发动竞争攻击的。然而绝大多数的企业的顾客战略只是获取顾客,很少花精力去辨别和保护他们的最佳顾客,同时去除不良顾客;他们也很少花精力考虑到竞争者手中去策反顾客,增加产品和服务,来提高赢利率。利用企业数据库中的详细资料我们能够深入到信息的微观程度,加强顾客区分的统计技术,计算每位顾客的赢利率,然后去抢夺竞争者的最佳顾客,保护好自己的最佳顾客,培养自己极具潜力的顾客,驱逐自己最差的顾客。通用电气公司的消费者数据库能显示每个顾客的各种详细资料,保存了每次的交易记录。他们可以根据消费者购买公司家用电器的历史,来判断谁对公司和新式录象机感兴趣,能确认谁是公司的大买主,并给他们送上价值30美圆的小礼物,以换取他们对公司产生下一次的购买。 

数据库营销是CRM的基础 

CRM系统主要包括销售自动化(Sales Force Automation, SFA)、营销管理、客户服务和支持、客户呼叫中心、网络功能几个模块。它的实质是充分发挥市场、销售、服务三大部门的作用,并且使三个部门能充分共享顾客信息,打破各部门之间的信息堡垒的封锁,从而使各个部门以一个企业的整体形象出现在顾客面前。在企业前端CRM系统背后,其实就是一个功能强大的顾客服务数据库,存储了顾客的各种资料及交易行为,并能利用各种数学分析模型对这些数据进行深层次挖掘,对顾客的价值和赢利率进行分析。可见,在实施CRM过程中,将企业原有的顾客历史数据整理有序化,输入数据库,搭建好一个完整的数据库是基础(关系见图)。

3. 网络时代CRM中的数据库营销

营销数据库和CRM把企业、经销商和维修站连成一体 

在传统的企业结构中,要真正和顾客建立起持续、友好的个性化联系并不容易。原因很简单——技术上无法达到,观念上无法想像。比如说售后维修有时间地点的限制,难于提供24小时的即时服务;或者某个顾客的购买喜好只为单个销售人员所知,到了其他推广或售后服务人员那里就可能无法获得最适意的选择;一些基本顾客信息在不同部门的处理中需要不断重复,甚至发生数据丢失。更重要的是,销售人员往往仅从完成销售定额的角度出发,在销售过程中缺乏和后台支持人员的沟通,让顾客在购买之后才发现服务和产品性能并不象当初销售人员的描述那样,因而有上当受骗之感。这些常见的“企业病”都是由于企业的运作流程没有按照“以顾客为中心”的宗旨去设计实施,而是各部门从各部门自身的利益出发,多头出击的结果,在短期内即使可以赢得定单,却损害了与顾客的长期合作关系,最后仍然要由企业花费大量的时间和金钱来修补。 

企业和经销商、特约维修站之间的联系,是一个“一荣俱荣,一损俱损”的共同体,这三者之间的维系的途径是什么呢?笔者觉得恰恰是顾客服务系统CRM,系统的前台是CRM,后台就是营销数据库。上海通用公司在2000年安装了由IBM公司提供的CRM系统,它把企业的客户服务部、经销商和特约维修站联成一体,当一位顾客反映所购的轿车有问题投诉到公司的客户服务部门时,工作人员马上能根据顾客的名字从数据库中调出相关资料,其购买的是什么型号、购买时间、所售的零售商、曾有的维修记录、当时由谁负责、判断出顾客反映问题的所属的质量类型,从而马上通过系统通知离顾客最近的维修站,同时进行跟踪记录,何时解决问题,顾客的满意度等,大大加快了对顾客投诉的响应时间,同时,能够节省大量的人力资源,把他们从日常数据采集转化为能够增殖的顾客服务。 

假如没有这个系统,企业和各维修站、经销商是隔离的,同样一位顾客的投诉,不可能马上对问题的处理迅捷和有条理,公司的顾客顾客服务中心可能还要打电话、发传真了解在经销商、维修站里有关顾客的信息,如果资料不是很切确,还要反复的核对,期间的麻烦和效率可想而知。 

 基于Internet的数据库营销和CRM 

如果想领导这个数字时代,就必须充分了解因特网,这样才能准确预测网络生活方式对你的产业意味着什么(见比尔·盖茨著《未来时速》)。现在许多企业所建立的网站,并没有站在电子商务的高度,仅仅当作自己企业的电子宣传栏,网上预订的产品也只是目录式的,没有产品直观的多媒体介绍。应该说还没有领会网络在商业中的本质价值,不理解网络所扮演的销售角色,最终使企业的网站变成孤岛。 

将网站和公司的客户数据库连接起来,网站可以通过对顾客网页浏览的顺序、停留的时间长短为这位顾客建立个人档案,识别出具有相似浏览习惯的顾客。同时,电子商务前端的客户关系管理应该和企业的内部管理系统(ERP、SCM等)连接起来,不管客户从哪个渠道进来,都可以跟后台的企业管理系统连接起来。网站的一切工作都应围绕着顾客需求这一中心,要符合顾客的浏览习惯,充分考虑到顾客在网上可能碰到的困难时需要的帮助和技术支持;开展网上自助服务,顾客根据自己的意愿,随时随地的上网查询,自行解决自己遇到的问题,以帮助降低成本。可以为他(她)定制在线购物经验、定制广告、促销活动和直接提供销售报盘,辨别出具体的顾客偏好,以便提供改进的个人服务,海尔公司推出了“网上定制”,顾客进入海尔网站的主页面后,就可以清楚看到定制冰箱和定制电脑,以定制冰箱为例,消费者可以自己设计冰箱的外观色彩和内件配置,从而最大限度满足了顾客的个性化需求。从2000年8月海尔推出“定制冰箱”一个月时间,就从网上接到了多达100万台的要货订单。 

4.提高企业顾客信息能力的非技术因素

在设计数据库之前,首先让一组营销人员来明确公司的业务需要,所设计的数据库要包含哪些功能,简单的说,就是数据库能帮助营销人员去做什么。然后让一组管理信息系统的专业人员去实现相应的运作条件。在具体的开发实施中,这组营销人员和MIS专业人员共同协作(Team Approach),互相支持,使数据库开发顺利进行。 所设计的数据库应能够回答有关现有顾客或准顾客的特征和行为的特定问题(或查询);能够在特定标准、营销事件(Marketing Events)或姓名评分模型(Name Scoring Models)的基础上挑选将来促销的对象姓名;能够跟踪促销结果并对反馈者和非反馈者进行顾客轮廓分析(Profiling)。 

大多数公司建立营销数据库作为一种独立的应用,并首要的把他当作一种分析和促销的工具,但一个完全一体化的数据库系统完全将公司的业务、决策支持和营销系统,合并成一个单一的一体化的数据库应用形式,数据库营销是一个系统性的有创造力的整合的营销体系。 

顾客竞争其实就是信息竞争,筹建营销数据库和CRM系统,根本的目的是为了提高企业的顾客信息能力,顾客信息能力的本质是企业的判断能力,即能够根据已有的事实判断那些未知因素将会具有怎样的价值,对企业未来的发展会产生怎样的影响。顾客信息能力已经是企业赖以生存的核心能力,它能贯彻到市场、销售、服务等各职能领域。 

但是很多企业走入一个误区,在提高企业的信息能力上将近80%的资源投资在顾客数据库和网络系统建设上,忽视了企业信息能力除了技术以外,还有更重要的非技术因素,包括人才、文化观念、组织结构、领导艺术和战略观念。 

4.1人才队伍 

公司须组织一支均衡的信息队伍,其中包括:具有扎实业务操作经验的人才;敏捷、富于创造性,最少受行业传统束缚的人才;来自IT并熟悉本行业务的人才;来自本行业并熟悉技术应用的人才;具有新环境销售潜力的人才;具有熟练的数学和统计才能的人才;在与客户交流环境中能熟练应用信息的人才。 

4.2企业文化 

营销数据库的实施虽然在形式上表现为一些软件包的组合、调试、安装、测试和运行,但是蕴藏于信息管理的核心的是一种新型的理念。实施CRM需要销售人员、市场推广人员、维修服务人员等等的全方位参与,如果不能得到他们的信赖和支持,再好的系统设计也不能发挥效力。公司要创造一种学习和创新的信息文化,努力使业务和信息技术部门之间的信息文化相互适应,评估人们在工作中对信息重要性的认识以及应用信息的能力。美国一家企业的经理对此有深刻的发现:“如果你留心观察一下周围那些在本行业中出类拔萃的企业,你就会发现他们在企业文化方面与众不同。” 

4.3组织结构 

留心观察一下,就会发现在现有的组织结构中,企业并不是单一的公司组织,而是由许多半自治部门组成。就象美国一家业务领先的银行经理指出:“每一个业务部门都有自己的技术支持,因此我们像六个竞争者在相互竞争。”在这种情况下,企业的每个业务部门之间没有分享顾客信息,形成了部门之间的信息壁垒,使得各部门无法协同工作,从共同的信息中获取更大的力量。企业必须建立明确的信息共享奖励机制,在部门之间经常举行群策会议,建立跨部门的联合小组专门从事信息开发,为各部门信息共享和建模作出明确预算,改变原有组织结构,根据信息价值创造规律创建信息流。 

4.4领导艺术 

企业要高度重视那些推动改革、创新和新的处事方式的人,这是企业改变行业惯例的开始。辨别企业中守旧的领导人员,对他们进行教育或进行更换,在每个管理层中寻找具有信息远见并勇于进行信息改革的人,从而在各项业务中加入信息指导。应该说,企业的高级管理层对企业信息转型的支持是企业提高信息能力的关键。 

4.5战略观念 

信息在传统上归入技术的范畴,在实施中也没有完全当作一种战略资产,围绕企业信息开发的大量资源很大程度上被用于信息管理而不是价值创造。随着企业意识到顾客信息的真正价值,企业的注意力从“管理信息”向“顾客信息”演化。制定顾客信息战略,对信息收集进行详细的规划,并开始系统化的信息收集工作,同时,筹建数据库,对收集到的信息整理存储,对已知信息的百分比进行评估并设法提高该比例,讨论其潜在的价值。利用数据库能准确统计出公司顾客数目,计算出各顾客贡献的利润,辨别哪些是公司顶级顾客等。 

5. 结束语

目前在我国,传统的营销方式仍占据着相当的地位,数据库营销只是对传统营销方式的补充和改变。但从长期看,数据库营销必将随着企业管理水平、尤其是营销管理水平的提升而得到创新使用。现在一些具有领先观念的企业如上海罗氏、通用汽车、广东美的已经建设了CRM系统。 

随着经济的日益发展和信息技术对传统产业的改造,消费者的个性化需求的满足成为了可能,中国加入WTO以后,企业将面临更加严峻的形势,如何在这场强敌环饲的角力中胜出,需要全方位的提升企业的竞争力——特别是企业的客户信息能力,作为企业经营战略中非常重要的营销体制也必须吸收西方先进的营销理念和手段,革除传统营销模式的弊端,数据库营销是先进的营销理念和现代信息技术的结晶,必然是企业未来的选择。但中国企业首先要从客户数据库建设和营销做起,打好基础,革新观念,最终走向CRM。 

参考文献: 

1.约翰·麦凯恩著.《信息大师——客户关系管理的秘密》 .上海:上海交通大学出版社,2001年1月 

2.屈云波 郑宏编著 《数据库营销》 企业管理出版社,1999年5月 

3.郭抒主编.《数据库直销》 .首都经济贸易大学出版社, 2000年1月 

4.中国经营报 

上一篇:数据备份范文 下一篇:数据库系统范文