试题与答案

阅读以下关于软件系统数据建模的说明。 [说明] 某软件公司成立项目组为某高校开发

题型:问答题

题目:

阅读以下关于软件系统数据建模的说明。

[说明]


某软件公司成立项目组为某高校开发一套教职工信息管理系统。与教职工信息相关的数据需求和处理需求如下:
(1)数据需求:在教职工信息中能够存储学校所有在职的教工和职工信息,包括姓名、所属部门、出生年月、工资编号、工资额和缴税信息;部门信息中包括部门编号、部门名称、部门人数和办公地点信息。
(2)处理需求:能够根据编制内或外聘教职工的工资编号分别查询其相关信息;每个月的月底统一核发工资,要求系统能够以最快速度查询出教工或者职工所在部门名称、实发工资金额;由于学校人员相对稳定,所以数据变化及维护工作量很少。
项目组王工和李工针对上述应用需求分别给出了所设计的数据模型(如图2-1和图2-2所示)。王工遵循数据库设计过程,按照第三范式对数据进行优化和调整,所设计的数据模型简单且基本没有数据冗余;而李工设计的数据模型中存在大量数据冗余。
项目组经过分析和讨论,特别是针对数据处理中对数据访问效率的需求,最终选择了李工给出的数据模型设计方案。

请分析李工是如何应用反规范化技术来满足教职工信息管理需求的。

答案:

参考答案:在教职工信息管理系统的需求中,(1)能够根据编制内或外聘教职工的工资编号分别查询其相关信息;(2)数据查询要求有很高的处理效率。
李工所设计的数据模型中采用了三种反规范化技术:
(1)增加冗余列:增加“部门名称”列,消除了数据查询中“教职工信息”表和“部门信息”表之间的连接;
(2)增加派生列:增加“实发工资”列,消除了实发工资的计算过程;
(3)表水平分割:将教职工信息表分割为“编制内教职工信息”表和“外聘教职工信息”表,减少了数据查询的范围。

解析: 教职工信息管理系统要求“能够根据编制内或外聘教职工的工资编号分别查询其相关信息”和“数据查询要求有很高的处理效率”,对比王工和李工所设计的数据模型可以发现,在后者所设计的数据模型中:增加“部门名称”列;增加“实发工资”列;将教职工信息表分割为“编制内教职工信息”表和“外聘教职工信息”表。通过分析,李工设计的数据模型分别使用了反规范化的增加冗余列、增加派生列和表水平分割三种技术。

试题推荐
微信公众账号搜索答案