APP下载

基于PB的视音频素材多字段模糊检索的实现

2018-12-04龚显卿蒲实

中国教育技术装备 2018年10期
关键词:视音频字段院系

龚显卿 蒲实

摘 要 对信息进行方便快捷检索是数据库系统需要实现的一大重要功能。通过多重变量的使用,实现对多个字段进行模糊检索功能,提高素材检索效率,也有助于程序的模块化设计。

关键词 PowerBuilder;数据库;字段;模糊检索;多重变量;视音频素材

中图分类号:G642 文献标识码:B

文章编号:1671-489X(2018)10-0039-03

Realization of Multi-field Fuzzy Retrieval about Video Audio Material based on PB//GONG Xianqing, PU Shi

Abstract Convenient and quick retrieval of information is an impor-

tant function of database system. In this paper, the fuzzy retrieval function of multiple fields is realized through the use of multiple variables, which improves the efficiency of the material retrieval and

the modular design of the program.

Key words PowerBuilder; database; filed; fuzzy retrieval; multiple variables; video audio material

1 前言

隨着教育信息化的深入发展,“只管数据采集不顾数据维护的粗放式管理模式比较普遍”[1],为了解决这样的现象,人们需要设计和实现多种多样的信息管理系统,对越来越多的教育教学信息进行管理。信息管理系统的一大主要功能就是方便人们对信息进行查询,以便对信息再利用。在对信息进行查询过程中,系统用户并不总是能准确知道所要查询信息的准确属性。以一个视频素材为例,用户可能不知道它的准确名称、格式、上传者、上传日期、主要内容等。针对这样的情况,信息管理系统应当提供多种查询方式供用户选择:1)单一字段的模糊检索;2)多个字段的模糊检索。本文以医学视听教材为例,实现对视听教材的多字段模糊检索,提高教材的检索效率。

2 PowerBuilder及其数据过滤功能

PowerBuilder(下面简称“PB”)采用面向对象编程技术和可视化技术,程序设计人员可以直观地进行程序设计。PB提供了众多的画板,如应用程序画板、数据库画板、数据窗口画板等,设计人员通过这些画板进行程序设计。

数据窗口(Data Window)是PB独有的一大特色。通过数据窗口,设计人员可以便捷地访问后台数据库获取数据,并通过不同的显示风格将数据在应用程序窗口中显示出来。使用数据窗口需要先新建某种风格的数据窗口对象,如Grid风格数据窗口对象,再为数据窗口对象选择数据源[2-5]。

PB数据过滤的基本方法 PB可以对数据窗口或数据存储过程设置数据过滤规则。其过滤的实现分为两步:第一步设置过滤规则;第二步进行数据过滤。以数据窗口过滤为例,其实现过程为:

Integer dw_control.setfilter (string format)

integer dw_control.filter()

其中“dw_control”为数据窗口,“string format”为过滤规则。过滤规则为一条字符串,如“student_name=李四”;也可以是一个变量,但这个变量的值必须为一个字符串。以下两种过滤方式等价。

方式一:

dw_1.setfilter( "student_name=李四")

dw_1.filter()

方式二:

string s_name

s_name="student_name=李四"

dw_1.setfilter(s_name)

dw_2.filter()

多重变量过滤规则 在实际应用中,一个字段的值是在其值域范围内变化的,如学生的姓名可能是“张三”,也可能是“李四”,用户在进行检索时根据自己的需要输入检索姓名。这反应在程序开发中是对一个变量进行检索。在PB中,在字符串中引用变量需要在变量前、后添加“+”号,例如:

string s_name,s_name_filter

s_name=sle_1.text

s_name_filter="student_name='"+ s_name +" '"

dw_1.setfilter(s_name_filter)

dw_1.filter()

上例中用户在“sle_1”文本框中输入需要查询的学生姓名,保存在字符串变量“s_name”中。PB对在字符串中引用变量的格式有严格要求,其顺序为:单引号,双引号,“+”号,空格,变量名,空格,“+”号,双引号,空格,单引号。如果出现错误,过滤规则将设置失败。

模糊检索 如前文所述,用户在进行检索时并不一定准确知道学生的姓名,可能仅知道其姓名中的一部分,所以在程序开发过程中实现对字段的模糊检索是信息管理系统一个主要功能,能够极大地提高系统的实用性和用户体验。PB中可以使用“%”符号来代替不确定的字符,通过“like”关系操作符来匹配用户指定的不完整的检索参数,例如:

string s_name,s_name_filter

s_name=sle_1.text

s_name_filter="student_name like '%"+s_name+"%'"

dw_1.setfilter(s_name_filter)

dw_1.filter()

3 视音频素材的关系模式

在关系数据库中对素材的检索是基于素材的属性实现的,在进行数据库设计时,对于素材属性的抽象应该紧密结合实际使用需求,不是越多越好、越细越好。在医学视音频素材实际使用中,师生更习惯于按照素材的学科分类、素材名称、素材上传者、教材出版社、素材内容(基于文字描述)等关键词对教材进行检索。视音频素材的实体—联系(E-R)模型如图1所示。

