好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

6页
  • 卖家[上传人]:m****
  • 文档编号:549355103
  • 上传时间:2024-01-04
  • 文档格式:DOC
  • 文档大小:93.51KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第四章 分布透明性的级别 所谓分布透明性级别就是应用程序与数据分布相关程度的一种度量,很类似于集中式数据库中的数据独立性,数据分布透明性分为四个级别首先通过例子考虑什么是分段及分段种类4.1 数据分段及分段种类设有如下关系数据模型:S (学号,姓名,年令,性别,系号,奖学金, 班长学号,民族)D(系号,系名,系主任)C(课号,课名,学时,任课教师)SC(学号, 课号,成绩) (1) 水平分段---通过选择运算实现(2) 例:把表S分为2个段,男、女各一段选择的条件称为限定语,用q表示S1=SL性别=’男’SS2=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性别=‘男‘SS12=PJ学号,姓名,系别,班长学号SL性别=‘女‘SS21=PJ学号,性别,奖学金,民族SL性别=‘男‘SS22=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=SL1020PJEMPNUM,NAME,MGRNUM,DEPTNUM(EMP)EMP4=PJEMPNUM,NAME,SAL,TAX(EMP)DEPT1=SLDEPTNUM<=10(DEPT)DEPT2=SL1020(DEPT)SUPPLIER1=SLCITY=’SF’(SUPPLIER)SUPPLIER2=SLCITY=’LA’(SUPPLIER)SUPPLY1=SUPPLY SJ SNUM=SNUM SUPPLIER1SUPPLY2=SUPPLY SJ SNUM=SNUM SUPPLIER2也可写成:SUPPLY1=SUPPLY NSJ SUPPLIER1SUPPLY2=SUPPLY NSJ SUPPLIER2例子:Q1:任意给一个供应商号,求供应商名。

      (1)系统具有分段透明性 Read(terminal,$SNUM); select NAME into $NAME from SUPPLIER where SNUM = $SNUM; Write(terminal, $NAME);SUPPLIER1 DDBNS 站点1SUPPLIER2 DDBMS 站点2SUPPLIER2 站点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 站点1SUPPLIER2 DDBMS 站点2SUPPLIER2 或 站点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 站点1SUPPLIER2 DDBMS 站点2SUPPLIER2 站点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,SUPPLYwhere SUPPLIER . SNUM = SUPPLY.SNUM and SUPPLY.PNUM=$PNUM; Write(terminal, $NAME);(a) 分段透明性(级别1)查询Q2:任意给一个零件号,求供应商名 设分配模式为:SUPPLIER1 为站点1 SUPPLY1 为站点3SUPPLIER2 为站点2 SUPPLY2 为站点4(2)系统具有位置透明性Read(terminal,$PNUM); select NAME into $NAME from SUPPLIER1,SUPPLY1where SUPPLIER1 . SNUM = SUPPLY1.SNUM; and SUPPLY1.PNUM=$PNUM;if not # FOUND thenselect NAME into $NAME from SUPPLIER2,SUPPLY2where 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 site3where PNUM = $PNUM;if # FOUND thenbegin send $SNUM from site3 to site1;select NAME into $NAMEfrom SUPPLIER1 at site1 (程序员很聪明)where SNUM = $SNUMendelse beginselect SNUM into $SNUMfrom SUPPLIER2 at site4where PNUM = $PNUM;send $SNUM from site4 to site2;select NAME into $NAMEfrom SUPPLIER2 at site2where SNUM = $SNUM endWrite(terminal, $NAME);(b) 本地映射透明性(级别3) 图4.2 分布透明性不同级别下的只读应用 SUPOFPART4.4 更新应用的分布透明性设有全局数据模型:S(学号,姓名,年令,性别,系号,奖学金,班长学号,民族)C(课号,课名,学时,任课教师)SC(学号, 课号,成绩) D(系号,系名,系主任)分段与分配模式为:S1=SL系号=’2’S 站点1S2=SL系号=’5’S 站点2S3=SL系号¹’2’ AND 系号¹’5’S 站点3SC1 = SC NSJ S1 站点1SC2 = SC NSJ S2 站点2SC3 = 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 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.