大家知道传统的数据库中数据类型有:整数、实数、字符范围数据。都是规范数据,其属性集有固定的取值范围,属性值集。而多媒体数据没有一个一致的取值范围;没有一个相同的数据量级;没有相似的属性集。 在传统的数据库中引入多媒体的数据和操作,是一个极大的挑战。这不是一个只要把多媒体数据加入到数据库中就可以完成的问题。传统的字符数值型数据虽然可以对很多的信息进行管理,但由于这一类数据的抽象特性,应用范围毕竟十分有限。为了构造出符合应用需要的多媒体数据库,必须要解决从体系结构到用户接口一系列的问题。多媒体对数据库设计的影响主要表现在以下几个方面: (1)数据量巨大且媒体之间量的差异也极大,从而影响数据库的组织和存储方法。 (2)媒体种类的增多就增加了数据处理的困难。 (3)数据库的多解查询。 (4)用户接口的支持。 (5)多媒体信息的分布对多媒体数据库体系带来了巨大的影响。多媒体数据库系统将来肯定要考虑如何从WWW网络信息空间中寻找信息,查询所要的数据。 (6)传统的事务一般都是短小精悍,在多媒体数据库管理系统中也应尽可能采用短事务。 (7)服务质量的要求。 (8)多媒体数据管理还有考虑版本控制的问题。 应用程序开发者和数据库管理者面临的最大挑战是,要把不同形式的信息,包括文本、图像和视频组合在他们的应用程序中。可供选择的数据库存储方法有如下几种: 1.多媒体数据的存储可选的方法 ① 对现有关系数据库管理系统(RDBMS)进行扩展,用二进制对象的方式支持各种多媒体对象。 ② 把关系数据库中基本二进制对象扩展为继承和类的概念。支持这些特性的数据库管理系统提供对象程序设计前端扩展或C++支持。 ③ 将数据库和应用程序转换为面向对象的数据库,并使用C++或SQL这样的面向对象的语言进行开发。 关系数据库是当前占主流地位的数据库,在关系数据库上实现多媒体应用程序的关键局限是:其关系数据模型和关系计算模型。 下面理解一下如何对关系数据库进行多媒体扩展? 2.RDBMS的多媒体扩展 ① 大多数先进的关系数据库将大二进制对象(BLOB)作为新的数据类型看作二进制和自由格式文本。BLOB构成关系表中的列,用于图像和其他的二进制数据类型。关系数据表包含 BLOB的位置信息,而BLOB实际存于数据库外部的独立的图像、视频服务器中。 ② BLOB也受到并发性和事务控制的影响。用户可以对BLOB有完全的事务控制进行读取和更新,也就是说,如果事务的后续部分失败了,对BLOB进行的所有修改都可以被退回。 ③ 将基于SQL的非过程性语言和单纯面向对象的数据库合并起来,使得多媒体对象的控制更加方便灵活。结果是数据库可以支持封装(将软件实体作为单元来处理)和继承(从已存在的类派生出新的类)这两个面向对象概念中的基本原则。 3.RDBMS比ODBMS多出的其它两个重要特点是 安全性和事务的完整性。 安全性是以对域级、表级和数据库级的访问形式提供的,多媒体数据事实上存放在数据库系统外部,因而无法获得数据库对其自身数据提供的安全保护。 4.多媒体的面向对象数据库 尽管有扩展的关系数据库,对象数据库(其中数据仍然是在关系数据库或一般文件之中)是对多媒体支持的最快捷的途径。 (1)面向对象的软件技术基于下面三个概念,对多媒体系统是十分重要的 ·封装性,或者说以预定义、可控制的方式把软件实体作为单元来处理,其中控制程序是与实体结合在一起的。 ·联系,或以与另一实体的差异来定义一个软件实体的能力。 ·分类,或以有相同行为、属性的数据项来代表一个单独的软件实体的能力。 (2)面向对象数据库的优缺点 优点:对象数据库(其中数据仍然是在关系数据库或一般文件之中)是对多媒体的支持的最快捷的途径。运用可复用代码和模板概念的面向对象编程使得数据库的维护更简单。 允许对数据库应用程序的增量修改,这些修改在过程化语言环境下会更困难。 以模块化和复用方式来组织软件。 提供了较软件实体更直接的模拟复杂的现实世界的新方法。 缺点:但是它会带来危险。当前的对象数据库缺乏安全性和并发控制,使得目前大 多数对象数据库无法用于商业应用。 |