Реляционные базы данных
Прежде чем определять понятие реляционных баз данных, нужно разобраться с понятием самих данных. В информационном пространстве под данными подразумевают факты и идеи, зафиксированные в формализованном виде — таком, который позволяет хранить, передавать и обрабатывать их. Совокупность данных формирует базу данных — массив, в котором собраны и организованы по некоторому принципу данные из какой-либо области знаний.
Принцип построения базы данных определяется ее моделью. Наиболее известны иерархическая, сетевая, объектная и реляционная модели. Последняя — самая популярная, и именно о ней пойдет речь в этой статье.
Реляционная модель
Реляционную модель предложил британский математик Эдгар Кодд
Реляционная база данных — это составленная по реляционной модели база данных, в которой данные, занесенные в таблицы, имеют изначально заданные отношения. Сами таблицы в такой базе данных также соотносятся друг с другом строго определенным образом. Реляционные базы данных используют целый комплекс инструментов, которые обеспечивают целостность данных, т. е. их точность, полноту и единообразие.
Для взаимодействия с любой реляционной базой данных используется SQL (Structured Query Language) — язык структурированных запросов. Это основа интерфейса систем управления базами данных. Он стандартизирован с 1986 года и поддерживается всеми известными ядрами реляционных баз данных. SQL позволяет работать со строками таблиц (например, удалять, добавлять или изменять их), а также извлекать нужные блоки информации и производить транзакции.
Транзакция — это комплекс последовательных операций с применением операторов SQL, имеющих определенную цель. Все транзакции должны отвечать четырем требованиям ACID:
- Атомарность (англ. atomicity) — транзакция является неделимым блоком и выполняется или полностью, или никак.
- Согласованность (англ. consistency) — завершенная транзакция сохраняет согласованность базы данных.
- Изолированность (англ. isolation) — параллельные транзакции не могут влиять друг на друга.
- Устойчивость (англ. durability) — никакой сбой в системе не может влиять на результат завершенной транзакции.
Структура реляционной базы данных
Данные в реляционной базе данных формируют отношения — двумерные таблицы с информацией о сущностях, т. е. объектах. Строка такой таблицы называется кортежем. Кортежи содержат множество атрибутов одной сущности, категории которых задаются в столбцах.
Например, возьмем базу данных отдела кадров на предприятии. В ее строки заносятся сведения о сотрудниках — у них могут быть следующие атрибуты:
- дата рождения;
- фамилия;
- имя;
- отчество;
- должность;
- структурное подразделение;
- номер пропуска.
Для каждого атрибута выделен строго определенный столбец, а каждый столбец может содержать только один тип (или категорию) атрибутов.
Каждая из строк определяет только одну-единственную сущность — сотрудника — и содержит уникальный набор его атрибутов.
Таким образом, строки в базе данных не повторяются. Чтобы гарантировать уникальность каждой строки, для нее задается первичный ключ, своего рода идентификатор, который также используется, когда на кортеж нужно сослаться из другой таблицы, при этом не приводя полного набора атрибутов сущности. Тогда первичный ключ становится внешним ключом. Именно ключи обеспечивают целостность и согласованность данных и отношений.
Допустим, кроме таблицы работников из отдела кадров, у нас есть таблица заказчиков из отдела маркетинга. У каждого заказчика тоже есть свои атрибуты, в том числе идентификатор — первичный ключ. Если нам нужно учесть объем продукции, отгруженный каждым из работников каждому заказчику, мы можем связать данные из двух этих таблиц в третьей — используя их первичные ключи, которые в новой таблице будут выступать в качестве внешних ключей.
Первичный ключ позволяет обращаться к кортежам базы данных независимо от того, где физически они расположены, на каком месте, в какой таблице и в каком порядке. Ключи позволяют сортировать, фильтровать, извлекать, обрабатывать и возвращать данные в таблицы без лишних операций: если та или иная сущность встречается в базе данных множество раз, достаточно изменить ее атрибуты в одной таблице (по первичному ключу) — и они обновятся везде, где встречается этот ключ. Кроме того, ключи не позволяют ссылаться на несуществующие данные — а это гарантирует целостность всей базы данных.
Основные характеристики реляционных баз данных
Признак | Пояснение |
---|---|
Множество сущностей | Объекты со строго определенным набором атрибутов, с помощью которых они связываются между собой, формируют понятную и простую для восприятия структуру. |
Табличный формат | Такой формат гарантирует высокий уровень структурированности с жесткими логическими взаимосвязями, минимальный уровень избыточности данных, их согласованность и целостность. |
Язык SQL | SQL является стандартизированным средством общения пользователя с базой данных. Он очень формальный, что делает его удобным и простым в изучении. SQL гарантирует точный результат даже при сложном многоуровневом запросе. |
Масштабирование по вертикали | Реляционные базы данных хорошо масштабируются по вертикали. Но это значит, что по мере накопления информации в какой-то момент ее обработка потребует больших аппаратных ресурсов и финансовых затрат. |
Масштабирование по горизонтали | Горизонтальное масштабирование, подразумевающее распределение таблиц данных по множеству серверов, является слабой стороной реляционных баз данных. С разрастанием системы появляются задержки в обновлении данных. В какие-то моменты нарушается принцип целостности данных, что может негативно отразиться на пользовательском опыте. |
Наличие требований к параметрам данных | Реляционные базы данных умеют работать только со структурированными данными. Но современный цифровой мир полон неструктурированных данных (например, фото и видео), к которым нельзя применять принципы реляционной модели. |
Применение реляционных баз данных
Реляционные базы данных — самые распространенные базы данных в мире. Компании самого разного размера и профиля используют их для обслуживания своих информационных систем. Такой подход удобен, чтобы:
- отслеживать торговые транзакции в интернете;
- обрабатывать критически важные данные банковских клиентов;
- хранить и обслуживать картотеки на промышленных предприятиях;
- вести учет в медицине и образовании.
То есть реляционные базы данных применимы везде, где важнейшим приоритетом является целостность и безопасность данных и где встречаются высокоструктурированные данные, соответствующие строгой, предсказуемой и предопределенной схеме.
Что предлагает Yandex Cloud
В инфраструктуре Yandex Cloud существует распределенная отказоустойчивая реляционная база данных с открытым исходным кодом YDB
Специально для управления YDB создан сервис Yandex Managed Service for YDB. Он поддерживает бессерверные вычисления, сочетает высокую доступность и горизонтальную масштабируемость с поддержкой строгой консистентности и распределенных высокопроизводительных ACID-транзакций, которые могут задействовать записи из разных страниц. Для запросов используется диалект SQL — YQL. Таблицы могут быть организованы в виде директорий по аналогии с файловой системой.
Инженеры поддержки Yandex Cloud помогают обеспечить бесперебойную работу клиентской базы данных даже в самых сложных и неопределенных условиях. Развернуть базу данных можно в любой инфраструктуре, включая публичные облака и собственные вычислительные среды.
Для сервиса действует соглашение об уровне обслуживания
Чтобы начать пользоваться YDB, выберите подходящий режим и создайте свою базу данных
Интересное по теме
- Записи вебинаров:
- История успеха Как Авто.ру провел экзамен по ПДД с помощью serverless-технологий
- Новость в блоге Распределенная СУБД YDB выходит в open source