MIT6.5830 Lab1-GoDB实验记录(一)

news2024/9/24 11:32:36

MIT6.5830 Lab1-GoDB实验记录(一) – WhiteNight's Site

标签:Golang, 数据库

了解接下来的实验要做什么。

实验目的

实现GoDB

从lab1开始一直到实验结束,我们的目的只有一个–实现GoDB,一个基础的数据库管理系统。而本次实验lab1主要完成的功能为:访问磁盘上存储的数据。这点我们会在接下来的实验记录中慢慢展开。

由于我是边做实验边记录,所以可能在记录过程中有些遗漏的地方没有讲到,不过我还是会尽力给出一个详细具体的思路的,还请见谅

😢

不过在开始阅读本次实验记录之前,你应该阅读先了解以下文章:

  • 数据库系统:初识存储管理器
  • 关系数据库的结构

实验步骤

阅读lab1实验要求

先来看看GoDB的架构

GoDB consists of:

Structures that represent fields, tuples, and tuple schemas;
Methods that apply predicates and conditions to tuples;
One or more access methods (e.g., heap files) that store relations on disk and provide a way to iterate through tuples of those relations;
A collection of operator classes (e.g., select, join, insert, delete, etc.) that process tuples;
A buffer pool that caches active tuples and pages in memory and handles concurrency control and transactions (neither of which you need to worry about for this lab); and,
A catalog that stores information about available tables and their schemas.

首先,GoDB包括

  • 表示了字段,元组和元组模式(用于描述元组中各数据的数据类型和结构)的数据结构;
  • 通过条件和谓词筛选元组数据的方法;
  • 将数据存储在磁盘上,并提供某个方式以遍历关系中的元组;
  • 实现像SELECT,DELETE这些指令的指令集;
  • 处理并发控制和事务,以及缓存数据至内存的缓冲区(本次实验不用管它,貌似已经实现了);
  • 最后则是目录,用于存储表和它们对应模式的信息。

之后阅读整个lab1的markdown文档,可以看到这次实验共有5个模块。我们将依次来完成它们。

但在此之前请在go.sum所在目录的终端中输入以下代码,否则go test的时候会报错“缺少依赖项”。

go get github.com/srmadden/godb
go get main

以及在agg_op中有一个未使用的变量,用空白符即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1131437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

派克斯电脑全局改IP如何辅助捉妖游戏

捉妖游戏是一款非常受欢迎的手机游戏,玩家需要通过探索地图来捉到各种可爱的妖精。为了让游戏更具趣味性,玩家可以通过地图制作来设计自己的捉妖之旅。在这篇教程中,我们将向您展示如何使用电脑全局软件工具——派克斯,来制作捉妖…

echarts案例之仪表盘如何单独设置指针颜色?

