
подгон 2018 (легендарный) / 3 курс -20241122T221211Z-001 / ПИУС (PHP) / ПИУС_зачет
.pdf

Блок №5. Базы данных (реляционные и нереляционные)
1)Базы данных. Транзакции.
База данных — это упорядоченный набор структурированной информации или данных
Базы данных бывают: https://tproger.ru/translations/types-of-nosql-db/
Транзакция — минимальная логически осмысленная операция, которая имеет смысл и может быть совершена только полностью.
Реляциобазыданныхные
Реляциобазаданныхная |
– этонаборданныхсп едопрсвязямиеделеннымижду |
|
ними.Этданныеорганизова |
нныввиденаборатабл,состоящихстолбцовзстрок |
. |
Резибазыденныхтные
базаданных,размещаемаявоперпамяти. тивной |
Шиприменяютсяокодля |
|
приложен,гдевремяотклимиейкаетшающеезначение,вчастности,в |
|
|
задачупртелекоммуникационнымвленияхоборудованием,дляторгов |
|
|
реальномвремени |
. |
|
Key-value базы данных
База данных на основе пар «ключ-значение» хранит данные как совокупность пар «ключ-значение», в которых ключ служит уникальным идентификатором. Как ключи, так и значения могут представлять собой что угодно: от простых до сложных составных объектов. Такие базы данных как правило используют хеш-таблицу, в которой находится уникальный ключ и указатель на конкретный объект данных.
при увеличении объёмов данных, поддержание уникальных ключей может стать проблемой. Для её решения необходимо как-то усложнять процесс генерации строк, чтобы они оставались уникальными среди очень большого набора ключей.
Колоночные БД
В сравнении с хранением данных в строках, как в большинстве реляционных баз данных, преимущества хранения в колонках заключаются в быстром поиске/доступе и агрегации данных. Реляционные базы данных хранят каждую строку как непрерывную запись на диске. Разные строки хранятся в разных местах на диске, в то время как колоночные базы данных хранят все ячейки, относящиеся к колонке, как непрерывную запись, что делает операции поиска/доступа быстрее.
Пример: получение списка заголовков нескольких миллионов статей будет трудоёмкой задачей при использовании реляционных баз данных, так как для извлечения заголовков придётся проходить по каждой записи. А можно получить все заголовки с помощью только одной операции доступа к диску.
Time-Series БД
ременной ряд – это статистика серии наблюдений за одним и тем же явлением, параметром какого-либо процесса, на протяжении некоторого времени.
Базы данных временных рядов (time series database) позволяют пользователям создавать, считать, обновлять и удалять

различные временные ряды и организовывать их неким образом. Сервер часто поддерживает ряд основных вычислений, которые работают на ряды в целом, например, умножая, складывая или иным образом комбинируя различные временные ряды в новый временной ряд.
Документоориентированные БД
MongoDB |
-значение,сжимаютсякак |
|
Данные,представленныепарамиключ |
|
|
хранилищедокументовсхожимхранилищемключ« |
-значение» |
|
образом,стойлишьразницей,чтохра имыеачениядокументы( ) |
|
|
имеютопределённуюструктуикоданныхи. XML,овкуи JSON |
|
. |
BSON — некоторые изстандартныхраспркостранённыхдировок |
Графовые БД
ЛюбойрейтингРекомендов« вам»,кот увидетьрыйжноано |
|
разныхсайтах,зачасостисхуюавляетсяизо,какдгоругие |
|
пользователиоценилипродукт.Графовыебазыданныхотлично |
. |
подтакогоходятляслучая |
Дедуктивные БД
то система баз данных которая может делать выводы (то есть заключать дополнительные факты) на основе правил и фактов хранящихся в (дедуктивной) базе данных
2)SQL-инъекции
https://habr.com/ru/post/148151/ https://pvs-studio.com/ru/blog/terms/6507/
SQL-инъекцияминазываютатаки,позволяющиезлоумышленнику |
|
|
|
производитьраз |
личныенесанкциондействиянад рованные |
|
|
базойдан.Омогутнзатрыхиксамикданныегивать,так |
|
|
|
структурубазы.Дляэтоговкачествевходдапнныхредаются |
|
|
|
специальныестр,содекивреджащиеко.мандносные |
|
|
|
Приложение,уязвимокSQL |
-инъекциям,прои |
зводитвставкуэтих |
|
строквшаблонзапросабезпроведениянеобх.Вверокдимых |
|
|
|
результатеформизап,выполняющийосуетсядействия, |
|
|
|
определённыезлоумышленником.Приэтомзапросбудетявляться |
|
|
|
корректсточкизренияс нтаксисаымSQL. |
|
|
|
Рекомендуемымс |
посбосрьбыбомSQL |
-инъекциямисчитаются |
|
параметзап.Сутьрихиспользосызованныесосттом,чтоитвания |
|
|
|
подстановкавнешнихданныхшаблонзапронеизводитсяса |
|
|
|
напрямую,черспециализированноеAPIСформированный. таким |
|
|
|
образомзапросбудетбе |
зоп,ткаквскнданныеешниеымпер |
|
|
фактическойподстановкойбудутпреобразованы |
|
. |
3)Виды NoSQL СУБД
https://aws.amazon.com/ru/nosql/
4)Key–value базы данных. Преимущества. Примеры.
https://tproger.ru/translations/types-of-nosql-db/
Key-value базы данных
База данных на основе пар «ключ-значение» хранит данные как совокупность пар «ключ-значение», в которых ключ служит уникальным идентификатором. Как ключи, так и значения могут представлять собой что угодно: от простых до сложных составных объектов. Такие базы данных как правило используют хеш-таблицу, в которой находится уникальный ключ и указатель на конкретный объект данных.
Первыйзаключатом,чтомонедельпредоставляеттся стандартныевозможатомарностибазданныхвроде транзакцийилисоглас ованнданныхприодновременномсти

выполнениинесколькихтранзакций.Такиевозмдолжныжности |
. |
предоставлятьсясамприложением |
при увеличении объёмов данных, поддержание уникальных ключей может стать проблемой. Для её решения необходимо как-то усложнять процесс генерации строк, чтобы они оставались уникальными среди очень большого набора ключей.
Примеры:
Корзинаинтернет -магазина
5)Memcached. Способ хранения данных. Масштабирование.

6)Redis. Особенности хранилища. Масштабирование.
https://aws.amazon.com/ru/redis/
Производительность
ВседанныеRedisхранявпамяти,чобеспечсянизкуюзадержкувает высокуюпропускнуюспосд даннымступабн.Востьтличиеоттрадиционных базданных,хранилищаданныхвпамятинетребуютперемещениянадиск,что сокращаетзадержк уядмикросекундра.
Кэширование Чат,обменсообщиочерединиями Игровыетаблицылидеров Хранилсессийще
ВRedisприменяархитузловведущий« тсяктура |
|
-подчиненный» |
поддерживаеасинхроннареплик,прикоторданныесямцияогутй |
|
|
копироватьсянанесколькоподчиненныхсерверов.Этообеспечиваеткак |
|
|
улучшенныехарактеристикичтения |
(таккакзапросымогутбыть |
распределены |
междусерверами),такускоренноевосстановлениеслучаесбояосновного |
|
|
сервера.ДляобеспеченияпостояхраRedisподдерживаетенияногоснимки |
|
|
состнамомврянияентмени |
(копированнаборовданRedisдых)иеск |
. |
Ведущий — ведомый» (англ. master/slave[1]) — модель взаимодействия в вычислительных комплексах, телекоммуникационных и информационных системах, в которой одно главное устройство (ведущее устройство) или процесс осуществляет однонаправленное управление подчинённым (ведомое устройство) устройством или процессом или их группой. В некоторых системах ведущий (мастер) выбирается из группы подходящих для этого устройств, остальные устройства в группе продолжают работать в режиме ведомых[2][3][4]. Например, при репликации баз данных ведущий узел базы данных (мастерреплика) устанавливается в качестве авторитетного источника данных, а дополнительные, ведомые реплики синхронизируются с ним.

7)Колоночные БД. Принцип работы и хранения данных. Примеры.
https://tproger.ru/translations/types-of-nosql-db/
8)Time-Series БД. Примеры.
https://www.influxdata.com/time-series-database/

9)Документоориентированные БД. Особенности. Примеры.

10)Графовые БД. Примеры
Блок №6. ElasticSearch + контейнеризация приложений
1)Что такое ElasticSearch
https://ru.wikipedia.org/wiki/Elasticsearch https://www.bigdataschool.ru/wiki/elasticsearch
Elasticsearch - это масштабируемый полнотекстовый поисковый и аналитический движок с открытым исходным кодом. Он позволяет хранить большие объемы данных,проводить среди них быстрый поиск и аналитику (почти в режиме реального времени).
Elasticsearch как NoSQL
•● CRUD операции
•● Сложные JSON документы
•● Быстрый поиск
•● Агрегации
•Агрегировасуммируетвашиданвидениеые
показ,статистикиилителейдругойан |
алитики. |
Агрегпомогутвамответитьциинатакиевопросы,как: |
|
•
• ● Полнотекстовый поиск