摘 要:提出了如何充分利用 MS SQL Server 2000 的数据库管理特性,采用链接服务器、分布式分区视图和存储过程构建分布式数据库,以及基于数据库复制技术实现混合式的数据分布。实验实现了分布式数据库的水平分片、垂直分片和混合式数据分布。
一. 引言
随着网络与数字通信技术的飞速发展,应用的数据再也不是存储在一个单一的场地,而是可能分布在全球的任何位置。对这样由多个分散数据库组成的管理信息系统,如何以最小代价将其整合成分布式数据库系统也就成为了迫切需要解决的问题 [1] 。MS SQL Server 2000 分布式数据库功能 [2] 允许用户把多个不同场地的数据库当作一个完整的数据库看待,允许用户透明地查询和操作远程数据库实例的数据,并使应用程序看起来只有一个大型的集中式数据库,用户可以在任何一个场地执行全局应用,具有数据分布透明性和逻辑整体性等特点。
二. 分布式数据库系统的设计
1.创建和使用数据库链接(链接服务器)数据库链接是定义一个从某一数据库服务器到另一数据库服务器的单向通信路径指示器。可以使用企业管理器或者 T-SQL 代码来建立链接服务器。链接服务器可以是 SQL Server或者任何其他的 OLE DB 和 ODBC 数据源,只要相应的驱动程序支持,分布式查询就可以检索和修改相应数据源中的数据。使用创建好的链接服务器,对用户来说,数据分布就是透明的,用户就好像使用本地集中式数据库一样,同时使用链接服务器的查询代码具有更好的移植性,也更加易于维护。
将表分区就是将表按照分区键划分为两个或两个以上更小的分段。分区键通常选择一个经常被用来选取特定范围的数据字段,这样分区的效率最高。通过创建分区视图合并所有分区表,实现对整个数据集的访问。SQL Server 支持两种类型的分区视图 [2] :本地的和分布的。分布式分区视图,也称为联合数据库,将分区表分布在多个场地的服务器上。使用链接服务器和分布式分区视图方法可以构建以水平分片的分布式数据库系统。
SQL Server 没有提供现成的技术实现垂直分片的分布式数据库系统,但可以使用链接服务器和存储过程相结合的方法,将用户提交的全局操作转变为对多个场地的垂直分片表的局部操作,使用存储过程可以保证分布式事务的 ACID 特性。存储过程是存储在服务器上的预编译好的 SQL 语句集。使用存储过程将对多个场地的垂直分片表的操作放在一个分布式事务内,要么全部提交,要么全部回退,保证了分布式数据库系统数据的一致性。