学习访问(共9篇)
学习访问 篇1
所谓个性化学习系统是通过Web日志挖掘学习用户的兴趣、偏好和访问模式等用户信息,然后提供为其量身打造的个性化学习平台。如何准确有效地对用户的访问兴趣进行度量和表达是实现个性化服务的关键部分,用户兴趣描述的准确与否直接决定着个性化推荐服务的质量好坏。
在线推荐技术中,比较常用的方法就是通过向量模型分别度量用户某次会话的兴趣度RI和站点会话的兴趣度CI,把活动用户的短期访问兴趣与前期挖掘的浏览兴趣度进行匹配,为活动用户预测下一步最有可能访问的页面。结合网络学习系统的特征在现有用户浏览兴趣的度量方法的基础上提出了基于用户注册和页面访问时间的兴趣度量方法。
1 基于用户注册建立初始用户—资源评分矩阵
个性化的网络学习系统运行过程中有别于商业网站的一个重要区别点就在于:学习系统在用户入学时一般都要求用户注册成为系统的会员,注册过程中将就用户对于各环节教学内容的兴趣度做出简单调研。这就可以有效的回避一般商务系统所面临的系统“冷启动”问题,在用户入学时就可以基于用户的注册信息建立初始的用户—资源评分矩阵,以标注用户对教学资源的初始兴趣,但是这个兴趣是模糊的、可变化的。在用户的学习过程中,系统还需要依据用户对于页面的访问时间来进一步度量用户兴趣,更新—资源评分矩阵,实现实时的个性化服务。
2 页面的访问时间
用户访问页面的时间一般是包括四个组成部分:用户将页面请求发送到Web服务器的时间、Web服务器处理用户请求并进行页面加载的时间、Web服务器将页面发送至客户机的时间以及用户浏览页面的时间。这其中,Web服务器处理用户请求并进行页面加载所占的时间是极其短暂的、可以忽略不计;用户将页面请求发送到Web服务器的时间和Web服务器将用户所请求的页面发送至客户机的时间较多会受到计算机系统性能、不同用户所在的网络的传输性能的影响,不同的用户这部分时间会有所区别,但是相对于用户浏览网页的时间而言这两部分时间也是比较少的、区分度不具有明显的标志性作用,所以一般也可以忽略不计,而是直接归属于用户的浏览时间。
Web日志中对于用户请求页面的时间是有着明确记录的,记做li.time(此处li表示会话序列集合L中的第i个元素),则在会话中对于非最后一个页面的浏览时间可以表述为从该页面访问日志记录中使用用户请求一个页面的时间li.time到请求下一个页面的时间li+1.time之间的时间差值,记做usertime=li+1.time-li.time。对于最后一个页面的浏览时间则必须要区别对待了,如果最后浏览的是导航页面,则可以认为用户对该导航页面所链接的内容兴趣度比较低或者不感兴趣,页面浏览时间定义为0秒,如果最后浏览的是不是导航页面,则将该页面的浏览时间以该页面的信息量作为基准和所有非最后页面中的信息量的总的浏览时间的平均数的乘积,对于一个包含m个页面浏览记录的会话,用户的浏览时间可以用公式(1)来描述。
用户对页面的浏览时间体现了用户对页面兴趣度。对于信息容量相当的网页而言,浏览时间越长则表示用户对该页面的兴趣度越高,反之则说明用户对该页面的兴趣度相对比较低。然而,时间并不是兴趣度的唯一指标。Web站点中所有的页面所包含的信息容量、信息的知识难度都会各有区别,用户的智能水平也各不相同,而这些也会整体的影响所有用户浏览该页面似的浏览时间,信息量大、知识难度大则用户浏览时间普遍较多,反之则普遍较少。
在用户的兴趣度量时需要将浏览时间和页面的相关属性综合考虑,本系统以此为理论依据,实时地度量用户对页面资源的兴趣度,并且以在线更新用户—资源兴趣度矩阵的方式来表述。
3 基于页面浏览时间建立用户—资源评分矩阵
页面的信息量、知识难度和用户的智能水平都是影响用户页面浏览时间的重要因素,但是分析用户对每个页面的兴趣度只是针对个体用户的分析行为,智能水平的高低直接决定了用户对所有内容页面的浏览时间整体的长短,而不是某一个页面浏览时间的长短。而用户的兴趣度量应该是以同一个用户浏览不同页面的浏览时间的相对比较。
用户的浏览兴趣不一定就是固定的,可能会随着时间或其他一些外界因素的变化而变化。譬如,个性化的学习系统中,随着用户学习的深入,用户在每个学习阶段的兴趣点应该也是不一样的,那么,此时对用户所有的浏览日志进行挖掘并不能有效的代表用户当前的浏览兴趣。本系统中采用了一种综合考虑用户对页面的浏览时间、页面的信息量、页面知识难度以及用户近期对页面的浏览次数等因素进行用户资源兴趣的度量,并以此为依据实时更新用户—资源评分矩阵。
基于预处理后的日志文件,建立两个分别独立的向量,即基于用户的向量UL和基于页面的向量URL。假设基于用户的向量为UL={ul1,ul2,…,ulm},m表示某一个用户userID所浏览的页面的总的数目,uli表示用户浏览第i个页面所形成的记录,每一条记录中至少包含页面属性项目{url,time,fuweight,bytes,degree}等相关属性项目,其中uli.time项表示用户在k次浏览过i页面所耗费的总的时间。基于向量UL中所浏览过的页面再建立一个动态的基于页面的向量为URL={url1,url2,…,urlm},每条记录中至少包含{time,人次}等属性项目,其中urlj.time表示浏览某页面的所有人次所耗费的总的时间。如果不考虑用户近期兴趣度的转移的话,对日志文件的完整分析可以将用户兴趣度量公式表达如下:
但是用这个公式表述对用户对所有页面整体的兴趣度量,而不能在个性化的学习系统中表现出用户的学习进度和近期学习兴趣度。本系统中采用了两个公式来进行用户兴趣度的表述,一种就是当用户使用该学习系统初期,可以直接采用公式(2)进行用户兴趣度量,但是随着用户学习的深入,初期的一些日志数据对于当前用户的兴趣度量已经不能起到积极意义,此时可以选择一个合适的数值z,取用户浏览序列集合中的后z项纪录中某一页面点击频率的高低来对整体的用户兴趣度做出适应调整。数值z可以根据系统管理员相应的教学策略进行设定,调整后的近期用户兴趣度量公式为:
其中,ulzi.degree表示在用户浏览序列的后z项记录中用户浏览某页面的次数。假设系统中用户数为n,页面数为m,则建立一个n*m的矩阵,用户没有浏览过的页面,兴趣度默认为0;用户学习初期,当浏览日志的记录数少于z,则使用公式(2)进行用户兴趣度量;当用户学习深入到一定程度后,即浏览日志的记录数大于z,则使用公式(3)进行兴趣度量,并以此为基础建立如表1所示的用户-资源评分矩阵R(M×N)。
假设有M个用户和N个页面,根据用户对页面的浏览时间及相关属性则可以表示成一个M×N的矩阵R,其中每一项抽,rm,n代表用户m对页面n的兴趣度,如果用户对该页面没有浏览过,则初始的兴趣度量数据为用户在注册信息中所表述的整数标注,而如果是用户浏览过的,根据用户兴趣度量方法计算出来的兴趣度量数据,则采用有效位精确到小数点后面两位的实数来表示,这样有利于协同过滤时区分用户的兴趣度量数据的来源。
这种用户兴趣度量方法的优点在于:
1)进行隐式的数据挖掘。在用户兴趣度量过程中,不需要用户对所浏览页面进行标注,自动的进行日志数据挖掘,既保证了数据挖掘的客观性,也保证了用户的正常浏览行为不被干扰。
2)对用户兴趣度量按照用户的学习进度分类别进行处理,使得兴趣度量结果能够在保持整体兴趣度量的基础上更好的体现用户的近期浏览兴趣,为用户提供更切合适宜的个性化服务。
4 小结
本文主要研究了用户浏览兴趣度的量化方法,研究了用户浏览兴趣的三种常用度量方法,基于用户访问时间与页面的信息量、知识难度以及用户近期对页面的浏览次数等因素进行用户资源兴趣的度量,以用户注册信息为基础,建立和实时更新用户—资源兴趣评分矩阵,对用户兴趣度进行有效度量和表述。
摘要:在基于Web使用挖掘的个性化学习系统中,用户访问兴趣度量和表达是一个关键部分,该文分析了现有的三种用户浏览兴趣的度量方法,提出了基于用户注册和页面访问时间的兴趣度量方法,以及基于页面浏览时间建立用户—资源评分矩阵,从而更有效地为用户聚类提供数据依据。
关键词:个性化学习系统,Web日志挖掘,用户访问兴趣度量,用户—资源评分矩阵
参考文献
[1]余力,刘鲁.电子商务个性化推荐研究[J].计算机集成制造系统,2004,10(10):1306-1313.
[2]张海鹏.基于Web日志挖掘的个性化推荐研究[D].重庆:重庆大学,2007.
[3]纪良浩,王国胤.基于协作过滤的个性化服务技术研究[J].计算机算机工程与设计,2008,29(4):983-986.
学习访问 篇2
关于赴俄罗斯访问学习的汇报××省中医医院神经内科×××
提纲
一、访俄情况
二、访俄的经验()
三、访俄存在的问题()
四、访俄对今后工作的借鉴六
今年月中旬至月上旬,我有幸受医院派遣参加××省医学专家业务骨干赴俄参观培训团,去圣彼得堡大学参观学习,学到了不少的知识,开阔了眼界。通过中西医学的比较,更加坚定了发展中西医结合神经科及中西医结合神经病学道路的信念,在今后的工作中,走努力发展业务、有效服务社会的市场经济道路。
一、访俄情况
.交通便利,但我们却很辛苦。
我的这个团于月日接到科技厅对外交流处电话通知,要我们日从××出发到北京机场出口处报到,日从北京乘坐俄罗斯新西伯利亚航空公司的图大型客机(能坐多人)飞往圣彼得堡,经过个小时的飞行到达圣彼得堡国际机场。由于比签证的时间早到了个小时,只能在机场等待入不了关。在等了个小时后到日零点时方可准许入关,但接我们的汽车已回,又是半夜,只好在候机厅再等个小时到天亮汽车才来,这样,我们在机场就干等了个小时。之后乘个小时的汽车来到离城公里的圣彼得堡大学数学系的学生宿舍,这些学生宿舍双人间条件差一些,但好在生活设施齐全,有自己做饭的电灶、冰箱、卫生间、客厅等。从宿舍到我们神经内科所参观学习的位于市中心的圣彼得堡大学附属医师进修学院神经病研究所大约有公里,往返都必须先乘中巴,再换乘地铁站,出地铁站后再步行分钟才到。每天在路上的时间要小时。虽然圣彼得堡的交通很发达,汽车有大巴、中巴,的士(在圣彼得堡所有的私家车都可以作为出租车,只要招手就停),有电气火车、有轨电车、无轨电车等,车票也较便宜,公里远乘大巴或中巴时,票价是卢布,相当于人民币元,而四通八达的地铁,不论远近要价一律卢布,相当于人民币元。但我们每天要耗费小时在公里的路上,一个多月下来我们确实很辛苦。
.食品丰富,生活方便,自己每晚做中餐
在圣彼得堡生活很方便,各种食品及生活必需品都有。在城市中心的涅瓦大街有全世界各地的食品专卖店,有的店进去购东西只收美元或欧元,也有俄罗斯本地的特色店及国营的百货大楼――圈楼,物品十分便宜和实用,我们常到这里买东西。也有各种物品的超市,如食品超市(与国内的差不多),如建筑材料超市及装饰品超市、汽车超市,还有旧货交易市场(相当于国内的跳蚤市场)等。食品的价格也很便宜,有各种规格的熟食面包,如黑面包、白面包,加果仁的面包,加各种辅料的面包,价格在卢布不等,相当于人民币元;有各种规格的牛奶,如含蛋白、、、、、、、、、、等不同的的鲜牛奶,也有不同规格的果奶、酸奶等;有各种果汁如葡萄汁、苹果汁、梨汁、草莓汁、桔子汁、橙汁、番茄汁,黄瓜汁等;大米有泰国大米、中国大米、越南大米、印度大米等;肉有猪肉、牛肉、羊肉、鸡肉等,有新鲜、冷冻及半成品等各种形式、各种规格的肉,选择而购;有各种盒装、散卖的冰淇淋,味道好受欢迎,我们常买着吃,卢布一个(相当于人民币元)。在我们住的宿舍院子里有七栋房子,每栋房子的一楼都是服务设施,有个超市,个邮局,个网吧,个美容理发厅,个桑拿室,有独立的一个体育馆、网球场、篮球场、汽车停车场等,购物生活都很方便。这样客观上导致了我们饮食的多样性。早晨早点吃牛奶加面包,有时也煮饺子或面条(中国面条、俄国面条、韩国面条都有),中午在医院或研究所食堂和老外一起用西餐,晚上回到宿舍和附一院的个人加我个人一起做米饭吃中餐炒菜,这种饮食特色还真好。
.俄的教育很普及,国民素质高
俄罗斯的教育及公民受教育的程度都很高,高中及大学都是义务教育,而且教育管理体制也很完善,最值得骄傲的是它是世界上没有文盲的国家,公民的素质及文明程度很高,是我们这个访问团中任何一个人都没有想到的。岁以下的人基本都会说英语,我们用英语也可以行得通,我们在圣彼得堡两个月及莫斯科一周,基本上没看到吵架的人。俄罗斯男人喝酒,女人抽烟,老少都一样,但基本上看不到乱丢烟头和酒瓶的人。在街上、在公共汽车上、在地铁上到处可见尊老爱幼礼貌让座,有事相求或打听道路时,都是热心细致地解答,让人心感温暖。汽车没有专门的停车场,都是房前屋后和侧面随意停放,大街上汽车靠右边就停放,而且自觉地停的非常整齐,没有任何管理员,也不存在任何收费,路上行车和停车也是非常礼貌谦让,路上很少见到警察,偶尔见到也是查汽车超速的。城内及城外的电话亭中都摆着同样的电话号码簿,从没有发现在电话簿上有人做记号,更没有电话簿丢失的现象。据当地的中国人说,年前在俄罗斯都不知道小偷是什么。由于教育程度高,导致了人的素质水平也增高。还有另外一个原因是所有高中毕业的人都必须依法服兵役,上了大学的人也要服兵役,或在上学中停学服兵役或上完大学又再服兵役。当兵可以磨练人的意识,培养吃苦耐劳的精神,增强国家及国防意识以及关心爱护公共设施的意识,培养学习生活及工作中的集体主义精神,可以快速提高全民的整体素质。
.医院体制与我们的不同,但仍感亲切
俄罗斯的医院现仍是以公有制为主体,公民在定点的社区门诊看病,住院则到定点医院。门诊看病和住院都免出挂号费,门诊药费也只出很少部分费用,住院则全部费用免费,而且供病人免费吃饭,这种运行方式跟我们国家年前有相同的地方,也可看出我们以前的方式是跟苏联老大哥学的,自然感到有一种亲切感油然而生。现在圣彼得堡不同的社区门诊是和不同的.医院对不同的疾病研究各有特长,比如我们在的神经病研究所门诊,就对变态反应性及免疫性疾病有特殊的研究。这样,如果病人不在自己的定点门诊和定点医院就诊而选择其他医院则需要自费,也出现一些改革的迹象。这些做法跟欧洲的一些国家做法是相同的,与我们国家现行的医疗体制比较,我们只有羡慕的份了。
.技术先进的神经病研究所及号实习医院
我们参观学习的神经病研究所位于车尔尼雪夫斯基地铁站面临的铸造厂大街上,刚好在圣彼得堡儿童公园对面。研究所有多间门诊及住院部有多张床,设有多个研究室及医生办公室、研究生进修生办公室,其都配有电脑,达到每人一台(包括进修生)。门诊除多间诊室外,尚有针灸治疗室,物理康复、功能训练疗法室等。住院部有多张床,有单人间、双人间、三人间、四人、五人至八人间,满足各个层次人员的需要。这个研究所的设备有的磁共振,免疫组化设备,血药浓度测定,脑电图、肌电图、经颅超声多谱勒等,但没有发现语言检测室及心理智能检测室。这里的研究室有着悠久的历史,年建所,有个全国著名的神经病学专家在此工作过,其中产生过一名俄罗斯科学院的院士,著名的神经病学专家巴蒲洛夫曾与这个研究所的多名专家合作工作过,至今还保留着大量的照片,以作为珍贵的历史资料。在神经系统变性疾病和脊髓疾病方面,该所属于俄罗斯领先水平,全国都向这个所介绍病人,现在该所有现任教授及副教授多名,他们个人素质都很高。在平时的交谈中可知道他们对神经系统疾病的知识及其学术前沿动态都比较熟悉。例如,闲谈中我们提了一个关于中风病人能否饮酒的问题,他们的一个教授谈了自己的主张:可以适量少饮酒的观点,而且还对现在世界上几个先进国家中对这个问题有研究的几个专家的主张进行了综述,让我惊叹其扎实的基本功。就是这样在闲谈中提出的多个问题都得到了象上述一样的回答,可见其基本功的扎实,让人敬佩。这个研究所带着多名临床博士和进修生。
我们实习的另一所医院为列宁州立十七医院,是一座有张床的公立医院,医院没有门诊,只有住院部,病人由救护车(相当于我国的救护车)直接送入医院。患者一入院则一切不用管,全部免费,医药费国家负担,包括住院的饮食费也归政府管,在我们看来这才是体现着社会主义的优越性。这家医院的神经内科有张床,包含着重症加强治疗病房()的张床,有个医生(含主任)、个护士,除完成医疗任务外,还要负担科研工作、部分教学工作,设备与神经病研究所相同。医院病区里还设了一个康复病区,但也仍然没有心理智能检测室及言语检测室,医院的设备虽然多是年前购买的,但对于我们来说仍然是先进的。
这个研究所和这家医院的教师还有一个共同点是非常注重教学方法及教学教具的应用,尽可能地提高教学效果,例如为我们上课的每一位教师都使用多媒体和幻灯片及实物教具,并使用自制的神经系统教具以增加教学效果。从教学的过程及内容可以看出,俄罗斯人办事非常负责认真,行动计划性很强,自制的教具透射出艺术浪漫的气息,神经系统疾病的每一个病都讲得栩栩如生。这种重视教育的传统和方法已渗透到社会的方方面面,是非常值得我们学习的。
.综合素质和技术全面发展的神经科专家
神经病研究所及医院的专家,除了在具体地诊断治疗病人外,还担负着科研、教学、著书立说及带临床博士、硕士及进修医生的任务,还要具体操作检查的设备。例如,在磁共振室只有一个技术员在管理着这台机器,其负责机器的开关及清洗保养,负责病人的登记及录入电脑,以及机器使用过程记录。而操作机器检查病人的工作则由医生进行,出磁共振的报告也由医生出报告。其他检查如肌电图、脑电图等也是如此。
这些专家还有一个特点是在学术交流上积极主动对外联系,每个专家都有印着俄文联系方式、英文联系方式的名片,有依妹儿,不仅与俄罗斯国家的其他医院专家有联系,也与世界各地的许多医院的专家有联系,尽可能的吸收各国的精华来充实自己,比例我国的针灸就被他们吸收后使用着,开着针灸门诊。尽可能地吸收别人的长处来有序他自己,也是他们的一个特点。
二、访俄的经验
.存在差距。通过访问学习使我们清醒地认识到,神经病学在俄罗斯有着悠久的历史,学术渊源流长,要学的东西还真是很多,要赶上就要花很长一段时间。但学习有用的东西要逐渐和我们的中医相合,要创造性地继承与学习和发挥,使其服务于我国人民。
.做神经病学专家必须全面提高专业知识面。
在参观访问中,接触了多位俄罗斯的专家,交谈中深感他们的知识面广,学术精深,对所提到的神经系统疾病的解剖、生理、生化、病理、诊断、治疗及其相关文献以及前沿知识,都能随口就说出,并且掌握比较准确,真正体现着专家的风范,对我们的启示是,要当专家就必须全面提高专业知识面。
.热爱工作并热情工作。对待工作的态度满怀热情地去工作,抱着工作是幸福美好的理念去工作,一丝不苟、认真负责地做好每一件事。办公室里大家都自觉埋头干活,谁有问题和困难,提出来大家都乐意帮忙想办法解决,办公室里有事则小声交谈,一般都以不影响别人工作为原则,因为工作是神圣和光荣的。
.工作井然有序,计划性强。
我们所到之处,都会按计划有序地进行着。比例每天上课和实习的各种衔接都会安排的非常到位,不会让人等分钟,比如上课去时,从开教室门、准备多媒体、幻灯架、俄文翻译、辅助英文翻译,以及课间巡视等都安排的很到位。每个环节都衔接的及时到位,让人心怀好感,感觉到这个国家的文明和进步的程度。代表着一个单位管理机制的顺畅以及人们积极主动参与活动的积极心态,让人感到心情舒畅。
.注重创新,立说著书。
该研究所的在职教授,都是学术成果的富家,都有学术著作出版。比如在颈椎病、脊髓病、脑血管病、神经系统疾病治疗研究等方面有多部著作问世,表现出强大的创新能力。我们参观学习的每人都获赠三册书,让我们受到很大的鼓励。
.注重对外交流,内引外联促发展。
研究所的每位专家都有名片及俄文英文及电子邮件等联系方式;各位专家诊室的陈列橱窗及研究所的大陈列橱窗,陈列着世界各国大学医院研究机构赠送的礼品,如德国、法国、以色列、巴西、韩国等国家的礼品,这次我们送的大理白族民族绣花包、玉石做的玉器、中国京剧脸谱等礼品也放进了该所的陈列窗里。在研究所的显要位置,安置了一大板壁报板,其上列有该所的名教授及院士的情况,陈列着与巴蒲洛夫一起工作情形的照片,陈列着各种奖章、成果及著作等,这些又成了该所无形资产的广告牌,宣传了该研究所的品牌。
.学术梯队呈倒金字塔形。
研究所和医院神经内科的学术带头人和管理者,实行业务行政由一人双肩挑的体制。这个既管行政又管学术的专家,是经过多年锤炼出来的,在学术和管理上都是自觉的人,能积极主动的领导大家或引导大家健康发展。在学术带头人下面有资深教授人,再下面有副教授名,又再下面有主治医级人员名,再再下面由教师及辅助人员多名组成,形成已一个倒立的金字塔行的人才结构。从低级人员向高级人员发展晋升的过程,就是一个锤炼、淘汰、选择的过程,能够坚持向上走到金字塔上层的人物都是千锤百炼成钢的专家。
三、访俄存在的问题
时间短暂。
不能对多数疾病进行深入的交流,如俄罗斯脑炎、、与我国森林脑炎、、的详细鉴别。
翻译准备不充分。
由于半年前准备的翻译临时换人,新来的翻译对一些专业术语没法翻,只能靠比划或画图猜,影响正确理解。
组织计划部分不合理。
为了节约经费,安排宿舍距离参观地太远,却更多地每天在路上、车上、地铁上让我们更全面地了解俄罗斯,组织者不懂俄文,又委托给第三者,这些都是欠妥的。
出访前准备及计划不周密。
因是首次,对俄罗斯的情况不了解,语言准备不够,不懂俄文,给学习交流带来一定的困难,不能亲自与对方专家交谈掌握第一手资料。
四、访俄对今后工作的借鉴
发展业务特色,创立品牌。
我们访问的神经病研究所,在神经系统变性疾病与脊髓病研究的方面处于全俄罗斯的领先水平,带着多个博士生及进修医生,全国都介绍病人来这里看病,形成了品牌效应。我们神经内科今后必须有意突出中西医结合治疗神经系统疾病的特色业务,并以省卫生厅重点专病及全国中医脑病协作组研究的中风病为突破口,逐渐树立品牌并争取品牌效应。
科室构件合理设置,促进有序化发展
按照神经科发展的规律,科内各部分人员设备合理配置,互相促进,能促进神经科发展。我们将努力开展脑电图、肌电图、诱发电位、脑脊液细胞学、智能测评、心理测评、康复功能训练、床旁康复功能训练、床旁针灸等新业务,以图神经内科全面良性发展。
科室是一个团结的集体,既分工又合作。
科室的每一个成员,要成为专家,必须经过千锤百炼,全面掌握神经科系统知识的基础上,有所侧重。例如神经科的三大症状头痛、眩晕、失眠、抑郁、焦虑要有专人专门研究,形成竞争优势,又促进人员发展。
形成倒金字塔形的人才梯队结构。
在临床工作中边工作边学习,加强医生及护士队伍的学术建设,采取科内及外出学习培训相结合的办法,逐渐提高及锻炼人才,提高人才素质,形成人才梯队结构,提高工作能力。
扩大对外交流,内引外联获取新信息。
不断地派人外出学习,吸取精华,有序地使自己跟上时代步伐,增强竞争力,学习中医神经科知识尽量派往长春、广州、天津、北京、黑龙江,学习西医神经科知识尽量派往北京、上海、中山、湘雅、华西等处,中西两方都重要,缺一不可。
开展科研,以科研成果促进业务发展。增强创新的观念,积极开展科研,锤炼队伍,以先进的科研成果促进业务发展。
学习访问 篇3
1 台北科大的办学理念
台北科大的学校意在把大学办为“企业摇篮、工业推手”,也就是把学生培养为企业家,学校办成实务研究型大学。着重培养学生的八项能力:事业实务力、品格实践力、国际移动力、创新创业力、资讯应用力、团队合作力、领导沟通力、自主学习力。结合其学校开设的通识课程来看,学校是进行“全人”的教育培养方向。
2 台北科大的公共体育课的情况
台北科大占地360亩,是相邻的两个校区面积相加之和,或者说一条高架桥将学校分成两部分。校内有一个跑道约为300 m的操场,2个篮球场,两个排球场,4个网球场,及一个综合训练馆所组成。因学校处于寸土寸金的市中心,学校的教学训练向空中和地下发展,充分利用学校现有的空间和场所。
学校没有体育院系,完成公共体育教学的部门是体育室,共有15名教师。现在学生人数比较多,在本校老师不够用的情况下,聘请校外老师16名。每周必须完成的工作量根据职称来定,教授8学时,副教授9学时,助理教授9学时,讲师10学时,每个学时为50分钟。体育室主任因担任行政职务,每周可只上4学时。
学校注重体育课程,设置四年都有公共体育课。学生四年的大学本科期间,前三年体育课是必修课,且学分为零分,大四期间体育作为选修课,学分为1分。学校的推广部进修班是成人教育类型,体育课是一年时间,性质为必修。学生体育课上课时间是从周一至双休日7天都可以上课,从早晨到晚上都有体育课选项班每周上一次体育课。这样把有限的场地充分利用起来,学生的时间也可以更自由些。
课程项目主要是以篮球、排球、乒乓球、网球等大多数学生喜爱的项目为主,也有其它剑道、健身、门球等选项课。学生考试以专项考试为主,其中平时成绩占50%。
学校有9支训练队,这是代表学校去参加台湾的比赛而设立的。另外还有两个学生社团。代表队是学校中运动水平较高的学生组成,学生社团是学生的爱好者组成。
3 日本殖民时代的影响
日本至从《马关条约》后到二战结束在台湾统治五十年,高压推行日本文化教育。台北科大前身是为日本人培养技术工人的学校,学校中还有日本文化的影响在。比如体育运动中的剑道,在学校中有学生的社团组织,从剑道练习中体会运动的技能,以及身心的修炼。还有日本的等级制度,一般情况下,学生是服从老师和学校的管理,并不会有太多的个性在学校的管理制度中来张显出来。
4 现代社会的影响
现在处于一个网络时代,台北科大校内有开放的Wi Fi学生可以自由上网,学生对于网络的依赖程度相当高。台北科大的学生非常喜欢上网,离开网络似乎就不能生活,现在的生活方式随着科技而发生了巨大的改变。台北科大的学生也是在网络中所用的时间比在运动场所的时间长得多。
现在台湾的家庭观念也是注重文化课的学习,忽视身体的锻炼。学生在上体育课时怕晒,运动的量和强度也不大,也有体能下降的现象存在。而学校的工科学生中,还是有部分人重视身体的锻炼,因为他们知道将来没有强壮的身体,从事艰苦的体力工作是持续不了多久的。
5 结语
台北科技大学的交流学习中,感觉因为文化同根同源,语言相同,文字相近,大家没有障碍。加之大陆开放三十多年,台湾与大陆互动也多年了,而且程度也越来越高,交往越来越密切,在这种大背景下,来到台北科大学习,感觉非常亲切。
此次学习门交流过程中,感觉到台湾对于中国传统文化的坚守和传承。具体表现在语言和文字。语言方面有许多中国文化的引经据典,文字表现在台北科大很多专家教授都可以写出漂亮的硬笔书法和毛笔字。这些方面足以看出是从小就有着很高规格的传统文化的教育。
台北科大的校园占地360亩,相比大陆的高校而言,面积是算很小的。学校没有一个标准的400 m跑道的操场,仅有的一个综合运动馆也是有多年的使用的样子。许多教学楼也是多年前的建筑体。从这些来方面来看,学校可以概括为“小”和“旧”。但就是这样的硬件条件却塑造了一个亚洲名校。
学校的运动场所也比较少,在运动健身房中,几十台跑步机放在地下室,开着空调免费给学生锻炼之用。在跑步机贴着纸条“由于健身人多,请每位同学使用25 min”。运动场的管理是由学生来进行运动后的打扫和清洁。使用十多年的跑步机还保持着九成新的样子,而且室内没有垃圾。给人的感觉是整洁和有序。
学校的体育课的理念是“透过体育,强健精神”。体育课的项目和大陆高校中的传统项目差不多,以篮球、排球、乒乓球、武术等项目为主,并没有太多新奇的项目来吸引学生。而学生和大陆高校学生都有共同之处就是喜爱网络,不爱运动,也有身体素质和运动热情下降的现象存在。台北科大通过专家讲座和运动塑身来吸引学生走下网络来运动健身。没有强制的手段来硬性规定学生必须完成类似“200 m游泳”或“3000 m长跑”等项目才能毕业。而大陆教育部是明文规定未能完成体质达标者不得毕业。在此方面是大陆高校的优势还是能有效阻止大学生体质下降的行政手段,我们还要拭目以待。
台北科大在学生运动中受伤及事故处理上来看,是依靠学生的意外保险和医疗保险来解决,再解决不了的话,只有依靠法院来进行审判。学校没有对于运动中的伤害事件而产生纠纷的担忧。教师只要完成保护与帮助的教学程序,也不用担心出了事故家长来上门闹事的结果。
思修周末实践家庭访问之访问提纲 篇4
一、访问目的
通过走访调查了解一个或者多个家庭在改革开放以后家庭成员的工作条件和整个家庭生活质量的变化(由条件艰苦到现在基本小康的变化)来反映出国家改革政策惠及人民,给人民学习、工作、生活带来 的质的提高,从而深刻反映了“家与国”中国对于家的重要性。
二、被访问家庭简单背景介绍
三、访问相关内容
1.家中长辈出生年代 2.家中成员文化教育程度 3.改革开放之前家中主要经济来源
4.改革开放之前家中主要成员工作及工作条件 5.改革开放之前家中生活条件 6.家中晚辈出生年代
7.家中晚辈文化教育程度及上学条件 8.改革开放之后家中主要经济来源
9.改革开放之后家中主要成员工作及工作条件 10.改革开放之后家中生活条件
学习访问 篇5
近年来互联网应用快速发展,对网络数据库应用的需求也快速增长,然而由于互联网通信链路本身的脆弱性,黑客攻击、信息窃取等网络犯罪对网络数据库的安全造成了严重威胁,由此便对网络数据库系统的安全访问提出了更高的要求。本文在研究角色存取控制模型的基础上提出了一种应用方案,以解决网络数据库的安全访问问题。
1 RBAC安全模型介绍
1.1 RBAC模型基本概念
基于角色的访问控制RBAC(Role-Based Access Control)是在20世纪70年代对在线的多用户、多应用系统的研究中开始提出的。RBAC安全模型属于存取控制系统中的一种,是强制性访问控制(MAC)系统。在一个RBAC系统中,根据实际的业务要求,在系统中设置若干“角色”客体,角色就是业务系统中的岗位、职责或分工。系统管理员负责掌管对系统和数据的访问/存取权限,将这些权限(不同类别和级别的)分别赋予承担不同工作职责的最终用户,并且可随时根据业务的要求和变化对角色的访问权限进行控制管理。在RBAC中要明确区分权限(Authority)和职责(Responsibility),它的优点是可以将若干特定用户的集合和某种授权联结在一起,对个体授权的可操作性很强。RBAC模型属于多级控制模型,它满足多级安全控制系统内存取类的保密级别按线性排列这一特性,即:公开<秘密<机密<绝密。其安全策略要求满足两个条件:①要获取合法信息,请求者的存取类的级别要大于信息的存取级别,RBAC1支持的层次关系可以实现多级安全系统所要求的线性排列这一要求;②要获取信息存取权,请求者必须具备一定的存取类,而且他的存取类范畴集合应该包括信息存取类的全部范畴,角色结构RBAC1中的角色可以轻松地实现保密存取类的要求。
图1给出RBAC 的模型层次图,RBAC0是任何支持RBAC系统需要满足的最低要求。RBAC1和RBAC2都包含RBAC0,但是分别有各自的特点。RBAC1增加了角色之间可以相互继承访问权限层次的概念,而RBAC2则对RBAC组件添加了限制条件的约束,RBAC1和RBAC2相互独立,RBAC3则同时包含了RBAC1和RBAC2。
1.2 RBAC1模型的定义
(1)U、R、P及S分别为用户、角色、授权和会话。
(2)PA是授权到角色的多对多关系,PA⊆P×R,;UA是用户到角色的多对多关系,UA⊆U×R。
(3) RH是角色上的一个偏序关系,称为角色层次关系或角色支配关系,RH⊆R×R。
(4)roles(Si)⊆{r|(∃r′≥r)[(user(Si),r′)∈UA]}。
其中:user(Si)表示的是将各个会话映射到一个用户去的函数;roles(Si)表示的是将各个会话Si与角色集合联结起来的映射,可随时间变化而变化,且会话Si拥有相关授权;r、r′表示角色,r′继承自r。
2 RBAC在数据库Web访问控制中的应用实现
2.1 安全访问模型
本系统安全访问模型的功能模块包括身份认证模块、RBAC授权模块、日志记录模块和数据加密存储模块。首先,用户通过浏览器向Web服务器提出数据查询、修改等服务请求;然后Web服务器在收到服务请求后向身份认证系统发送用户的请求认证信息;最后,身份认证系统根据用户的不同角色提供不同级别的身份认证,再通过认证服务器对用户提交的身份信息予以认证,认证通过后方可访问数据库。如果是敏感信息,返回的数据经过数据库安全系统加密处理后才能发送给用户;如果是一般信息就直接发送给用户。图2显示了此模型的模块构成与信息流向。
2.2 身份认证模块认证模式
当客户端的访问请求到来时,Web服务器将请求者的身份提交给身份认证模块,身份认证模块检查请求者的登录信息、口令是否合法,若合法则允许进入RBAC授权模块。RBAC授权模块负责检查来访者的数据库访问、存取权限,如果该请求者的访问权限低于其访问数据的访问权限,则拒绝其进入RBAC授权模块。RBAC授权模块根据图3显示的RBAC模块的角色、权限结构来分配、验证资源和用户的访问权限。图3中的1和N表示1和多,其它各项目定义如下:
(1)操作对象:是系统所要保护的资源(Resource),可以被访问的对象或者数据。资源的定义需要注意以下2个问题:①资源具有层次关系和包含关系,例如,数据库表是资源,表中的记录、数据项等对象也是资源,是数据表节点的子节点,如可以访问某个数据项,则必须能够访问该数据所存放的数据库表;②这里提及的资源概念是指资源的类别(Resource Class),而不是某个特定资源的实例(Resource Instance),资源的类别和资源的实例的区分以及资源的粒度的细分,有利于确定权限管理系统和Web访问系统之间的管理边界,权限管理系统需要对于资源的类别进行权限管理,而Web访问系统需要对特定资源的操作进行管理。
(2)操作权限:是对受保护的资源操作的访问许可(Access Permission),它是绑定在特定的资源实例上的。对应地,访问策略(Access Strategy)和资源类别相关,不同的资源类别可能采用不同的访问模式(Access Mode)。例如,某个数据集的可修改访问模式就包含了可查询访问模式。
(3)用户:是权限的拥有者或主体。用户和权限实现分离,通过授权管理进行绑定。
(4)用户组:是一组用户的集合。在业务逻辑的判断中,可以实现基于个人身份或组的身份进行判断。本系统弱化了用户组的概念,主要实现用户(个人的身份)的确认方式。
(5)角色:是权限分配的单位与载体。角色通过继承关系支持分级的权限实现。例如,系统管理员角色同时具有管理员角色、Web浏览者角色。
(6)操作:完成资源的类别和访问策略之间的绑定。
(7)角色权限分配:实现操作和角色之间的关联关系映射。
(8)用户角色分配:实现用户和角色之间的关联关系映射。
RBAC授权模块首先对数据库中数据的各种操作定义操作权限,如查询权限、新建权限、更新权限、删除权限以及可执行权限等,不同的权限又存在包含关系,如更新和删除权限包含查询权限,而删除权限又包括更新权限。同时,授权模块根据系统划分的不同职能的用户定义不同角色,并确立各角色之间的关系。本系统划分了如下角色:系统管理员、数据库管理员、数据分析员、Web注册用户、Web浏览者,层次关系是系统管理员角色同时具有其他各种角色,数据库管理员角色同时具有数据分析员角色,Web注册用户同时具有Web浏览者角色。最后,授权模块将操作权限与角色、用户与角色进行关联,使得特定角色关联特定的操作权限,不同角色下的用户权限不同。如Administrator用户拥有系统管理员角色,进而拥有所有权限;而一般互联网用户拥有Web浏览者角色,所以只能拥有查询权限。
当用户请求到RBAC授权模块时,RBAC授权模块找到与用户拥有角色相应的权限,核对用户所访问的数据的操作权限,如果该操作权限高于用户角色的操作权限,则系统拒绝执行操作,返回错误信息;如果该操作权限低于或者等于用户角色的操作权限,则系统执行用户请求,进入数据库服务器完成操作;数据库服务器把满足请求的明文数据返回给数据加密模块,该模块根据数据的安全标记来决定是否对明文数据进行加密,最后才把数据(明文数据或密文数据)发送给客户端,以此来保证访问的合法性和数据的完整性。
2.3 日志记录模块的工作
日志记录模块负责记录来访者的IP地址、到访时间、身份认证结果、RBAC授权结果和数据加密模块处理结果等。
Web服务器收到的来访者请求中包括对方的IP地址、到访时间、身份信息、操作请求等内容,这些信息会首先被服务器的日志记录模块保存到数据库服务器中,为可能的跟踪定位保留线索。如果来访者的身份信息得到认证,那么日志记录模块也要保存用户的身份认证成功或者失败结果以及失败原因。在RBAC授权模块对该来访者进行认证、授权后,其认证结果如用户角色、用户角色权限、用户访问的数据的操作权限、操作成功与否等信息也要被日志模块记录保存。日志记录是系统中登录、访问、离开等各种操作的唯一线索信息,任何用户或者角色,只能进行查询操作,而没有修改权限,系统管理员角色可以拥有删除权限以保证日志记录的合理有效。
本系统的数据库服务器由SQL Server 2000的DBMS实现,接受Web服务器提出的SQL请求,完成数据的存储、访问和完整性约束,实现网络数据库的相应功能。
3 结束语
本文在分析目前RBAC模型的基础上,将RBAC理论应用于Web环境下的数据库访问中,既保证了数据库的合法存取,又实现了用户权限的灵活分配,体现了很强的实用性。同时也存在一些没有解决的问题,如角色层次的合理划分、约束条件的加入等,还有待于更加深入的研究。
摘要:讨论了角色控制模型的基本概念和原理,研究了基于角色的访问控制RBAC模型的网络数据库安全访问技术,并进行了初步实现。
关键词:RBAC模型,Web,访问控制,数据库
参考文献
[1]吕锋,刘晓东.基于Web的网络数据库安全系统研究[J].武汉工业学院学报,2003,22(2):43-45.
[2]Ravi S Sandhu.Role hierarchies and constraints forlattic-based access control[J].Computer Security,1996,15(2):114-131.
[3]刘启原,刘怡.数据库与信息系统的安全[M].北京:科学出版社,2000.
无法访问的网站 篇6
故障现象
一天, 笔者想登录QQ邮箱网站, 用IE来访问该网站的时候, 打不开网站, 提示找不到网页!但是访问其他网站很正常。
故障排查
对于这类故障, 并没有特定的原因。要找到问题的所在, 只能用排除法逐个排查。
1.网站问题
单位的网络访问不了网站, 那试试家里的网络。如果家里的网络也不能访问, 那就很有可能是网站的问题。回到家里, 用IE访问QQ邮箱网站, 可以正常打开。说明网站没有问题。
2.浏览器问题
用IE无法访问, 换个浏览器试试。用chrome访问QQ邮箱网站, 也是无法打开网页。非IE内核的chrome浏览器打不开网站, 说明并不是浏览器的问题。
3.操作系统问题
会不会是系统中毒了?用杀毒软件全盘查杀, 发现有恶意程序。把恶意程序清除后, 重启电脑再来访问网站, 仍然不行!会不会病毒破坏了系统文件, 导致无法访问网站呢?给电脑重装操作系统, 然后再来访问QQ邮箱网站, 发现故障依旧。
4.防火墙问题
电脑重装过系统后仍然无法访问网站, 那有可能是防火墙的问题了。特别是最近换过防火墙, 嫌疑很大。登录防火墙, 查看访问控制策略, 没有发现可疑的策略。再看地址转换策略, 发现源端口是做了转换的。试一下源端口不做转换看能不能访问网站, 发现还是不行。继续看路由表, 也没有发现可疑的地方。
5.数字证书
突然发现chrome浏览器的地址栏里面的https是打了红色的叉。难道是证书的问题?查看QQ邮箱网站的证书, 发现有个错误提示:该证书有一个无效的数字签名。数字签名怎么会无效呢?在网上搜索, 有人说是系统的时间不对, 调到正确的时间就可以了。笔者于是查看系统的日期和时间, 发现都没有问题。再看防火墙的时间, 是慢了一些, 把时间调准确后, 再来访问QQ邮箱网站, 还是无法访问。看来不是这个原因。
故障解决
QQ邮箱网站的数字证书, 在家里的电脑上查看是正常的, 而在单位的电脑上查看就不正常了。两台电脑的操作系统都是Windows XP, 惟一的不同就是家里的电脑打了SP3补丁, 而单位的电脑只打了SP2补丁。难道是SP3补丁的原因?把单位的电脑打上SP3补丁, 然后访问QQ邮箱网站, 终于可以访问了!再看网站的数字证书, 发现证书状态是正常的了。
经验总结
在没打SP3补丁之前, Windows XP是不支持sha256RSA签名算法的, 这时候查看QQ邮箱网站数字证书的签名算法, 会显示一堆数字如1.2.840.113549.1.1.11。打了SP3补丁后, 再查看该数字证书的签名算法, 会显示正常的sha256RSA。因此, 当操作系统不支持证书签名算法而又去访问此类型的https网站的时候, 操作系统无法用公钥解开服务器证书的数字签名, 会认为数字签名无效、这个服务器是假冒的, 浏览器断开跟这个https网站的连接, 所以无法访问这个网站。
通用数据安全访问模型 篇7
本文提出了一种通用数据安全访问的模型CDSA, 它实现数据的抽象访问与同步, 帮助工程师们管理好系统软件的数据, 保持数据的一致性和完整性。基于此模型可以实现远程过程调用 (RPC) , 其机制、原理和标准的RPC调用以及分布式计算原理完全相同, 不同之处在于这种调用方式可用于跨进程、跨系统、跨计算机边界、跨平台等复杂的环境中。
1 通用数据安全访问模型
首先, CDSA模型把各种系统软件对公用数据的访问划分为高级访问 (调用者需要理解数据以及各参数和返回的含义) 和原始访问 (调用者无需理解数据以及各参数和返回的含义) 。高级访问针对数据应用, 原始访问针对数据传递过程。
(1) 原始接口:输入和输出为数据流, 不理解协议本身以及任何应用数据结构, 供通讯使用。
(2) 高级接口:输入和输出为实际应用数据, 理解协议本身以及应用数据结构, 供业务使用。
其次, 考虑到一般的系统软件中数据的传递过程分为进程组内部数据传送 (交换) 和远程数据交换, CDSA模型规定进程组内的数据传送通过消息队列进行通讯, 在进程组外的数据传送, 主要通过SOCKET进行通讯。CDSA模型还约定这两种数据传输均通过原始模式进行, 不需要理解数据的含义以及输入和返回。
(1) 对于本地应用进程 (服务器进程) , 通过消息队列和主进程进行通讯, 达到数据读写的目的。为什么这样处理呢?主要是因为CDSA模型支持保存复杂的数据结构, 而共享内存只能适用于简单的数据结构, 如果采用复杂数据结构, 必须实现空间管理, 这非常复杂且可移植性不强。
(2) 对于其他进程, CDSA选用SOCKET作为通讯的手段, 通过抽象和复用代码等方法完成完整的数据通讯和交换过程。既达到RPC的效果, 又降低系统复杂程度, 同时满足了高效数据通讯的需求。
(3) CDSA模型规定, 服务器启动后, 主进程负责将全部的数据加载到内存, 主进程有义务通过消息队列或SOCKET等方式为其他服务进程 (包括远程管理进程、客户端进程) 提供数据共享, 并惟一直接操作数据库, 以维持数据的统一性。
(4) 如果系统软件有独立的远程管理进程, 由于多次远程读取数据需要耗费大量的带宽和时间, 所以CDSA模型规定管理端进程与服务端连接后, 首先下载并且维护一份和远程服务端一致的数据, 如此一方面保证本地数据和服务器数据的一致性, 一方面降低数据读取的消耗。
(5) CDSA为了保证数据的一致性, 采用了读取共享、写入独占的方式。具体来说, 本地应用进程在系统启动后自动获取数据库的修改权限, 第一个连接进入的管理进程可以抢占该写入权限, 直到该进程退出后, 如果系统中已经存在有一个管理连接, 后连接进入的进程将只能获取读取的权限, 并不能剥夺第一个管理进程的写入权限。
最后, CDSA模型定义数据访问的触发 (回调) 机制, 用于在设置变更或读取的状态下做出某种响应 (如配置系统、数据同步传递、数据重读、数据更新等) 。
2 CDSA模型的实现
CDSA模型存取的数据可以是数据库, 可以是配置文件、系统环境等。对数据库的操作没有定义专门类, 需要各系统软件自行考虑。对配置文件、系统环境等的存取, CDSA模型定义了实现IBoot DBIPlugin接口的Csvr Cfgtor类。通过这个专门类去处理实际的数据存取, 该专门类还支持调用IAdvBootDBI接口, 以便远程重新获取数据、远程修正数据。
CDSA模型还定义了两个实现IRaw Boot DBI或者IAdv BootDBI接口的类, 用于完成对数据的存储和数据格式的转换。
(1) 数据直接访问类
完成数据的直接访问, 对数据库进行直接操作, 通过IBoot DBIPlugin接口调用Csvr Cfgtor类来完成数据的存储以及存储的事件通知。
该类实现了IRawBootDBI、IAdvBootDBI这两个接口。其他进程可以通过这两个接口调用来存取数据。
(2) 数据中继访问类
完成数据的转换, 可以将复杂的数据结构转换为标准的数据流, 或者将数据流还原成复杂的数据结构。这些数据流包括两个部分:输入流和输出流, 通过这两个部分完成参数的传递和返回值的获取。
该类实现了IAdvBootDBI这个接口, 支持调用其他类的IRawBootDBI接口去传递、存取数据。其他进程可以通过这两个接口调用来存取数据。
(3) 客户端SOCKET类 (数据通讯模块)
数据通讯模块本身即为一个基于IRawBootDBI的对象, 他们完成的工作即将输入流送入其他服务进程或者服务器端, 然后等待其他服务进程或者服务器端返回一个输出流。一个CBootDBRelay的对象可以成功地将高级的数据转换为 (序列化) 流格式, 然后调用通讯模块的接口IRawBootDBI, 等待通讯模块完成数据请求后, 将返回流还原成 (反序列化) 高级格式, 返回给调用者。
数据通讯模块对数据的序列化与反序列化是成对出现的, 如果有多对序列化的格式, 就要分配协议号以示区别, 协议号本身被序列化成流格式的第一个字节, 反序列化时先读取第一个字节, 了解序列化的格式, 再对后续的流格式进行反序列化。
3 CDSA模型中数据访问的流程
模型中涉及配置数据的各进程对数据访问的逻辑示意如图1。
(1) 数据服务进程的直接数据访问
数据服务进程负责数据库的管理, 是数据的直接处理进程, 该进程通过消息队列实现数据的对外共享。
如图1所示, 在请求到达后, 该进程通过CBootDBDirect访问数据, 并同时完成系统配置:[消息队列服务器端]->IRawBootDBI (CBootDBDirect) ->DB (->IBootDBIPlugin (CSvr Cfgtor) ->系统配置) 。
(2) 本地进程间的数据访问
本地应用进程是本地的数据消费者之一, 该进程不能直接访问数据库的数据, 但可以通过高级访问接口存取数据:[本地应用进程]→IAdvBootDBI (CBootDBRelay) ->IRawBootDBI (消息队列客户端) 。其过程如图2所示。
(3) 远程进程间的数据访问—服务端
远程管理进程的服务端是数据的转发层, 对外衔接网络, 对内衔接数据服务进程。
[远程管理进程的服务器端]->IRawBootDBI (消息队列客户端) 其过程如图3所示。
(4) 远程进程间的数据访问-客户端
如图4所示, 远程管理客户端进程为数据的消费进程, 存在两种访问数据库的方式:
本地缓存数据:[管理]->IAdvBootDBI (CBootDBDirect) ->CacheDB
远程数据:[管理]->IAdvBootDBI (CBootDBDirect) ->IBoot DBIPlugin (Csvr Cfgtor) ->IAdvBootDBI
(CBootDBRelay) ->IRawBootDBI (SOCKET客户端)
4 CDSA模型的应用
图5说明了一个无盘站引导服务系统使用CDSA模型进行数据访问的实际情况。
说明:
(1) 图中数据守护进程不但是主无盘站引导服务软件的主进程, 还是数据服务进程, 它直接进行数据访问, 通过消息队列实现数据的对外共享。
由于系统软件本身功能不同, 操作的数据类型肯定也不同, 这就要根据实际需要去定义具体的实现类。图5中定义了无盘配置数据, 系统数据, 系统配置数据, 缓存数据等类。
(2) 图中DHCPBINL服务进程和TFTP守护进程对应了本地应用进程。
D H C P B I N L和T F T P守护进程是本地的数据消费者, FTFP还会fork出新的进程进行数据消费, 这些进程通过高级访问接口存取数据。
(3) 图中的管理服务器进程对应远程进程的服务端
管理服务器进程是数据的转发层, 对外为管理工具提供数据, 对内向数据服务进程取得数据。
(4) 图中的管理工具进程对应远程进程间的客户端
管理工具进程是数据消费进程, 刚建立连接时, 把数据从服务端请求到本地缓存, 以后的操作在缓存内进行。操作完成后, 如果缓存数据被修改过, 就调用CsvrCfgtor类的IBoot DBIPlugin接口回写数据。也可以通过IBoot DBIPlugin接口从远程取得最新的数据。
摘要:本文提出了一个称为CDSA的数据安全访问模型, 该模型可以被用在各应用软件中保证服务端与客户端数据的一致性, 也可以用在本地进程间通信、远程进程间通信等领域, 保证共享数据的一致性。
关键词:数据存取,数据一致性,回调
参考文献
数据访问模型的现状 篇8
许多计算机应用,包括计算密集型和IO密集型应用,都需要高性能的底层存储系统保障服务。面对应用系统产生大量数据的IO访问,存储系统需要提供足够的性能来保证应用的服务质量(quality of service,QoS)。随着基于虚拟化技术的云计算的发展,多用户、多应用的场景更加普遍,比如Amazon云,保障应用所需的性能尤为重要[1]。不同的应用具有不同的访问特性,应用内部也存在不同的数据访问阶段,因此,根据不同应用的数据访问特征分而治之,是存储系统必不可少的机制。
数据访问的特征分析,对于针对性的系统性能优化非常关键:①数据访问特征可以揭示某一类应用的规律性,从而为一类应用提供指导,比如缓存策略的指定[2,3]、数据布局[4]、程序重构[5]和程序行为分析[6,7,8]等等;②基于访问特征的数据预测,能够及时地、动态地优化系统的性能[2],也为应用的QoS提供了保障。
数据访问的分析,一般是通过收集应用访问trace记录,进行离线或近线分析得出应用的访问特征。这方面的研究工作主要以IO访问trace分析为热点,而典型的访问特征是访问的时度(Recency)、频度(Frequency)、重用距离(Reuse Distance)等统计特征。对于数据访问特征的分析,学术界进行了大量定性和定量的研究,提出了大量的模型,比如LRU堆栈模型(LRU Stack Model,LRUSM)[9],工作集(Working Set,WS)模型[10],有界局部性间隔(Bounded Locality Interval,BLI)模型[11],访问间隔模型(Inter-Reference Gap,IRG)[12],有效重用工作集(Generalized Effective Reuse Set Size,GERSS)树模型[4],稳定集模型(Stable Set Model,SSM)[2],相关集模型(Related Set Model,RSM)[13]。根据研究对象的粒度不同,本文将数据访问的研究分成两类:微观模型和宏观模型。
2 微观模型
应用程序(比如,数据库、搜素引擎、文件共享等)产生的数据访问请求,可以描述为一个请求序列,例如r1r2…rt…表示经过t个逻辑时间产生的访问序列,其r(i)表示第i个时间访问的数据对象。这里的逻辑时间,是指一次访问定为一次时间。数据对象的大小根据研究系统不同而不同。微观模型针对数据访问序列,研究的基本单位是一个数据访问请求r(i),考虑请求之间的时空局部性。时间局部性暗示一个数据被访问之后,在很短时间内会再次被访问;空间局部性暗示一个数据被访问之后的很短时间内地址相邻的数据会被访问。
2.1 简单随机模型
简单随机模型(Simple Stochastic Models,SSM)主要分为三种,简单重用模型(Simple Renewal Model,SRM)[14]、独立访问模型(Independent Reference Model,IRM)[15]和LRU堆栈模型。
简单重用模型SRM认为每一个数据的访问过程都是一个渐进独立的重复使用过程,这个模型曾经作为计算工作集的统计数据[16,17],但是在缓存管理方面并没有发现优势[17]。独立访问模型IRM认为每一个数据块都有自己的访问概率,而这个访问概率是一直不变的,即Pr{rt)=i}=aifor allt,也就是文献[18]中所提到的概率模型。独立访问模型IRM是LFU(Least Frequently Used)替换算法的理论基础。LRUSM起源于LRU(Least Recently Used)替换算法,LRU堆栈是一个按照访问时间距离当前时间远近排序的向量,向量的第一个位置是当前访问数据r(t),对应r(t)的堆栈距离d(t)是指r(t)元素在上一个时刻离栈顶的位置,如图1所示。
在上世纪六七十年代,简单随机模型的研究是很活跃的模型研究。当时研究者已经对局部性(locality)现象有了一定的认识,但是,由于错误的认为局部性之间的转换是一种类似缓慢漂移的行为,许多人认为采用简单随机模型也能模拟出这种局部性现象。然而,在使用简单随机模型进行工作集大小估计、缓存替换算法评估等工作时,研究者发现了许多与事实不符的现象,这直接否定了对局部性转换的“缓慢漂移”认知,并导致了复合模型的诞生[17]。
简单随机模型很容易部署到缓存管理中。该类算法利用数据访问中数据块的访问历史信息来评价是否需要替换该数据块。基本的评价指标有时度(Recency)和频度(Frequency)两种,两个指标分别对应于LRU和LFU两种算法。LRU算法是选择最近最少使用的数据进行替换,而LFU算法是选择访问频度最少的数据进行替换。LRU算法的理论基础是LRU堆栈模型(LRUSM),它根据每个数据块距离上一次访问的间距来衡量该数据块的热度,即访问间距越近的数据块的访问热度愈高,反之亦然。LFU则基于独立访问模型(IRM),它根据每个数据块的数据访问频度来衡量数据块的访问热度,访问频度越高的数据块的访问热度也就愈高,反之亦然。然而不管是LRUSM模型还是IRM模型都不够全面[19],因此现代的缓存替换算法一般都会把这两种评价指标综合在一起,例如ARC(Automatic Reference Counting)算法[19],该算法能够以在线自适应方式动态调节Recency和Frequency两种评价指标所占比例,以期适用于各种不同的数据访问类型。目前这类算法研究工作中有代表性的研究成果主要有:IRU、LRU-K[20]、2Q[21]、LFU、MQ[22]、LR-FU[23]、LIRS[24]和ARC。
2.2 IRG模型
访问间隔模型IRG[12]考虑对同一元素两次访问的时间间隔作为时间局部性的有效评价,IRG(a)=X1X2…,其中Xi=ti-ti-1,如图2所示。
IRG模型使用k阶马尔科夫(Markov)链来进行未来访问间隔预测,见公式(1)。
IRG模型能够根据相同的时间间隔来捕捉簇内局部性(Inter-cluster Locality),但是基于马尔科夫链的开销不利于实际应用,而且真实访问间隔的变化是不稳定的,对其预测效果是有影响的。基于IRG的内存替换算法,会选择预测时间间隔最长的数据进行替换,但是独立查看每一个数据块,无法获取捕捉应用整体上的访问行为。
综上所述,微观模型实现比较简单,如表1所示。最主要的应用就是缓存管理,基于微观模型的优点在于访问热度评价方法在实际应用中所带来在时间和空间上的开销较小。其中LRU算法又由于实现最为简单且对于不同数据访问模式类型具有较高的普适性,因此在对缓存处理时延要求较高或计算资源匮乏的应用环境下最为适用,例如CPU片上数据缓存、磁盘控制器中同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)缓存等;但该类算法在管理大容量缓存的时候将遇到困难,由于它们采用LRU的渐变式访问概率估计方法来近似逼近突变的访问概率,在大容量缓存中,将不再访问的数据替换出缓存将需要花费更长的时间作为代价,这造成了更严重的缓存资源浪费。
此外,应用数学拟合曲线也可以直观描述数据访问特征。例如按照数据访问频度降序排列,互联网文本负载符合Zipf-like分[25],互联网的媒体负载的访问符合拉伸指数模型(Stretched Exponential,SE)[26]。
3 宏观模型
宏观模型与微观模型不同,宏观模型类似于经验模型,它来自于数据访问直观特征的假设。其研究对象是应用产生的数据访问集合。与单个请求相比,集合描述的数据更多,更能反映数据访问的阶段性,从而揭示应用的行为变化。
3.1 工作集模型
工作集模型[10]是最早的用于刻画应用缓存需求的理论。它最初主要是用于解决内存资源的抖动(thrashing)问题。工作集理论定义集合W(t,T),表示某一应用在t时刻之前的T间隔内的数据访问集合(如图3所示),然后根据集合中元素的个数定义应用的缓存需求。工作集模型的缺点是由于。与T的任意性,W(t,T)集合大小存在很大的任意性和不确定性,因此只能作为一个缓存需求的参考值。使用工作集模型,可以用来平衡资源需求和分配问题[27]。
3.2 阶段-转换模型
阶段-转换模型(Phase-Transition Model)起源于对虚拟内存中局部性(locality)突变现象的正确认识。阶段-转换模型认为,程序的访存行为可以表示为以下二元序列:
其中局部集Li是在第i个阶段内被访问的数据的集合,而Ti是该阶段的持续时间。程序在一个阶段内部的访问行为是稳定的或者缓慢变化的,而阶段和阶段之间的变化是突变式的。Denning和Kahn[28]设计了一个复合模型,用于验证突变转换的重要性,在这个模型中有一个宏观模型和微观模型。宏观模型是一个半马尔可夫链,它的状态是互不相交的局部集(Locality set),持续时间就是阶段时间。宏观模型用于产生一个(S,T)的二元序列,其中S表示局部集,T表示它的持续时间。微观模型用于产生一个在S集合上长度为T的访问序列。微观模型可以是IRM,LRUSM和循环访问。他们证明了突变转换是程序行为模型中不可忽略的
Batson和Madison[11]开始实验在真实的符号引用序列中学习阶段和转换。他们使用活跃集(Active set),并以此称谓表示局部集,并使用“有界局部间隔”(Bounded Locality Interval,BLI)来表示阶段和局部集的结合体,如图4所示。他们定义阶段是一个给定数据集合在LRU栈顶全部被重用后,继续停留在LRU栈顶的时间。这是对实际访问序列中的阶段和转换的第一次捕捉。但是他们的捕捉仅仅用于验证阶段和转换,在访问模型中具有同样的重要性,并没有用于实际指导缓存管理。阶段表明了应用所需的活跃数据的稳定性,而阶段转换暗示了应用行为变化导致了活跃数据的变化。一些技术提出了识别阶段的方法[29,30,31]。
此后还有很多的模型研究[17],他们共同验证了阶段和转换两种行为在程序行为中具有同等重要的地位,阶段-转换行为是对程序行为局部性的精确描述。
基于阶段-转换模型,研究者[32]可以在程序概要分析阶段对程序的访存行为进行刻画,并预测该程序之后的访存行为,从而优化缓存的管理,比如自适应调整CPU缓存,或者进行内存的重映射。
Majumdar等人指出应用对文件系统的访问模式与对虚拟内存的程序访问模式具有相似的locality特性,因此可以将对于程序的访问行为的研究大部分移植到对于文件系统访问模式的研究上[33]。研究[33]将BLI模型从程序访问模型里移植过来,用于分析文件系统上的访问行为。Majumdar的工作主要集中在对短期数据访问中存在的阶段-转换行为的研究。实验结果表明,文件访问序列呈现出与程序访问行为非常类似的“阶段-转换”行为,证明使用“阶段-转换”模型分析文件或者存储系统的访问是合理的。曾经的研究[34,35]对于长期数据访问行为的研究也发现了类似的阶段-转换现象,他们的研究主要应用于数据迁移。
3.3 RA模型
为了刻画访问关联的数据,文献[5]提出了访问紧密度(Reference Affinity,RA)。RA是指数据总是一起访问的程度,数据划分的依据是依赖不同数据之间的访问距离。依靠距离大小将数据分成不同的层次。
给定数据访问序列r1r2…rt…,另访问时刻i的数据为ri,访问时刻j的数据为ri,j>i,则ri和rj之间的堆栈距离dis(ri,rj)为访问时间[i,j-1]内访问的不同的元素个数,定义为容积距离(Volume Distance,VD)。如果ri和ri是对同一个数据的访问,那么VD就变为重用距离。如果rx和ry之间存在m个数据访问rxi,,…,,满足以下两个条件:①dis(ri,≤≤;②,ry都是对不同数据的访问。这样的链路定义为链接路径(Linked Path),其长度为k,组成一个RA组。不同的k将数据访问划分为不同的集合,而且由较小的k形成的RA组是较大的k’形成的RA组的子集。如图5所示。
基于RA模型的k-距离分析方法,可以提升程序数据布局一数组和结构重组的效率;访问紧密度为应用在不同内存层次的数据布局提供了一定的依据。
3.4 GERSS树模型
为了解决共享环境下不同层次缓存使用的问题,GERSS树模型[4]刻画了应用运行时在不同层次缓存的容量需求,对工作集模型进行了重新定义,提出了重用集(Reuse Set,RS)和有效重用集大小(Effective Reuse Set Size,ERSS)概念。ERSS是指保证应用在一个阶段内不发生thrashing的最小物理内存容量;ERSS是与缺失个数除以命中个数的比例ΔM相关的,表示为ERSS(ΔM)。
一个应用的GERSS树,是刻画了所有阶段的树形结构,其中每个阶段表示为一个树节点,每个节点包含持续时间θ(以逻辑时间表示)和有效重用集大小ERSS(ΔM)。节点之间的父子关系表示阶段的嵌套关系,一个节点可以有多个子阶段;如果一个子阶段发生许多次,边的权重表示发生次数,如图6所示。图6中,GERSS树包含5层阶段,最顶层阶段包含6×108次访问,包含两个小阶段,每个阶段16MB。第二层的阶段一个包含3.13×108次访问,一个包含2.57×108次访问。
GERSS树模型[4]主要用来规划应用在内存层次(memory hierarchy)的容量配置,当应用独立运行的时候,通过给定的缓存容量,根据缺失率信息识别出各个层次的阶段构造其GERSS树,根据不同层次的内存容量放置不同大小的阶段数据,其详细过程参照文献[4];当多个应用共享内存时,每个应用都有自己的GERSS树,所有应用在不同层次的阶段数据总和不超过该层的缓存容量,就不会影响各自的服务质量。
3.5 访问相关性模型
数据访问之间存在着一定的联系,称之为访问相关性。存在这种关系的数据总是会在某个阶段内一起访问或者一起不访问,表现出一定的稳定性。借助于工作集,令S代表该数据块集合,W(t,T)代表在(tT+1,t)时间内S集合中被访问数据块的子集。s是S集合中数据块的个数,w(t,T)是w(t,T)集合中的数据块个数。对于绝大多数时间点t,其形式化表达如公式(2)。
文献[2]针对访问相关性的特征,提出了一种新的数据访问模型一稳定集模型(SSM),该模型能够精确的描述阶段转换行为。SSM是一种基于局部性原则、描述长时间数据访问情况的模型。它通过挖掘数据块之间的关系获得访问概率突变的详细信息。它将数据访问描述为多个不相交的集合,每个集合被标记为在多个时间段中处于活跃状态,一个时间段中可以有多个不同的集合同时处于活跃态。一个集合中的数据块倾向于同时被访问或同时不被访问。这种稳定集现象在一些trace中普遍存在,而且该现象可以直观的使用局部性原则来解释。
文献[36]描述了程序访问局部性的图像,如图7所示,纵轴是物理地址块号,横轴是时间。块号和时间间隔增大到一定程度之后,我们可以看到一些数据块总是倾向于同时被访问或者同时不被访问。
图8是将图7所示数据访问使用稳定集模型转化之后的效果,除了明显的阶段划分,在地址空间上也进行了划分。稳定集模型精确的刻画了数据访问的阶段-转换行为。稳定集模型SSM将任何数据访问流分解为有限个稳定集上的同时访问流,如公式(3)所示。
注:随着时间变化,局部性呈现明显的阶段性和聚集性
其中,(Si,Ti)表示稳定集Si上的访问流。访问流阶段性地同时访问Si上的所有元素,并且与其他稳定集上的访问流相互独立。Si是这个访问流访问的数据集,并且与其他稳定集是不相交的。Ti表示稳定集访问流(Si,Ti)发生的时间段序列,如公式(4)所示。
稳定集模型,是第1次存储系统访问行为研究。稳定集模型借助于工作集和阶段-转换的概念,实现了主阶段工作集的更小划分。其提出的稳定访问集概念,是在工作集的基础上强调了重复访问特性,与GERSS树模型的重用工作集概念相同。基于稳定集模型的缓存管理方法对于大数据集的阶段间缺失问题具有良好的优化效果,能显著降低服务器端负载,提高客户端访问速度[2,3]。
为了研究阶段的嵌套行为,已有研究[13]对SSM进行扩展,提出了相关集模型RSM。RSM把数据访问流R转换为不同层次相关集上数据访问的模型,如公式(5)所示。
其中,k代表层次,k越大代表细分的集合越小,R代表数据访问流,它可以表示为不同层次上访问流()的叠加。
第j层对应于每个相关集的活跃时间,是一个由不相交的时间段组成的集合{},在这些时间段里,相关集都处于活跃状态,即总是一起访问(访问相关性)。
同时,不同层次的相关集之间存在着“嵌套”关系:
(1)集合空间嵌套(数据包含):
(2)时间嵌套(时间包含)
其中,()为第j层访问流。
我们以文献[11]中访问请求序列为例,介绍嵌套关系,如图9所示。横轴刻度代表请求访问的逻辑时间。
从图9中可以看出时间和空间都满足嵌套的关系:从时刻11到30是集合{ABCD}反复访问的大阶段,从时刻13到20是集合{CD}反复访问的中阶段,时刻14到16是{D}反复访问的小阶段。此外,也能看出{CD}和{D}的重复出现的特征。
与稳定集模型相比,相关集模型对数据的嵌套特性进行分析,并认为访问相关性具有嵌套特性,是一种普遍存在的数据访问现象,是对数据访问的一种合理描述。
综合上还的模型,宏观模型所表达的集合属性强调了数据的聚类效应,对数据分布、行为描述非常关键,如表2所示。如何有效划分阶段和数据,保证活跃的数据总是在一起,是需要重点解决的问题。
数据访问的阶段性具有重要的意义:应用的访问呈现阶段性,具有两个属性,一是阶段的持续时间,二是阶段的大小;持续时间越长,性能越稳定,越容易保障应用的服务质量;阶段的数据越小,所需要的资源就越少[13]。数据访问的相关性为阶段的划分提供了重要的依据。
4 结束语
银行海量数据访问优化途径 篇9
海量数据库系统是一个可以动态调整的系统, 它的内存区域的大小、服务器进程的响应模式、后台进程的多少和种类都可以根据需要进行调整。这样一个可以动态扩展的数据库系统为不同的应用规模、软硬件平台提供了一个表现的空间, 它可以让不同的系统在不同的平台上发挥最佳的系统性能。同时, 也正是这种灵活性, 为银行海量数据访问的性能优化带来了一定的挑战。
一、数据访问优化的基本思路
银行海量数据访问优化是银行数据大集中后的一个重要研究课题。它将应用系统的数据访问任务在应用软件和DBMS之间作最优分解, 采用一定技术对大型数据库的数据结构设计、参数调整和数据访问方式等3方面优化进行有机结合, 从而有效减少搜索空间, 同时提高数据访问的效率, 完成数据访问优化工作。同时在数据库管理层次, 可以根据不同交易对数据访问的特点, 进行数据库的配置和优化设计, 充分发挥数据库管理数据的优势。如果两类数据库存放在不同的物理主机上, 可以发挥多主机并行处理的最大优势。在应用程序层次, 进行联机交易处理时, 严格控制每笔交易的处理时间, 杜绝其它业务处理进程 (如大数据量查询交易和长事务交易等) 对联机交易处理的影响, 使联机交易类数据库保持最小的数据集合, 提高交易响应速度, 便于对数据进行快速的联机备份。应该最大可能地实现7×24小时不间断业务, 日终、季末、月末、年末的批量处理尽量不要影响联机交易业务持续进行。数据访问优化的基本思路如下所述。
(一) 减少无关和重复的计算
采用适当的数据访问语句, 减少无关的数据运算和操作运算。针对影响重复计算的原因, 如用户在所提供的规则中对数据的重复计算或在迭代计算中同一事实多次计算等, 改进应用程序逻辑或数据访问算法。
(二) 参数调整
根据软、硬件的资源情况和数据库的实际运行状况, 调整数据库SGA内存区的大小和PGA区的大小, 调整操作系统数据缓冲区的大小、每个进程所能使用的内存大小等参数, 同时可以调整数据库存储过程, 提高系统的整体性能。
(三) 数据分布调整
可以将组成同一个表空间的数据文件放在不同的物理存储上, 即采用数据的分区技术, 调整数据库系统的I/O性能。例如, 银行的户主账表原来设计成一张表, 虽然可以方便程序的设计与维护, 但经过分析发现, 由于数据量太大, 会影响数据的迅速定位。如果将户主账表分别设计为活期户主账、定期户主账及对公户主账等, 并放在不同的分区上, 则可以大大提高查询效率。
(四) SQL语句计算优化
SQL语句运行的时间越长, 占用系统资源的时间也越长。因此, 尽量使用优化过的SQL语句以减少执行时间。比如, 不在查询语句中包含子查询语句, 充分利用索引, 合理进行分组、合并及汇总等。
(五) 连接优化
指数据库中存在的临时关系的优化和长连接优化。前者指数据库系统查询中, 会产生大量仅含少量元组的临时关系, 要尽量减少这种临时关系;后者指逻辑数据模型中常出现一条规则含有多个子目标时, 该规则的计算中所包含的较多数目的连接操作。连接操作是一种十分费时的操作, 在数据库的连接操作中, 尤其是长连接查询中连接操作数目多、搜索空间大, 对长连接最好进行优化。
(六) 并行优化算法
指将并行算法引入逻辑数据模型, 以提高系统的处理效率。对含有递归规则的逻辑数据语言来说, 采用并行策略, 由于存在规则的迭代计算, 上一次计算的结果要作为下一次计算的输入, 这就需要将计算结果在系统间进行多次传递, 即并行计算将带来高额的传递代价, 因此, 需要采取查询并行优化算法减少这种计算结果的传递。
二、数据访问优化主要技术
通常一个基于海量数据的应用优化应在3个阶段有针对性地进行:应用程序开发阶段、应用程序部署阶段、应用程序调整阶段。不同的阶段优化的内容也不一样, 只有做好3个阶段的优化工作, 才能最大限度地使整个应用系统 (软件、硬件、网络) 高性能地运行。
(一) 数据索引技术
使用数据索引可以极大地提高数据操作效率, 特别在联机交易处理时, 尤其应该注重充分发挥数据库管理器利用索引进行数据操作的效率。数据表索引在建表时创建, 但在应用时的使用情况由应用自身决定。通过使用索引定位取代顺序扫描, 能够提高查询速度, 提高数据排序速度, 同时保证被索引字段的唯一性, 当仅仅查询索引字段时, 避免读取记录全部字段内容。但是建立索引后, 插入、修改、删除记录时增加系统的开销, 索引将占用额外的系统存储空间。因此应用开发时, 应该认真设计数据表的索引。
索引的建立原则为:对连接 (join) 字段建立索引, 对于连接操作, 至少对连接表达式的一个字段建立索引, 否则数据管理器要么在连接之前自动建立临时索引进行“sort merge join”或者“nested loop join”, 要么顺序扫描数据表进行“hash join”;对选择性过滤 (selective filter) 字段建立索引;对排序 (order) 字段建立索引;避免对高重复率 (highly duplicate) 的字段建立索引;利用组合索引 (composite indexs) 降低索引重复率;建立组合索引时, 应该将重复率低的字段放在前面, 重复率高的字段放在后面;控制索引字段对比数据表字段不能过长;运用聚集索引 (clustered index) 提高查询速度, 聚集索引的建立将使被索引的表记录在物理存储上严格按聚集索引的顺序存放, 也就是聚集索引记录与数据记录的存储顺序一致, 查询时扫描的数据量较普通索引减少了, 所以对于经常查询, 很少增删的表可以充分利用聚集索引的优点提高查询速度;数字字段的索引查找速度较其他类型字段 (如字符串字段等) 的索引快;一个数据表的索引不应该过多, 索引过多, 数据插入、数据删除、数据修改速度一定程度上会受影响;利用“部分键查找” (partial key search) 提高索引利用率, 例如, 建立在表tab上的一个索引idx (f1, f2, f3, f4) , 当对tab按照 (f1, f2, f3, f4) 或者按照 (f1, f2, f3) 或者按照 (f1, f2) 或者按照 (f1) 条件查询时, 索引idx (f1, f2, f3, f4) 都可以被利用;为了提高索引查询的效率, 索引应该与数据存放在不同的表空间。
(二) 数据分区技术
当创建一个数据库时, 把数据库分成称为表空间 (tablespace) 的多个逻辑区段。为了使大型数据库的管理更方便, 减少数据查询时引起的I/O冲突, 提高查询效率, 可对数据量比较大 (50 000条记录以上) 、访问频繁的数据表进行分区存放, 分区分为以下方式。
1. 范围分区
如果要在某个数据表中存储大量记录, 可能希望将该数据表的行分到多个表空间中。若要按范围划分表的记录, 可使用creat table命令的partition by rang子句, 这些范围确定存储在每个分区的值。例如:
该数据表实现了将数据按季存放在不同的物理表空间。
2. 散列分区
散列分区通过对分区键值执行一个散列函数来确定数据的物理位置。在范围分区中, 分区键的连续值通常存储在同一分区。在散列分区中, 分区键的连续值不必存放在同一分区。散列分区在比范围分区更大的分区集上分配一个记录集, 从而减少了I/O冲突的可能性。创建一个散列分区, 使用partition by hash子句, 例如:
3. 列表分区
列表分区是基于值列表划分行而不是使用值范围划分行。当基于值列表划分表时, 只能在partition by list子句中指定一个分区键值, 不能指定maxvalue作为列表分区值。例如:
将各个省分行的数据按照业务量的大小进行搭配, 均匀地分配到多个物理空间。
4. 混合分区
混合分区是指把散列分区和范围分区结合起来使用, 从而创建范围分区的散列分区。对于非常大的表, 这种组合分区可能是把数据分成可管理和可调整部分的有效方法。例如:
将历史数据根据交易日期按季进行范围分区, 在范围分区内以账号为键值建立散列分区。
(三) 数据库设计和查询优化技术
1. 表的设计
当在表中添加字段时, 应该选择长度最小的数据类型, 这样表在内存中每页可以存储更多的记录。如“姓名”字段一般设置为TEXT类型, 一般长度为10就够用, 则比默认值255要好得多。整型Integer的长度是2, 在使用整型Integer可以解决问题时不要使用Single, Long, Double, Currency, 因为它们的长度分别为4, 4, 8, 8 (都比2大) 。在建立表后一定要建立索引, 可以大大提高查询速度。
2. 压缩数据库
数据库的查询优化是有代价的, 随着数据库的不断扩大, 优化将不再起作用。压缩数据库会改变数据库的状态, 并重新优化所有查询。同时, 随着数据库的增大, 会产生很多碎片。而压缩数据库可以把一个表中的数据写到硬盘中连续的页里, 提高了顺序搜索的速度。
3. 避免多余计算
当查询的结果作为另外一个查询的数据源时, 可能引起查询优化问题。在这个时候第一查询尽量避免大量的计算。如果在查询输出中实在无法避免计算式的话, 尽量把计算式放在最外层, 不要放在最内层。在建立查询时, 仅返回需要的字段, 这样可以节省不必要的开支。如果某个字段不需要的, 在查询语句中不要出现。用SELECT INTO建立工作表, 尤其是结果集用于几个查询时, 尽量使用中间结果表。在查询前做的准备工作越多, 查询速度越快。
4. 分组、合并及汇总
这里要说明的主要是合并, 当你需要把2个表合并, 就是说, 要根据“Customer Name”对2个表进行合并, 要肯定GROUP BY field (Customer Name) 和汇总 (Sum, Count, and等) 的字段是来自同一张表。在合并表时, 尽量使两边的字段都设置索引。这在执行查询时, 查询优化器可以更多地使用sophisticated内部合并策略。如果要在合并中使用表达式约束一个字段的数值, 需要测试表达式放在合并的一侧还是其他地方的速度。在一些查询中, 表达式放在合并关键词join一侧反而比较快。
SQL语句中分组 (GROUP BY) 的字段越多, 执行查询的时间越长。在GROUP BY子句中尽量用aggregate函数来减少字段的数量。在合并之前嵌套GROUP BY子句。如果要合并2张表, 而且只在一张表中分组, 以查询分为2个SELECT语句要快得多。例如:
可改为:
查询1
查询2
5. 使用可优化的表达式
重新构造查询语句, 以便于Rushmore技术可以对其进行优化。Rushmore是一种数据访问技术, 使用可以提高记录集的查询速度。使用Rushmore时, 若在查询条件中使用具体类型的表达式, 查询速度将非常快。Rushmore不会自动加快速度, 必须按照具体的方法修改查询语句, 以便于Rushmore可以优化它们。
使用COUNT (*) 代替COUNT (Column Name) , 因为Count (*) 计算所有的行, Count (Column Name) 计算所有Column Name非空的行。在变量中避免使用LIKE, 由于在查询完成的时候变量的值不确定, 所以无法使用索引, 这样建立的索引就失去了意义, 而且严重制约查询速度。避免LIKE和通配符同时使用, 如果要把LIKE运算符同通配符一起使用, 为了使用索引, 必须把通配符放在后面。避免SELECT子语句和NOT IN同时使用, SELECT子语句和NOT IN同时使用很难优化, 取反嵌套的查询或OUTER JOINs影响很大。
(四) 并行查询技术
随着功能强大的计算机的问世, 可以利用多个处理器来执行事务处理和查询。一个数据库的查询工作可以通过多个相互配合的处理器来完成。在多处理器间分配工作量可以提高事务处理及查询操作的性能。Oracle等大型数据库的并行查询选项 (PQO) 结构允许将几乎所有的数据库操作并行化。可以利用PQO优势的操作包括create table as select, create index, insert, update, delete和全表扫描、索引扫描、排序、大多数查询。数据库所使用的并行程度由这些命令中使用的paraller关键字degree和instances参数决定。并行查询最适合以下的情况。
●通过搜索非常大表 (通常1 000 000行) 来处理访问大量数据的查询。
●处理连接非常大的表查询, 当数以百万行计的表一起进行访问并汇集查询结果时, 使用并行处理所得的效果特别明显。
●处理建立大索引、大容量数据装载、汇总计算以及对Oracle对象间大量数据拷贝等作业。
●处理在SMP (对称多处理器) 或MPP (大规模并行处理) 群和聚合 (多个机器一起工作, 访问同一组盘和主数据库) 的机器上的查询。
●处理存放在多个数据文件且在不同盘驱上的数据查询。
●对于CPU工作明显不足或间断使用CPU的机器处理。一般是按平均利用率不低于40%来检测CPU的使用效率。
●处理需要大量辅助内存的工作, 比如分类的查询。
●应用系统开发人员应与数据库管理员协同工作, 合理利用资源, 以保证并行处理的进行。
三、海量数据访问优化技术发展及展望
计算机技术发展日新月异, 数据访问优化技术也层出不穷, 当前的优化技术必须具有一定前瞻性, 不但要满足当前的应用要求, 还要考虑未来的业务发展, 同时必须有利于扩展或增加应用系统的处理功能, 同时对数据访问优化技术发展方向, 也要作必要的了解和有益的探讨, 为数据大集中时代数据的更好利用不断拓展途径。目前, 数据访问优化最新技术有以下几个方面。
(一) 逻辑数据语言
采用逻辑数据语言、逻辑数学模型和递归查询计算模式, 在扩大数据库的查询功能和提高数据库的推理能力方面发挥重要作用。如逻辑数据语言可以表达递归查询, 这是关系数据语言所不具备的。它通过构造函数符号的引入来表达复杂对象, 突破了关系数据语言1NF的限制, 同时克服了关系数据库中存在的阻抗不匹配问题。逻辑数据语言及模型具有说明性语义和较强的语义表达能力, 而且采用基于规则的表达方式, 十分符合人的思维方式, 尤其是近年来通过对逻辑数据模型及其计算语义、演绎数据库的各种递归查询算法及计算模式进行大量研究, 数据库的理论和实践方面已取得较大的进展, 并越来越适合用来开发各类基于决策的应用系统。然而, 作为智能数据库初级阶段的演绎数据库迄今尚停留在试验和原型化阶段, 随着进一步的技术进展, 商品化的演绎数据库和知识库系统将问世。
(二) 数据感知的调度
任务负载调度器是网络应用系统中数据访问的一个重要组件, 它通常在把作业分发到分布式数据库上, 进行执行时并不考虑数据的位置。只有在提供最好的数据访问性能的资源上执行作业才更有意义, 因此当前发展的一种趋势是, 调度器正在开始考虑所需要的数据的位置。这需要采用一些方法来将所需要的数据 (输入或输出) 及其位置关联到给定的可执行文件或作业上。网络感知应用程序有望成为一种新的概念, 其中应用程序能够了解网络的状态, 从而可以适应不同的环境来达到可接受且可预测的性能。由于分布式数据库的网络会不断变化, 在应用程序中应用网络感知方面的智能就变得有意义。这种方法的问题是采用什么编程模型以及能够实现何种程度的简化, 从而让应用程序开发人员可以简单地在自己的应用程序中集成网络智能。
(三) 智能检索
智能检索指用AI技术解决大存储容量数据库的优先存取问题, 它通常由AI和数据库2种技术的有效结合来实现, 亦即根据智能数据库或知识库中的事实和知识演绎出正确的答案, 进而推理, 以实现对数据库的智能检索。同时将含有函数项的一阶谓词逻辑用关系演算来表达, 并使其具有较高的计算效率。目前, 引入简单的函数项已不能满足新应用领域的需求, 如现已提出将集合引入逻辑数据语言以及将面向对象数据库和演绎数据库相结合等优化算法与途径。通常, 实现智能检索, 数据库系统应具有以下功能。
●能理解自然语言, 允许用户直接用自然语言提出各种询问。这通常需要引入AI中的自然语言理解技术, 通过建立基于自然语言或类自然语言的人机接口来实现。
●具有推理能力, 能根据存储的事实和知识来推理、演绎出所需的答案。
●系统拥有一定的常识性知识, 以补充学科范围的专业知识, 并能根据这些常识, 演绎出基于一般询问的某些答案来。智能检索涉及自然语言用户界面接口、逻辑演绎算法和语义数据模型等方面的研究, 近年来在这方面已有所突破。
参考文献
[1]唐汉明, 翟振兴, 兰丽华.深入浅出MySQL:数据库开发优化与管理维护[M].北京:人民邮电出版社, 2007.
[2]牛新庄.DB2数据库性能调整和优化[M].北京:清华大学出版社, 2009.