欢迎来到易发表网!

关于我们 期刊咨询 科普杂志

关系数据库优选九篇

时间:2022-05-08 12:37:37

引言:易发表网凭借丰富的文秘实践,为您精心挑选了九篇关系数据库范例。如需获取更多原创内容,可随时联系我们的客服老师。

关系数据库

第1篇

【关键词】关系数据库;非关系数据库;NoSql

前言

从上个世纪60年代至今的半个世纪,数据库技术伴随着信息技术的发展不断发展,到目前共经历了人工管理阶段、文件系统阶段和数据库系统阶段,在数据库系统阶段又经历了网状数据库、层次数据库和关系数据库阶段,进二十来年,关系数据被广泛使用,发展成主流,但随着互联网技术的蓬勃发展,关系数据库使用遇到了一些新的问题,为应对这些新的问题,近两年来非关系数据库NOSql越来越引起人们的注视,得到了快速发展。

1 关系数据库

1.1 关系数据库的简介

支持关系模型的数据库系成之为关系数据库,是目前各类数据库中使用最为广泛的数据库系统。关系数据库在经过二十几年的发展,已经变的功能强大,使用广泛,产品成熟的数据库系统,现在使用主流的数据库都为关系型数据库,比较熟悉的如SQL Server、Mysql、Oracle、Sybase、Informix、DB2等。在网络上使用比较广泛的是Sql Server、Mysql和Oracle。

1.2 关系数据库的特点

关系数据库是支持关系模型的数据库系统。而关系模型是由二维表来表示实体和实体间联系的模型。使用二维表存储数据,对使用者来说很直观,更容易理解。使用关系数据库的优势主要表现在以下几个特性:

(1)操作方便性。通过开发应用程序和数据库连接,用户能方便的对数据库中数据进行操作,特别对没有数据库基础的人,也可以通过数据库管理系统,直接在数据库中操作。

(2)易于维护性。关系数据库在完整性约束中提供了实体完整性、参照完整性和用户定义的完整性,通过完整性约束可以大大降低了数据存储的冗余及数据不一致的概率。

(3)访问数据的灵活性。关系数据库中提供了诸如视图,存储过程,触发器,索引等对象,是访问数据更加灵活。

1.3 目前关系数据库面临的问题

随着互联网技术的发展,尤其是web2.0 技术使用,更注重用户和服务器以及用户和用户之间的交互作用,用户成为既是网站内容的浏览者,也是网站内容的制造者。例如:博客(BLOG)、社会网络(SNS)、以及现在比较热的微博等。对于在使用web2.0技术并且访问量比较大网站,使用传统关系数据库就会遇到一些问题,主要表现在以下几点:

(1)对数据库高并发读写的需求

Web 2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,无法使用动态页面静态化技术,因此数据库的并发负载非常高,往往要达到每秒上万次的的读写请求,此时服务器上的磁盘根本无法承受如此之多的读写请求。

(2)对海量数据的高效率存储和访问的需求

对于大型的社交网站网站,每天用户产生海量的用户动态,随着用户的不断增减,一个数据表中的记录可能有几亿条,对于关系型数据库来说,在一个有上亿条记录的表里面进行SQL询,效率是极其低下的。一些大型Web 网站的用户登录系统也是如此,如腾讯、163邮箱都有数亿的帐号。

(3)对数据库的高扩展性和高可用性的需求

在基于Web的架构中,数据库是最难进行横向扩展的,当用户量和访问量增加时, 数据库没有办法像Web Server 那样简单的通过添加更多的硬件和服务结点来扩展性能和负载能力,对于很多需要24 小时不间断服务的网站来说,对数据库系统的升级和扩展往往需要停机维护。

2 非关系数据库NoSql

2.1 NoSql概述

NoSql是应对关系数据库出现的问题而发展起来的,近几年随着web2.0技术的广泛应用,NoSQL 得到了快速的发展,NoSQL数据库指的是非关系性的、定义不是很明确的数据存储仓库。NoSQL数据库不再使用关系模型的概念,放弃了使用SQL语句对数据库进行操作。

NoSQL 数据库根据数据的存储模型和特点又分为很多种类。主要有

(1)面向列的存储系统。按列存储,区别于关系数据库中按行存储,容易扩展,适用与存储海量数据,对一个或几个字段进行查询的效率很高,但在复杂查询功能比较弱,如多表联合查询。此类数据库产品有BigTable、Hbase、assandra和Hypertable。

(2)面向文档存储系统。保证海量数据存储的同时,具有良好的查询性能。用JSON或类JSON格式进行存储,存储的内容是文档型的,文档中的格式是自由的。此类数据库产品有MongoDB和CouchDB。

(3)键-值(key/value)存储系统。是最简单的Nosql系统,具有极高的并发读写性能。通过key能够快速查询到value,并且不考虑value 的格式。此类数据库产品有Tokyo Cabinet/Tyrant、BerkeleyDB、MemcacheDB和Redis。

(4)图存储系统。图形关系的最佳存储模式。如Neo4J、FlockDB。

(5)对象存储。类似面向对象语言的语法操作数据库,通过对象的方式存取数据。此类数据库产品有db4o、Versant。

(6)xml 数据库。高效存储XML 数据,并支持XML的内部查询语法。此类数据库产品有Berkeley DBXML、BaseX。

2.2 NoSql数据库的优势

相对于关系数据库,Nosql数据库的优点主要表现在:

(1)容易扩展和高性能。NoSQL 数据库种类很多,但是都有一个共同的特点就是去掉关系型数据库的关系型特性。数据之间彼此无关系,这样就非常容易扩展。可以存储海量数据。同样由于数据之间无关系,数据库的结构简单,在处理大数据量时,NoSQL 数据库会有出色的读写性能。

(2)灵活的数据模型。NoSQL 数据库不使用传统的关系数据库模型,而是使用如key-value 存储、文档型的、列存储、图型数据库、xml 等方式存储数据模型,使用这些模型都无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。同时根据需求可以选择合适的模型。

(3)经济性

在数据量和访问量比较大的情况下,传统的关系数据库对服务器的要求比较高,甚至使用专用硬件设备,这样造价就比较高。而NoSQL数据库的易扩展的特点使配置较低服务器上运行,也可以使用低配服务器组成集群来使用,并且有研究证实使用NoSql数据库基于低配硬件的分布式存储解决方案比现在的高端关系数据库更加可靠。这样就极大的降低了投资成本。

2.3 NoSql的不足

(1)成熟度方面。NoSQL数据库的实际应用,近几年才逐渐开始使用,并且大部分NoSQL的产品都还处于实验和不断完善的阶段。在产品成熟度和稳定性方面,NoSq数据库远不及发展了二十多年且已被广泛使用的关系数据库。

(2)商业支持方面。大部分NoSQL数据库都是开源项目,没有专门的数据库厂商提供完善的服务,一旦出现故障,只能自己的能力解决,对于一般使用者来说风险比较大。

(3)使用习惯方面。软件开发人员已经习惯了关系数据库的模式,解决问题的思路已经被固定在关系模型上,而NoSQL数据库的开发以放弃了关系模型,要软件开发人员放弃原来的思路,而掌握和使用NoSql数据库是很困难的,导致使用NoSQL数据库的开发人员不可能在短时间内快速增加,这也成为NoSql数据库发展的一个障碍。

3 关系数据库与NoSQL 数据库结合使用

