Для человека, впервые погружающегося в историю систем управления базами данных, последовательность SQL → NoSQL → NewSQL выглядит как диалектическая триада: тезис, антитезис, синтез. Сначала традиционные реляционные СУБД стали основой большинства коммерческих информационных систем, затем на волне NoSQL появились архитектуры, которые ради горизонтального масштабирования отказывались от части привычных реляционных ограничений и гарантий, и наконец направление NewSQL попыталось взять лучшее от обоих миров: SQL и ACID – от реляционных СУБД, горизонтальное масштабирование – от NoSQL. Хрестоматийный пример технологической эволюции, когда каждый следующий этап преодолевает ограничения предыдущего, не правда ли? Проблема только в том, что реальная история развития СУБД была совсем не такой линейной.
Распределённые реляционные СУБД существовали задолго до слова NewSQL. NoSQL объединял системы, сильно различавшиеся по модели данных, интерфейсам и гарантиям. А под вывеской NewSQL в разные годы оказывались системы настолько разной архитектуры, что одного этого термина стало недостаточно, чтобы понять устройство конкретной СУБД.
Чтобы разобраться в теме, следует обращать внимание не на то, к какому «поколению» относится база данных, а на то, как она устроена. Такой подход не даст стройной периодизации, зато позволит не подменять реальную историю удобной классификацией. Нас будет интересовать, как возникали, сосуществовали и развивались архитектурные идеи, воплощавшиеся в конкретных СУБД.
SQL…