某销售公司数据库中的关系零件为P(Pno, Pname, Sname, City, Qty),Pno表示零件号,Pname表示零件名称,Sname表示供应商,City表示所在地,Qty表示库存量。其函数依赖集F={Pno→Pname, (Pno,Sname)→Qty,Sname→City}。关系P为 (1NF),存在冗余度大、修改操作不一致、插入异常和删除异常的问题。若将P分解为(P1(Pno, Pname)、P2(Pno,Sname,Qty) 、P3(Sname,City)),则可以解决这一问题。
数据库范式是优化关系模式、解决数据冗余、插入与删除异常等问题的核心方法,需结合函数依赖与候选码展开分析:1NF是关系的最基础要求,规定所有属性不可再分;若关系的候选码为组合键,且存在非主属性仅依赖组合键的某一部分,也就是部分函数依赖,则该关系仅符合1NF,不满足2NF,会引发数据冗余、操作不一致等问题。2NF需在1NF的基础上消除非主属性对候选码的部分依赖,3NF则要在2NF的基础上消除非主属性对候选码的传递依赖。将仅满足1NF的关系拆分至3NF时,需依据函数依赖拆分关系:将单个属性决定非主属性的依赖对独立成关系,将依赖整个组合候选码的属性与组合码构成关系,将存在传递依赖的属性对单独拆分,确保每个子关系仅保留一组独立的函数依赖,最终让每个子关系都不存在部分依赖与传递依赖,彻底解决原有关系的各类异常问题。
本题考察的是数据库范式(Normalization)与函数依赖分析。
若关系的候选码为组合键,且存在非主属性仅依赖组合键的某一部分,也就是部分函数依赖,则该关系仅符合1NF,不满足2NF,会引发数据冗余、操作不一致等问题。2NF需在1NF的基础上消除非主属性对候选码的部分依赖,3NF则要在2NF的基础上消除非主属性对候选码的传递依赖。将仅满足1NF的关系拆分至3NF时,需依据函数依赖拆分关系:将单个属性决定非主属性的依赖对独立成关系,将依赖整个组合候选码的属性与组合码构成关系,将存在传递依赖的属性对单独拆分,确保每个子关系仅保留一组独立的函数依赖,最终让每个子关系都不存在部分依赖与传递依赖,彻底解决原有关系的各类异常问题。
本小问答案是 1NF。题干中的“关系P为1NF存在冗余度大、修改操作不一致、插入异常和删除异常的问题”对应1NF。
因此,选项 A 正确。
