第四章 分布透明性Word文件下载.docx
- 文档编号:16786299
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:13
- 大小:35.18KB
第四章 分布透明性Word文件下载.docx
《第四章 分布透明性Word文件下载.docx》由会员分享,可在线阅读,更多相关《第四章 分布透明性Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
把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<
=20(DEPT)
DEPT3=SLDEPTNUM>
20(DEPT)
SUPPLIER1=SLCITY=’SF’(SUPPLIER)
SUPPLIER2=SLCITY=’LA’(SUPPLIER)
SUPPLY1=SUPPLYSJSNUM=SNUMSUPPLIER1
SUPPLY2=SUPPLYSJSNUM=SNUMSUPPLIER2
也可写成:
SUPPLY1=SUPPLYNSJSUPPLIER1
SUPPLY2=SUPPLYNSJSUPPLIER2
例子:
Q1:
任意给一个供应商号,求供应商名。
(1)系统具有分段透明性
Read(terminal,$SNUM);
selectNAMEinto$NAME
fromSUPPLIER
whereSNUM=$SNUM;
Write(terminal,$NAME);
站点1
DDBMS站点2
站点3
(a)分段透明性(级别1)
查询Q1:
(2)系统具有位置透明性:
Read(terminal,$SNUM);
fromSUPPLIER1
ifnot#FOUNDthen
fromSUPPLIER2
Write(terminal,$NAME);
或站点3
(b)位置透明性(级别2)
(3)系统具有本地映射透明性:
(加站点)
fromSUPPLIER1ATSITE1
fromSUPPLIER2ATSITE3
(c)本地映射透明性(级别3)
图4.1分布透明性不同级别下的只读应用SUPINQUIRY
(4)无透明性
(2)较复杂的读应用(多表读)
查询Q2:
任意给一个零件号,求供应商名。
设分配模式为:
SUPPLIER1为站点1SUPPLY1为站点3
SUPPLIER2为站点2SUPPLY2为站点4
(1)系统具有分段透明性
Read(terminal,$PNUM);
fromSUPPLIER,SUPPLY
whereSUPPLIER.SNUM=SUPPLY.SNUM
andSUPPLY.PNUM=$PNUM;
Write(terminal,$NAME);
(a)分段透明性(级别1)
设分配模式为:
(2)系统具有位置透明性
Read(terminal,$PNUM);
fromSUPPLIER1,SUPPLY1
whereSUPPLIER1.SNUM=SUPPLY1.SNUM;
andSUPPLY1.PNUM=$PNUM;
selectNAMEinto$NAME
fromSUPPLIER2,SUPPLY2
whereSUPPLIER2.SNUM=SUPPLY2.SNUM;
andSUPPLY2.PNUM=$PNUM;
(b)位置透明性(级别2)
思考:
SUPPLIER与SUPPLY都有更多的段?
SUPPLIER1与SUPPLY2或
SUPPLIER1与SUPPLY2的结合不为空呢?
并设分配模式为:
(3)系统具有本地映射透明性
selectSNUMinto$SNUM
fromSUPPLY1atsite3
wherePNUM=$PNUM;
if#FOUNDthen
begin
send$SNUMfromsite3tosite1;
fromSUPPLIER1atsite1(程序员很聪明)
whereSNUM=$SNUM
end
else
begin
selectSNUMinto$SNUM
fromSUPPLIER2atsite4
wherePNUM=$PNUM;
send$SNUMfromsite4tosite2;
fromSUPPLIER2atsite2
end
(d)本地映射透明性(级别3)
图4.2分布透明性不同级别下的只读应用SUPOFPART
4.4更新应用的分布透明性
设有全局数据模型:
S(学号,姓名,年令,性别,系号,奖学金,民族)
SC(学号,课号,成绩)D(系号,系名,系主任)
分段与分配模式为:
S1=SL系号=’2’S站点1
S2=SL系号=’5’S站点2
S3=SL系号’2’AND系号’5’S站点3
SC1=SCNSJS1站点1
SC2=SCNSJS2站点2
SC3=SCNSJS3站点3
模式C与D不分段,且重复地存放在2个站点上。
请分别在分段透明、位置透明、本地映射透明下完成:
(1)把100号学生的奖学金增加50元。
(2)把6号与2号系学生的奖学金都加50元。
(3)学号为100的学生由2号系调入5号系的程序。
的程序。
分段透明:
UPDATES
SET奖学金=奖学金+50
WHERE学号=’100’;
位置透明:
SELECT*FROMS1WHERE学号=’100’;
IF#FOUNDTHEN
UPDATES1
ELSE
BEGIN
SELECT*FROMS2WHERE学号=’100’;
UPDATES2
ELSE
UPDATES3
END;
本地映射透明:
SELECT*FROMS1ATSITE1WHERE学号=’100’;
IF#FOUNDTHEN
UPDATES1ATSITE1
SELECT*FROMS2ATSITE2WHERE学号=’100’;
UPDATES2ATSITE2
WHERE学号=‘100‘;
ELSE
UPDATES3ATSITE3
WHERE系号=‘2‘OR系号=‘6‘;
SET奖学金=奖学金+50;
WHERE系号=‘6‘;
SET系号=’5’
SELECT姓名,年令,性别,奖学金,班长学号,民族INTO
$姓名,$年令,$性别,$奖学金,$民族
FROMS1
SELECT学号,课号,成绩INTO$SC(学号,课号,成绩)
FROMSC1
DELETESC1WHERE学号=’100’;
(先删SC1,因为学号在该表中为外键)
DELETES1WHERE学号=’100’;
(再删S1)
INSERTINTOS2(‘100‘,$姓名,$年令,$性别,
$奖学金,$民族)
INSERTINTOSC2ASSELECT*FROM$SC
FROMS1ATSITE1
FROMSC1ATSITE1
DELETESC1ATSITE1WHERE学号=’100’;
DELETES1ATSITE1WHERE学号=’100’;
INSERTINTOS2ATSITE2(‘100‘,$姓名,$年令,$性别,$奖学金,$民族)
INSERTINTOSC2ATSITE2ASSELECT*FROM$SC
设EMP有如下分段:
EMP1=PJEMPNUM,NAME,SAL,TAXSLDEPTNUM<
=10(EMP)
EMP2=PJEMPNUM,MGRNUM,DEPTNUMSLDEPTNUM<
EMP3=PJEMPNUM,NAME,DEPTNUMSLDEPTNUM>
10(EMP)
EMP4=PJEMPNUM,SAL,TAXMGRNUMSLDEPTNUM>
10(EMP)
Q3100号雇员从3号部门调至15号部门。
(注意:
部门变了部门经理号也得变)
SELECTMGRNUMINTO$MGRNUM
FROMDEPT
WHEREDEPTNUM=15;
UPDATEEMP
SETDEPTNUM=15,MGRNUM=$MGRNUM
WHEREEMPNUM=100;
(a)分段透明性(级别1)
SELECTNAME,SAL,TAXINTO$NAME,$SAL,$TAX
FROMEMP1
WHEREEMPNUM=100;
SELECTMGRNUMINTO$MGRNUM
FROMDEPT2
WHEREDEPTNUM=15;
DELETEEMP1WHEREEMPNUM=100;
DELETEEMP2WHEREEMPNUM=100;
INSERTINTOEMP3(EMPNUM,SAL,TAX,DEPTNUM);
(100,$NAME,15);
INSERTINTOEMP4(EMPNUM,SAL,TAX,MGRNUM);
(100,$SAL,$TAX,$MGRNUM);
FROMEMP1ATSITE1
FROMDEPT2ATSITE2
WHEREEMPNUM=15‘;
DELETEEMP1ATSITE1WHEREEMPNUM=100;
DELETEEMP1ATSITE5WHEREEMPNUM=100;
DELETEEMP2ATSITE2WHEREEMPNUM=100;
DELETEEMP2ATSITE6WHEREEMPNUM=100;
INSERTINTOEMP3(EMPNUM,NAME,DEPTNUM);
ATSITE3:
(100,$NAME,15);
INSERTINTOEMP3(EMPNUM,NAME,MGRNUM);
ATSITE7:
(100,$NAME,15);
ATSITE4:
(100,$SAL,$TAX,$MGRNUM);
ATSITE8:
(C)本地映射透明性(级别3)
图4.2不同级别分布透明性下的更新应用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 分布透明性 第四 分布 透明性