1.4 分布式数据库系统中的关键技术
1.4.1 关键技术
尽管分布式数据库系统理论已经成熟,其技术问题也已基本解决,但由于系统较复杂,许多方面还是很不尽如人意,仍需进一步研究,以使分布式系统更完善。下面是分布式数据库系统需着力研究的问题,这对一个分布式数据库系统是否成功建立至关重要。
1.分布式数据库设计
分布式数据库设计中需要考虑:
●如何恰当地对数据进行分片设计,以及如何合理地将数据分布于各个场地上;
●如何设定复制型数据和非复制型数据,以及如何有效地评价其效益和代价;
●如何实现元数据管理,是采用复制/分割式全局数据字典,还是采用复制/分割式局部数据字典,还是两者相结合,如何维护全复制式数据字典和部分复制式数据字典的一致性,如何保证分割式数据字典的可靠性。
2.查询处理
查询处理需要实现:
●对于分布在不同场地上的数据,如何解决查询到数据操作命令的转换,包括各子查询的数据操作的本地化等问题;
●如何有效利用各个场地的处理能力,同时尽量减少各个场地之间的数据通信代价;
●如何选择副本和执行场地,并以最小代价(通信量和访问时间)执行查询策略的优化问题。
3.并发控制
并发控制需要实现:
●面对多场地上的多个用户的并发执行的事务,如何协调并发访问的同步问题,并保证数据的完整性和一致性;
●多个事务并发执行时,由于多副本的存在,如何保证事务的一致性和隔离性;
●对多个事务并发执行进行调度时,如何选择封锁粒度和封锁策略,提高并发执行效率,以及如何解决或预防死锁问题。
4.可靠性
在可靠性方面,需要解决:
●在分布环境下,当系统出现故障时,如何正确而有效地实现系统故障恢复,保证数据的正确性,尤其是出现网络故障时,如何保证系统的可靠性;
●事务的原子性和耐久性的实现问题,重点解决如何保证分布式事务执行的事务原子性和多副本数据的一致性。
5.安全性
在安全性方面,要解决如下问题。
●用户授权和认证问题,访问权限控制问题。在分布环境下,如何有效地协调多用户的多种权限控制,保证系统的安全性,并具有较高的执行效率。
●为保证数据的安全性,如何实现数据的加密与解密。选择何种数据自身的加/解密算法和场地间传输数据的加/解密算法,以及数据的协调问题。
1.4.2 典型的分布式数据库原型系统简介
下面介绍的三个典型的分布式数据库原型系统,它们是分布式数据库系统的先驱,最早实现了分布式数据库系统的关键技术,为后续分布式数据库系统的开发提供了宝贵经验。
SDD-1(System for Distributed Database)是美国国防部委托CCA公司设计和研制的分布式数据库管理系统,是世界上最早被研制出来并且影响力最大的系统之一。它采用关系数据模型,支持类SQL;支持对关系的水平和垂直分片,以及复制分配;支持单语句事务;提出了半连接优化技术,支持分布式存取优化;采用独创的时间戳技术和冲突分析方法实现并发控制;支持对元数据和用户数据的统一管理。
分布式INGRES是INGRES关系数据库系统的分布式版本,由美国加利福尼亚大学伯克利分校研发。它支持QUEL,支持对关系水平分片,但不支持数据副本,采用基于锁的并发控制方法,数据字典分为全局字典和局部字典。
System R*系统是由IBM圣何塞实验室研发的分布式数据库管理系统,是System R关系数据库系统的后继成果。它支持SQL,允许透明地访问本地和远程关系型数据,支持分布透明性、场地自治性、多场地操作,但不支持关系的分片和副本。它采用基于锁的并发控制方法和分布式死锁检测方法,支持分布式字典管理。
这三个系统都支持关系模型,SDD-1和分布式INGRES基于远程数据网络,而System R*基于局域网络,它们在分布处理策略上有所不同。