Типы баз данных и что лучше SQL или NoSQL?
Введение
В современном мире данные играют важную роль в жизни человека. Каждый день мы получаем какую-то информацию, например, имя нового коллеги, его возраст или откуда он родом. Вся данная информация может считаться полезной и её лучше знать, но не всегда можно запомнить данные которые ты получил.
В данном случае можно открыть блокнот и вписать то что боишься забыть вот этот самый блокнот и будет являться базой данных.
Ответ на вопрос зачем нужны базы данных вы уже получили так давайте разберемся какие базы данных бывают в ИТ сфере.
Базы данных в современном мире
На данный момент работать с ними может кто угодно для этого ему нужно лишь желание научиться и интернет, но если вы хотите чтобы ваши базы данных были в безопасности лучше предоставить это дело инженерам по управлению БД.
Каким образом инженеры управляют базами данных? В помощь им приходит СУБД - программное обеспечение позволяющее работать с ними.
Типы базы данных
Ниже приведены различия баз данных, которые используются в современном мире. Выбрать одну определенную и назвать её лучшей на данный момент нельзя потому что каждая обладает своими преимуществами и некоторые удобны в одних случаях а другие в других об этом читайте ниже.
Реляционные БД (SQL)
К такому типу баз данных можно отнести MySQL, Oracle и т.д. Данный вид баз данных хранит в себе информацию в виде таблиц где каждая строка таблицы является записью. Данная БД очень активно используется многими пользователями по миру и считается самой популярной, на её основе и работает множество игровых серверов и прочего.
Плюсы
- Соответствует требованиям ACID
- Имеют простую структуру
- Используют SQL и быстро обновляют данные
Минусы
- Может долго выполняться запрос т.к. каждый запрос относится к таблице и чем больше таблица тем дольше ждать ответ.
- Не поддерживает объекты на основе ООП
- Хуже поддаются масштабируемости
NoSQL (Не только SQL) или просто не реляционные БД
Базы данных такого типа не обладают структурированной схемой для записи данных, а также фокусируется на содержание базы в json записи. Данные БД делятся на несколько типов укажу лишь два из них.
Ключ-Значение
Такие базы данных не поддерживают обычные запросы между различным значениями записей. Здесь все действует следующим образом вы запрашиваете ключ и получаете его значение, примером такой базы данных можно считать Redis.
Графовые
В данной БД данные хранятся в виде графов и они очень гибкие с понятной структурой. Такой тип часто используются в социальных сетях. Примером данной БД можно считать OrientDB либо InfiniteGraph
Плюсы
- Легко подаются масштабируемости
- Быстрота работы
- Хранение данных в разных структурах
Минусы
- Долго обновляются т.к. Информация может храниться на разных серверах
- Не соответствует ACID
Заключение
Точно сказать что лучше всего использовать в том или ином случае нельзя, все зависит от потребностей каждого пользователя. Для того чтобы точно узнать какая больше подойдет под ваши нужды лучше прислушаться к мнению другие пользователей и их опыту. Также вы можете всегда ответить на несколько вопросов, которые помогут вам понять какую БД лучше всего использовать.
- Есть ли потребность в чтение или записи данных онлайн?
- Какое кол-во информации вы собираетесь хранить?
- Есть ли необходимость использования столбцов?
- Нужно ли следовать принципам ACID?
Хотелось бы заметить что лучше всего использовать оба варианта БД SQL и NoSQL. Просто каждую из данных баз можно использовать для отдельного проекта, ведь где-то нужны реляционные базы данных с табличным вариантом где их будет легче редактировать, а где-то скорость более важна и тогда следует использовать NoSQL.