Web2.0时代,关系数据库不能满足对数据库高并发读写、海量数据的高效率存储和访问、高扩展性和高可用性方面的需求,而NoSql数据库可以解决这些问题,从而推动了NoSql数据库应用和发展,那是不是说NoSql数据库就能取代关系数据可了呢?从目前来看,基于NoSql数据库的不足,NoSql数据库还不能完全取代关系数据库,对NoSql数据库的使用,单独使用的情况很少,大多数情况下都是关系数据库和NoSql数据库结合使用。

关系数据库和NoSql数据库结合使用又分为两种模式:

(1)NoSql数据库作为辅助存储。在这种模式下,把所有的数据都存放在关系数据库中,可能被经常频繁读取的数据再存放在NoSql数据库中一份,其目的是提高数据的查询速度,减少关系数据库的并发访问负载。

(2)NoSql数据库作为主存储。在这种模式下,把所有的数据存储在NOSQL数据库中,为了一些特殊业务或功能的需要,在将数据存入NOSQL 的时候,同时存储到关系数据库一份。在数据存储和查询主要是由Nosql数据库完成,少量的数据是从关系数据库读取。

4 结语

目前关系数据库仍是主流数据库,仍被广泛使用,NoSQL数据库还不能完全取代关系数据库,虽然NoSql数据库打破了关系数据库存储的观念,采用创新的存储方式,在快速读写、海量存储,高扩展性上很好满足web2.0时代数据存储的要求,但NoSql数据库也有自己的缺陷。在现阶段的某些情况下,可以将关系型数据库和NoSQL数据库结合使用,相互弥补各自的不足。随着NoSql数据库的不断发展和完善,将来也有可能取代关系数据库成为主流数据库。

参考文献:

[1]卢冬海,何先波.浅析NoSQL数据库 中国西部科技 2011年02期

第2篇

【关键词】关系数据库;数据仓库;数据挖掘;关系

0 引言

关系数据库是20世纪70年代初提出来,经过数据库专家几十年的努力,理论和实践都取得了显著成果,标志着数据库技术的日益成熟。但它仍然难以实现对关系数据库中数据的分析,不能很好地支持决策,因此在80年代,产生了数据仓库的思想,90年代,数据仓库的基本原理、架构形式和使用原则都已确定。主要技术包括对数据库中数据访问、网络、C / S结构和图形界面,一些大公司已经开始构建数据仓库。针对数据仓库中迅速增长的海量数据的收集、存放,用人力已经不能解决,那么数据仓库中有用的知识的提取就需要数据挖掘来实现。数据挖掘与统计学子领域“试探性数据分析”及人工智能子领域“知识发现”和机器学有关,是一门综合性的技术学科。了解关系数据库、数据仓库与数据挖掘三者之间的区别与联系,使之更好的使用这3种技术,处理各种信息需求是非常必要和重要的。

1 关系数据库、数据仓库和数据挖掘之间的关系

1.1 关系数据库和数据仓库之间的联系与区别

关系数据库是面向事务的设计,数据仓库是一个面向主题的设计;关系数据库存储在线事务数据,数据仓库通常存储历史数据,关系数据库的设计将尽量避免冗余,但数据仓库是倾向于引入冗余;关系数据库设计用于捕获数据,数据仓库设计用于分析数据。传统的关系数据库面向以事务处理为主的系统应用,所以它无法满足决策支持系统的分析要求。事务处理和分析处理有非常不同的性质,他们有不同的需求数据。

1.2 数据仓库与数据挖掘之间的联系与区别

数据挖掘是基于数据仓库和多维数据库中的数据,找到数据的潜在模式进行预测,它可以对数据进行复杂处理。大多数情况下,数据挖掘是让数据从数据仓库到数据挖掘数据库中。从数据仓库中直接得到进行数据挖掘的数据有许多优点,因为数据仓库中数据的清理和数据挖掘中几乎是相同的,如果数据在数据仓库中已被清除,数据挖掘中不再被清除,并且数据不一致也得到了解决。数据仓库是数据挖掘的先期步骤,通过数据仓库的构建,提高了数据挖掘的效率和能力,保证了数据挖掘中的数据的宽广性和完整性。

1.3 关系数据库与数据挖掘之间的联系与区别

数据挖掘的数据源不一定是数据仓库。也可以是一个关系数据库中的数据,但要事先进行数据预处理,才能用于数据挖掘。数据预处理是数据挖掘的关键步骤,并且是数据挖掘过程中的主要工作部分。因此,数据仓库和数据挖掘没有必然的联系,有些人简单地认为,数据仓库是数据挖掘的准备,这种理解是不全面的,也可以使用关系数据库中的数据作为数据挖掘的数据源。

2 三种技术的应用

2.1 应用价值

2.1.1 关系数据库

关系数据库的主要价值体现在事务处理。关系数据库已经渗透到各行各业的日常事务,该事务管理离不开关系数据库的应用系统,这是对传统事务管理的一个重大突破,是社会甚至家庭不可或缺的工具,它对社会的应用价值是100%。

2.1.2 数据仓库

数据仓库的主要价值体现在为决策分析提供数据源。一方面,在一个事务中,用户要求高效的访问系统和数据库,操作时间应该短。在一个决策分析中,决策问题的一些请求可能会导致系统的操作,解决这一问题的决策分析需要遍历大多数数据库中的数据,这对一般日常事务处理系统是困难的,所以操作数据和决策分析数据应该分开。另一方面,决策数据需求问题。在决策分析时,由于不同的应用系统中,实体、字段存在数据类型、名称和格式的不符,需要在集成时进行转换,这个转换必须在决策之前完成;一些决策数据需要动态更新,需要经常进行汇总和总结,这些需求用事务处理系统解决比较繁琐。三是数据的操作模式问题。决策分析人员要以专业用户身份,使用各种工具以各种形式来操作数据,对数据操作的结果以商业智能的方式表达出来。事务处理系统不能满足这一要求,只有数据仓库系统能够满足数据挖掘技术对数据环境的要求,所以使用数据仓库中的数据省去了对数据预处理的步骤。

2.1.3 数据挖掘

面对日益激烈的市场竞争,客户对迅速应答各种业务问题的能力要求越来越高,对过量数据的及时处理要求越来越高,带来的挑战一方面大规模、复杂数据系统让用户感觉漫无头绪,无法开始;另一方面,这些大量数据背后隐藏很多有意义的有价值的决策信息。如计算机界都熟知的“啤酒与尿布”的故事,就是零售业巨头“沃尔玛”从大量销售数据中分析出来的规律:美国的男士在下班要去超市买婴儿尿布,同时他们还会买啤酒。“沃尔玛”就把这两种“毫不相干”的商品摆放在靠近的货架上,并且还摆放一些下洒小菜,使这些商品销量大增。所以应用数据挖掘从大量数据中发现规律,具有具体的指导意义。

2.2 应用领域

2.2.1 关系数据库

关系数据库应用领域非常广泛,如:证券行业、医院、银行、销售部门、公司或企业,以及政府、国防工业,科学和技术发展领域等等,这些领域都需要使用数据库来存储数据。例如:人事管理系统、工资管理系统,xxx部门信息管理系统,手机话费管理系统等,都需要关系数据库作为后台提供数据源。

2.2.2 数据仓库

