问答题 .阅读以下关于数据库设计的叙述,回答问题1至问题3。
    【说明】
    某制造企业为拓展网上销售业务,委托某软件企业开发一套电子商务网站。初期仅解决基本的网上销售、订单等功能需求。该软件企业很快决定基于.NET平台和SQL Server数据库进行开发,但在数据库访问方式上出现了争议。王工认为应该采用程序在线访问的方式访问数据库;而李工认为本企业内部程序员缺乏数据库开发经验,而且应用简单,应该采用ORM<对象关系映射>方式。最终经过综合考虑,该软件企业采用了李工的建议。
    随着业务的发展,该电子商务网站逐渐发展成一个通用的电子商务平台,销售多家制造企业的产品,电子商务平台的功能也日益复杂。目前急需对该电子商务网站进行改造,以支持对多种异构数据库平台的数据访问,同时满足复杂的数据管理需求。该软件企业针对上述需求,对电子商务网站的架构进行了重新设计,新增加了数据访问层,同时采用工厂设计模式解决异构数据库访问的问题。新设计的系统架构如下图所示。
   
问答题 1.  请用300字以内的文字分别说明数据库程序在线访问方式和ORM方式的优缺点,说明该软件企业采用ORM方式的原因。
【正确答案】数据库程序在线访问方式的优点:一是可以处理复杂的Select语句;二是性能比直接的SQL要优越一些。
   数据库程序在线访问方式的缺点:一是在修改维护上相对困难;二是开发的程序员必须能看懂SQL语句。
   ORM方式的优点:一是降低学习和开发成本;二是减少程序代码量;三是降低由SQL代码质量差带来的影响;四是程序员不用再写SQL语句进行数据库操作。
   ORM方式的缺点:一是处理复杂查询有一定的难度;二是性能比直接用SQL差一些。
   采用ORM的原因有三点:
   (1)学习成本高。
   (2)缺乏数据库开发经验,因此SQL语句编写质量不能保证。
   (3)应用简单,没有复杂功能。
【答案解析】
问答题 2.  请用100字以内的文字说明新体系架构中增加数据访问层的原因。请根据上图填写空白处(1)~(3)。
【正确答案】①涉及到几种异构数据库平台,使系统对数据的访问比较复杂,不适合与业务逻辑混合在一起。
   ②数据管理复杂,需要编写的代码增加,分层次使逻辑更加清晰,使程序维护更灵活、更方便。
   ③应对异构数据库,业务逻辑也要采取相同的方式,为了做好隐蔽性,需要单独设计数据访问层。
   (1)~(3)分别填入:执行业务逻辑、工厂层(factory)、数据访问接口层。
【答案解析】
问答题 3.  应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景:请说明工厂模式在数据访问层中的应用。
【正确答案】工厂模式分为工厂方法和抽象工厂,本题为抽象工厂设计模式。
   抽象工厂设计模式提供一个接口,无需指定它们具体的类,就可以创建一系列或相互依赖的对象。
   优点:方便创建一系列的对象。该题目中,可以针对Oracle、MySQL、SQL Server等来分别建立抽象工厂。假如当前工厂为Oracle工厂,则创建出来的数据库连接和数据集等一系列对象都要符合Oracle操作的要求,便于数据库之间的切换。
【答案解析】