Что такое базы данных
Определения, типы и примеры использования баз данных.
Что такое базы данных
В самом широком понимании база данных — это любой набор взаимосвязанной информации. Когда вы пишете список покупок на листе бумаги, вы создаете небольшую аналоговую базы данных. Но в информатике для базы данных есть конкретное определение. В этой науке "база данных" — это информация, которая хранится в виде данных в компьютерной системе. Это можно сравнить со списком товарных запасов в местном продуктовом магазине.
Для чего используются базы данных
Базы данных используются для хранения и упорядочения информации, чтобы с ней было проще работать. Люди сталкиваются с большим объемом данных, структура которых только усложняется. Становится труднее их организовать, а также обеспечить доступность и безопасность. Чтобы справиться с этими задачами, используются специальные системы управления базами данных (СУБД).
Что такое данные
Данные — это любая собранная и сохраненная информация об отдельной сущности (человеке, месте, предмете или объекте). К данным также относятся и атрибуты этой сущности.
Например, вы собираете и сохраняете информацию о местных ресторанах. Каждый такой ресторан является сущностью, а его название, адрес и рабочие часы представляют собой атрибуты. Вся эта информация о ресторанах называется данными.
Типы баз данных
Не вдаваясь в детали, базы данных можно разделить на реляционные и нереляционные. Реляционные базы данных хорошо структурированы и поддерживают язык SQL (Structured Query Language). Нереляционные базы данных отличаются большим разнообразием и поддерживают различные структуры данных. Так как для многих нереляционных баз данных нельзя использовать язык SQL, их часто называют базами данных NoSQL.
Типы структур данных
Табличные структуры — это структуры реляционных баз данных, в которых данные упорядочены в строки и столбцы. При этом в строках содержатся сущности, а в столбцах — их атрибуты. В широких таблицах или хранилищах широких столбцов используются разреженные столбцы с пустыми атрибутами, что позволяет значительно увеличить общее количество столбцов в таблице. Так как некоторые области являются пустыми, широкие таблицы — это пример нереляционной структуры данных.
В линейных структурах элементы объединяются в последовательность.
Массив
Связанный список
Двоичное дерево
В древовидных структурах элементы упорядочены в виде иерархической базы данных узлов со связями типа ''родительский элемент — дочерний элемент'', которые исходят от одного корневого узла.
Граф
В графовых структурах элементы базы данных упорядочены в виде неиерархической сети узлов со сложными связями между ними.
Хэш-таблица
В структурах на основе хэша ключи сопоставляются со значениями с помощью хэш-функций, которые связывают соответствующие данные, назначая индексы хэш-таблицам.
Документоориентированные базы данных
В документоориентированной базе данных большие объемы информации об одной сущности объединены в один объект (документ), который отделен от других объектов. При этом объекты необязательно должны быть связаны друг с другом. При такой структуре можно изменить один объект, не затрагивая другие.
Реляционные базы данных
Реляционные базы данных наиболее распространены. В них данные упорядочены в таблицы, которые содержат сведения о каждой сущности. Строки и столбцы в таких таблицах представляют собой предварительно заданные категории. Эти структурированные данные являются эффективными и гибкими в контексте доступа.
Примеры реляционных баз данных:SQL Server, Azure SQL, MySQL, PostgreSQL и MariaDB.
Нереляционные базы данных
В нереляционных базах данных хранятся неструктурированные или полуструктурированные данные. В них не используются таблицы со столбцами и строками, как в реляционных базах данных. Вместо этого используется модель хранения, оптимизированная под конкретные требования в соответствии с типами данных. Нереляционные базы данных позволяют быстро обращаться к большим наборам распределенных данных, обновлять их и анализировать.
Примеры нереляционных баз данных: MongoDB, Azure Cosmos DB, DocumentDB, Cassandra, Couchbase, HBase, Redis и Neo4j.
Некоторые нереляционные базы данных называют базами данных NoSQL. Термин NoSQL относится к хранилищам данных, в которых для запросов не используется SQL или используется не только SQL. В них применяются другие языки и конструкции для запросов данных. Многие базы данных NoSQL поддерживают запросы на языке SQL. Но эти SQL-запросы выполняются не так, как это происходит в традиционных реляционных базах данных.
Один из видов нереляционных баз данных — это объектные базы данных. Для работы с ними используется объектно-ориентированное программирование. Объекты кодируются с данными о состоянии (фактическими данными), которые хранятся в поле или переменной, и данными о поведении, которые можно отобразить с помощью метода или функции. Такие объекты могут храниться в постоянном хранилище, а также считываться и сопоставляться напрямую без использования API или другого инструмента. Это обеспечивает более быстрый доступ к данным и более высокую производительность. При этом объектные базы данных менее популярны, так как их обслуживание может оказаться сложной задачей.
Выполняющиеся в памяти базы данных и кэш
Все данные в выполняющихся в памяти базах данных хранятся на оперативном запоминающем устройстве (ОЗУ). При отправке запроса к такой базе данных или ее обновлении вы обращаетесь напрямую к оперативной памяти. При этом диск не задействуется. Данные загружаются быстро, так как доступ к оперативной памяти (которая расположена рядом с процессором на системной плате) осуществляется гораздо быстрее, чем доступ к диску.
Выполняющиеся в памяти базы данных обычно используются для хранения копий часто используемых сведений, например данных о цене или наличии товара. Такой процесс называется кэшированием. Копия кэшируемых данных сохраняется во временном расположении, поэтому они загружаются быстрее при следующем запросе. Подробную информацию можно найти в статье о кэшировании.
Примеры использования баз данных
Базы данных могут показаться чем-то сложным и далеким, но большинство из нас взаимодействуют с ними каждый день. Ниже приведены типичные примеры использования реляционных баз данных, баз данных NoSQL и выполняющихся в памяти баз данных.
Финансовые транзакции
Банки используют базы данных для отслеживания различных транзакций клиентов: от запросов данных о балансе до перевода средств между счетами. Эти транзакции должны выполняться практически мгновенно, а данные из огромных объемов информации всегда должны быть актуальными. Поэтому банки применяют веб-системы обработки транзакций на основе реляционных баз данных. Они могут работать с большим количеством запросов от клиентов, а также обеспечивают частое изменение данных транзакций и малое время отклика.
Каталоги для электронной коммерции
Если у вас есть веб-сайт для электронной торговли, его каталог содержит перечень конкретных продуктов с набором атрибутов. В нереляционной документоориентированной базе данных для описания всех атрибутов одного продукта используются отдельные документы. Вы можете изменять атрибуты в документе, не затрагивая другие продукты. Выполняющиеся в памяти базы данных обычно применяются для кэширования часто используемой информации, например о наличии товара и его цене. Это позволяет ускорить получение сведений и снизить нагрузку на базу данных.
Социальные сети
Когда вы присоединяетесь к социальной сети, информация о вас добавляется в нереляционную базу данных всех ее пользователей. При общении с другими людьми в этой сети вы становитесь частью социального графа. Поэтому вы видите отфильтрованный список друзей и рабочих контактов, а также можете найти связанных с ними людей.
Персонализированные результаты поиска
Нереляционные базы данных используются для персонализации контента в Интернете. Это стало настолько распространенным явлением, что вы можете даже не замечать его. Например, при покупке авиабилета на туристическом веб-сайте вам предлагают варианты для бронирования отеля и аренды автомобиля. База данных такого веб-сайта содержит огромный объем неструктурированной информации: сведения о рейсе, предпочтения в путешествиях, данные о предыдущих бронированиях. Такая информация используется для персональных рекомендаций, которые помогают вам экономить время и деньги. В приложениях выполняющиеся в памяти базы данных применяются для эффективного хранения временных данных пользователей (данных сеансов), например параметров поиска или данных корзины.
Бизнес-аналитика
Когда компаниям нужно получать полезные сведения из собственных данных, они могут использовать реляционные базы данных для управления аналитикой. Например, служба технической поддержки может отслеживать различные характеристики обращений: тип проблемы, время ее решения и удовлетворенность клиентов. В реляционной базе с табличной структурой данные о проблемах клиентов будут упорядочиваться только по двум измерениям. Но в системе интерактивной аналитической обработки (OLAP) специалисты службы поддержки могут одновременно просматривать несколько таблиц, что позволяет реализовать многомерный анализ для быстрой обработки больших объемов данных.
Системы управления базами данных
Администраторы используют системы управления базами данных (СУБД), особенно при работе с большими данными. Большие данные — это огромные объемы структурированных и неструктурированных данных, которые система получает в реальном или почти реальном времени. СУБД также помогают управлять данными, которые используются в нескольких приложениях или находятся в разных местах.
Системы управления базами данных имеют разные уровни организации, возможности масштабирования и сферы применения. При выборе СУБД важно учесть не только тип данных и способ доступа к ним, но и место их расположения, тип архитектуры базы данных и способ масштабирования.
Где расположены данные: в облаке, локально или в обеих средах?
Локальные базы данных предполагают размещение данных на частном оборудовании на объекте клиента. (Такое размещение еще называют частным облаком). Если нужно увеличить объем данных, администраторы должны проверить, достаточно ли свободного места на локальных серверах, и при необходимости добавить новое оборудование для расширения инфраструктуры.
В облачных базах данных структурированные или неструктурированные данные расположены на частной, общедоступной или гибридной платформе облачных вычислений (платформе, объединяющей частное и общедоступное облачное хранилище). Облачные базы данных разработаны для виртуализированной среды, поэтому они обеспечивают высокий уровень масштабируемости и доступности. Также они помогают снизить затраты, так как вам не нужно покупать много оборудования и вы будете платить только за используемое место в хранилище.
Какова архитектура базы данных: централизованная, распределенная или федеративная?
В централизованной базе данных все данные находятся в одной системе. Эта единая система является точкой доступа для всех пользователей.
Распределенная база данных может охватывать реляционные и нереляционные базы данных. При распределенной архитектуре данные хранятся в нескольких физических расположениях — на нескольких локальных компьютерах или в сети взаимосвязанных компьютеров.
В федеративной базе данных несколько отдельных баз данных, работающих на независимых серверах, объединены в один большой объект. Блокчейн — это один из видов федеративной базы данных для безопасного управления реестрами финансовых операций и другими записями транзакций.
Какое масштабирование планируется применять при увеличении объема данных: вертикальное или горизонтальное?
Вертикальное увеличение (или уменьшение) масштаба — это процесс добавления (или удаления) ресурсов, например памяти или мощных ЦП, на существующем сервере.
Горизонтальное увеличение (или уменьшение) масштаба реализуется путем добавления (или удаления) компьютеров в пуле ресурсов.
В отличие от вертикального, горизонтальное масштабирование позволяет продлить жизненный цикл оборудования, выполнить модернизацию без привязки к поставщику, сократить затраты и создать долгосрочный потенциал гибкости.
Базы данных Azure
Чтобы упростить работу с данными, используйте полностью управляемые базы данных, которые позволяют автоматизировать масштабирование, управление доступом и защиту. Вам доступны реляционные, нереляционные и выполняющиеся в памяти базы данных, работающие на основе защищаемых ядер и ядер с открытым кодом.
Подробнее о переносе баз данных в Azure
Создание управляемой облачной базы данных с помощью бесплатной учетной записи Azure
Выбор подходящего продукта для работы с базами данных в Azure
Знакомство с семейством баз данных Azure SQL
Унифицируйте все свои SQL-решения без проблем с совместимостью. Переносите, модернизируйте и развертывайте приложения удобным для вас способом из пограничной среды в облако с помощью знакомой технологии SQL Server.
База данных Azure для PostgreSQL для уверенного масштабирования
База данных Azure для PostgreSQL позволяет быстро и уверенно масштабировать рабочую нагрузку. При этом обеспечивается высокий уровень доступности, улучшенная защита и оптимизация производительности с помощью ИИ.
Azure Cosmos DB для создания высокопроизводительных приложений
Azure Cosmos DB — это полностью управляемая база данных NoSQL с открытыми API и гарантированной скоростью для любого масштаба.
Кэш Azure для Redis для эффективной обработки больших объемов трафика
Кэш Azure для Redis позволяет одновременно и практически мгновенно обрабатывать запросы тысяч пользователей. Для этого в архитектуру приложения добавляется слой быстрого кэширования.
Начните создавать приложения с Azure
Опробуйте службы Azure для облачных вычислений бесплатно в течение 30 дней или начните работу с оплатой по мере использования. Никаких предварительных обязательств — подписку можно отменить в любое время.