数据仓库应用领域主要有两个方面:一是全局应用。因为数据仓库获得来自多方面的数据,所以在把数据向数据仓库输入时,要进行转换、计算和综合等集成处理。通过处理把来自不同地方的数据源转换成统一的格式,以促进全局应用。二是复杂系统。信息处理的要求越来越复杂,除了数据处理操作,如添加、删除、修改、和统计汇总,高级管理层也希望对历史的和现在的数据进行各种复杂性分析,以支持决策。数据仓库中就是存储了旧的历史数据,方便复杂分析、应用,为高层决策服务。

2.2.3 数据挖掘

数据挖掘的应用领域主要表现在特定应用问题和应用背景。数据挖掘技术已经应用于各行各业,如电信,保险,交通,学校、银行、超级市场等。例如:数据挖掘技术应用在大学。高校扩招,学生增加到几万人,但是学生的学习积极性不高,成绩不好,因此引入数据挖掘技术找出影响学生学习积极性和学习成绩的原因,制定措施,提高教育和教学质量。分析的数据源是考试成绩和成绩之外的影响因素,分析的方法是采用关联规则、模型库、去“噪”处理、粗糙集等进行数据挖掘,得出的结论是:传统的学习方法不能完全满足需要,改进教学方法和教学模式,从而调动学生学习的积极性,提高教学质量。

3 关系数据库、数据仓库与数据挖掘的融合

日常事务处理需要关系数据库,构建分析处理环境需要数据仓库,帮助决策者寻找数据之间的潜在的关联需要数据挖掘。他们之间是相互联系又有区别的,不能互相取代的,又需要相互融合。数据仓库中的数据并不是最新的,专有的,而是来源于其他关系数据库,它是建立在一个更全面和完善的信息应用的基础上,用于支持高层决策分析的数据基地。数据仓库是数据库新技术,到目前为止,数据仓库仍用关系数据库管理系统管理数据。数据挖掘是从大量存储在数据库、数据仓库或其他信息库中发现有趣知识的过程。只有这三个数据库技术互相融合,取长补短,各尽其责,才能更好的为广大用户所使用,为社会各个领域所应用。

【参考文献】

[1]华冠萍.数据仓库、数据挖掘及OLAP之两两关系[J].福建电脑,2007,8.

第3篇

关键词:非关系数据库;CouchDB;Map/Reduce

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)14-3220-03

随着以社交网络、云计算为代表的Web2.0网站的兴起,非关系数据库(NoSQL)得到了广泛的关注[1-2]。这是因为传统的关系数据库在面对这类应用的时候暴露出许多问题,在处理超大规模的数据、应对高度并发的请求时显得力不从心。这种情况下非关系数据库得到了迅速的发展,成为业界和学界所探讨的热点问题。

CouchDB是在处理半结构化的文档中具有独特的优势,在CMS系统、大数据分析和挖掘中具有广泛的用途。该文首选对非关系数据库的特征及Map/Reduce的工作方式进行分析,然后详介绍了CouchDB的安装、配置及使用方法。

1 非关系数据库

1.1 非关系数据库的特点

非关系数据库是根据Web应用发展的需要而产生的,与传统关系数据库有很大的差异。关系数据库最为显著的是ACID特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。从分布式应用的CPA理论[3,4]的角度来看,关系数据库主要关注的是一致性和可用性,能够很好的满足传统的应用需求。但是在Web2.0时代,对数据处理的要求高并发性、海量数据的处理能力和访问需求,以及对数据库的高扩展性和高可用性要求。相对而言,关系数据库所关注的一致性、读写的实时性和复杂的SQL查询在新的应用中却并不需要[5]。

CPA理论认为一致性、可用性和分区容错性不可能同时实现。因此非关系数据库的主要特征为与ACID有着显著差异的BASE模型[6]。即基本可用(Basically Available)、软状态(Soft state)和最终一致(Eventually consistent),它允许系统在一段时间内有不一致性,而放宽至只要最终状态下数据是一致的就可以了,从而以牺牲高一致性为代价获得了高可用性。由于非关系数据库没有数据库模式的约束,从而具备了良好的可扩充性。

1.2 Map/Reduce机制

Map函数的输出为数据库中的文档或数据,输出为键值对。这里的键和值可以是系统支持的任何类型的数据,用户可以在Map函数中对文档数据加以处理,把所需的数据以键值的形式输出。Map函数会对数据库中所有数据进行处理,结果由主控制器按键进行分组,如果用户不指定Reduce函数则按键分组的结果直接输出。Reduce函数的功能是把键值组合进一步处理,比如统计、汇总等。

2 CouchDB的安装及应用

2.1 CouchDB简介

CouchDB是最著名的非关系数据库系统之一,它是Apache软件基金会的顶级开源项目。CouchDB使用Erlang语言开发,继承了其强大的强大的并发性和分布式的特征,因此在大数据处理及诸如社交网络等Web2.0应用开发中具有重要的应用价值。CouchDB的早期版本只能安装在POSIX系统之上,最新版本则提供了对Windows的支持。

CouchDB是一个面向文档的、分布式的数据库,支持REST接口访问。面向文档是指CouchDB中存储的是半结构化的JSON文档,而且可以方便的将文档对象映射为具体编程语言的对象。由于JSON在Ajax技术及社交网络应用中广泛应用,因此CouchDB在这类应用的数据存储和处理中具有良好的应用前景。CouchDB是分布式的数据库系统,源于Erlang极好的并发特性,CouchDB存储系统可以分布到多台计算机之上,每台计算机称为存储系统的一个节点。CouchDB能够很好的协调和同步多个节点之间的数据一致性和完整性,有效的应用系统应用中可能出现的各种错误。CouchDB支持REST接口访问,即可以通过GET、PUT、POST、HEAD和DELETE等标准的Http请求对数据库进行写入和查询分析等操作。因此,任何一种编程语言只要具备Http请求模块就可以方便的与CouchDB进行对接,甚至只要利用正确的URL地址只要运用浏览器就可以访问CouchDB得到所需要的数据。

与其他的非关系数据库一样,CouchDB利用Map/Reduce对数据进行插入、搜索等操作。CouchDB将键值对存储在B-树引擎之上,并根据键值进行排序,因此具有高效的查询和操作性能。需要注意的是,CouchDB是一个基于版本的数据库系统,即只能添加数据不能删除和修改数据,当数据需要更新时CouchDB只是增加了新的版本,所有的版本数据依旧保存在数据库中,且可以方便的得到。如果要删除数据则需要将整个数据库删除。

2.2 CouchDB的安装和配置

CouchDB在包括Windows在内的各种操作系统中安装都非常方便,几乎不需要做任何复杂的配置,特别是在Mac OS中,下载之后直接运行即可。CouchDB默认使用5984端口,在本机可使用http://127.0.0.1:5984访问。在浏览器中访问该Url即可得到关于版本等信息的JSON格式的数据。CouchDB的管理控制台称为Futon,通过http://127.0.0.1:5984/_utils访问并操作。在Futon中可以手工创建数据库、添加和查看文档,并管理CouchDB。默认情况下,CouchDB开放admin权限,为了安全起见需要添加用户名和密码。

2.3 CouchDB的操作

3)统计和汇总

对CouchDB进行更复杂的查询需要同时使用map函数reduce函数。图5所示的代码对数据库文档数量进行统计,程序运行输出结果为数据库中文档的总数。如果数据库中仅有图2所加入的数据,则图5输出结果为2。如果要进行汇总操作,只需改变map函数返回值为需要汇总的数值,并根据需要改变group参数的值为True。

