当前位置: 首页 > Web前端 > vue.js

W4111--数据库导论

时间:2023-03-31 18:45:10 vue.js

W4111--数据库简介家庭作业32019年春季,第03节,V03,H03简介这是W4111的家庭作业3的规范-数据库简介,2019年春季学期第03节,H03,V03。本文档始终是规范的当前版本。开发人员负责持续审查文档的更改。DocumentControlRolesAuthorUNIRoleFerguson,Donald,F.dff9InstructorApproverUNIRoleFerguson,Donald,F.dff9InstructorReviewerUNIRoleDalchand,Samanthasd2995AssistantInstructorDhillon,Kiritksd2142AssistantInstructorGandikota,Chandanacg3111AssistantInstructorGorrela,Meghnamg3740助理教练Huang,Roserh2805助理教练Hudson,Alyshaalh2202助理教练Karasev,Mikhailmak2257助理教练Peterson,Araalp2210助理教练Saosun,Tahsinats2931助理教练Swaroop,Vatsalavs2671助理教练Tan,Xinyuext2215AssistantInstructorChangeLogChangeNo.DateDocumentVersionChangesChangeProcessStudents应该在此Piazza线程上发布澄清请求。本文档的当前版本和更改日志将记录更改/说明。不会有任何其他sourcedocumenting更改或澄清。OverviewThis项目有两个部分:在CSVDataTable实现中的CSV数据之上实现索引。查询优化:将JOIN函数添加到CSVDataTable并实现查询优化。使用基于索引选择的访问路径优化find_by_template()和join()。允许的框架/库●您可以只使用作为核心Python环境一部分的库,例如csv、json等●不得使用Pandas.Indexes和FileCSVDataTable管理字典(也称为映射、名称值对)。一个单独的字典代表一行。CSV数据表作为一个整体表示CSV文件中的所有行。模板也是一本字典。如果对于字典中的每个键,该行都与模板匹配,该行有一个键标识与模板中的值完全相同的一段数据。您的CSV数据表必须实现以下操作:insert(row)find_by_template(template,field_list,index_allowed)这必须返回一个CSVDataTable。该表包含与模板匹配的字典并包含请求的字段(字典键和值)。如果index_allowed为True,则查找可能会使用索引(如果有人支持模板)。delete(template)删除所有与模板匹配的行。add_index(name,kind,column_list):name是调用者定义的名称。kind是“PRIMARY”、“UNIQUE”、“INDEX”之一。“UNIQUE”表示最多一行可能存在于由column_list指定的一组列值的表。“PRIMARY”与unique具有相同的行为,但只能有一个“PRIMARY”索引。“INDEX”允许重复值。column_list是列名称的集合包含索引definition.import(rows):rows是一个字典列表。此操作将行插入CSV数据表。save():此函数将CSV数据表数据(行)和索引信息保存到单个文件。load():此函数从单个文件加载行和索引信息。数据文件行为:索引信息/状态必须在save()和load()之间持续存在。您可能不会在数据加载时重建索引。load()加载整个数据和indexes.save()保存所有数据和索引信息。您的实现应该对方法执行输入验证。索引只需要支持相等比较。加入和查询优化您的CSVDataTable实现必须支持以下操作:join(other_table,on_columns,where_template,field_list):●Othertable是对CSVDataTable的引用。●on_columns是两个表共有的列名列表。join()函数使用这些列实现等值连接。●where_template是一本字典。唯一的比较运算符是“==”,结果行必须与模板完全匹配。它们在字典中的键的形式是:○table_name.column_name○这指定了模板元素应用到的表和列的名称。●field_list是与模板列定义相同形式的列。queryonly返回请求的列。join()函数返回一个CSVDataTable,它支持所有CSVDataTable操作。您的实现必须实现至少三个类似于讲座中介绍的SQL优化的优化。您的实现应该测试明显的错误条件并演示优化后的改进。提交格式您将以zip文件的形式提交作业。该文件将具有以下目录结构:●/src:您的实现代码。●/tests:您的测试代码。●/test_output:运行测试的控制台输出ts.●/CSVFile:包含您在测试中使用的任何CSV文件●/DB:包含持有表/索引。您必须按照之前在Piazza.WX上发布的指南命名zip文件:codehelp

猜你喜欢