【CMU 15-445】学习笔记与Lab汇总

【CMU15-445数据库】bustub 项目介绍及环境配置 突然想起来之前一直想做的 CMU 15-445 课程的 2022 Fall 学期开课了,所以决定把 Pintos 项目先放一放,开个新坑跟着 CMU 同步把这个项目做了。 阅读详情
AI摘要

本文记录了学习CMU数据库原理课程15-445的过程,遵循Fall2023的Schedule,包括阅读教材、听Lecture和做Project。重点内容涉及排序与聚合算法、连接算法、查询执行、并发控制理论等,并分享了学习笔记和解题思路,但不公开代码。

又来开新坑啦!本门课程为CMU的数据库原理课程15-445,我学习的版本为Fall2023,教授为Andy(上课有DJ)。准备跟着课程的Schedule来做,就是先看配套教材的相应章节(Database-System-Concept-7th),再看Lecture,最后做Project。在看完教材与Lecture之后,我会写出自己的学习笔记,在做完之后,我会写出相应的思考过程与自己的解题思路,但不会公开任何代码(应Andy强烈要求!)

学习笔记

顺序是跟着课程主页的Schedule来的,会将我自己觉得比较容易遗忘以及比较困难的地方写出来。
前面Lecture1到9我没有做总结,只是做了对应书里章节的总结
从Lecture10开始我会跟着Lecture做总结,不再单独做书本内容的总结了

Chapter 2

Chapter 13

Chapter 14

Chapter 24

Lecture 10: Sorting & Aggregations Algorithms

Lecture 11: Joins Algorithms

Lecture 12: Query Execution I

Lecture 13: Query Execution II

Lecture 15: Concurrency Control Theory

Lecture 16: Two-Phase Locking Concurrency Control

Lecture 17: Timestamp Ordering Concurrency Control

Lecture 18: Multi-Version Concurrency Control

Project汇总

C++ Primer

Buffer Pool Manager

Hash Index

Query Execution

Concurrency Control

CMU15-445 Project1总结2021年 本篇博客是对CMU15-445课程project1的总结,代码的实现借鉴了一些其他前辈的代码,因为自己的C++实在是小白水平,对数据库的实现理解的也不够透彻,就抄了大家的代码,然后理解这些代码之后,再作此篇总结,加深对知识点的理解。 这里附上借鉴的博客:[已满分]CMU数据库(15-445)实验1-BufferPoolManager。 本次实验的原文要求在这里PROJECT #1 - BUFFER POOL 关于本门课程的知识点总结我推荐[CMU-15445] 总述 Project1要求我们实现一个数据库的 阅读详情

相关推荐

CMU15-445 Lab0 - C++ Primer

Lab0- C++ Primer ???? unique_ptr、矩阵相乘、gdb等。 代码下载 按照项目下的文档步骤: // 1. 新建一个仓库 bustub-private // 2. clone cmu db 远程代码到本地 git clone --bare https://github.com/cmu-db/bustub.git bustub-public cd bustub-public // 3. mirror到自己刚创建的远程仓库 git push --mirror git@githu

梦初始的地方,它也需要生根发芽。 2097

【CMU 15-445】Extendible Hash Table 可扩展哈希详细理解

CMU 15-445 Database System, 可扩展哈希(Extendible Hash Table),详细理解。

MelroseLbt的博客 5394

CMU15-445:Lab1缓冲池管理器

Lab1缓冲池管理器 概览 实验的目标系统 BusTub 是一个面向磁盘的 DBMS,但磁盘上的数据不支持字节粒度的访问。这就需要一个管理页的中间层,但 Andy Pavlo 教授坚持不使用 mmap 将页管理权力让渡给操作系统,因此实验一 的目标便在于主动管理磁盘中的页(page)在内存中的缓存,从而,最小化磁盘访问次数(时间上)、最大化相关数据连续(空间上)。 该实验可以分解为相对独立的两个子任务: 维护替换策略的: LRU replacement policy 管理缓冲池的: buffer p

