高级数据库系统作业答疑
2007.1
第一次作业
• 已知有如下两种段分配:
A> R1在Site1, R2在Site2, R3在Site3.
B> R1和R2在Site1, R2和R3在Site3.
另已知有如下应用(所有应用的频率相同)
A1: 在Site1上发出, 读5个 R1记录, 5个 R2记录
A2: 在Site3上发出, 读5个R3记录 , 5个R2记录
A3: 在Site2上发出, 读10个R2记录.
问: 1. 如果以本地应用为主要设计目标, 那个分配较优?
2. 假定A3改为要修改10个R2记录, 并仍以本地应用为
其设计目标, 则那个分配方案较优?
第一次作业
• 解:首先完善模型如下:
假定:B方案中Site1上的R2和Site3上的R2是完全相同的,
即冗余;本地读写的代价可忽略不计;所有异地读操作的
单位记录代价均相等,记为1;所有异地写操作的单位记
录代价均相等,记为1。
1 A方案 B方案 2 A方案 B方案
A1代价 5
A2代价 5
A3代价 0
故可知,第1个问题,A、B两种分配方案代价相等。
0 5 0
0 5 0
10 0 10+10+10
第2个问题,A分配方案较优。
第二次作业
习题: 假定全局关系和分段模式如下:
全局关系
Doctor (D#, Name, Dept)
Patient (P#, Name, Dept, Treat, D#)
Care (P#, Drug, QTY)
分段模式
Doctor1 = SLDEPT=‘Surgery’(Doctor)
Doctor2 = SLDEPT=‘Pediatrics’(Doctor)
Doctor3 = SLDEPT ‘Surgery’ and DEPT ‘Pediatrics’(Doctor)
Patient1 = SLDEPT=‘Surgery’ and treat=‘intensing’(Patient)
Patient2 = SLDEPT=‘Surgery’ and treat ‘intensing’(Patient)
Patient3 = SLDEPT ‘Surgery’ (Patient)
Care1 = Care SJ p#=p# Patient1
Care2 = Care SJ p#=p# Patient2
Care3 = Care SJ p#=p# Patient3
使用变换准则,将下面的全局查询变化为分段查询,并对它们加以简化。当
需要时
用限定关系代数消除查询中不用的段。
(a) 列出在Care中使用‘Aspirin’的Patient 名字;
(b) 列出给病人开出接受精细护理的医生名字。
第二次作业
(a)
Patient Name
.
Care Drug Aspirin Patient DEPT Surgery Patient Care
'
'
.
.
'
'
第二次作业
(a)
第二次作业
(a)
第二次作业
(b)
Doctor Name
.
'
'
Patient Treat Intensing
.
Doctor
. #
Doctor D Patient D
. #
Patient