Распространенные субд. Лучшие базы данных SQL
Мало кто будет спорить, что 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 - будущее всех БД.
Впрочем, данное предсказание упирается в тот факт, что использование реляционного подхода для небольших баз куда эффективнее. Поэтому вместо бессмысленного спора поговорим о более практических вещах, а именно непосредственно о наиболее популярных БД.
Рейтинг
- Oracle;
- MySQL;
- Microsoft SQL Server;
- PostgreSQL;
- MongoDB;
- Cassandra;
- Microsoft Access;
- Redis;
- SQLite.
Итого, 7 из 10 представителей рейтинга - реляционные базы данных, а также по одному экземпляру документоориентированной БД (MongoDB), с распределёнными значениями (Cassandra) и использующей подход «ключ-значение» (Redis). Таким образом, на сегодняшний день доминирование реляционных баз данных неоспоримо, но что будет завтра?
Для ответа на этот вопрос обратимся на этом же ресурсе к разделу тренды . Если брать отметки времени в более чем в 2 или 4 года, то наибольший рост демонстрирует подход с использованием теории графов. В то же время за последний год максимальный рост популярности продемонстрировали БД на основе временных данных . Это относительно новый подход, он также считается NoSQL, преимущество сводится к созданию структуры на основе дат или временных диапазонов. На данный момент наиболее популярным представителем Time Series БД является InfluxDB.
А какие базы данных используете вы? И какая на ваш взгляд наиболее перспективная NoSQL БД?
Если вы планируете участвовать в сколь угодно серьезной разработке, знать базы данных - жизненно необходимо. Они повсюду, даже если вы об этом не догадываетесь. Рейтинг PYPL , который вычисляет популярность , и баз данных, выделяет 14 систем управления базами данных, которыми пользуется, по крайней мере, 1% пользователей. PYPL индексирует популярность исходя из количества запросов в поиске Google. Согласно обработке результатов коллективного разума, по состоянию на октябрь 2017 года самой популярной базой данных остается Oracle с результатом 32.26%. Эта кроссплатформенная СУБД - старейшина мира баз данных. Сложно поверить, но, первая версия, которая по неизвестным нам причинам называется Oracle v2, вышла ещё в 1979 году. Самая новая на сегодняшний день - Oracle 12.2 - в сентябре 2016 года. Базу данных Oracle чаще всего используют крупные компании, но есть и бесплатная версия, если захотите потренироваться, чтобы затем найти работу, связанную со «взрослой» версией. Называется она Oracle Database Express Edition, её можно загрузить с сайта Oracle . Разумеется, она имеет большое количество ограничений (она использует до 1 ГБ ОЗУ, только 1 процессор, всего одна БД до 11 ГБ).
Второе место досталось MySQL . Те, кто изучал базы данных в университете или пробовал освоить их самостоятельно, скорее всего, пользовались этой бесплатной базой данных. Это интересное решение для средних и малых приложений, сейчас также принадлежит Oracle. Кстати, во владения этой компании MySQL перешла вместе с нашим любимым языком Java, в процессе поглощения Sun Microsystems. Согласно данным PYPL, MySQL интересует 21.15% от общего числа пользователей или программистов.
На третьем месте с комфортом и 16.78% расположилась SQL Server производства Microsoft. Эта СУБД отлично подходит для управления базами данных самого разного размера, от персональных до Enterprise. Она также на рынке уже очень давно, хоть и на декаду меньше, чем Oracle: датой её рождения считается 24 апреля 1989 года. Как и подавляющее число продуктов Microsoft, SQL Server - платная (в случае с Enterprise-версией - даже очень платная), но есть и бесплатные варианты. Самый простой из них - SQL Server Express, она хорошо подходит для учебных целей и её можно развернуть на малых серверах или обычных компьютерах. Размер базы данных - до 10 ГБ. Также есть бесплатная версия для программистов. Предназначена она для создания, тестирования и демонстрации приложения на базе «настоящей» SQL Server. За продуктом Microsoft с большим отрывом следует PostgreSQL . Эта opens-source разработка Калифорнийского университета в Беркли долгое время была в тени своих конкурентов, но в последние годы её доля медленно, но верно растёт. А всё благодаря её бесплатности, лёгкой расширяемости и системе встроенных языков программирования.
Пятое и шестое место достались нереляционным базам данных MongoDB и совсем ещё молодой Firebase. Интерес к обеим явно растёт, особенно к Firebase: по сравнению с октябрём прошлого года, интерес к ней вырос на 1.4% и теперь её результат - 2.19%. Замыкают десятку SQLite, elasticsearch, Apache Hive и DB2.
Рейтинг PYPL популярности СУБД, октябрь 2017 и рост по сравнению с октябрём-2016
Rank | Change | Database | Share | Trend |
---|---|---|---|---|
1 | Oracle | 32.26 % | -2.7 % | |
2 | MySQL | 21.15 % | -0.7 % | |
3 | SQL Server | 16.78 % | -0.7 % | |
4 | PostgreSQL | 3.65 % | +0.4 % | |
5 | MongoDB | 3.34 % | +0.4 % | |
6 | Firebase | 2.6 % | +1.4 % | |
7 | ↓ | SQLite | 2.19 % | -0.0 % |
8 | elasticsearch | 2.1 % | +0.5 % | |
9 | ↓ | Apache Hive | 1.99 % | +0.2 % |
10 | ↓↓↓ | DB2 | 1.89 % | -0.0 % |
В настоящее время существует большое количество СУБД различных производителей, при этом наиболее распространенные СУБД являются универсальными, т.е. могут использоваться в различных предметных областях и для решения различных задач. Системы различаются по производительности, требовательности к ресурсам, стоимости обслуживания.
Наиболее распространенными промышленными СУБД до сих пор являются системы американской компании Oracle, производителя первой коммерческой промышленной СУБД. Эти системы отличает высокая надежность, возможность тонкой настройки под решаемые задачи, гибкое управление оперативной памятью, высокое быстродействие, мультиплатформенность – т.е. возможность работать под управлением как ЭВМ различной архитектуры, так и различных операционных систем. Наряду с многопользовательской версией СУБД Oracle, существует ее «облегченный» вариант – Personal Oracle или Oracle Lite. Данная версия используется обычно в небольших АИС с ограниченным кругом пользователей (как правило, не более 5 – 10 человек).
Промышленная СУБД компании Microsoft, имеющая название SQL Server, обладает не меньшими возможностями, чем СУБД компании Oracle. Однако ее недостатком является то, что она может функционировать только под управлением операционных систем самой компании Microsoft, что делает невозможным ее использование на серверах, работающих под управлением таки популярных операционных систем, как Unix, Linux, Solaris и других. Другой популярной СУБД компании Microsoft является MS Access, входящая в пакет программ Microsoft Office. Данная СУБД является однопользовательской и предназначена для ведения небольших баз данных.
Популярными и достаточно распространенными СУБД являются также DB2 компании IBM, СУБД Sybase, Informix, PostgreSQL («Пост-Грес-Кью-Эл», «постгрес») , Interbase и некоторые другие. Отдельно стоит упомянуть свободно распространяемые СУБД, многие из которых подходят для решения достаточно сложных задач. Не обладая, в полной мере, функциональностью, присущей коммерческим СУБД, они, в то же время, имеют существенно достоинство – нулевую стоимость. Как правило, такие СУБД поддерживаются независимыми группами разработчиков и распространяются в виде исходных текстов программных модулей. Наиболее популярными из таких СУБД в нашей стране являются MySQL и так называемые «клоны» коммерческой СУБД Interbase – FireBird и Yaffil.
Выбор СУБД должен учитывать потребности заказчика, возможности дальнейшего расширения информационной системы, факторы стоимости приобретения и другие параметры.
Понятие базы данных настолько прочно вошло в нашу жизнь, что стало восприниматься как нечто само собой разумеющееся и не заслуживающее отдельного внимания. Об ИТ-стартапах, алгоритмах , хакерских атаках, криптовалюте, (да что там говорить, и об облаках тоже) в профильных СМИ написано куда больше статей, чем о «рядовых», но таких важных и нужных базах данных и системах управления ими. Вот и мы, неоднократно проводя свои мини-исследования разных сфер мира ИТ, еще ни разу не обращались к этой теме. Что же, немедленно исправляемся и делимся с вами интересными новостями и свежей статистикой.
И среди СУБД есть свои фавориты
Система управления базами данных (СУБД) - это программный инструмент (как правило, интерфейс между конечным пользователем/приложением и самой базой данных), с помощью которого легче и удобнее работать с информацией. Например, создавать, обновлять, искать, удалять и восстанавливать данные в БД, а также определять взаимосвязи между ее компонентами (таблицами).
Обычно СУБД включает в себя три основных компонента: сами данные, «движок» базы данных и схему, определяющую логическую структуру данных. Именно эти три составляющие помогают обеспечить безопасное управление и защиту баз данных, целостность хранящейся в ней информации и унифицированные процедуры администрирования - управление изменениями, контроль конфигураций и производительности, резервное копирование, аварийное восстановление и т. д.
Безусловно, самих систем управления базами данных невероятно много, но тех, что у всех на слуху, едва ли наберется с десяток. Чтобы определить, какая из существующих СУБД по праву попадает в список самых популярных, в DB-Engines составили своеобразный рейтинг фаворитов. Для этого специалисты проанализировали ряд факторов: количество упоминаний систем на веб-сайтах (использовались поисковики Google, Yandex и Bing), общий интерес пользователей в Google Trends, упоминания в дискуссиях на специализированных сайтах Stack Overflow и DBA Stack Exchange, на сайтах-агрегаторах вакансий Indeed и Simply Hired, в профессиональных профилях специалистов в Linkedin и Upwork, и, наконец, количество релевантных твитов. Однако отметим, что общее число установок СУБД не считалось, поэтому этот топ получился хоть и интересным, но все-таки относительным. Согласно DB-Engines, первая тройка популярных систем управления выглядит так: Oracle, MySQL, Microsoft SQL Server.
Интересно, что в среде программистов самыми востребованными оказались навыки работы с такими СУБД как MySQL, MongoDB и PostgreSQL, причем Oracle разработчики вообще поставили на последнее место, так как эту систему отметило лишь 12% респондентов (источник: Stack Exchange (Stack Overflow Talent)).
Таким образом, по результатам двух исследований видим, что пока пользователи больше всего интересуются системой MySQL. Возможно, не последнюю роль здесь играет тот факт, что это продукт с открытым исходным кодом. К слову, именно по этой причине в 2016 году в MySQL было устранено самое большое количество уязвимостей - 133. И этот факт совсем не означает, что сама система плохо защищена, а наоборот свидетельствует о том, что ее работоспособность проверяло большее число специалистов, что увеличило шансы на определение ее «слабых мест» в информационной безопасности.
Распространенные угрозы безопасности
Примечательно, что именно количество патчей позволяет косвенно определить степень защиты информации в системах управления базами данных и выявить наиболее распространенные уязвимости. Так, исследование Trustwave показало, что в 2016 году пользователи СУБД чаще всего сталкивались с такими категориями киберугроз, как:
- Несанкционированное расширение привилегий. Эти уязвимости позволяли неуполномоченным лицам использовать права администратора, получая доступ к таблицам и конфигурациям БД.
- Переполнение буфера. Это приводило к поломке сервера, что подрывало аппаратную защиту базы данных, а также вызывало отказ в обслуживании и могло привести к запуску исполнения чужого вредоносного кода.
- Полномочия, настроенные по умолчанию. Учетные записи администратора, оставленные с паролем, заданным по умолчанию, могли дать дополнительный простор для мошеннических действий киберпреступников.
Таковыми оказались результаты недавних исследований. Очень надеемся, что в будущем системы управления базами данных станут более безопасными, а в топах популярности СУБД появятся новые названия. Обещаем следить за новостями и держать вас в курсе последних тенденций.
Вся жизнедеятельность человека неразрывно связана со множеством информационных каталогов и баз данных. Библиотечный реестр, записная книжка, адреса в мобильном телефоне или планшете - вот далеко не полный перечень структурированной информации, которой мы пользуемся. Но компьютеры любят точность, поэтому дадим определение.
Итак, база данных (БД) - набор логически взаимосвязанных данных, описывающий информационное состояние объектов в различных предметных областях и обрабатываемые компьютерной техникой.
Системой управления базами данных является программная и языковая среда для создания, управления и обработки информационных баз. Назначение СУБД:
- работа с базами на внешней (диски, ленты и т. д.) и оперативной памяти;
- совместный доступ пользователей;
- контроль изменений, архивирование и восстановление баз;
- предоставление языка доступа для ;
- утилиты для создания, модификации и управления базами.
Если говорить проще, то база данных определяет методику хранения информации , а СУБД предоставляет средства для ее обработки . Дополнительно системы управления базами разделяются на системы общего применения , которые могут обрабатывать различные данные и специализированные , разработанные под конкретную предметную область или тип информации. Примером специализированных систем управления базами данных являются объектно-ориентированные.
Реляционные системы управления
С момента появления компьютерных баз данных было создано множество моделей их работы, но реляционная модель оказалась самой универсальной. Она представляет собой связанный набор информационных таблиц, гарантирует целостность и минимальную избыточность информации. Табличная модель оказалась применима к большинству предметных областей, и рынок реляционных систем управления базами данных стал развиваться быстрыми темпами. На рисунке показан пример реляционной структуры «База студентов».
Все реляционные СУБД поддерживают ANSI стандарт языка SQL и базовые принципы реляционной модели, что обеспечивает работу приложений на разных СУБД. Дополнительно крупные СУБД имеют свои дополнения расширения SQL. Примеры системы управления для крупных проектов - это и ORACLE.
Реляционная модель успешно используется и в разработке Интернет-проектов. Примерами являются СУБД MySQL и PostgreSQL.
Технология NoSQL
Увеличение объемов информации и усложнение взаимосвязей привело к появлению новых систем управления базами данных. Информация перестала быть независимой друг от друга, и иногда вообще невозможно жестко описать ее структуру. Реляционные базы уже не могут справляться с такими задачами. Это привело к появлению нового типа информационных баз и систем управления ими, получивших общее название NoSQL («нет SQL»).
- «Ключ-Значение» . Самые популярные СУБД - Redis, Voldemort, Tokyo Cabinet и Dynomite.
- Клоны СУБД BigTable. Разработана Google для внутреннего использования в поисковой системе. Официально BigTableне предлагается, но есть СУБД на ее основе. Это Hadoop, Hypertable и Cassandra.
- Документо-ориентированные. Наиболее популярны Berkeley DB XML, MongoD, eXist и CouchDB.
- Базы на основе Используется в Neo4j, Sones graphDB и AllegroGraph.
Будущее СУБД
Рынок продолжает развиваться и все больше склоняется к использованию NoSQL-решений. Конечно, на «классическом» SQL реализовано огромное количество программных систем различной сложности, и за ним стоят такие гиганты рынка как Microsoft и ORACLE. Но с большой долей уверенности можно предположить, что NoSQL в ближайшие годы смогут значительно потеснить лидеров в разработке сложных информационных систем.