Skip to content
Open

Main #33

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
2d7dd77
Update 12-09.md
irina120803 Dec 22, 2023
62d3e60
Update 12-09.md
irina120803 Dec 22, 2023
2828cc1
Update 12-07.md
Anastasia-Treshchina Sep 2, 2024
ca7e770
Merge pull request #31 from netology-code/sdbsql-32
Anastasia-Treshchina Sep 2, 2024
4933a2a
Revert "Update 12-07.md"
Anastasia-Treshchina Sep 2, 2024
d681a78
Merge pull request #32 from netology-code/revert-31-sdbsql-32
Anastasia-Treshchina Sep 2, 2024
720b02f
Update 12-07.md
Anastasia-Treshchina Sep 2, 2024
7ce6708
Update 11-01.md
shamantmn Dec 9, 2024
3fa029e
Update 11-01.md
shamantmn Dec 9, 2024
154913a
Update 11-01.md
shamantmn Dec 9, 2024
d4e1cce
Update 11-01.md
shamantmn Dec 9, 2024
7f15779
Update 11-01.md
shamantmn Dec 10, 2024
e0253f1
Update 11-01.md
shamantmn Dec 10, 2024
f6965cb
Update 11-01.md
shamantmn Dec 10, 2024
947a735
Add files via upload
shamantmn Dec 16, 2024
093a2e5
Update 11-02.md
shamantmn Dec 16, 2024
d9b851e
Merge branch 'main' of https://github.com/shamantmn/sdb-homeworks
shamantmn Dec 16, 2024
3d404de
Update 12-06.md
shamantmn Feb 13, 2025
cd2698a
Update 12-06.md
shamantmn Feb 13, 2025
318fac7
Add files via upload
shamantmn Feb 13, 2025
a469223
Update 12-06.md
shamantmn Feb 13, 2025
e5d5646
Update 12-07.md
shamantmn Feb 17, 2025
205d7b6
Update 12-07.md
shamantmn Feb 17, 2025
ce5db17
Add files via upload
shamantmn Feb 17, 2025
030c785
Update 12-07.md
shamantmn Feb 17, 2025
dbcefac
Update 12-07.md
shamantmn Feb 17, 2025
d9ead5e
Add files via upload
shamantmn Feb 20, 2025
b907ce0
Update 13-01.md
shamantmn Feb 20, 2025
b32ce4a
Add files via upload
shamantmn Feb 21, 2025
e2c6fcf
Add files via upload
shamantmn Feb 21, 2025
7f500a0
Update 13-01.md
shamantmn Feb 21, 2025
2469bda
Update 13-01.md
shamantmn Feb 21, 2025
c0dfd4b
Update 13-01.md
shamantmn Feb 21, 2025
fee2ade
Update 13-02.md
shamantmn Feb 25, 2025
fa4e69f
Add files via upload
shamantmn Feb 25, 2025
dc26d46
Update 13-02.md
shamantmn Feb 25, 2025
dff6f44
Add files via upload
shamantmn Feb 25, 2025
e5fc915
Create image.png
shamantmn Feb 25, 2025
1b1287b
Create image.png
shamantmn Feb 25, 2025
2316e25
Update 13-02.md
shamantmn Feb 25, 2025
b10b804
Add files via upload
shamantmn Mar 4, 2025
e98d59b
Update 13-03.md
shamantmn Mar 4, 2025
42a770f
Add files via upload
shamantmn Mar 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 54 additions & 1 deletion 11-01.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Домашнее задание к занятию «Базы данных, их типы»
# Домашнее задание к занятию «Базы данных, их типы» Осипов Дмитрий

### Инструкция по выполнению домашнего задания

Expand Down Expand Up @@ -29,30 +29,52 @@
1.1. Бюджетирование проектов с дальнейшим формированием финансовых аналитических отчётов и прогнозирования рисков.
СУБД должна гарантировать целостность и чёткую структуру данных.

#### Под задачи гарантий целостности и чёткой структуры данных лучше всего подходят реляционный СУБД такие как Oracle, SQL, PostgreSQL.

1.1.* Хеширование стало занимать длительно время, какое API можно использовать для ускорения работы?

#### Intel IPP (Integrated Performance Primitives). Набор оптимизированных функций для выполнения различных операций, включая хеширование. Предоставляет оптимизированные реализации алгоритмов хеширования, которые могут значительно ускорить процесс.
#### Google's CityHash. Библиотека хеширования, разработанная Google. Оптимизирована для работы с большими объёмами данных и может быть полезна, если нужно хешировать большие файлы или потоки данных.
#### xxHash. Быстрый хеш-алгоритм, который обеспечивает высокую скорость хеширования. Может быть полезен, если нужно быстро хешировать большие объёмы данных.

1.2. Под каждый девелоперский проект создаётся отдельный лендинг, и все данные по лидам стекаются в CRM к
маркетологам и менеджерам по продажам. Какой тип СУБД лучше использовать для лендингов и для CRM?
СУБД должны быть гибкими и быстрыми.

#### Состав данных в лединг и CRM зачастую имеют формат не структурированных данных от тектовых полей до изображений эффективнее использовать тип СУБД NoSQL напрмер MongoDB.


1.2.* Можно ли эту задачу закрыть одной СУБД? И если да, то какой именно СУБД и какой реализацией?

#### Да, можно. например MongoDB, обеспечивает гибкую модель данных, горизонтальное масштабирование и хорошую производительность при обработке больших неструктурированных объемов данных.

1.3. Отдел контроля качества решил создать базу по корпоративным нормам и правилам, обучающему материалу
и так далее, сформированную согласно структуре компании. СУБД должна иметь простую и понятную структуру.

#### Задачу возможно реализовать на СУБД PostgreSQL или же под медиа контент подойдет MongoDB.

1.3.* Можно ли под эту задачу использовать уже существующую СУБД из задач выше и если да, то как лучше это
реализовать?

#### Да, можно путем создания новой схемы. Тем, самым создать отдельный набор данных под задачи обучения.


1.4. Департамент логистики нуждается в решении задач по быстрому формированию маршрутов доставки материалов
по объектам и распределению курьеров по маршрутам с доставкой документов. СУБД должна уметь быстро работать
со связями.

##### Для решение подходят графовые БД, например Neo4j.

1.4.* Можно ли к этой СУБД подключить отдел закупок или для них лучше сформировать свою СУБД в связке с СУБД
логистов?

#### Специфика работы отдела продаж подходит под реляционные СУБД, соответсвенно лучше формировать связку двух типов СУБД.


1.5.* Можно ли все перечисленные выше задачи решить, используя одну СУБД? Если да, то какую именно?

*Приведите ответ в свободной форме.*
##### ArangoDB — свободная мультимодельная система управления базами данных. сочетает в себе возможности SQL,NoSQL и графовых БД

---

Expand All @@ -61,8 +83,21 @@
2.1. Пользователь пополняет баланс счёта телефона, распишите пошагово, какие действия должны произойти для того, чтобы
транзакция завершилась успешно. Ориентируйтесь на шесть действий.


#### 1. Авторизация
#### 2. Ввод суммы
#### 3. Запрос наличие средств на счету списания
#### 4. Подтверждение от Банка
#### 5. Списание со счета
#### 6. Получение потдтверждение от Провайдера о зачислении средств

2.1.* Какие действия должны произойти, если пополнение счёта телефона происходило бы через автоплатёж?

#### Запрос от билинга Провайдера на списание денежных среств со счета Банка
#### Списание со счета Банка
#### Подтверждение от Провайдера о получении денежных средств


*Приведите ответ в свободной форме.*

---
Expand All @@ -71,10 +106,24 @@

3.1. Напишите пять преимуществ SQL-систем по отношению к NoSQL.


#### 1. Управление структурированными данными. Базы данных SQL обеспечивают целостность данных с помощью чётко определённых схем.
#### 2. Соответствие требованиям ACID. Базы данных SQL обычно соответствуют свойствам ACID (атомарность, согласованность, изоляция, долговечность), гарантируя согласованность транзакций и надёжность.
#### 3. Строгая типизация. SQL-системы имеют строгую типизацию данных, что помогает предотвратить ошибки и улучшает производительность.
#### 4. Более широкий выбор инструментов и библиотек. Для работы с SQL-системами существует огромное количество инструментов и библиотек, что упрощает разработку и поддержку приложений.
#### 5. Более высокий уровень безопасности. SQL-системы, как правило, имеют более высокий уровень безопасности, поскольку они были разработаны с учётом требований безопасности.


3.1.* Какие, на ваш взгляд, преимущества у NewSQL систем перед SQL и NoSQL.

*Приведите ответ в свободной форме.*

NewSQL - включает в себя все лучшее от SQL и NoSQL, такие как:
#### 1. Гибкость и масштабируемость (от NoSQL)
#### 2. Поддержка транзакций и SQL запросов как у реляционных баз данных
#### 3. Высокая производительность при работе с распределенными данными (от NoSQL)
#### 4. Возможность обработки больших объемов данных
#### 5. Высокая доступность и отказоустойчивость
---

### Задание 4. Кластеры
Expand All @@ -85,6 +134,10 @@
На основе какого критерия будете выбирать тип СУБД и какая модель *распределённых вычислений*
здесь справится лучше всего и почему?

