Files
homework/dmedvedev/2.6.theory_bd_acid_base.sql
T
Dmitry Medvedev 292e4da4bc fixed mistakes
2026-07-23 00:09:45 +05:00

40 lines
3.4 KiB
SQL
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
- **Задание 1. Интернет‑банк**
**В интернет‑банке** пользователь переводит 1000 ₽ с карты А на карту Б.
Во время операции связь на секунду пропадает, запрос дублируется, и на сервер приходят два очень похожих запроса перевода подряд.
**Нужно:**
- указать, какие свойства ACID здесь особенно важны и почему;
АТОМАРНОСТЬ, ДЮРАБИЛИТИ (ОТСУТСТВУЕТ НАДЕЖНОСТЬ У ДАННОЙ ТРАНЗАКЦИИ), СОГЛАСОВАННОСТЬ - НЕЛЬЗЯ ПРОВЕСТИ ОДНУ ОПЕРАЦИЮ И ЗАСЧИТАТЬ ЕЕ ДВАЖДЫ.
- описать, какие проблемы могут возникнуть, если этих свойств не будет (например, нет атомарности или изолированности).
ЕСЛИ ЭТИХ СВОЙСТВ НЕ БУДЕТ, ТО ПРОИЗОЙДУТ ОШИБКИ, ДВА ОДИНАКОВЫХ ЗАПРОСА ИЛИ НЕИСПОЛНЕНИЕ ЗАПРОСА ВООБЩЕ.
- **Задание 2. Лента новостей и лайки**
**В социальной сети:**
- пользователь ставит лайк под постом;
- у его друга этот лайк появляется в ленте только через 5–10 секунд;
- иногда счётчик лайков на разных устройствах на пару секунд показывает разные значения.
**Нужно:**
- решить, ближе ли эта система по поведению к ACID или к BASE и почему
ЭТА СИСТЕМА БЛИЖЕ К БЭЙС. У ДАННОЙ СИСТЕМЫ НЕТ СТРОГИХ ОГРАНИЧЕНИЙ.
- **Задание 3. Заказы в интернет‑магазине**
**В интернет‑магазине:**
- при оформлении заказа запись о заказе и списание товара со склада делаются в **одной транзакции**;
- статистика «топ‑товары недели» обновляется раз в несколько минут на отдельном сервисе, и пару минут может показывать старые данные.
**Нужно:**
- указать, какая часть системы ведёт себя по принципам ACID, а какая — по принципам BASE;
ЗАПИСЬ О ЗАКАЗЕ И СПИСАНИЕ ТОВАРА - ЭТО ACID.
СТАТИСТИКА - BASE.
- объяснить, почему такое разделение логично: где нам важна немедленная строгая точность, а где допускается небольшое отставание и eventual consistency.
В ПЕРВОМ СЛУЧАЕ НУЖЕН ACID потому что требуются свойства ACID, а во втором эти свойства необзяательны, нет ничего страшного в том, что данная БД обновится чуть позже.