20241016软考架构-------软考案例2答案

案例2

2.【2017年真题】 难度:一般

阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。(共25分)

【说明】

某制造企业为拓展网上销售业务,委托某软件企业开发一套电子商务网站。初期仅解决基本的网上销售、订单等功能需求。该软件企业很快决定基于.NET平台和SQLServer数据库进行开发,但在数据库访问方式上出现了争议。王工认为应该采用程序在线访问的方式访问数据库:而李工认为本企业内部程序员缺乏数据库开发经验,而且应用筒单,应该采用ORM<对象关系映射>方式。最终经过综合考虑,该软件企业采用了李工的建议。

随着业务的发展,该电子商务网站逐渐发展成一个通用的电子商务平台,销售多家制造企业的产品,电子商务平台的功能也日益复杂。目前急需对该电子商务网站进行改造,以支持对多种异构数据库平台的数据访问,同时满足复杂的数据管理需求。该软件企业针对上述需求,对电子商务网站的架构进行了重新设计,新增加了数据访问层,同时采用工厂设计模式解决异构数据库访问的问题。新设计的系统架构如图4-1所示。

系统架构如图4-1所示

【问题1】(9分)

请用300字以内的文字分别说明数据库程序在线访问方式和ORM方式的优缺点,说明该软件企业采用ORM的原因。

【问题2】(9分)

请用100宇以内的文字说明新体系架构中增加数据访问层的原因。请根据图4-1所示,填写图中空白处(1)-(3)。

【问题3】(7分)

应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景:请解释说明工厂模式在数据访问层中的应用。

1.【参考答案】

试题分析:

【问题1】(9分)

数据库程序在线访问方式优点:

性能比直接SQL好;

可以处理复杂的查询语句。

数据库程序在线访问方式不足:

程序员必须懂SQL语句;

修改维护相对困难。

ORM方式优点:

降低学习和开发成本;

程序员不用再写SQL进行数据库操作;

减少程序代码量;

降低由于SQL代码质量差带来的影响。

ORM方式缺点:

性能比直接用SQL差

处理复杂查询比较困难。

采用ORM原因:(1)缺乏数据库开发经验,因此SQL语句编写质量有潜在风险;(2)学习成本高;(3)应用比较简单,没有太复杂功能。

【问题2】(9分)

涉及多种异构数据库平台,数据访问复杂性增加,不宜与业务逻辑混合在一起;

数据管理变复杂之后,需要使用代码量增加,分层次有利于逻辑更加清晰,程序维护更加方便;

业务逻辑应以相同的方式应对异构数据库,为了做好隐蔽性需要单独设计数据访问层。

(1)~(3)分别填入:执行业务逻辑、工厂层(factory)、数据访问接口层。

【问题3】(7分)

工厂模式分为:抽象工厂和工厂方法,本题为抽象工厂设计模式。

抽象工厂设计模式提供一个接口,可以创建一系列或相互依赖的对象,而无需指定他们具体的类。

优点:方便创建一系列的对象,其使用场景也是创建系列对象的情况。该题目中,可以针对oracle,mysql,sqlserver分别抽象建立抽象工厂,若指定当前工厂为oracle工厂,则创建出来的数据库连接,数据集等一系列对象都是符合oracle操作要求的,这样便于数据库之间的切换。

相关推荐
Lee川6 小时前
深度拆解:基于面向对象思维的“就地编辑”组件全模块解析
javascript·架构
勤劳打代码6 小时前
Flutter 架构日记 — 状态管理
flutter·架构·前端框架
子兮曰12 小时前
后端字段又改了?我撸了一个 BFF 数据适配器,从此再也不怕接口“屎山”!
前端·javascript·架构
卓卓不是桌桌14 小时前
如何优雅地处理 iframe 跨域通信?这是我的开源方案
javascript·架构
Qlly14 小时前
DDD 架构为什么适合 MCP Server 开发?
人工智能·后端·架构
用户881586910911 天前
AI Agent 协作系统架构设计与实践
架构
鹏北海1 天前
Qiankun 微前端实战踩坑历程
前端·架构
货拉拉技术1 天前
货拉拉海豚平台-大模型推理加速工程化实践
人工智能·后端·架构
RoyLin2 天前
libkrun 深度解析:架构设计、模块实现与 Windows WHPX 后端
架构
CoovallyAIHub2 天前
实时视觉AI智能体框架来了!Vision Agents 狂揽7K Star,延迟低至30ms,YOLO+Gemini实时联动!
算法·架构·github