问题1(13分)
针对该系统的功能,孪工建议采用管道-过滤器(pipe and filter)的架构风格,而王工则建议采用仓库(reposilory)架构风格。满指出该系统更适合采用哪种架构风格,并针对系统的主要功能,从数据处理方式、系统的可扩展性和处理性三个方面对这两种架构风格进行比较与分析,墳写表。
解析:
- 以数据为中心,处理流程独立,交互性好
- 数据和处理耦合在一起,需要重启才能生效
- 调用数据仓库层,性能下降
- 支持多个客户端一起调用,提升性能
题中适合仓库架构风格,编辑、语法高亮、代码编译、系统调试和代码仓库共同处理数据。
问题2
某互联网文化发展公司因业务发展,需要建立飕上社区平台,为用户提供一个对双络文化产品(如互联网小说、电影、漫画等)进行评论、交而的平台。该平台的部分功能如下.
(a户帖子的评论计数器,
(b支持粉丝列表功能;
(c支持标签管理
(d支持共同好友功能等,
(e)提供排名功能,如当天最热前10名帖子排名、榜前5排名等;
(f用户信息的结构化存储
(g)提供好友信息的发布/订阅功能。
该系统在性能上需要考虑高性能、高并发,以支持大量用户的同时访问。开发团队经过综合考虑,在数据管理上决定采用Redis数据库(缓存数据库)的解决方案。(10分)
解析:
String常用的则是可以统计点赞数量,粉丝数量。
List常用则是可以统计发布订阅,粉丝列表。Lpush rpop
Set则是共同的好友sunion并集,sinter交集(看到互相的点赞),sdiff差集(可能关注的人),共同的喜好。搜索功能 sinsert查询
Map信息结构化存储。
Zset,排序,zincrby
1 a (执行incr,执行一次,点击量加一次)
2 g b,g(发布订阅lpush rpop)
3 ) c,dd,b(sadd
4 c,) ff(hmap
5 e(zincrby)
问题3(7分)
Redis有两种持久化方式分别是RDB(RedisDataBase)持久化方式和AOF(AppendOnlyFile)持久化方式。开发团最终选择了RDB方式。谙用200字以内的文字,从磁盘更新频率、数据安全、数据一致性、重启性能和数据文件大小五个方面比较两种方式,并简要说明开发团队选择RDB的原因。
解析:
RDB是按时间间隔来更新的,磁盘更新频率低于AOF。
RDB数据一致性比AOF差,因为RDB按时间间隔更新,当这段时间没更新,刚好系统宕机,会导致数据不一致。AOF则是通过append来写文件,即使不一致,也可以通过redis-check-aof工具来解决。
RDB安全性更低,因为在时间间隔的这段时间可能会存在数据丢失。
RDB重启更快。
数据文件RDB要小于AOF的数据文件。
因为团队想短时间快速启动,所以选择了RDB。
问题3(8分)
缓存中存储当前的热点数据Redis为每个KEY值都设置了过期时间,以提高缓存命中率。为了清除非热点数据Redis选择“定期删除+惰性删除"策略。如果该策略失效,Redis内存用率会越来越高,一般应采厍内存淘汰机制来解决。用100字以内的文字简要庙述该策略的失效场景并给出三种内存淘汰机制。
解析:
当定期删除失效,而惰性删除是在访问key的时候才删除,如果这个key一直不访问,则该策略失效。
1、Lru策略,在设置过期时间key里,按最早存入时间淘汰。
2、Lfu策略,在设置过期时间key里,按最少访问淘汰。
3、在设置过期时间key里,随机淘汰。
4、在所有key里,按最少访问淘汰。
5、所有key随机淘汰。
问题(14分)
请说明关系型数据库开发中,逻辑数据模型设计过程包含哪些任务?该包裹单的逻辑数据模型中应该包含哪些实体?并给出每个实体的主键属性。
解析:
逻辑数据模型设计包含:
- 构建系统上下文数据模型,包含实体与实体之间的关系。
- 构建主键数据模型,为实体添加主键。
- 构建全属性数据模型,为实体添加非主键属性。
- 按规范化设计系统的数据模型。
包含实体:
商品信息,人员信息。
主键:
人员信息的主键是手机号,商品信息的主键是商品id。
问题(6分)
请说明什么是超类实体?结合图里的信息,试着设计出超类实体,给出完整属性列表?
超类指多个实体相同的列可以结合起来的类。
人员信息(姓名,单位名称,详细地址,电话)
解析:
问题(5分)
请说明什么是派生属性?并且说明图中的派生属性?
解析:
派生指可以通过多个列计算出来的数据,图中“总计”就是派生列,它是其他费用计算的总和。
1 a Connection pool
2 c persistent layer
3 d mybatis
4 k spring b struts
5 J controller layer
6 h view layer
7i jsp
(5分)该工业设备检测系统拟采用工业控制领域中统一的数据访问机制,实现与多种不同设备的数据交互,请用200字以内的文字说明采用标准的数据访问机制的原因。
解析:
统一的数据访问可以让软件开发层不必关注硬件层,双方只需要按照统一的数据访问机制规范来设计,硬件只需要考虑应用程序的多种需求和传输协议,软件开发商也不需要了解硬件的实际操作,实现对接。