—реди обили€ различных вариантов довольно трудно выбрать ту модель базы данных (Ѕƒ), который идеально подойдет под ваши нужды. ≈сли говорить о разновидност€х —”Ѕƒ, то чаще всего предпочтение отдаетс€ рел€ционным базам.

¬ данной статье мы поговорим об устройстве рел€ционных баз данных, обсудим принципы их работы, а также плюсы и минусы использовани€ этих систем.  роме того, продемонстрируем примеры, которые нагл€дно показывают, как рел€ционные Ѕƒ систематизируют данные.


„то такое рел€ционна€ база данных

–ел€ционна€ база данных Ц это тип Ѕƒ, который специализируетс€ на св€з€х (отношени€х) между элементами данных. ќн позвол€ет устанавливать взаимосв€зи между различными наборами данных и использовать эти св€зи дл€ управлени€ и обращени€ к св€занным данным.

ƒл€ создани€ и поддержки данных во многих рел€ционных Ѕƒ используетс€ SQL (Structured Query Language - структурированный €зык запросов).


–ел€ционные и нерел€ционные базы данных

–ел€ционные Ѕƒ делают упор на отношени€х между данными. —ледовательно, рел€ционные Ѕƒ должны хранить данные в строго структурированном виде. Ёто ускор€ет индексирование и врем€ ответа на запросы, а также улучшает безопасность и посто€нство данных.

Ќерел€ционные базы данных, наоборот, не так сильно завис€т от структуры данных, поэтому могут хранить большие объемы данных, не тер€€ гибкости и легко масштабиру€ хранение и производительность.


 ак структурируютс€ данные в рел€ционных системах управлени€ данными?

¬ рел€ционных системах управлени€ данными (–—”Ѕƒ) используетс€ модель, котора€ структурирует данные в таблицы строк (их еще называют запис€ми или кортежами) и столбцов (или атрибутов/полей). ќбычно в столбцах размещаютс€ категории данных, а в строки добавл€ютс€ отдельные экземпл€ры.

¬ качестве примера рассмотрим онлайн-магазин. ¬ нашей базе данных находитс€ таблица с информацией о клиентах. ¬ столбцах указываютс€ имена клиентов и адреса, а в строках Ц данные по каждому клиенту.

—троки и столбцы

“акие таблицы можно св€зать или соотнести с помощью ключей.  ажда€ строка в таблице идентифицируетс€ с помощью уникального ключа (его называют первичный ключ - primary key). Ётот ключ можно добавить в другую таблицу, и там он превратитс€ во внешний ключ (foreign key). ќтношение первичный/внешний ключ лежит в основе того, как работают –—”Ѕƒ.

¬ернемс€ к нашему примеру. ƒопустим, у нас есть таблица с заказами товаров. ¬ одном столбце этой таблицы находитс€ информаци€ о клиенте. —юда мы можем импортировать первичный ключ, который ссылаетс€ на строку с информацией по отдельному клиенту.

—в€зи таблиц

“аким способом мы можем ссылатьс€ на данные или дублировать данные из таблицы с информацией о клиентах.  роме того, теперь эти две таблицы св€заны.


ѕримеры рел€ционных баз данных

—ейчас, когда мы рассмотрели, как работают –—”Ѕƒ, пора поговорить о попул€рных примерах их использовани€.

MySQL

MySQL

MySQL разрабатывалась как –—”Ѕƒ с открытым кодом, затем ее купила компани€ Sun Microsystems (теперь это Oracle Corporation). ќна по-прежнему доступна со свободной лицензией, но с добавлением проприетарных опций.

¬ MySQL заложена встроенна€ поддержка репликации с ACID-совместимостью, кластеризаци€ без разделени€ ресурсов между узлами и поддержка многих движков Ѕƒ. Ќо на некоторых движках SQL может работать некорректно.

MySQL преуспел в быстром вводе данных и масштабируемости, сохранив при этом высокую доступность и производительность. ¬се это делает MySQL крайне полезным в веб-разработке и создании приложений.

PostgreSQL

PostgreSQL

PostgreSQL Ц это бесплатный менеджер управлени€ рел€ционными Ѕƒ, доступный по свободной лицензии. ¬ нем можно найти некоторые функции MySQL с весомым добавлением MVCC (multi-version concurrency contro - управление параллельным доступом посредством многоверсионности), поэтому така€ система совместима с ACID.

PostgreSQL сохран€ет высокий уровень гибкости и производительности даже при обработке больших баз данных. Ёто подход€щее решение дл€ пользователей, которым важна высока€ скорость записи/чтени€ и разноплановый анализ данных.

—реди известных пользователей PostgreSQL стоит упом€нуть Reddit, Skype и Instagram.

MariaDB

MariaDB

»значально MariaDB создавалась сообществом в качестве форка MySQL, когда тот выкупила Oracle. MariaDB все еще свободно распростран€етс€ под стандартной универсальной лицензией GNU.

MariaDB создана на базе MySQL с добавлением поддержки еще большего количество движков и исправлением ограничений по хранению данных. ќна работает быстрее MySQL и позвол€ет запускать SQL и NoSQL в одной базе данных.

—реди известных пользователей MariaDB можно выделить Google, Mozilla и Wikimedia Foundation.

SQLite

SQLite

¬ отличие от других представителей в этом списке, SQLite не €вл€етс€ менеджером баз данных с архитектурой клиент-сервер; он, скорее, встраиваетс€ в конечное приложение, благодар€ чему мало весит и способен работать с большими массивами систем и платформ.

¬ SQLite есть некоторые ограничени€, поскольку он лишь частично предоставл€ет триггеры, имеет ограниченную функцию ALTER TABLE и не может записывать в представлени€.  роме того, SQLite ограничивает максимальный размер базы до 32 000 столбцов и 140 “Ѕ.

ѕолучаетс€, что SQLite лучше всего использовать в качестве компонента базы данных дл€ других приложений. —реди известных пользователей можно назвать Google Chrome, Mozilla Firefox, Opera и Safari.


„то такое система управлени€ рел€ционными базами данных?

—истема управлени€ базой данных (—”Ѕƒ или DBMS) Ц это программное решение, которое позвол€ет пользовател€м просматривать, запрашивать и управл€ть базами данных.

—истема управлени€ рел€ционными базами данных (–—”Ѕƒ или RDBMS) Ц это более расширенное подмножество —”Ѕƒ дл€ управлени€ рел€ционными базами данных.

Ќиже приведены некоторые различи€ между универсальной —”Ѕƒ и –—”Ѕƒ

—”Ѕƒ –—”Ѕƒ
’ранит меньшее количество данных в виде файлов; нет взаимосв€зей —охран€ет большие объемы данных в виде св€занных друг с другом таблиц
ћожно обращатьс€ к одному элементу данных за раз ћожно обращатьс€ ко многим элементам данных одновременно.
ѕри работе с большими объемами замедл€етс€ получение данных ¬ рел€ционном подходе получение данных не замедл€етс€ даже дл€ больших Ѕƒ.
Ќет нормализации Ѕƒ. ≈сть нормализаци€ Ѕƒ.
Ќе поддерживает распределенные Ѕƒ ѕоддерживает распределенные Ѕƒ.
ѕоддержка одного пользовател€. ѕоддержка нескольких пользователей.
Ќизкий уровень безопасности ћного уровней безопасности.
Ќизкие требовани€ к программному и аппаратному обеспечению. ¬ысокие требовани€ к программному и аппаратному обеспечению

ѕлюсы и минусы рел€ционных баз данных

 ак и во всех модел€х баз данных, здесь есть свои плюсы и минусы.

ѕлюсы

–ел€ционные Ѕƒ используют таблицы столбцов и строк, поэтому они отображают данные проще, чем другие типы, и работать с ними удобнее.

“ака€ таблична€ структура создана специально дл€ обработки данных, что повышает производительность и позвол€ет использовать сложные, высокоуровневые запросы.

», наконец, в рел€ционных Ѕƒ легко масштабировать данные, добавл€€ строки, столбцы или целые таблицы, не наруша€ при этом общей структуры базы.

ћинусы

–ел€ционные Ѕƒ могут масштабироватьс€ только до определенного предела. ≈сли говорить о размере базы, то в некоторых Ѕƒ есть строгое ограничение по длине столбцов. ≈сли вы создаете базу на отдельном сервере, то при ее разрастании придетс€ покупать дополнительное место, то есть в долгосрочной перспективе ее поддержание обходитс€ не дешево.

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


«аключение

ѕосле прочтени€ этой статьи у вас должно по€витьс€ четкое понимание того, как работают рел€ционные базы данных. “акже вы познакомились с р€дом интересных примеров –—”Ѕƒ.


—кидки 50% в Merion Academy

¬ыбрать курс