一、 前言
数据挖掘(DM data mining)是从大量的,不完全的,有噪声的,模糊的,随机的数据中,提取隐含在其中的,人们事先不知道的,但又是潜在的有用的信息和知识的过程。而我们的图书馆的数据库中积累了大量的读者借阅历史数据,这些数据中隐藏着大量重要信息,利用这些信息我们可以挖掘出读者对图书资源的借阅偏好模式。于是我们便利用微软SQL SERVER 2005中的数据挖掘关联规则模块建立一个在线书目推荐服务系统,以提高图书馆的服务水平。
二、 问题分析
关联规则是描述数据库中数据项之间所存在的关系的规则,即根据一个事务中某些项的出现可导出另一些项在同一事务中也出现,即隐藏在数据间的关联或相互关系。在SQL SERVER 2005 中的关联规则用的是优先关联族算法,即FP-树频集算法[HPY00]。该算法在从大数据量中寻找频繁项集非常有效,在效率上较之Apriori算法有巨大的提高。具体运作时分两步分析:第一步通过已过精确计算的表达式寻找出项集;第二步是基于频繁项集产生规则。第二步需要的时间会明显少于第一步。下面我们了解下该算法涉及的一些关键指标:
如此我们便只要通过“单次借阅标识”即可区分不同用户的单次借阅。因为在每次借阅书籍时会先在单次借阅标识表中插入自增标识码,当借阅历史表增加新记录时便使用刚插入的自增标识码作为“单次借阅标识”,这样两张表便形成一对多的关系。之所以要有上面两张表,是因为SQL SERVER 2005在训练关联规则模型时要有事例表和嵌套表。所谓事例表即存放鉴定一次事务的标识信息的表,用户完成他的一次借阅(当然可以不止借一本)就是一次事务,一次事务只用一个标识。我们设定单次借阅标识字段为自增字段就恰恰满足这点,所以单次借阅标识表就成了我们的事例表。嵌套表即为事例表中事务的具体细节内容表,其间用“单次借阅标识”来将各条记录形成项集。
四、 开发步骤
我们用“SQL Server Business Intelligence Development Studio”建立书目推荐服务程序,具体步骤如下:
一、训练模型
1. 选择商业智能项目中Analysis Services项目,建立BookHistoryAS项目
2. 建立数据源,指定我们的SQL Server 2005实例为数据源,并指定初始数据库为我们存放借阅历史数据的数据库。
3. 建立数据源视图,将上面提及的“借阅历史”表“单次借阅标识”表都选择进来。
4. 建立挖掘结构
① 选择“从现有关系数据库或数据仓库”中训练和开发模型。
② 选择“Microsoft 关联规则”挖掘模型。
③ 指定“单次借阅标识”表为事例表,“借阅历史”表为嵌套表。
④ 按图(一)设定键列和可预测列。
Microsoft.AnalysisServices.AdomdClient.AdomdConnection con = new Microsoft.AnalysisServices.AdomdClient.AdomdConnection("Data Source=ELFSERVER;Catalog=booklib; Integrated Security=SSPI");
五、 结束语
数据挖掘是数据库技术发展的结果,目前己经成功地应用于各个领域,但大部分集中在银行、金融、大型商业数据库等赢利性领域中,在高校、政府等一些非赢利性机构中应用很少,本文对关联规则的数据挖掘在高校图书馆系统中的应用进行了探索,并用SQL Server Business Intelligence Development Studio 和ASP.NET实现了基本功能。