用delphi7 + sql server 2000实现一个小型分布式图书馆系统的数据库系统数据必须存放在至少3个站点上,数据的划分对用户完全透明。测试建议如下:
1)三个场地:命名site1, site2, site3 2)一个逻辑表的四个片段:
db1:site1
db2:site2
db3:site3
db4:site13)当指一个逻辑表的分片时, 用表达形式
tableName@dbi (I=1,2,3,4)4) 这种表达方式可以扩充: (m 为场地数, n 为分片数)
dbi:sitej (I=1,2,3,…n; j=1,2,3,….m;)
tableName@dbi(I=1,2,3,…n) a)crteate
create testdb
create table (列名称, 关键字, 外码, 其他约束等)
LIBRARY
BOOKSS
CUSTOMERSS
READER_LIST
b)fragment
LIBRARY: 不划分, 放置在 db1
BOOKSS:
按照书的编号和类型分别放置在db1,db2,db3, db4
CUSTOMERSS
按照图书卡号分别放置在db1,db2,db3, db4
READER_LIST
按照图书卡号和图书编号分别放置在db1,db2,db3, db4
c)insert
用不同的表,先用select查看信息, 在db1,db2,db3, db4各插入一条, 检查相应的场地,看结果是否正确
d)delete
用不同的表,先用select查看信息,在db1,db2,db3, db4各删除一条, 检查相应的场地,看结果是否正确
e)select
实现上述表格分片透明、位置透明、局部数据模型透明的查询)
--------------------------------------
目前本地数据库已用delphi建好,不知应怎样实现全局字典与数据分片?如何实现对不同站点的选择查询?
诚请各位高手给予提示:)
1)三个场地:命名site1, site2, site3 2)一个逻辑表的四个片段:
db1:site1
db2:site2
db3:site3
db4:site13)当指一个逻辑表的分片时, 用表达形式
tableName@dbi (I=1,2,3,4)4) 这种表达方式可以扩充: (m 为场地数, n 为分片数)
dbi:sitej (I=1,2,3,…n; j=1,2,3,….m;)
tableName@dbi(I=1,2,3,…n) a)crteate
create testdb
create table (列名称, 关键字, 外码, 其他约束等)
LIBRARY
BOOKSS
CUSTOMERSS
READER_LIST
b)fragment
LIBRARY: 不划分, 放置在 db1
BOOKSS:
按照书的编号和类型分别放置在db1,db2,db3, db4
CUSTOMERSS
按照图书卡号分别放置在db1,db2,db3, db4
READER_LIST
按照图书卡号和图书编号分别放置在db1,db2,db3, db4
c)insert
用不同的表,先用select查看信息, 在db1,db2,db3, db4各插入一条, 检查相应的场地,看结果是否正确
d)delete
用不同的表,先用select查看信息,在db1,db2,db3, db4各删除一条, 检查相应的场地,看结果是否正确
e)select
实现上述表格分片透明、位置透明、局部数据模型透明的查询)
--------------------------------------
目前本地数据库已用delphi建好,不知应怎样实现全局字典与数据分片?如何实现对不同站点的选择查询?
诚请各位高手给予提示:)
个人认为:
全局字典中应该存储各场地的数据表和存储的分片关系属性;
在insert和update,select时直接从全局字典中得到各数据记录需要存储或者搜索的场地情况;
而不是如楼主所描述的插入到各场地后再对比;
这样好像增加了网络流量和数据处理时间;仅供参考