关系数据库范例6篇

前言:中文期刊网精心挑选了关系数据库范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

关系数据库

关系数据库范文1

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

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.

关系数据库范文2

关键词:关系数据库;云端数据库;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:

关系数据库范文3

>> 基于关系数据库的本体构建方法研究 面向关系数据库的装备领域本体构建研究 基于对象关系数据库的移动对象数据库管理系统的研究 基于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.

关系数据库范文4

关键词:关系数据库;关系模型;数据查询;多表查询

中图分类号:TP311.52

关系数据库是基于关系模型作为数据的组织方式的,它借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。它是由埃德加・科德于1970年首先提出的,并配合“科德十二定律”。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。

1 数据查询

所谓数据查询(数据检索)就是从关系数据库的数据表中找出用户所需的数据,只要表(关系)中存在,则可以通过各种各样的方式将它找出来,SQL的查询功能就是实现这一功能的。本文主要研究讨论多表查询。

在实际应用中,由于一个关系数据库根据需求分析后得到很多表,而且表与表之间互相存在一对一,一对多或是多对多的表间关系,这些表中的数据往往互相有较为紧密的复杂联系,在这种情况下,要查找用户所需的数据时就得用多表查询才能实现用户的查询目的和要求,比如在仓库数据库中分别有四张表,仓库表,职工表,订单表和供应商表,这四个表两两存在一对多的表间关系,一个仓库可以有多名职工,一名职工只能属于一个仓库;一名职工可以经手多笔订单,一笔订单只能由一名职工经手;一家供应商可以完成多表订单,一笔订单只能由一家供应商完成,在实际应用中,如果要根据仓库表中的数据作为条件查询检索供应商表中的数据时,必须得用基于多表的连接查询才能完成。

1.1 简单连接查询。简单连接查询的SQL语句格式可总结如下。Select from 注:连接条件是两个表的主外键相等,主表表名.主键=子表表名.外键 如:仓库表.仓库号=职工表.仓库号。

如果from后面跟两张表,则是两个表的简单连接查询,有一个连接条件,如果from后面跟三张表,则有两个连接条件,如果from 后面跟四张表,则有三个连接条件,依此类推。而且查找数据的条件和连接条件必须用and连接,连接条件之间也用and连接。

示例:在仓库管理数据库的四张表中检索出回民所在仓库的仓库信息。对应的SQL语句为:select 仓库表.* from 仓库表,职工表 where 民族=’回’ and 仓库表.仓库号=职工表.仓库号。

从这个简单连接查询实例来看。在基于多表的简单连接查询中,第一先确定最终要查询的数据所在的字段来自于几张表的几个字段,查找数据的条件涉及到几个表的几个字段,其次根据表间关系确定查询涉及到几张表,然后确定连接条件。且where是必选项。

1.2 嵌套查询。嵌套查询的意思是,一个查询语句(select-from-where)块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询或主查询。内层查询也称子查询或从查询。嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询需要内层查询的结果来支持,但内层查询不需要外层查询的支持。示例:Select城市from仓库表where仓库号in(select仓库号from职工表where工资=4532)。

在这类嵌套查询中,带有IN或ONT IN谓词的嵌套查询在实际应用中用的最多,这里的IN相当于集合运算符∈。本文在阐述嵌套查询中就以带有IN或NOT IN谓词的嵌套查询进行阐述,带有比较运算符的子查询、带有ANY或ALL谓词的子查询、带有EXISTS谓词的子查询就再不做详细阐述了。

1.3 超连接查询。超连接查询分为内连接和外连接,外连接又分为左外连接,右外连接和全外连接。如果表中不匹配的数据不需要出现在查询结果中,则用内连接。如果在查询结果中两个表中不匹配的数据都要出现在查询结果中的话,则用全外连接,其对应表中对应字段用NULL表示。其SQL语句格式为(以基于两张表的超连接为主):Selectfrom on [where 查找数据的条件]。示例(以全外连接为例):select仓库.仓库号,城市,面积,职工号,工资 from 仓库表 full join职工表 on 仓库表.仓库号=职工表.仓库号JOIN连接格式在连接多个表时的书写方法要特别注意,在这种格式中JOIN的顺序和ON的顺序正好是相反的。

2 三种多表查询的特点及规律

在以上研究的三种多表查询中,基于多表的简单连接查询中,要查询的数据所在的字段可以是来自于一张表的字段,也可以是来自于多张表的字段,而查找数据的条件可以来自于一张表的字段,也可以来自于多张表的字段,即使没有查找数据的条件,但连接条件必须得有,在其SQL语句格式中,where是必选项。

在嵌套查询中,通过实际应用可以得出,嵌套查询不管由几个查询语句块组成,它们都是基于单表的简单查询构成的,而且最内层的查询结果就是其外层查询的条件,没有内层查询的结果,就不可能得到外层查询的结果,执行顺序都是由内往外执行的。

在超连接查询中,这种查询往往是在有关系的表中出现了所谓的不匹配数据时,根据用户的不同需要而使用的查询,到底选用哪一种主要取决于查询结果中要不要出现不匹配的数据和出现哪个表中的不匹配数据而定。

如果要查找的数据来自于多张表的多个字段,则可用连接查询和内连接查询,查询结果相同。如果要查找的数据来自于一张表的字段,而条件发生在不同的表中,则可用连接查询,嵌套查询和内连接查询,查询结果相同。

3 结束语

SQL的查询功能,尤其是多表查询有很大的灵活性,在实际应用中要视具体情况来决定用哪一类,这需要在实践中摸索总结,只有这样才能对SQL语句的查询功能运用的得心应手。

参考文献:

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

[2]贺桂英.数据库原理及应用―SQL Server 2008[M].北京:中国人民大学出版社,2013.

关系数据库范文5

【关键词】关系数据库 计算机 网络设计 应用 优越性

信息时代的到来,为计算机网络技术的发展提供了一个新的发展机遇,在人们的生产与生活中发挥着重要的作用。近年来,我国对计算机网络技术的发展给予了高度的关注,并投入大量的人力、物力支持,使计算机网络技术得到了充分的发展。然而由于我国计算机技术起步较晚,且对计算机技术的应用还不够成熟,因此,必须采取吸收并借鉴国内外先进技术,促进计算机网络设计的成熟与发展。

1 关系数据库概述

计算机网络设计离不开对数据库的辅作用,它能够提高计算机应用软件的有效性,对一些重要的信息及数据进行科学的管理。近年来,计算机网络规模实现了一系列的壮大,数据及信息量也有所增长,这就对数据库提出了更高的要求。新时期,关系数据库技术的提出引起了社会各界的广泛关注。它是在传统数据库技术的发展基础上,对计算机网络设计起到辅作用的一种新型技术。在关系数据库技术的发展初期,还只是对一些简单的表格进行数据处理与分析,从而形成一个完善的数据库系统,不仅便于储存,而且使处理后的数据能够一目了然,一旦需要某一方面的数据,便能够通过简单的调度来实现,具有无限的优越性。

2 关系数据库技术在计算机网络设计中的应用原理

计算机网络技术发展至今,也包含了丰富的内容与类别。但从计算机的数据库技术来说,就能体现计算机技术的丰富性与多样性。首先,数据库技术在发展过程中包含了多个种类。而关系数据库作为其中最为先进的一种数据库技术,它能够对数据进行连接,具有极强的适应性。在计算机网络技术中得到了广泛地应用。一般情况下,计算机网络数据是相对独立的,在实际的操作与处理过程中,关系数据库能够将与之相关的任意计算机数据进行相互关联,对这些数据进行统一处理与分析,数据处理的范围比较广,综合性比较强,满足了计算机数据的多样性与丰富性的要求。目前,大多数的计算机网络设计都将关系数据库作为日常数据处理与分析的首选,体现出其在计算机网络技术中的优越性。关系数据库是一种相对独立的数据库技术,它有着自己专门的信息管理平台,一般情况下可通过网络编程语言实现与客户的信息交流与共享,具有全面性与便利性的特征。计算机数据库系统主要包括数据库的连接与访问对象,两者相互独立,分别向客户提供信息共享与交流。对与使用者来说,则可以通过C语言获取数据库信息,并能够实现交流。

3 关系数据库技术在计算机网络设计中的优越性

3.1 数据存储功能性强

关系数据库在计算机网络设计中具有明显的应用优势。其中最为突出的一点就是,关系数据库能够对大量计算机数据进行科学储存。当今的计算机网络设计的不断发展,在各行各业中的应用也更加普遍,因此,其所包含的内容与容量也不断扩大,这对计算机的数据存储功能来说是一个巨大的挑战。关系数据库作为一种先进的数据库技术,能够对计算机网络设计中所包含的大量的数据进行存储,并利用独立的数据信息管理平台,对这些数据信息进行综合的科学分析与管理,为计算机网络技术设计诸如了新的活力与生命力,这也在一定程度上提高了网络设计的效率。计算机操作人员可借助关系数据库的强大储存功能,在实际的计算机网络操作中,收集、整理数据参数,进而进行快捷的数据处理与分析,对计算机网络技术设计起到良好的辅作用。数据信息的管理是计算机网络设计面临的一大问题,而关系数据库技术的应用能够有效保障计算机网络设计的存储功能,促进计算机网络系统职能的有效发挥。

3.2 数据转换简单、快捷

目前,关系数据库还有效的促进了计算机网络设计中数据的转换功能。大多数的计算机网络设计工作,不可避免地会涉及到社会生产活动的各个方面,这就要求计算机网络能够实现不同数据之间的转换,促进计算机网络设计的软件系统正常运行。因此,对不同数据的转换工作成为计算机网络技术发展的重中之重。关系数据库具有关联性的特点,它能够从不同的数据信息中发掘其存在的共同特征,并为此建立起一定的联系,保障各类数据之间的相互转换,对计算机网络设计中的复杂问题达到有效的解决。一旦数据转换问题得到了解决,那么计算机网络设计在日常运行中便能够起到良好的作用与效果。需要注意的是,在进行信息存储时,要优先选用应用范围比较广的数据,确保计算机网络设计对数据及信息的不同需求,进而保障计算机网络设计顺利进行。

4 结束语

随着我国社会主义现代化建设的不断发展,计算机网络技术已成为人们日常生活与工作中重要的组成部分,这对计算机网络技术设计来说是一个巨大的挑战。因此,要抓住当前的发展机遇,充分利用先进的关系数据库技术,使其为计算机网络技术设计提供必不可少的支持,促进计算机技术的进一步发展。

参考文献

[1]孙睿.关系数据库技术在计算机网络设计中的运用[J].网络安全技术与应用,2014,12:41-42.

关系数据库范文6

关键词;工作流;活动;UML;数据库

引言

办公自动化(office automation,简称OA)建设不仅要重视信息的充分共享,而且更强调各方面相互之间的协作,这种协作关系是通过工作流技术实现的。国际工作流管理联盟WMFC(WorkflowManagement Coalition)给出如下的工作流定义;文档、信息或者任务按照定义好的规则在参与者之间传递,从而完成整个业务目标的自动化处理过程。在部队信息化建设中,工作流代表了部队信息化试点中办公环境的工作过程,包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描述。在应用上,工作流的定义、执行、监控需要一套工具,称之为工作流管理系统。考虑到部队信息化试点工作流管理系统需求的复杂多变,因此,工作流管理系统应该具有良好的扩展性和可重用性。

1工作流管理系统的设计相关术语

・业务流程(Business Process);在具有组织机构功能的组织结构中,能够实现业务目标和策略的相互连接的过程和活动集合。

・过程定义(Process Definition);业务流程的形式化描述,用来支持系统建模和运行过程的自动化。过程可分解为一系列子过程和活动,其定义包括描述过程的起始、终止的活动关系网络以及一些关于个体行为的信息,具体而言,即构成过程的各个活动及其各活动的关系、组成成员的角色、应用中的数据结构等。

・活动(Active);实现过程逻辑步骤的工作任务的描述,一般分为手动操作和自动处理两类。活动是过程执行中可被工作及调度的最小工作单元,要求有人或者机器的参与。

・过程/活动实例(Process/Active Instances);实际运行中的一个过程活着活动、它们是以业务流程的过程定义或活动为模板创建的。每个实例代表一个能独立控制执行,具有内部状态的线路,可被外界通过标识进行读取。实例是真正执行的工作流。

工作流管理系统(workflow management sys-tem)是定义、管理并根据预定义逻辑执行工作流的系统,其核心是工作流引擎(workflow engine),提供流程的创建、管理和执行功能。引擎的执行又是以工作流定义数据、控制数据和应用相关数据为根据的,因此,要设计一个工作流管理系统首先必须给出数据模型。一般包括三节阶段;模型建立阶段、模型实例化阶段和模型执行阶段。

模型建立阶段,利用工作流建模工具,将信息化试点的工作过程转换成计算机可以处理的工作流模型。

模型实例化阶段,完成每个过程定义所需要的参数,分配每个活动执行所需要的资源。

模型执行阶段,完成实际工作流实例的执行。

2工作流引擎的数据模型建立

2.1工作流分析

正确描述工作流动态流转的过程,应考虑动态流转中的参与者、流转戒指、任务的执行和任务转移路线等。UML提供的活动图可以用于工作流程的建模,活动图包括活动状态和动作状态,活动状态表示过程中命令的执行和工作流中活动的进行,动作状态与活动状态类似,但是它是原子活动,一个活动状态可能被分解为多个动作状态。可以按照一定的控制结构转移活动状态,活动图提供了顺序流控制结构,用分叉和结合表示控制结构,分支和合并表示根据条件转移的活动。

任何工作流系统必须能够处理WFMC定义了五种工作流原语,原语系统归纳了业务过程中通常出现的共性流程模型,对应活动图顺序流和并发流的控制结构。

2.2设计思路

工作流引擎的设计应分别考虑数据模型和功能模型。根据WFMC标准,数据模型包含组织机构模型和信息模型,而功能模型则包含工作流引擎和五类标准接口。

组织机构模型;组织机构模型通常为树状的层次结构,定义了工作过程中各项活动的参与者和所属部门,在一个工作流过程中,具体的一个人是没有意义的,必须给定确定的角色。

信息模型存储对工作流程的描述和具体工作实例的运行信息,因此,将模型分为工作模板和工作实例两部分。工作模板用于定义工作流程,工作实例是工作模板的实例化。

组成工作流的每个执行单元称为活动(Activity),每个工作都是由一系列相互关联的活动组成的,这些相互关联构成了活动路由信息。一个工作实例可以看作是以系列具体工作和它们之间的逻辑关系构成的一个有机整体。

每个工作流实例都有一个创建者,他是启动此工作的人。

每个活动都有一个拥有者,他是活动的执行者。

活动有六种类型;开始活动、结束活动、人工活动、虚活动、同步活动、决策点。开始活动表示工作的开始,结束活动表示工作的结束。虚活动表示不需要人员参与的活动,在进行了一定处理之后系统自动转入后续活动。同步活动把多个逻辑分支同步到一个节点,用于后续实现工作流原语中的“分叉与结合”。

两个活动之间的转换有三种类型;无条件、有条件和数据。无条件转换表示前面节点结束后必须启动后面的节点;有条件转换是指前面节点结束后有条件转入后面节点;数据转换表示前面节点的输出数据作为后面节点的输入数据。

工作流实例的状态有初始、运行、挂起、激活、终止、完成。活动实例的状态有运行、挂起、激活、终止、完成。由工作流服务组件负责状态之间的转换。

2.3数据模型

根据上述分析给出了实体关系模型,限于篇幅,很多细节省略了。

工作流定义;静态定义工作流的主要信息。包括自动生成的工作ID、工作流名称、工作流类型(自动型和人工型,自动型不需要人工参与,由工作流引擎自动执行)、工作流生命周期(每个工作流在该期限内还没完成直接死亡)。还包括两个重要的方面;一是工作流附件,包含了工作流运行过程中的一些信息,例如请假申请工作流中的请假申请表,公文流转中的word形式的公文;二是工作流流程描述,包含了若干活动(Activity),这些活动通过一定的顺序组织。

工作流附件;静态定义了附件ID、工作流ID、附件名称、附件类型。

工作流流程;静态定义了工作流的流程由若干活动组成,包括了所属工作流ID、活动名称、岗位ID(定义了操作该活动的岗位)、上一个活动、下一个活动。

工作流实例;动态定义了工作流实例信息,实例化之前需要准备的一些信息,然后交给工作流引擎。该表描述了所属工作流ID、创建者ID、完成时间和完成标志。

工作流实例过程;以活动为单位描述工作流实例的处理过程。该表是工作流流程表和工作流实例表的连接表,包括了工作流实例ID、工作流实例对应活动ID。

工作项表;动态描述参与该工作流实例处理的参与者的工作情况,包括自动生成的工作项ID、工作项名称、当前工作项的状态、执行的动作和时间。

3实现及应用

工作流引擎根据数据模型的相关信息和应用的具体状态控制工作流的流程的自动流转。WFMC给出了工作流引擎的基本功能结构,如图6所示。

一条工作流建立之后,当用户生成一个工作流实例,则将该工作流实例存入工作流实例表,再由工作流引擎分配第一个活动到工作项表中,并将其状态设置成就绪状态,同时在工作流实例过程表中产生一条记录。工作流执行者或者IT工具选择就绪状态的工作项执行,当一个活动完成之后,由工作流引擎选择后继活动,并在工作流实例过程表中增加一条新的记录,如果后继活动为空,则该工作流已经结束,这时需要根据结束节点的类型对工作流实例的状态进行修改。如此反复执行就可以实现对工作流的控制。

笔者根据本文所述的数据模型的基础上,利用python语言实现了基于Djrdngo平台的工作流引擎,并成功用于部队信息化管理试点系统中。

上一篇数据库系统

下一篇数据库原理