随着1970年Ted Codd的著名论文的发表[2],数据库系统有了质的改变和发展。在这篇论文中提到将数据库组织成表的形式展现给用户。使用类似这样的关系,允许数据库实现一个复杂的数据结构,从而实现了对各种查询的快速响应。
在关系型数据库中,数据库的设计中通常要对关系模式进行必要的改进,特别是在消除冗余方面,需要改进的地方尤其多。在关系型数据库中,“依赖”作为一项成熟的理论。依赖理论致力于如何设计一个良好的关系型数据库,以及后期的修改中。人们依据关系的设计理论验一个设计并加以改进。这一理论能够规定作用在关系上的约束。一种常见的约束就是“函数依赖”。在设计和改进中,通过“分解”来修改依赖,即用若干个关系替代原有的关系。根据约束条件的不同,可以将关系分解至不同的约束层次,现代数据库理论中称这种约束为范式。现阶段存在的范式按约束层次依次为:第一范式,第二范式,第三范式,第四范式,Boyce-Codd范式。论文网
现在的数据库研究与使用中,第三范式和BCNF是两种约束较为复杂且常作为研究对象的两种范式。虽然理论研究上已经有了很好的关于这两个范式的教学方案,但是并没有一款实用的可视化软件辅助教学,本文内容的核心是一款可视化第三范式教学软件的设计与实现,在后文中会着重讨论。
1。2 课题研究目的及意义
在现在的计算机领域中,数据库已经成为不可缺少且不可替代的一大重要元素。数据库为现代化的计算机软件提供了信息基础,从信息的存储到信息的操作,在各个领域数据库立下了汗马功劳。在数据库技术应用广泛的今天,除了为数据库取得的骄人成绩喝彩之外,也不得不重视在软件开发中由于开发人员对于数据库开发的经验不足或者预测不足造成的不必要的损失。试想,要构造一个存储打量数据的数据库时,由于前期准备不足,使得数据库中出现大量的冗余,或者主键设置失误,导致数据库自身的索引占据大量不必要的空间,在这种情况下,数据库的资源利用率大大降低,这时候就不得不重构数据库,而重构数据库带来的不仅仅是大量的工作,更是直接的经济损失。由此可见,数据库理论知识的教学和应用应当随着数据库使用的不断增长而不断的更新[3]。但是数据库教学的现状是理论性的教学很多,但是缺乏效率性,就本文的重点第三范式来讲,其分解比较复杂,不易讲解,每次讲解,教师分解过程会占据大部分时间,这样用来讲解的时间和讲解前准备步骤的时间比例明显不符合教学的高效性。所以一个便捷的第三范式可视化分解软件必不可少,有了这样一个软件,教师能够将更多的时间安排在讲解环节,考虑到软件的可视化程度,甚至能够代替老师的很多板书,减轻了老师的负担,同时也节约了时间和资源。
在可视化技术成熟的今天,完全可以通过Java中的Swing组件来完成一个功能齐全的可视化第三范式分解软件。软件能够将必要的分解过程可视化的呈现在使用者面前,考虑到使用者是教师,应当能够配合教学分步骤的展示分解过程。
其次,现在教课书上的分解过程以理解为先,没有提供完善的分解过程和相应的分解算法,使得初次接触第三范式分解的学生容易出现一种现象,那就是分解过程不能用理性的方式阐述,只能通过感性的理解分解,不能有逻辑的堆范式进行分解,最终学生对于范式的分解过程也是模棱两可,这是在教学过程中所不愿意看到的。