写在前面的话:
今年线上开卷考试,Nosql考试软工(限选课)和大数据(必修课)是一套试题,因此大数据所学的许多内容考试并无涉及。考察点主要以学过的四类Nosql数据库的相关知识为主。
试题如下,侵删:
一部电影中的各个演员常常有主角配角之分。还要有导演、特效等人员的参与。同时一位导演本身也可以是其它电影/电视剧的演员。也可能是歌手。甚至是电影的投资者。这种关联关系纷繁复杂。在两个实体间可能存在多种不同关联关系。如图1示例。
影视领域中的实体包括人、电影/电视剧、歌曲、剧本等等。这些实体之间的关联可以记录一个人参演过哪些电影/电视剧、唱过哪些歌、又是哪些电影/电视剧的投资方、或者仅仅是影视产品的读者/影迷。甚至参演的关联还可以分成主角、配角、特效等等。图2表示了Neo4j中影视领域的部分数据实例,包括人(Alice,Bob,Carol)、剧本(Alice Day)、电影(Film:AliceDay)之间的关联关系以及各种属性。
针对以上影视领域需求背景及数据示例。回答以下问题:
1、如果使用Neo4j来存储影视领域数据。请设计出其逻辑结构,主要说明有几种不同的节点,各种节点之间存在什么样的边。并列出节点和边的属性。(6分)
2、如果使用Hbase来存储影视领域数据。请设计出其逻辑结构。主要说明有几张表。表的key是什么,表内包含几个列族,分别存放什么数据。(6分)
3、如果将图2数据转存至Hbase中,请写出Hbase中的数据实例。(6分)
4、如果将图1数据转存至Mongodb中,请写出Mongo中的数据实例。(6分)
5、如果将图2数据转存至Redis中。请写出Redis中的数据实例。(6分)
6、每一部电影都拥有一个综合评分,该评分是评价电影受欢迎程度的主要指标。得分在前200名的电影被定义为“热门电影"。请选择适合的NoSQL数据库。使用伪代码实现热门电影信息展示功能。假设一页可以展示20条电影信息,要求展示给定页数(page)上的20条电影的"“片名”、“上映日期"、“票房总数"“、“综合评分”等属性。(9分)
7、有一个功能需求“给定两个电影。找到它们的共同观众。返回这些观众及他们的全部好友”。请选择适合的 Nosql数据库,写出实现此功能的算法思想。(9分)
8、如果使用MongoDB来存储影视领域数据,部署时一般会采用数据3副本机制。这种机制可以带来什么好处﹖需要解决哪些问题?(10分)
9、针对影视领域需求,试比较Neo4j、Hbase、MongoDB和Redis 四种方案的优劣。并说明理由。(12分)
我还整理了一份电子版试题,有会员或者积分的可以下载支持一下2022Nosql期末考试
本次考试,正如老师所言,题目没有需要背诵的内容,更多地考察应用能力,但这也是因为开卷。希望后面学弟学妹根据当年考试形式灵活复习,祝大家都能拿到高分。