1、 1第四章 分布透明性的级别 所谓分布透明性级别就是应用程序与数据分布相关程度的一种度量,很类似于集中式数据库中的数据独立性,数据分布透明性分为四个级别。首先通过例子考虑什么是分段及分段种类。4.1 数据分段及分段种类设有如下关系数据模型:S (学号 ,姓名,年令 ,性别,系号,奖学金, 班长学号,民族)D(系号,系名,系主任)C(课号,课名,学时,任课教师)SC(学号, 课号,成绩) (1) 水平分段-通过选择运算实现(2) 例:把表 S 分为 2 个段,男、女各一段选择的条件称为限定语,用 q 表示S1=SL 性别=男 SS2=SL 性别= 女 S(2) 垂直分段-通过投影运算实现例:根据
2、学习与生活的不同用途把 S 按属性分为 2 个段。S3=PJ 学号,姓名,系名,班长学号 SS4=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 学号,
3、性别,奖学金,民族 SL 性别=女 S 4.2 分段原则与分段透明性级别分段原则:(1)数据完整性(不丢数据) ,任一数据必属某段。(2)可重构性水平分段、或导出水平分段用合并运算重构,垂直分段用结合运算重构混合分段用合并和结合运算重构2(3)不相交性水平分段、或导出水平分段均为划分,即任意一个元组只属某一个段分段透明性级别:(1) 分段透明应用程序与段无关(与集中数据库相同)(2) 位置透明应用程序与段有关,但与段所在位置无关(3) 本地映射透明应用程序与段及段所在位置都有关,但与本地的 DBMS 无关(4) 无透明性应用程序与段、段的位置、本地 DBMS 都有关4.3 只读应用的分布透明性
4、(1) 最简单的读应用(单表读)例子:设有全局据库模型:EMP(EMPNUM,NAME,SAL,TAX,MGRNUM,DEPTNUM)DEPT(DEPTNUM, NAME, AREA, MGRNUM)SUPPLIER(SNUM, NAME, CITY)SUPPLY(SNUM, PNUM, DEPTNUM, QUAN)分段模式:EMP1=SLDEPTNUM20PJEMPNUM,NAME,MGRNUM,DEPTNUM(EMP)EMP4=PJEMPNUM,NAME,SAL,TAX(EMP)DEPT1=SLDEPTNUM20(DEPT)SUPPLIER1=SLCITY=SF(SUPPLIER)SUPP
5、LIER2=SLCITY=LA(SUPPLIER)SUPPLY1=SUPPLY SJ SNUM=SNUM SUPPLIER1SUPPLY2=SUPPLY SJ SNUM=SNUM SUPPLIER2也可写成:SUPPLY1=SUPPLY NSJ SUPPLIER1SUPPLY2=SUPPLY NSJ SUPPLIER2例子:Q 1:任意给一个供应商号,求供应商名。(1)系统具有分段透明性Read(terminal,$SNUM);select NAME into $NAMEfrom SUPPLIERwhere SNUM = $SNUM;Write(terminal, $NAME);3站点 1DD
6、BMS 站点 2站点 3 (a) 分段透明性(级别 1)查询 Q1:任意给一个供应商号,求供应商名。(2)系统具有位置透明性:Read(terminal,$SNUM);select NAME into $NAMEfrom SUPPLIER1where SNUM = $SNUM;if not # FOUND thenselect NAME into $NAMEfrom SUPPLIER2where SNUM = $SNUM;Write(terminal, $NAME);站点 1DDBMS 站点 2或 站点 3(b)位置透明性(级别 2)(3)系统具有本地映射透明性:Read(terminal,$
7、SNUM);select NAME into $NAMEfrom SUPPLIER1 AT SITE1where SNUM = $SNUM;if not # FOUND thenselect NAME into $NAMEfrom SUPPLIER2 AT SITE3where SNUM = $SNUM;Write(terminal, $NAME);站点 1DDBNSSUPPLIER1SUPPLIER2SUPPLIER2DDBNSSUPPLIER1SUPPLIER2SUPPLIER2DDBNSSUPPLIER14DDBMS 站点 2站点 3 (b)本地映射透明性(级别 3)图 4.1 分布透明
8、性不同级别下的只读应用 SUPINQUIRY(4)无透明性(2)较复杂的读应用(多表读)查询 Q2:任意给一个零件号,求供应商名。设分配模式为:SUPPLIER1 为站点 1 SUPPLY1 为站点 3SUPPLIER2 为站点 2 SUPPLY2 为站点 4(1)系统具有分段透明性Read(terminal,$PNUM) ;select NAME into $NAMEfrom SUPPLIER,SUPPLYwhere SUPPLIER . SNUM = SUPPLY.SNUMand SUPPLY.PNUM=$PNUM;Write(terminal, $NAME);(a) 分段透明性(级别 1
9、)查询 Q2:任意给一个零件号,求供应商名。设分配模式为:SUPPLIER1 为站点 1 SUPPLY1 为站点 3SUPPLIER2 为站点 2 SUPPLY2 为站点 4(2)系统具有位置透明性Read(terminal,$PNUM);select NAME into $NAMEfrom SUPPLIER1,SUPPLY 1where SUPPLIER1 . SNUM = SUPPLY1.SNUM;and SUPPLY1.PNUM=$PNUM;if not # FOUND thenselect NAME into $NAMEfrom SUPPLIER2,SUPPLY 2where SUPP
10、LIER2 . SNUM = SUPPLY2.SNUM;and SUPPLY2.PNUM=$PNUM;Write(terminal, $NAME);(b) 位置透明性(级别 2)思考:SUPPLIER 与 SUPPLY 都有更多的段?SUPPLIER1 与 SUPPLY2 或SUPPLIER1 与 SUPPLY2 的结合不为空呢?查询 Q2:任意给一个零件号,求供应商名。并设分配模式为:SUPPLIER 1 为站点 1 SUPPLY1 为站点 3SUPPLIER2SUPPLIER25SUPPLIER2 为站点 2 SUPPLY2 为站点 4(3)系统具有本地映射透明性Read(terminal
11、,$PNUM);select SNUM into $SNUMfrom 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 site
12、2;select NAME into $NAMEfrom SUPPLIER2 at site2where SNUM = $SNUMendWrite(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 站点
13、 3SC1 = SC NSJ S1 站点 1SC2 = SC NSJ S2 站点 2SC3 = SC NSJ S3 站点 3模式 C 与 D 不分段,且重复地存放在 2 个站点上。请完成:(1)把 100 号学生的奖学金增加 50 元。(2)把 6 号与 2 号系学生的奖学金都加 50 元。6(3)分别写出在前 3 级透明性下的学号为 100 的学生由 2 号系调入 5 号系的程序。Q3: 100 号雇员从 3 号部门调至 15 号部门。Select MGRNUM into $MGRNUMFrom DEPTWhere DEPTNUM = 15;Update EMPSet DEPTNUM = 1
14、5, MGRNUM=$MGRNUMWhere EMPNUM = 100(a) 分段透明性(级别 1)Select NAME,SAL,TAX into $NAME,$SAL,$TAXFrom EMP1 Where EMPNUM = 100 ;Select MGRNUM into $MGRNUMFrom EMP2Where EMPNUM = 15 ;Insert into EMP3(EMPNUM ,SAL,TAX,DEPTNUM) ;(100,$name , 15 ) ;Insert into EMP4(EMPNUM ,SAL,TAX,MGRNUM) ;(100,$SAL,$TAX ,$MGRNU
15、M) ;Delete EMP1 where EMPNUM = 100;Delete EMP2 where EMPNUM = 100;(b) 位置透明性(级别 2)Select NAME,SAL,TAX into $NAME,$SAL,$TAXFrom EMP1 at site 1Where EMPNUM = 100 ;Select MGRNUM into $MGRNUMFrom EMP2 at site 2Where EMPNUM = 15 ;Insert into EMP3(EMPNUM ,NAME,DEPTNUM) ;At site 3:(100,$name,15 ) ;Insert in
16、to 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 不同级别分布透明性下的更新应用。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。