Архитектура РСУБД

Материал из Викиконспекты
Перейти к: навигация, поиск
НЕТ ВОЙНЕ

24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян.

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

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

Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить.

Антивоенный комитет России

Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению.
meduza.io, Популярная политика, Новая газета, zona.media, Майкл Наки.


Определение:
Реляционная система управления базами данных (сокр. РСУБД, англ. Relational Database Management System, сокр. RDBMS) - СУБД, управляющая реляционными базами данных.


Общий план

Верхнеуровнево, система управления баз данных состоит из хранилища данных и программы, которая к этим данным обращается.

Замечание, программа и данные могут быть на разных компьютерах.

Общий план

Взаимодействие с СУБД

Под вопросом из первой картинки скрывается несколько компонент, один из них - протокол взаимодействия программы и СУБД. Этот протокол реализуется драйверами : с одного конца есть программа, взаимодействующая с драйвером, и, аналогично, с другого конца есть СУБД (которое обращается в хранилище) и также драйвер.

Замечание, на этой картинке СУБД и данные располагаются на одном компьютере, что позволяет не ходить по сети между СУБД и хранилищем, если БД распределённая и хранилище это несколько компьютеров, то ходить оп сети всё же придётся.

Замечание, традиционно, у каждого СУБД есть свой протокол, по которому происходит взаимодействие.

Протокол взаимодействия

Обработка запроса

В программе есть sql запросы, которые требуется разобрать, этим занимается модуль разборщик запроса , который является парсером.

После разбора есть запрос, который нужно исполнить, этим занимается исполнитель запроса , который в отличие от разборщика взаимодействует с реальными данными. Но если исполнить запрос ровно так, как он написан, скорее всего это будет весьма не эффективно.

Обработка запроса

Эффективная обработка запроса

Чтобы запрос исполнялся более эффективно, есть построитель плана исполнения (также называется оптимизатором), который получает на вход разобранный запрос и решает как конкретно он будет исполнен, а именно:

  • какие, откуда и в каком порядке будут загружаться данные
  • какие индексы будут использованы

Улучшения исполнителя запроса :

  • добавление модуля управление памятью - так как эффективность исполнение запроса может зависеть от кол-ва используемых данных, а именно - поместятся они все в память или нет, это стоит учитывать при выборе того как запрос будет исполнен
  • использование статистики - в зависимости от того, какие данные конкретно хранятся, оптимизатор может принимать разные решения об используемых алгоритмах, например, если из бд нужно обработать информацию которая занимает бОльшую её часть, то выгоднее прочитать все данные подряд (из-за кэш линий) и обработать их, если наоборот, нужно обработать порядка 10% бд, то если есть способ быстро итерироваться по этой части данных, то вполне разумно обрабатывать этот запрос прочитав только нужные данные.

Эффективная обработка запроса