张莹
(咸阳职业技术学院,陕西咸阳 712000)
各行各业离不开数据库,咸阳职业技术学院的计算机科学与技术专业的核心课程就是数据库的应用原理和具体应用,其中的内容涵盖了SQL 数据库的基础框架,组成结构,工作原理,SQL 函数增删改查的使用以及数据库原理的技术应用。数据库应用课程属于工程技术学科,需要学生具有一定的创新能力。因此在数据库技术课程中的教学中不仅需要培养学生在数据库技术方面的创新,还需要在数据库原理的应用上根据实际情况进行创新来满足需求。
数据库应用课程包含关系型数据库理论,数据库设计,DBMS 平台,数据保护体系和DML 语句等[1]。在关系型数据库理论中涵盖了关系型数据库的概念、模型和规则3 个因素,数据库设计是根据实际的业务场景对数据结构进行设计,其中又包含了对数据库的概念结构设计,逻辑结构设计和物理结构设计,还涵盖了数据的存储和容灾方面的设计,以保障业务在运行过程中的业务逻辑和数据的安全问题。DBMS 平台中文翻译为数据库管理平台,可视化数据操作平台,其中包含了数据库各类操作,以及数据信息处理等关键因素,可以利用起来进行创新思维开发,在数据保护课程中,让学生了解数据的存储机制,对数据的存储进行备份和还原,以及容灾处理等。最后是DML 语句的使用,如select,update,delete 等,其中包含了SQL 的基本语法,增删改查等操作,还有视图、存储过程和工作流程高级技术等因素,这些课程因素可以说是SQL 数据库技术课程中用来培养学生创新能力的基础。
在关系型数据库原理的教学中,要着重讲解关系型数据库和非关系型数据库的差异。例如,关系型数据库中的Oracle,Mysql 等都具有事务性,高读写性,在SQL 的查询方面也更具有规范性和高可用性,非关系型数据库如Mongodb,Firebase 等,这类非关系型数据库统称为NoSQL, 他们以图形或文档的方式进行数据存储,在接口对接方面更具有灵活性,在这几个方面的基础上可以让学生找出关系型数据库的其他特性。教学的时候引导学生不只从关系型数据库的本身进行发现,还可以从数据库的延展性方面进行讨论,分析关系型数据库和非关系型数据库实际应用场景的区别,让学生发散思维,在了解数据库类型理论的同时还可以丰富应用场景。
数据库设计的教学核心是围绕数据库的概念结构设计、逻辑结构设计、物理结构设计和运维结构设计来开展[2],数据库设计的基础是对实际的业务情况进行需求分析,教学期间教师给以不同的业务场景,让学生对不同的业务场景进行需求分析以及数据库设计分析。例如,普遍的业务场景都是前端页面对后台数据的交互操作,在这类业务中要明确用户的业务涉及的表结构、数据类型、主外键和数据量,再根据需求情况对数据库的概念结构预先设计出数据库的概念结构,画出E-R 模型图(实体-关系图)。实体是根据抽象的方法确定需求数据,关系是不同实体间的关系确认,再根据实际的模型结构进行E-R 数据模型转换,消除模型数据冲突,再通过业务场景的各种业务逻辑来确认数据逻辑,表与表之间的关系,最后通过用户的资金投入和数据存储的大小对数据库的硬件和软件进行相应的配置,最终集成用户操作文档和管理员管理手册,便于用户的使用和管理员的后期运维工作。上述几个步骤具有一定的理解难度,教师在教学的时候要注重对E-R 图进行拆解分析,可以让学生利用自我认知先尝试画出E-R图,然后再根据学生的思维进行校正。在这些数据库设计的过程中让学生结合业务场景,根据数据库类型特性来进行分析和讨论,开拓学生的思维,不可局限于某一种类型的业务场景进行数据库设计分析,教师在引导学生的时候要多元化,让学生的思维创新能力更为广阔。
DBMS 平台是数据库管理操作平台,例如,oracle 数据库的操作平台PLSQL,它具有强大的集成功能,可以在PLSQL 平台中对数据库进行创建和开发以及可视化数据操作。教师在DBMS 平台教学的时候引导学生创建测试库,然后利用DBMS 平台进行表空间的创建,单表的创建,视图的创建和利用DBMS 平台上的按钮进行数据的增删改查,以及对表和表空间的处理。在数据库实例,表空间,表和用户的创建操作时,可以让学生对三者的关系进行思考,例如,一个Oracle 数据库可以有多个示例,一个示例中可以有多个表空间,一个表空间中有多个表,而多个表空间或者表可以同属于一个用户。教学过程中,教师在演示创建数据库实例的时候,可以分步讲解数据库实例对于整个数据库构成的重要性,再让学生进行实践,可以让学生在操作的时候进行发散思维不要怕遇到错误,培养学生独立处理问题的习惯。让学生知道在DBMS 平台上进行操作时,遇到不同类型的错误时应有的处理思路,对不同操作下的错误可以有不同的解决方法[3]。
数据保护的教学核心是让学生了解数据的重要性以及数据的保护措施,避免数据丢失以及人为误操作导致的数据损坏。以Oracle 数据库为例,数据库的保护机制有数据库备份,数据库还原以及数据库容灾等机制,在数据库备份中又分为数据的冷备份,数据的热备份和数据的逻辑备份等。在不同的数据库环境下,数据库备份的方式也会有所不同,例如热备份是在数据在运行的情况下进行备份,它会被分到当前数据库的时间节点下,而在节点后产生的数据库数据的变化或者是配置的变化就不会存在备份当中。冷备份是在数据库脱机的情况下进行备份,这样的备份可以让数据库数据备份更加完整。逻辑备份是对数据库的差异进行备份,在教学的过程当中需要让学生了解不同备份机制之间的差异,在相同应用场景下不同方式的备份差异,以及在不同环境下相同的备份机制是否也会有差异,了解备份后的数据存储特点,教师可以通过实战操作,利用不同的备份方式如EMP 和EMPDP 这两种不同的备份命令[4],解释这两者之间的差异,参数差异和数据差异等,再让学生利用其他的备份方式进行分析和对比,教师还可以在此基础上进行问题的延伸,例如,当数据库无法启动或者重要文件损毁的情况下如何进行备份和恢复,如何利用双机热备和DATAGruand 来进行数据的容灾处理,在结合实例讲解的时候也能提升学生的学习兴趣和创新思维。
SQL 是非过程化语言,是数据库的专有语言,它对数据库的定义,数据的访问和操作都起到了必不可少的作用。操作数据库的核心就是SQL,所以在数据库技术教学中SQL 语言的创新能力需要着重培养,培养学生的SQL 创新能力的方面主要有以下几点。
2.5.1 编写代码的规范性和创新性
SQL 语句代码具有一定的规范性,SQL 中的关键字要大写,两个字符之间需要空格隔开,在嵌套式SQL 语句当中需要进行合理的缩进,对于不同的SQL 代码需要有基本的注释。在学生利用DBMS 辅助器进行SQL 代码的编写时提供了智能格式,可以让学生养成SQL 编码的正确书写规范。创新性方面不是指让学生随性的编写代码而不考虑SQL 代码的可行性和高效性[5],而是应该尽可能地将SQL 代码简化,利用学生的好奇心理,将复杂的SQL 代码利用函数和其他方式进行简化创新。
2.5.2 SQL 编写思维上的创新
每一条SQL 的编写是为了处理某种需求,因此对于同一个需求的处理会有不同的思路,这就需要对SQL 语法的储备相当丰富,可以通过不同的SQL语句处理其在视图,函数和存储过程的利用。例如,在查询“每个学生每门学科成绩”的需求中,可以让学生发散思维,分析需求并写出SQL 语句,在分析需求的时候要明确需求的结果,上面的例子中需求结果是成绩,谁的成绩,学生的成绩,怎么取得学生的成绩,又怎么和每一门学科进行关联,让学生可以在编写SQL 语句的时候利用函数进行解决,再衍生出其他的业务场景进行思维开拓。
2.5.3 SQL 结构化思维上的创新
SQL 语句的编写中难免遇到复杂的语句,其中会包含多重嵌套和多级关联。例如,像通过学生表和成绩表来统计“数学成绩在90 分以上的学生”中,就需要首先查询出成绩表中的数学成绩,并且成绩分数大于90 的学生ID,再通过学生ID 去学生表查询到对应的学生。前部分查询成绩的SQL 就是子查询SQL,再在外层嵌套学生表成为父查询,在这类SQL语句中,教师需要从子查询的逻辑进行分析,让学生理解子父关系以及嵌套下SQL 语句的运行方式,让学生产生SQL 的结构化思维,从上到下从左到右的思维导图,利用结构化思维来处理需求。
2.5.4 SQL 分组思维上的创新
数据库的查询(SELECT)和更新(UPDATE)操作是最为频繁的,在数据量较大的情况下进行查询和更新操作,就需要了解当前数据集的规律和相同点[6],再根据规律和相同点通过SQL 代码去进行归类和统计。例如,在“查询总计算机专业课程分及格的学生”,首先通过嵌套查询出每个学生计算机专业课程的分数,再根据及格60 分对比出课程分大于等于60 分的学生。再根据总分进行排序,这个问题中就包含了两个分组,第一个是对课程的分组,确定了是计算机专业课程,第二个是对及格人数的分组,最后整个在一起。SQL 的分组查询可以让学生通过对SQL 语句的运算逻辑和统计逻辑进行锻炼,对比数据的差异性和同一性来进行SQL 的编写。
数据库的课程内容是枯燥的,许多概念和理论会让学生对数据库的学习产生厌倦,教师在开展教学活动的时候需要以学生为中心,利用实践和理论的结合让学生可以在学习数据库技术的时候发散思维,对于逻辑思维和创新思维的培养上也需要以SQL 为中心。在DBMS 操作平台上进行数据库实践,教学内容不能仅限于教材,对于每一个概念问题都需要有延伸场景,在处理问题方面有不同的解决思路,让学生产生推理的兴趣以及提升数据库的操作能力。在数据库设计方面,E-R 图形的建模和逻辑结构转换可以分为小组进行讨论[7]。在互联网发达的今天,教学模式可以通过互联网的形式展开教学,利用多媒体设备激发学生的学习兴趣、教学效果,利用感官的冲击让学生可以多方位的思考。线下教学模式注重的是教师亲自引导学生处理问题,开发问题多处理的思维方式,线上是可以利用题库等软件让学生可以接触到各类不同的问题以及不同的思维逻辑,以及锻炼学生的独立思考能力,让学生在DBMS操作平台中进行试验和模仿[8],最终养成发现并处理问题的思维模式。
计算机专业学科中的数据库原理的应用课程的开设还处于开发阶段,对于可能的创新因素,以及在培养学生创新思维能力的方向上还需要改进和完善。目前阶段的数据库技术原理的应用课程还需要注重对数据库概念、数据库设计、数据保护机制以及SQL 代码的编写方面进行深入研究。在原有的基础上进行课程上和教学模式上的创新,最终将这些碎片化的创新因素进行整合教育,为社会输送更多优质的数据库技术人才。