第四章 分布透明性

2019-03-03 10:35

第四章 分布透明性的级别

所谓分布透明性级别就是应用程序与数据分布相关程度的一种度量,很类似于集中式数据库中的数据独立性,数据分布透明性分为四个级别。 首先通过例子考虑什么是分段及分段种类。

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=SC NSJ S1 (男) SC2=SC NSJ S2 (女) (4)

混合式分段(含水平和垂直)

例:把S分成4段,男、女及学习与生活信息分开

1

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) 分段模式:

2

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=SL1020(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 站点1

DDBNS DDBMS SUPPLIER2 站点2 站点3 (a) 分段透明性(级别1)

查询Q1:任意给一个供应商号,求供应商名。 (2)系统具有位置透明性:

3

SUPPLIER2 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 站点1

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

SUPPLIER2 SUPPLIER1 站点1

DDBNS DDBMS SUPPLIER2 站点2 站点3 SUPPLIER2 (c) 本地映射透明性(级别3)

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

(4)无透明性

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

5


第四章 分布透明性.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:[参考文档]人事实习周记4篇word版本(13页)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: