Перспективы развития субд кратко

Обновлено: 07.07.2024

Атаки на БД и хранилища являются очень опасными для организаций. В последние годы число утечек растёт, причём не менее 30 % нарушений целостности данных связно с внешним вмешательством. Как правило, киберпреступников чаще всего интересуют персональные данные сотрудников, информация о клиентах и заказчиках, результаты исследований рынка, финансовая и платёжная информация, анализ деятельности конкурентов и другие сведения, которые практически всегда есть в корпоративных базах данных.

Ввиду особой значимости и ценности такой информации, возникает необходимость в повышении безопасности как элементов инфраструктуры, так и, собственно, самих баз данных (БД). В этой статье мы комплексно рассмотрим и систематизируем вопросы безопасности систем управления базами данных (СУБД) с учётом современных угроз и последних тенденций.

Сегодня практически все крупнейшие производители СУБД развивают концепцию конфиденциальности и целостности данных при их доступности. Действия крупных игроков рынка направлены, прежде всего, на преодоление уже известных уязвимостей, рассмотрение вопросов, специфичных для определённой системы управления базами данных, реализацию основных моделей доступа к БД. Но этот подход способен решать лишь конкретные задачи, однако общей концепции безопасности для СУБД не существует . Такое положение вещей не может не усложнять задачи обеспечения безопасности баз данных на предприятии.

Взгляд в прошлое: история развития СУБД с эволюционной точки зрения

Исторически сложилось так, что системы безопасности баз данных развивались в качестве реакции на действия киберпреступников. Оказало влияние и общее развитие баз данных, начиная с решений на мейнфреймах, заканчивая облачными хранилищами.

Специалисты выделяют следующие архитектурные подходы :

— полный доступ пользователей к серверу баз данных;

— внедрение системы аудита (логов действий юзеров) средствами СУБД;

— деление пользователей на частично доверенных и доверенных с помощью средств СУБД;

— внедрение шифрования данных с выносом средств аутентификации за пределы СУБД в промежуточное программное обеспечение и операционные системы; исключение полностью доверенного администратора данных.

Внедрение средств защиты, разумеется, необходимо. Но если это происходит лишь как реакция на угрозу, защита от новых способов атака не обеспечивается, да и вообще, о проблеме безопасности баз данных формируется весьма разрозненное представление.

Также существует множество разнородных средств повышения безопасности БД, что стало причиной отсутствия понимания комплексной безопасности баз данных. Нет общего подхода и к обеспечению безопасности хранилищ данных. Сложно спрогнозировать атаки, разработать действенные защитные механизмы. Мало того, многие системы не защищены от уже давно известных атак, а подготовка специалистов не отлажена.

Проблемы безопасности БД

Киберпреступность развивается одновременно с базами данных и средствами защиты. Но, несмотря на это, за последние годы список главных уязвимостей СУБД мало изменился. Выполнив анализ архитектуры БД, известных уязвимостей, имеющихся средств обеспечения безопасности СУБД и прецедентов нарушения безопасности, можно отметить следующие причины появления проблем:

— разработчики баз данных, администраторы и программисты уделяют недостаточное внимание вопросам безопасности баз;

— разные СУБД применяют различные языковые конструкции доступа к данным, однако они организованы на основе той же модели;

— всерьёз занимаются проблемами безопасности лишь крупные производители СУБД;

— возникают новые модели хранения данных и их виды, сразу попадая в зону риска.

Кроме того, ряд уязвимостей потенциально опасны из-за банального невнимания , а иногда даже и незнания администраторами систем БД вопросов безопасности. К примеру, широко эксплуатируются в отношении веб-приложений простые SQL-инъекции, в которых достаточное внимание входным данным запросов не уделено.

Для предприятий финансовым компромиссом является использование разных средств обеспечения информационной защиты, ведь внедрение продуктов повышенной защищённости и подбор высококвалифицированного персонала — это очень большие затраты. Однако стоит понимать, что компоненты безопасности могут оказывать на производительность СУБД негативное влияние.

Проблема усугубляется и широким распространением нереляционных СУБД — они оперируют другой моделью данных, но построены по тем же принципам, если сравнивать с реляционными. Нельзя не вспомнить и про многообразие современных NoSQL-решений — это становится причиной разнообразия используемых моделей данных, и, в свою очередь, размывает границу понятия БД в целом.

Следствие вышеперечисленных проблем — это отсутствие единых методик защиты баз. Если говорить о NoSQL-системах, то тут отсутствуют не только общепринятые механизмы сохранения целостности (например, шифрование и аудит данных), но и развитые средства для аутентификации пользователей.

Каковы особенности защиты БД?

Современные хранилища данных состоят из двух компонентов: хранимых данных (собственно, БД) и программ для управления (СУБД).

Обеспечить безопасность нельзя, не организовав безопасное управление данными . А значит, все уязвимости и вопросы защиты СУБД можно поделить на 2 категории: независящие и зависящие от данных.

Те уязвимости, которые от данных не зависят, характерны и для других видов программного обеспечения. Причина проблем тут разная — это и несвоевременное обновление, и недостаточная квалификация админа, и наличие неиспользуемых функций.

Однако практика показывает, что большая часть аспектов безопасности СУБД как раз-таки зависит от данных. К примеру, многие СУБД поддерживают запросы через некоторый язык, содержащий наборы функций, доступных пользователю. А архитектура используемых языков связана с моделью данных, которая применяется для хранения информации. В результате можно сказать, что модель отчасти определяет особенности языка, а особенности языка определяют наличие в нём определённых уязвимостей. При этом такие общие уязвимости, допустим, как инъекции, выполняются по-разному (Java-инъекция, SQL-инъекция) с учётом синтаксиса языка.

Основные требования к безопасности БД

Уязвимости мы разделили (независящие и зависящие от данных). Теперь выделим независящие и зависящие от данных меры по обеспечения безопасности хранилищ.

Требования по безопасности к системе БД, не зависящей от данных:

1. Работа в доверенной среде . Доверенная среда — инфраструктура предприятия с её защитными механизмами, обусловленными политикой безопасности.

2. Обеспечение физической безопасности файлов данных . Здесь требования не отличаются от тех, которые применимы к любым другим файлам приложений и пользователей.

Требования к целостности информации для систем, зависящим от данных:

1. Безопасность пользовательского программного обеспечения . Речь идёт о задачах построения безопасных механизмов доступа и интерфейсов.

2. Безопасная организация работы с данными . Организация данных и управление ими — ключевой вопрос для системы хранения информации. Сюда входит и задача по организации данных с контролем целостности, и другие задачи, порой специфичные для СУБД.

Аспекты создания защищённых БД

Чтобы решить обозначенные проблемы и обеспечить информационную безопасность СУБД, надо перейти от практики закрытия уязвимостей к комплексному подходу , призванному обеспечить более эффективную безопасность хранилищ данных. Вот основные этапы перехода к этому:

1. Разработка комплексных методик , обеспечивающих безопасность хранилищ данных. Комплексные методики применяются как при разработке, так и при внедрении хранилищ данных и программного обеспечения. Следование такому подходу избавит от множества ошибок управления СУБД, поможет защитить данные от распространённых уязвимостей.

2. Оценка и классификация угроз СУБД . После классификации появляется возможность упорядочить угрозы и уязвимости с целью последующего анализа и обеспечения защиты. Специалисты по безопасности установят зависимость между проблемами и причинами их возникновения. Таким образом, после введения конкретного механизма в СУБД, администраторы и разработчики смогут спрогнозировать связанные с новым механизмом угрозы, а значит, заранее подготовят соответствующие средства по обеспечению безопасности.

3. Разработка стандартизированных механизмов обеспечения безопасности. С случае стандартизации языков работы с данными и подходов к защите появляется возможность создания средств безопасности, применимых к разным СУБД. На момент написания материала, к сожалению, речь идёт лишь о методических и теоретических средствах, так как появление уже готовых комплексных программных средств зависит лишь от разработчиков СУБД и производителей, точнее, от их желания следовать стандартам.

Начните изучать базы данных вместе с OTUS!

В настоящее время на рынке СУБД проявляются следующие перспективы и тенденции преодолевающие названные ограничения.

NoSQL СУБД

Для некоторых систем от реляционной модели вообще выгоднее отказаться в пользу набирающих популярность Nosql СУБД.
В NoSQL базах нет регламентированной структуры или присутствует слабая типизация. В отдельную запись можно добавить произвольное поле без предварительного изменения структуры таблицы. Таким образом, для изменения структуры данных нужно просто внести изменения в код приложения. Это с одной стороны обеспечивает высокую гибкость, с другой возлагает дополнительные расходы на код и не позволяет использовать со стороны СУБД такие ограничения как not null, unicque, check сonstraint.

Многие NoSQL СУБД позволяют представлять данные в виде агрегатов. Основной принцип проектирования под NoSQL СУБД – это включать в единый объект данные, которые часто запрашиваются вместе.

Готовые работы на аналогичную тему

Например, для того чтобы сохранить данные о клиентах и их заказах в реляционной СУБД понадобятся две связанные таблицы orders (заказы) и clients (клиенты).

А в NoSQL СУБД все эти данные можно сохранить внутри одной агрегатной модели:

Слабые ACID свойства

ACID свойства – это правила по которым выполняются транзакции. К ним относятся:

  • Атомарность (Atomicity);
  • Согласованность (Consistency);
  • Изолированность (Isolation);
  • Надежность (Durability).

Информационные системы работающие на основе реляционных баз данных нуждаются в транзакциях с выполнением всех ACID свойств именно потому, что данные хранятся в разных таблицах. В NoSQL СУБД нет такого количества таблиц и соединений. Поэтому дополнительные меры по выполнению ACID просто не нужны при условии правильного построения модели данных.

Самоуправление СУБД

Сложность СУБД постоянно возрастает, поэтому для их обслуживания требуются все более высокая квалификация администраторов. Но человек не может 24 часа в сутки реагировать на изменение нагрузки в сети, изменение работы приложений и прочие факторы. Поэтому важной тенденцией развития СУБД является их самоуправляемость.

В процессе работы самоуправляемая СУБД постоянно собирает информацию о своей работе и анализирует ее в фоновом режиме. На основании результатов анализа СУБД может принимать решения о запросе дополнительных ресурсов, корректировании плана выполнения запросов, смене области рабочей памяти или просто сообщить администратору о проблеме.

Поддержка новых семантических форматов

С развитием информационных технологий от СУБД требуется умение работать с новыми типами данных. За последние несколько лет фактическим стандартом обмена данными между разными СУБД стал форматXML. Во всех универсальных СУБД заложены механизмы чтения XML-файлов, преобразования их в таблицы (парсинга), обратного преобразования данных из таблиц в XML. В то же время в сети Интернет отчетливо видна тенденция перехода к семантической сети (Semsntic Web). Поэтому в ближайшее время СУБД начнут все более широко поддерживать такие семантические форматы как RDF и OWL, совмещая их в одном программном продукте с реляционной моделью.

Современные базы данных являются основой многочисленных информационных систем. Информация , накопленная в них, является чрезвычайно ценным материалом, и в настоящий момент широко распространяются методы обработки баз данных с точки зрения извлечения из них дополнительных знаний, методов, которые связаны с обобщением и различными дополнительными способами обработки данных. Базы данных в данной концепции выступают как хранилища информации, это направление называется "Хранилища данных" ( Data Warehouse).

Для работы с "Хранилищами данных" наиболее значимым становится так называемый интеллектуальный анализ данных (ИАД), или data mining , — это процесс выявления значимых корреляций, образцов и тенденций в больших объемах данных. Учитывая высокие темпы роста объемов накопленной в современных хранилищах данных информации, невозможно недооценить роль ИАД. По мнению специалистов Gartner Group , уже в 1998 г. ИАД вошел в десятку важнейших информационных технологий. В последние годы началось активное внедрение технологии ИАД. Ее активно используют как крупные корпорации, так и более мелкие фирмы, которые серьезно относятся к вопросам анализа и прогнозирования своей деятельности. Естественно, на рынке программных продуктов стали появляться соответствующие инструментальные средства.

Особенно широко методы ИАД применяются в бизнес-приложениях аналитиками и руководителями компаний. Для этих категорий пользователей разрабатываются инструментальные средства высокого уровня, позволяющие решать достаточно сложные практические задачи без специальной математической подготовки. Актуальность использования ИАД в бизнесе связана с жесткой конкуренцией, возникшей вследствие перехода от "рынка продавца" к "рынку покупателя". В этих условиях особенно важно качество и обоснованность принимаемых решений, что требует строгого количественного анализа имеющихся данных. При работе с большими объемами накапливаемой информации необходимо постоянно оперативно отслеживать динамику рынка, а это практически невозможно без автоматизации аналитической деятельности.

В бизнес-приложениях наибольший интерес представляет интеграция методов интеллектуального анализа данных с технологией оперативной аналитической обработки данных (On-Line Analytical Processing , OLAP ). OLAP использует многомерное представление агрегированных данных для быстрого доступа к важной информации и дальнейшего ее анализа.

Системы OLAP обеспечивают аналитикам и руководителям быстрый последовательный интерактивный доступ к внутренней структуре данных и возможность преобразования исходных данных с тем, чтобы они позволяли отразить структуру системы нужным для пользователя способом. Кроме того, OLAP -системы позволяют просматривать данные и выявлять имеющиеся в них закономерности либо визуально, либо простейшими методами (такими как линейная регрессия), а включение в их арсенал нейросетевых методов обеспечивает существенное расширение аналитических возможностей.

В основе концепции оперативной аналитической обработки ( OLAP ) лежит многомерное представление данных . Термин OLAP ввел Кодд (E. F. Codd) в 1993 году. В своей статье он рассмотрел недостатки реляционной модели, в первую очередь невозможность "объединять, просматривать и анализировать данные с точки зрения множественности измерений, то есть самым понятным для корпоративных аналитиков способом", и определил общие требования к системам OLAP , расширяющим функциональность реляционных СУБД и включающим многомерный анализ как одну из своих характеристик.

Следует заметить, что Кодд обозначает термином OLAP многомерный способ представления данных исключительно на концептуальном уровне. Используемые им термины — "Многомерное концептуальное представление " ("Multidi-mensional conceptual view"), "Множественные измерения данных" ("Multiple data dimensions"), " Сервер OLAP " (" OLAP server ") — не определяют физического механизма хранения данных (термины "многомерная база данных " и "многомерная СУБД " не встречаются ни разу).

Часто в публикациях аббревиатурой OLAP обозначается не только многомерный взгляд на данные, но и хранение самих данных в многомерной БД , что в принципе неверно.

По Кодду, многомерное концептуальное представление (multi-dimensional conceptual view) является наиболее естественным взглядом управляющего персонала на объект управления. Оно представляет собой множественную перспективу, состоящую из нескольких независимых измерений, вдоль которых могут быть проанализированы определенные совокупности данных. Одновременный анализ по нескольким измерениям данных определяется как многомерный анализ . Каждое измерение включает направления консолидации данных, состоящие из серии последовательных уровней обобщения, где каждый вышестоящий уровень соответствует большей степени агрегации данных по соответствующему измерению. Так, измерение Исполнитель может определяться направлением консолидации, состоящим из уровней обобщения "предприятие—подразделение—отдел— служащий". Измерение Время может даже включать два направления консолидации — "год—квартал—месяц—день" и "неделя—день", поскольку счет времени по месяцам и по неделям несовместим. В этом случае становится возможным произвольный выбор желаемого уровня детализации информации по каждому из измерений. Операция спуска ( drilling down) соответствует движению от высших ступеней консолидации к низшим; напротив, операция подъема (rolling up) означает движение от низших уровней к высшим.

Следующим новым направлением в развитии систем управления базами данных является направление, связанное с отказом от нормализации отношений. Во многом нормализация отношений нарушает естественные иерархические связи между объектами, которые достаточно распространены в нашем мире. Возможность сохранять их на концептуальном (но не на физическом) уровне позволяет пользователям более естественно отражать семантику предметной области . В настоящий момент уже существует теоретическое обоснование работы с ненормализованными отношениями и практические реализации подобных систем.

Дальнейшим расширением в структурных преобразованиях являются объектно-ориентированные базы данных . В объектно-ориентированной парадигме предметная область моделируется как множество классов взаимодействующих объектов. Каждый объект характеризуется набором свойств, которые являются как бы его пассивными характеристиками и набором методов работы с этим объектом. Работать с объектом можно только с использованием его методов. Атрибуты объекта могут принимать определенное множество допустимых значений, набор конкретных значений атрибутов объекта определяет его состояние. Используя методы работы с объектом, можно изменять значение его атрибутов и тем самым как бы изменять состояние самого объекта. Множество объектов с одним и тем же набором атрибутов и методов образует класс объектов. Объект должен принадлежать только одному классу (если не учитывать возможности наследования). Допускается наличие примитивных предопределенных классов, объекты-экземпляры которых не имеют атрибутов: целые, строки и т. д. Класс , объекты которого могут служить значениями атрибута объектов другого класса, называется доменом этого атрибута.

Одной из наиболее перспективных черт объектно-ориентированной парадигмы является принцип наследования. Допускается порождение нового класса на основе уже существующего класса, и этот процесс называется наследованием. В этом случае новый класс , называемый подклассом существующего класса (суперкласса), наследует все атрибуты и методы суперкласса. В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы. Различаются случаи простого и множественного наследования. В первом случае подкласс может определяться только на основе одного суперкласса, во втором случае суперклассов может быть несколько. Если в языке или системе поддерживается единичное наследование классов, набор классов образует древовидную иерархию. При поддержании множественного наследования классы связаны в ориентированный граф с корнем, называемый решеткой классов. Объект подкласса считается принадлежащим любому суперклассу этого класса.

Можно считать, что наиболее важным качеством ООБД (объектно-ориентированной базы данных ), которое позволяет реализовать объектно-ориентированный подход , является учет поведенческого аспекта объектов.

В прикладных информационных системах, основывавшихся на БД с традиционной организацией (вплоть до тех, которые базировались на семантических моделях данных), существовал принципиальный разрыв между структурной и поведенческой частями. Структурная часть системы поддерживалась всем аппаратом БД , ее можно было моделировать, верифицировать и т. д., а поведенческая часть создавалась изолированно. В частности, отсутствовали формальный аппарат и системная поддержка совместного моделирования и гарантий согласованности структурной (статической) и поведенческой (динамической) частей. В среде ООБД проектирование, разработка и сопровождение прикладной системы становятся процессом, в котором интегрируются структурный и поведенческий аспекты. Конечно, для этого нужны специальные языки, позволяющие определять объекты и создавать на их основе прикладную систему.

Специфика применения объектно-ориентированного подхода для организации и управления БД потребовала уточненного толкования классических концепций и некоторого их расширения.

Прежде всего, возникло направление, которое предполагает возможность хранения объектов внутри реляционной БД , тогда дополнительно необходимо предусмотреть хранение и использование специфических методов работы с этими объектами, а это в свою очередь требует расширения стандарта языка SQL . Частично это уже сделано в новом стандарте SQL3 , однако там далеко не все вопросы получили однозначное разрешение.

Однако часть разработчиков придерживается мнения о необходимости полного отказа от реляционной парадигмы и перехода на объектно-ориентированную парадигму. Для перехода к объектно-ориентированным БД стандарт объектного проектирования был дополнен стандартизованными средствами доступа к базам данных (стандарт ODMG93).

Поставщики коммерческих СУБД немедленно отреагировали на эту потребность. Практически каждая уважающая себя фирма обратилась к объектным технологиям и продуктивно сотрудничает с разработчиками объектно-ориентированных СУБД . IBM и Oracle доработали свои СУБД (соответственно, DB2 и ORACLE ), добавив объектную надстройку над реляционным ядром системы. Другой путь выбрал Informix, который приобрел серьезную объектно-реляционную СУБД Illustra и встроил ее в свою СУБД . В результате получился продукт, именующийся универсальным сервером. Другой лидер рынка СУБД — Computer Associates, поступил иначе. Он сделал ставку на чисто объектную базу Jasmine, активно пропагандируя ее достоинства. Кто прав — покажет будущее.

Следующим направлением развития баз данных является появление так называемых темпоральных баз данных, то есть баз данных, чувствительных ко времени. Фактически БД моделирует состояние объектов предметной области в некоторый текущий момент времени. Однако в ряде прикладных областей необходимо исследовать именно изменение состояний объектов во времени. Если использовать чисто реляционную модель, то требуется строить и хранить дополнительно множество отношений, имеющих одинаковые схемы, отличающиеся временем существования или снятия данных. Гораздо перспективнее и удобнее для этого использовать специальные механизмы снятия срезов по времени для определенных объектов БД . Основной тезис темпоральных систем состоит в том, что для любого объекта данных, созданного в момент времени t1 и уничтоженного в момент времени t2, в БД сохраняются (и доступны пользователям) все его состояния во временном интервале [t1, t2). При обозначении интервала квадратные скобки означают, что граница интервала включена в него, а круглые скобки означают, что точка на временной оси, соответствующая границе интервала, не включается в интервал . И действительно, если объект уничтожен в момент времени t2, то в этой точке временной оси он уже не существует, поэтому мы оставляем правую границу временного интервала открытой.

И наконец, последним, но, может быть, самым значительным направлением развития баз данных является перспектива взаимодействия Web -технологии и баз данных. Простота и доступность Web -технологии, возможность свободной публикации информации в Интернете, так чтобы она была доступна любому количеству пользователей, несомненно, сразу завоевали авторитет у большого числа пользователей. Однако процесс накопления слабоструктурированной информации быстро проходит и далее наступает момент обеспечения эффективного управления этой разнообразной информацией. И это уже серьезная проблема. Некоторые исследователи даже вывели определенную тенденцию, которая выражается в том, что наиболее популярные сайты со временем становятся неуправляемыми, в море информации невозможно отыскать то, что требуется. С одной стороны, Web представляет собой одну громадную базу данных. Однако до сих пор, вместо того чтобы превратиться в неотъемлемую часть инфраструктуры Web , базы данных остаются на вторых ролях. Во-первых, дизайнеры крупнейших Web - серверов с миллионами страниц содержимого постепенно перекладывают задачи управления страницами с файловых систем на системы баз данных. Во-вторых, системы баз данных используются в качестве серверов электронной коммерции, помогая отслеживать профили, транзакции, счета и инвентарные листы. В-третьих, ведущие Web -издатели примериваются к использованию систем баз данных для хранения информационного наполнения, имеющего сложную природу. Однако в подавляющей части Web -узлов, особенно в тех, которые принадлежат провайдерам и держателям поисковых машин, технология баз данных не применяется. В небольших Web -узлах, как правило, используются статические HTML -страницы, хранящиеся в обычных файловых системах.

В будущем статические HTML -страницы все чаще станут заменять системами управления динамически формируемым содержимым. Уже сейчас, например, торговцы по каталогам не просто преобразуют бумажные каталоги в наборы статических HTML -страниц. Фактически они представляют электронный каталог, позволяющий заказчикам оперативно узнать то, что их интересует, не пролистывая ненужную информацию: например, продает ли поставщик серые джемперы большого размера. Продавцы предлагают клиентам персонализированные манекены, позволяющие увидеть, как будет сидеть на них одежда. Для персонализа-ции требуются весьма сложные модели данных.

HTML расширяется до XML , языка расширяемой разметки, который лучше описывает структурированные данные. К сожалению, XML , похоже, способен породить хаос в системах баз данных. Развивающийся подъязык запросов XML напоминает процедурные языки обработки запросов, превалировавшие 25 лет тому назад. Кроме того, XML стимулирует использование кэшей (наборов) данных на стороне клиента с поддержкой обновлений, что заставляет разработчиков погружаться в трясину проблем распределенных транзакций. К несчастью, значительная часть работ по XML происходит без серьезного участия сообщества исследователей систем баз данных.

Авторы Web -публикаций нуждаются в инструментах для быстрого и экономичного построения хранилищ данных, рассчитанных на сложные приложения. Это, в свою очередь , формирует требования к технологии баз данных для создания, управления, поиска и обеспечения безопасности содержимого Web -узлов.

С другой стороны, универсальность Web -клиента становится весьма привлекательной для разработчиков несложных приложений, которые смогут работать с базами данных. В этом случае не требуется установка каждого клиента, достаточно выслать код доступа и клиент автоматически может уже работать с базой данных, при этом вам все равно, где находится клиент, он может работать как в локальной, так и в глобальной сети, если технология это позволяет. А это весьма удобно, если вы можете с любого рабочего места, имея соответствующий пароль , получить доступ к необходимым данным. Подобные системы называются системами, разработанными по интранет-технологии, то есть технологии, использующей принципы технологий Интернета, но реализованные во внутренней локальной сети.

Для разработки интернет -приложений, которые связаны с базами данных, широко используются новые средства программирования: это язык PERL, язык PHP ( Personal Home Page Tools ), язык Javascript и ряд других. Это действительно грандиозно и, главное, очень интересно, но это уже темы для других книг. Пробуйте и дерзайте, я думаю, познакомившись с базами данных, вы еще не раз с ними столкнетесь в жизни. Я желаю вам успехов и корректных запросов к базам данных. Вы ведь уже знаете: каков вопрос, таков и ответ. Любая база данных может стать вашим помощником или мучителем, это зависит от разработчиков, мне хочется, чтобы для вас они всегда играли только первую роль.

Мир систем управления базами данных кажется неизменным. В течение многих лет одни и те же компании входят в магические квадранты, возглавляют рейтинги по всем значимым показателям. СУБД слишком важны для предприятий, чтобы на них ставить эксперименты с новыми технологиями на уже работающих системах.

Однако и лидеры, в первую очередь Microsoft, Oracle и SAP, не упустили тенденцию. Они также делают ставку на облачные версии своих продуктов, зачастую новые возможности появляются именно в этих СУБД.

Ранжирование производителей СУБД по доле рынка

gartnerdatabasemarketshare.jpg

Источник: Gartner, 2019

Сравнительная популярность СУБД в 2013-2020 гг.

dbengine_popular.jpg

Однако в ходе цифровой трансформации перед предприятиями возникают новые задачи, которые предприятия решают с помощью новых баз данных. Во-первых, для того, чтобы не перегружать имеющуюся, во-вторых — не для всех современных задач подходят классические реляционные СУБД. Из 836 компаний, опрошенных в 2019 г. компанией Percona, в 92% использовалось более одной СУБД, причем в 89% — две или более СУБД с открытым кодом.

Чаще всего у респондентов Percona были установлены MySQL Community Edition (у 58,7% респондентов), PostgreSQL (46,1%), MariaDB Community Edition (36,1%), Percona Server for MySQL и MongoDB Community Edition (по 34,4%).

Этот опрос не вполне репрезентативен, поскольку около половины респондентов работают в сфере информационных технологий, треть — клиенты самой Percona. Однако некоторое представление о тенденциях на рынке СУБД дает.

Любимые, желанные и ужасные

На вопросы, связанные с СУБД, ответили почти 42 тыс. профессиональных разработчиков. По популярности не было равных MySQL, с этой СУБД работают 53,5% респондентов. Далее следовали PostgreSQL (38,5%), Microsoft SQL Server (34,8%) SQLite (30,6%) и MongoDB (26,7%). Oracle занял 8 место из 14 (16,3%), IBM DB2 — 13-е (2,9%). Довольно неплохое совпадение с результатами Percona.



Популярности PostgreSQL, по его мнению, способствует то, что она дает новую жизнь концепции реляционных СУБД. Кроме того, это по-настоящему открытое решение, развитие которого управляется сообществом, она не принадлежит какой-либо компании. MongoDB, Elasticsearch и Redis, напротив, привнесли на рынок баз данных возможности, которые были недоступны для обычных реляционных СУБД.

Еще одна тенденция, которая будет способствовать проникновению СУБД с открытым кодом на предприятия — упоминавшийся рост популярности облачных СУБД. Например, PostgreSQL запускается в облаках всех трех лидеров облачного рынка — AWS, Microsoft и Google.

Общая картина отношения разработчиков к тем или иным СУБД достаточно выразительна. Но, конечно, надо принимать во внимание, что мечты далеко не всегда сбывается — кому-то придется уйти с любимой системы, у кого-то не получится перейти на СУБД мечты.

Респонденты Stackoverflow — о своем отношении к различным СУБД

otnoshenie2.jpg


Мало кто будет спорить, что IT будущего неразрывно связано с использованием огромных баз данных. Уже сейчас мир придумывает новые языки, новые алгоритмы, лишь бы упростить и ускорить использование огромных потоков информации. Даже привычный многим современным пользователям реляционный подход медленно, но верно уходит в прошлое. Почему и что будет дальше? Впрочем, давайте обо всём по порядку.


От прошлого к настоящему

Нет смысла охватывать историю баз данных, цепляясь за любое сходство, поэтому моментом появления баз данных будет не античное время, а 60-е годы 20 века. Именно тогда компьютеры стали эффективным инструментом для коммерческих компаний, а организация COBASYL (COnference on DAta SYstems Language), создавшая в 1959 году язык COBOL и впоследствии наделив его возможностями для управления БД, помогла им управлять резко возросшими потоками информации.

К концу 60-х появилась первая сетевая модель данных, возникло понятие СУБД, а в 1974 году компания IBM стала работать над языком для System R. Так на свет появился SEQUEL (Structured English QUEry Language). Однако позже, когда стало известно, что такое название используется британской авиастроительной компанией, было решено немного сократить до привычного SQL.

С увеличением доступности компьютеров стали появляться ориентированные на простых пользователей БД (Paradox, RBASE 5000, RIM, Dbase III), API (ODBC, Excel, Access) и средства разработки (VB, Oracle Developer, PowerBuilder). Само-собой, тенденция охватила и интернет, на сегодняшний день эффективное взаимодействие с БД – негласное требование к любому ресурсу с более-менее динамической информацией.

Если говорить о компаниях, то на рынке установилось троевластие: практически вся власть в области баз данных распределена между IBM, Microsoft и Oracle.

Настоящее и будущее

До старта нового тысячелетия в IT доминировал реляционный подход к базам данных, однако необходимость повышать быстродействие неизбежно привела к развитию идеи NoSQL (not only SQL). Если вы с трудом представляете, что это и в чём разница, то перейдя по ссылке вы получите исчерпывающие ответы на все свои вопросы.

Если упрощённо, то реляционный подход описывает данные в формате таблиц, то есть вся информация неразрывно связана отношениями и структурой (вспомните Excel со столбцами и строками, где каждый новый объект записывается по тому же шаблону). Это неизбежно приводит к ограничениям по производительности и масштабированию, но с точки зрения создания и управления – это просто и удобно.

NoSQL подход позволяет избежать этих проблем за счёт отсутствия строгих информационных связей. Но тут возникает другая проблема – организация доступа. Решается она 4 основными способами: с помощью документной ориентации, расширяемых записей (разреженных матриц), ключей доступа и теории графов. Естественно, что подход NoSQL требует от разработчика больше знаний и умений, но результаты куда эффективнее. Именно поэтому считается, что SQL уже сейчас уходит в историю, а NoSQL – будущее всех БД.

Впрочем, данное предсказание упирается в тот факт, что использование реляционного подхода для небольших баз куда эффективнее. Поэтому вместо бессмысленного спора поговорим о более практических вещах, а именно непосредственно о наиболее популярных БД.


Рейтинг

Итак, рейтинг 10 наиболее популярных баз данных, согласно ресурсу DB-Engines, выглядит следующим образом:

  1. Oracle;
  2. MySQL;
  3. Microsoft SQL Server;
  4. PostgreSQL;
  5. MongoDB;
  6. DB2;
  7. Cassandra;
  8. Microsoft Access;
  9. Redis;
  10. SQLite.

Оценки в рейтинге выставляются согласно 6 параметрам, среди которых популярность в поисковых системах, социальных сетях и на форумах, частота упоминание в резюме, количество вакансий.

Итого, 7 из 10 представителей рейтинга – реляционные базы данных, а также по одному экземпляру документоориентированной БД (MongoDB), с распределёнными значениями (Cassandra) и использующей подход «ключ-значение» (Redis). Таким образом, на сегодняшний день доминирование реляционных баз данных неоспоримо, но что будет завтра?

Для ответа на этот вопрос обратимся на этом же ресурсе к разделу тренды. Если брать отметки времени в более чем в 2 или 4 года, то наибольший рост демонстрирует подход с использованием теории графов. В то же время за последний год максимальный рост популярности продемонстрировали БД на основе временных данных. Это относительно новый подход, он также считается NoSQL, преимущество сводится к созданию структуры на основе дат или временных диапазонов. На данный момент наиболее популярным представителем Time Series БД является InfluxDB.

А какие базы данных используете вы? И какая на ваш взгляд наиболее перспективная NoSQL БД?

Мало кто будет спорить, что IT будущего неразрывно связано с использованием огромных баз данных. Уже сейчас мир придумывает новые языки, новые алгоритмы, лишь бы упростить и ускорить использование огромных потоков информации. Даже привычный многим современным пользователям реляционный подход медленно, но верно уходит в прошлое. Почему и что будет дальше? Впрочем, давайте обо всём по порядку.


От прошлого к настоящему

Нет смысла охватывать историю баз данных, цепляясь за любое сходство, поэтому моментом появления баз данных будет не античное время, а 60-е годы 20 века. Именно тогда компьютеры стали эффективным инструментом для коммерческих компаний, а организация COBASYL (COnference on DAta SYstems Language), создавшая в 1959 году язык COBOL и впоследствии наделив его возможностями для управления БД, помогла им управлять резко возросшими потоками информации.

К концу 60-х появилась первая сетевая модель данных, возникло понятие СУБД, а в 1974 году компания IBM стала работать над языком для System R. Так на свет появился SEQUEL (Structured English QUEry Language). Однако позже, когда стало известно, что такое название используется британской авиастроительной компанией, было решено немного сократить до привычного SQL.

С увеличением доступности компьютеров стали появляться ориентированные на простых пользователей БД (Paradox, RBASE 5000, RIM, Dbase III), API (ODBC, Excel, Access) и средства разработки (VB, Oracle Developer, PowerBuilder). Само-собой, тенденция охватила и интернет, на сегодняшний день эффективное взаимодействие с БД – негласное требование к любому ресурсу с более-менее динамической информацией.

Если говорить о компаниях, то на рынке установилось троевластие: практически вся власть в области баз данных распределена между IBM, Microsoft и Oracle.

Настоящее и будущее

До старта нового тысячелетия в IT доминировал реляционный подход к базам данных, однако необходимость повышать быстродействие неизбежно привела к развитию идеи NoSQL (not only SQL). Если вы с трудом представляете, что это и в чём разница, то перейдя по ссылке вы получите исчерпывающие ответы на все свои вопросы.

Если упрощённо, то реляционный подход описывает данные в формате таблиц, то есть вся информация неразрывно связана отношениями и структурой (вспомните Excel со столбцами и строками, где каждый новый объект записывается по тому же шаблону). Это неизбежно приводит к ограничениям по производительности и масштабированию, но с точки зрения создания и управления – это просто и удобно.

NoSQL подход позволяет избежать этих проблем за счёт отсутствия строгих информационных связей. Но тут возникает другая проблема – организация доступа. Решается она 4 основными способами: с помощью документной ориентации, расширяемых записей (разреженных матриц), ключей доступа и теории графов. Естественно, что подход NoSQL требует от разработчика больше знаний и умений, но результаты куда эффективнее. Именно поэтому считается, что SQL уже сейчас уходит в историю, а NoSQL – будущее всех БД.

Впрочем, данное предсказание упирается в тот факт, что использование реляционного подхода для небольших баз куда эффективнее. Поэтому вместо бессмысленного спора поговорим о более практических вещах, а именно непосредственно о наиболее популярных БД.


Рейтинг

Итак, рейтинг 10 наиболее популярных баз данных, согласно ресурсу DB-Engines, выглядит следующим образом:

  1. Oracle;
  2. MySQL;
  3. Microsoft SQL Server;
  4. PostgreSQL;
  5. MongoDB;
  6. DB2;
  7. Cassandra;
  8. Microsoft Access;
  9. Redis;
  10. SQLite.

Оценки в рейтинге выставляются согласно 6 параметрам, среди которых популярность в поисковых системах, социальных сетях и на форумах, частота упоминание в резюме, количество вакансий.

Для ответа на этот вопрос обратимся на этом же ресурсе к разделу тренды. Если брать отметки времени в более чем в 2 или 4 года, то наибольший рост демонстрирует подход с использованием теории графов. В то же время за последний год максимальный рост популярности продемонстрировали БД на основе временных данных. Это относительно новый подход, он также считается NoSQL, преимущество сводится к созданию структуры на основе дат или временных диапазонов. На данный момент наиболее популярным представителем Time Series БД является InfluxDB.

А какие базы данных используете вы? И какая на ваш взгляд наиболее перспективная NoSQL БД?

Читайте также: