数据存储方式 首先讨论一下数据存储方式的问题。一种做法是把所有的数据和页都存储在数据库中。数据库可以是现成的商业数据库,也可以是讨论中的对象数据库或多媒体数据库,或者干脆就是一个大"包"文件,把数据和页打进包中。这些做法有很多缺陷: 1) 现有的商业数据库缺乏对多媒体的支持,难以满足存储和管理多媒体信息的要求。 2) 对象数据库和多媒体数据库还处于探讨阶段,尚无成熟的系统。 3) 数据库查询执行缓慢,严重影响演示效果。 4) 包文件规模受到操作系统限制,如果包太大,存储、管理都有困难,且降低系统运行速度,加大资源的占用。 在EDHM中,数据和页都存成单独的文件,和前面做法相比有很大优越性: 1) 演示系统的规模不受限制,受限制的只是单个文件大小。 2) 可以很自然地存储在网上,形成分布式演示系统。 3) 支持多人同时工作,只要他们不同时修改一个文件即可,极大地提高了演示的制作效率,同时方便了文件共享和复用。 4) 修改时只需改动单个的文件,粒度变小,便于维护。 5) 减小演示运行时的资源占用,加快运行速度(相对数据库查询而言)。 链的定位 既然文件名可以唯一标识超媒体链,全路径名当然也可以唯一标识。但超媒体链是散布在页文件中,如果一个文件位置改变了,所有指向该文件的链都需要改动,而这种移动往往是不可避免的,因此给链的维护带来巨大困难。如果只用文件名标识链,位置的移动不会导致链的修改。 有的软件采取用数据文件相对于包文件的相对路径来标识链,这会带来一些方便,只要保持相对路径不变,演示可以整体移动而不用修改。但若演示规模大,存储时跨越多个逻辑驱动器或分布在网上,就只能用全路径名,修改还是再所难免。 EDHM采取的策略是用文件名唯一标识链,采用集中查找的办法完成从文件名到全路径名的映射。在EDHM中,每个演示称为一个项目,每个项目用一个项目文件进行管理。项目文件包含一个查找表,记录各种文件所在路径,多个路径之间用分号隔开。下面是一个查找表的例子: 表7-8查找表的例子
|