第四章分布透明10年.docx

上传人:b****2 文档编号:2726446 上传时间:2023-05-04 格式:DOCX 页数:12 大小:34.42KB
下载 相关 举报
第四章分布透明10年.docx_第1页
第1页 / 共12页
第四章分布透明10年.docx_第2页
第2页 / 共12页
第四章分布透明10年.docx_第3页
第3页 / 共12页
第四章分布透明10年.docx_第4页
第4页 / 共12页
第四章分布透明10年.docx_第5页
第5页 / 共12页
第四章分布透明10年.docx_第6页
第6页 / 共12页
第四章分布透明10年.docx_第7页
第7页 / 共12页
第四章分布透明10年.docx_第8页
第8页 / 共12页
第四章分布透明10年.docx_第9页
第9页 / 共12页
第四章分布透明10年.docx_第10页
第10页 / 共12页
第四章分布透明10年.docx_第11页
第11页 / 共12页
第四章分布透明10年.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第四章分布透明10年.docx

《第四章分布透明10年.docx》由会员分享,可在线阅读,更多相关《第四章分布透明10年.docx(12页珍藏版)》请在冰点文库上搜索。

第四章分布透明10年.docx

第四章分布透明10年

第四章分布透明性的级别

所谓分布透明性级别就是应用程序与数据分布相关程度的一种度量,很类似于集中式数据库中的数据独立性,数据分布透明性分为四个级别。

首先通过例子考虑什么是分段及分段种类。

4.1数据分段及分段种类

设有如下关系数据模型:

S(学号,姓名,年令,性别,系号,奖学金,班长学号,民族)

D(系号,系名,系主任)

C(课号,课名,学时,任课教师)

SC(学号,课号,成绩)

(1)水平分段---通过选择运算实现

例:

把表S分为2个段,男、女各一段

选择的条件称为限定语,用q表示

S1=SL性别=’男’S

S2=SL性别=‘女‘S

(2)垂直分段---通过投影运算实现

例:

根据学习与生活的不同用途把S按属性分为2个段。

S3=PJ学号,姓名,系名,班长学号S

S4=PJ学号,性别,奖学金,民族S

注意:

学号必须重复,用于结合还原

(3)导出式水平分段---通过半结合运算实现

例:

把成绩表SC按男、女分为2个段

SC1=SCNSJS1(男)

SC2=SCNSJS2(女)

(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

EMP3=SLDEPTNUM>20PJEMPNUM,NAME,MGRNUM,DEPTNUM(EMP)

EMP4=PJEMPNUM,NAME,SAL,TAX(EMP)

DEPT1=SLDEPTNUM<=10(DEPT)

DEPT2=SL10

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);

selectNAMEinto$NAME

fromSUPPLIER1

whereSNUM=$SNUM;

ifnot#FOUNDthen

selectNAMEinto$NAME

fromSUPPLIER2

whereSNUM=$SNUM;

Write(terminal,$NAME);

站点1

DDBMS站点2

或站点3

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

 

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

Read(terminal,$SNUM);

selectNAMEinto$NAME

fromSUPPLIER1ATSITE1

whereSNUM=$SNUM;

ifnot#FOUNDthen

selectNAMEinto$NAME

fromSUPPLIER2ATSITE3

whereSNUM=$SNUM;

Write(terminal,$NAME);

站点1

DDBMS站点2

站点3

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

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

(4)无透明性

 

(2)较复杂的读应用(多表读)

查询Q2:

任意给一个零件号,求供应商名。

设分配模式为:

SUPPLIER1为站点1SUPPLY1为站点3

SUPPLIER2为站点2SUPPLY2为站点4

(1)系统具有分段透明性

Read(terminal,$PNUM);

selectNAMEinto$NAME

fromSUPPLIER,SUPPLY

whereSUPPLIER.SNUM=SUPPLY.SNUM

andSUPPLY.PNUM=$PNUM;

Write(terminal,$NAME);

(a)分段透明性(级别1)

 

查询Q2:

任意给一个零件号,求供应商名。

设分配模式为:

SUPPLIER1为站点1SUPPLY1为站点3

SUPPLIER2为站点2SUPPLY2为站点4

(2)系统具有位置透明性

Read(terminal,$PNUM);

selectNAMEinto$NAME

fromSUPPLIER1,SUPPLY1

whereSUPPLIER1.SNUM=SUPPLY1.SNUM;

andSUPPLY1.PNUM=$PNUM;

ifnot#FOUNDthen

selectNAMEinto$NAME

fromSUPPLIER2,SUPPLY2

whereSUPPLIER2.SNUM=SUPPLY2.SNUM;

andSUPPLY2.PNUM=$PNUM;

Write(terminal,$NAME);

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

思考:

SUPPLIER与SUPPLY都有更多的段?

SUPPLIER1与SUPPLY2或

SUPPLIER1与SUPPLY2的结合不为空呢?

查询Q2:

任意给一个零件号,求供应商名。

并设分配模式为:

SUPPLIER1为站点1SUPPLY1为站点3

SUPPLIER2为站点2SUPPLY2为站点4

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

Read(terminal,$PNUM);

selectSNUMinto$SNUM

fromSUPPLY1atsite3

wherePNUM=$PNUM;

if#FOUNDthen

begin

send$SNUMfromsite3tosite1;

selectNAMEinto$NAME

fromSUPPLIER1atsite1(程序员很聪明)

whereSNUM=$SNUM

end

elsebegin

selectSNUMinto$SNUM

fromSUPPLIER2atsite4

wherePNUM=$PNUM;

send$SNUMfromsite4tosite2;

selectNAMEinto$NAME

fromSUPPLIER2atsite2

whereSNUM=$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=SCNSJS1站点1

SC2=SCNSJS2站点2

SC3=SCNSJS3站点3

模式C与D不分段,且重复地存放在2个站点上。

请完成:

(1)把100号学生的奖学金增加50元。

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

(2)分别写出在前3级透明性下的学号为100的学生由2号系调入5号系的程序。

 

Q3:

100号雇员从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

FromEMP2

WhereEMPNUM=‘15‘;

InsertintoEMP3(EMPNUM,SAL,TAX,DEPTNUM);

(100,$name,15);

InsertintoEMP4(EMPNUM,SAL,TAX,MGRNUM);

(100,$SAL,$TAX,$MGRNUM);

DeleteEMP1whereEMPNUM=100;

DeleteEMP2whereEMPNUM=100;

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

SelectNAME,SAL,TAXinto$NAME,$SAL,$TAX

FromEMP1atsite1

WhereEMPNUM=100;

SelectMGRNUMinto$MGRNUM

FromEMP2atsite2

WhereEMPNUM=‘15‘;

InsertintoEMP3(EMPNUM,NAME,DEPTNUM);

Atsite3:

(100,$name,15);

InsertintoEMP3(EMPNUM,NAME,MGRNUM);

Atsite7:

(100,$NAME,15);

InsertintoEMP4(EMPNUM,SAL,TAX,MGRNUM);

Atsite4:

(100,$SAL,$TAX,$MGRNUM,);

InsertintoEMP4(EMPNUM,SAL,TAX,MGRNUM);

Atsite8:

(100,$SAL,$TAX,$MGRNUM,);

DeleteEMP1atsite1whereEMPNUM=100;

DeleteEMP1atsite5whereEMPNUM=100;

DeleteEMP2atsite2whereEMPNUM=100;

DeleteEMP2atsite6whereEMPNUM=100;

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

图4.2不同级别分布透明性下的更新应用。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2