一、此案例基于Vue3ts,效果展示: 二、单个属性的值: 1、单独设置指针的颜色 series:[ ...... { ...... itemStyle: { color: rgba(161, 255, 249, 1), }, ...... } ...... ] 2、设置最外圈数值的样式 series:[ ......…

【linux】安装openjdk8

openjdk的官网 点我就到官网 jdk8的网址 安装 yum install -y java-1.8.0-openjdk-devel 出现Complete! 就是安装完成。 验证 java -version选择对应的包 java-1.8.0-openjdk-devel 开发 Java 程序,请安装该java-1.8.0-openjdk-devel软件包。 java-1.8.0-op…

零代码开发、可视化界面!飞桨AI Studio星河社区带你玩转Prompt应用

号外号外!飞桨AI Studio星河社区上线新版文心一言专区,帮助开发者完成一言插件&大模型应用开发,与此同时推出Prompt模板库供开发者使用。 零代码开发、可视化界面!飞桨AI Studio星河社区带你玩转Prompt应用

使用Python的Flask框架开发验证码登录功能

目录 一、安装和配置Flask 二、生成验证码 三、处理用户输入和验证验证码 四、实现安全的用户认证 五、创建HTML模板 总结 验证码登录功能是现代Web应用程序中常见的安全特性之一,它有助于防止自动化机器人或恶意用户进行非法登录。在本文中,我们将…

windows添加定时任务命令

windows添加定时任务 一.schtasks命令 windows中常用来添加定时任务的命令 二.常用操作 1.添加定时任务 每天下午14:58:00执行test.bat脚本 C:\Users\DELL>schtasks /create /tn doc /tr C:\Users\DELL\Desktop\test.bat /sc DAILY /st 14:58:00 成功: 成功创建计划任务…

【期中复习】深度学习

文章目录 机器(深度)学习的四大核心要素为什么深度学习,不增加网络宽度黑盒模型的问题计算图线性神经网络梯度下降学习率优化方法softmax函数用于多分类交叉熵线性回归与softmax回归的对比为什么需要非线性激活函数感知机线性回归、softmax回…

mysql-面试50题-2

一、查询数据 学生表 Student create table Student(SId varchar(10),Sname varchar(10),Sage datetime,Ssex varchar(10)); insert into Student values(01 , 赵雷 , 1990-01-01 , 男); insert into Student values(02 , 钱电 , 1990-12-21 , 男); insert into Student v…

Unity3D 打包发布时生成文件到打包目录

有时候需要自己创建批处理文件或日志文件,在启动程序的同级目录使用,减少手动操作的时间和错误率。主要使用到的是OnPostprocessBuild方法。 1、在工程中的Editor文件夹下创建脚本 2、将文件放入Plugins的相关目录 3.脚本内容 using System.Collection…

视频号视频下载教程,为视频博主提供的PC电脑版下载方法

在如今这个数字时代,视频博主们成为了社交媒体平台上的明星。他们创作出精彩纷呈的视频内容,吸引着大量粉丝的关注和喜爱。然而,对于那些想要在自己的电脑上收藏这些视频的人来说,可能需要一些技巧和工具来实现。幸运的是&#xf…

SD-WAN专线:一带一路市场布局的商业加速器

刚刚结束的“一带一路”国际合作高峰论坛再次彰显了跨境合作的重要性。在这个全球化时代,随着一带一路倡议的不断推进,企业需要更加高效、稳定的网络连接来实现与参与国家的合作。在这一背景下,SD-WAN专线成为了加速一带一路合作的新选择&…

【C++】c++引用和小细节

文章目录 一、引用的特性:引用的实质引用权限使用场景引用和指针的区别 c引用不是定义了新的对象,而是对一个已有的对象起了一个别名,如鲁迅和周树人的关系,鲁迅是周树人的笔名,两者是一个东西,只是名字不同…

2023年9月青少年机器人技术(三级)等级考试试卷-理论综合

2023年9月青少年机器人技术等级考试(三级)理论综合试卷 单选题 第 1 题 单选题 Arduino Nano主控板,通过光敏电阻控制LED灯亮度的变化。电路搭设及程序如下图所示,当光照强度逐渐增强时,LED的亮度逐渐减弱&#xff…

k8s-----19、Helm

Helm 1、引入2、概述2.1 重点2.2 V3版本的Helm2.2.1 与之前版本的不同之处2.2.2 V3版本的运行流程 3、安装和配置仓库、一些附带操作3.1 安装3.2 配置仓库3.3 常用命令3.4 添加helm的自动补齐 4、快速部署应用(weave应用)5、 自行创建Chart5.1 Chart目录内容解析5.2 简单安装部…

基于springcloud+web实现智慧养老平台系统项目【项目源码+论文说明】

基于springcloudweb实现智慧养老平台演示 摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗…

stm32f10系列的独立看门狗与窗口看门狗

在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造 成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会 造成整个系统的陷入停滞状态…

[Note] 汉明码与汉明距离的思考

Hamming distance 定义 汉明距离,定义是两个码字之间的不同的位的数量,例如4’b0000和4’b0011的汉明距离为2,4’b0000和4’b1110的汉明距离为3。 一种编码方式的(最小)汉明距离,它的定义就是,…

与创新者同行,Doris Summit Asia 2023 线下技术峰会圆满落幕!

10 月 21 日,由飞轮科技主办、阿里云与腾讯云联合主办的 Apache Doris 社区首届线下技术峰会 Doris Summit Asia 2023 在一片热潮中落下帷幕。 本届峰会以「与创新者同行」为主题,设置主论坛和智慧金融与政企、先进智造与电信、企业服务与新经济、互联网…

做地推共享wifi贴的如今都怎么样了?

近年来,随着移动互联网的普及和发展,无线网络已经成为人们日常生活中不可或缺的一部分。然而,很多公共场所的WiFi网络并不方便使用,需要输入密码或者注册账号,给用户带来了不便。为了解决这个问题,一种名为…