在视音频素材关系中,素材编号为主键,唯一标识关系中的一个记录,“素材类型”的值域为“D={学校资料,教学资料,学术报告,文娱晚会}”。“素材院系”的值域为学校内设有的行政机构、教学院系,“素材科室”为学校各行政机构、教学院系下对应的科室、专业。之所以按照学校专业设置对素材进行分类,而不严格按照医学学科分类,一是为了符合学校实际,避免大而全的分类方式;二是为了兼顾学术讲座、院系学术会议等其他类别视音频资料的保存。“素材内容”是对视音频素材内容的文字描述。

4 多字段模糊检索的实现

为提高用户对系统的使用体验,用户可以对素材的“素材名称”“出版社”“素材上传者”“素材审核者”“素材类别”“素材院系”“素材科室”“素材上传日期”“素材内容”等条件进行单独检索,也可以对以上条件进行组合检索。检索界面设计如图2所示。

检索界面左侧为检索条件输入。“素材名称”“出版社”“素材上传者”“素材审核者”“素材内容”为文本输入,“素材类别”“素材院系”“素材科室”“素材上传日期”为下拉列表,用户在列表中选择查询条件。为“查询”按钮编辑查询程序,当用户点击查询时,按用户指定的查询条件对素材进行查询。

//定义查询变量

sc_mc=sle_1.text

sc_cbs=sle_2.text

sc_scz=sle_3.text

sc_shz=sle_4.text

sc_lb=ddlb_1.text

sc_yx=ddlb_2.text

sc_ks=ddlb_3.text

sc_date_q=ddlb_4.text

sc_date_z=ddlb_5.text

sc_nr=sle_5.text

if isnull(sc_mc)=true then //如果用户没有指定“素材名称”

chaxun_tiaojian_mc="sc_name like '%'"

else //如果用户指定了“素材名称”

chaxun_tiaojian_mc="sc_name like '%"+sc_mc+"%'"

end if

if isnull(sc_date_q)=true then //如果没有设置查询“起始日期”

sc_date_q=string(1980-01-01)

else //如果设置了查询“起始日期”

sc_date_q=sc_date_q+"-01"+"-01"

end if

if isnull(sc_date_z)=true then //如果没有设置查询“终止日期”

sc_date_z=string(today())

else //如果设置了查询“终止日期”

sc_date_z=sc_date_z+"-12"+"-31"

end if

chaxun_tiaojian_date="sc_date>=date('"+sc_date_q+"') and & t_sucai_shangchuan_sucai_date<=date('"+sc_date_z+"')"

//其他查詢条件设置

dw_1.setfilter("("+chaxun_tiaojian_mc+") and &

("+chaxun_tiaojian_czcbs+") and &

("+chaxun_tiaojian_scz+") and&

("+chaxun_tiaojian_shz+") and&

("+chaxun_tiaojian_lb+") and&

("+chaxun_tiaojian_yuanxi+") and &

("+chaxun_tiaojian_ks+") and &

("+chaxun_tiaojian_ms+") and("+chaxun_tiaojian_date+")")

dw_1.filter()

r_count=dw_1.retrieve()

for i=0 to r_count step 1

//在数据窗口中显示检索到的素材

next

如果需要在存储过程中对数据进行过滤,需要先定义一个存储过程,然后对该存储过程设置过滤规则。

datastore ds_sc_video

ds_sc_video=create datestore

ds_sc_video.dataobject="d_sc_video"

ds_sc_video.setfilter(查询条件)

ds_sc_video.filter()

r_count=ds_sc_video.retrieve()

for i=0 to r_count step 1

//在数据窗口中显示检索到的素材

next

5 结束语

数据库应用系统的开发应注重系统的实用性,提高用户使用体验。本文所提出的多字段模糊检索功能通过多重变量的使用实现了对多个字段的模糊检索,这在程序设计中有助于程序的模块化设计,在实际使用中也提高了素材的检出率,得到用户的好评。

参考文献

[1]教育信息化“十三五”规划[DB/OL].[2016-06-07].http://www.moe.edu.cn/srcsite/A16/s3342/201606/t2016

0622_269367.html.

[2]郭新顺.基于PowerBuilder数据窗口的查询方法研究[J].计算机应用与软件,2006,23(5):76-77,110.

[3]华铨平.PowerBuilder程序设计[M].北京:清华大学出版社,2004.

[4]刘大本.PowerBuilder程序设计教程[M].北京:中国水利水电出版社,2004.

[5]王艳青.PowerBuilder程序设计基础[M].北京:中国水利水电出版社,2006.

猜你喜欢

视音频字段院系
图书馆中文图书编目外包数据质量控制分析
我国首个超高清视音频国家重点实验室在沪启动建设
中央广播电视总台启动建设国家重点实验室
高师音乐院系艺术实践周实效提升策略
清华院系手机背景图
关于高等院校院系党政关系的思考
商科院系建立咨询委员会的思考
电视台视音频资料数字化存储
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述