漏网小鱼的博客 2092

CMU 15-445 -- 关系型数据库重点概念回顾 - 01

CMU 15-445 -- 关系型数据库重点概念回顾

m0_53157173的博客 1780

CMU 15-445 Lab1 - Buffer Pool Manager

Lab1 - Buffer Pool Manager 实验指导书 构建一个新的面向磁盘的存储管理器,这样的存储管理器假定数据库的主要存储位置在磁盘上。 在存储管理器中实现缓冲池。缓冲池负责将 pag 从主存到磁盘来回移动。允许 DBMS 支持大于系统可用内存量的数据库。缓冲池的操作对系统中的其他部分是透明的。例如,系统使用其唯一标识符 ( page_id_t)向缓冲池请求页面,但它不知道该页面是否已经在内存中,或者系统是否必须从磁盘中检索它。 实现需要是线程安全的。多个线程将同时访问内

梦初始的地方,它也需要生根发芽。 1969

银河麒麟arm64 V10 SP1桌面系统高效部署onnxruntime推理环境实战

本文详细介绍了在银河麒麟arm64 V10 SP1桌面系统上高效部署onnxruntime推理环境的完整实战流程。从系统环境准备、关键依赖安装,到onnxruntime的安装验证,并以YOLOv5模型部署为例进行性能对比分析,提供了在国产化飞腾D2000平台上进行AI边缘推理的实用指南和避坑技巧。

ss78901的博客 636

(全网最详细!!!)CMU15-445(Fall 2023)——从环境搭建开始的P0详细历程及踩坑经历

CMU15-445(Fall 2023)——从环境搭建开始的P0详细历程,以及各种各样的踩坑经历和解决办法,最最最最详细!

weixin_49614712的博客 9052

ESP32-CAM图传小车:端边协同的嵌入式视觉系统设计

在物联网边缘智能场景中,嵌入式视觉系统需平衡实时性、算力与成本。其核心在于理解图像采集、硬件编码、低延迟传输与分层计算的基本原理——OV2640等CMOS传感器配合JPEG硬件编码可显著降低主控负载;TCP流式协议比HTTP/RTSP更适配资源受限MCU;而‘计算卸载’架构将OpenCV等重负载移至Android端,使ESP32专注实时控制与传输,既发挥FreeRTOS任务调度优势,又规避了PSRAM带宽与内存瓶颈。该模式广泛适用于教育机器人、智能巡检及DIY视觉终端等场景,本文以WiFi图传坦克小车为载体

weixin_42524864的博客 372

CMU 15-445/645 Lab1-BUFFER POOL

0.写在前面 GitHub同步更新,欢迎star~ https://github.com/kaniel-outis/CMU15-445 写这篇文章的时候看到 lecture 5:Buffer Pool. 写完homework 1,然后准备动手Lab1。 Lab1的地址:https://15445.courses.cs.cmu.edu/fall2020/project1/ Task1 - LRU REPLACEMENT POLICY 这一部分的Lab在 lecture 5:Buffer Pool中有一些讲解

yyy_3y的博客 1298

电磁场可视化

电磁场可视化 如题,做了电磁场可视化这么久了,也是颇有些心得了,简单描述一下怎么做这个项目的。 开始时是从最基本的OpenGL开始做的,必不可少的翻了许多的文献,后来是直接在unity中做,发现效果挺好,而且可控性强好多。反复琢磨后,发现可视化的渲染,有几种思路,第一就是用linerender,画线的方法,另一种就是用shader。 第一种我通过unity自带的linewave插件可以做到 详细的就是,linewave插件可以轻松画出曲线等,并且可以添加碰撞,控制频率幅度长度等一切的条件数值,而且令人惊喜

weixin_43979140的博客 1670

保姆级避坑指南:用IWR6843ISK毫米波雷达实现区域检测,从软件安装到可视化调试全流程

本文提供IWR6843ISK毫米波雷达区域检测的全流程实战指南,涵盖环境搭建、固件烧录、可视化工具配置及性能优化等关键步骤。重点解决软件版本兼容性、烧录失败等常见问题,帮助开发者高效实现精准区域检测,避免开发过程中的常见陷阱。

weixin_42653691的博客 374

CMU 15-445/645 Lab2-B+Tree Index

0.写在前面 GitHub同步更新,欢迎star~ https://github.com/kaniel-outis/CMU15-445 Lab2的地址:https://15445.courses.cs.cmu.edu/fall2020/project2/ 本文主要总结一下在写Lab2遇到的几个问题,然后是Task的解决思路(不公开代码,如果有问题可以留言)。 对应lab2-check point 1. Task #2.a - B+Tree Data Structure (Insertion & P

yyy_3y的博客 1980

Calibre 3Dstack --每日一个命令day27【overlap】(3-27)

本文介绍了Calibre3Dstack中overlap命令的使用方法。该命令用于检查两个已放置层之间的重叠量是否符合要求,支持设置检查名称、层类型、堆叠范围、检查方向等参数。关键参数包括:-constraint指定重叠约束条件,-exact控制百分比精度,-by_area切换为面积检查模式,-intersection报告相交区域。检查结果可通过RVE选项定制显示方式,适用于3D堆叠设计中的层间重叠验证场景。

u013620135的博客 112

【CMU15-445 FALL 2022】Project #0 - C++ Primer

字典树又称前缀树,是一种有序树,用于保存关联数组,其中的键通常是字符串.——

半生瓜のblog 2557

【法如faro】三维激光软件Scene2023数据处理(自动配准并转换坐标)流程

法如faro Scene2023数据处理(自动配准并转换坐标)的主要流程为:新建项目、导入数据、处理、自动注册、坐标系转换、模型导出立和面模型导出等。

智慧空间实验室 2382

2026年国赛C题微网与外部电网电力调控策略 (三):问题三、问题四滚动预测、实时电价与结果核验

专栏内定期更新ABCDE五题详细思路、代码(含运行结果图)和讲解视频-(11号之前半价):问题三看起来只是多给了一个光伏预报附件,实质上它改变了整道题的信息结构:问题四则是在问题二、问题三之上替换价格来源。问题4-2相当于“确定性计划+实时电价”,问题4-3相当于“滚动预测+实时电价”。物理模型完全不变,改变的是价格序列和费用口径。本文先给出核心结果:从结果看,问题3比问题2多约164.21万元,问题4-3比问题4-2多约168.79万元。主要增量不是“储能没有工作”,而是预测误差、计划偏差和紧急购电造成的

YOLO 343

CMU15-445数据库系统课程实验详解

CMU-15-445 学完CMU15-445之后有很大的收获,特别做其中的实验,因此记录了一些笔记。 课程地址 CMU的数据库系统课程时间表 实验代码 课程简介 该课程是CMU的数据库系统的基础课程,实验需要使用C++11,一共有四个实验: 缓冲池管理器 B+树 并发控制 记录和恢复 实验代码在Lab目录下,如果想获得没完成实验前的代码,可以在github搜索,找找就有了。 建议 每次实验前都...

westbrookliu的博客 8828

Hermes Agent 常见报错排查与问题解决

Hermes Agent 常见报错排查指南 摘要 本文全面梳理了 Hermes Agent 使用过程中的10类常见报错,按阶段划分为安装期、运行期认证类、后端基础设施类和长任务执行类四大类,并提供了系统化的排查流程: 安装期问题:包括命令未找到和Python版本不兼容,主要检查PATH环境和Python版本是否符合要求 认证类问题:涉及API Key认证失败和速率限制,需要验证密钥配置和配额状态 基础设施问题:包含Docker报错、MCP连接失败和OAuth令牌过期,需检查相关服务状态 执行类问题:主要是上

简简单单Onlinezuozuo 1344

CMU 15-445 23Fall Lab 总结

的页(帧)进行替换。(1)HashJoin执行器:维护一个哈希表 (unordered_multimap<HashJoinKey,Tuple>),类似Aggregation执行器自定义一个 HashJoinKey类和它的哈希函数,用plan的表达式计算各元组的HashJoinKey,在 Init()中。(1)buffer pool管理的是page的元数据,而page中的锁管理的是page的data, 所以buffer pool中不需要对page加锁。

m0_67168421的博客 802

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

CMU 15-445 Project 2 B+ Tree 技术总结

首先是教科书的伪代码,基本都要按这个来写,不然写不出来的

锐龙处理器 1976

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

cmu 15-445 2024fall lab1 buffer pool manager

因为我的脏页是evict时才会淘汰,evict时把page_table中的脏页映射删除,然后放bpm锁,然后刷脏,这是如果有操作访问旧页,因为页面映射已经被删除回去读磁盘,这时脏页不一定落盘,会导致数据还未写入磁盘读取到不一致的数据,于是新增了一个map用来保存脏页id,如果访问的是正在刷新脏页的话sleep一会,刷新完毕再更新map,优先淘汰访问次数小于k的,一个是访问次数小于k时淘汰第一次访问时间距离当前最远的,大于k时,淘汰最后一次访问时间距离当前最远的。又把frame的锁放在 bmp锁后解锁。

weixin_41685257的博客 405

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

CMU 15-445/645 Lab3-Query Execution

0.写在前面 Lab3的地址:https://15445.courses.cs.cmu.edu/fall2020/project3/ 本文主要总结一下在写Lab3需要的基础知识以及Task的解决思路(不公开代码,如果有问题可以留言)。 Lab3的主要内容是TableIndex 1.Task #1 - SYSTEM CATALOG 数据库维护一个内部目录(catalog)记录了整个数据库中的table和index信息。 有了catalog,我们就可以从table/index的名字或id,找到这个table/i

yyy_3y的博客 2520

CMU 15-445 LAB 0 Trie

CMU 15-445 LAB0 Trie

weixin_42044979的博客 1092

CMU15-445 数据库实验全满分通过笔记 2021 Fall bustub-cmudb lab

CMU-DB 数据库15445 2021 bustub lab0 lab1 lab2 lab3 lab4 Project实现及C++学习记录

twentyonepilots的博客 1万+

CMU15-445 2024Fall Project#0 C++Primer完成心得

位仍然是寄存器索引,但是首1是从低位开始找,且只算连续0的个数,不算第一个1。时需要将两组寄存器的低4位的位图和高3位的位图组合成7位位图再进行转换。流程大致如Task1,可以同Task1进行二进制转换,也可以直接对。在完成整个Lab时,注意数据类型匹配!的情况加以判断,故不好在初始化列表中直接对。理解上图就可以达到Task1的要求了。流程大致如Task1,不过在计算。注意点同Task1,不需要对。->二进制转换->索引高。就能完成这个Task了。

weixin_70918468的博客 215

CMU数据库(15-445) Lab4-CONCURRENCY CONTROL

Lab4- CONCURRENCY CONTROL优惠券平台 www.cqfenfa.com 拖了很久终于开始做实验4了。lab4有三个大任务1. Lock Manager、2. DEADLOCK DETECTION 、3. CONCURRENT QUERY EXECUTION。这里20年的lab好像和之前的不太一样记得之前有日志和错误恢复lab的。不过就做这个最新的了。 Task1 LOCK MANAGER 1.1 任务描述 这个任务只需要修改两个文件concurrency/lock_manager.c.

weixin_48967543的博客 1803
上一篇: 【MIT 6.S081】课程介绍与Lab汇总
下一篇: 【Database System Concept 7th】Chapter 2 Introduction to the Relation Model 读书笔记
juruo_c
博客等级 码龄6年 520粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值