导语:如何才能写好一篇关系数据库,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
前言
从上个世纪60年代至今的半个世纪,数据库技术伴随着信息技术的发展不断发展,到目前共经历了人工管理阶段、文件系统阶段和数据库系统阶段,在数据库系统阶段又经历了网状数据库、层次数据库和关系数据库阶段,进二十来年,关系数据被广泛使用,发展成主流,但随着互联网技术的蓬勃发展,关系数据库使用遇到了一些新的问题,为应对这些新的问题,近两年来非关系数据库NOSql越来越引起人们的注视,得到了快速发展。
1关系数据库
1.1关系数据库的简介
支持关系模型的数据库系成之为关系数据库,是目前各类数据库中使用最为广泛的数据库系统。关系数据库在经过二十几年的发展,已经变的功能强大,使用广泛,产品成熟的数据库系统,现在使用主流的数据库都为关系型数据库,比较熟悉的如SQLServer、Mysql、Oracle、Sybase、Informix、DB2等。在网络上使用比较广泛的是SqlServer、Mysql和Oracle。
1.2关系数据库的特点
关系数据库是支持关系模型的数据库系统。而关系模型是由二维表来表示实体和实体间联系的模型。使用二维表存储数据,对使用者来说很直观,更容易理解。使用关系数据库的优势主要表现在以下几个特性:
(1)操作方便性。通过开发应用程序和数据库连接,用户能方便的对数据库中数据进行操作,特别对没有数据库基础的人,也可以通过数据库管理系统,直接在数据库中操作。
(2)易于维护性。关系数据库在完整性约束中提供了实体完整性、参照完整性和用户定义的完整性,通过完整性约束可以大大降低了数据存储的冗余及数据不一致的概率。
(3)访问数据的灵活性。关系数据库中提供了诸如视图,存储过程,触发器,索引等对象,是访问数据更加灵活。
1.3目前关系数据库面临的问题
随着互联网技术的发展,尤其是web2.0技术使用,更注重用户和服务器以及用户和用户之间的交互作用,用户成为既是网站内容的浏览者,也是网站内容的制造者。例如:博客(BLOG)、社会网络(SNS)、以及现在比较热的微博等。对于在使用web2.0技术并且访问量比较大网站,使用传统关系数据库就会遇到一些问题,主要表现在以下几点:
(1)对数据库高并发读写的需求
Web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,无法使用动态页面静态化技术,因此数据库的并发负载非常高,往往要达到每秒上万次的的读写请求,此时服务器上的磁盘根本无法承受如此之多的读写请求。
(2)对海量数据的高效率存储和访问的需求
(3)对数据库的高扩展性和高可用性的需求
在基于Web的架构中,数据库是最难进行横向扩展的,当用户量和访问量增加时,数据库没有办法像WebServer那样简单的通过添加更多的硬件和服务结点来扩展性能和负载能力,对于很多需要24小时不间断服务的网站来说,对数据库系统的升级和扩展往往需要停机维护。
2非关系数据库NoSql
2.1NoSql概述
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的格式。此类数据库产品有TokyoCabinet/Tyrant、BerkeleyDB、MemcacheDB和Redis。
(4)图存储系统。图形关系的最佳存储模式。如Neo4J、FlockDB。
(5)对象存储。类似面向对象语言的语法操作数据库,通过对象的方式存取数据。此类数据库产品有db4o、Versant。
(6)xml数据库。高效存储XML数据,并支持XML的内部查询语法。此类数据库产品有BerkeleyDBXML、BaseX。
2.2NoSql数据库的优势
相对于关系数据库,Nosql数据库的优点主要表现在:
(1)容易扩展和高性能。NoSQL数据库种类很多,但是都有一个共同的特点就是去掉关系型数据库的关系型特性。数据之间彼此无关系,这样就非常容易扩展。可以存储海量数据。同样由于数据之间无关系,数据库的结构简单,在处理大数据量时,NoSQL数据库会有出色的读写性能。
(2)灵活的数据模型。NoSQL数据库不使用传统的关系数据库模型,而是使用如key-value存储、文档型的、列存储、图型数据库、xml等方式存储数据模型,使用这些模型都无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。同时根据需求可以选择合适的模型。
(3)经济性
在数据量和访问量比较大的情况下,传统的关系数据库对服务器的要求比较高,甚至使用专用硬件设备,这样造价就比较高。而NoSQL数据库的易扩展的特点使配置较低服务器上运行,也可以使用低配服务器组成集群来使用,并且有研究证实使用NoSql数据库基于低配硬件的分布式存储解决方案比现在的高端关系数据库更加可靠。这样就极大的降低了投资成本。
2.3NoSql的不足
(1)成熟度方面。NoSQL数据库的实际应用,近几年才逐渐开始使用,并且大部分NoSQL的产品都还处于实验和不断完善的阶段。在产品成熟度和稳定性方面,NoSq数据库远不及发展了二十多年且已被广泛使用的关系数据库。
(2)商业支持方面。大部分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期
关键词:数据库转换;.NET;XML
RelationalDatabasesConversionBasedon.NETPlatform
HUShu-gang
(DongyingVocationalCollege,Dongying257091,China)
Abstract:CombiningtheadvantagesofXMLtechnology,.NETplatformprovidesthefeasibilityofdataconversionbetweenrelationaldatabases.OneexampledemonstratedtheSQLServerdatabasecanbeconvertedtoanXMLfile,andthentheXMLfilecanbeconvertedtootherdatabase.Ithasrealizedthedataconversionbetweenrelationaldatabases.
Keywords:databaseconversion;.NET;XML
1引言
网络资源中通常包含多种格式和管理系统的关系数据库,为了实现资源的共建共享,需要完成多种数据库之间的数据转换。不同的开发商采用分布式对象技术和各自的思路来实现数据库的互操作,如OMG的CORBA技术、Sun公司的EJB/RMI和微软的.NET技术等。
2数据库转换思路
2.1数据库的导入[4]
为了导入SQLServe数据库,先用Connection对象连接数据库,演示示例中用SqlConnection连接了服务器METC\SQLEXPRESS的数据库books.mdf。将数据库读入DataSet。DataSet对象主要存放数据库的DataTable的对象,可以使用DataAdapter建立DataSet对象。尽管DataSet可以存储数据,但仍需要使用DataAdapter对象来创建和初始化各种表,还需要使用Fill()方法来把查询结果移入到DataSet中去,再将数据写入到XML文件。关键源代码如下。
StringstrTableName="books";
StringstrConnection="server=METC\\SQLEXPRESS;database=books;uid=sa;pwd=;trusted_connection=yes";
StringstrSql="select*from"+strTableName;
SqlConnectionobjConn=newSqlConnection(strConnection);
SqlDataAdapterobjAdapter=newSqlDataAdapter(strSql,objConn);
DataSetobjDSet=newDataSet();
objAdapter.Fill(objDSet,"temp");
XmlTextWriterobjXmlWriter;
Stringstrtemp1=Request.PhysicalApplicationPath;
Stringstrpath=strtemp1+"newxml.xml";
objXmlWriter=newXmlTextWriter(strpath,null);
objXmlWriter.WriteStartDocument();
objXmlWriter.WriteStartElement("xml");
for(inti=0;i
{
objXmlWriter.WriteStartElement("menu");
for(intj=0;j
objXmlWriter.WriteAttributeString(objDSet.Tables["temp"].Columns[j].ColumnName,objDSet.Tables["temp"].Rows[i][j].ToString());
}
objXmlWriter.WriteEndElement();
objXmlWriter.WriteEndDocument();
objXmlWriter.Close();
2.2数据的导出[5-6]
以下演示示例是将以上创建的“newxml.xml”文件转换为Access数据库demo.mdb中的一个表“newxml”。首先建立与目标数据库的连接,也就是通过OLEDBProvider提供的OleDBConnection对象建立与Access数据库demo.mdb的连接。当然,该示例也可通过OLEDBProvider提供的其他连接数据库的对象来连接Oracle、Sybase或DB2这样的数据库以及Excel表格。以下关键源代码部分省略了命名空间的引用、系统自生成代码和对数据库中表是否建立的检查部分。
privatevoidTableCheck()
{OleDbConnectionoledbConn=newOleDbConnection(textBoxOleDb.Text);
Try
{oledbConn.Open();
DataTableschemaTable=oledbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,newobject[]{null,null,tableName,"TABLE"});
StringsqlCmd="";
if(schemaTable.Rows.Count<1)
{sqlCmd="createtable"+tableName+"(";
{sqlCmd=sqlCmd+dataTableXml.Columns[i].ColumnName.ToString()+"char(100),";}
sqlCmd=sqlCmd.Substring(0,sqlCmd.Length-1)+");";
OleDbCommandoledbCmd=newOleDbCommand(sqlCmd,oledbConn);
oledbCmd.ExecuteNonQuery();}
catch
{Message.Text="数据库不存在或无法创建表.";}
finally
{oledbConn.Close();}
privatevoidTableInsert()
try
foreach(DataRowdrindataTableXml.Rows)
{stringsqlCmd="insertinto["+tableName+"](";
{sqlCmd=sqlCmd+dataTableXml.Columns[i].ColumnName.ToString()+",";}
sqlCmd=sqlCmd.Substring(0,sqlCmd.Length-1)+")values(";
for(intx=0;x
{sqlCmd=sqlCmd+"'"+dr[x].ToString().Replace("'","''")+"',";}
oledbCmd.ExecuteNonQuery();
3结束语
通过以上实例,演示了以XML为中间转换数据源,在.NET平台上方便地完成异构关系数据库之间的数据转换和共享。基于.NET平台,充分利用XML技术的优势,来解决异构数据库集成的问题,能够给用户提供一个透明的全局数据库,方便用户的使用,还使得系统在可扩展性、安全性、可维护性等方面有所提高。
[1]LairR,Lefbvre开发人员手册[M].张俊,译.北京:电子工业出版社,2002:38-39,169-193,246-488.
[2]BrayT,PaoliJ,Sperberg-McQueenCM,etal.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.
关键词:网络设计;关系数据库技术;储存功能;转换功能
一、关系数据库技术的功能
关系数据库技术的主要作用是为网络设计提供辅助功能,在关系数据库中包含各种各样网络设计所需的数据和信息,合理应用关系数据库技术可网络设计提供便利条件。促使网络设计更加完善,比如:在关系数据输入过程中,要先把对数据的赋值进行全面系统的分类处理,然后对这些数据进行整合和重组,促使网络设计能获得更加全面的数据参数和参考信息,促使网络设计效果和服务质量不断提升。
二、网络设计对关系数据库技术的需求分析
三、网络设计中关系数据库技术的具体应用
(一)应用思路
为满足计算机网络对高性能、高质量、高安全性的需求,在具体设计过程中,对网络的控制需要以设备分层结构的总线型为主要设计依据,在满足高性能、高质量、高安全性的基础上,提升网络技术应用范围的灵活性和有效性。关系数据库的基础就是数据的有效性,因此,在应用关系数据库技术时,需要重复结合对象技术,有针对的实现计算机网络对数据集的功能。此外,针对关系数据库存在不合理的产品,可在综合事务处理中进行及时纠正处理,全面体会网络数据系统的开放性和可扩展性。在关系数据库中结构比较清晰,简洁,配置协议的录入也可以轻松实现,并且协议中的数量,对网络涉及的难易程度并不会造成较大影响,大大提升了网络设计的可操作。关系数据库访问对象和网络设计形式之间具有非常密切的联系,因此,在进行计算机网络访问系统设计过程中,要充分结合关系数据库,可通过C语言编程的使用来完成访问工作。
(二)存储功能的实现
在网络数据处理中,XML(可扩展标记语言)是进行数据转换的主要标准,通过描述数据自身的意义来实现数据实体间复杂嵌套的关系连接。因此存储功能的实现主要包括以下两个方面:1.结构映射XML中文件类型定义比较复杂,需要先进行简化处理,生成文件类型定义图,具有的简化流程为:先进行层次嵌套关系的平面优化转换处理,将其转换为非嵌套定义;然后再对多个一元操作进行简化转换;最后把聚集转换为多个子元素,通过整合和归类的作用,构成一个子元素。在具体简化过程中,要完成文件类型定义图像关系模式的映射,通过共享内联法,为文件类型定义提供达先对独立的关系。再通过综合内联法,在父节点形成的关系表中,除直接后继节点之外,内联和入度都超过1的元素节点。2.模型映射XML文档在存储过程中,常用的方法有两种,一种是Edge法,主要过程为把XML文档当做图形结构进行处理,并在相应的关系表中,完成边界存储,而目标节点的区分通过flag来实现。Source主要应用在资源节点存储中,target则主要应用目标节点标识符的储存中。
(三)转换功能的实现
关键词:大型关系数据库;Oracle;教学改革
随着计算机技术的发展,计算机应用系统的开发越来越多,需要大批掌握大型关系数据库的专业技术人员,培养和造就这样的专业人员已经成为时代的需求,是大学计算机教学中一个十分重要的方面。由于大型数据库在计算机应用系统开发中的重要地位和作用,突出抓好大型关系数据库的教学已经别无选择。同时,大型关系数据库是一门实践性很强的课程,学生在学习完数据库基础理论后,通过大型关系数据库的学习,可以深化数据库理论的理解,提高并培养综合运用知识、解决实际问题的能力。对学生科研能力、工程能力和创新能力的培养具有重要作用。因此,对这门课的教学模式值得进行认真的研究与探讨。
1大型关系数据库Oracle的教学现状
1.1没有合适的教材和合理的大纲
我校计算机系最初采用Oracle公司厂家提供的培训教材,其内容较多,分体系框架、PL/SQL指令、性能调整和备份与恢复等内容[1],而大学教学中该课程的学时有限,教学过程中很难做到面面俱到,要想让学生更进一步深入领会并形成应用能力存在一定困难。后来学校又采用了ORACLE的技术书籍进行教学,但是这些书籍基本侧重点各不相同,导致教学过程中内容不够全面,重点难点不易把握,教学效果也不十分理想,很难适应高校教学的需要,很难满足学生求知的欲望,更主要的是不能够适应社会的需求。
1.2重理论,轻实践
1.3重技术,轻应用
2教学模式的改进方法
针对目前存在的问题,进行大型关系数据库课程教学的改革尝试,我们认为应该注重把握好以下几个方面。
2.1精心挑选、把握精髓,选择较好的教材
2.2把握理论和实验相结合这一教学过程中的关键点
2.3注重知识点在工程开发实例中的综合运用
3总结与展望
设立大型关系数据库选修课的目的,就是要培养适应社会需求的具有实践能力和创新精神的数据库管理技术人才。在现有的教学资源条件下,如何有效地进行教学改革、完成教学目标、培养合格人才,已经成为该项课程教学的迫切任务。
大型关系数据库的教学对教师和学生提出了更高的要求,需要在教学实践中勤于探索,即时总结,不断改进,以明确的培养目标来选择教学内容,以具体的实际应用为教学导向,以真实的系统开发设计实践为重点[5],就能够在教学实践中取得好的教学效果,提高学生的理论与实践水平,培养学生的专业素养。只要我们真诚地为学生着想,为社会服务,就一定能够使大学教育教学工作受到学生的欢迎,得到社会的承认,不断提高我们的办学水平,为国家为社会培养更多更好的有用人才,服务社会主义和谐社会建设,推动中华民族的伟大复兴。
参考文献:
[1]安志远.数据库系统原理及应用实训教程[M].北京:中国水利水电出版社,2004.
[2]罗琼.数据库应用型课程的设置与实践[J].科技信息,2009(15):36-37.
[3]员亚利,高春玲,陈红梅.计算机专业“大型数据库”课程教学研究与实践[J].计算机教育,2008(12):3-4.
[4]祝朝映.任务驱动在计算机教学中的探索与实践[J].教职论坛,2003,(10):56-57.
[5]向琳,左德承,罗丹彦,等.“计算机设计与实践”课程创新性实践教学探索[J].计算机教育,2007(3):16-18.
TheImprovementoftheTeachingPatternofLarge-scaleRelationalDatabaseOracle
QIANGYan
(CollegeofComputerandSoftware,TaiyuanUniversityofTechnology,Taiyuan030024,China)
【关键词】计算机;网络设计;关系数据库;研究分析
引言
计算机网络设计中可以运用的关系数据库的设备以及技术是非常多样化的,常见的数据库技术包括:层次模型数据库技术、关系数据库技术、网状模型数据库技术以及层次模型数据库技术。在所有常见的数据库技术中,关系数据库是最为科学的,在现实的运用中的推广与使用最为广泛,适合于现代化生活中比较复杂的数据管理。关系数据库的管理系统非常容易获得,已经成为了人们首选的数据库技术。在计算机网络设计中得到了大范围的使用。随着信息时代的到来,给计算机网络技术的发展提供了全新的发展机遇,近年来,我国对计算机网络技术的发展给予了高度重视,投入了大量的人力、物力。使计算机网络技术得到充分发展。由于我国计算机技术起步比较晚,对计算机技术的应用还不够成熟,所以一定要采取并且吸收国内外先进技术,促进计算机网络设计的成熟与发展。
1关系数据库概述
2在计算机网络设计中关系数据库的运用原理
3关系数据库在计算机网络设计中的运用优势
3.1数据存储功能强大
随着科学技术的快速发展,促进了网络拓扑系统的优化,在计算机网络设计中所涉及到的数据信息在不断的增加,传统的数据库信息主要由人工来进行录用,信息的存储量有限,在数据库操作运作的过程中经常出现失误。现代化的关系数据库技术的应用凸显出非常明显的优势。关系数据库系统中存储着大量的数据信息,可以无限容量的输入或者录入数据信息,在计算机网络的设计中,可以通过数据库的的辅助功能对数据信息进行调度,推复杂的信息进行处理。关系数据库的数据系统操作起来非常便捷,出现失误的概率非常小,操作准确便捷,目前在各种数据库中,关系数据库的运用最为广泛,比较适合现代化复杂的数据管理。
3.2数据灵活转换
大多的计算机网络设计中,不可避免的会涉及到社会生产的多个方面,要求计算机网络一定要实现不同数据之间的转换,促进计算机网络设计软件的正常运行。所以对不同数据之间的转换工作已经成为了计算机网络技术发展的重点。关系数据库在计算机网络设计中的应用具有简便的数据转换功能,通过关系数据库可以将计算机中大部分的软件按照不同的需求进行转换,转换的功能非常高效。关于软件的转换主要是关系数据库将计算机网络设计中的计算机软件与网络管理软件进行相互链接,从而实现了计算机中大部分软件之间自由转换。一旦数据转换的问题得到解决,那么计算机网络设计在日常的运行中就会起到良好的效果。
3.3辅助设计功能
3.4概念单一
关系数据库是建立在严格的数学概念基础之上,概念比较单一,实体与实体之间都存在必然的联系,数据结构简单清晰、数据的存取路径对用户透明,所以关系数据库技术具有更高的数据独立性和安全保密性。
4结束语
关系数据库可以对海量信息进行存储、利用以及转化,在计算机网络设计中的运用可以使操作更加准确便捷。随着科学技术的快速发展与进步,对计算机网络设计是一个巨大挑战,对计算机网络的设计需要高度重视,抓住当前的发展机遇,逐渐的将关系数据库技术运用到计算机网络设计中,使计算机网络设计更加优化,促进我国计算机技术与信息技术的稳定发展。
参考文献
[1]李远英.计算机网络设计中关系数据库技术的应用探析[J].通讯世界,2016-11-25.
[2]徐闯.计算机网络设计中关系数据库技术的应用[J].信息技术与信息化,2016-03-25.
[3]朱晓宁.关系数据库技术在计算机网络设计中的运用[J].智能城市,2016-04-25.
[关键词]关系数据库SQL查询对策
在各类大型应用软件的数据库中,都存在大量的数据信息和记录,经常要对它们进行各种数据操作。SQL(StructruedQueryLanguage)作为结构化查询语言,是大型计算机操作关系数据库的标准查询语言,同时也广泛地应用到小型计算机的数据库管理系统中。它是一种高度非过程化的语言,即只要用户按其语法规则写出符合操作要求的语句,而并不需要告诉系统应如何执行SQL语句,就可得到所要求的结果。随着数据库技术的广泛应用,在数据库程序的开发过程中,大量的工作是要进行数据查询和检索处理。本文从SQL查询语句执行的过程入手,对其执行效率进行分析,并给出参考性建议和优化策略。
一、SQL语句执行过程解析
在平时书写SQL查询语句时,虽然每个人的写法不尽相同,而且有时个别子句顺序并不影响操作结果,但是在各种数据库管理系统中,标准的SQL的解析顺序为:
1.FROM子句,组装来自不同数据源的数据;
2.WHERE子句,基于指定的条件对记录进行筛选;
3.GROUPBY子句,将数据划分为多个分组;
4.使用聚合函数进行计算;
5.使用HAVING子句筛选分组;
6.计算所有的表达式;
7.使用ORDERBY对结果集进行排序。
通过以上SQL语句的解析过程,我们可以对SQL查询语句进行优化处理。SQL查询语句的核心结构是SELECT…FROM…WHERE,了解了这个基本结构,我们可以从以下几个方面对其进行优化处理。
二、效率分析及优化对策
(一)从From子句入手
From子句后面接单表或者多表,通常情况下接受来自不同数据源的多表。如果是单表,一般情况下对表进行快速全表扫描。如果是多表的情况,查询设计优化器将采取自右向左的顺序依次读取数据表。如以下语句:“Fromtable1,table2,table3”,优化器将优先读取table3表,然后是table2表,最后是table1表。在进行From子句的多表连接时,就需要结合条件子句WHERE进行分析,需要遵循下面的规则:1.当WHERE后面接的条件能够一次性过滤某个表的大量记录时,应优先处理该表。2.如果WHERE后面接的条件不能过滤掉大量记录时应该优先考虑处理记录数最少或者索引关键值最少的表。
(二)从条件子句WHERE入手
(1)建立索引字段的列比没有建立索引的要快;(2)主索引要比普通索引快;(3)单索引要比符合索引快;(4)有条件约束要比没有条件约束要快。
此外,WHERE子句通常采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。根据以上原则,我们可以判断出以下四个语句中哪个选项语句效率最高。
Select*Frommobilewhere(mobileno='13775637677')andbegINtime>
{^2009-1-308:20:11}andbegintime
B)SELECT*Frommobilewhere(mobileno='13775637677')andbegINtime
{^2009-1-308:20:11}andbegintime>{^2009-1-308:20:11}
C)SELECT*Frommobilewherebegintime
{^2009-1-308:20:11}and(mobileno='13775637677')
很显然,综合以上原则C选项效率最高。
(三)从GROUPBY和HAVING子句入手
在SELECT语句中,GROUPBY语句的作用是对记录进行分组(划分成较小的组),使用聚合函数返回每一个组的汇总信息,而HAVING子句限制返回的结果集。在一个SQL语句中可以有WHERE子句和HAVING子句。HAVING与WHERE子句类似,均用于设置限定条件。WHERE子句的作用是在对查询结果进行分组前,将不符合WHERE条件的记录过滤掉,而HAVING子句的作用是筛选满足条件的组,即在分组之后过滤数据,但它不能单独使用,只能配合GROUPBy语句使用,该条件中经常包含聚组函数,使用HAVING条件显示特定的组,也可以使用多个分组标准进行分组。虽然HAVING子句可以起到过滤的作用,但是要尽量避免使用HAVING子句,HAVING只会在检索出所有记录之后才对结果集进行过滤。这个处理需要排序,总计等操作。如果能通过WHERE子句限制记录的数目,而且能尽早地把不满足条件的记录过滤掉,那就能减少这方面的开销。
(四)从谓词等方面入手
在SELECT语句中,由于实际需要,查询语句会经常出现谓词。常用的谓词有EXIST,NOTEXSIT,IN,NOTIN等,巧用谓词也会提高SQL语句的执行效率,可参考以下原则编写SQL语句。
1.Where子句中尽量不要使用ISNULL或ISNOTNULL的语句,因为它们不会使用索引。
2.WHERE子句尽量不要将通配符(%)放在搜寻词首出现,通配符(%)在搜寻词首出现不会使用索引。
3.用EXISTS代替IN。在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接。在这种情况下,使用EXISTS(或NOTEXISTS)通常将提高查询的效率。
4.用表连接代替EXISTS。通常来说,采用表连接的方式比EXISTS更有效率。
5.用EXISTS代替DISTINCT。当提交一个包含一对多表信息(比如班级表和学生表)的查询时,避免在SELECT子句中使用DISTINCT。一般可以考虑用EXIST替换。
6.WHERE子句尽量少使用NOT或是,应该成OR来实行,使用OR时应该把结果集小的条件放在前面。
7.UNION改用UNIONALL,UNION要对合并的结果进行排序,UNIONALL不排序。
8.ORDERBY子句中尽量不要使用非索引列。
三、结语
通过对SQL查询语句执行过程的分析,可以从以上几个方面对其进行优化改进,从而提高了数据库查询和检索的效率。当然,具体的查询语句还要根据具体需要,并结合具体的数据库系统而定。只有多总结多积累才能写出高质量高效率的查询语句,当然这只是提高数据检索的一个方面,在其他方面的设计也要进行优化,如对表建立必要的索引,减少表之间的连接,或尽量在索引属性列上建立连接等。总之,通过以上几个方面的综合优化,一定会使数据库查询与检索效率有很大的提高。
[1]王振辉、吴广茂,SQL查询语句优化研究[J].计算机应用,2005,25(12).
[2]徐凤梅,关系数据库中SQL查询语言的优化策略[J].广西轻工业,2009,126(5).
[3]邓文艳,基于关系数据库的查询优化技术[J].太原科技,2007(12).
[4]杨克昌,VisualFoxPro程序设计教程[M].长沙:湖南科学技术出版社,2004.
[5]李莹、代勤,关系代数运算与SQL查询的对应关系[J].内蒙古农业大学学报(自然科学版),2003,24(3).
数据库技术发展至今已有40多年的历史,它作为数据管理的有效手段,大大促进了计算机应用技术的发展。从早期的文件系统到层次数据库和网状数据库,从关系数据库到面向对象数据库,以及面向不同应用的时态数据库、演绎数据库等等,均向人们展示了数据库技术的广阔应用前景[2]。关系数据库,顾名思义是建立在关系数据库模型基础上的数据库,借助于集合代数、离散数学等概念和方法来处理数据库中的数据。关系数据库是一个被组织成一组拥有正规描述的表格,该形式表格作用的实质是装载着数据项的特殊收集体。这些表格中的数据以许多不同的方式被存取或重新召集而不需要重新组织数据库表格[3]。除了相对容易创建和存取之外,关系数据库具有容易扩充的优势。在最初数据库创造之后,一个新的数据种类能被添加而不需要修改所有的现有应用软件。目前主流的关系数据库有Oracle、SQL、Aceess、DB2、MySQL、SQLServer、Sybase等等[4]。根据本校办学规模和处理信息量,采用ACEESS作为本系统数据库的管理工具。
2数据库模型建立
2.1应用需求抽象
2.2数据库表关系建立
2.3数据库模式设计
2.3.1关系数据库设计中存在问题
2.3.2数据库模式的规范化
关键词:数字图书馆;信息组织;数据库技术
TheDatabaseTechnologyofDigitalLibraryInformationOrganization
LiuFen
(HuizhouIndustrial&CommercialSeniorVocationalSchool,Huizhou516008,China)
Abstract:Digitallibraryisnolongeranewconcept,hasundergoneaconsiderableperiodofdevelopment.Withinthisperiod,constructionofdigitallibrariesinmanyareashasbeengreatlyimproved,whichisaconceptandideas,convenientserviceisoneoftheimportantelements.Inthispaper,thehistoryofdigitallibrarydevelopmentstartedelaborated,followedbycombiningthecharacteristicsofdigitallibraries,emphasizingtheapplicationofdatabasetechnologyonlibraryorganizationandmanagementofinformationneed,andfinallyfocusedonthedatawarehouse,relationaldatabase,multimediadatabase,object-orienteddatabasetechnology,databasetechnologyandotherunstructuredinformationorganizationindigitallibraryapplications.
Keywords:Digitallibrary;Informationorganization;Databasetechnology
一、前言
数字图书馆的发展虽然已经经历了不是很长时期,但是相对于传统的图书馆而言,数字图书馆仍然是一种比较先进和现代化的方式。这项技术通常与先进的网络信息技术紧密连接,这是实现资源共享的主要方式之一。数字图书馆的信息资源需要进行组织和描述,以给使用者带来方便,所以应该探索一种适合数字图书馆信息组织的技术。经实践证明,数据库技术在数字图书馆信息组织方面便具有很大的潜力和优势。现阶段,数据库在我国数字图书馆的信息处理中已经得到较为广发的应用,大致上可以分为两大种类,第一类是应用数据库管理系统的软件进行了二次开发为用户提供查询服务。另外一种是,商业化的数据库。这一些数据库更新换代是相对迅速的、高效的。
数字图书馆中的信息资源不仅极为复杂,而且信息量又非常大,既有影像资料也有电子文本等各种格式,还有软件等其他形式,数字图书馆便是对这一些数字对象的集中分析、处理、整合以及输出整理等。数字图书馆信息组织的数据库技术的现状数字图书馆的信息组织的对象是数字信息资源,主要方式是对其进行选择、描述和整合等一系列的内容,以使其变得更加有序化,形成一个有机的整体,使资源的利用更加的方便和高效。数字图书馆信息组织是至关重要的,因为这直接关系到数据存储的质量以及所提供的信息服务的好坏,在总体上会直接影响到系统运行的性能。
二、数字图书馆的信息组织
图书馆的信息组织必须在一定的原则基础之上完成,这些原则主要包括多维揭示原则、非线性原则、以及选择性原则、标准性原则和完备性原则等。
三、数据库技术在数字图书馆信息组织中的应用
(一)数据仓库技术在数字图书馆信息组织中的应用
(二)关系数据库在信息处理上的应用
关系数据库在关系模型提出的基础上已经得到了长足发展,所以在结构化的数据处理方面具有很大的优势,在处理文本数据、管理事务等方面的优势也是显而易见的,但是此类数据库也有缺点,不能够满足一些高层次的要求,所以就出现了一些新的数据库扩充功能。同时,在多媒体的信息处理方面关系数据库比较适合于处理文本,但是不太适合处理多媒体的信息。实际上在数字图书馆中的很大一部分信息的处理还是依赖于关系数据库,例如各种统计数据、数值和事实数据库等。
(三)多媒体数据库在数字图书馆信息处理中的应用
随着数字图书馆的发展,出现了很多图像、声音以及视频等其他格式的信息,这些信息的传播和存储是必然离不开多媒体数据库的。
(四)面向对象的数据库技术在数字图书馆信息组织中的应用
面向对象的方法其实是一种程序语言,广泛存在于计算机行业的各个领域,不仅仅是一个面向对象的系统,还是一个数据库系统。用一种与客观世界比较直接的映射方式很好地实现了抽象、封装、复杂性控制、信息隐蔽等机制。但是,这种数据库的原理、适用范围以及方法等很多方面的内容并没有得到专业人士的一致认可,还存在一些分歧,并且这种数据库的工具、环境和对面向对象方法的支持程度都还有待进一步的完善。
(五)非结构化数据库技术在数字图书馆信息处理中的应用
文本、图像和声音等很多形式的信息是无法用数字或者统一的结构来表示的。非结构化数据库变主要是用来处理这一种类型的数据。这种数据库的独特优势便是支持重复字段、子字段以及变长字段,突破了关系数据库结构定义不易改变和数据定长的限制。非结构化的数据库在处理多媒体信息上是很轻松的,因为其记录是不定长的。
另外,数字图书馆的信息组织常使用到的数据库形式还有其他一些形式,这些数据库是维持数字图书馆信息安全以及传播的技术基础,数据库之间取长补短,充分发挥优势,可以更好地为数字图书馆的建设和发展做出贡献。
[1]汪鑫.数字图书馆建设中的数据仓库技术应用研究[J].科技创新导报,2010,29
关键词:数据库营销;数据仓库;数据挖掘;关联分析;联机分析处理
DiscussionaboutRealizingDatabaseMarketingSystem'sKeyTechnology
CHENPing,WANGLi-gang
(NanjingCollegeofInformationTechnology,Nanjing210046,China)
Abstract:Datamarketingthatusecollecteddataforecastcustomersfuturepurchasing.Firstcreatingaenterprisesdatabase,findingvaluablehiddeninformationinthedatabaseordatawarehouse,thenanalyzingdatainthedatabasebyusingdataminingtechnology,finallysummarizingthevaluableinformationintoastructuralmodel,thatarekeytechnologyofrealizingdatabasemarketingsystemsuccessfully.Itimprovesefficiencyandprofitofenterprisebutlowerthecost.
Keywords:databasemarketing;datawarehouse;datamining;relationalanalysis;OLAP
1概述
IT的发展提供了崭新的营销渠道和营销手段,如网上营销和数据库营销。网上营销只是提供一种新的信息沟通工具,而数据库营销则提供了一种全新的营销模式,因为它可使营销者更迅速、更准确低抓着消费者的需要,甚至能使营销者比消费者本人更了解其需要。所以在最近几年内,数据库营销的理念在行业内不断被提到,而且其技术也迅速得到发展。下面笔者就简单地谈一下实现数据库营销系统的关键技术。
2数据库营销
2.1数据库营销的概念
数据库营销(DatabaseMarketing)将营销数据建立成数据库,并通过对数据库内数据的分析,进行市场营销活动[1]。
2.2数据库营销的特点
与传统的数据库营销相比,网络数据库营销的独特价值主要表现在三个方面[2]:
1)动态更新
2)顾客主动加入
仅靠现有顾客资料的数据库是不够的,除了对现有资料不断更新维护之外,还需要不断挖掘潜在顾客的资料,这项工作也是数据库营销策略的重要内容。在没有借助互联网的情况下,寻找潜在顾客的信息一般比较难,要花很大代价。而在网络营销环境中,有超过50%的顾客愿意提供自己的部分个人信息,这样就便于营销工作的进行。顾客在登记的时候,一般是将信息填写在一些表格中,例如,我们注册会员用户时填写的信息。但是,营销人员在对顾客进行登记时需要从他们的实际利益出发,合理地利用顾客的主动性来丰富和扩大顾客数据库。在某种意义上,邮件列表可以认为是一种简单的数据库营销,数据库营销同样要遵循自愿加入、自由退出的原则。
3)改善顾客关系
2.3实现数据库营销的关键技术
数据库营销是运用收集到的数据来预测用户未来的购买行为,成功实现数据库营销系统的关键在于三方面组件的集成:存储在数据仓库或数据处理机中的事实数据;在数据库或数据仓库中寻找有价值的隐藏事件,使用统计技术或预测模型工具对数据进行分析,将有意义的信息归纳成结构模式,供企业决策时参考,这种技术就是数据挖掘技术;功能强大的展示工具[3-5]。
2.3.1建立数据库
首先,要把营销过程中需要的数据建成一个数据库,为了便于对具体以及过去的数据进行分析,一般建立一个数据仓库。
按照数据仓库之父W.H.Inmon的描述,数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策[4]。
整个数据仓库系统是一个包含四个层次的体系结构,具体如图1所示。
下面对图1中的部分组件进行介绍:
数据源:是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内外部信息。这些信息可以是存放在关系数据库中的数据,也可以是文档数据。
数据的存储与管理:是整个数据仓库系统的核心。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。
OLAP服务器:对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP、MOLAP和HOLAP。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。
前端工具:主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。
2.3.2使用数据挖掘技术分析数据
数据挖掘(DataMining)是从大量的、不完全的、有噪声的、模糊的、随机的数据中提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程[6]。
其主要任务是关联分析、聚类分析、分类、预测、时序模式和偏差分析等。
②聚类分析。聚类是把数据按照相似性归纳成若干类别,同一类中的数据彼此相似,不同类中的数据相异。聚类分析可以建立宏观的概念,发现数据的分布模式,以及可能的数据属性之间的相互关系。
③分类。分类就是找出一个类别的概念描述,它代表了这类数据的整体信息,即该类的内涵描述,并用这种描述来构造模型,一般用规则或决策树模式表示。分类是利用训练数据集通过一定的算法而求得分类规则。
④预测。预测是利用历史数据找出变化规律,建立模型,并由此模型对未来数据的种类及特征进行预测。预测关心的是精度和不确定性,通常用预测方差来度量。
⑥偏差分析。在偏差中包括很多有用的知识,数据库中的数据存在很多异常情况,发现数据库中数据存在的异常情况是非常重要的。偏差检验的基本方法就是寻找观察结果与参照之间的差别。
数据挖掘的主要流程是:定义问题、数据准备、数据挖掘、结果分析、知识的运用。
用于挖掘的对象有关系数据库、面向对象数据库、数据仓库、文本数据源、多媒体数据库、空间数据库、时态数据库、异质数据库以及Internet等。
目前,常用的数据挖掘有:神经网络方法、遗传算法、决策树方法、粗集方法、统计分析方法等。
数据挖掘能够基于顾客的年龄、性别、人口统计数据和其他类似因素,对顾客购买某一具体货物的可能性做出预测;识别出具有相似浏览习惯的顾客;辨别出具体的顾客偏好,以便提供改进的个人服务;找出高频率地被组合在一起的所有产品组。据此,公司可获得新顾客、留住老顾客、增加顾客的消费额。这样既降低了成本,又提高了营销的成功率。故数据挖掘的强大功能可以确保企业数据库营销的顺利开展。
[1]许多顶.网络数据库营销[J].商业研究,2002,9:119-121.
[2]陈晓红.企业信息化建设的模糊综合评判[J].运筹与管理,2003(6).
[3]杨丽,马玉磊,张丹.数据挖掘技术在CRM中的应用研究[J].新乡学院学报,2009,6:66-67.
[4]李石君,王汉飞,周洞汝.关系数据库中统计关系的挖掘和应用[J].计算机工程与应用,2000,(6):117-118.
[5]李从东,徐志英.基于数据挖掘的企业关系管理系统构建[J].现代管理科学,2009,8:23-25.
[6]韩家炜,堪博.数据挖掘:概念与技术[M].北京:机械工业出版社,2006:56-62.
2系统设计分析
2.1系统物理结构分析
本系统采用C/S(Client/Server,客户机/服务器)体系结构,即将数据库中的数据内容存放在远程服务器上,在各个客户机上安装相应的客户端应用软件进行操作使用。C/S体系的物理结构如图1所示。C/S结构的计算机软硬件平台可通过企业内部局域网连接起来。对于数控车间刀具管理系统,可以将开发完成的客户端应用软件安装在多个PC机站点上,由多个用户共同使用。数据的安全性通过SQLServer2000数据库安装时设置的身份验证和用户级别来保证,既保证了数据的共享性,也提高了工作效率。
2.2系统功能模型
通过对刀具信息管理系统功能进行分析,系统可分为以下几个模块:用户信息管理模块、权限设置模块、刀具参数管理模块、刀具出库管理模块、刀具入库管理模块、刀具信息查询管理模块、刀具借还记录管理模块和刀具库存预警模块(图2)。
2.3系统流程分析
根据刀具管理系统需要完成的任务和实现的功能,得出系统流程如图3所示。
2.4开发工具选择
考虑到车间本身的技术与软硬件情况,选用SQLServer2000作为后台的数据库管理系统。一方面,因为刀具管理系统本身是基于局域网操作的,采取的是C/S结构模型;另一方面,SQLServer2000是一种安全性高的真正的C/S体系结构,图形化用户界面,使系统管理和数据库管理更加直观、简单,丰富的编程接口工具为用户设计程序提供了更大的选择余地[3]。在选择前台开发工具时充分利用开发工具本身的性能,比如考虑其稳定性和可靠性、可视化和访问数据库的能力等,从常用的软件中,本文选用了VC++6.0。
3数据库设计
运用VC++的数据库接口技术,以SQLServer2000为后台数据库进行车间刀具管理系统“chejiantool_db”数据库的设计,其具体的设计步骤为:正规化数据库、建立数据库、建立表、建立关系、实现数据完整性等几个步骤。
3.1数据库概念结构设计
将分析得到的系统需求抽象为概念模型,在需求分析的基础上,设计出能够满足用户需求的各种实体以及它们之间的相互关系,这是整个数据库设计的关键。在这一设计原则的基础上,遵循正规化的数据库设计规则与关系数据库设计的3种范式(1NF~3NF),用正规的方法将数据分为多个所有字段值不可分割的数据表[4]。每个数据库表应有一个标识,不应有重复的值或列,并尽量避免含有空列。根据这一原则建立了用户信息表、刀具参数表、刀具基本信息表、刀具出库表、刀具入库表和刀具借还记录表等。表1以刀具基本信息表为例说明其结构。它由8个字段组成,其中刀具编号是该表的主键,通过此主键可与其他表相互关联。
3.2数据库安全性设计
3.3数据库完整性设计
在将刀具信息输入到数据库的过程中,由于某些特殊的原因,可能会造成对数据库的修改无效或者不一致的现象发生,从而导致程序数据库的崩溃。为了避免这种问题的发生,需要在数据库分析、设计完毕后,利用数据库自带的属性,对字段进行主键、索引、标识等约束,以保证数据库的完整性[5]。主要有以下3种方法:
(1)对于通过程序窗口操作输入的数据,可以通过客户端应用程序来保证数据的完整性。这样,一方面可把非法数据在提交数据库之前就过滤掉,另一方面可使用户及时得到操作反馈的信息(成功或失败),以便进行相应的操作。
(2)对于通过数据库直接输入的数据,可以通过服务器端数据库管理系统来实现数据的完整性。
(3)对于数据一致性的维护,可以由服务器端数据库的触发器或表定义的约束来实现。这样可降低客户端应用程序的开发量,提高应用系统的运行效率、可维护性及可靠性。
3.4建立数据库
数据库名称是chejiantool_db,实现步骤为[6]:
(1)打开SQLServer2000的企业管理器(企业管理器是SQLServer2000最主要的管理工具,几乎所有对SQLServer的管理工作,甚至是数据查询,都可以通过它来完成)。
(2)新建数据库,并输入数据库名称、数据文件和日志文件的位置。
(3)指定数据和日志文件。
(4)定义文件的大小和增长方式。
3.5创建数据库表及实体关系图
SQLServer2000提供了3种方法创建数据库表。其一,是利用表设计器创建表;其二,是利用数据库关系图创建表;其三,是利用Transact-SQL语句中的CREATE命令创建表[7-8]。本文选用第二种方式。在SQLServer企业管理器中,展开指定的服务器和数据库,打开chejiantool_db数据库,打开表设计器。在数据库中创建刀具基本信息表、刀具借还表、用户表、借还日志表等。
在表设计器中除了可以定义列名称、数据类型和长度外,还可根据需要定义以下属性,如精度、小数位数、是否允许为空、默认值、标识列等等。建立数据库表时,定义好各自的主键和外键,各表完成后,利用MicrosoftVisio2003“反向工程向导”或SQLServer2000企业管理器中的“操作/新建数据库关系图”即可获取系统E-R图。本文选择后者,结果如图4所示。
4过程中的数据库技术
程序的各个实现过程中,均采用了大量的SQL语句,由于篇幅有限,在各模块的实现过程中仅列出其中的一种功能实现的Transact-SQL代码[9-10]。
4.1刀具借用过程
4.2刀具归还过程
4.3刀具信息查询过程
刀具信息查询包括两部分:精确查询和模糊查询。精确查询可以按刀具编号、刀具名称、刀具材料等具体查询条件查询到精确符合查询条件的刀具信息记录;模糊查询可以查询同时满足刀具长度、刀具材料和刀具编号中一条或多条的刀具信息记录。其实现界面如图7所示。