Термин NoSQL относится к нереляционным типам баз данных, данные в которых хранятся в формате, отличном от реляционных таблиц. Однако к базам данных NoSQL можно обращаться с помощью идиоматических языковых API, языков декларативно структурированных запросов и языков запросов по примеру, поэтому их также называют базами данных «не только SQL».
Базы данных NoSQL широко используются в веб-приложениях реального времени и больших данных, поскольку их основными преимуществами являются высокая масштабируемость и высокая доступность.
Базы данных NoSQL также предпочитают разработчики, поскольку они естественным образом вписываются в парадигму гибкой разработки, быстро адаптируясь к изменяющимся требованиям. Базы данных NoSQL позволяют хранить данные более интуитивно понятным и простым способом, то есть аналогично тому, как данные используются приложениями: с меньшим количеством преобразований, необходимых при хранении или извлечении данных с помощью API-интерфейсов в стиле NoSQL. Более того, в базах данных NoSQL могут использоваться все преимущества облака для обеспечения нулевого времени простоя.
Базы данных SQL — это реляционные базы данных, а базы данных NoSQL нереляционные. Реляционная система управления базами данных (РСУБД) является основой для языка структурированных запросов (SQL), который позволяет пользователям получать доступ к данным в высокоструктурированных таблицах и манипулировать ими. Это фундаментальная модель для таких систем баз данных, как MS SQL Server, IBM DB2, Oracle и MySQL. Но в базах данных NoSQL синтаксис доступа к данным может отличаться от базы данных к базе данных.
Чтобы понять, что собой представляют базы данных NoSQL, важно знать, в чем разница между РСУБД и нереляционными типами баз данных.
Данные в РСУБД хранятся в объектах базы данных, которые называются таблицами. Таблица — это набор связанных записей данных, состоящий из столбцов и строк. Для этих баз данных требуется предварительно определять схемы, то есть все столбцы и связанные с ними типы данных должны быть известны заранее, чтобы приложения могли записывать данные в базу данных. Также в них хранится информация, связывающая несколько таблиц с помощью ключей, что создает взаимосвязь между несколькими таблицами. В простейшем случае ключ используется для извлечения конкретной строки, чтобы ее можно было изучить или изменить.
И наоборот, в базах данных NoSQL данные можно хранить без предварительного определения схемы, а значит, Вы можете быстро перемещаться и выполнять итерации, определяя модель данных по ходу работы. Ваша база данных может соответствовать конкретным бизнес-требованиям: быть графовой, столбцовой, документоориентированной или представлять собой систему хранения типа «ключ-значение».
До недавнего времени наиболее широко используемыми моделями были реляционные базы данных. Они по-прежнему широко распространены во многих компаниях, однако разнообразие, скорость и объем данных, к которым обращаются сегодня, иногда требуют совершенно иной базы данных в дополнение к реляционной. Из-за этого в некоторых областях стали использоваться базы данных NoSQL, которые также называются нереляционными базами данных. Благодаря своей способности к горизонтальному и быстрому масштабированию нереляционные базы данных могут работать с большим трафиком, что также делает их легко адаптируемыми.
Поскольку предприятиям и организациям необходимо быстро внедрять инновации, возможность оставаться гибкими и продолжать работать в любом масштабе — это главное. Базы данных NoSQL предлагают гибкие схемы, а также поддерживают различные модели данных, которые идеально подходят для создания приложений, требующих больших объемов данных и малой задержки или быстрого времени отклика, например веб-приложений для онлайн-игр и электронной коммерции.
Базы данных NoSQL обычно основываются на денормализованных данных и поддерживают типы приложений, которые используют меньше таблиц (или контейнеров) и в которых отношения данных моделируются не с помощью ссылок, а как встроенные записи (или документы). Многие классические офисные бизнес-приложения в области финансов, бухгалтерского учета и планирования ресурсов предприятия используют высоконормализованные данные для предотвращения аномалий данных, а также дублирования данных. Это, как правило, те типы приложений, которые не подходят для баз данных NoSQL.
Еще одним отличием баз данных NoSQL является сложность запросов. Базы данных NoSQL отлично справляются с запросами по одной таблице. Однако по мере увеличения сложности запросов лучше использовать реляционные базы данных. Базы данных NoSQL обычно не поддерживают сложные сочленения, подзапросы и вложенные запросы в предложении WHERE.
Однако иногда нет необходимости выбирать между реляционными и нереляционными базами данных. В большинстве случаях компании выбирают базы данных, предлагающие конвергентную модель, в которой они могут использовать комбинацию реляционной и нереляционной моделей данных. Такой гибридный подход обеспечивает повышенную гибкость при работе с различными типами данных, а также гарантирует согласованность чтения и записи без снижения эффективности.
Одним из основных отличий баз данных NoSQL от других типов баз данных является то, что базы данных NoSQL обычно используют неструктурированное хранилище. Базы данных NoSQL, разработанные в последние два десятилетия, были предназначены для быстрых, простых запросов, обширных данных и частых изменений в приложениях. Кроме того, эти базы данных значительно упрощают программирование для разработчиков.
Еще одним важным отличием является то, что базы данных NoSQL основываются на процессе, который называется шардингом, чтобы обеспечить горизонтальное масштабирование, а это значит, что можно добавить больше машин для обработки данных на нескольких серверах. При вертикальном масштабировании, применяемом в других базах данных SQL, в существующую машину требуется добавлять дополнительную мощность и память, а это может сказаться на стабильности, поскольку требуется все больший и больший объем хранилища.
Характер горизонтального масштабирования баз данных NoSQL означает, что они могут обрабатывать чрезвычайно большие объемы данных (даже по мере их роста) более эффективным способом. Можно представить себе вертикальное масштабирование как добавление нового этажа в доме, а горизонтальное масштабирование как строительство еще одного дома прямо рядом с первым.
Беспрецедентная скорость и масштабы цифрового взаимодействия и потребления данных, отмечаемые в последние два десятилетия, потребовали от предприятий более современного и гибкого подхода к хранению данных и доступу к ним. Поскольку пользователи по всему миру требуют непрерывного потока контента и функций, неудивительно, что базам данных пришлось быстро адаптироваться. С учетом этого вот некоторые ключевые причины, по которым разработчики выбирают NoSQL или нереляционные базы данных.
Существует четыре основных типа баз данных NoSQL.
Oracle NoSQL Database Cloud Service облегчает разработчикам создание приложений с использованием моделей баз данных документов, столбцов и ключей-значений, которые обеспечивают предсказуемое время отклика в миллисекундах с репликацией данных для высокой доступности. Сервис предлагает транзакции ACID, бессерверное масштабирование, комплексную безопасность и низкую цену с оплатой по мере использования.
Сервис Oracle NoSQL Database Cloud теперь является частью Oracle Cloud Free Tier, который включает в себя бесплатную, ограниченную по времени рекламную пробную версию, позволяющую изучить широкий спектр облачных сервисов, а также набор сервисов Always Free, срок действия которых никогда не истекает.