摘要: https://15445.courses.cs.cmu.edu/fall2022/project1/ OVERVIEW 在本学期中,你将为 BusTub DBMS 构建一个新的 disk-oriented storage manager。这种 storage manager 假定数据库的主存储位置 阅读全文
posted @ 2022-11-22 22:12 Joey-Wang 阅读(332) 评论(0) 推荐(0)
摘要: https://15445.courses.cs.cmu.edu/fall2022/project0/ bustub 项目用 C++ 17 编写,但 C++ 11 已经够用。 C++ 相关教程: short tutorial cppreference A Tour of C++ and Effect 阅读全文
posted @ 2022-11-22 21:48 Joey-Wang 阅读(436) 评论(0) 推荐(0)
摘要: 此处完成的是 CMU15-445 Fall2022 的 bustub 项目。 创建 Private Repo 在 github “create a new repository” 页面中直接创建一个private仓库,如 bustub-private。 # 1. 在本地创建一个原仓库的 bare c 阅读全文
posted @ 2022-11-22 21:34 Joey-Wang 阅读(587) 评论(0) 推荐(0)
摘要: 第一章 C++的初步认识 类是C++新增加的重要数据类型,可以体现数据的封装性和信息隐蔽。 封装:把有关数据与操作组成一个单位,与外界相对隔离。 大多情况下,将类中所有数据指定为私有,以实现信息隐蔽。 有类,可实现面向对象程序设计方法的封装、信息隐蔽、继承、派生、多态等功能。 声明语句即可放在函数内 阅读全文
posted @ 2022-11-22 21:27 Joey-Wang 阅读(83) 评论(0) 推荐(0)
摘要: 看的Linux公社的一篇文章,觉得不错,内容复制过来了。 其实在这之前,我一直以为gcc和g++是一个东西,只是有两个不同的名字而已,今天在linux下编译一个c代码时出现了错误才找了一下gcc和g++的区别。 先描述一下今天遇到的错误: 因为以前写程序的时候,写的都是cpp文件,然后就直接使用g+ 阅读全文
posted @ 2022-11-22 21:25 Joey-Wang 阅读(345) 评论(0) 推荐(0)
摘要: Make 与 CMake CMake 入门实战 Make 🆚 CMake 首先先来了解一下gcc,gcc是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(包括C、C++、Objective-C、Fortran、Java等等) 阅读全文
posted @ 2022-11-22 21:23 Joey-Wang 阅读(195) 评论(0) 推荐(0)
摘要: 从零开始介绍cmake-bilibili 说明 cmake的定义是什么 ? 高级编译配置工具 当多个人用不同的语言或者编译器开发一个项目,最终要输出一个可执行文件或者共享库(dll,so等等)这时候神器就出现了 CMake! 所有操作都是通过编译CMakeLists.txt来完成的—简单 官 方网站 阅读全文
posted @ 2022-11-22 21:22 Joey-Wang 阅读(114) 评论(0) 推荐(0)
摘要: **review:** 上节课我们说对于非唯一性索引(有重复的key): - Duplicate Keys:使用相同的叶结点布局,但存储 Duplicate Keys 多次。(更常用) - Value Lists:每个键 key 存储一次,并维护一个唯一的 value 的链表。 但在B+树中,实际应 阅读全文
posted @ 2022-11-22 18:12 Joey-Wang 阅读(70) 评论(0) 推荐(0)
摘要: **review:** 我们上节课讨论了DBMS系统内部的 data structure: - **Internal Meta-Data(内部元数据)**:跟踪数据库和系统状态的信息。 - **Core Data Storage(核心数据存储)**:可以用作数据库中 tuple 的基础存储。数据库所 阅读全文
posted @ 2022-11-22 18:11 Joey-Wang 阅读(121) 评论(2) 推荐(0)
摘要: **review:** 我们已讨论了如何往磁盘上存储数据,如何在磁盘上表示 page;如何将这些 page 放入内存、buffer pool 及其优化;并且通过⼀种策略来决定何时将 page 从 buffer pool 中移除,以及当我们在做写操作时,该如何锁住(pin)东⻄。 ## 1 数据结构 阅读全文
posted @ 2022-11-22 18:10 Joey-Wang 阅读(204) 评论(0) 推荐(0)
摘要: **review: database workloads** OLTP:收集数据,运算快速,每次只读取/更新一小部分数据。(simple,read) OLAP:查询复杂,对大量OLTP收集数据进行读取分析,以推断出新数据。(complex,write) HTAP:既做OLTP又做OLAP的数据库系统 阅读全文
posted @ 2022-11-22 18:09 Joey-Wang 阅读(87) 评论(0) 推荐(0)
摘要: 我们希望构建面向磁盘的DBMS。 我们之前说过,数据库由一系列page表示;接着我们讨论了如何将heap文件拆分为page;然后讲了page中组织tuple的常用方法slotted-pages;最后是tuple中布局。 ## 1 数据表示 Tuple本质上就是 byte 数组。DBMS的任务就是将那 阅读全文
posted @ 2022-11-22 18:08 Joey-Wang 阅读(86) 评论(0) 推荐(0)
摘要: 前两节课讨论了从一个高级层面看待一个数据库该是怎样的,以及从逻辑层面而言对开发人员的样子。 本课程讨论实际该如何构建管理数据库系统(构建`面向磁盘的数据库管理系统`:数据库存储在磁盘中)。 这节课及下节课,集中讲解磁盘管理器,即我们实际该如何将数据存储在磁盘的文件中。然后,在此之上,我们需了解哪些A 阅读全文
posted @ 2022-11-22 18:07 Joey-Wang 阅读(128) 评论(0) 推荐(0)
摘要: 上节课提到关系代数,其目标是 **从更高层面告诉数据库我们想要的结果,而不告诉它如何做。** 🌰 对数据进行进行排序,若我们必须告诉数据库系统具体该如何做,则需提供给它具体的某种排序算法;若我们使用高级语言/声明式语言,则只需告知数据库完成对数据的排序,而并不介意它实际怎样完成。 👆是声明式语言 阅读全文
posted @ 2022-11-22 18:06 Joey-Wang 阅读(93) 评论(0) 推荐(0)
摘要: ### 课程大纲 1. 关系数据库概念 2. 数据库的存储 3. 数据库的查询 4. 数据库的并发控制,事务管理,遇到冲突或需要重启系统时如何恢复数据库 5. 更高级的内容——分布式数据库,其他类型的数据库,关系型数据库的扩展 ### 项目 如何构建一个用于评测的面向磁盘的数据库系统 面向磁盘:假设 阅读全文
posted @ 2022-11-22 18:05 Joey-Wang 阅读(168) 评论(0) 推荐(0)
摘要: https://www.yuque.com/awescnb 1、修改博客皮肤为 Custom 2、在页面定制 CSS 代码 中 ( 注意要勾选禁用模本默认CSS ) 添加以下地址中的css代码: #loading{bottom:0;left:0;position:fixed;right:0;top: 阅读全文
posted @ 2022-11-22 17:55 Joey-Wang 阅读(47) 评论(0) 推荐(0)
摘要: https://github.com/BNDong/Cnblogs-Theme-SimpleMemory https://www.likecs.com/show-306717407.html 1、修改博客皮肤为 SimpleMemory 2、在页面定制 CSS 代码 中 ( 注意要勾选禁用模本默认C 阅读全文
posted @ 2022-11-22 17:49 Joey-Wang 阅读(53) 评论(0) 推荐(0)