设某连锁商店数据库中有关系模式R:
R(商店编号,商品编号,库存数量,部门编号,负责人)
如果规定:每个商店的每种商品只在一个部门销售,每个商店的每个部门只有一个负责人,每个商店的每种商品只有一个库存数量。
问答题
请根据上述规定,写出关系模式R的函数依赖集。
【正确答案】(商店编号,商品编号)- >部门编号,(商店编号,部门编号)- >负责人,(商店编号,商品编号)- >库存量。
【答案解析】函数依赖定义:设R(U)是属性集U上的关系模式,X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,在Y上的属性值不等,则称X函数确定Y或Y函数依赖X,记作X- >Y。函数依赖是指关系R的一切关系均要满足的约束条件。
问答题
请给出关系模式R的候选码。
【正确答案】(商店编号,商品编号)
【答案解析】设K为R< u,F >中的属性或属性组合,若U完全依赖于K,则K为R的候选码。
问答题
请说明关系模式R属于第几范式,并给出理由。
【正确答案】第二范式
【答案解析】关系数据库是要满足一定要求的。满足最低要求的叫第一范式,在第一范式中满足进一步要求的为第二范式,其余以此类推。显然该关系模式满足第一范式,接下来检查其是否满足第二范式。在第二范式中,要求关系模式中不存在部分依赖,每一个非主属性完全依赖于码,而根据第一空可得如下依赖关系:(部门编号,商店编号)- >负责人,所以属于第二范式。它的非主属性(不包含在任何候选码中的属性)有3个:部门编号、负责人和库存量,并皆完全函数依赖于主码。将(商店编号、商品编号)记作X,(商店编号、部门编号)记作Y,负责人记作Z,即X→Y,Y→Z。由此可以看出,存在传递依赖,故不属于第三范式。
问答题
请将R分解成满足3NF的关系模式。
【正确答案】R1(商店编号、商品编号、部门编号、库存量);R2(商店编号、部门编号、负责人)。
【答案解析】第三范式中要求每一个属性既不部分依赖于码也不传递依赖于码。