您好, 访客   登录/注册

基于数据库原理实现的数据库实践教学方案

来源:用户上传      作者:

  摘要:数据库作为计算机中基础软件的三大件之一,在现实应用中占据了举足轻重的地位。《数据库原理与设计》作为计算机专业一门重要的专业课程,为培养优秀的数据处理人才提供了有效的途径。当前随着诸如HBase、Redis和MongoDB的NoSQL普及,数据处理方式呈现出多样化的形式,学生往往对数据管理T具的具体实施原理感觉较为迷惑。具体来说,目前数据管理工具的使用在学生视野内往往呈现出知其然而不知所以然的现象。本文拟通过设计一套易于被学生接受的数据库原理实践方案,通过从数据库实施原理的角度促进学生对数据库中查询、事务及存储的操作理解,进而提升学生对《数据库原理与设计》内容的理解效率。
  关键词:数据库;原理实践;数据管理;课程设计
  中图分类号:TP392 文献标识码:A
  文章编号:1009-3044(2020)20-0122-02
  Database Teaching Based on Principle Implementation
  FANG Jun-hua
  (School of Computer Science and Technology, Soochow University, Suzhou 215006, China)
  Abstract: As one of the three basic software in computer, database plays an important role in real-world application. Since databaseis an important professional course of computer science. Database Principle and Design provides an effective way to train excellentdata processing talents. At present, with the popularity of NoSQL such as HBase. Redis and MongoDB, data processing methodstake on various forms. and students are often confused about the specific implementation principle of data management tools. To bespecific, the current use of data management tools in the students' fieh:l of vision often presents the phenomenon of "know it butdon't know why". This paper intends to design a practical scheme of database principle that is easy to be accepted by students . andpromote students' understanding of the operation of query, transaction and storage in the database from the perspective of databaseimplementation principle, so as to improve students ' understanding efficiency of the content of Datahase Principle and Design.
  Key words: datahase;principle practice;data management;curriculum design
  1引言
  数据库系统是数据管理的主流技术,也是计算机学科的重要分支。《数据库原理与设计》课程作为让学生初识数据管理技术的引路人,通常包括数据库系统的基本概念、数据模型、关系数据库及其标准语言SQL、数据库安全及完整性的概念和方法、关系规范化理论、数据库设计方法与步骤,数据库恢复与并发控制等事务管理的基础知识内容[3]。在实验环节中,现有教学方法多是注重SQL的操作練习,而忽略了数据库原理的实践[4]。这在一定程度上使学生在后续工作中,诸如在做关系查询处理与查询优化等操作时,往往知其然不知所以然的通过规律或历史经验来操作[5,6]。本文认为适当的理论实现不仅能够帮助学生对数据库的理论深入理解,亦可提升学生对现有数据库管理系统的操纵能力。
  数据库课程的目标通常是使学生熟练掌握数据库设计的方法与步骤,具有设计数据库模式以及开发数据库应用系统的基本能力。并且在所设计的关系数据库的实施中,能够使各个关系满足场景所需规范化理论需求;设计过程中,能够借助实体一关系图工具提高方案的可行性和高效性;使用过程中,能够熟练掌握SQL语言并在某一个数据库管理系统上针对应用需求进行数据库操作。针对这一目标,本文将设计通过三部分原理内容来加强学生本课程的学习系统地掌握数据库系统的基本理论与技术。
  2数据库原理实施方案规划设计
  本文方案借助开源项目SimpleDB[1]来实施方案设计的相关内容。SimpleDB实现数据库原理的诸多功能单元,包括管理元组的类,即Tuple,TupleDesc;Field IntField,StringField和Type;Catalog;BufferPool构造函数和getPage()方法;访问方法Heap-Page和HeapFile以及关联的ID类。同时,SimpleDB提供了ScanTest系统测试,由于篇幅限制,项目具体介绍见文献[1]。实践环节的第一步,我们需要搭建好开发环境并了解SimpleDB的整体框架。这个过程根据上述资源获取具体操作步骤。需要说明的是在添加代码的过程中,在遇到“some code goes here”的注释时,表明我们需要将该函数满足需求的填写完整。有时为了达到目的,我们需要增加一些辅助的变量和函数来完成这些函数。基于这些工作,我们可以对当前完成的类进行单元测试。   3数据库原理实施内容
  3.1元组和文件
  该部分内容主要使学生能够了解数据库中逻辑上最小粒度的字段以及由字段组成的元组内容,进而能够促进学生在数据检索效率及优化,多粒度加锁内容及事物的并行控制上能够进一步加深理解[2]。具体内容设计上,该部分规划了对模式的定义,字段及元组的初始化及相关操作。在开源项目中已有相关框架的构造内容,具体需要设计的内容包括对该关系内元组及字段的定义,在元组内各个字段的类型的定义,对于字段的增删改操作等。对于实践能力较高的同学,可增加对于字段在元组内组织形式的额外定义,诸如支持用索引获得字段的类型或名称,用名称获得字段的位置等。在本文基于的开源项目中,提供一个静态方法用于合并两个TupleDese获得一个新的TupleDesc(供Join operator使用),该部分内容亦可供学生选择行实施。
  对于元组的组织,首先要明确元组是逻辑上定义字段的基本框架。在学生实施过程中,不仅需要提供与元组有关的增删改查操作,还应该提供元组中第i个字段的获取及设置方法,同时要考虑如何实施提供了所有字段的迭代方法。需要注意的是,每个元组具有用于唯一标识的字段ID,进而便于标记其在磁盘中的位置及相关的元组组织方法。
  3.2数据字典
  数据字典是数据库的核心,为使学生理解数据字典中组织着对数据描述的数据,本部分内容需要描述的内容包括对单个表的描述,对多表间联系的描述,索引及文件组织及存储的描述,另外还需要实施对各个构建对象的相关操作[2]。对于单个表的信息描述,除基本的数据本身描述,相关完整性约束也应考虑进来。此外,对于表的统计信息也可考虑实施,即如何构建什么样的辅助信息能够在对该关系操作时能够加快操作性能;索引项目的实施可引导学生构建两种索引类型,例如哈希和树形索引。在本文基于的开源项目中已经构建完成相关框架,还需学生补全一些得到这张表相应信息的方法,例如getTa-bleld、getPrimaryKey等方法。
  3.3缓冲区及文件组织
  缓冲区是数据库在内存中为系统操作提供便捷操作及提升系统性能的空间[2]。缓冲区中存储着系统与磁盘交互信息的暂存文件,任意从外存中渎取或写入的内容均需通过缓冲区进行组织优化。具体来说,缓冲区存储着一定数量的页面,页面的个数在此开源项目中可通过numPages参数设定。在缓冲区的操作中,需要构建多页面的检索方法,例如通过最原始的扫描方式。对于文件的组织方式,在数据库原理实现过程中只需实施简单易懂的方式让学生了解文件的组织过程及作用即可,例如本文基于的项目中的堆文件方式。
  4实践与数据库原理课程衔接内容设计
  上述对数据库原理的实践与其理论课程起到相辅相成的作用。具体来说,理论课的过程中可以穿插实践部分的内容,用于引导学生思考如何实现相关机制来完成该部分功能;在实践课的进行过程中,又可引导学生思考和探究如何能够满足原理课相关知识点的具体实践操作,进而理论和实践相结合达到促进学生对数据库深入理解的目的。
  数据库SQL操作部分所述内容主要包括:数据库定义语言、数据库操纵语言、授权、完整性约束等。在讲解该部分内容时,可以引导学生在原理实现的流程中,如何通过实现什么样的控制模块来确保操作的正确性和高效性展开讨论。例如,在查询优化的过程中,选择和连接操作的先后执行次序可通过上述我们实践的元组及文件内容形象阐释,进而使学生能够举一反三地根据实际情况进行性能的优化。
  数据库设计讲解的相关内容亦可如此。通常,该部分内容的讲解主要包括数据库的设计过程、需求分析、概念模型、ER模型以及数据库的逻辑结构和物理结构设计。根据传统的教学经验,我们在讲解到需求分析部分时通常会强调其重要性,而我们实际上可以借助数据字典中各个模式的创建及文件的组织进行说明。
  再者,数据库的规范化理论可能表面上与原理实践的内容没有具备联系。但其实不然,我们在讲解数据库没计存在的异常、函数依赖的类别、范式的定义及模式分解内容时,可通过对于多个表的操作进行阐明。具体来说,操作异常会使数据在不同文件中存在的副本过多,不仅使我们的操作效率变低,同时导致更新操作出现错误,借助原理实践部分的帮助,这些内容的讲解均可通过数据库原理实践中对元组及文件的实现来加以描述。
  对于包括存储设备、磁盘的介绍、文件和记录的存储结构、数据索引等内容的存储与文件结构的章节来说,原理实践的内容恰恰刚好迎合。对于数据库事务及并发控制章节内容也可通过上述实现内容加以描述,例如,事务的概念、原子性与持久性、隔离性与隔离等级可通过元组的操作描述;可串行性、隔离性与原子性等内容可通过对元组及中间字段的更新操作来举例阐述。最后,对于包括并发导致的三种错误、封锁、两阶段封锁协议、多粒度封锁等内容的并发控制技术及数据库恢复技术均可通过磁盘与系统中介的缓冲区、文件、元组及字段多个粒度的操作进行诠释。
  5结束语
  本文描述了如何通过实现数据库原理的角度,通过实例引入数据模型和内部机制的相关概念及核心思想,使学生能够进一步加深对数据库课程的理解。在教学过程中,我们需要更灵活的教学方式来加以诠释,并通过分析具体应用,引人数据库是具体要解决什么问题以及如何解决这些问题从而引导学生更深一步的思考,并结合相关习题强化对相应部分知识的理解。课上通过具体例子的讨论引导学生探索如何实现及如何更高效的实现相关知识点,最终能够针对具体问题选择合适的解决方案。在此过程中,要加强实训环节的螺旋式联系达到实践与理解的相互促进作用。
  参考文献:
  [1]SimpleDB.https://www.cs.hmc:.edu/-beth/courses.
  [2]CS133 Labl:SimpleDB.https://www.cs.hmc.edu/-heth/courses/cs133/current/assignments/lahl.html.
  [3]王珊,萨师煊.数据库系统概论(第5版)[J].中国大学教学,2014(9):98.
  [4]廖業红.基于翻转课堂和理实一体化教学的《数据库原理与应用》课程教学没计[J].科技风,2019(34):72.
  [5]徐骏.本科教学基本状态数据库建设的思考与实践[J].电脑知识与技术,2019,15(20): 176-177.
  [6]高艳丽.大数据背景下《数据库原理与应用》课程改革研究[J].科技资讯,2019,17(12):121-122.
  【通联编辑:王力】
  收稿日期:2020-02-11
  基金项目:本文承国家自然科学基金(61802273);中国博士后面上项目(2017M621813);江苏省博士后面上项目(2018K029C);江苏省高等学校自然科学研究面上项目(18KJB520044)资助
  作者简介:房俊华(1985-),男,河南周口人,讲师,博士,主要研究方向为实时大数据处理。
转载注明来源:https://www.xzbu.com/8/view-15300037.htm