一、基本理解
数据结构:主要研究数据如何在内存中高效的存储、计算,用最快的速度解决一类问题(比如hash表,排序算法,B树等);
数据库系统:存储海量的数据,并对这些数据做有效的查询。
二、二者关系
数据库系统的数据处理分为几类:tuple-based(一次只操作一个表即可,如选择、映射操作),table-based(要进行操作必须将全表装入内存,如group操作,join操作)。
这些运算的逻辑都很简答,如果能全部装入内存,则不需要极高的数据结构设计来优化。
问题的核心是,数据库处理的数据量较大,一个表的存储量远远大于内存容量,因此,就需要设计相应的算法,来使用有限的内存高效的完成全表操作。
三、数据结构对大表的处理支持
当内存装不下整个表时,就需要采取“two--pass”或者“multi-pass”操作(一个pass即将整个表从磁盘读入内存一遍)。
我们拿表R和S的自然Join操作为例:
基本方法:tuple-based nested