第四章 分布透明性(2)

2019-03-03 10:35

(b) 位置透明性(级别2)

思考:

SUPPLIER 与 SUPPLY 都有更多的段? SUPPLIER1 与 SUPPLY2 或

SUPPLIER1 与 SUPPLY2 的结合不为空呢?

查询Q2:任意给一个零件号,求供应商名。并设分配模式为:

SUPPLIER1 为站点1 SUPPLY1 为站点3 SUPPLIER2 为站点2 SUPPLY2 为站点4

(3)系统具有本地映射透明性

Read(terminal,$PNUM); select SNUM into $SNUM from SUPPLY1 at site3

where PNUM = $PNUM; if # FOUND then begin

send $SNUM from site3 to site1; select NAME into $NAME

from SUPPLIER1 at site1 (程序员很聪明) where SNUM = $SNUM

end else begin

select SNUM into $SNUM

from SUPPLIER2 at site4 where PNUM = $PNUM; send $SNUM from site4 to site2; select NAME into $NAME

from SUPPLIER2 at site2

6

where SNUM = $SNUM

end

Write(terminal, $NAME);

(d) 本地映射透明性(级别3)

图4.2 分布透明性不同级别下的只读应用 SUPOFPART

4.4 更新应用的分布透明性

设有全局数据模型:

S(学号,姓名,年令,性别,系号,奖学金,民族) C(课号,课名,学时,任课教师)

SC(学号, 课号,成绩) D(系号,系名,系主任) 分段与分配模式为:

S1=SL系号=’2’S 站点1 S2=SL系号=’5’S 站点2

S3=SL系号?’2’ AND 系号?’5’S 站点3 SC1 = SC NSJ S1 站点1 SC2 = SC NSJ S2 站点2 SC3 = SC NSJ S3 站点3

模式C与D不分段,且重复地存放在2个站点上。 请分别在分段透明、位置透明、本地映射透明下完成: (1)把100号学生的奖学金增加50元。 (2)把6号与2号系学生的奖学金都加50元。 (3)学号为100的学生由2号系调入5号系的程序。

的程序。

分段透明:UPDATE S

SET 奖学金=奖学金+50 WHERE 学号=’100’;

位置透明:SELECT * FROM S1 WHERE 学号=’100’; IF # FOUND THEN

7

UPDATE S1

SET 奖学金=奖学金+50 WHERE 学号=’100’; ELSE BEGIN

SELECT * FROM S2 WHERE 学号=’100’; IF # FOUND THEN

UPDATE S2

SET 奖学金=奖学金+50 WHERE 学号=’100’;

ELSE

UPDATE S3

SET 奖学金=奖学金+50 WHERE 学号=’100’; END;

本地映射透明:

SELECT * FROM S1 AT SITE1 WHERE 学号=’100’; IF # FOUND THEN

UPDATE S1 AT SITE1 SET 奖学金=奖学金+50 WHERE 学号=’100’; ELSE BEGIN

SELECT * FROM S2 AT SITE2 WHERE 学号=’100’; IF # FOUND THEN

UPDATE S2 AT SITE2 SET 奖学金=奖学金+50 WHERE 学号=‘100‘; ELSE

UPDATE S3 AT SITE3

8

SET 奖学金=奖学金+50 WHERE 学号=‘100‘; END;

(2)把6号与2号系学生的奖学金都加50元。

分段透明:UPDATE S

SET 奖学金=奖学金+50

WHERE 系号=‘2‘ OR系号=‘6‘;

位置透明:UPDATE S2

SET 奖学金=奖学金+50; UPDATE S3

SET 奖学金=奖学金+50 WHERE 系号=‘6‘;

本地映射透明:

UPDATE S2 AT SITE2 SET 奖学金=奖学金+50; UPDATE S3 AT SITE3 SET 奖学金=奖学金+50 WHERE 系号=‘6‘;

(3)学号为100的学生由2号系调入5号系的程序。

分段透明:UPDATE S

SET 系号=’5’ WHERE 学号=’100’;

位置透明:

SELECT 姓名,年令,性别,奖学金,班长学号,民族INTO

$姓名,$年令,$性别, $奖学金, $民族 FROM S1

WHERE 学号=’100’;

SELECT 学号, 课号,成绩 INTO $SC(学号, 课号,成绩) FROM SC1

9

WHERE 学号=’100’;

DELETE SC1 WHERE 学号=’100’;(先删SC1,因为学号在该表中为外键) DELETE S1 WHERE 学号=’100’;(再删S1) INSERT INTO S2 (‘100‘,$姓名,$年令,$性别,

$奖学金, $民族)

INSERT INTO SC2 AS SELECT * FROM $SC 本地映射透明:

SELECT 姓名,年令,性别,奖学金,班长学号,民族INTO

$姓名,$年令,$性别, $奖学金, $民族 FROM S1 AT SITE1 WHERE 学号=’100’;

SELECT 学号, 课号,成绩 INTO $SC(学号, 课号,成绩) FROM SC1 AT SITE1 WHERE 学号=’100’;

DELETE SC1 AT SITE1 WHERE 学号=’100’; DELETE S1 AT SITE1 WHERE 学号=’100’;

INSERT INTO S2 AT SITE2(‘100‘,$姓名,$年令,$性别, $奖学金, $民族) INSERT INTO SC2 AT SITE2 AS SELECT * FROM $SC

设EMP有如下分段:

EMP1=PJEMPNUM,NAME,SAL,TAXSLDEPTNUM<=10(EMP) EMP2=PJEMPNUM,MGRNUM,DEPTNUMSLDEPTNUM<=10(EMP) EMP3=PJEMPNUM,NAME,DEPTNUM SLDEPTNUM>10(EMP) EMP4=PJEMPNUM,SAL,TAX MGRNUM SLDEPTNUM>10 (EMP)

Q3 100号雇员从3号部门调至15号部门。 分段透明:(注意:部门变了部门经理号也得变) SELECT MGRNUM INTO $MGRNUM FROM DEPT

WHERE DEPTNUM = 15;

10


第四章 分布透明性(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:[参考文档]人事实习周记4篇word版本(13页)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: