TOP

大数据排序模拟软件
2015-01-29 20:11:14 来源: 作者: 【 】 浏览:10583

第四届“中国软件杯”大学生软件设计大赛 
  赛题(B类)

赛题名称:大数据排序模拟软件 
组类: B 高职组 

赛题简介:介绍整个赛题的思路和整体要求 

开发基于Windows平台的服务器端和客户端应用软件,实现20G左右的UTF8编码的整型、浮点型、字符型数据的装载、排序和结果文件导出,其中排序可以按照字节编码和汉字拼音进行。 

赛题业务场景:描述赛题相关的真实企业业务背景。从真实场景中,适当简化或者提炼出适合比赛的赛题场景 

任何应用都离不开对数据的处理,数据处理的关键在于快速地检索,而快速检索则依赖于数据的装载、排序及其结果导出越快越好。 

在数据库的应用中,一般是在客户端将数据导入到服务器端的数据库中去,然后就可以在客户端通过SQL语句对服务器端的数据进行检索。 

数据库中相关的SQL语句如下: 
  CREATE TABLE mytable(
      column1      INT NOT NULL,
      column2      NUMERIC(8,4),
      column3      CHAR(32),
      column4      VARCHAR(256) NOT NULL,
      column5      VARCHAR(256)
  );
  INSERT INTO mytable VALUES(3,5.677,null,'大不列颠及北爱尔兰联合王国','The United Kingdom of Great Britain and Northern Ireland');
  SELECT column1, column5, column3
  FROM mytable
  ORDER BY column1, column5 NULLS FIRST
  LIMIT 1000;

功能性需求 

客户端程序需要实现文本文件数据的发送、排序结果的接受;服务器端程序需要实现数据的接受、数据的导出、数据的排序、排序结果的发送。其中,数据的类型有整型、浮点型、字符型,另外NULL是一种特殊值,表示不确定的值;排序的功能点有: 

  1. 排序键值支持一个和多个 

  2. 排序键的数据类型支持整型、浮点型、字符型 

  3. NULL值支持排在最前或最后 

  4. 支持重复值的去重排序 

  5. 支持重复值的稳定排序 

  6. 支持按照字节编码排序 

  7. 支持中文字符的拼音排序(可以不考虑多音字的情况) 

  8. 排序结果中的列可以指定为一个列和多个列 

另外,服务器端的数据导出功能需要导出为可读的文本文件,通过该文件可以验证数据装载的正确性,从客户端导出的排序结果文件同理。 

非功能性需求 

充分利用内存、CPU、网络、磁盘等资源,使得客户端和服务器端之间的数据装载、排序操作及其结果导出越快越好。性能考察的关键点: 

  1. 两个10G      UTF8编码文本文件共20G数据的装载时间 

  2. 上述数据按照字节编码比较的排序时间 

  3. 上述数据按照字节编码排序,并去除重复值的时间 

  4. 上述数据按照中文字符拼音排序的时间 

  5. 上述数据按照字节编码排序,并取前1000条记录的时间 

  6. 上述数据按照中文字符拼音排序,NULL排在前面,并取前1000条记录的时间 

其他限制条件:开发环境、实验平台、开发语言、数据库、编译器等限制条件(请尽量明确) 

Windows XP/Windows      Server/Windows 7
VS2003/VS2005/VS2008编译器或Eclipse
C/C++语言(推荐)或Java语言 

测试数据或平台:提供给参赛者的测试环境和测试数据。(可提供电子档) 

测试环境:普通PC(两台),多CPU,千兆网卡 

UTF8编码文本数据示例(对应mytable表,一条记录占一行,列分隔符为逗号,行分隔符为换行符): 
  3,5.677,null,'大不列颠及北爱尔兰联合王国','The United      Kingdom of Great Britain and Northern Ireland'
  -1,-4.888,'张三','中华人民共和国','The People's Republic of China'

开发所需设备及设备指标需求说明 

普通PC机两台 

其他要求 

 

需要提供的文档: 

  1. 需求规格说明书:详细描述功能和非功能需求,使软件设计开发人员能够清晰地理解软件背景、功能要求、运行环境等。 

  2. 设计说明书:详细描述软件的架构、设计理念、算法思路等。 

  3. 测试文档:描述测试环境的搭建、测试数据的准备、测试方法等。按照测试文档进行功能和性能测试,对测试方案可能出现的问题进行分析和评估。 

  4. 程序源代码:指未编译的按照一定规范书写的程序代码和注释,包含项目工程文件。 

  5. 用户手册:描述在Linux和Windows上如何操作该软件。 

  6. 项目总结报告:描述项目的进度、成果和经验教训。 

     

    注意:
    1.  题目要求“模拟”数据库的几项常用功能(注意强调“模拟”二字),参赛者需要自己设计、编程,实现前、后台程序,完成内部测试,提交相关文档。
    2.  所涉及的功能点来自于实际应用场景,都曾经是企业客户对数据库厂商提出的功能需求。无论是国外或是国内厂商,主流数据库都已支持这些功能。本题目不是让参赛者搭建一个数据库管理系统,去测试数据库的功能和性能。

关键字: 责任编辑:zhaoshuo
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇比特能·专家机器人 下一篇Talking Avatar

相关栏目