试题二(15分)
阅读以下说明和表,回答问题1至问题4,将解答填入答题纸的对应栏内。
[说明]
某公司信息管理系统的需求分析和部分关系模式的结果描述如下:
1. 公司有多个部门,每个部门有一名负责人、一间办公室、一部电话、多名职员,每个职员最多数一个部门,负责人也是公司一名职员。
2. 公司职员的工资大于等于1000元且最小等于8000。
3. 数据库的部分关系模式设计如下:
职员(职员号,职工姓名,月工资。部门号、办公室,电话)
部门(部门号,部门名,负责人代码,任职时间)
4."职员"和"部门"的关系示例分别如表2-1和表2-2所示
[表2-1]
"职员"关系
职员号 | 职员姓名 | 月工资 | 部门号 | 办公室 | 电话 |
60801 | 汪俊华 | 1000 | 1 | A座201 | 6883122 |
60802 | 杨晓军 | 3200 | 1 | A座201 | 6883122 |
60803 | 王晓华 | 4300 | 2 | B座202 | 6883123 |
60804 | 邢彦军 | 2800 | 2 | B座202 | 6883123 |
60805 | 吕靖原 | 5300 | 3 | A座301 | 6883124 |
60806 | 芦文峰 | 3200 | 3 | A座301 | 6883124 |
60807 | 牟雪松 | 2800 | 3 | A座301 | 6883124 |
60808 | 高亚南 | 1200 | 4 | B座302 | 6883125 |
60810 | 周黎 | 3200 | 4 | B座302 | 6883125 |
60820 | 姚应磊 | 1200 | 4 | B座302 | 6883125 |
60821 | 程文驰 | 3200 | 5 | B座303 | 6883126 |
60836 | 许俊坤 | 0 | Nu11 | … | … |
[表2-2]
"部门"关系
部门号 | 部门名 | 负责人代码 | 任职时间 |
1 | 财务部 | 60802 | 2001-8-5 |
2 | 市场部 | 60803 | 2002-6-3 |
3 | 研发部 | 60805 | 2002-6-3 |
4 | 生产部1 | 60810 | 2003-8-1 |
5 | 生产部2 | 60821 | 2004-6-3 |
[问题1](4分)
根据上述说明,请给出
(1)"职员"关系模式的主键和外键。
(2)"部门"关系模式的主键和外键。
[问题2](4分)
(1)用SQL定义"职员"关系模式,请在空缺处填入正确的内容。
Create Table职员(职员号CHAR(5)__(a)__ ,
职员姓名 CHAR(8),
月工资 NUMBER(4),
部门号 CHAR(1),
办公室 CHAR(20)
电话 CHAR(8),
__(b)__ (部门号),
CHECK(月工资>=1000 AND月工资<=8000));
(2)针对人数大于等于2的部门创建视图D_View(Dept, D_num,D_Totals,D_Avgpay),其中,Dept为部门号,D num为部门人数,D_Totals为部门人数,D_Avgpay为平均工资,请在空缺处填入正确的内容。
Create View D_View(Dept,D_num,D_Totals,D_AvgPay)As
(Select部门号,__(c)__
from 职员
__(d)__ count(*)>=2 WHERE 部门号IS NOT NULL):
[问题3](3分)
对于表2-1、表2-2所示的"职员"和"部门"关系,请指出下列各行是否可以插入"职员"关系,为什么?
1 | 60811 | 芦 峰 | 800 | 1 | A座201 | 6883122 |
2 | 60802 | 李晓啸 | 3500 | 2 | B座202 | 6883123 |
3 | 60812 | 高亚南 | 2600 |
[问题4](4分)
原来的"职员"关系模式存在什么问题?在不增加新关系模式的前提下,请给出修出改后的"职员"和"关系模式"。