<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=188.243.182.101&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=188.243.182.101&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/188.243.182.101"/>
		<updated>2026-04-26T22:28:59Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%A0%D0%A1%D0%A3%D0%91%D0%94&amp;diff=81436</id>
		<title>Архитектура РСУБД</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%A0%D0%A1%D0%A3%D0%91%D0%94&amp;diff=81436"/>
				<updated>2021-12-18T20:26:42Z</updated>
		
		<summary type="html">&lt;p&gt;188.243.182.101: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Общий план == &lt;br /&gt;
Верхнеуровнево, система управления баз данных состоит из ''' хранилища данных ''' и ''' программы''', которая к этим данным обращается.&lt;br /&gt;
&lt;br /&gt;
[[Файл:intro_arch_mini.png|400px|Общий план]]&lt;br /&gt;
&lt;br /&gt;
== Взаимодействие с СУБД == &lt;br /&gt;
Под вопросом из первой картинки скрывается несколько компонент, один из них - ''' протокол ''' взаимодействия программы и СУБД. Этот протокол реализуется '' драйверами'' : с одного конца есть программа, взаимодействующая с драйвером, и, аналогично, с другого конца есть СУБД и также драйвер.  &lt;br /&gt;
&lt;br /&gt;
Традиционно, у каждого СУБД есть свой протокол, по которому происходит взаимодействие.&lt;br /&gt;
&lt;br /&gt;
[[Файл:intro_arch_drivers.png|400px|Протокол взаимодействия]]&lt;br /&gt;
&lt;br /&gt;
== Обработка запроса ==&lt;br /&gt;
В программе есть sql запросы, которые требуется разобрать, этим занимается модуль ''' разборщик запроса ''', который является парсером.  &lt;br /&gt;
&lt;br /&gt;
После разбора есть запрос, который нужно исполнить, этим занимается ''' исполнитель запроса ''', который в отличие от разборщика взаимодействует с реальными данными. Но если исполнить запрос ровно так, как он написан, скорее всего это будет весьма не эффективно.&lt;br /&gt;
&lt;br /&gt;
[[Файл:intro_arch_partial.png|400px|Обработка запроса]]&lt;br /&gt;
&lt;br /&gt;
== Эффективная обработка запроса ==&lt;br /&gt;
&lt;br /&gt;
Чтобы запрос исполнялся более эффективно, есть ''' построитель плана исполнения ''' (также называется оптимизатором), который получает на вход разобранный запрос и решает как конкретно он будет исполнен, а именно:&lt;br /&gt;
* какие, откуда и в каком порядке будут загружаться данные &lt;br /&gt;
* какие индексы будут использованы &lt;br /&gt;
&lt;br /&gt;
Улучшения '' исполнителя запроса '':&lt;br /&gt;
* добавление модуля ''' управление памятью ''' - так как эффективность исполнение запроса может зависеть от кол-ва используемых данных, а именно - поместятся они все в память или нет, это стоит учитывать при выборе того как запрос будет исполнен&lt;br /&gt;
* использование '' статистики '' - в зависимости от того, какие данные конкретно хранятся, оптимизатор может принимать разные решения об используемых алгоритмах &lt;br /&gt;
&lt;br /&gt;
[[Файл:intro_arch_complete.png|400px|Эффективная обработка запроса]]&lt;/div&gt;</summary>
		<author><name>188.243.182.101</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%A0%D0%A1%D0%A3%D0%91%D0%94&amp;diff=81386</id>
		<title>Архитектура РСУБД</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%A0%D0%A1%D0%A3%D0%91%D0%94&amp;diff=81386"/>
				<updated>2021-12-18T16:46:23Z</updated>
		
		<summary type="html">&lt;p&gt;188.243.182.101: Новая страница: «== Общий план ==  Верхнеуровнево, система управления баз данных состоит из ''' хранилища дан…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Общий план == &lt;br /&gt;
Верхнеуровнево, система управления баз данных состоит из ''' хранилища данных ''' и ''' программы''', которая к этим данным обращается.&lt;br /&gt;
&lt;br /&gt;
[[Файл:intro_arch_mini.png|400px|thumb|right|Общий план]]&lt;br /&gt;
&lt;br /&gt;
== Взаимодействие с СУБД == &lt;br /&gt;
Под вопросом из первой картинки скрывается несколько компонент, один из них - ''' протокол ''' взаимодействия программы и СУБД. Этот протокол реализуется '' драйверами'' : с одного конца есть программа, взаимодействующая с драйвером, и, аналогично, с другого конца есть СУБД и также драйвер.  &lt;br /&gt;
&lt;br /&gt;
Традиционно, у каждого СУБД есть свой протокол, по которому происходит взаимодействие.&lt;br /&gt;
&lt;br /&gt;
[[Файл:intro_arch_drivers.png|400px|thumb|right|Протокол взаимодействия]]&lt;br /&gt;
&lt;br /&gt;
== Обработка запроса ==&lt;br /&gt;
В программе есть sql запросы, которые требуется разобрать, этим занимается модуль ''' разборщик запроса ''', который является парсером.  &lt;br /&gt;
&lt;br /&gt;
После разбора есть запрос, который нужно исполнить, этим занимается ''' исполнитель запроса ''', который в отличии от разборщика взаимодействует с реальными данными. Но если исполнить запрос ровно так, как он написан, скорее всего это будет весьма не эффективно.&lt;br /&gt;
[[Файл:intro_arch_partial.png|400px|thumb|right|Протокол взаимодействия]]&lt;br /&gt;
&lt;br /&gt;
== Эффективная обработка запроса ==&lt;br /&gt;
&lt;br /&gt;
Чтобы запрос исполнялся более эффективно, есть ''' построитель плана исполнения ''' (также называется оптимизатором), который получает на вход разобранный запрос и решает как конкретно он будет исполнен, а именно:&lt;br /&gt;
* какие, откуда и в каком порядке будут загружаться данные &lt;br /&gt;
* какие индексы будут использованы &lt;br /&gt;
&lt;br /&gt;
Улучшения '' исполнителя запроса '':&lt;br /&gt;
* добавление модуля ''' управление памятью ''' - так как эффективность исполнение запроса может зависеть от кол-ва используемых данных, а именно - поместятся они все в память или нет, это стоит учитывать при выборе того как запрос будет исполнен&lt;br /&gt;
* использование '' статистики '' - в зависимости от того, какие данные конкретно хранятся, оптимизатор может принимать разные решения о используемых алгоритмах. &lt;br /&gt;
&lt;br /&gt;
[[Файл:intro_arch_complete.png|400px|thumb|right|Протокол взаимодействия]]&lt;/div&gt;</summary>
		<author><name>188.243.182.101</name></author>	</entry>

	</feed>