我試圖更好地理解SQL在實踐中的工作原理。 它是否將重複記錄作爲附加參數(表示多重性)存儲到記錄中?或者,我們是否簡單地向表中添加另一個重複記錄?或者,還有其他一些方法?我很好奇大多數SQL發行版。SQL實現如何在內部存儲重複記錄?
例如,假設我們有關係R(A,B,c)與整數屬性,我們可以如下存儲在內部:
Integer-a Integer-b Integer-c Multiplicity
1 2 3 2
備選地
Integer-a Integer-b Integer-c
1 2 3
1 2 3
我很驚訝它的作品是這樣的!特別是當有行李如十字路口時。在最壞的情況下,O(m)空間與O(1)空間。 – Daniel
@丹尼爾。 。 。不要認爲任何真正的數據庫都是關係模型的學術純粹實現。最好說關係代數啓發了SQL。反過來,真實世界的實現受到更多世俗考慮的深刻影響。也許,關係代數是任何給定數據庫的DNA,但其實現更多地受到環境因素的影響。 –
還要注意,現在重複數據刪除經常發生在文件系統或更低級別 – Gnudiff