结合map函数和reduce函数,可以在CouchDB数据库中实现传统关系数据库中的运算,如选择、投影、并、交、差,以及连接等。此外,与传统数据库一样,CouchDB也可以利用ViewDefinition将查询保存为视图,其使用参数与query较为类似。不同的是视图的信息要保存在设计文档之中,因此要指定相应的键值,在使用中,数据库根据这些键值生成url用于进行访问。

3 结论

CouchDB作为一种高性能的面向文档的非关系数据库具有广泛的用途,其开源、免费,以及易用使用的特点使其在Web2.0应用开发、大数据挖掘与分析等方面都有潜在的重要应用价值。该文对CouchDB的应用的分析,有助于深入了解非关系数据库的工作机制和使用方法。需要指出的是,尽管非关系数据库在处理大数据方面有很高的效率,但是它绝不是关系数据库的替代,在数据更新频繁的传统应用中关系数据库依旧是最优的选择。

参考文献:

[1] 蔡金花.浅析NOSQL及使用[J].电脑知识与技术,2012,7(12):2757-2758.

[2] 柯栋梁,郑啸,李乔.云计算:实例研究与关键技术[J].小型微型计算机系统,2012,33(11): 2321-2329.

[3] Brewer E A.Towards Robust Towards Robust Distributed Systems[C].Proceedings of the 19th Annual ACM Symposium on Principles of Distributed Computing, 2000.

[4] Gilbert S,Lynch N.Brewer's Conjeture and the Feasibility of Consistent, Available, Partition-Tolerant Web[J]. ACM SIGACT News, 2002, 33(2):51-59.

[5] 范凯.NoSQL数据库探讨之——为什么要用非关系数据库?[EB/OL].(2009-11-25). http:///topic/524977.

第4篇

关键词:数据库转换;.NET;XML

中图分类号:TP311.13文献标识码:A 文章编号:1009-3044(2008)26-1615-02

Relational Databases Conversion Based on .NET Platform

HU Shu-gang

(Dongying Vocational College, Dongying 257091, China)

Abstract: Combining the advantages of XML technology,.NET platform provides the feasibility of data conversion between relational databases. One example demonstrated the SQL Server database can be converted to an XML file, and then the XML file can be converted to other database. It has realized the data conversion between relational databases.

Key words: database conversion; .NET; XML

1 引言

网络资源中通常包含多种格式和管理系统的关系数据库,为了实现资源的共建共享,需要完成多种数据库之间的数据转换。不同的开发商采用分布式对象技术和各自的思路来实现数据库的互操作,如OMG的CORBA技术、Sun公司的EJB/RMI和微软的.NET技术等。

2 数据库转换思路

.NET是微软公司开发的下一代基于互联网平台的软件开发构想,它提供了一个全新的编程模型。该平台建立在XML和因特网标准协议的基础上,具有平立性和语言独立性,它包含了强大数据库操控能力的。编程模型由一系列的数据库相关类和接口组成,运用技术,应用程序既能访问关系型数据库中的数据,又能访问层次化的XML数据[1]。XML是W3C的通用标记语言SGML的一个简化子集。它是一种存储和传输数据的行业标准格式,普遍贯穿于.NET平台,具有简单性、可扩展性、互操作性和开放性等特点,其本质特点是数据独立,它存储的数据全部是文本,而且使用标记标示,利于网络传输。XML模式提供了很强的数据类型识别功能,可正确处理各种数据类型。XML和.NET的结合为解决数据库互操作问题奠定了基础[2]。通过以上分析,可以在.NET平台上,以XML为中间数据源完成多种关系数据库之间的转换[3]。演示示例用的操作系统是Windows XP Professional,开发平台为Visual Studio 2005,示例用C#语言编写。

2.1 数据库的导入[4]

为了导入SQLServe数据库,先用Connection对象连接数据库,演示示例中用SqlConnection连接了服务器METC\SQLEXPRESS的数据库books.mdf。将数据库读入DataSet。DataSet对象主要存放数据库的DataTable的对象,可以使用DataAdapter建立DataSet对象。尽管DataSet可以存储数据,但仍需要使用DataAdapter对象来创建和初始化各种表,还需要使用Fill()方法来把查询结果移入到DataSet中去,再将数据写入到XML文件。关键源代码如下。

String strTableName = "books";

String strConnection = "server=METC\\SQLEXPRESS;database=books;uid=sa;pwd=;trusted_connection=yes ";

String strSql = "select * from " + strTableName;

SqlConnection objConn = new SqlConnection(strConnection);

SqlDataAdapter objAdapter = new SqlDataAdapter(strSql, objConn);

DataSet objDSet = new DataSet();

objAdapter.Fill(objDSet, "temp");

XmlTextWriter objXmlWriter;

String strtemp1 = Request.PhysicalApplicationPath;

String strpath = strtemp1 + "newxml.xml";

objXmlWriter = new XmlTextWriter(strpath, null);

objXmlWriter.WriteStartDocument();

objXmlWriter.WriteStartElement("xml");

for (int i = 0; i < objDSet.Tables["temp"].Rows.Count; i++)

{

objXmlWriter.WriteStartElement("menu");

for (int j = 0; j < objDSet.Tables["temp"].Columns.Count; j++)

{

objXmlWriter.WriteAttributeString(objDSet.Tables["temp"].Columns[j].ColumnName, objDSet.Tables["temp"].Rows[i][j].ToString());

}

objXmlWriter.WriteEndElement();

}

objXmlWriter.WriteEndElement();

objXmlWriter.WriteEndDocument();

objXmlWriter.Close();

2.2 数据的导出[5-6]

以下演示示例是将以上创建的“newxml.xml”文件转换为Access数据库demo.mdb中的一个表“newxml”。首先建立与目标数据库的连接,也就是通过OLE DB Provider提供的OleDBConnection对象建立与Access数据库demo.mdb的连接。当然,该示例也可通过OLE DB Provider提供的其他连接数据库的对象来连接Oracle、Sybase或DB2这样的数据库以及Excel表格。以下关键源代码部分省略了命名空间的引用、系统自生成代码和对数据库中表是否建立的检查部分。

private void TableCheck()

{ OleDbConnection oledbConn = new OleDbConnection(textBoxOleDb.Text);

Try

{ oledbConn.Open();

DataTable schemaTable = oledbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] {null, null, tableName, "TABLE"});

String sqlCmd = "";

if(schemaTable.Rows.Count < 1)

{sqlCmd = "create table " + tableName + " (";

for(int i = 0;i < dataTableXml.Columns.Count;i++)

{sqlCmd = sqlCmd + dataTableXml.Columns[i].ColumnName.ToString() + " char(100),";}

sqlCmd= sqlCmd .Substring(0,sqlCmd.Length - 1) + ");";

OleDbCommand oledbCmd = new OleDbCommand(sqlCmd,oledbConn);

oledbCmd.ExecuteNonQuery();}

}

catch

{Message.Text = "数据库不存在或无法创建表.";}

finally

{oledbConn.Close();}

}

private void TableInsert()

{ OleDbConnection oledbConn = new OleDbConnection(textBoxOleDb.Text);

try

{ oledbConn.Open();

foreach(DataRow dr in dataTableXml.Rows)

{ string sqlCmd = "insert into [" + tableName + "] (";

for(int i = 0;i < dataTableXml.Columns.Count;i++)

{sqlCmd = sqlCmd + dataTableXml.Columns[i].ColumnName.ToString() + ",";}

sqlCmd= sqlCmd.Substring(0,sqlCmd.Length - 1) + ") values (";

for(int x = 0;x < dataTableXml.Columns.Count;x++)

{sqlCmd = sqlCmd + "'" + dr[x].ToString().Replace("'","''") + "',";}

sqlCmd = sqlCmd.Substring(0,sqlCmd.Length - 1) + ");";

OleDbCommand oledbCmd = new OleDbCommand(sqlCmd,oledbConn);

oledbCmd.ExecuteNonQuery();

}

}

}

3 结束语

通过以上实例,演示了以XML为中间转换数据源,在.NET平台上方便地完成异构关系数据库之间的数据转换和共享。基于.NET平台,充分利用XML技术的优势,来解决异构数据库集成的问题,能够给用户提供一个透明的全局数据库,方便用户的使用,还使得系统在可扩展性、安全性、可维护性等方面有所提高。

参考文献:

[1] Lair R, Lefbvre 开发人员手册[M].张俊,译.北京:电子工业出版社,2002:38-39,169-193,246-488.

[2] Bray T, Paoli J, Sperberg-McQueen C M, et al.XML标准[EB/OL].[2006-08-16]./TR/2006/REC-xml-20060816/.

[3] 石玉晶,牛存良,马新娜.使用XML进行异构数据库间数据传送[J].现代计算机,2003,19(11):79-80.

[4] 吕品,夏红霞,李明.异构数据库互操作平台的开发研究[J].武汉理工大学学报,2003,25(1):35-37.

第5篇

关键词:关系数据库;云端数据库;Bigtable;时间戳

中图分类号:TP399文献标识码:A文章编号:1009-3044(2009)25-7090-03

Comparison and Analysis for Relational Database and Cloud Database Based on Architecture

ZHANG Zhen-yong, WEN Jing-hua

(Guizhou College of Finance and Economics, Guiyang 550004,China)

Abstract: Aiming at the shortcoming that relational database processes a large number of video,audio,images and complex data types, this thesis compared and analyzed relational database and Bigtable representing cloud database and based on architecture. The results showed that cloud database was more advantageous than relational database in precessing a great mass of data and complex data types. With the development of the cloud database technology,cloud database will be superseding the relational database as the mainstream of the database.

Key words: ralational database; cloud database; bigtable; timestamp

关系数据库从1970年发展至今,虽功能日趋完善,但对数据类型的处理大多采用数字、字符等基本数据类型,对多媒体信息的处理只是停留在简单的二进制代码文件的存储。随着信息技术的发展,互联网上数据量高速增长,非结构化数据的应用日趋扩大,再加上用户应用需求的提高、硬件技术的发展和Web2.0提供的多彩的多媒体交流方式,用户对多媒体处理的要求从简单的存储上升为识别、检索和深入加工等高级应用。关系数据库在处理这类数据时,逐渐暴露出了一些缺陷。

如何来高效处理占数据总量70%的声音、图像和视频等复杂数据类型是目前互联网界亟待解决的问题。正是在这种状态下,云端数据库便应运而生并开始发展起来。目前云端数据库技术在云计算中的应用有Google的Bigtable系统[1]、Amazon公司的Dynamo系统、Hadoop的一个子项目Hbase、微软的Live Mesh系统等等。无论是Bigtable还是Hbase都是采用通用的云端数据库架构,只是核心技术不同。所以本文就以Google的Bigtable架构为代表与传统的关系数据库架构进行比较和分析。

1关系数据库

1.1关系数据库概念及特点

关系数据库在一个给定的应用领域中,所有实体及实体之间联系的关系的集合。它是建立在集合代数基础上,应用数学方法来处理数据库中的数据,现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示,也就是说关系数据库是建立在关系模型基础上的数据库[2]。

关系数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,目前较大的应用软件系统都是建立在结构化数据库设计之上的。

1.2关系数据库系统的架构

关系数据库的架构包括六个部分[3]:

1) 查询语言接口

查询语言接口通过使用SQL语言对数据库进行特设查询数据。

2)交互式查询工具

交互式查询工具是用于访问,修改以及更新一个或多个关联的数据表,并以视图的方式返回给用户。

3) 核心软件

该核心软件用于控制查询处理,存取数据路径,用户访问管理,存储管理,索引,交易处理和读取/更新信息。

4) 公用机制

公用机制主要用于输入/输出/备份调整工具及参数/报告撰写。

5) 存储机制

存储机制主要进行数据库写入,归档,用户管理器,服务器管理,重做日志文件。

6) 数据库

数据库的特点是以数据文件的方式对数据对象进行物理存储,包含了系统目录即数据目录,一个或多个数据文件以结构化形式存储组成集合即二维表,并将不同数据集通过主键和外键进行关联。

关系数据库的架构如图1所示。

1.3关系数据库的缺陷

通过对关系数据库架构的分析,可以发现关系数据库的一些不足,概括如下四点:

1) 数据类型表达能力差

因为关系数据库所处理的是结构化的数据,所以关系数据库缺乏直接构造与现代软件应用有关的信息的类型表达能力。随着信息技术的飞速发展,图像、视频、音频以及文档等非结构化的数据已被应用到人们的日常生活当中,利用关系数据库来处理这些非结构化的数据已经显得有点力不从心了。因此目前大多数RDBMS产品所采用的简单类型在重构复杂数据的过程中将会出现性能问题;数据库设计过程中的额外复杂性;RDBMS产品和编程语言在数据类型方面的不协调,需要通过较复杂的程序化进行数据类型之间的转换来达到数据类型的一致性。

对于工程应用来说,关系数据库不能支持复杂数据类型的典型结果就是需要额外地分解数据结构工作,这些被分解的结构不能直接表示应用数据,且从基本成分重构时也非常繁琐和费时间。

2) 复杂查询功能比较差

在关系数据库中,利用SQL语言进行查询数据。虽然SQL语言为数据查询提供了很好的定义方法,但是当用于复杂信息的查询时可能会非常繁琐。这是由于在工程应用时规范化的过程通常会产生大量的简单表,从而降低数据的冗余度。那么在这种环境下由存取信息产生的查询必须处理大量的表和复杂主键和外键之间的联系以及连接运算,会影响系统的查询效率。

3) 支持长事务能力差

由于RDBMS记录锁机制的颗粒度限制,对于支持多种记录类型的大段数据的登记和检查来说,简单的记录级的锁机制是不够的,但基于键值关系的较复杂的锁机制来说却很难推广也难以实现。

4) 环境应变能力差

在要求系统改变的环境下,关系数据库从一种系统移植到另一个系统上的成本高且修改困难。再加上,关系数据库和编程语言所提供的数据类型的不一致,使得从一个环境转换到另一个环境时需要多至30%的附加代码。

正是由于关系数据库的这些缺陷,才推动了数据库技术的发展,产生了云端数据库技术,进而弥补了关系数据库的不足。

2 云端数据库

2.1 Bigtable的介绍

Google在 2004 年初就开始研发了BigTable,到了2005年大概有100个左右的服务使用BigTable。BigTable 让Google在提供新服务时的运行成本降低,最大限度地利用了计算能力。

Bigtable是一个大型,容错,自我管理的分布式存储系统,并用于管理分布在成千上万台服务器上的结构化数据[4]。它是建立在GFS分布式文件系统[5]、Scheduler分布式集群调度、Lock Service分布式的锁服务[6]和 MapReduce编程模式[7]基础之上的系统。

2.2 Bigtable的架构

1) Bigtable的数据模型

一个Bigtable(大表)是一个稀疏的,分布的,持续的以及多维的排序的数据映射。这个映射由行主键,列主键和时间戳进行索引[4]。每一项值在映射中是一系列不被解释的字节元组即(row:string,column:string,timestamp:int64)string。

在Bigtable的数据模型中,所有的数据都存放在表格单元中,每一行表示一个事物的数据内容,其所在列表示这个事物的唯一标志,其所对应的时间戳表示这个事物在某个时间上的状态即具体的数据内容。关系数据库只能反映当前时间上事物所处的状态,而Bigtable不仅能显示事物当前所处的状态,而且还可以记录某个事物的过去某个时间所处状态。Bigtable的数据模型如图2所示。

2) Bigtable的架构

与目前的关系数据库类似,BigTable也是客户端和服务器端的联合设计,使得性能能够最大程度地符合应用的需求。

BigTable系统依赖于集群系统的底层结构,一个是 Google的分布式文件系统(GFS),一个是分布式的集群任务调度(scheduler),还有一个分布式的锁服务(Lock Service)。BigTable使用Lock Service来保存根数据表格的指针,即客户端用户可以首先从Lock Service锁服务器中获得根表的位置,进而对数据进行访问。BigTable使用一台服务器作为主服务器,用来保存和操作元数据。主服务器除了管理元数据之外,还负责对tablet服务器(即一般意义上的数据服务器)进行远程管理与负载调配。客户端通过编程接口与主服务器进行元数据通信,与tablet服务器进行数据通信[8]。

Bigtable的架构由Bigtable master、Bigtable tablet servers和Bigtable client library三部分组成,如图3所示。

Bigtable master存储了许多由大量的tablets组成的表。主要负责指派tablet到tablet的各个服务器上,并检测tablet服务器的增减和服务程序装载满与否,进行实时的分配任务,使tablet服务器负载均衡并回收GFS文件系统中的垃圾文件。此外,它还处理模式更改,如表和列簇的创建。

每一个tablet服务器用于管理一部分tablets,通常有10-1000个tablet和处理客户端用户的读/写请求。tablet是由大表以行为单位分隔而成的。每个tablet保存了连续的行,然后别分配到各个tablet服务器上。

Bigtable client library是客户端用户和Bigtable服务器通信的接口。用户通过Bigtable client library接口来读数据和写数据等操作。

3 关系数据库与云端数据库的比较

3.1 两者架构的区别

关系数据库架构与云端数据库中的Bigtable架构主要区别如表1所示。

3.2 基于架构的比较分析

通过对关系数据库架构和云端数据库中的Bigtable架构的分析,可以从以下几个方面对两者进行比较:

1) 数据模型

在关系数据库中创建的表是一张二维表包括行和列,使用简单的数据类型对结构化的数据进行存储。但对于非结构化的数据的存储,因为关系数据库要保持数据冗余度低这一优点,所以关系数据库的设计会比较复杂且困难。而Bigtable创建的类似于二维表,但事实上不是二维表,它是由行主键、列主键、时间戳三个域组成的多维map。虽然Bigtable存储数据的冗余度比较高,但是Bigtable比关系数据库的二维表多了一个域――时间戳域,时间戳域可以记录事物的不同时间时的状态。另外Bigtable是以一条记录为原子对数据进行操作的,所以Bigtable不仅可以对事物的当前状态进行更新,还可以对事物的过去状态进行查询。在这一点上,关系数据库是不支持历史查询的。

2) 数据的存取方式

在关系数据库中用户对数据进行查询、添加、修改及删除等的操作是使用SQL语言。对于处理海量及复杂数据时,使用SQL语言对多个关联表进行操作就可能会显得非常繁琐。Bigtable并非支持SQL语言的数据库,而是以map 函数方式的,以列导向的数据库。Bigtable对数据的存取是以一行记录为原子进行的,不必关联其他的表,那么数据存取的速率要比关系数据库要高。

3) 数据迁移能力

关系数据库提供了一些简单的数据类型,在环境发生变化比如应用平台或者是编程语言所提供的数据类型与关系数据库所提供的不一致时,那么数据之间的转化过程将会相当复杂而且还会增加成本。而Bigtable所提供的数据类型只有字符串类型,所有数据都是以字符串的形式进行处理,因此Bigtable在进行数据迁移时相比关系数据库要容易并且成本也要比关系数据库要低得多。

4) 支持事务

关系数据库为了保持数据的完整性和一致性,提供了事务处理功能。关系数据库在处理简单事务方面,显现出了关系数据库的优势。但是在处理繁琐的事务方面,比如执行了n条SQL语句来对多个关联的数据表进行处理,执行效率就会显得比较低。目前,Bigtable还不支持事务处理功能,但是Google已经考虑到了该功能,一旦Bigtable支持了多行数据的事务支持,执行效率将会大大提高。

总之,云端数据库在处理非结构化数据时要比关系数据库的效率高,更适宜在多节点的服务器集群上工作,比关系数据库更适应环境的变化,最大的优点是使用成本比关系数据库要低得多。

4 结束语

本文通过对关系数据库架构和云端数据库架构的比较分析,可以得出云端数据库在许多方面要比关系数据库占优势,也就是说云端数据库技术具有很大的发展前景。虽然云端数据库技术还不够成熟,再加上各大关系数据库供应商对关系数据库技术的不断改进以及对查询算法进行优化,但是随着云端数据库技术的不断成熟,将会得到广泛的应用,进而逐步会取代关系数据库成为数据库中的主流。

参考文献:

[1] Chang F,Dean J,Ghemawat S,Hsieh WC,Wallach DA,Burrows M,Chandra T,Fikes A,Gruber RE.Bigtable:A distributed storage system for structured data.In:Proc.of the 7th USENIX Symp.on Operating Systems Design and Implementation.Berkeley:USENIX Association,2006:205-218.

[2] 瞿裕忠 胡伟 郑东栋 仲新宇. 关系数据库模式和本体间映射的研究综述[J].计算机研究与发展,2008,45(2):300-309.

[3] Fay Chang,Jeffrey Dean,Sanjay Ghemawat,Wilson C.Hsieh,Deborah A.Wallach Mike Burrows, Tushar Chandra, Andrew Fikes,Robert E.Gruber.Bigtable: A Distributed Storage System for Structured Data,OSDI,2006:1-5.

[4] Ghemawat S,Gobioff H,Leung ST.The Google file system.In:Proc.of the 19th ACM Symp.on Operating Systems Principles.New York:ACM Press,2003.29-43.

[5] Dean J,Ghemawat S.MapReduce:Simplified data processing on large clusters.In:

第6篇

【关键词】数据库设计;单元测试;集成测试

一、数据库设计

本系统为面向关系数据库的关键字查询系统,在实验中本文选取了IMDB 数据集,为了进行实验,将数据集整理为以下七个表数据结构。

实验数据集(电影信息数据库):

Actor(演员表)、Consume(设计师)、Director(导演信息)、Business(投资)、Editor(编辑)、Color(颜色信息)、Keyword(关键词)。本数据库抽象的数据库关系E-R图如图1所示。

二、单元测试

为保证代码中SQL语句的正确性,需要对数据库中数据进行查询检测,当输入关键字为“black”时,查询结果如图2所示。

通过外键mvname的连接,再查询Business关系表,显示结果如图3所示。

图3说明当关键字是“black”时查询出来的actor表中,与business中mvname相同的值没有。当关键字为“a”时查询两表,显示结果不为空,如图4所示。

按照上述方法和SQL语句依次查询检测其他关系表。

三、集成测试

在确定系统代码中关键字转化的SQL语句都正确的前提下,进行系统测试,即进行关键字检索测试。

(一)当输入的关键字为为单关键字时,关键字分析过程比较简单,假设检索关键字选择“keyword”,查询结果如图5所示。

关键字“keyword”为表名,直接输出keyword表即可。

(二)当输入的关键字为多个时,情况比单个的复杂一些,假设检索关键字选择“director color”,检索结果如图6所示。

显示的结果中,包含director和color均为表名时两表合一的元组;director为表名color为color表中属性名时,通过mvname、mvyear、setname、episode、made、explantaion等属性值相等连接后的元组;以及director为表名、color为director和color两表中的属性值时,同样通过mvname、mvyear、setname、episode、made、explantaion等属性值相等连接所得元组。这三种情况合到一起即为关键字“director color”的查询结果。

四、结语

从单元测试的角度,在MySQL数据库中测试了系统代码中SQL语句的正确性。最后,系统测试中测试了系统的关键字检索功能,从单关键字和多关键字的角度验证了系统中的查询功能,保证了系统的正确性、可靠性。

参考文献

[1] Mac K,David J,Linda C.A hierarchical Dirichiet language model[J].Natural Language Engineering,1995,1(3).

第7篇

关键词:网络设计;关系数据库技术;储存功能;转换功能

一、关系数据库技术的功能

关系数据库技术的主要作用是为网络设计提供辅助功能,在关系数据库中包含各种各样网络设计所需的数据和信息,合理应用关系数据库技术可网络设计提供便利条件。促使网络设计更加完善,比如:在关系数据输入过程中,要先把对数据的赋值进行全面系统的分类处理,然后对这些数据进行整合和重组,促使网络设计能获得更加全面的数据参数和参考信息,促使网络设计效果和服务质量不断提升。

二、网络设计对关系数据库技术的需求分析

在计算机网络技术具有很强的开放性,安全性容易受到挑战,大大增加了管理的难度。为完整网络设计对安全性和性能的需求,就必须切实满足如下要求:高性能。网络设计需要应用到支持线速交换的骨干交换设备,才能确保数据交换的流畅性,在关系数据库中几乎包含网络设计所需的全部信息,合理应用关系数据库技术可为网络设计提供数据支持和理论指导。高质量。网络设计需要满足业务服务质量,应用业务数据通常情况下,都包含多种多样的形式,关键业务数据流在网络流量高峰期内,所需的响应时间会有响应的延长。因此,在具体设计过程中,为最大限度上满足网络设计的服务质量,高性能网络必须具备关系数据库的相关功能。网络的安全性。网络病毒、黑客等是目前影响计算机网络安全的主要因素。因此,网络设计中需要采取有针对性的手段和技术,禁止病毒的传播和黑客的攻击。

三、网络设计中关系数据库技术的具体应用

(一)应用思路

为满足计算机网络对高性能、高质量、高安全性的需求,在具体设计过程中,对网络的控制需要以设备分层结构的总线型为主要设计依据,在满足高性能、高质量、高安全性的基础上,提升网络技术应用范围的灵活性和有效性。关系数据库的基础就是数据的有效性,因此,在应用关系数据库技术时,需要重复结合对象技术,有针对的实现计算机网络对数据集的功能。此外,针对关系数据库存在不合理的产品,可在综合事务处理中进行及时纠正处理,全面体会网络数据系统的开放性和可扩展性。在关系数据库中结构比较清晰,简洁,配置协议的录入也可以轻松实现,并且协议中的数量,对网络涉及的难易程度并不会造成较大影响,大大提升了网络设计的可操作。关系数据库访问对象和网络设计形式之间具有非常密切的联系,因此,在进行计算机网络访问系统设计过程中,要充分结合关系数据库,可通过C语言编程的使用来完成访问工作。

(二)存储功能的实现

在网络数据处理中,XML(可扩展标记语言)是进行数据转换的主要标准,通过描述数据自身的意义来实现数据实体间复杂嵌套的关系连接。因此存储功能的实现主要包括以下两个方面:1.结构映射XML中文件类型定义比较复杂,需要先进行简化处理,生成文件类型定义图,具有的简化流程为:先进行层次嵌套关系的平面优化转换处理,将其转换为非嵌套定义;然后再对多个一元操作进行简化转换;最后把聚集转换为多个子元素,通过整合和归类的作用,构成一个子元素。在具体简化过程中,要完成文件类型定义图像关系模式的映射,通过共享内联法,为文件类型定义提供达先对独立的关系。再通过综合内联法,在父节点形成的关系表中,除直接后继节点之外,内联和入度都超过1的元素节点。2.模型映射XML文档在存储过程中,常用的方法有两种,一种是Edge法,主要过程为把XML文档当做图形结构进行处理,并在相应的关系表中,完成边界存储,而目标节点的区分通过flag来实现。Source主要应用在资源节点存储中,target则主要应用目标节点标识符的储存中。

(三)转换功能的实现

关系数据库中数据转换流程包括以下几个步骤:第一步,定义模式映射通过XSD格式来完成,进而实现目标数据库到XML模式映射的建立,此外,XSD格式和文件类型定义相比,可更好的定义类型,并且在网络设计中也容易实现数据之间的相互交换,可保证数据库中信息和数据的传输都是XML格式。第二步,当模式映射文件形成以后,还需要绑定同步模块,为后期XML的导入提供参考指导。第三步,在目标数据库中和本库中主要通过源数据库的使用,完成相关数据模式的对比,并判断其是否为同步的表结构,为创建异构模式映射文件提供数据支持。第四步,根据同步模式中的相关任务,形成对源数据库,所有的同步数据都可以通过该查询来获取。第五步,把关系数据库中查询到的结果进行同步处理,形成XML格式数据,并写入相应的文件中。

第8篇

>> 基于关系数据库的本体构建方法研究 面向关系数据库的装备领域本体构建研究 基于对象关系数据库的移动对象数据库管理系统的研究 基于UML模型的关系数据库设计 基于关系数据库的XML存储技术 基于.NET平台的关系数据库转换 基于架构的关系数据库与云端数据库比较分析 基于关系数据库的关键词查询研究 基于关系数据库的时态XML存取研究 基于关系数据库的动态工资管理系统研究 基于关系数据库的文件树存储策略研究 基于关系数据库的可适性系统研究  基于DOM的XML文档到关系数据库的数据转换方法 基于关系数据库的实时XML数据查询处理 浅谈关系数据库的数据保护策略 一种基于依赖关系的关系数据库语义模式提取方法 关系数据库查询优化策略研究 关系数据库查询优化策略与研究 XML文档与关系数据库数据转换的研究 WebService在LDAP与关系数据库之间数据同步的研究 常见问题解答 当前所在位置:),但该工具只能创建轻量级本体,映射简单,不能完全地对关系数据库中存在的概念进行建模。

2)德克萨斯大学的Sunitha Ramanujam提出了“Bi-directional Translation of Relational Data into Virtual RDF Stores”[5],即关系数据和RDF间的双向转换,并在D2R的基础上开发了工具D2RQ++。

