数据基础技术 1_第1页
数据基础技术 1_第2页
数据基础技术 1_第3页
数据基础技术 1_第4页
数据基础技术 1_第5页
已阅读5页,还剩5页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

参考试卷(二)(满分100分)一、单选题(20分,每题2分)1.以下哪种行为在MongoDB中是合法的_______。 A.删除文档字段 B.复制local数据库 C.创建名为“edu.students”的集合 D.一次添加多个文档2.以下MongoDBDatabaseTools工具中,名称与功能对应错误的是_______。 A.mongoimport:数据导入 B.mongoexport:数据导出 C.mongodump:数据恢复 D.mongorestore:数据恢复3.MongoDB不支持哪种应用场景_______。 A.电商应用 B.移动应用 C.视频直播 D.银行业务4.以下关于MongoDB的描述错误的是_______。 A.MongoDB支持Java、C++、Python、C#等多种编程语言 B.MongoDB支持创建地理位置索引 C.MongoDB支持嵌套文档子对象 D.MongoDB存在模式(scheme)5.在Redis中不存在任何数据的情况下执行 setdatabaseredis multi setprogrampythonincrprogramsetmajorcomputerexec上述命令执行后,Redis中存在的键包括:A.databaseB.database,programC.database,program,majorD.database,multi,program,major6.现有一组主从数据库,其主数据库为:6379,从数据库为:6666。依次执行下列操作:(主数据库中)LPUSHdatabaseredismysqloracle(从数据库中)RPOPdatabase(从数据库中)LPUSHdatabasemongodb(主数据库中)LPUSHdatabasejava该主从数据库中,主数据库负责写,从数据库负责读,采用默认配置,请问现在主数据库中的database队列内的元素顺序如何(从左至右)___A.javamongodboraclemysqlB.javaredismysqloracleC.javaredismysqlD.javaoraclemysqlredis7.在AOF持久化中,Redis提供了三种同步的选项。其中选项“everysec”表示的含义是__A.每秒执行一次同步B.每次写命令后同步C.永不同步D.由操作系统决定何时同步8.通过配置配置文件中hz选项的值,可以设置Redis定期删除过期键的策略。hz默认值为10,这表示什么含义。A.10秒执行1次B.1秒执行10次C.1分钟执行10次D.上述均不正确9.以下哪项不是关系数据库的特征?A.无模式设计B.ACID属性C.结构化查询语言(SQL)D.基于表的结构10.在Neo4j中创建节点的Cypher语句是什么?A.CREATENODEB.INSERTNODEC.ADDNODED.CREATE二、填空题(20分,每空2分)1.MongoDB添加多条文档需要的命令为(只需要写出名称)_______。2.MongoDB文档的唯一标识为_______。3.Redis支持__________特性,保证多个命令的原子性执行。4.通过________命令可以查看节点的主从关系及配置信息。5.持久化是将内存中的数据存储到磁盘的方式。Redis提供了两种持久化的机制,分别是___________和___________。6.键值数据库将数据存储为键值对集合,其中_____作为唯一标识符,_____是数据实际存储的内容。7.关系数据库中,用于在表中插入新行的SQL命令是______。8.SQL中用于连接两个表并根据共同属性进行匹配的命令是______。三、判断题(10分,每题1分)1.MongoDB支持修改文档结构。()2.MongoDB有模式(schema)的概念。()3.MongoDB不需要和关系型数据库一样预先声明文档结构。()4.对过期键常用的删除策略有定时删除、惰性删除和定期删除。其中惰性删除对内存最友好。()5.Redis操作简单,无法像关系型数据库那样建立复杂的横向关系。因此目前一般不将Redis视为完整的数据库单独使用,它更多地是作为一个高速存取器配合关系型数据库使用。()6.Redis配置文件中存在重写AOF的配置”auto-aof-rewrite-percentage100”,它表示当目前AOF文件大小超过上一次重写后的文件大小的100%时进行重写。()7.关系数据库不支持事务处理。()8.关系数据库中FOREIGNKEY是用来指定与另一个表的主键相对应的键。()9.在关系数据库中,所有数据操作都通过SQL实现。()10.数据模型中不需要考虑数据的安全性和完整性。()四、简答题(32分,每题4分)1.MongoDB支持哪些数据类型(写出6种即可)。2.MongoDB的ObjectId由哪些部分组成?3.MongoDB的索引类型有哪些?4.简述主从复制的作用。5.Redis提供了哪两种持久化的方式。它们有什么不同?6.简述Redis中过期键的删除策略。7.描述SQLJOIN命令的用途及主要类型。8.描述Cypher查询语言中如何删除一个节点。五、程序填空题(18分,每题6分)1.请阅读以下代码并回答问题。importpymongodefproducts_query(client,db,max_price):mydb=client[db]product_col=mydb["products"]products=product_col.find({"price":{"$lt":max_price}},{"_id":0,"product_name":1,"price":1})returnproductsdefmain():client=pymongo.MongoClient("mongodb://localhost:27017/")db='test'max_price=100products=products_query(client,db,max_price)forproductinproducts:print(product)if__name__=='__main__':main()问题一:这段代码的主要目的是什么?问题二:如果使用MongoDB命令应该如何实现?2.请阅读以下代码并回答问题。importredisclassSimpleCounter:def__init__(self,redis_conn,counter_key):self.redis_conn=redis_connself.counter_key=counter_keydefincrement(self):returnself.redis_conn.incr(self.counter_key)#Exampleusage:redis_conn=redis.StrictRedis(host='localhost',port=6379,decode_responses=True)counter_key='my_counter'counter_instance=SimpleCounter(redis_conn,counter_key)result=counter_instance.increment()print(f"Theupdatedcountervalueis:{result}")问题一:这段代码的主要目的是什么?问题二:SimpleCounter类有哪些属性和方法?分别代表什么含义?3.填写Cypher命令以创建一个名为Person的节点,包含姓名和年龄属性。

