Relational-Theory
為什麼 Cassandra 不被視為關係數據庫?
閱讀此答案
關係數據庫基於關係模型,這是一種在表中表示數據的直覺、直接的方式。在關係數據庫中,表中的每一行都是具有唯一 ID 的記錄,稱為鍵。表的列保存數據的屬性,每條記錄通常都有每個屬性的值,便於建立數據點之間的關係。
Cassandra 有桌子。
CREATE TABLE movies ( movie_id UUID, title TEXT, release_year INT, PRIMARY KEY (( movie_id )) );
關係數據與 ACID 屬性的支持無關。
關係數據與規範化數據無關
- 為什麼 Cassandra 不被視為關係數據庫?
- 為什麼 Cassandra 被認為是 NoSQL 數據庫?儘管它有桌子
Cassandra 不是 RDBMS,因為它不支持關係數據模型。
關係模型的基本假設是所有數據都表示為數學 n 元關係,n 元關係是 n 個域的笛卡爾積的子集
https://en.wikipedia.org/wiki/Relational_model
相反,它將數據建模為鍵值儲存,其中值是行。但並不要求“表”中的所有“行”都具有相同的“列”,就像關係模型中的情況一樣。
來自維基百科:
與 RDBMS 中的表不同,同一列族中的不同行不必共享同一組列,並且可以隨時將列添加到一行或多行。
$$ 29 $$ Cassandra 中的每個鍵對應一個值,該值是一個對象。每個鍵都有作為列的值,並且列被分組到稱為列族的集合中。因此,每個鍵標識一行可變數量的元素。這些列族可以被視為表。Cassandra 中的表是由鍵索引的分佈式多維映射。此外,應用程序可以指定超級列或簡單列族中列的排序順序。