【问题 1】 (5分) 根据问题描述,补充 4 个联系,完善图 2-1 所示的实体联系图。联系名可用联系 1、联系2、联系3 和联系 4 代替,联系的类型分为 1 : 1、1 : n 和 m: n (或 1 : 1、 1 : *和* :*)。 【问题 2】 (8 分〉 (1)根据实体联系图,将关系模式中的空 (a) ~(d) 补充完整。 (2) 给出"消息"和"阅读公告"关系模式的主键与外键。 【问题 3】 (2 分〉 消息和公告关系中都有"编号"属性,请问它是属于命名冲突吗?用100 字以内文字说明原因。
设有如下两个关系,其中雇员信息表关系EMP的主键是雇员号,部门信息表关系DEPT的主键是部门号。
在雇员信息表EMP中,哪一个属性是外键?
A.雇员号
B.雇员名
C.部门号
D.工资
A.部门号 B.部门名C.商品编号D.销售数A.COUNT(商品编号)>5B.COUNT(商品编号)>=5 C.COUNT(DISTINCT部门号)>=5 D.COUNT(DISTINCT部门号)>5A.SUM(销售数)>2000B.SUM(销售数)>=-2000C.SUM(‘销售数’)>2000D.SUM(‘销售数’)>=2000
某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。职工和部门关系的外键分别是(48)。
职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)
部门(部门号,部门名,负责人代码,任职时间)
查询每个部门中月工资最高的“职工号”的SQL查询语句如下:
Select 职工号 from 职工as E
where 月工资=(Select Max(月工资)from 职工 as M(49))。
A.职工号和部门号
B.部门号和负责人代码
C.职工号和负责人代码
D.部门号和职工号
阅读下列说明,回答问题1至问题5。
【说明】
某工厂的信息管理数据库的部分关系模式如下所示:
职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)
部门(部门号,部门名,负责人代码,任职时间)
关系模式的主要属性、含义及约束如表22-1所示,“职工”和“部门”的关系示例分别如表22-2和表22-3所示。
根据上述说明,由SQL定义的“职工”和“部门”的关系模式,以及统计各部门的人数C、工资总数Totals、平均工资Averages的D_S视图如下所示,请在空缺处填入正确的内容。
Create Table 部门 (部门号 Char(1) (a)
部门名 Char(16),
负责人代码 Char(4),
任职时间 DATE,
(b) (职工号));
Create Table 职工 (职工号 Char(4),
姓名 Char(8),
年龄 NUMDER(3),
月工资 NUMDER(4),
部门号 Char(1),
电话 Char(8),
办公室 Char(8),
(a) (职工号),
(c) (部门号),
CHECK((d) ));
Create View D_S(D,C,Totals,Averages) As
(Select 部门号, (e)
from 职工
(f)
试题二(共15分)
阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。
【说明】
某企业信息系统的部分关系模式及属性说明如下:
(1)员工关系模式:员工(员工编号,姓名,部门,工资,职务,教育水平),其中员工编号是主键,部门是外键,参照部门关系模式的部门编号属性。
(2)部门关系模式:部门(部门编号,部门名称,经理),其中部门编号是主键,经理是外键,参照员工关系模式的员工编号属性。
(3)项目关系模式:项目(项目编号,项目名称,所属部门,负责人),其中项目编号是主键,所属部门和负责人是外键,分别参照部门关系模式和员工关系模式的部门编号和员工编号属性。
(4)员工项目关系模式:员工项目(员工编号,项目编号),其中员工编号和项目编号是主键,同时员工编号和项目编号也是外键,分别参照员工关系模式的员工编号和项目关系模式的项目编号。
【问题1】(2分)
假设定义员工关系模式时,没有定义主键和外键。请用SQL语句补充定义员工关系模式的实体完整性约束和参照完整性约束。
(a) ;
(b) ;
【问题2】(13分)
请将下列SQL查询语句补充完整。
(1)查询平均工资(不包含职务为经理的员工)超过3000的部门的编号,部门名称及其平均工资,并按平均工资从高到低排序。
SELECT部门编号,部门名称,(c) AS平均工资
FROM员工,部门
WHERE (d)
GROUP BY (e)
HAVING (f)
(g);
(2)查询工资大于全体员工平均工资的员工编号,姓名和工资。
SELECT员工编号,姓名,工资
FROM员工
WHERE (h);
(3)查询没有承担任何项目的部门编号和部门名称。
SELECT部门编号,部门名称
FROM部门
WHERE (i) (SELECT.FROM项目WHERE (i) );
(4)查询研发部所有员工的员工编号和教育水平,若教育水平大于20,则输出研究生;若教育水平小于等于20,并大于16,则输出本科生;否则输出其他。
SELECT员工编号,
CASE
WHEN教育水平>20 THEN‘研究生’
(k)
(l)
END
FROM员工,部门
WHERE (m) ;
(5)查询部门名称不以“处”结尾的部门编号和部门名称。
SELECT部门编号,部门名称
FROM部门
WHERE部门名称 (n) ;
A.雇员号
B.雇员名
C.部门号
D.工资
A.员工号和部门号
B.负责人工号和部门号
C.负责人工号和员工号
D.部门号和员工号@@@SXB@@@A.Y.部门号=Dept.部门号
B.EMP.部门号=Dept.部门号
C.Y.员工号=Dept.负责人工号
D.EMP.部门号=Dept.负责人工号@@@SXB@@@A.Z.员工号=Y.员工号
B.Z.员工号=Y.负责人工号
C.Z.部门号=部门号
D.Z.部门号=Y.部门号
工厂的信息管理数据库中有两个关系模式:
职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)
部门(部门号,部门名,负责人代码,任职时间)
查询每个部门中月工资最高的“职工号”的SQL查询语句如下:
SELECT 职工号 FROM 职工 E
WHERE 月工资=(SELECT MAX(月工资)
FROM 职工 AS M
WHERE M.部门号=E.部门号);
①请用30字以内的文字简要说明该查询语句对查询效率的影响。
②对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。