时间:2023-03-07 15:01:23
导语:在数据库系统的撰写旅程中,学习并吸收他人佳作的精髓是一条宝贵的路径,好期刊汇集了九篇优秀范文,愿这些内容能够启发您的创作灵感,引领您探索更多的创作可能。
【 关键词 】 数据库系统;开发优化;查询优化;优化举措
Try to Talk About The Database System Optimization Measures
Li Cong-hui
(GuangdongShaoguan Senior Technicians school GuangdongShaoguan 512023)
【 Abstract 】 this paper mainly in the database query optimization system are discussed, the goal for the minimum price probe execution (time and cost) strategy, optimization system performance. The application of optimization method choice must be appropriate, and scientific weigh the cost and the execution convenient degree, so as to determine the best optimization scheme, and improve the system ZhiHangLv.
【 Keywords 】 database system; development optimization; query optimization; optimization measures
0 引言
完善信息系统管理的重中之重即建立高效数据库管理系统。各种建立在数据库基础上的联机事务分析与联机事务操作对当今社会的计算机应用发展起到至关重要的作用。我们都知道对数据库系统可以进行多种操作,其中查询操作是应用最广泛的一项。SELECT语句是组成SQL语句的一部分,而针对查询系统来讲,SELECT语句则作为其中最大代价语句而发挥其作用。在现实工作中,不管是数据库系统的查询系统的升级或者是针对数据库应用系统的改进都始终是人们关注的焦点。文章主要针对数据库查询系统的优化进行浅谈。
1 影响数据库性能的主要因素
服务器的硬件配置与操作系统的参数设置决定了数据库性能的发挥,其中硬件主要包括CPU、内存、存储空间、网络条件等。一般情况下,设计系统时会留有部分余地,所以对系统的硬件改动相对较少。系统参数对数据库性能的影响主要表现在数据库系统长期运行可能出现表空间不足、回滚段不够、CPU占有率过高,性能急剧下降等异常现象,严重的时候甚至会造成数据丢失。这些异常可能是由于Oracle系统的初始化参数设置不合理造成的,例如系统内存过小,表空间和回滚段大小固定不能自动扩展;也可能是由于对数据库的应用造成的,例如不必要的全表搜索导致大量不必要的I/O读写,从而降低了整个数据库的性能,这些影响因素又可以分为信息系统参数和系统运行后的参数。
信息系统参数在开发信息系统之前完成,主要有数据结构和应用程序结构设计以及硬盘I/O调整。调整数据结构的设计时,程序员需要考虑是否使用Oracle数据库的分区功能,对于经常访问的数据库表是否需要建立索引等;调整应用程序结构设计时,需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构;硬盘I/O调整,在数据库开发时可以将组成同一个表空间的数据文件存放在不同的硬盘上,实现硬盘之间I/O负载均衡。
2 数据库开发模式优化策略
2.1 避免访问回滚段
如果某个用户对数据库进行查询时,而访问的数据正处于管理员用户修改状态,为维护数据库的一致性,需要访问回滚段来读取查询语句执行时刻的数据值。如果应用程序需要经常读取正在被其它用户修改的数据,数据库系统为了得到一个数据,不得不多次访问磁盘。数据库管理员可通过配置回滚段来减少查询时“snapshot too old”错误的发生,但解决这个问题的根本方法还是需要重新修改应用程序设计,合理对事务进行划分,避免访问回滚段。
2.2 使用表的分区和并行技术
如果必须要在数据库运行特别耗时的操作,应尽量地把这样的操作分解,严格限制操作所涉及的记录数,并设法使操作并行,充分地提高执行效率。
2.2.1 使用分区
分区技术有两个潜在的好处:提高查询性能和提高数据库可用性。数据库查询时,优化器知道哪些分区包含查询所要的数据,而其它分区数据将不会被读取,从而使查询任务更快完成。许多管理工作可只在一个分区上进行,而不影响其它分区的数据,例如可以选择删除一个表分区中的数据,而删除的同时仍然可以使用其余分区的数据。也可对表分区进行再分割,把一个表分区迁移到不同的表空间上。不管实际应用时选用何种分区方式,提高了系统的性能可以说是使用分区的最大优点。
2.2.2 使用并行
Oracle数据库中几乎所有的操作都支持并行特性,包括查询、插入和数据加载。并行选项可以使多个处理器同时处理一条命令,在创建数据库对象时可以设定并行参数,也可在查询语句中重新设。
3 数据库系统的优化举措
关键词:数据库系统;安全技术
信息系统中,数据库系统是十分重要的组成部分,由于数据库系统中含有很多重要的、敏感的信息数据,例如个人隐私、商业机密、国家军事机密等十分重要的内容,由于储存比较集中,如果数据库系统受到攻击会造成极为严重的后果,因此必须要加强数据库系统的安全管理,采用先进的安全技术,维护数据库系统的安全,保证信息数据不受威胁,维护利益。
一、数据库安全技术的种类
1、身份认证
当前数据库网络系统具有一定的开放性以及共享性,数据库系统需要对用户进行身份的认证,主要是为了保证进入数据库系统用户是被授权的合法用户,避免非法用户访问数据库系统。身份认证中使用比较普遍的方法就是每一个合法用户有一个ID号和密码[1],但是如果密切比较简单就很容易被破解。因此对于安全要求比较好的数据库系统而言是不适用的。近年来,还有很多新的身份认证方式出现,如智能卡技术、生物特征的认证技术。
2、访问控制
访问控制技术就在访问中,主体需要对客体的访问权限进行检查,保证访问系统资源的用户都是满足安全访问控制的规则,对于没有授权的访问是拒绝的,提高数据的保密性,保证数据的完整,并提高其可用性。
3、信息流控制
不同于访问控制,信息流控制是注重客体间信息的传输,并且信息流控制可以对程序中的变量进行直接利用,但是访问控制只是用于文件、进程等比较粗粒度的客体中。访问控制只能对信息的直接流动进行控制,信息流控制还能够对信息的间接流动进行控制和处理。近年来研究的信息流控制模型以在网络模型的基础上,使用静态可以证明程序信息流属性的安全类型语言[2],这种方式是通过显式的程序对信息流限制进行描述,对于违反限制的程序,程序编译以及运行的环境会拒绝处理。
4、加密控制
加密控制技术能够使系统中拥有正确密码,并且被授权的用户才能够获得、理解敏感的信息,非法用户是不可理解的。数据库加密技术相比于传统的加密技术,数据保存的时间更长,为了保证数据的安全性,可以适当的变换系统的密钥方案。不能随意改变数据库的结构,要对密文数据的长度进行限制,保证密文能够被储存在原有的数据库中。用户一般可以对数据库中数据进行随机的储存和提取,因此需要保证加密和解密的过程更加高效,避免数据库可用性受到影响。将授权机制与加密机制相结合,实现用户数据的共享。加密机制应减少对数据库擦做的影响,保证加密之后的数据库也能够高效、便利的进行检索、查询以及修改等。
5、推理控制
这种推理控制技术是避免通过推理的形式将敏感的信息间接地泄露出去,对于一些比较敏感的、安全级数多的数据库而言,只进行访问和信息流控制并不够,还需要进行推理控制。
6、审计
对数据库系统进行审计就是对数据库系统运行期间的操作进行记录,为今后的查询提供便利,并对记录的信息进行分析,将其以清晰、能够被理解的形式进行展示,从而更加及时的将系统中的安全漏洞进行发现和解决。
二、数据库系统的安全防范对策
1、物理安全防护
采用措施对数据库系统物理装备的威胁进行抵抗,如自然灾害、工作环境等方面的影响,使数据库中的信息数据不会被破坏,或者是遭到破坏时也能够及时恢复。使用物理安全防护的策略需要根据系统、信息以及网络等方面差异有有所不同。主要的方式有隔离系统、防辐射、防水、防火、数据备份恢复等[3]。
2、网络防护
当前信息技术不断发展,网络数据库系统也逐渐增多,在数据库运行中,网络是十分重要的组成部分,需要通过网络用户才能够获得数据库的信息,并且对于数据库的入侵也是通过网络进行的,因此网络的安全性对于数据库安全是有极大影响的。因此需要做好网络安全防护工作,保证数据库的安全稳定运行。网络安全防护中,防火墙技术是使用比较广泛的技术,是在内外网络、专用以及公用网络间的保护屏障,能够对网络进行监控,对非法访问进行拦截,保证数据的安全。防火墙比较简单实用,有很高的透明度,能够部队原有网络应用系统改变的前提下就实现安全的需要,但是这种技术也不是万能的,对于网络内部的非法操作就无法拦截。防病毒技术。病毒就是对于复杂系统中的错误、漏洞进行网络攻击,进而对信息进行窃取、篡改,复杂系统中的错误、漏洞是无法避免的,病毒的存在会给网络安全造成极大的影响。因此必须要防范病毒,加强管理,以预防为主,加入多样化的防范技术对病毒进行处理。
3、管理防护
管理安全防护其实是综合性的防护,就是建立多层次的安全防护体系进行有效防护,提升其有效性。计算机的安全一般都是人进行控制和管理的,数据库的维护以及计算机网络的安全也是由人进行的,因此需要加强安全管理,提高管理人员的计算机安全教育和操作管理水平,保证数据库系统的安全得到有效地控制与管理。
结束语
新时期,信息技术快速发展,数据库系统技术也日渐更新,其遇到的攻击形式也逐渐多样化,为了更好地保证数据库系统的运行与安全,需要加强数据库系统的安全管理,采用先进的安全技术以及防护策略,根据技术以及管理的需要不断更新与审计,数据库安全是数据库系统技术的重要内容,保证数据库系统的安全能够提高系统内信息的有效性,使数据系统能够安全运行。
参考文献:
[1]肖飞,黄正东,王琳.当代信息技术条件下数据库安全技术研究[J].医疗卫生装备,2010,10:51-54.
[2]李宗涛,罗朝宇,王福新.信息系统数据库安全防护技术的应用研究[J].电力信息与通信技术,2014,08:126-129.
关键词:人工智能;自动优化;sql语句优化
一个数据库系统的生命周期可以分成:设计、开发和成品三个阶段。在设计阶段进行数据库性能优化的成本最低,收益最大。在成品阶段进行数据库性能优化的成本最高,收益最小。数据库的优化通常可以通过对网络、硬件、操作系统、数据库参数和应用程序的优化来进行。最常见的优化手段就是对硬件的升级。根据统计,对网络、硬件、操作系统、数据库参数进行优化所获得的性能提升,全部加起来只占数据库系统性能提升的40%左右,其余的60%系统性能提升来自对应用程序的优化。许多优化专家认为,对应用程序的优化可以得到80%的系统性能的提升。应用程序的优化通常可分为两个方面:源代码和sql语句。由于涉及到对程序逻辑的改变,源代码的优化在时间成本和风险上代价很高,而对数据库系统性能的提升收效有限。
1.1为什么要优化sql语句
第一、sql语句是对数据库进行操作的惟一途径,对数据库系统的性能起着决定性的作用。
第二、sql语句消耗了70%至90%的数据库资源。
第三、sql语句独立于程序设计逻辑,对sql语句进行优化不会影响程序逻辑。
第四、sql语句有不同的写法,在性能上的差异非常大。
第五、sql语句易学,但难精通。
优化sql语句的传统方法是通过手工重写来对sql语句进行优化。dba或资深程序员通过对sql语句执行计划的分析,依靠经验,尝试重写sql语句,然后对结果和性能进行比较,以试图找到性能较佳的sql语句。这种传统上的作法无法找出sql语句的所有可能写法,且依赖于人的经验,非常耗费时间。
1.2 sql优化技术的发展历程
第一代sql优化工具是执行计划分析工具。这类工具针对输入的sql语句,从数据库提取执行计划,并解释执行计划中关键字的含义。
第二代sql优化工具只能提供增加索引的建议,它通过对输入的sql语句的执行计划的分析,来产生是否要增加索引的建议。
第三代sql优化工具不仅分析输入sql语句的执行计划,还对输入的sql语句本身进行语法分析,经过分析产生写法上的改进建议。
1.3人工智能自动sql优化
人工智能自动sql优化出现在90年代末。目前在商用数据库领域,lecco technology limited(灵高科研有限公司)拥有该技术,并提供使用该技术的自动优化产品lecco sql expert,它支持oracle、sybase、ms sql server和ibm db2数据库平台。该产品针对数据库应用的开发和维护阶段提供的模块有:sql语法优化器、pl/sql集成化开发调试环境(ide)、扫描器、数据库监视器等。其核心模块sql 语法优化器的工作原理为:①输入一条源sql语句;②“人工智能反馈式搜索引擎”对输入的sql语句,结合检测到的数据库结构和索引进行重写,产生n条等效的sql语句输出;③产生的n条等效sql语句再送入“人工智能反馈式搜索引擎”进行重写,直至无法产生新的输出或搜索限额满;④对输出的sql语句进行过滤,选出具有不同执行计划的sql语句;⑤对得到的sql语句进行批量测试,找出性能最好的sql语句。
2 lecco sql expert自动优化实例
2.1假设我们从源代码中抽取出这条sql语句(也可以通过内带的扫描器或监视器获得sql语句):
select count(*)
from employee
swheresexists (select 'x'
from department
swheresemp_dept=dpt_id
and dpt_name like 'ac%')
and emp_id in (select sal_emp_id
from emp_sal_hist b
swheressal_salary > 70000)
按下“优化”按钮后,经过10几秒,sql expert就完成了优化的过程,并在这10几秒的时间里重写产生了2267 条等价的sql语句,其中136条sql语句有不同的执行计划。
接下来,我们可以对自动重写产生的136条sql语句进行批运行测试,以选出性能最佳的等效sql语句。按下“批运行” 按钮,在“终止条件” 页选择“最佳运行时间sql语句”,按“确定”。
经过几分钟的测试运行后,我们可以发现sql124的运行时间和反应时间最短。运行速度约有22.75倍的提升(源sql语句运行时间为2.73秒,sql124运行时间为0.12秒)。现在我们就可以把sql124放入源代码中,结束一条sql语句的优化工作了。
2.2“边做边学式训练”提升sql开发水平
lecco sql expert不仅能够找到最佳的sql语句,它所提供的“边做边学式训练”还能够教开发人员和数据库管理员如何写出性能最好的sql语句。lecco sql expert的“sql比较器”可以标明源sql和待选sql间的不同之处。
以上面优化的结果为例,为了查看源sql语句和sql124在写法上有什么不同,我们可以按下“比较器” 按钮,对sql124和源sql语句进行比较。“sql 比较器”将sql124相对于源sql语句的不同之处以蓝颜色表示了出来。如果选择“双向比较”复选框,“sql 比较器”可以将两条sql语句的不同之处以蓝色表示。当然,我们也可以从源语句和重写后的sql 语句中任选两条进行比较。
从比较的结果可以看到,重写后的sql124把第一个exists改写成了in;在字段dpt_id上进行了合并空字符串的操作,以诱导数据库先执行子查询中的
(select dpt_id||''
from department
where dpt_name like 'ac%')
在子查询完成后,再与employee表进行嵌套循环连接(nested loop join)。
如果觉得对写法的改变难以理解,还可以点中“执行计划”复选框,通过比较两条sql语句的执行计划的不同,来了解其中的差异。在查看执行计划过程中,如果有什么不明白的地方,可以点中“sql信息按钮”,再点击执行计划看不明白的地方,lecco sql expert的上下文敏感帮助系统将提供执行计划该处的解释。
在“sql比较器”中,选中“统计信息”复选框后,可得到详细的两条sql语句运行时的统计信息比较,这对于学习不同的sql写法对数据库资源的消耗很有帮助。
2.3 lecco sql expert优化模块的特点
lecco sql expert优化模块的特点主要表现为:自动优化sql语句;以独家的人工智能知识库“反馈式搜索引擎”来重写性能优异的sql语句;找出所有等效的sql语句及可能的执行计划;保证产生相同的结果;先进的sql语法分析器能处理最复杂的sql语句;可以重写select、select into、update、insert和delete语句;通过测试运行,为应用程序和数据库自动找到性能最好的sql语句;提供微秒级的计时,能够优化web应用程序和有大量用户的在线事务处理中运行时间很短的sql语句;为开发人员提供“边做边学式训练”,迅速提高开发人员的sql编程技能;提供上下文敏感的执行计划帮助系统和sql运行状态帮助;不是猜测或建议,而是独一无二的sql重写解决方案。
2.4写出专家级的sql语句
lecco sql expert的出现,使sql的优化变得极其简单,只要能够写出sql语句,它就能帮用户找到最好性能的写法。lecco sql expert不仅能在很短的时间内找到所有可能的优化方案,而且能够通过实际测试,确定最有效的优化方案。同以往的数据库优化手段相比较,lecco sql expert将数据库优化技术带到了一个崭新的技术高度,依赖人的经验、耗费大量时间、受人的思维束缚的数据库优化手段已经被高效、省时且准确的自动优化软件所取代了。通过内建的“lecco小助手”的帮助,即使是sql的开发新手,也能快速且简单地写出专家级的sql语句。
参考文献
1张孔倚.关于人工智能技术在情报检索中的应用.山西大学学报,2007(3)
2涂序彦.人工智能及其应用.北京:清华大学出版社,2006
关键词:双语教学;数据库系统原理;教学模式
教育部在2001年第4号文《关于加强高等学校本科教学工作提高教学质量的若干意见》和2005年第1号文《关于进一步加强高等学校本科教学工作的若干意见》中先后要求大学在本科阶段逐步实施双语教学,力争到2004年外语教学课程达到所开设课程的5%至10%,并引进原版教材和提高师资水平。我校更是把在各学科中融入双语教学列为了教学改革的重点。数据库技术在各个领域都有十分广泛的应用,现已经成为现代计算机技术的一个重要分支,掌握数据库技术是计算机专业学生必须具备的技能之一。数据库系统原理具有一定的国际共通性,词义、专业术语的理解和诠释遵循国际惯例,有既定的国际标准,更有必要进行双语教学[1-2]。
1双语教学及其重要性
双语教学在英语中称为“Bilingual Education”。英国朗曼出版社的《朗曼应用语言学词典》给出Bilingual的定义为:A person who knows and uses two languages(一个能运用两种语言的人)。In everyday use the word bilingual usually means a person who speaks, reads, or understands two languages equally well(a balanced bilingual), but a bilingual person usually has a better knowledge of one language than of the other(他的日常生活中能将一门外语和本族语基本等同地运用于听、说、读和写,当然他的母语语言知识和能力通常是大于第二种语言的)。双语教学(Bilingual education)的定义为:The use of a second or foreign language in school for the teaching of content subjects (能在学校里使用第二种语言进行各门学科的教学)。“双语”和“双语教学”的要求是将学生的外语或第二语言,通过教学和环境,经过若干阶段的训练,使之能代替或接近母语的表达水平。
随着世界经济加快全球化,中国加入WTO以及互联网技术的迅猛发展,越来越需要高校培养出高质量国际型人才。与国际接轨,开展双语教学就成了当前教育改革的重点[3]。首先,开展双语教学,有利于全面提高学生外语的“听、说、读、写”能力,全方位拓展学生学习外语的途径。其次,开展外语教学,有利于实现从纯语言学习到语言运用的过渡。高校学生已经具备多年的外语学习经历,双语教学使学生有机会在专业课学习中大量接触外语,这为学生进一步学习专业知识打下了良好的外语基础。最后,开展双语教学,有利于提高教师的外语运用能力,从而有利于教师了解本专业在国际上的最新知识,使教师有能力及时更新教学内容。这对提高教学质量具有十分积极的意义。
2数据库系统原理双语教学模式
数据库系统原理是计算机学科的一个重要分支,是程序设计和软件开发的重要组成部分,主要讨论数据库系统的基本概念、基本原理、基本方法以及有关的应用[4]。数据库系统原理教学在国际上普遍受到高度重视,课程内容和教学体系日新月异,其教学质量的高低对计算机科学相关专业的教学起着至关重要的作用。数据库系统原理采用双语教学对跟踪本学科的发展前沿,使教学内容和水平与国际接轨,提高教学质量,促进学生能力和综合素质的全面提高有重要意义。与其他的课程相比,该课程具有实践性强、综合性高、应用范围广等特点,一般在第6个学期开设,此时学生已具备了一定的专业基础知识和英语应用水平,为该门课的双语教学打下了基础。
在双语教学中,学科知识的获得是主要目的,同时也给学习者创造了学习和使用第二语言的空间,使学生在掌握学科知识的同时能够尽可能多地使用需要他们掌握的第二语言。我国在实施双语教学的过程中,采用英语(外语)作为教学语言,目的是提高学生的英语水平,掌握汉语和英语两门语言,成为汉/英双语人才。为了能真正达到双语教学的目的,要做好以下几个方面的工作。
2.1教材选择
双语教学一定要选择英文原版教材。没有原版教材,双语教学就成了无源之水,无本之木。没有原版教材,教师和学生都无法接触到“原汁原味”的外语,甚至有时还会因为教师翻译的不准确误导学生。另外,如果让教师通过查询外语专业用语,将统编教材“翻译”成外语,再用外语授课,这对教师来说实在是勉为其难,根本无法进行实质性的双语教学。再则,如果没有英文版教材和相关的英文资料,学生也缺乏学习的目的性、动力和压力,课下不能很好地巩固。
数据库系统原理课程的教材更新很快。近年来,各大出版社纷纷引进各种数据库方面的优秀原版教材。这些教材的结构安排更适合学生的学习过程,且内容更新、更实用。教材作者大多是资深教授和软件工程师,他们处于计算机科学发展的最前沿,具有得天独厚的编写内容更新、更实用教材的条件。从中选择出有利于课程目标实现,又合适学时安排的教材很重要。其中世界名校美国斯坦福大学的教材《A First Course in Database Systems》 就是一本非常适合数据库系统原理双语教学的教材。该书具有易于理解、面向应用的特点,非常适合数据库系统知识的入门学习。此外,该书还有相应网站,其中提供了斯坦福大学该课程历年的教学方案,包括电子教案、部分习题解答、历年试卷和学生的研究项目。这样,教师能够了解斯坦福大学的教育方式,根据学生的实际情况适当调整自己的教学方法,与世界接轨;而学生也能够通过网站的内容锻炼英语水平,自我考核学习情况。
2.2教学组织
(1) 采用多媒体教学。由于原版教材内容广、信息量大,为了不影响教学进度,必须用多媒体教学,不但生动直观,还可加大教学容量,提高教学质量。而且,数据库系统原理是一门专业性很强的学科,很多内容单靠老师和黑板很难讲解清楚,用形象而生动的多媒体课件作为辅助工具,加上数据库管理软件的演示,学生更容易理解。
制作电子教案的另一个突出优点是学生可以随时下载教案,上课时就不必忙于记笔记,而可以专心听讲。为了让学生课下更好地消化、理解所学内容,我们制作了中文版和英文版两套课件,放在网站上,供大家预习和复习时使用。
(2) 英汉交替讲解。采用双语教学,并不是要在课堂上均衡地使用两种语言。课堂上英文与中文各占多少比例,要根据具体情况而定。一般来说我们主张用英文板书,包括专业术语及关键句子。对其中容易理解的内容用英文讲授,对理论性较强、较难理解的重点和难点,用英语解释不容易理解时就采用中文讲解。学习完每章内容之后,教师用英文作总结,然后逐渐过渡到由学生作总结。鼓励学生用英文提问,实在无法表达时,亦允许用中文进行表述,然后由教师或别的同学用英文复述。鼓励学生用英文解答作业和考试题。
(3) 激发学生的学习动力。学生作为双语教学的主体,他们自身的素质和对双语教学的态度、兴趣等对双语教学的顺利开展起着重要的作用。为了提高学生的学习积极性,教师必须不断改进教学方法,提高教学质量,吸引学生去学习。如营造良好的学习气氛,增强教学的互动,鼓励学生开展讨论,提出不同的解决方案,有意识地鼓励学生“开口说,动脑想”,使学生积极地参与到教学中来,对学习产生浓厚的兴趣,并内化为学习动力。
(4) 增加专题讲座,拓展学生知识面。数据库系统原理原版教材信息量非常大,对传统的关于数据库的理论、设计与实现均作了较为深入的介绍,并且对数据库领域的新技术,如面向对象的数据库、对象关系数据库、分布式数据库、并行数据库、数据仓库和数据挖掘等都作了大量的介绍,而且有一些属于数据库方向的前沿研究领域,在课堂上系统地讲述这些内容是不现实的。为了在有限的时间内,让学生了解数据库技术的最新进展,可以专题讲座的形式向学生介绍数据库的新技术和新进展,这样既拓展了学生的知识面,又缓解了内容多学时少的矛盾,还提供了学生与专家交流的机会。
2.3考核方式和教学效果评价
双语教学效果的考核应该区别于单语教学惯用的试卷考核,采取多样化的考核方式。由于双语教学强调学生的参与和自主学习,因此我们将学生课堂教学中参与教学活动的表现、实践课上完成任务及与同伴合作的情况、课外搜索资料撰写调查报告的情况和期末试卷的考核结合起来,综合评定学生的学习成绩。比如平时布置的作业题取自于原版教材,占总评成绩的10%,要求学生用英文完成作业。课堂讨论占总评成绩的10%,由浅入深,鼓励学生用英语交流,尽可能用英语完成调查报告、资料总结报告等。实验成绩占15%,要求学生尽可能用英文完成实验预习报告和实验报告。期末考试占总评成绩的65%,采用英文命题,要求学生用英文作答,确实有困难时再用汉语。这样既可以加深巩固学生对所学内容的理解,又可以提高其英语写作水平,还可为英文考试奠定基础,学生的英文表达及写作能力逐渐提高。这种评定方法使学生积极参与到教学活动的各个环节中,进一步提高了双语教学的效果,同时也促进了教师去了解国外最新的教学和科研内容,有利于及时更新,提高教学质量,促进教师学术水平的提高和科研工作的进展。
3结语
双语教学是促进教与学双赢的教学模式,数据库系统原理的双语教学课程建设在计算机专业建设中具有举足轻重的作用。如何科学、合理地开展数据库系统原理的双语教学改革,引进、吸收国外先进的教学模式,建立相应的双语教学评价体系,对改良本土教育,培养出符合社会和时代需要的国际化计算机人才有着重要的意义,也是值得我们不断研究和探索的课题。
参考文献:
[1] 张虹. 双语教学综述[J]. 大庆高等专科学校学报,2004(3):107-110.
[2] 古天龙,魏银霞,磨玉峰. 教学型高校培养目标定位研究[J]. 中国高教研究,2009(1):69-71.
[3] 翟玉庆.“双语教学”与国际化计算机专业人才培养[J]. 计算机教育,2004(6):11.
[4] 周丽娟. 数据库教学体系改革与优化[J]. 高教论坛,2009(1):59-61.
Research on Bilingual Teaching Model for Database System Theory
LI Feng-ying, HOU Jie, WEI Qian-jin
(School of Computer and Control Science, Guilin University of Electronic Technology, Guilin 541004,China)
1 数据库系统表
为了维护数据库系统的正常运转,数据库管理系统中设计了一系列的系统数据表,用于跟踪数据库的总体信息。当用户建立数据库及数据表时,系统表将自动记录下相关信息。这里仅介绍SSA数据库中与实现多表关联查询技术相关的三个系统表及其主要列:
表pbcattbl:存储数据库中所有用户表的信息。列pbt_tnam存放表名。
表pbcatcol:存储所有用户表的列信息。列pbc_tnam 存放表名;pbc_cnam存放列名。
表sysforeignkeys:存储具有关联性的两个表的相关信息。列foreign_tname存放外表表名;primary_tname存放主表表名;columns存放两表关联的关键字。
2 多表关联查询算法
①用表pbcattbl,在数据窗口(简称DW)中显示所有用户表的表名;
②用户在DW中进行多表选择,系统通过表Sysforeignkeys判断所选表的关联性。如非关联,给出提示并返回②,否则③;
③动态地创建相应数量的DW,利用表pbcatcol,在每个DW中显示其中一张所选表的所有列名;
④用户根据实际需求,从这些DW中选择任意多个列名,系统自动生成一张由这些列组成的新表;
⑤对生成的新关联表进行多条件的组合查询。
3 关键代码的实现
3.1 表名显示
用select pbt_tnam from pbcattbl从系统表中选出所有表名,并显示在DW中。
3.2 判断所选表的关联性
定义变量
integer sum //选中表的个数
integer num //关联表的个数
integer ipos //字段起始位
string lst[] //关联表名
string pm[] //存放关联等式
string col[] //读取关联信息
if sum>1 then num=1
for i=1 to sum
for j=1 to i-1
k=k+1
select columns into:col[k] from sysforeignkeys where foreign_tname=:lst[j] and primary_tname=:lst[i];
if isnull(col[k]) or col[k]= '' then
select columns into: col[k] from sysforeignkeys where foreign_tname=:lst[i] and primary_tname=:lst[j];
if isnull(col[k]) or col[k]= '' then pm[k]= ''
else
ipos=pos(col[k], ' IS ')
pm[k]=lst[i]+'.'+left(col[k],ipos)+'='+lst[j]+'.'+right(col[k],len(col[k])-ipos-3)
num=num+1
end if
else
ipos=pos(col[k], ' IS ')
pm[k]=lst[j]+'.'+left(col[k],ipos)+'='+lst[i]+'.'+right(col[k],len(col[k]-ipos-3)
num=num+1
end if
next
next
if num
messagebox("warning","所选表不关联,请重选")
return
end if
end if
3.3 列名显示
通过select pbc_cnam from pbcatcol where pbc_tnam= lst[i](所选表名)来实现。
3.4 关联表的组合查询
参考通用组合查询算法[1],可实现=、> 、< 、=、like等多重组合查询。
4 结束语
本文提出的查询方法,可直接从数据库系统表中读取信息,而系统表由数据库服务器自动维护,因此提高了应用程序的运行性能。对于不同的数据库系统,只需修改程序中系统表的表列名称即可,程序具有通用性。
参考文献
[1] 严怀成,王敏.基于PowerBuilder的通用查询的设计与实现.微机发展.2005.6:124-126.
(黄淮学院信息工程学院,驻马店 463000)
摘要: 本文从体系结构,内部函数,外部接口,索引算法等方面对SQLite进行了改进与优化;针对信息家电特点重新设计了实时数据库的存储方式,利用主动规则库来提高系统的实时性能,并基于SQLite对家庭网关进行了CGI程序设计。
关键词 : SQLite;家庭网关;嵌入式Linux;内存数据库
中图分类号:TP311.1 文献标识码:A 文章编号:1006-4311(2015)26-0069-03
作者简介:李宏升(1973-),男,河南新蔡人,讲师,工学硕士,主要从事互联网与嵌入式应用研究方向。
0 引言
在信息家电系统中,要用遥控器对各类信息家电主动控制,并随家庭环境的变化对信息家电进行自动控制,整个系统中存在着大量实时数据的采集和处理需求。目前对数据的处理通常采用基于数据库的方式,所以构建具有实时性能的嵌入式数据库系统是家庭网关设计环节必须要解决的问题。
结合国内外家庭网关研究的现状和进展,如何改进嵌入式实时数据库对信息家电状态信息的采集处理效率;如何优化数据库系统的资源占用,成为家庭网关系统设计的重要环节。
1 家庭网关的发展与演进
作为智能家居的大脑,家庭网关的作用至关重要。本文主要针对家庭网关数据库平台进行研究,选择合适的数据库架构,改进、移植相关软件,搭建网关的软件系统,设计网关系统中心主模块和web服务程序,实现嵌入式web 服务器的基本功能。
2 嵌入式开发环境的选择
要想保证系统能够真正地发挥自身功能,选择合适的操作系统至关重要。现阶段比较成熟的嵌入式系统主要有:Windows CE、Unix、Linux、QNX等。从家庭网关平台日后的系统升级、维护和功能扩展这些角度出发,本文中的家庭网关平台采用Linux2.6版本作为软件开发平台。
Linux2.6内核拥有更多的新特性:性能方面,采用了新的内核抢占式算法和新的I/O调度算法;稳定性方面,改进了内核加载和导出机制,提高了平台的稳定性和可靠性。设备支持方面,系统内核取消了对大型系统的限制,支持更多的控制器和设备;文件系统方面,扩展了文件的属性,保证了系统的信息安全,增强了PCI总线支持,对USB、蓝牙等外设总线进行功能扩展,满足多种短距离无线传输,方便家庭网关的内部组网。[1]
3 嵌入式网关系统的模块化设计
家庭网关软件系统采用模块化设计,包括系统定制、系统服务、设备模块、控制模块、显示模块、软件开发控制等。其中系统定制模块包括系统移植、内核定制、驱动开发等部分;系统服务模块由系统中心、可移植层、设备管理器、维护管理器、存储系统组成,如图1所示;设备模块主要包括视频模块、Zigbee模块、网络模块等;控制模块主要由web 服务器和各种应用服务器组成[2]。
4 SQLite数据库的改进与移植
4.1 数据库的选型
家庭网关中的嵌入式实时数据库是为了完成家电状态信息的管理而设计的小型数据库。应具备如下功能:支持多种数据类型;支持创建和删除多个表;支持对记录进行插入删除修改和查询操作;支持表的索引操作;支持触发操作,以满足信息家电之间的统一协作。
基于嵌入式linux系统的数据库非常多,常用的有以下几种:
Oracle Database Lite;DB2 Everyplace;Berkeley DB;Firebird;MySQL;SQLite。本文选取的SQLite数据库系统是一个简单易用、开放源码的轻量级嵌入式数据库管理系统。它具有以下优势:支持ACID事务;不需要安装配置、支持大部分SQL92;数据存储在单一的磁盘文件中;最大支持数据库到2TB;内核精小;数据操作速度快等。
4.2 SQLite的应用系统设计
SQLite系统的体系结构包括8个主要模块,如图2所示。
应用程序接口是SQLite的公共接口,通过main.c,table.c,legaey.c,vdbeapi.c程序来实现。词法分析器负责将原始的SQL语句按顺序传送到语法分析器里。语法分析器是一个基于上下文环境的输入语法解释器,采用非终结符析构器的概念,大大降低了出错的几率。通过调用代码生成器,可生成SQL查询所需的虚拟机代码。虚拟机是使用堆栈存储指令来实现处理代码生成器产生代码的虚拟引擎。B-树驱动器通过表和索引中的B-tree创建相应的数据库实例。B-tree模块在磁盘建立1024字节大小的页面缓存,进行读写缓冲,管理数据库文件的读/写锁定的权限。SQLite通过Linux系统的操作系统接口来打开和关闭、删除和创建文件,释放磁盘的缓冲。[3]
SQLite系统与Linux的外部接口的具体应用集成在一起,由程序调用相应的核心API函数去实现对数据的存取操作。Sqlite3_open()可以打开数据库文件,建立SQLite引擎;sqlite3_exec()对查询结果进行处理;sqlite3_close()用来关闭数据库文件,释放SQLite引擎。
4.3 对SQLite存储结构及索引机制的改进
由于SQLite所有数据都保存在设备的flash中,为了减少FO操作,延长Flash的寿命,对数据的操作都设计为在内存中完成,只在设备启动和修改保存数据时才进行FO操作。将SQLite改进为基于内存的嵌入式关系型数据库,提高数据操作效率,增强实时性能。
4.4 优化SQL数据在内存中的存储结构
在内存中采用区段式结构进行内存数据的组织管理,将存储空间逻辑地划分为多个分区。每个分区存储一个关系。区段式数据组织管理机制如图3所示。
为保证数据结构的紧凑性,内存数据库中的关系表按编号登记在分区表中。当有新数据段插入时,在分区表或段表中找到插入点,插入点后的所有表项都往后移动一项;而删除一个表项时,则删除点之后的所有表项都往前移动一项。
为节省内存占用,分区表和段表均采用动态数组结构,具体操作是:创建时都先申请适当大小的表项空间,数据的增加使得区段表不断增长,当表项空间不够时,再申请一定数量的空间。相反,数据的删除操作使得区段表不断缩短,当其尾部出现大量的空表项时,回收空表项占用的内存。[4]
4.5 优化内存数据库的索引机制
为适应智能家居中对实时数据频繁的查找和更新需求,进一步改进高效的索引机制加速操作的执行速度,需优化内存数据库的索引机制。SQLite系统采用是基于改进的Hybrid-HT的H-T索引机制,本文通过优化H-T机制中的哈希函数,通过对哈希表长的控制,分散了键值对记录指针和哈希地址的操作范围,从而高效率利用内存空间,提高查询、修改的操作速度。[5]
5 家庭网关数据库系统的设计
本文构造的嵌入式家庭网关,是以S3C440系列嵌入式微处理器为中心,uCLinux嵌入式操作系统作为家庭网关的底层,移植部分功能模块作为家庭网关硬件平台。信息家电通过IAIDL接口向家庭网关注册,每个家电的注册信息、参数和状态信息都存放在SQLite数据库中,如图4所示。
信息家电接口定义语言(IAIDL)是一种用来定义智能家居网络中信息家电的说明性语言,是对设备资源信息的描述。
以某公司生产的某信息空调为例,其IAIDL描述如下:
美的空调 is <空调>
{
enum type=(slow,normal,quick);
enum switch=(on,off);
attribute厂家=美的电器公司;
attribute功率=1.5P;
state温度状态Temp int(29:<20:the_min_value>,<40:the_max_value>);
state风速状态fan type(normal,normal);
function设置温度void ST Temp(in int st(20,40)):
function设置风速void ST Fan(in type ff);
function开关void On Off(in switch 00);
}
SQLite中家电信息表的生成
IAIDL定义了家庭网络中设备之间的互操作,详细描述信息家电的属性和功能。家庭网关利用编译器提取设备所发送的IAIDL描述内容进行解析,利用API函数将相关信息存储在SQLite数据表中。SQLite库中的信息表包含设备类型表、设备列表、设备属性表、设备接口表、事件通道表五种表格。由系统将设备类型号作为关键字,作为每类设备的唯一标识,如图5所示。[6]
编译器对设备IAIDL完成分析扫描后,通过API函数接口生成数据库文件。信息家电启动时,系统会在内存区域生成设备状态表的副本作为设备运行状态表。这些文件不会随着时间的变化而发生改变,真正实时变化是处于运行状态的设备状态信息。
实时监控系统按一定的扫描频率对内存中的设备运行状态表进行扫描,数据采集模块按照设定的频率对外部信号进行采集,经数据处理模块将数据存入内存中的设备运行状态表,获取最新的状态数据,完成对设备状态的实时更新和控制。
信息家电中的黑色家电是供人们娱乐休闲用的,如电视机、VCD、音响等。黑色家电的状态绝大多数情况下不会发生改变,所以设定所有的黑色家电都没有实时状态信息,在内存中不生成设备运行状态表,需要查询时可以从flash中读取。
而白色家电的状态会随着时间的变化而不断变化,数据的实时性要求很高,如空调、电冰箱等,是改善生活环境提高物质生活水平的。白色家电启动后在内存中生成设备运行状态表,可以随时监视到设备状态。
在系统中构建主动规则库对设备的实时状态进行监控,当设备状态变化时对家电进行自动控制,或设备状态异常进行报警,由ECA规则来实现。一旦信息家电出现异常情况,就要进行报警操作。信息家电在满足这些设定的事件时,系统能自动执行规定好的动作。[7]
在设备运行过程中,数据随着各种设备的运行不断产生,系统将新的状态数据写入内存,实时数据会转储为历史数据。为保证系统的稳定性,系统中的实时数据备份模块负责周期性将内存中设备状态表数据保存到Flash中。当设备运行故障时,可以从历史数据库中进行恢复。
6 家庭网关WEB服务器的设计
家庭网关中各种动态信息需要服务器实时创建,服务器程序与客户端浏览器有较强的交互能力。本文采用BOA+CGI应用程序构建WEB服务器。CGI是外部扩展应用程序与Web服务器交互的一个标准接口。Web服务器通过调用CGI程序实现和Web浏览器的交互,处理来自客户端浏览器输入的数据,从而完成客户端与服务器的交互,实现动态Web技术。[8]
WEB服务器从SQL查询结果中读取信息,同时把这些信息返回给客户端。CGI应用程序可以使用printf()函数将查询结果以HTML的形式输出到客户端,向客户端返回动态页面,实现用户WEB服务器与数据库SQLite的交互。
总之,整个家庭网关程序设计都以嵌入式数据库实时SQLite为核心,可有效满足家庭网关对信息家电实时数据管理要求。
7 结论
本文针对嵌入式设备的实时性特点,结合家庭网关的实际应用需求,对SQLite数据库系统的体系结构、内部函数、外部接口、索引算法等方面进行了改进与优化。提高了系统整体实时性能;完善了数据库的安全性;降低了系统资源占用,良好的匹配了现有ARM架构的家庭网关硬件体系,完全能满足家庭网关对信息家电实时数据管理的要求。
由于自身水平、设备条件有限,本文还有很多需进一步改进的地方,如事务处理的调度和执行策略方面;身份验证、数据加密等安全性研究方面,对报警库,CA库,ECA库的详细设计方面还有待于进一步的充实和完善。
参考文献:
[1]宋安,习勇,魏急波.基于μCLinux的NAT设备的设计与开发[J].电子工程师,2005-05-15.
[2]徐叶,袁敏,李国军.嵌入式Web服务器远程监控系统的设计与实现[J].计算机与现代化,2013-02-27.
[3]王俊,郭书军.嵌入式Web服务器的实现及其CGI应用[J]. 电子设计工程,2011-11-05.
[4]高建国,崔业勤.ARTs-EDB的内存数据存储管理[J].微计算机信息,2010-01-25.
[5]陈嘉.嵌入式主存数据库索引机制的研究与改进[D].湖南师范大学,2006:278-282.
[6]刘志东.基于嵌入式Web技术的远程射频识别系统的设计与实现[D].西北民族大学硕士论文,2012-04-01.
【关键词】IBM存储 RAID 气象数据库系统
目前气象数据库系统服务器IBMP650和作为备份IBMP510,负责所有气象信息的收集、转发、加工和处理。把信息经过处理以后,变成产品。随着气象资料数据量越来越大,现有的存储空间成为保持业务能够连续运转非常重要的问题。考虑到业务将来的发展需要,引用IBM存储DS4700作为IBMP650服务器上磁盘空间,将ORACLE整个牵至IBM存储DS4700,大力提升IBMP650服务器的性能以及运行稳定的保障,更快速实现气象资料进行实时交换,实行资源共享。
1 IBM DS4700存储应用以及 RAID 5、LUN、HBA介绍
DS4700 支持16块内置热插拨磁盘,最大支持4.8T裸数据容量,同时连接6个EXP710/EXP810扩展单元,最大支持112个FC磁盘33.6磁盘裸数据容量(我现在用磁盘类型)阵列(带 2GB 缓存) 1万5千转磁盘,有2 个管理软件/存储分区支持对本地和联网。可以从基于浏览器的界面快速配置和监控存储系统 ,可在不中断数据访问的情况下配置卷、进行日常维护。
RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。
LUN的全称是Logical Unit Number,也就是逻辑单元号。
HBA光纤存储卡,用于服务器与光纤阵列的连接。
2 IBM存储DS4700管理与磁盘划分
4.2 日常维护
IBM存储DS4700亮黄灯,(正常状态下绿灯常亮,黄灯闪(有IO操作)故障盘一般都是黄灯常亮,绿灯灭)
在AIX中执行:"errpt -a"可以查看相关提示
可以连接到存储上查看,可能存在硬盘、电源、风扇有问题;或者通过recovery guru查看真正的问题,看日志说哪个地方出错。
如何修改IBM存储DS4700盘阵控制器的默认IP地址
通过默认管理口IP:192.168.128.101/102连接进行管理。在存储子系统管理界面右侧的物理视图中右键点击任意控制器,在弹出菜单中选择change>network configuration ,在弹出的对话框中配置,修改以太网口。
IBM存储DS4700添加新硬盘
对DS4700系统中的数据进行完全备份;确认当前系统的控制器微码;确认当前DS4700中的硬盘处于最佳(optimal)状态;保存当前DS4700配置信息;添加硬盘前,检查硬盘与当前DS4700系统的兼容性(试用于添加新硬盘)
IBM存储DS4700中FC硬盘SATA混插
在一个DS4700中或者EXP(磁盘箱)里面是可以混插的,但是考虑性能角度考虑还是把两种硬盘放置在不同(磁盘箱)。
IBM DS4700 时间不同步
通过IBM存储配置软件配置磁盘柜(从磁盘柜背面的管理端口连接)的时候可以设置时间同步的,也可以通过这个手动修改。
5 小结
总之,随着气象数据库系统业务快速发展,DS4700 磁盘阵列成为气象数据库系统重要组成部分,可以在不影响应用情况下,实现系统扩展。是高性能的存储设备,可以从基于浏览器的界面快速配置和监控存储系统 ,可在不中断数据访问的情况下配置卷、进行日常维护以及添加新机柜和容量 ,同时光纤通道连接单元,具有很高 I/O 速率。为气象数据库系统实现更新、交换、共享,提供有力的保障储存空间,大力提升气象数据库系统的利用效率和服务
【关键词】药品;量子;信息系统;数据挖掘;设计
1 药品信息量子化
量子的概念源自物理学,普朗克是“量子物理学”的开创者和奠基人。1900年普朗克抛弃“能量是连续的”这一传统经典物理学观念,证明了物质辐射的能量是不连续的,只能是某一最小能量的整数倍,普朗克把这一最小能量单位称为“能量子”,简称“量子” [1]。
药品信息“量子化”是指将纷繁复杂的、模糊有噪声的药品信息合理解析成具有独立内涵的、不可再分的最小信息单位,即“量子”。将药品原始数据“量子化”的方法,使药品复杂数据简洁化、精确化、规范化,提高了计算机的数据处理速度,为数据库知识发现奠定基础。
2 医院药品量子信息数据库系统的分析
2.1系统的功能分析
2.1.1智能化检索功能 为方便医护人员等查找需要的药品信息,系统检索功能必不可少,本系统不仅可以通过输入关键词进行普通检索和高级检索,还可通过下拉列表选择相关“量子”进行智能化检索。
2.1.2 辅助实现数据挖掘功能 药品数据最大的特点是“数据海量,信息缺乏”。如何从海量的、有噪声的、模糊的医药学数据中,提取出隐含其中的、人们事先未知又潜在有用、能辅助临床用药决策的信息,是数据挖掘(DM)最终解决的问题。而数据挖掘过程中一个关键步骤就是数据的预处理,即数据的清洗、集成、转化和消减等。本文提出的药品信息“量子化”即是数据的预处理过程,它为医药学数据挖掘的实现迈出关键性的一步。
2.1.3 数据维护功能 包括数据更新、备份和恢复功能。数据更新包括药品数据的修改、删除、添加等,以便保证当前药品信息的实时性和准确性。对于一个完整的系统而言,备份和恢复功能也是必不可少的组成部分,当应用系统发生灾难性错误时,备份和恢复功能可使系统避免数据丢失带来的巨大损失。而即便系统没有数据丢失或破坏,备份和恢复功能仍具有重大意义,它为我们进行历史数据的查询、统计和分析,以及重要信息归档保存提供了可能[2]。
2.2 系统的优势分析
2.2.1更快捷的计算机处理速度 国内大多数医院药品信息数据库仅是药品说明书等的简单堆砌,并未对药品信息进行有效的预处理,这显然会影响计算机的处理速度。本系统将这些复杂模糊、不规范的药品信息经专业人员处理成简洁、精确、规范的“量子”,并归类编码建立量子数据库后,计算机便可对这些“量子”进行快速处理。药品量子信息数据库系统较普通数据库系统有更快捷的处理速度。
2.2.2更智能的客户端检索模式 普通客户端检索模式不能满足信息多元化检索需求,本系统除一般数据库系统所具有的普通检索和高级检索外,还特别设计了量子检索模块。这种量子检索模块不仅能帮助用户迅速检索出同时满足多种条件的精确信息,且由于各种药品信息均已进行精确的量子归类,便于计算机处理。
2.2.3更前瞻性的为数据挖掘服务 数据挖掘技术的应用对临床用药决策及医药学研究等具有重要的意义。如,根据病人反馈使用某些药品后产生的不良反应数据,通过数据挖掘技术发现,联合用药可能导致某些不良反应,或联合用药可能减少某些不良反应,或者同一种药品由不同性别、年龄、体质的患者使用可能产生不同的反应等,这些将为医师指导患者临床用药提供重要帮助。药品信息“量子化”为医药学数据挖掘的实现奠定基础。
3 医院药品说明书数据库系统的设计
3.1系统的总体架构设计本系统采用分布式多层体系结构。实现分布式应用的成熟技术主要有COM/DCOM和CORBA ,由于本系统在Windows平台上运行,所以选用COM/DCOM为实现系统的标准。采用多层结构后,为了避免在WEB应用程序中进行直接数据库操作和事务管理,将数据库操作和事务管理转移到中间件中处理。即第一层是客户层,客户可以通过使用GUI与应用程序进行交互;第二层是中间层,通常由一个和多个应用服务器组成。应用服务器处理客户的请求,然后将结果返回客户层;第三层是数据层,用于驻留业务数据的地方,在处理业务数据时,由中间层访问数据层[3]。
3.2系统的功能模块设计
本系统的主要构成模块,如图1所示。
参考文献
[1]赵凯华,罗蔚茵.量子物理[M].北京:高等教育出版社,2006:1-10.
[关键词]数据库;教学方法;关系模型
[中图分类号] G642 [文献标识码] A [文章编号] 2095-3437(2017)02-0070-02
当前的应试教育存在很多弊端,造成相当多的学生在不同阶段和层次上成为被淘汰的对象;出现了学生围着分数学,教师围着分数教的现象;一些教师只注重学生的应试能力,教学过程缺乏应有的深度和广度。这些现象挫伤了学生的学习兴趣,也很难培养出有素质和能力的人才。教师应该采用符合人才和知识发展规律的教学方法,在数据库系统的教学过程中也应该以循序渐进的方式介绍该领域的知识,使学生理解知识之间的关联性。首先要讲解清楚知识产生的原因,然后介绍该领域的具体知识,最后要说明知识之间的连贯性和系统性,使学生认识到将来还有很大的学习和探索空间。
一、数据库技术产生的原因
随着计算技术在各个领域的广泛应用,数据量变得越来越大,比如腾讯、百度、谷歌等公司的很多应用,每天都有大量的数据产生。纽约证券交易所每天产生1TB的交易数据;著名社交网站Facebook的主机存储着约100亿张照片,占PB级存储空间;家谱网站存储着2.5PB数据;互联网档案馆(The Internet Archive)存储着2PB的数据,并以每月至少20TB的速度增长;瑞士日内瓦附近大型强子对撞机每年产生约15PB的数据。据IDC统计,到2011年全球数据总量已达到1.8ZB,并且数据量仍在快速地增长。[1]如此海量的数据应该如何组织和管理,需要新的技术来解决这一难题。在这种背景下,数据库技术诞生了。比如目前学生都会使用到的网上选课系统。该系统中主要涉及与学生、教师和课程相关的数据。那么这些数据应该按照一种什么样的方式来组织,才能更有效地支持上层应用程序的实施?数据库技术就在此背景下诞生了。这种传授知识的方式描述了数据库技术产生的原因是为了解决社会的需求。学习了这些知识,学生清楚了数据技术的意义,这样能够更好地激发学生对该技术的兴趣,有助于学生对本领域知识的探索和学习。
二、数据的概念模型描述方式
■
图1 选课场景的E-R图
社会实际的应用中涉及多个实体对象、多种关系,这些对象和他们之间复杂的关系用什么方式来表达,导致出现了数据的概念模型,概念模型是对现实世界事物的一种抽象描述。对于现实生活中的选课情形,在概念层面上对其应该如何描述,如何构建模,才能够清晰地指导数据库的构建。于是出现了概念模型的建模方法――E-R图[2],对于选课情形的E-R图如图1所示。把选课系统的学生、课程实体用矩形表示;每个实体的属性用椭圆形表示学生具有学号、姓名和专业等属性;实体和实体之间的联系用菱形表示,如学生和课程之间的选修关系;实体和实体之间的联系的本身也可以有自己的属性,如选修具有成绩和选修时间这两个属性。有了这个E-R图之后就可以很方便地得到数据库的逻辑模型。如果数据库是关系型数据库,可以把E-R图中每个实体转化成数据库中的一个表,实体和实体之间的联系也可以转化成与之对应的一张二维表。如此讲解之后学生能够很好地理解E-R图建模工具出现的原因,以及它在数据库构建过程中所起的作用。
三、数据的逻辑模型
有了数据的概念模型之后,这些数据在逻辑上应该按照一种什么形式组织,软件才能更好地操纵它们,这些是很多学者研究的内容之一,于是出现了多种数据逻辑模型。如常见的层次数据模型、网状数据模型和关系型数据模型等。对于上述的选课应用情形,数据分别采用网状数据模型和关系型数据模型组织,情况分别如图2和图3所示。[3]现在如果实体个数很多,并且实体与实体之间有很复杂的联系,如果采用网状数据模型,最终它们会形成复杂的网络,那么处理这些数据及关系,就需要与之相适应的软件工具来支持;如果采用关系型数据模型,最终在数据库中会形成多个二维表,如图2所示,对这些数据的操作也需要相应的软件工具来处理。这样能够使学生认识到数据的逻辑模型可以有多种不同的组织方式,采用不同的数据模型需要不同的数据处理技术,还能使其认识到这些内容都是科研工作者需要研究的内容。
■
图2 选课系统的网状数据模型
■
图3 选课系统的关系数据模型
四、数据模型的存储结构
■
图4 网状数据模型的存储结构
上面介绍的这些数据的逻辑模型,以及这些数据在物理形式上应该如何组织,是数据的物理存储结构研究的范畴。比如对于图2中网状数据模型的存储结构可以采用图4所示的存储结构;现在如果想查看学生S1选修了哪些课程,成绩分别是多少,可以从S1出发,沿着S1的指针向前走,可以走到(S1 C1 A)记录,可知S1选修了课程C1,该门课程的成绩为A;然后继续往前走,走到记录(S1 C2 A),可知S1选修了课程C2,该门课程的成绩也为A;然后再往前走,又回到了S1,即可知学生S1总计选修了课程C1、C2,课程C1的成绩是A,课程C2的成绩是C2。按照同样的方法,从C1出发,走一圈,可以得到课程C1被哪些学生选修,成绩为多少。同样如果学生现在想退选某门课程,那么从上图中删除数据又该怎么操作,查找、修改图中的数据又该怎么操作,这些都是值得研究的问题。同时,网状数据模型还可以采用其他的存储结构,同样对于关系模型也有着多种存储方式,对不同的存储结构又有着不同的数据操纵方法。这样讲解之后能够扩宽学生的知识面,使学生认识到哪些知识点是值得深入研究和学习的内容,亩培养学生的研究兴趣。
五、阐述知识的系统性
日常使用的选课系统涉及数据库的概念结构、逻辑结构和物理结构。对于数据库的概念结构,使用E-R图进行建模;关于数据的逻辑结构,使用关系模型;关于数据的物理结构,可以使用文件存储方式来存放数据;数据的操作需要多方面的技术来支持。介绍这些知识之后,使学生认识到自己所学的知识原来是这样相互关联的,具有系统性。教师在系统性地讲解现有知识时,还要点出即将出现的新问题和新技术。如海量数据的出现,导致已有的数据库技术不能很好地适用各种场景。对海量数据的存储、计算和传输,促成了现在的固态硬盘技术、分布式计算、并行计算技术、光纤通信技术的出现。这样使学生对知识有一个系统性的认识,能够很好地激发学生探索和学习新知识的兴趣。
[ 参 考 文 献 ]
[1] Tom White. Hadoop权威指南[M].北京:清华大学出版社,2015.
[2] 吴开军,郑卫东.选课系统的设计与实现[J].电脑开发与应用,1996.