收藏 分销(赏)

分布式数据库 第四章 分布透明.doc

上传人:pc****0 文档编号:6110200 上传时间:2024-11-28 格式:DOC 页数:6 大小:93.50KB 下载积分:10 金币
下载 相关 举报
分布式数据库 第四章 分布透明.doc_第1页
第1页 / 共6页
分布式数据库 第四章 分布透明.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
第四章 分布透明性的级别 所谓分布透明性级别就是应用程序与数据分布相关程度的一种度量,很类似于集中式数据库中的数据独立性,数据分布透明性分为四个级别。 首先通过例子考虑什么是分段及分段种类。 4.1 数据分段及分段种类 设有如下关系数据模型: S (学号,姓名,年令,性别,系号,奖学金, 班长学号,民族) D(系号,系名,系主任) C(课号,课名,学时,任课教师) SC(学号, 课号,成绩) (1) 水平分段---通过选择运算实现 (2) 例:把表S分为2个段,男、女各一段 选择的条件称为限定语,用q表示 S1=SL性别=’男’S S2=SL性别=‘女‘S (2) 垂直分段---通过投影运算实现 例:根据学习与生活的不同用途把S按属性分为2个段。 S3=PJ学号,姓名,系名,班长学号S S4=PJ学号,性别,奖学金,民族S 注意:学号必须重复,用于结合还原 (3) 导出式水平分段---通过半结合运算实现 例:把成绩表SC按男、女分为2个段 SC1=SC NSJ S1 (男) SC2=SC NSJ S2 (女) (4) 混合式分段(含水平和垂直) 例:把S分成4段,男、女及学习与生活信息分开 S11=PJ学号,姓名,系别,班长学号SL性别=‘男‘S S12=PJ学号,姓名,系别,班长学号SL性别=‘女‘S S21=PJ学号,性别,奖学金,民族SL性别=‘男‘S S22=PJ学号,性别,奖学金,民族SL性别=‘女‘S 4.2 分段原则与分段透明性级别 分段原则: (1)数据完整性(不丢数据),任一数据必属某段。 (2)可重构性 水平分段、或导出水平分段用合并运算重构, 垂直分段用结合运算重构 混合分段用合并和结合运算重构 (3)不相交性 水平分段、或导出水平分段均为划分,即任意一个元组只属某一个段 分段透明性级别: (1) 分段透明 应用程序与段无关(与集中数据库相同) (2) 位置透明 应用程序与段有关,但与段所在位置无关 (3) 本地映射透明 应用程序与段及段所在位置都有关,但与 本地的DBMS无关 (4) 无透明性 应用程序与段、段的位置、本地DBMS都有关 4.3 只读应用的分布透明性 (1) 最简单的读应用(单表读) 例子:设有全局据库模型: EMP(EMPNUM,NAME,SAL,TAX,MGRNUM,DEPTNUM)DEPT(DEPTNUM, NAME, AREA, MGRNUM) SUPPLIER(SNUM, NAME, CITY) SUPPLY(SNUM, PNUM, DEPTNUM, QUAN) 分段模式: EMP1=SLDEPTNUM<=10PJEMPNUM,NAME,MGRNUM,DEPTNUM(EMP) EMP2=SL10<DEPTNUM<=20PJEMPNUM,NAME,MGRNUM,DEPTNUM(EMP) EMP3=SLDEPTNUM>20PJEMPNUM,NAME,MGRNUM,DEPTNUM(EMP) EMP4=PJEMPNUM,NAME,SAL,TAX(EMP) DEPT1=SLDEPTNUM<=10(DEPT) DEPT2=SL10<DEPTNUM<=20(DEPT) DEPT3=SLDEPTNUM>20(DEPT) SUPPLIER1=SLCITY=’SF’(SUPPLIER) SUPPLIER2=SLCITY=’LA’(SUPPLIER) SUPPLY1=SUPPLY SJ SNUM=SNUM SUPPLIER1 SUPPLY2=SUPPLY SJ SNUM=SNUM SUPPLIER2 也可写成: SUPPLY1=SUPPLY NSJ SUPPLIER1 SUPPLY2=SUPPLY NSJ SUPPLIER2 例子:Q1:任意给一个供应商号,求供应商名。 (1)系统具有分段透明性 Read(terminal,$SNUM); select NAME into $NAME from SUPPLIER where SNUM = $SNUM; Write(terminal, $NAME); SUPPLIER1 DDBNS 站点1 SUPPLIER2 DDBMS 站点2 SUPPLIER2 站点3 (a) 分段透明性(级别1) 查询Q1:任意给一个供应商号,求供应商名。 (2)系统具有位置透明性: Read(terminal,$SNUM); select NAME into $NAME from SUPPLIER1 where SNUM = $SNUM; if not # FOUND then select NAME into $NAME from SUPPLIER2 where SNUM = $SNUM; Write(terminal, $NAME); SUPPLIER1 DDBNS 站点1 SUPPLIER2 DDBMS 站点2 SUPPLIER2 或 站点3 (b)位置透明性(级别2) (3)系统具有本地映射透明性: Read(terminal,$SNUM); select NAME into $NAME from SUPPLIER1 AT SITE1 where SNUM = $SNUM; if not # FOUND then select NAME into $NAME from SUPPLIER2 AT SITE3 where SNUM = $SNUM; Write(terminal, $NAME); SUPPLIER1 DDBNS 站点1 SUPPLIER2 DDBMS 站点2 SUPPLIER2 站点3 (b)本地映射透明性(级别3) 图4.1 分布透明性不同级别下的只读应用 SUPINQUIRY (4)无透明性 (2)较复杂的读应用(多表读) 查询Q2:任意给一个零件号,求供应商名。 设分配模式为: SUPPLIER1 为站点1 SUPPLY1 为站点3 SUPPLIER2 为站点2 SUPPLY2 为站点4 (1)系统具有分段透明性 Read(terminal,$PNUM); select NAME into $NAME from SUPPLIER,SUPPLY where SUPPLIER . SNUM = SUPPLY.SNUM and SUPPLY.PNUM=$PNUM; Write(terminal, $NAME); (a) 分段透明性(级别1) 查询Q2:任意给一个零件号,求供应商名。 设分配模式为: SUPPLIER1 为站点1 SUPPLY1 为站点3 SUPPLIER2 为站点2 SUPPLY2 为站点4 (2)系统具有位置透明性 Read(terminal,$PNUM); select NAME into $NAME from SUPPLIER1,SUPPLY1 where SUPPLIER1 . SNUM = SUPPLY1.SNUM; and SUPPLY1.PNUM=$PNUM; if not # FOUND then select NAME into $NAME from SUPPLIER2,SUPPLY2 where SUPPLIER2 . SNUM = SUPPLY2.SNUM; and SUPPLY2.PNUM=$PNUM; Write(terminal, $NAME); (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 where SNUM = $SNUM end Write(terminal, $NAME); (b) 本地映射透明性(级别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)分别写出在前3级透明性下的学号为100的学生由2号系调入5号系的程序。 Q3: 100号雇员从3号部门调至15号部门。 Select MGRNUM into $MGRNUM From DEPT Where DEPTNUM = 15; Update EMP Set DEPTNUM = 15, MGRNUM=$MGRNUM Where EMPNUM = 100 (a) 分段透明性(级别1) Select NAME,SAL,TAX into $NAME,$SAL,$TAX From EMP1 Where EMPNUM = 100 ; Select MGRNUM into $MGRNUM From EMP2 Where EMPNUM = ‘15 ‘ ; Insert into EMP3(EMPNUM,SAL,TAX,DEPTNUM); (100,$name,15 ); Insert into EMP4(EMPNUM,SAL,TAX,MGRNUM); (100,$SAL,$TAX ,$MGRNUM); Delete EMP1 where EMPNUM = 100; Delete EMP2 where EMPNUM = 100; (b) 位置透明性(级别2) Select NAME,SAL,TAX into $NAME,$SAL,$TAX From EMP1 at site 1 Where EMPNUM = 100 ; Select MGRNUM into $MGRNUM From EMP2 at site 2 Where EMPNUM = ‘15 ‘ ; Insert into EMP3(EMPNUM,NAME,DEPTNUM); At site 3:(100,$name,15 ); Insert into EMP3(EMPNUM,NAME,MGRNUM); At site 7:(100,$NAME ,15); Insert into EMP4(EMPNUM,SAL,TAX,MGRNUM); At site 4:(100,$SAL,$TAX,$MGRNUM,); Insert into EMP4(EMPNUM,SAL,TAX,MGRNUM); At site 8:(100,$SAL,$TAX,$MGRNUM,); Delete EMP1 at site 1 where EMPNUM =100; Delete EMP1 at site 5 where EMPNUM =100; Delete EMP2 at site 2 where EMPNUM =100; Delete EMP2 at site 6 where EMPNUM =100; (C) 本地映射透明性(级别3) 图4.2 不同级别分布透明性下的更新应用。 6
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 行业资料 > 医学/心理学

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服