資料庫 實現篇 第十六講

2021-10-07 18:52:19 字數 1828 閱讀 6893

整個關係一元操作的問題:任何乙個元組需要與所有元組進行比較,才能確定最終結果。這些需要記憶體

記憶體不夠儲存整個關係怎麼辦??——兩趟 / 多趟演算法

兩趟演算法基本思路:

(1)第一趟:劃分子集,使子集具有某種特性(有序/具有相同雜湊值)。處理好之後將結果寫回磁碟

將磁碟上的資料重新建立資料結構

(2)處理全域性性的內容操作。多子集歸併、相同雜湊值操作

(1)內排序問題:待排序資料可一次性裝入記憶體中

插入排序、選擇排序、氣泡排序

(2)外排序問題:待排資料不能一次性裝入記憶體

演算法思路:

(1)第一趟:劃分為子集合並子集排序

(2)第二趟:各子集歸併,縱向處理

演算法複雜性:3b® / 4b®

演算法應用條件:

子集合數

大資料集塊數》bmemory*bmemory ,則可以採用多趟歸併排序演算法

去重複操作

(1)第一趟,劃分子集並進行子表排序;

第二趟:歸併階段,在排序的基礎上直接將重覆記錄剔除不輸出;

(2)演算法複雜性:3b® / 4b®

分組聚集操作 group by

(1)第一趟,劃分子集並進行子表排序;

第二趟:歸併階段,在排序的基礎上,將不重複的記錄作為新分組輸出,將重複的記錄進行分組聚集計算;

(2)演算法複雜性:3b® / 4b®

基於排序的並、交、和、差

(1)(2)交運算

都需要兩趟,需要處理出現次數或去重複

第一趟:劃分r和s的子表並排序;

第二趟:r和s的輸入之間按要求輸出

(3)差運算

都需要兩趟,需要處理出現次數或去重複

第一趟:劃分r和s的子表並排序;

第二趟:r和s的輸入之間按要求輸出

(4)基於排序的連線運算

基本思想:將大資料集劃分為若干個子集,將大資料集上的操作轉換為子集上的操作

第一趟:雜湊函式,將原始關係均衡地雜湊成m-1個子表,並儲存。相同雜湊值的元組一定被對映到相同子集合

第二趟:用另乙個雜湊函式將字表讀入記憶體,在記憶體當中進行不同操作的處理

雜湊函式的選擇和操作有關

去重複操作

(1)第一趟:將原始關係通過hp雜湊成m-1個子表,並儲存

第二趟:處理每乙個字表,用另乙個雜湊函式hr形成雜湊資料結構,進行去重複操作

hp:計算元組部分屬性值mod m

hr:計算整個元組的值mod m

(2)演算法複雜性:3b® / 4b®

分組屬性

(1)依據分組屬性進行雜湊

第一趟:將原始關係通過hp雜湊成m-1個子表,並儲存

第二趟:處理每乙個字表,用另乙個雜湊函式hr形成雜湊資料結構,進行分組聚集操作

hp:計算分組屬性值mod m

hr:以分組屬性的二進位制位串重新計算值,然後mod m

(2)演算法複雜性:3b® / 4b®

(3)核心思路:

基於雜湊的並、交、差操作

基於雜湊的連線操作

(1)劃分子表

(2)儲存塊對映

第十六講 模板方法模式

template method模式也叫模板方法模式,是行為模式之一,它把具有特定步驟演算法中的某些必要的處理委讓給抽象方法,通過子類繼承對抽象方法的不同實現改變整個演算法的行為。template method模式一般應用在具有以下條件的應用中 package test.com.templatemet...

實習篇 第十六天

來到公司很快的投入到任務中!現在就差許可權和子許可權的問題了,這一模組,我是一竅不通,不知道公司在這一模組上是如何做的!那我就去問師傅,好吧,我忘記了今天是星期四,公司的系統每週四是需要提交的,就是發布新的版本,整個公司的員工各種忙,師傅說,好忙沒時間讓我做其他的!然後我就看了看其他功能模組的 當然...

C 銳利體驗 第十六講 對映

c 銳利體驗 南京郵電學院李建忠 lijianzhong 263.第十六講對映 動態型別查詢 我們知道,c 編譯後的 pe檔案主要由 il 和元資料組成,元資料為 元件提供了豐富的自描述特性,它使得我們可以在 執行時獲知元件中的型別等重要的資訊。在 c 中這是通過一種稱作對映 reflection ...