SimpleDB-Lab6

0.实验目标

在本实验中,我们将要实现基于日志的中止回滚和崩溃恢复。源码中提供了定义日志格式的代码,并在事务期间的适当时间将记录附加到日志文件中。我们将使用日志文件的内容完成回滚和恢复。

源码中提供的日志代码产生了用于物理上整页undo和redo的记录。当页是首次读入时,代码记住了整页的原始内容做为前置镜像。当事务更新页时,相应的日志记录包含已存储的前置镜像以及修改后的页面做为后置镜像。我们将使用前置镜像在中止期间进行回滚,在recovery期间undo丢失的事务,后置镜像用于在recovery期间redo成功的事务。

阅读更多

SimpleDB-Lab5

0.实验目标

在这个实验中,你将实现一个B+树形索引,用于高效的查找和范围扫描。我们为你提供了实现树形结构所需的所有底层代码。你将实现搜索、拆分页面、在页面之间重新分配 tuple 以及合并页面。

B+树的内部节点拥有多条记录,每个节点的内容包括节点当前值、以及左右子树的指针;相邻键之间共享一个孩子指针,所以拥有m个键的内部节点通常拥有m+1个孩子指针。叶子节点可以包括数据记录或者指向其他数据库文件的指针。为了简单起见,我们实现的B+树的叶子节点只包括数据记录。相邻的叶子页通过左右同级指针链接在一起,因此范围扫描只需要通过根节点和内部节点进行一次初始搜索即可找到第一个叶子页,后续叶子页通过右(或者左)指针找到。

阅读更多

SimpleDB-Lab4

0.实验目标

在这个实验中,你将在SimpleDB中实现一个简单的基于锁的事务系统。你将需要在代码中的适当位置添加锁和解锁调用,以及跟踪每个事务所持有的锁的代码,并在需要时授予事务锁。

本文档的其余部分描述了添加事务支持所涉及的内容,并提供了一个关于如何将这种支持添加到你的数据库的基本概要。

阅读更多

SimpleDB-Lab3

0.实验介绍

在这个实验中,你将在SimpleDB之上实现一个查询优化器。主要任务包括实现一个选择性估计框架和一个基于成本的优化器。你可以自由选择具体的实现方式,但我们建议使用类似于课堂上讨论的Selinger基于成本的优化器(第9讲)。

  • 实现TableStats类中的方法,使其能够使用直方图(IntHistogram类提供的骨架)或你设计的其他形式的统计数据来估计过滤器的选择性和扫描的成本。
  • 实现JoinOptimizer类中的方法,使其能够估计 join 的成本和选择性。
  • 编写JoinOptimizer中的orderJoins方法。这个方法必须为一系列的连接产生一个最佳的顺序(可能使用Selinger算法),给定前两个步骤中计算的统计数据。
阅读更多

SimpleDB-Lab2

0.实验目标

实验二需要为SimpleDB编写一组操作符,用于实现表的修改(例如,插入和删除记录),选择操作,连接操作和聚合操作。这些操作将在Lab 1中所编写的基础上构建。此外,需要设计页面淘汰策略,完善缓冲池。仍不需要实现事务和锁。

可以使用提供的SQL解析器对数据库运行SQL查询。

  • 实现Filter和Join操作符。这些操作符的Javadoc注释中包含了其工作细节。Project和OrderBy已实现,这可能有助于您理解其他操作符的工作方式。
阅读更多

SimpleDB-Lab1

0.实验目标

完成本实验后,要能通过ScanTest系统测试

  • 实现管理Tuple的类,即Tuple、TupleDesc。SimpleDB 中已经实现了Field、IntField、 StringField和Type,只需要支持整数和(固定长度的)字符串字段以及固定长度的 tuples。
  • 实现 Catalog 。
  • 实现BufferPool构造函数和getPage()方法。
  • 实现访问方法、HeapPage和HeapFile以及相关的ID类。
  • 实现操作符SeqScan。
阅读更多

通过C#实现Xml的自动转换

一、目的

通过给定的标准化xml schema文档,将非标准化的xml schema文档进行一定的转换,从而使所有的xml schema文档都遵循同一套格式,方便后续对xml文档的处理。

二、实现过程

起初,我们对任务不太明确。不清楚给出的规划化文件和需要进行规范的文件是xml文档还是xml schema文档。因此,在多次讨论无果后,再次咨询了老师。得到确定答案后重新查阅了资料,才开始具体的实现。

阅读更多

《求合体》小游戏项目报告

项目链接

https://github.com/0Heeee/Join_game

开发背景

《求合体》以合体为主题的全新游戏,每一株草丛、每一幢房屋、每一只猫咪都时时刻刻哭喊着求合体,一切都取决于玩家的旨意,一切都决定于玩家的安排。玩家的每一位子民,都在等待英明的合体决定。

在本次的课程设计中,依照该背景对游戏进行了一定的改编。支持鼠标操作,并且包含“彩虹”、“炸弹”、“猫”等多样玩法。界面上有显示下一个可放置物品的提示以及玩家当前的分数、剩余步数、获得金币。根据玩家不同的物品类型以及玩家所点击的不同位置,将作出不同的回应。

阅读更多

Django项目总结

概述

题目:基于bytom信息流的新闻聚合网站。
问题说明:本系统首先需要通过网络爬虫爬取Bytom发布在各个平台的内容信息,通过对这些信息的分类,可以清晰的展示,帮助人们更好的获取到信息。
因为种种原因报名了python程序设计挑战赛,所以才有了这个项目。事实证明,人可能要有点自知之明…不管怎样,过程中间还是学到了一些的(大概)。

阅读更多