diff --git a/dmedvedev/2.6.theory_bd_acid_base.sql b/dmedvedev/2.6.theory_bd_acid_base.sql new file mode 100644 index 0000000..8545c8c --- /dev/null +++ b/dmedvedev/2.6.theory_bd_acid_base.sql @@ -0,0 +1,40 @@ +- **Задание 1. Интернет‑банк** + + **В интернет‑банке** пользователь переводит 1000 ₽ с карты А на карту Б. + + Во время операции связь на секунду пропадает, запрос дублируется, и на сервер приходят два очень похожих запроса перевода подряд. + + **Нужно:** + + - указать, какие свойства ACID здесь особенно важны и почему; + АТОМАРНОСТЬ (СДЕЛАНО ОДНО ДЕЙСТВИЕ, ЗНАЧИТ ДОЛЖЕН БЫТЬ ОДИН ЗАПРОС НА ПЕРЕВОД, А НЕ ДВА), ДЮРАБИЛИТИ (ОТСУТСТВУЕТ НАДЕЖНОСТЬ У ДАННОЙ ТРАНЗАКЦИИ). + - описать, какие проблемы могут возникнуть, если этих свойств не будет (например, нет атомарности или изолированности). + ЕСЛИ ЭТИХ СВОЙСТВ НЕ БУДЕТ, ТО ПРОИЗОЙДУТ ОШИБКИ, ДВА ОДИНАКОВЫХ ЗАПРОСА ИЛИ НЕИСПОЛНЕНИЕ ЗАПРОСА ВООБЩЕ. + +- **Задание 2. Лента новостей и лайки** + + **В социальной сети:** + + - пользователь ставит лайк под постом; + - у его друга этот лайк появляется в ленте только через 5–10 секунд; + - иногда счётчик лайков на разных устройствах на пару секунд показывает разные значения. + + **Нужно:** + + - решить, ближе ли эта система по поведению к ACID или к BASE и почему + ЭТА СИСТЕМА БЛИЖЕ К БЭЙС. У ДАННОЙ СИСТЕМЫ НЕТ СТРОГИХ ОГРАНИЧЕНИЙ. + +- **Задание 3. Заказы в интернет‑магазине** + + **В интернет‑магазине:** + + - при оформлении заказа запись о заказе и списание товара со склада делаются в **одной транзакции**; + - статистика «топ‑товары недели» обновляется раз в несколько минут на отдельном сервисе, и пару минут может показывать старые данные. + + **Нужно:** + + - указать, какая часть системы ведёт себя по принципам ACID, а какая — по принципам BASE; + ЗАПИСЬ О ЗАКАЗЕ И СПИСАНИЕ ТОВАРА - ЭТО ACID. + СТАТИСТИКА - BASE. + - объяснить, почему такое разделение логично: где нам важна немедленная строгая точность, а где допускается небольшое отставание и eventual consistency. + В ПЕРВОМ СЛУЧАЕ НУЖЕН ACID потому что требуются свойства ACID, а во втором эти свойства необзяательны, нет ничего страшного в том, что данная БД обновится чуть позже. \ No newline at end of file