阅读以下某工厂人事信息管理系统数据库的设计说明,根据要求回答问题1~问题4。[说明]某工厂有多个部门,每个部门有多位职工,每位职工属于并且仅属于一个部门,每个部门有一位负责人,每个办公室有一部电话。每位职工的月工资大致是:800≤月工资≤4500元。软件开发公司A为该工厂开发的信息管理数据库的部分关系模式如下所示。职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)部门(部门号,部门名,负责人代码,任职时间)其中“职工”和“部门”的关系示例分别见表5-17和表5-18。请使用“关系模式标记规则”(见本

题目

阅读以下某工厂人事信息管理系统数据库的设计说明,根据要求回答问题1~问题4。

[说明]

某工厂有多个部门,每个部门有多位职工,每位职工属于并且仅属于一个部门,每个部门有一位负责人,每个办公室有一部电话。每位职工的月工资大致是:800≤月工资≤4500元。

软件开发公司A为该工厂开发的信息管理数据库的部分关系模式如下所示。

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

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

其中“职工”和“部门”的关系示例分别见表5-17和表5-18。

请使用“关系模式标记规则”(见本题附录),给出上述各关系模式的主键和外键。


相似考题
参考答案和解析
正确答案:这是一道要求考生根据题目给定的关系模式以及属性间的函数依赖关系和给定的关系实例来确定各关系模式主键和外键的综合分析题。本试题的解答思路如下。 (1)由试题中给出的关键信息“某工厂有多个部门每个部门有多位职工每位职工属于并且仅属于一个部门每个部门有一位负责人……每位职工的月工资大致是:800≤月工资≤4500元”可以整理出如表5-24所示的关系模式主要属性、含义及约束。 (2)设K为R(UF)中的属性的组合若且对于K的任何一个真子集K′都有K′不能决定 U则K为R的候选码(候选关键字)。若有多个候选码则选一个作为主码(主键)。 (3)部门关系模式的主键和外键。由题目中给出的关键信息“某工厂有多个部门……每个部门有一位负责人”并且结合试题所给出的“部门”关系示例(见表5-18)可知仅用“部门号”作为主键可以唯一区分部门关系中的每一个元组。同时考虑到部门负责人应该来自职员所以“负责人代码”应为部门关系模式的外键。最后可得部门关系模式的主键和外键如下: 部门(部门号部门名任职时间) (4)职工关系模式的主键和外键。由题干中给出的关键信息“每位职工属于并且仅属于一个部门”可知仅用“职工号”作为主键可以唯一区分职工关系中的每一个元组。同时考虑到“部门号”是部门关系模式的主键所以它应是职工关系模式的外键。最后可得职工关系模式的主键和外键如下: 职工(职工号姓名年龄月工资电话办公室)。
这是一道要求考生根据题目给定的关系模式,以及属性间的函数依赖关系和给定的关系实例来确定各关系模式主键和外键的综合分析题。本试题的解答思路如下。 (1)由试题中给出的关键信息“某工厂有多个部门,每个部门有多位职工,每位职工属于并且仅属于一个部门,每个部门有一位负责人,……每位职工的月工资大致是:800≤月工资≤4500元”,可以整理出如表5-24所示的关系模式主要属性、含义及约束。 (2)设K为R(U,F)中的属性的组合,若,且对于K的任何一个真子集K′,都有K′不能决定 U,则K为R的候选码(候选关键字)。若有多个候选码,则选一个作为主码(主键)。 (3)部门关系模式的主键和外键。由题目中给出的关键信息“某工厂有多个部门,……每个部门有一位负责人”,并且结合试题所给出的“部门”关系示例(见表5-18)可知,仅用“部门号”作为主键,可以唯一区分部门关系中的每一个元组。同时考虑到部门负责人应该来自职员,所以“负责人代码”应为部门关系模式的外键。最后可得部门关系模式的主键和外键如下: 部门(部门号,部门名,,任职时间) (4)职工关系模式的主键和外键。由题干中给出的关键信息“每位职工属于并且仅属于一个部门”可知,仅用“职工号”作为主键,可以唯一区分职工关系中的每一个元组。同时考虑到“部门号”是部门关系模式的主键,所以它应是职工关系模式的外键。最后可得职工关系模式的主键和外键如下: 职工(职工号,姓名,年龄,月工资,,电话,办公室)。
更多“ 阅读以下某工厂人事信息管理系统数据库的设计说明,根据要求回答问题1~问题4。[说明]某工厂有多个部门,每个部门有多位职工,每位职工属于并且仅属于一个部门,每个部门有一位负责人,每个办公室有一部电话。每位职工的月工”相关问题
  • 第1题:

    某企业职工和部门的关系模式如下所示,其中部门负责人也是一个职工。职工和部门的关系模式的外键分别是(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月工资;”意为该职工的月工资等于最高工资。

  • 第2题:

    阅读以下说明和表,回答问题1至问题4。

    【说明】

    某公司信息管理系统的需求分析和部分关系模式的结果描述如下。

    (1)公司有多个部门,每个部门有一名负责人、一间办公室、一部电话、多名职员,每个职员最多属于一个部门,负责人也是公司的一名职员。

    (2)公司职员的工资大于等于1000元且最大等于8000元。

    (3)数据库的部分关系模式设计如下:

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

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

    (4)“职员”和“部门”的关系示例分别如表2-3和表2-4所示。

    根据上述说明,请给出:

    (1)“职员”关系模式的主键和外键。

    (2)“部门”关系模式的主键和外键。


    正确答案:(1) 主键:职员号外键:部门号。 (2) 主键:部门号或部门名;外键:负责人代码。
    (1) 主键:职员号,外键:部门号。 (2) 主键:部门号或部门名;外键:负责人代码。

  • 第3题:

    公司中有多个部门和多名职工,每个职工只能属于一个部门,一个部门可以有多名职工,部门与职工的联系类型是()

    A.m:n

    B.1:m

    C.m:1

    D.1:1


    1:m联系

  • 第4题:

    阅读下列说明,回答问题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)


    正确答案:a. Primary Key b. Constraint FK_DEPT Foreign Key(负责人代码) References 职工或Foreign Key(负责人代码)References 职工 c. Constraint FK_PERDEPT Foreign Key(部门号)References 部门或Foreign Key(部门号)References 部门 d.月工资Between 500 And 5000或月工资>=500 And 月工资=5000 e.Count(*)Sum(月工资)
    a. Primary Key b. Constraint FK_DEPT Foreign Key(负责人代码) References 职工或Foreign Key(负责人代码)References 职工 c. Constraint FK_PERDEPT Foreign Key(部门号)References 部门或Foreign Key(部门号)References 部门 d.月工资Between 500 And 5000或月工资>=500 And 月工资=5000 e.Count(*),Sum(月工资) 解析:SQL语言包括数据定义、数据查询和数据操纵,其中数据定义有表、视图和索引的定义。
    数据库完整性包括实体完整性、参照完整性和用户自定义完整性约束。用户自定义完整性写在列级完整性约束条件中。定义实体完整性通常采用“Not Null”,“Unique”,“Constraint主键约束名Primary Key(属性组)”等。其中:
    .“Not Null”表示该列的属性不能为空,定义时紧跟数据类型的后面;
    .“Unique”表示该列的属性是唯一标识的(即不能取重复值),定义时可以紧跟数据类型的后面,也可以放在最后面,这时的格式是:Unique(列名,[列名]...);
    .“Constraint主键约束名Primary Key(属性组)”表示该属性组是表的主键,能唯一标识记录。
    定义参照完整性通常采用:
    Constraint参照约束名Foreign Key参照表(属性组)References被参照表(属性组)定义用户自定义完整性通常采用:
    Constraint自定义约束名Check(条件)
    例如:某表R1(a1,a2,a3),其中a1,a2,a3都是int型。现约束要求a1+a2100,则用户自定义完整性定义是:
    Constraint C1 Check(a1+a2100)
    其中“Constraint约束名”可以省略。
    关于定义视图的一般格式如下:
    Create View视图名>[(列名>[,列名>]...)]
    Aa子查询>
    [with Check Option]
    注意:
    (1)其中的查询可以是任意复杂的Select语句,但通常不允许含有Order by子句和Distinct短语。
    (2)With Check Option表示对视图进行Update,Insert和Delete操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。
    对视图的查询、更新操作,它的执行过程是首先把这个SQL语句与定义这个视图的SQL语句合并起来,转换成一个新的SQL语句,然后才真正的执行。
    SQL语言还提供了一些常用的统计函数,如:Count用来统计元组个数,Sum用来计算一列值的总和,Avg用来计算一列值的平均值,Max用来求一列值中的最大值, Min用来求一列值中的最小值,等等。
    SQL语言的查询优化在数据库系统中有着非常重要的地位,同时也是考试的一个难点,能反映出考生能否比较熟练地掌握SQL语言,做这种类型的题目有一些技巧。一般来说,如果查询中采用了查询嵌套,特别是自我连接的那种类型,优化的原则是尽量采用不嵌套的的SQL语句来实现相同的功能;当有选择运算时,应尽可能让它先做:在执行连接前注意对关系做适当的预处理,比如在联接的属性上建立索引和对关系排序,然后再执行联接。
    [问题1]
    从试题描述可以看出,在“部门”关系中,“部门号”是唯一标识记录的,是该关系的主键,可采用(部门号Char(1)Primary Key)来定义。在“职工”关系中,“职工号”是唯一标识记录的,因此它是主键,可以定义为:UNIQUE(职工号)或Constraint PF PER Primary Key(职工号)。
    显然,“负责人代码”是“部门”关系的外键,通过“负责人代码”等于“职工号”来关联“职工”关系的,定义为:Constraint FK_DEPT Foreign Key(负责人代码)References职工(职工号)。同时“部门号”是“职工”关系的外键,定义为:Constraint FK_PERDEPT Foreign Key(部门号)References部门(部门号)。
    由于表22-1中告诉我们在“职工”关系中的月工资有个约束:500元≤月工资≤ 5000元。它属于用户自定义完整性约束,可以定义为:Check(月工资Between 500 And 5000)。
    通过对题目分析,建立该视图,要采用到集函数和记录分组语句,采用Count来计算部门的人数,用Sum来计算工资总数,用Avg来计算平均工资。然后用“Group by部门号”来对不同部门进行分组。创建D_S视图的SQL语句如下:
    Create View D_S(D,C.Totals,Averages) AS (Select 部门号,Count (*),sum (月工资),Avg(月工资)From 职工Group by部门号)

  • 第5题:

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

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

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

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

    SELECT职工号FROM职工 AS E

    WHERE月工资=(SELECT MAX(月工资)FROM职工AS M (2))。

    A.职工号和部门号

    B.部门号和负责人代码

    C.职工号和负责人代码

    D.部门号和职工号


    正确答案:B