Введение в базы данных

На этот раз немного по-другому. В последнее время, как на работе, так и в своих личных проектах и исследованиях, я имею дело с широким спектром баз данных. Базы данных в целом являются основным компонентом инфраструктуры приложений. Несмотря на это, в блогосфере им уделяется гораздо меньше внимания, чем другим темам, таким как UI, UX, API и т.п. Я понимаю. Базы данных не сексуальны. Они не крутые. Это просто ядро, которое поддерживает все приложение. Ничего важного.

Так что же такое база данных? На самом базовом уровне база данных — это цифровая система хранения, в которой хранится вся информация, создаваемая и используемая вашим приложением. Системы баз данных бывают разных видов, но в целом они делятся на две основные категории: Реляционные (RDBMS) и нереляционные (NoSQL или Document DB).

Реляционные и нереляционные системы

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

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

Затем в базе данных определяются отношения между различными таблицами. Например, связь существует между записью о клиенте в таблице «Клиент» и одним или несколькими заказами на продажу в таблице «Заказы». Эти отношения между таблицами и определяют базу данных как реляционную.

В таких реляционных базах данных, как правило, хранится только последняя, или текущая, версия записи. Если не создан какой-то архив, то при обновлении записи предыдущая версия исчезает.

Примерами реляционных баз данных являются Microsoft SQL Server, Oracle, PostgreSQL и MySQL.

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

Большинство современных баз данных NoSQL или документарных баз данных хранят эти данные в структуре в формате JSON, но она может меняться. И структура данных может меняться от записи к записи. Например, в реляционных базах данных каждая запись о клиенте имеет точно такую же структуру, даже если эти поля пустые. Но в базе данных NoSQL у одного клиента могут быть поля, которых нет у другого клиента. Нет жесткой структуры для любых данных, что позволяет вашим данным быть гораздо более свободными по своей природе.

Кроме того, некоторые из этих баз данных NoSQL даже не позволяют обновлять существующие записи. При необходимости обновления данных создается новая запись, а существующая запись удаляется или помечается как устаревшая.

Примерами таких NoSQL баз данных являются DocumentDB, MongoDB, CouchDB и CosmosDB.

SQL

Еще одно существенное различие между системами баз данных SQL и NoSQL — это метод, с помощью которого осуществляется запрос и обновление данных. Для реляционных баз данных общим стандартом является использование языка под названием SQL. SQL (произносится как «Sequel» или «Es-Q-El») означает язык структурированных запросов. SQL — это язык, разработанный много-много лет назад как структурированный метод для опроса и обновления данных в базе данных.

Структура языка довольно проста. У вас есть команда, столбцы данных, таблицы данных, а также некоторые дополнительные опции для обновления или добавления данных или для группировки, фильтрации или сортировки данных. ‘

Запрос в его простейшей форме известен как оператор SELECT. Например:

SELECT * FROM Customer
Войти в полноэкранный режим Выйти из полноэкранного режима

Этот оператор возвращает все записи и все столбцы данных из таблицы Customer в базе данных. Общепринятым стандартом является то, что команды должны быть набраны ALL CAPS, но это не обязательно.

SELECT FirstName, LastName, CustomerID FROM Customer WHERE State = 'Ohio'
Войти в полноэкранный режим Выйти из полноэкранного режима

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

Самое приятное в SQL то, что хотя каждый из производителей (Microsoft, Oracle, IBM и т.д.) имеет некоторые незначительные различия в том, как SQL реализован в их системах, большинство из них одинаковы для любой системы, использующей этот язык. Если вы изучите SQL, вы сможете работать с MSSQL, Oracle или MySQL, практически не переходя от одной системы к другой.

NoSQL

Термин NoSQL для баз данных в стиле Document DB, как правило, происходит от того, что большинство этих систем не используют SQL для доступа и обновления данных в своих хранилищах. Хотя некоторые из них действительно поддерживают использование SQL, это, как правило, не основной метод доступа к данным и их обновления.

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

Что лучше?

**buzz** Неправильный ответ! Спасибо за игру.

Хотя некоторые люди с удовольствием спорят об этом до посинения, правда в том, что у каждого из них есть свои сильные и слабые стороны. Все сводится к самим данным. Реляционные базы данных лучше подходят для одних типов данных, а нереляционные базы данных — для других. А некоторые данные прекрасно подходят для любой из этих систем.

Гибридные решения — вот что сейчас в моде. Решения, которые разбивают данные на части и используют сильные стороны каждого типа систем, становятся нормой.

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

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

Заключение

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

The post An Introduction To Databases appeared first on Barret Codes.

Оцените статью
devanswers.ru
Добавить комментарий