【说明】       

        某软件公司拟开发一套贸易综合管理系统,包括客户关系管理子系统和商品信息管理子 系统两部分。客户关系管理子系统主要管理客户信息,并根据贸易业务需要频繁向客户发送 相关的电子邮件、短信等提醒信息。商品信息管理子系统主要为客户提供商品信息在线查询 功能,包括商品基本信息、实时库存与价格等。 在对系统进行数据架构设计时,公司项目组的架构师王工主张采用文件系统进行数据管 理,原因是目前公司客户和商品数量不大,且系统功能较为简单,采用文件系统进行数据管 理简单直观,开发周期短。架构师李工则建议采用关系数据库进行数据管理,原因在于公司 目前正处在高速扩张期,虽然目前的客户和商品数量不大,但随着公司快速发展,需要管理 的数据必然飞速膨胀,采用关系数据库作为数据存储层,系统的扩展性更强,并能够对未来 可能增加的复杂业务提供有效支持。经过讨论,项目组初步采纳了李工的意见,决定采用关 系数据库存储客户数据,并针对业务特征对系统性能进行优化。

【问题 1】请从设计难度、数据冗余程度、数据架构、应用扩展性等 4 个方面对关系型数据库管理 系统和文件系统两种数据存储方式进行比较,填写表 中(1)~(4)。

关系型数据库存储和文件系统存储比较

设计难度

数据冗余程度

数据架构

应用扩展性

关系型数据库

(1)

遵守数据范式,数据冗余叫少

以数据库为中心组织、管理数据

(4)

文件系统

针对特定应用系统设计,难度较小

(2)

(3)

符合特定应用系统要求的文件数据,很难在不同的应用系统之间共享

【问题 2】
    对系统的核心业务需求进行认真分析后,公司的资深架构师张工提出一种内存数据库和 关系数据库的混合存储架构,其核心思想是将需要频繁读写的数据存入内存数据库,而将相 对固定不变的数据存入关系数据库。请首先分析比较内存数据库和关系数据库在数据模型、 读写性能、存储容量、可靠性等方面的差异,填写表 中(1)~(4)的空白,并根据张工的 思路指定各种业务数据的存储方式,填写表中(5)~(9)中的空白。

内存数据库和关系数据库比较

数据模型

读写性能

存储容量

可靠性

内存数据库

(1)

内存直接读写,性能高

(3)

(4)

关系数据库

关系模式

(2)

基于磁盘存储,容量大

内建恢复机制,可靠性高

业务数据存储方式

业务数据

存储方式

客户基本信息

关系数据库

客户电子邮件

(5)

客户联系电话

(6)

商品基本信息

(7)

商品库存信息

(8)

商品价格信息

(9)

【问题 3】
        系统开发完成进行压力测试时,发现在较大数据量的情况下,部分业务查询响应时间 过长,经过分析发现其主要原因是部分 SQL 查询语句效率低下。请判断表 中的 SQL 语句 设计策略哪些可能会提升查询效率,哪些可能会降低查询效率,在(1)~(4)中填入“提升” 或“降低”。

SQL设计策略对性能的影响

SQL语句设计策略

查询性能影响情况

查询时不要返回不需要的行和列

(1)

需要进行多表连接查询时,尽量采用子查询结构

(2)

尽量采用not in,not exist,like等操作

(3)

尽量避免使用distinct关键字

(4)

【解答】

【问题1】

  1. 数据结构需要符合关系模式,设计难度大
  2. 可能在多个文件中复杂相同数据属性,数据冗余大
  3. 以应用系统为中心组织和管理数据
  4. 数据独立于应用系统,很冗余在不同应用系统之间共享数据

【问题2】

  1. key-value模式
  2. 外存读写,性能低
  3. 基于内存存储,容量有限
  4. 恢复机制复杂,可靠性低
  5. 内存数据库
  6. 内存数据库
  7. 关系数据库
  8. 内存数据库
  9. 内存数据库

【问题3】

  1. 提示
  2. 降低
  3. 降低
  4. 提升