Итак, что же такое база данных? В принципе, любая структура, хранящая данные для их последующего извлечения, может быть отнесена к этой категории. Существует множество самых разных классификаций, но сегодня мы остановимся на главной из пяти категорий, по которым отличаются все существующие базы данных, – модели данных (кроме нее, БД различаются по типу интерфейса прикладного программирования (API), транзакций, персистенции и, наконец, индексации – о них мы поговорим в следующих статьях).
Традиционно, эта категория моделей данных подразумевает три вида: реляционная модель, модель «ключ-значение» и иерархическая модель данных.
1. Реляционная модель – настоящая «классика», пик популярности которой пришелся на 90-е, хотя она и сейчас не сдает своих позиций. Во многом благодаря таким своим преимуществам, как занимать довольно мало места, доступность в смысле понимания ее структуры и механизмов, удобный язык запросов SQL и поддержка множества вариантов использования. Впрочем, почти каждый, кто сталкивался с этой моделью данных на практике – и особенно в случае больших данных – укажет на ее существенные недостатки: относительно низкая скорость работы при высоких затратах на прикладное программирование, а также заметная «сложносочиненность», со всеми вытекающими из этого потенциальными «косяками».
реляционная БД2. Модель «ключ-значение» предполагает наличие записей, в которых ключ (обычно, набор байтов) связан напрямую со значением (обычно другой набор байтов). Используется такая технология тогда, когда «исходный материал» не требует сложного реляционного подхода. База данных, построенная на модели «ключ-значение» будет работать быстро во многом за счет возможности сжатия записей (они одинаковы по размеру и имеют повторяющиеся данные) – и понять структуру такой базы будет гораздо проще. Однако отсутствие схемы, невозможность проверки данных на непротиворечивость и куда более сложная логика внедрения выглядят во многих случаях существенными недостатками.
736c6079
3. Иерархическая модель стала популярной относительно недавно. Главное преимущество такой структуры – в эргономике: данные хранятся и извлекаются из БД точно в том виде, в котором они хранятся в объектах приложения. То есть в общем случае, все данные, касающиеся одного реального объекта, хранятся в одной записи со множеством разных ключей и значений, причем последние в свою очередь могут быть ассоциированы с другими ключами и значениями. Для хранения данных в этом случае понадобится больше места, чем в случае реляционной модели (хотя в последнее время это становится все менее и менее критичным), зато построение запросов существенно облегчается – ведь этот процесс сводится к извлечению единственной записи из единственной таблицы.
5
Кроме того, иерархическая модель является самой гибкой и надежной из существующих. Что до дегтя в этой бочке меда, то кроме возможных проблем с местом, такая модель не предусматривает схемы, поэтому данные могут приобретать достаточно хаотичную структуру, делая проверку данных на непротиворечивость невозможной.
Этим материалом мы начинаем серию статей, посвященных теоретическим и практическим особенностям баз данных. В следующих статьях речь пойдет о четырех оставшихся характеристиках баз данных – API, транзакциях, персистенции и индексации.
Итак, что же такое база данных? В принципе, любая структура, хранящая данные для их последующего извлечения, может быть отнесена к этой категории. Существует множество самых разных классификаций, но сегодня мы остановимся на главной из пяти категорий, по которым отличаются все существующие базы данных, – модели данных (кроме нее, БД различаются по типу интерфейса прикладного программирования (API), транзакций, персистенции и, наконец, индексации – о них мы поговорим в следующих статьях).
Традиционно, эта категория моделей данных подразумевает три вида: реляционная модель, модель «ключ-значение» и иерархическая модель данных.
1. Реляционная модель – настоящая «классика», пик популярности которой пришелся на 90-е, хотя она и сейчас не сдает своих позиций. Во многом благодаря таким своим преимуществам, как занимать довольно мало места, доступность в смысле понимания ее структуры и механизмов, удобный язык запросов SQL и поддержка множества вариантов использования. Впрочем, почти каждый, кто сталкивался с этой моделью данных на практике – и особенно в случае больших данных – укажет на ее существенные недостатки: относительно низкая скорость работы при высоких затратах на прикладное программирование, а также заметная «сложносочиненность», со всеми вытекающими из этого потенциальными «косяками».
реляционная БД2. Модель «ключ-значение» предполагает наличие записей, в которых ключ (обычно, набор байтов) связан напрямую со значением (обычно другой набор байтов). Используется такая технология тогда, когда «исходный материал» не требует сложного реляционного подхода. База данных, построенная на модели «ключ-значение» будет работать быстро во многом за счет возможности сжатия записей (они одинаковы по размеру и имеют повторяющиеся данные) – и понять структуру такой базы будет гораздо проще. Однако отсутствие схемы, невозможность проверки данных на непротиворечивость и куда более сложная логика внедрения выглядят во многих случаях существенными недостатками.
736c6079
3. Иерархическая модель стала популярной относительно недавно. Главное преимущество такой структуры – в эргономике: данные хранятся и извлекаются из БД точно в том виде, в котором они хранятся в объектах приложения. То есть в общем случае, все данные, касающиеся одного реального объекта, хранятся в одной записи со множеством разных ключей и значений, причем последние в свою очередь могут быть ассоциированы с другими ключами и значениями. Для хранения данных в этом случае понадобится больше места, чем в случае реляционной модели (хотя в последнее время это становится все менее и менее критичным), зато построение запросов существенно облегчается – ведь этот процесс сводится к извлечению единственной записи из единственной таблицы.
5
Кроме того, иерархическая модель является самой гибкой и надежной из существующих. Что до дегтя в этой бочке меда, то кроме возможных проблем с местом, такая модель не предусматривает схемы, поэтому данные могут приобретать достаточно хаотичную структуру, делая проверку данных на непротиворечивость невозможной.
Этим материалом мы начинаем серию статей, посвященных теоретическим и практическим особенностям баз данных. В следующих статьях речь пойдет о четырех оставшихся характеристиках баз данных – API, транзакциях, персистенции и индексации.
Объяснение:
жду балов