Я изучаю различные типы баз данных NoSQL и пытаюсь понять модель данных хранилищ столбцов, таких как Bigtable, HBase и Cassandra.
Первая модель
Некоторые люди описывают семейство столбцов как набор строк, где каждая строка содержит столбцы [1], [2]. Пример этой модели (семейства столбцов указаны в верхнем регистре):
{
"USER":
{
"codinghorror": { "name": "Jeff", "blog": "http://codinghorror.com/" },
"jonskeet": { "name": "Jon Skeet", "email": "[email protected]" }
},
"BOOKMARK":
{
"codinghorror":
{
"http://codinghorror.com/": "My awesome blog",
"http://unicorns.com/": "Weaponized ponies"
},
"jonskeet":
{
"http://msmvps.com/blogs/jon_skeet/": "Coding Blog",
"http://manning.com/skeet2/": "C# in Depth, Second Edition"
}
}
}
Вторая модель
Другие сайты описывают семейство столбцов как группу связанных столбцов в строке [3], [4]. Данные из предыдущего примера, смоделированные следующим образом:
{
"codinghorror":
{
"USER": { "name": "Jeff", "blog": "http://codinghorror.com/" },
"BOOKMARK":
{
"http://codinghorror.com/": "My awesome blog",
"http://unicorns.com/": "Weaponized ponies"
}
},
"jonskeet":
{
"USER": { "name": "Jon Skeet", "email": "[email protected]" },
"BOOKMARK":
{
"http://msmvps.com/blogs/jon_skeet/": "Coding Blog",
"http://manning.com/skeet2/": "C# in Depth, Second Edition"
}
}
}
Возможное объяснение первой модели заключается в том, что не все семейства столбцов имеют такое отношение, как USER
и BOOKMARK
. Это означает, что не все семейства столбцов содержат одинаковые ключи. С этой точки зрения размещение семейств столбцов на внешнем уровне кажется более естественным.
Название «семейство столбцов» подразумевает группу столбцов. Именно так семейства столбцов представлены во второй модели.
Обе модели являются допустимыми представлениями данных. Я понимаю, что эти представления предназначены исключительно для передачи данных людям; приложения не «думают» о данных таким образом.
Вопрос
Каково «стандартное» определение семейства столбцов? Это набор строк или группа связанных столбцов в строке?
Мне нужно написать статью на эту тему, поэтому меня также интересует, как люди обычно объясняют концепцию «семейства столбцов» другим людям. Обе эти модели кажутся противоречащими друг другу. Я хотел бы использовать «правильную» или общепринятую модель для описания хранилищ столбцов.
Обновлять
Я остановился на второй модели для объяснения модели данных в своей статье. Мне все еще интересно, как вы объясните другим людям модель данных хранилищ столбцов.