设有如下两个关系模式 职工(职工号,姓名,所在部门编号) 部门

题目

设有如下两个关系模式 职工(职工号,姓名,所在部门编号) 部门(部门编号,部门名称,联系电话,办公地点) 为表达职工与部门之间的关联关系,需定义外码。下列关于这两个关系模式中外码的说法,正确的是()。

  • A、“职工”关系模式中的“所在部门编号”是引用“部门”的外码
  • B、部门关系模式中的“部门编号”是引用“职工”的外码
  • C、不能定义外码,因为两个关系模式中没有同名属性
  • D、将“职工”关系模式中的“所在部门编号”定义为外码,或者将“部门”关系模式中的“部门编号”定义为外码均可
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

( 1 )有如下 2 个关系表

Emp( eid ,ename,age,did,salary) ,其各列含义为:职工号,姓名,年龄,部门号,工资

Dept( did ,dname,mgr_id) ,其各列含义为:部门号,部门名称,部门经理职工号

写出一条 SQL 语句,查询工资大于 10000 ,且与他所在部门的经理年龄相同的职工姓名 。 ( 6 分)


正确答案:

第2题:

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

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

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

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

Select 职工号 from 职工as E

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

A.职工号和部门号

B.部门号和负责人代码

C.职工号和负责人代码

D.部门号和职工号


正确答案:B
解析:本题考查的是关系数据库中关系模式和SQL查询方面的基础知识。
  试题(48)的正确答案是B。因为,作为主键其值能唯一地标识元组的一个或多个属性,主键通常也称为主码。所谓外键是指如果关系模式R中的属性或属性组不是该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外键,通常也称外码。根据题意分析,职工关系中的主键是职工号,部门关系中的主键是部门号。显然,职工关系中的外键是部门号。但是,部门关系中的外键是负责人代码,为什么?因为题中说明部门负责人也是一个职工,这样负责人代码的取值域为职工号,所以根据外键定义部门关系中的外键是负责人代码。
  试题(49)的正确答案是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月工资=”意为该职工的月工资等于最高工资。

第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的全部属性集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语句中指定的操作都已成功执行,并且所有的约束检查也成功完成后,才执行此触发器,即后触发型触发器。

第5题:

下列符合第三范式的关系是()。

A.教师(教师号,教师姓名,课程号,课程名,成绩)

B.教师(教师号,教师姓名,性别,课程号,课程名,成绩)

C.职工(职工号,职工姓名,性别,籍贯,所属部门编号,所属部门名称)

D.职工(职工号,职工姓名,性别,籍贯,所属部门编号)


参考答案D

第6题:

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

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

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

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

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

(5)A. 职工号和部门号 B. 部门号和负责人代码

C. 职工号和负责人代码 D. 部门号和职工号

(6)A. where M.职工号=E.职工号 B. where M.职工号=E.负责人代码

C. where M.部门号=部门号 D. where M.部门号=E.部门号


正确答案:B,D

第7题:

某企业职工和部门的关系模式如下所示,其中部门负责人也是一名职工。 职工(职工号,姓名,年龄,月工资,部门号,电话,办公室) 部门(部门号,部门名,负责人代码,任职时间) 查询每个部门中月工资最高的“职工号”的SQL查询语句如下:

Select 职工号 from 职工 as E

where 月工资=(Select Max(月工资)from 职工as M (54) );

A.where M.部门号=E.部门号

B.where M.职工号=E.职工号

C.where M.职工号=E.负责人代码

D.where M.部门号=E.职工号


正确答案:A
解析:查询每个部门中月工资最高的“职工号”的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月工资=”意为该职工的月工资等于最高工资。因此,(54)空缺处的正确答案是选项A。

第8题:

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

Employees ( Eid , Name , DeptNO )

Departments ( DeptNO , DeptName , TotalNumber )

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

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


正确答案:

第9题:

设有职工关系模式如下: people(pno,pname,sex,job,wage,dp) 其中pno为职工号,pname为职工姓名,sex为性别,job为职业,wage为工资.dp为所在部门编号。 请写出完成以下任务需要的SQL语句: 查询工资大于'赵明华'工资的所有职工信息


答:SELECT *
FROM people
WHERE wage >
(SELECT wage
FROM people
WHERE pname = '赵明华')

第10题:

以下两个关系表:

Emp(eid,ename,age,did,salary),其各列含义为:

职工号,姓名,年龄,部门号,工资

Dept(did,dname,mgr_id),其各列含义为:部门号,部门名称,部门经理职工号

写出一条SQL语句,查询工资大于10000,且与他所在部门的经理年龄相同的职工姓名。


正确答案:select a.*from Emp aDept bEmp c where a. did=b.did and b.mgr_id=c.eid and a.salary>10000 and a.age=c.age
select a.*from Emp a,Dept b,Emp c where a. did=b.did and b.mgr_id=c.eid and a.salary>10000 and a.age=c.age

更多相关问题