3)中科院国家科学图书馆成都分馆的Shihan Yang等人提出“半自动化地从关系数据库中构建本体”,文中提出了利用中间件来实现关系数据库到本体转化的方法,并且提出了W-graph的中间件语言,W-graph映射语义使用与关系数据库和本体都无关的双向模拟等价图表示。中间件模式是动态的,当数据库模式或本体频繁变化时,该方法因此有很好的适应性。此方法不仅可以处理数据库模式而且也可以处理数据库中存储的实例。图形语义编辑工具的开发,提高了方法的可用性。

4)许卓明提出 “一种从关系数据库学习OWL本体的方法”,开发出了关系数据库模式到OWL本体转换原型工具DB2WO,并给出了实例验证。该研究首先给出了关系数据库模式和OWL本体的定义,其次定义了关系数据库模式到OWL本体的一组映射规则,然后开发了转换工具DB2WO。关系数据库模式信息通过读取关系数据库字典来提取。

5)陈和平等人提出“基于关系数据库的本体生成器的设计与实现”[6] 。该研究中首先指出需要解决的2个关键问题:(1)如何提取关系数据库的ER模式(2)如何定义由ER模式到OWL本体的映射规则。然后给出ER模式的提取一般可以通过查询该关系数据库的数据字典或应用数据库的逆向工程工具,接着给出了ER模式到OWL本体的10多条转化规则。最后,给出了本体生成器OWLFROMDB的功能模块结构图,并给出了实例验证。

6)中国人民理工大学的Peng Liu等人在2010第九届国际网格和云计算会议提出“基于关系数据库的本体自动构建”[7]。其思想跟前述许卓明、陈和平等一致:通过分析关系数据库模式,建立一系列的从关系数据模式到OWL的转换规则,然后给出了算法和流程图,最后给出了生成的本体的层次图。

7)W3C成立了 RDB2RDF研究组,致力于提供一个从关系数据库RDB到本体描述语言RDF的规范性的映射标准,到目前为止,该研究小组提出了几个关于RDB到RDF映射语言的内部草稿,还未成为标准。

3 研究瓶颈及建议

现在,基于关系数据库生成本体的研究已经引起越来越多研究者的兴趣。基本思路无非是从关系数据库中提取出数据模式,然后设定数据模式转化为本体的规则,然后编程实现。每个研究人员都提出了自己的转化规则,而并没有人对规则的可行性给出评价结果。至今,尚未有研究者或机构给出权威的转换规则。转换规则的可行性和合理性应该是未来研究的重点。

4 结束语

利用关系数据库中结构化的数据作为数据源来构建本体的方法,已经引起了众多研究人员的重视,而随着W3C的介入, 必将使这种转换规范化。

参考文献:

[1] /RDF[EB/OL].

[2] /TR/owl-features[EB/OL].

[3] Du Xiaoyong, Li Man, Wang Shan. A Survey on Ontology Learning Research[J] .Journal of Software, 2006,17(9): 1837-1847.

[4] Sunitha Ramanujam ,VaibhavKhadilkar.Bi-directional Translation of Relational Data into Virtual RDF Stores[C].2010 IEEE Fourth International Conference on Semantic Computing,2010,61:268-276.

[5] Shihan Yang,Ying Zheng.Semi-Automatically Building Ontologies from Relational Databases[J].IEEE,2010:150-154.

第9篇

关键词:关系;E-R图;实体

中图分类号:TP301 文献标识码:A 文章编号:1009-3044(2013)25-5587-02

数据库技术的应用实例在我们生活中随处可见,如企业、学校、医院、超市、社区等,可见数据库技术的重要性不言而喻。而在普通高等院校、三本或高职类(非)计算机专业的群体中,数据库课程也是作为其中一门必修的公共基础课存在。开设的课程有SQL Server、Oracle、Visual FoxPro、Access等,无论是哪门课程,它们都有一个共同的特点,都是关系型数据库[1],而关系型数据库在我们现实生活中应用也是最为广泛的。下面我们就以一个简单的实例来阐述关系数据库设计的基本原则和实践应用。

1 数据库系统结构与逻辑设计

1.1 三级模式和二级映像结构的优点

数据库系统的标准结构为三级模式和二级映像。三级模式分别为内模式、模式和外模式,二级映射为内模式/模式映像和模式/外模式映像。如图1所示:

模式即概念模式,该模式是对数据的逻辑结构和特征的描述,是对所有应用程序的数据综合抽象得到的全局数据视图;外模式是所有应用程序或用户访问数据的逻辑结构和特征的描述;内模式是数据的底层物理存储结构的描述。二级映像保证了各级数据在不破坏底层数据存储结构的基础上完成上层数据的所有操作任务,保证了数据库中数据较高的逻辑独立性和物理独立性。

1.2 逻辑设计内容和方法

计算机处理客观应用问题的一般框架如图2所示:

在设计开发数据库时,逻辑设计的内容有应用语义环境下如何设计表、定义表、定义表间关系、如何操作表等,可通过文字或一套业务实体表格来描述。大致可通过两步来完成,第一步:从应用问题中提取核心概念建立概念模型;概念模型可用实体—关系图(E-R图)来描述;第二步基于一定的转换原则建立关系数据模型。关系模型的表示形式为:R(U, F),其中,R为关系名,U为属性集,F为函数依赖关系。转换原则有以下七种[2][3]:

1)一个实体型转换为一个关系模式,通俗的说即一个实体对应一张二维表。

2)一个1:1实体联系可转换为一个独立关系模式,也可以与任意一端对应的关系合并。

3)一个1:N实体联系可转换为一个独立关系模式,也可以与任意一端对应的关系合并。

4)一个M:N实体联系一定转换为一个独立的关系模式,特别是带有属性的联系。

5)三个以上实体间的多元联系可转换为一个关系模式。

6)相同码的关系模式可以合并。

7)同一实体集的实体间联系与对应的关系合并为一个关系模式。

除此之外,数据库的设计不仅需考虑理论支持,还需要结合实际的业务流程。

2 应用实例解析

其中,实体“学生”、“课程”和“系别”分别转换为三个关系模式,照应原则1;另外有两个联系,“所属”联系可以独立转换为一个关系模式,也可以与“学生”和“系别”任意一个关系合并,照应原则3;而“选课”联系自身具有特殊属性“成绩”,特殊性体现在该属性既不能作为“学生”的属性存在,也不能作为“课程”的属性存在,故必须将该联系转换为一个独立的关系模式,照应原则4。综上所述,E-R图可被转换为4个关系模式,根据对该领域的认识和经验为每个关系添加属性描述其特征,同时指定关系的主码、外码以及用户自定义完整性约束,最终实现E-R图到关系模型合理正确的转换,建立数据库同时进一步优化其性能[4]。

原则4实际应用的例子有很多,又如销售商与供应商之间的供销关系问题。在该业务流程中三个主要的实体:供应商,源材料和工厂。他们之间时刻有着密切的业务往来,而在三个实体间共同存在“供销”联系,而该联系具有属性“供应量”,供应量就如同上述的“成绩”一样,需转换为一个独立的关系模式来描述。

3 结束语

文中以关系数据库基本理论为依据展开阐述数据库逻辑设计的内容和方法,并以简单实例来论证理论方法的指导意义和应用效果。

参考文献:

[1] 萨师煊,王珊. 数据库系统概论[M].北京:高等教育出版社,2000.

[2] 袁国铭.关系数据库设计的总体原则[C].第七届中国通信学会学术年会论文集,2010:168-171

相关文章
相关期刊