数据库
3A是个坏同志
SG-Studio负责人
展开
-
关系代数、SQL与逻辑式语言
“SQL其实是一种功能被极限阉割的逻辑式语言”我说这个话有很多人不懂,单纯会SQL的其实还好,但是上了数据库课程,学了“关系代数”之后,再面对这个问题就直接迷惑了。甚至一些原先还很懂逻辑和函数式语言的人,上完了数据库就像被洗了脑一样。最近在一些事情的逼迫下,我好好思考了一下这个问题,终于明白了“关系代数”能把那么多人洗脑的原因。首先我们要明确一点,“关系”也就是一阶逻辑中的“谓词”(如果你...原创 2020-04-30 02:15:15 · 994 阅读 · 0 评论 -
关系模型的实质
关系模型的实质每当我批评 SQL,就有人说我其实不理解关系模型,说关系模型本身并没有问题,所以现在我就来分析一下什么是关系模型的实质。其实关系模型比起逻辑式语言,基本就是个衍生产物,算不上什么发明。关系代数其实对应逻辑式语言里面的一个很小的部分——它的数据结构及其基本操作,只不过关系模型有更大的局限性而已。所以学会了逻辑式语言的设计之后,你直接就可以把关系模型这种东西想出来。每当谈到关系模型,...转载 2019-05-25 15:34:04 · 1075 阅读 · 0 评论 -
文件系统索引的数据结构——B-/+Tree
在使用文件时,操作系统需要通过文件名查找到文件的实际地址。建立索引数据结构可以有效加快这个查找过程。目前的文件系统及数据库系统普遍采用B-/+Tree作为索引结构。对于索引查找行为本身来说,如果全部数据都加载进了速度很快的内存,使用传统的二叉树作为索引也未尝不可。但因为索引数据太大,一般不能全部加载到内存。相对于内存存取,I/O存取的消耗要高几个数量级,索引的结构组织要尽量减少查找过程中磁盘I/O...原创 2019-06-05 00:37:16 · 2641 阅读 · 2 评论