设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式统计商店里每个职工的日营业额,以及职工所在的部门和经

题目
问答题
设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式统计商店里每个职工的日营业额,以及职工所在的部门和经理信息。 如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。 试回答下列问题: (1)根据上述规定,写出模式R的基本FD和关键码; (2)说明R不是2NF的理由,并把R分解成2NF模式集; (3)进而分解成3NF模式集。
参考答案和解析
正确答案: R的关键码为(职工编号,日期)。
可见前一个FD是局部依赖,所以R不是2NF模式。
此处,R1和R2都是2NF模式。
(3)R2已是3NF模式。
在R1中,存在两个FD://职工编号→部门名部门名→部门经理
因此,"职工编号→部门经理"是一个传递依赖,R1不是3NF模式。
这样,ρ={R11,R12,R2}是一个3NF模式集。
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

查询每个部门年龄最长者的信息,要求得到的信息包括部门名和最长者的出生日期。 正确的命令是

A.SELECT 部门名,MIN(出生日期)FROM 部门 JOIN 职工;ON 部门.部门号=职工.部门号 GROUP BY 部门名

B.SELECT 部门名,MAX(出生日期)FROM 部门 JOIN 职工;ON 部门.部门号=职工.部门号 GROUP BY 部门名

C.SELECT 部门名,MIN(出生日期)FROM 部门 JOIN 职工;WHERE 部门.部门号=职工.部门号 GROUP BY 部门名

D.SELECT 部门名,MAX(出生日期)FROM 部门 JOIN 职工;WHERE 部门.部门号=职工.部门号 GROUP BY 部门名


正确答案:A

第2题:

已知关系模式R的全部属性集U={A,B,C,D,E,G}及函数依赖集:

F=(AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG}求属性集闭包(BD)+

(2) 现有如下两个关系模式:

Employees(Eid,Name,DeptNO)

Departments(DeptNO,DeptName,TotalNumber)

Employees关系模式描述了职工编号、姓名和所在部门编号;Departments关系模式描述了部门编号、名称和职工总


正确答案:(BD)+=ABCDEG X(O)=BD;由D→EG可知X(1) =BDEG;再由BE→C可知X(2)→BDEGC;又有CG→BDCE→AG可知X(3)=BDEGCA因为X(3)中包含了所有的属性集即有(BD)+=X(3)=ABCDEG T—C(TNO.CNO)主码(TNOCNO)外码TNOCNO S—C(SNOCNO成绩)主码(SNOCNO).外码SNOCNO (2) create trigger sql_tri on employees for
(BD)+=ABCDEG X(O)=BD;由D→EG可知X(1) =BDEG;再由BE→C,可知X(2)→BDEGC;又有CG→BD,CE→AG,可知X(3)=BDEGCA,因为X(3)中包含了所有的属性集,即有(BD)+=X(3)=ABCDEG T—C(TNO.CNO)主码(TNO,CNO),外码TNO,CNO S—C(SNO,CNO,成绩)主码(SNO,CNO).外码SNO,CNO (2) create trigger sql_tri on employees for 解析:本题考查了后触发器的Transact—SQL语句。其语法格式为:
CREATE TRIGGER触发器名称
0N |表名|视图名|
[WITH ENCRYPTION]
AS
SQL语句
AFTER和FOR,指定触发器只有在引发的SQL语句中指定的操作都已成功执行,并且所有的约束检查也成功完成后,才执行此触发器,即后触发型触发器。

第3题:

现有如下两个关系模式:

Employees(Eid,Name,DeptNO)

Departments(DeptNO,DeptName,TotalNumber)

Employees关系模式描述了职工编号、姓名和所在部门编号;Departments关系模式描述了

部门编号、名称和职工总人数。

请按SQL Server所采用的’rransact—SQL语法格式编写实现具有如下功能的后触发型触

发器:每当在Employees表中插入一行数据时,相应部门的职工总人数就加1。


正确答案:Create trigger sql_tri On employees for insert a8 declare eid varchar(11) deekare name varehoxf20) declare deptno varehar(11) decl8re fly CUrsoOrfor seleet* from inserted open yJy fetch next from yJy intoeidnamedeptno whilefeteh_status=0 begin update departments set to'number=totalnumber+1 where deptno=deptno fetch next from yJy intoeidnamedeptno end close yJy deallocate yJy
Create trigger sql_tri On employees for insert a8 declare eid varchar(11) deekare name varehoxf20) declare deptno varehar(11) decl8re fly CUrsoOrfor seleet* from inserted open yJy fetch next from yJy intoeid,name,deptno while,feteh_status=0 begin update departments set to'number=totalnumber+1 where deptno=deptno fetch next from yJy intoeid,name,deptno end close yJy deallocate yJy 解析:此题考查了后触发型触发器的Transact_SQL语句。其语法格式为:
CREATE TRIGGER触发器名称
ON I表名I视图名I
[WITH ENCtlYPTION]
AS
SQL语句
AFTER和FOR,指定触发器只有在引发的SQL语句中指定的操作都已成功执行,并且所有的约束检查也成功完成后.才执行此触发器。即后触发型触发器。

第4题:

设关系模式 R(职工名,项目名,工资,部门名,部门经理) 如果规定,每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理;每个部门只有一个经理。则该关系模式最高属于

A.1NF

B.2NF

C.3NF

D.BCNF


正确答案:A
解析:若关系模式属于1NF,且每一个非主属性完全函数依赖于码,则属于2NF。这个关系中,非主属性“项目名”并不依赖于码,故不属于2NF,仍然属于1NF。

第5题:

查询每个部门年龄最长者的信息,要求得到的信息包括部门名和最长者的出生日期。正确的命令是A)SELECT部门名,MIN(出生日期)FROM部门JOIN职工;ON部门.部门号=职工.部门号GROUP BY部门名B)SELECT部门名,MAX(出生日期)FROM部门JOIN职工;ON部门.部门号=职工.部门号GROUP BY部门名C) SELECT部门名,MIN(出生日期)FROM部门JOIN职工;WHERE部门.部门号=职工.部门号GROUP BY部门名D) SELECT部门名,MAX(出生日期)FROM部门JOIN职工;WHERE部门.部门号=职工.部门号GROUP BY部门名


正确答案:A
使用函数min()对日期型数据进行运算,需理解表达式的含义。表达式min(出生日期)表示年龄最长,因此可以首先排除选项B和选项D选项C的错误在于谁普误的使用了连接子句中的关键字,JOIN表示连接,与之配合使用的关键字应该是ON,用来表示连接的条件,因此选项A为正确答案。

第6题:

设有关系模式

R(职工号,职工姓名,项目号,项目名,工资)

如果规定,每个职工可参加多个项目,各领一份工资;每个项目可又多名职工完成。

关系模式R的主码是______。

A) 职工号

B) 项目号

C) (职工号,项目号)

D) (职工号,项目号,工资)

A.

B.

C.

D.


正确答案:C

第7题:

设有关系模式 R(职工名,项目名,工资,部门名,部门经理) 如果规定,每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理;每个部门只有一个经理,则该关系模式最高属于( )。

A.1NF

B.2NF

C.3NF

D.BCNF


正确答案:A
解析:本题考查关系模式的规范化。若关系模式属于1NF,且每一个非主属性完全函数依赖于码,则属于2NF。这个关系中,非主属性“项目名”并不依赖于码,故不属于2NF,仍然属于1NF,本题选择A。

第8题:

( 2 )现有如下两个关系模式:

Employees ( Eid , Name , DeptNO )

Departments ( DeptNO , DeptName , TotalNumber )

Employees 关系模式描述了职工编号、姓名和所在部门编号; Departments 关系模式描述了部门编号、名称和职工总人数。

请 按 SQL Serve r 所采用 的 Tansact — SQ L 语法格式编写实现具有功能的后触发型触发器 : 每当在Employee s表中插入一行数据时,相应部门的职工总人数就加 1 。( 10 分)


正确答案:

第9题:

某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。职工和部门的关系模式的外键分别是(5)。

职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)

部门(部门号,部门名,负责人代码,任职时间)

查询每个部门中月工资最高的“职工号”的SQL查询语句如下:

Select职工号 from职工as E

where月工资=(Select Max(月工资)from职工as M(6))。

A.职工号和部门号

B.部门号和负责人代码

C.职工号和负责人代码

D.部门号和职工号


正确答案:B
解析:本题考查的是关系数据库中关系模式和SQL查询方面的基础知识。
  试题(5)的正确答案是B。因为,作为主键其值能唯一地标识元组的一个或多个属性,主键通常也称为主码。所谓外键是指如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外键,通常也称外码。根据题意分析,职工关系中的主键是职工号,部门关系中的主键是部门号。显然,职工关系中的外键是部门号。但是,部门关系中的外键是负责人代码,为什么?因为题中说明部门负责人也是一个职工,这样负责人代码的取值域为职工号,所以根据外键定义部门关系中的外键是负责人代码。
  试题(6)的正确答案是D。正确的查询每个部门中月工资最高的“职工号”的SQL查询语句如下:
  Select职工号 from职工as E
  where月工资=(Select Max(月工资)from职工as M where M.部门号=E.部门号);
  此题子查询“Select Max(月工资)from职工as M where M.部门号=E.部门号”意为找出M.部门号最高月工资,主查询“Select职工号from职工as E where月工资;”意为该职工的月工资等于最高工资。

第10题:

设有关系模式 R(职工名,项目名,工资,部门名,部门经理) 如果规定,每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管 理;每个部门只有一个经理。则该关系模式最高属于

A.1NF

B.2NF

C.3NF

D.BCNF


正确答案:A
解析:由题目所给的条件可推知(职工名,项目名)为候选码,因为每个项目只属于一个管理部门,项目名→部门名,存在部分函数依赖,所以最高属于1NF。

更多相关问题