Relational-Theory

為什麼 Cassandra 不被視為關係數據庫?

  • December 5, 2020

閱讀此答案

關係數據庫基於關係模型,這是一種在表中表示數據的直覺、直接的方式。在關係數據庫中,表中的每一行都是具有唯一 ID 的記錄,稱為鍵。表的列保存數據的屬性,每條記錄通常都有每個屬性的值,便於建立數據點之間的關係。

Cassandra 有桌子。

CREATE TABLE movies (
   movie_id UUID,
   title TEXT,
   release_year INT,
   PRIMARY KEY (( movie_id ))
);

關係數據與 ACID 屬性的支持無關。

關係數據與規範化數據無關


  1. 為什麼 Cassandra 不被視為關係數據庫?
  2. 為什麼 Cassandra 被認為是 NoSQL 數據庫?儘管它有桌子

Cassandra 不是 RDBMS,因為它不支持關係數據模型。

關係模型的基本假設是所有數據都表示為數學 n 元關係,n 元關係是 n 個域的笛卡爾積的子集

https://en.wikipedia.org/wiki/Relational_model

相反,它將數據建模為鍵值儲存,其中值是行。但並不要求“表”中的所有“行”都具有相同的“列”,就像關係模型中的情況一樣。

來自維基百科:

與 RDBMS 中的表不同,同一列族中的不同行不必共享同一組列,並且可以隨時將列添加到一行或多行。

$$ 29 $$ Cassandra 中的每個鍵對應一個值,該值是一個對象。每個鍵都有作為列的值,並且列被分組到稱為列族的集合中。因此,每個鍵標識一行可變數量的元素。這些列族可以被視為表。Cassandra 中的表是由鍵索引的分佈式多維映射。此外,應用程序可以指定超級列或簡單列族中列的排序順序。

https://en.m.wikipedia.org/wiki/Apache_Cassandra

引用自:https://dba.stackexchange.com/questions/280929