#### Критерий высокой производительности и масштабируемость, универсальным решением подошли СУБД NewSQL, но ввиду новизны технологии рекомендуется остановить свой выбор в пользу класических СУБД SQL или NoSQL
в завистимости от какой тип данных будет обрабатываться.


*Приведите ответ в свободной форме.*

---
Expand Down
5 changes: 4 additions & 1 deletion 11-02.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,17 @@

Приведите примеры проблем, которые может решить кеширование.

*Приведите ответ в свободной форме.*
*1. Увелечение производительности информационной системы/ресурса
*2. Сокращение времени доступа к данным
*3. Снижение пиковой нагрузки при запросах в базу даннвх

---

### Задание 2. Memcached

Установите и запустите memcached.

!ima
*Приведите скриншот systemctl status memcached, где будет видно, что memcached запущен.*

---
Expand Down
20 changes: 19 additions & 1 deletion 12-06.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Домашнее задание к занятию «Репликация и масштабирование. Часть 1»
# Домашнее задание к занятию «Репликация и масштабирование. Часть 1» Дмитрий Осипов

### Инструкция по выполнению домашнего задания

Expand All @@ -21,6 +21,19 @@

На лекции рассматривались режимы репликации master-slave, master-master, опишите их различия.

### Основные различия между режимами репликации master-slave и master-master:

- Поток данных.
При master-slave он односторонний: от master к slave, а при master-master — двунаправленный: между master.
- Операции записи.
При master-slave только master может записывать данные, а slave — данные доступны только для чтения, а при master-master — оба master могут записывать.
- Операции чтения.
При master-slave slave могут выполнять операции чтения, а при master-master — оба master могут выполнять операции чтения.
- Согласованность данных.
При master-slave согласованность асинхронная, возможна задержка, а при master-master — может быть синхронной, возможна немедленная согласованность.
- Разрешение конфликтов.
При master-slave проще, меньше вероятность конфликтов из-за одностороннего потока, а при master-master — более сложно, могут возникать конфликты, требующие разрешения.

*Ответить в свободной форме.*

---
Expand All @@ -31,6 +44,11 @@

*Приложите скриншоты конфигурации, выполнения работы: состояния и режимы работы серверов.*

![alt text](https://github.com/shamantmn/sdb-homeworks/blob/main/resources/12-06-01.png)
![alt text](https://github.com/shamantmn/sdb-homeworks/blob/main/resources/12-06-01_slave.png)
![alt text](https://github.com/shamantmn/sdb-homeworks/blob/main/resources/12-06-01_slave_conf01.png)
![alt text](https://github.com/shamantmn/sdb-homeworks/blob/main/resources/12-06-01_slave_conf02.png)

---

## Дополнительные задания (со звёздочкой*)
Expand Down
22 changes: 19 additions & 3 deletions 12-07.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Домашнее задание к занятию «Репликация и масштабирование. Часть 2»
# Домашнее задание к занятию «Репликация и масштабирование. Часть 2» Дмитрий Осипов

### Инструкция по выполнению домашнего задания

Expand All @@ -22,9 +22,17 @@
Опишите основные преимущества использования масштабирования методами:

- активный master-сервер и пассивный репликационный slave-сервер;


Активный узел "master-сервер" выполняет запросы, а пассивный "slave-сервер" формирует полное зеркало БД и ждет отказа "master" и включается в работу, когда "master" будет недоступен.
#### Преимущество - отказоустойчивость, т.е. с минимальным простоем продолжить обслуживание запросов в БД

- master-сервер и несколько slave-серверов;
- активный сервер со специальным механизмом репликации — distributed replicated block device (DRBD);
- SAN-кластер.

В такой конфигурации операции записи выполняются исключительно на master-сервере, а реплики поддерживают актуальные данные для чтения. На slave-серверах происходят только запросы на чтение-выборку

#### Преимущество - это схема репликации, которая позволяет распределять нагрузку между серверами. Создание нескольких дополнительных slave-серверов позволяет снять с основного сервера нагрузку и повысить общую производительность системы.


*Дайте ответ в свободной форме.*

Expand All @@ -41,8 +49,16 @@

Опишите принципы построения системы и их разграничение или разбивку между базами данных.

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

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


*Пришлите блоксхему, где и что будет располагаться. Опишите, в каких режимах будут работать сервера.*


![alt text](https://github.com/shamantmn/sdb-homeworks/blob/main/resources/12-07-02.png)

## Дополнительные задания (со звёздочкой*)
Эти задания дополнительные, то есть не обязательные к выполнению, и никак не повлияют на получение вами зачёта по этому домашнему заданию. Вы можете их выполнить, если хотите глубже шире разобраться в материале.

Expand Down
Loading