试题六、
阅读以下某工厂信息管理数据库的设计说明,根据要求回答问题。
【说明】
某工厂有多个部门,每个部门有多位职工,每位职工属于并且仅属于一个部门,每个部门有一位负责人,每个办公室有一部电话。每位职工的月工资大致是:800≤月工资≤4 500元。
软件开发公司A为该工厂开发的信息管理数据库的部分关系模式如下所示。
职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)
部门(部门号,部门名,负责人代码,任职时间)
其中“职工”和“部门”的关系示例分别见表3-10和表3-11。
表3-10 “职工”关系示例表
职 工 号 |
姓 名 |
年 龄 |
月 工 资 |
部 门 号 |
电 话 |
办 公 室 |
1001 |
郑俊华 |
26 |
1000 |
1 |
8001234 |
主楼201 |
1002 |
王平 |
27 |
1100 |
1 |
8001234 |
主楼201 |
2001 |
王晓华 |
38 |
1300 |
2 |
8001235 |
1号楼302 |
2002 |
李力 |
24 |
800 |
2 |
8001236 |
1号楼303 |
3001 |
黎运军 |
42 |
1300 |
3 |
8001237 |
主楼202 |
4001 |
李源 |
24 |
800 |
3 |
8001245 |
2号楼102 |
4002 |
李兴民 |
36 |
1200 |
4 |
8001246 |
2号楼103 |
5001 |
赵欣 |
25 |
0 |
Null |
… |
… |
… |
… |
… |
… |
… |
… |
… |
表3-11 “部门”关系示例表
部 门 号 |
部 门 名 |
负责人代码 |
任 职 时 间 |
1 |
人事处 |
1002 |
|
2 |
机关 |
2001 |
|
3 |
销售科 |
|
|
4 |
生产科 |
4002 |
|
5 |
车间 |
|
|
问题:
1、请使用“关系模式标记规则”(见本题附录),给出上述各关系模式的主键和外键。
2、对于表3-10和表3-11所示的“职工”和“部门”关系,请指出表3-12中第①、②和③行是否允许插入?请分别用100字以内的文字简要说明理由。
表3-12 新增“职工”关系示例表
行 号 |
职 工 号 |
姓 名 |
年 龄 |
月 工 资 |
部 门 号 |
电 话 |
办 公 室 |
① |
1001 |
王新军 |
28 |
1000 |
1 |
8001234 |
主楼201 |
② |
2003 |
李力 |
28 |
1000 |
|
|
|
③ |
5802 |
赵晓啸 |
36 |
1500 |
6 |
8001568 |
3号楼503 |
3、查询每个部门中月工资最高的“职工号”的SQL查询语句如下。
Select 职工号 from 职工E
where 月工资=(Select Max(月工资)
from职工as M
where M.部门号=E.部门号)
(1)请用30字以内文字简要说明该查询语句对查询效率的影响。
(2)对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。
4、假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的Select查询语句可能不会促使查询优化器使用索引,从而降低查询效率,请写出既可以完成相同功能又可以提高查询效率的SQL语句。
Select 姓名,年龄,月工资 from 职工
where 年龄>45 or 月工资<1000;
5、该数据库系统在设计时,采用了异构数据库技术。请给出目前3种通用的异构数据库查询技术。
关系模式的标记规则如下.
关系名(属性名1,属性名2,…,属性名n)
其中:①若该属性仅为主键属性时,则该属性名下画实下画线;
②若该属性仅为外键属性时,则该属性名下画虚下画线;
③若该属性既是主键属性,又是外键属性时,则在该属性名下画实下画线和虚下画线;
④若该属性既不是主键属性,又不是外键属性时,则在该属性名下不做标记。