论文部分内容阅读
1.建设数字图书馆的必要性
本人调查过一些中学的图书馆,由于受经费、人员素质、馆藏及网络化建设等因素的影响,拥有数字图书馆的并不多。本人认为一个图书馆要现代化发展,必须要有数字图书馆,建设数字图书馆是加快中学信息化步伐的需要,是改变馆藏现状、提高学生综合素质的需要,是为适应中学教学和研究性课题服务的需要。
建立现代化数字图书馆,技术人员是必不可少的,特别是当前网络技术发展快速,数字图书馆除了硬件要跟得上,后台设计也要有强大的支撑。后台设计,一般使用数据库,多数图书馆都使用SqlServer,SqlServer7.0就开始有了数据仓库,而数据仓库可以说是数据库的核心部分,下面简单介绍下基于数据仓库的读者服务建设。
2.使用数据仓库的必要性
随着当今计算机技术的发展,信息服务已经由客户自选变成服务端的PUSH服务,基于数据库的RSS(简单信息聚合)随之盛行,数字图书馆也推行RSS服务,可以让系统自动向读者的邮箱发送读者订阅的相关内容,这种RSS可以用java实现,也可以用xml,先创建一个实例,再创建一个根结点,添加根元素,然后添加主元素,如name、sex等,用save保存即可。
对一个大型图书馆来说,小型的数据库根本无法容纳太多信息,而这其中又有许多是不常用到的,或者说基本上一年才用得上一两次,把它放在常用数据库里,或者放在存储器里,肯定会造成服务端存储器运行率低,而在客户端显示为读者查询资料时间延缓,所以把数据放入数据仓库对一个大型图书馆会比较妥当。
数字图书馆提供个性化服务,参考咨询,公共图书馆还向政府部门提供决策参考服务,而现成数据库大多不能完全满足信息分析的需要,数据仓库是为了填补这个需要而出现的。
3.关于数据仓库的简单介绍
上面所说的这些,也可以由普通数据库进行,至于为什么用数据仓库,区别在于数据仓库的数据结构和快照功能以及信息分析功能。另外,图书馆管理系统的表结构设计刚好也与数据仓库的相似,如借书证号的唯一,借书证号办理时间的规律变化,图书条形码也是唯一的,图书入库时间,读者ID号,读书注册时间等等,都与数据仓库的数据结构类似。
数据仓库突出的地方是对海量数据的支持和快速的检索技术,而且有分析功能,能把大量的数据提炼成一些重要的信息,这是现有一些数据库无法媲美的。数据仓库中的数据可以储存在数组中,这样有规律的存放,使计算机每一次访问I/O能访问到大量的数据,或者说使每一次访问I/O代价最少。另外,可以在物理层上组织好数据,使一次访问I/O,能返回最高访问率的大量记录。而且数据仓库带来的“以数据为基础的知识”,它实际上是某种信息,而并非现在数据库所产生的数据,这些由数据仓库产生的信息,带有极大的参考性,可以让图书馆更容易分析读者的阅读需求而不用限于现实中的问卷调查,可以不必局限于大众化的阅读,更可以使公共图书馆的决策参考服务功能现实化。
3.1 数据仓库的特性
数据仓库有四个特性:面向主题性、数据集成性、数据非易失性、随时间变化性。这四个特性刚好说明,数字图书馆可以建立数据仓库,因为数据仓库中的数据是按照一定的主题域进行组织,数据是存放在数组中,而且是高度集成的,具有很强的稳定性,随时间变化而呈一定规律性的。在以上读者信息表设计中,ID号是关键字,Stim和etime则是关键字的时间元素,还有关键数据,如果没有时间元素,那就构不成数据仓库了,这种以“起始日期到结束日期”就是数据的连续组织,也就是序列数值,所以能够用数组存储起来。另外,数据由于其集成性,故访问速度较快,且具分析作用。
3.2 数据仓库的工作过程
数据仓库其实是一个运行过程,它包括数据获取、数据存储、数据访问三个过程,更确切地说应该是数据库里面的一部分。数据仓库是基于元数据建设的,而元数据是关于数据的数据,包括数据的数据结构、数据的操作方法和数据与数据之间的关系,元数据为访问数据仓库提供了一个信息目录(informationdirectory),这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的以及怎么访问这些数据。
数据仓库里面的事件是基于“快照”触发的,每个数据仓库在其内部都以“快照”的数据结构来作为中心组织的,所谓“快照”是由四个单元组成的:关键字;时间单元;关键数据;二级数据。引发快照的可以是业务活动,比如每一次新读者的注入;也可以是规律性的时间推移标志,比如一个月的结束等等。业务活动引起的事件是随机的,时间推移触发的事件是有规律性的,可预知的。
4.基于读者服务的数据仓库
4.1 建立关于读者服务的各数据表
在数字图书馆设置读者服务项目,首先要求在数据库建立各数据表,包括:读者信息表(userid,name,sex,usertypeid,stime,etime,remark),userid为关键key;读者类型表(usertypeid,usertypename,stime,etime,remRrk),usertypeid为关键key;书目信息表(bookid,title,author,company。indexnumber,stime,etime,remark),bookid为关键key;书刊内容表(contentid,contentbody,stime,etime,remark),contentid为关键key;书评表(idlbody,usefid,bookid,stime,enme,remark),id为关键key;书评内容类型表(contenttypeid,contenttypename,stime,etime,remark),contenttypeid关键key。这里面的stime和etime的设计是非常必要的,下面有将会分析到。
4.2 建立上述各类衷的储存过程
如用SQL语言:
create procedure pr_table_push (@bookid int,@contentid int,@criricismid int) as
select A. indexnumber,A. ride, A. author, A. company, B.contenthody, C. criticism
from book A,content B,crificism
where A. bookid=@bookid,B. contenrid=@contentid,,C.crificismid = @crificismid
return
go
其他各储存表,均上述代码相似。
4.3 数据操作过程
首先建数据储存器,建一个dataset,用来储存各类表,以便操作,而datatable可具体使用各数据表,datarow则便于进行行的插入与删除操作。
然后使用SQL查询语句:
select A.indexnumber, A. ride, A. author, A. company, B.contentbody,C. criticism from book, content B.criticismwhere A. bookid=@bookid,B. contentid=@contentid, C.criticismid= @criricismid
使用数据适配器dataadapter,用executereader()遍历,并把数据填入datatable,然后把数据装入dataset,再用databind()进行数据绑定,具体语句这里不再详述。最后用push mail把用dataset打包的数据发送至读者邮箱,数据段则显示为xml形式。
4.4 使用数据仓库的作用分析
以上述的读者服务模块来讲,userid是读者信息表的关键字,sfime和etime则是时间单元,name、sex和remark是关键数据,usertypeid是二级数据。读者的每一次借书或还书,都将触发这个读者数据的快照。这个时候,这个读者与图书馆所发生的借书还书欠费等等都会被数据仓库追踪到,而且这些读者历史记录是具有连续性的。或者一个月到了,也会触发数据仓库的追踪,这就是“快照”里面的时间单元起作用。其实在数据仓库里,还有简要记录这一功能,简要记录代表的是多个事件,是由许多详细记录的聚集而创建的。我们可以把读者(比如领导)数据取值汇总等等,把一段时间的数据收集起来,创建简要记录,既可以让读者自己获取所有自己相关的信息,也可以为我们自己图书馆提供一个分析作用,如果一条简要记录不够,可以创建多条简要记录,不过这要在服务器上完成,因为这要管理到大量的数据。
许多图书采购员或参考咨询员都会抱怨,我根本不知领导的阅读需求,或者我根本不知某类型读者的阅读习惯,我怎么去为他们订购这些书籍,为他们做参考咨询服务呢?其实,我们做参考咨询时,必须对读者的不同特点作个性化处理,所以与读者进行对话时,可以进行得个性化些,而且要包括读者有可用的书籍信息。如:
“您知道我们进购了一些关于广州经济研究的书籍吗?”
“我们刚进了关于广东省广州市经济政策研究……”
“我们对这批书籍进行了一次分析,选出了……,将为您提供……的服务”
这个对话过程只需要几分钟,然而却可以为读者提供个性化服务做准备。在数据仓库里,我们会有一个读入和分析读者的历史记录,然后将这些记录汇总为信息扫描出来,能在短时间内为参考咨询员提供一个齐全又有用的读者信息,也为采购员提供一个购书方向。如果可以定期由我们所设定的程序对读者数据仓库进行分析,那我们所需要的就是把数据仓库分析出来的信息读懂,因为数据仓库会把读者的信息分析出来汇成一个文件,那我们的参考咨询员或者其他人员或者读者,所需要耗费的时间将为大大减少。
本人调查过一些中学的图书馆,由于受经费、人员素质、馆藏及网络化建设等因素的影响,拥有数字图书馆的并不多。本人认为一个图书馆要现代化发展,必须要有数字图书馆,建设数字图书馆是加快中学信息化步伐的需要,是改变馆藏现状、提高学生综合素质的需要,是为适应中学教学和研究性课题服务的需要。
建立现代化数字图书馆,技术人员是必不可少的,特别是当前网络技术发展快速,数字图书馆除了硬件要跟得上,后台设计也要有强大的支撑。后台设计,一般使用数据库,多数图书馆都使用SqlServer,SqlServer7.0就开始有了数据仓库,而数据仓库可以说是数据库的核心部分,下面简单介绍下基于数据仓库的读者服务建设。
2.使用数据仓库的必要性
随着当今计算机技术的发展,信息服务已经由客户自选变成服务端的PUSH服务,基于数据库的RSS(简单信息聚合)随之盛行,数字图书馆也推行RSS服务,可以让系统自动向读者的邮箱发送读者订阅的相关内容,这种RSS可以用java实现,也可以用xml,先创建一个实例,再创建一个根结点,添加根元素,然后添加主元素,如name、sex等,用save保存即可。
对一个大型图书馆来说,小型的数据库根本无法容纳太多信息,而这其中又有许多是不常用到的,或者说基本上一年才用得上一两次,把它放在常用数据库里,或者放在存储器里,肯定会造成服务端存储器运行率低,而在客户端显示为读者查询资料时间延缓,所以把数据放入数据仓库对一个大型图书馆会比较妥当。
数字图书馆提供个性化服务,参考咨询,公共图书馆还向政府部门提供决策参考服务,而现成数据库大多不能完全满足信息分析的需要,数据仓库是为了填补这个需要而出现的。
3.关于数据仓库的简单介绍
上面所说的这些,也可以由普通数据库进行,至于为什么用数据仓库,区别在于数据仓库的数据结构和快照功能以及信息分析功能。另外,图书馆管理系统的表结构设计刚好也与数据仓库的相似,如借书证号的唯一,借书证号办理时间的规律变化,图书条形码也是唯一的,图书入库时间,读者ID号,读书注册时间等等,都与数据仓库的数据结构类似。
数据仓库突出的地方是对海量数据的支持和快速的检索技术,而且有分析功能,能把大量的数据提炼成一些重要的信息,这是现有一些数据库无法媲美的。数据仓库中的数据可以储存在数组中,这样有规律的存放,使计算机每一次访问I/O能访问到大量的数据,或者说使每一次访问I/O代价最少。另外,可以在物理层上组织好数据,使一次访问I/O,能返回最高访问率的大量记录。而且数据仓库带来的“以数据为基础的知识”,它实际上是某种信息,而并非现在数据库所产生的数据,这些由数据仓库产生的信息,带有极大的参考性,可以让图书馆更容易分析读者的阅读需求而不用限于现实中的问卷调查,可以不必局限于大众化的阅读,更可以使公共图书馆的决策参考服务功能现实化。
3.1 数据仓库的特性
数据仓库有四个特性:面向主题性、数据集成性、数据非易失性、随时间变化性。这四个特性刚好说明,数字图书馆可以建立数据仓库,因为数据仓库中的数据是按照一定的主题域进行组织,数据是存放在数组中,而且是高度集成的,具有很强的稳定性,随时间变化而呈一定规律性的。在以上读者信息表设计中,ID号是关键字,Stim和etime则是关键字的时间元素,还有关键数据,如果没有时间元素,那就构不成数据仓库了,这种以“起始日期到结束日期”就是数据的连续组织,也就是序列数值,所以能够用数组存储起来。另外,数据由于其集成性,故访问速度较快,且具分析作用。
3.2 数据仓库的工作过程
数据仓库其实是一个运行过程,它包括数据获取、数据存储、数据访问三个过程,更确切地说应该是数据库里面的一部分。数据仓库是基于元数据建设的,而元数据是关于数据的数据,包括数据的数据结构、数据的操作方法和数据与数据之间的关系,元数据为访问数据仓库提供了一个信息目录(informationdirectory),这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的以及怎么访问这些数据。
数据仓库里面的事件是基于“快照”触发的,每个数据仓库在其内部都以“快照”的数据结构来作为中心组织的,所谓“快照”是由四个单元组成的:关键字;时间单元;关键数据;二级数据。引发快照的可以是业务活动,比如每一次新读者的注入;也可以是规律性的时间推移标志,比如一个月的结束等等。业务活动引起的事件是随机的,时间推移触发的事件是有规律性的,可预知的。
4.基于读者服务的数据仓库
4.1 建立关于读者服务的各数据表
在数字图书馆设置读者服务项目,首先要求在数据库建立各数据表,包括:读者信息表(userid,name,sex,usertypeid,stime,etime,remark),userid为关键key;读者类型表(usertypeid,usertypename,stime,etime,remRrk),usertypeid为关键key;书目信息表(bookid,title,author,company。indexnumber,stime,etime,remark),bookid为关键key;书刊内容表(contentid,contentbody,stime,etime,remark),contentid为关键key;书评表(idlbody,usefid,bookid,stime,enme,remark),id为关键key;书评内容类型表(contenttypeid,contenttypename,stime,etime,remark),contenttypeid关键key。这里面的stime和etime的设计是非常必要的,下面有将会分析到。
4.2 建立上述各类衷的储存过程
如用SQL语言:
create procedure pr_table_push (@bookid int,@contentid int,@criricismid int) as
select A. indexnumber,A. ride, A. author, A. company, B.contenthody, C. criticism
from book A,content B,crificism
where A. bookid=@bookid,B. contenrid=@contentid,,C.crificismid = @crificismid
return
go
其他各储存表,均上述代码相似。
4.3 数据操作过程
首先建数据储存器,建一个dataset,用来储存各类表,以便操作,而datatable可具体使用各数据表,datarow则便于进行行的插入与删除操作。
然后使用SQL查询语句:
select A.indexnumber, A. ride, A. author, A. company, B.contentbody,C. criticism from book, content B.criticismwhere A. bookid=@bookid,B. contentid=@contentid, C.criticismid= @criricismid
使用数据适配器dataadapter,用executereader()遍历,并把数据填入datatable,然后把数据装入dataset,再用databind()进行数据绑定,具体语句这里不再详述。最后用push mail把用dataset打包的数据发送至读者邮箱,数据段则显示为xml形式。
4.4 使用数据仓库的作用分析
以上述的读者服务模块来讲,userid是读者信息表的关键字,sfime和etime则是时间单元,name、sex和remark是关键数据,usertypeid是二级数据。读者的每一次借书或还书,都将触发这个读者数据的快照。这个时候,这个读者与图书馆所发生的借书还书欠费等等都会被数据仓库追踪到,而且这些读者历史记录是具有连续性的。或者一个月到了,也会触发数据仓库的追踪,这就是“快照”里面的时间单元起作用。其实在数据仓库里,还有简要记录这一功能,简要记录代表的是多个事件,是由许多详细记录的聚集而创建的。我们可以把读者(比如领导)数据取值汇总等等,把一段时间的数据收集起来,创建简要记录,既可以让读者自己获取所有自己相关的信息,也可以为我们自己图书馆提供一个分析作用,如果一条简要记录不够,可以创建多条简要记录,不过这要在服务器上完成,因为这要管理到大量的数据。
许多图书采购员或参考咨询员都会抱怨,我根本不知领导的阅读需求,或者我根本不知某类型读者的阅读习惯,我怎么去为他们订购这些书籍,为他们做参考咨询服务呢?其实,我们做参考咨询时,必须对读者的不同特点作个性化处理,所以与读者进行对话时,可以进行得个性化些,而且要包括读者有可用的书籍信息。如:
“您知道我们进购了一些关于广州经济研究的书籍吗?”
“我们刚进了关于广东省广州市经济政策研究……”
“我们对这批书籍进行了一次分析,选出了……,将为您提供……的服务”
这个对话过程只需要几分钟,然而却可以为读者提供个性化服务做准备。在数据仓库里,我们会有一个读入和分析读者的历史记录,然后将这些记录汇总为信息扫描出来,能在短时间内为参考咨询员提供一个齐全又有用的读者信息,也为采购员提供一个购书方向。如果可以定期由我们所设定的程序对读者数据仓库进行分析,那我们所需要的就是把数据仓库分析出来的信息读懂,因为数据仓库会把读者的信息分析出来汇成一个文件,那我们的参考咨询员或者其他人员或者读者,所需要耗费的时间将为大大减少。