TINY WEB

​ 基于CSAPP的课本教程,我实现了一个简单的服务器demo。该demo仅仅只有250行,但是存在着一个服务器所必须的简单的提供服务的功能,在这里对其进行一个简单的复盘。

Read more »

关系数据库设计

略去前置知识,保留一些比较重要的知识,不保证连贯性,需要自行阅读书本后再来进行串联起来


关系模式的分解

在数据库设计中,分解(Decomposition)是指将一个关系模式拆分为多个子模式,以减少冗余、消除数据异常,并提高数据一致性。


Read more »

Paging

​ 此篇是在我在OSTEP中看到内存虚拟化分页这一章时所遇到的。需要注意的是,此篇写时我还有点感冒后遗症,脑袋不大清晰,有些地方逻辑会存在混乱,谅解吧。

Read more »

系统调用的本质解析

1. 为什么系统调用看起来像过程调用?

在《OSTEP》一书中,提到了一个有趣的问题:为什么系统调用在高级语言层面上看起来像普通的过程调用?

要理解这个问题,需要认识到计算机程序的本质:无论是操作系统(OS)还是用户程序,它们在运行时都是对数据的处理,而数据的处理依赖于 CPU 执行的底层指令。因此,我们可以从 数据指令 这两个维度来分析系统调用的特殊性。


Read more »

Storage

Tuple-Oriented Storage

​ 在前面,我们初步了解了一种数据在底层的组织形式,在这里我们考虑一个问题,即使我们知道了一个数据的存在,我们需要怎么去找到这个数据呢?

Read more »

储存管理

前情回顾

​ 接下来,我将跟着15445的进度跳过中间的中级SQL和高级SQL和其他一些对于数据库的优化操作,直接跳到书籍的第三章节中来。正如15445在课程中所说的,这门课程主要是为了让我们了解一个数据库系统到底是什么,而不是了解数据库系统怎么来进行使用。

Read more »

数据修改

​ 在此前的几个文档中,我们都专注于对于数据库数据的抽取,接下来可以进入对于数据库数据的增删改了。这也基本是modernSQL的尾声了。

Read more »

函数对象

​ 函数对象其实本身并不神秘,简单来说,一个函数对象就是能够被以函数调用形式来进行调用的任意对象。可以想到,函数对象就应该包括函数名,函数指针以及重载了()运算符的类对象。

Read more »

窗口函数

​ 接下来看一些DBMS中存在的一些窗口函数。

![image-20250225092345760](./1.3-Modern SQL(function)/image-20250225092345760.png)

​ 上面那句话其实就是说一个窗口函数是对于输出序列中的一个特定窗口范围内的数据进行操作的函数。这个函数于聚合函数相似,都是对于一系列的元组执行操作的函数,但是这个函数于聚合函数最大的不同就是窗口函数并不会对输出结果进行合并,而是每个输入元组都能获得一个窗口函数的一个输出属性。

​ 没意思,润

Read more »

字符串

​ 在SQL中,自然也存在字符串这种元素。一般来说,SQL使用单引号**’ ‘**来标识这是一个字符串,同时在SQL标准中,数据库对于字符串大小写应该是一个敏感的状态。但是,很多数据库系统中,包括但不限于MySQL和SQL Server中,对于这些个标准都是存在一些选择的。例如在MySQL中,其对于字符串的大小写就是不敏感的,当然,你可以在MySQL中去使用对于的标准设置语句去进行调整。不过种种这些,都是一些小玩意,在使用具体的数据库时去进行适当的调整即可,没必要去进行一个个的深入了解。

Read more »