答案一、单选题(20分,每题2分)1.A2.C3.D4.D5.C6.D7.A8.B9.A10.D二、填空题(20分,每题2分)1.insertMany2._id3.事务4.inforeplication5.RDB(RedisDataBase)AOF(AppendOnlyFile)6.键(或key)值(或value)7.INSERTINTO8.JOIN三、判断题(10分,每题1分)1.√2.×3.√4.×5.√6.√7.×8.√9.√10.×四、简答题(32分,每题4分)1.MongoDB支持以下数据类型:String、Integer、Boolean、Double、Array、Object、Data等。(每个1分,写出4个即满分)2.MongoDB的ObjectId由以下部分组成:(1)前四个字节表示创建时间戳,默认为格林尼治时间(UTC时间)。(1分)(2)接下来3字节是机器标识码。(1分)(3)紧接着2字节表示PID(由进程ID组成)。(1分)(4)最后3字节是随机数。(1分)01234567891011时间戳机器PID计数器3.MongoDB的索引类型有:(1)单字段索引(2)复合索引(3)多键索引(4)全文索引(5)Hash索引(6)通配符索引(每个1分,写出4个即满分)4.读写分离;数据备份;容灾恢复,当主节点出现问题时,可以改由从节点提供服务,以实现快速的故障恢复(1分);水平扩容支撑高并发以及负载均衡(1分)。通过主节点提供写服务,从节点提供读服务的方式分担服务器负载(尤其在写少读多的情况下,可以大大提高Redis的并发量)(2分)。5.Redis提供了RDB和AOF两种持久化方式(1分)。 RDB持久化是将Redis在内存中的数据以快照的形式保存到硬盘上。它是通过在指定的时间间隔内将内存中的数据集快照写入磁盘,即生成一个描述数据集状态的快照文件。RDB持久化方式适合用于备份、灾难恢复和数据迁移等场景。(1分)AOF持久化是通过将Redis执行的写命令以追加的方式保存到一个文件中。Redis重启时会通过重新执行AOF文件中的命令来恢复数据。AOF持久化方式相对于RDB持久化来说,更加安全,因为它可以提供更精确的数据恢复,避免了在持久化过程中可能出现的数据丢失。(2分)6.(1)定时删除:在设置键的过期时间的同时,创建一个定时器(timer)、让定时器在键的过期时间来临时,立即执行对键的删除操作。(1分)(2)惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。(1分)(3)定期删除:每隔一段时间程序就对数据库进行一次检查,删除里面的过期键。至于要删除多少过期键,以及要检查多少个数据库,则由算法决定。(2分)7.SQLJOIN命令用于合并两个或多个表的行,基于两个表中的共同字段(1分)。常见的JOIN类型包括INNERJOIN(1分)、LEFTJOIN(1分)、RIGHTJOIN和FULLJOIN。(1分)8.首先,需要使用MATCH语句配合适当的条件来定位或匹配出需要删除的节点。(1分)在确定了节点之后,使用DELETE语句来删除这个节点。(1分)比如:MATCH(n:Person{name:"JohnDoe"})DELETEn。在删除节点之前,需要确保节点没有任何连接的关系(1分)。如果节点有关系,这些关系需要先被删除,否则Neo4j不允许直接删除该节点。(1分)五、程序填空题(18分,每题6分)1.问题1:这段代码实现查询test数据库中products集合价格(price)小于100的所有商品,且只返回商品名(product_name)和价格(price)。(3分)问题2:ducts.find({"price":{$lt:100}},{"_id":0,"product_name":1,"price":1})(3分)2.问题一:这段代码的主要目的是创建一个简单的计数器类(SimpleCounter),使用Redis存储计数器的值,并提供一个方法用于增加计数器的值。(3分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论