1、分布式数据库实验期末评测方案(示例)注:1. 本方案针对三个场地的情况,分别命名为 site1、site2 、site32. 由于测试中会涉及到一个逻辑表的四个片断,故作如下指定:db1: site1db2: site2db3: site3db4: site13. 当指某一个逻辑表的分片时,用表达形式:tableNamedbi (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)一一一仅支持水平划分1. 对 create、fragm
2、ent、insert、delete 的考察a) create i. 创建新数据库 testdbii. 生成如下的表模式:SAL (title char(20) primary key, sal float not null)EMP (eno char(20) primary key, ename char(20) not null, title char(20)JOB (jno char(20) primary key, jname char(20) not null, budget float not null, loc char(20) not null)ASG (eno char(20)
3、, jno char(20), resp char(20) not null, dur int not null)b) fragment (要求按照要求将划分信息计入数据字典)i. 按照以下方式划分:EMP eno = N db2eno = E1000 & title = E1000 & title = N db4ASG eno = J0500 db2eno = E1000 & jno = E1000 & jno = J0500 db4JOB jno = J0500 db2ii. SAL 不划分,放置在 db1c) Insert (检查相应场地的数据,看是否正确插入 )i. insert in
4、to EMP (eno, ename, title) values (E0001, J. Doe, Elect. Eng.)- db1ii. insert into EMP (eno, ename, title) values (E0999, M. Smith, Syst. Anal.)- db2iii. insert into EMP (eno, ename, title) values (E1000, L. Polly, Elect. Eng.)- db3iv. insert into JOB (jno, jname, budget, loc) values (J0499, Instrum
5、entation, 80000, Montreal)- db1v. insert into JOB (jno, jname, budget, loc) values (J0500, Database Develop, 135000, New York)- db2d) delete(检查相应场地的数据,看是否正确删除 ) i. select * from JOB(应返回两条记录:(J0499, Instrumentation, 80000, Montreal)(J0500, Database Develop, 135000, New York)ii. delete from JOB where
6、jno=J0500(应返回信息:成功删除一条记录;查看 db2,子表为空)iii. select * from JOB(应返回一条记录:(J0499, Instrumentation, 80000, Montreal))iv. delete from JOB where budget=E0990b) 较复杂的 select 操作i. 根据查询条件优化select * from EMP, SAL where EMP.title = SAL.title and SAL.enoE0100(要点:根据查询条件选择合适的 EMP 的分片;选择操作下移减少连接数据集的大小;适当进行并行操作)ii. 根据划
7、分条件优化select * from EMP, ASG where EMP.eno = ASG.eno(要点:根据查询条件选择合适的 EMP 与 ASG 的分片进行连接;适当进行并行操作)iii. 查询条件到划分条件的传递及优化select * from ASG, JOB where ASG.jno = JOB.jno and ASG.jno= N db2eno = E1000 & title = E1000 & title = N db4ASG eno = J0500 db2eno = E1000 & jno = E1000 & jno = J0500 db4JOB jno = J0500
8、(jno, jname, budget) db3 jno = J0500 (jno, loc) db4 ii.SAL 不划分,放置在 db1c) Insert (检查相应场地的数据,看是否正确插入 )i. insert into EMP (eno, ename, title) values (E0001, J. Doe, Elect. Eng.)- db1ii. insert into EMP (eno, ename, title) values (E0999, M. Smith, Syst. Anal.)- db2iii. insert into EMP (eno, ename, title
9、) values (E1000, L. Polly, Elect. Eng.)- db3iv. insert into JOB (jno, jname, budget, loc) values (J0499, Instrumentation, 80000, Montreal)- db1, db2v. insert into JOB (jno, jname, budget, loc) values (J0500, Database Develop, 135000, New York)- db3, db4d) delete(检查相应场地的数据,看是否正确删除)i. select * from JO
10、B(应返回两条记录:(J0499, Instrumentation, 80000, Montreal)(J0500, Database Develop, 135000, New York)ii. delete from JOB where jno=J0500(应返回信息:成功删除一条记录;查看 db3 与 db4,子表为空)iii. select * from JOB(应返回一条记录:(J0499, Instrumentation, 80000, Montreal))iv. delete from JOB where budget=E0990iii.涉及单个表的垂直划分的一个片断select
11、jno, jname from JOB where jnoE0100(要点:根据查询条件选择合适的 EMP 的分片;选择操作下移减少连接数据集的大小;适当进行并行操作)ii. 根据划分条件优化select * from EMP, ASG where EMP.eno = ASG.eno(要点:根据查询条件选择合适的 EMP 与 ASG 的分片进行连接;适当进行并行操作)iii. 查询条件到划分条件的传递及优化select * from ASG, JOB where ASG.jno = JOB.jno and ASG.jno1000(要点:根据查询条件选择合适的 JOB 分片;选择操作下移减少连接数据集的大小;适当进行并行操作;优化结果不唯一)v. 四表的复杂连接select * from EMP, JOB, SAL, ASG where EMP.title = SAL.title and EMP.eno = ASG.eno and JOB.jno = ASG.jno and EMP.enoE0010(要点:选择操作下移减少连接数据集的大小;适当进行并行操作;优化结果不唯一)