Что такое ACID - самый популярный вопрос Backend разработчику

  Рет қаралды 13,070

Артём Шумейко

Артём Шумейко

Күн бұрын

Пікірлер
@artemshumeiko
@artemshumeiko 10 күн бұрын
Совсем забыл рассказать про букву D :) D - Долговечность (durability). Это значит, что после окончания транзакции данные записались на жесткий диск и в случае внезапного выключения электричества/сбоя данные все равно останутся в базе данных и не потеряются. Подготовиться к собеседованию и повторить вопросы по SQL и базам данных можно в Солвит: clck.ru/3FKmEE
@КириллДавлетшин-в3р
@КириллДавлетшин-в3р 10 күн бұрын
ну теперь нужен видос по индексам))
@Наибалгоевв
@Наибалгоевв 8 күн бұрын
Durability: "Дорогой дневник, мне не передать..."
@ИльясШамшиден-р8п
@ИльясШамшиден-р8п 8 күн бұрын
не переставайте публиковать полезные видео по fastapi! ваши видео меня очень вдохновляют и учат многому, оформил подписку в бусти)
@couragic
@couragic 9 күн бұрын
Про Isolation хорошо с примерами показано 👍
@artemshumeiko
@artemshumeiko 8 күн бұрын
Спасибо!
@2009Spread
@2009Spread 2 күн бұрын
Введение в ACID: Автор объясняет, что ACID - это набор принципов, которые обеспечивают надёжность и целостность данных в базах данных. Эти принципы часто задают на собеседованиях для разработчиков и аналитиков. Атомарность (Atomicity): Определение: Атомарность гарантирует, что транзакция либо выполняется полностью, либо не выполняется вовсе. Если одна из операций в транзакции не удаётся, вся транзакция откатывается. Пример: Перевод денег между двумя счетами. Если списание средств с одного счёта прошло успешно, а зачисление на другой счёт не удалось, транзакция откатывается, и деньги возвращаются на исходный счёт. Консистентность (Consistency): Определение: Консистентность гарантирует, что данные в базе всегда соответствуют определённым правилам и ограничениям (например, уникальность значений, проверка на положительные числа и т.д.). Пример: Если в таблице есть ограничение, что значение в столбце должно быть больше нуля, попытка вставить отрицательное значение приведёт к ошибке, и транзакция не будет завершена. Изоляция (Isolation): Определение: Изоляция гарантирует, что параллельные транзакции не влияют друг на друга. Существуют разные уровни изоляции, которые определяют, насколько строго транзакции изолированы друг от друга. Уровни изоляции: Read Uncommitted: Позволяет читать незафиксированные данные из других транзакций, что может привести к "грязному чтению". Read Committed: Позволяет читать только зафиксированные данные, что предотвращает "грязное чтение", но может привести к "фантомному чтению". Repeatable Read: Гарантирует, что в рамках одной транзакции данные не изменятся, даже если другие транзакции их изменят. Serializable: Самый строгий уровень изоляции, который полностью изолирует транзакции, предотвращая любые аномалии. Долговечность (Durability): Определение: Долговечность гарантирует, что после завершения транзакции данные будут сохранены в базе данных, даже в случае сбоя системы. Пример: После успешного завершения транзакции (commit), данные будут сохранены на диске, и даже если сервер выключится, данные не будут потеряны. Практические примеры и проблемы: Грязное чтение: Когда одна транзакция читает незафиксированные данные другой транзакции, что может привести к ошибкам, если та транзакция откатится. Фантомное чтение: Когда одна транзакция читает данные, а другая транзакция добавляет новые данные, что приводит к несоответствию между двумя запросами. Аномалии при параллельных транзакциях: Уровень изоляции Serializable предотвращает такие аномалии, но может замедлить работу базы данных. Рекомендации для собеседований: Автор советует понимать, как работают уровни изоляции и блокировки в базах данных, чтобы успешно проходить собеседования и строить надёжные системы. Он также рекомендует использовать уровень изоляции Repeatable Read или Serializable только в тех случаях, когда это действительно необходимо, так как они могут замедлить работу базы данных. Заключение: Автор подчёркивает важность понимания принципов ACID для разработчиков и аналитиков, работающих с базами данных. Он также предлагает подписаться на его Telegram-канал для получения дополнительных материалов по развитию технических навыков.
@elslavak
@elslavak 8 күн бұрын
Всегда с другом рады смотреть твои видео, спасибо за разборы таких тем)
@dien0000
@dien0000 7 күн бұрын
чет обидно, что так быстро видео закончилось. 25 минут прям, как миг, особенно, когда речь пошла про интересные локи селект фор апдейт.
@namazbekbekzhan
@namazbekbekzhan 4 күн бұрын
Теперь надо про BASE BASE - это акроним, который описывает альтернативный подход к работе с базами данных, противопоставляемый традиционному подходу ACID. В то время как ACID акцентирует внимание на надежности, согласованности и целостности транзакций, BASE предлагает более гибкий подход, основанный на следующих принципах: 1. **B - Basically Available (В основном доступно)**: Система должна быть доступна в большинстве случаев, даже если некоторые узлы не работают. 2. **S - Soft state (Мягкое состояние)**: Состояние системы может меняться со временем, даже если нет внешних воздействий. Это связано с тем, что данные могут быть асинхронно реплицированы и синхронизированы. 3. **E - Eventually consistent (В конечном итоге согласованно)**: Система гарантирует, что в конечном итоге все реплики данных станут согласованными, но не обязательно мгновенно. BASE подходит для распределенных систем и облачных приложений, где высокая доступность и масштабируемость являются приоритетами, и временные несоответствия в данных являются приемлемыми.
@Фома-ж7я
@Фома-ж7я 10 күн бұрын
Пока пару лет изучал питон, любую тему для него рассматривал через призму 1С, с которым работал до этого. Потом понял. что искать работу в питоне не светит, вернулся обратно к совершенствованию навыков в 1С, теперь темы из 1С рассматриваю через призму питона. В данном видео изоляция вроде связана с блокировками записей в регистрах из мира 1С, а вроде и про другое.
@mr.ukrainian6578
@mr.ukrainian6578 10 күн бұрын
совсем не вышло найти работу на пайтон? или не изучал джанго фласк или другие фреймворки?
@Фома-ж7я
@Фома-ж7я 10 күн бұрын
@@mr.ukrainian6578 фласк особо не трогал, так пару недель в ознакомительных целях. На джанго написал для текущей работы сайт (простейший со списком услуг, прайс-листом, формой обратной связи), потом сделал пару туториалов из ютуб с написанием интернет-магазина и закончил общение с джанго на решении задачи, аналогичной задачам из экзамена по 1С, а также сделал сам себе простейшую программку для изучения английского, запихал ее в докер-контейнер. Затем немного потыкал в ДРФ, а также во vue.js, чтобы не в постмэне смотреть результат. а на реальном фронте. Переписал на ДРФ + Вью свою задачу аналогичную задачам 1С. И сделал какой-то туториал, где использовался редис и селери вместе с ДРФ. Затем перешел к фастапи. Пару месяцев его по изучал. И для общего развития где-то в перерывах между фреймворками потыкался в написание телеграм-ботов. Но попробовал по откликаться на вакансии, никто на мои резюме не отреагировал, и я решил. что резюме с цифрой 0 в графе опыт работы вряд ли кому-то потребуется. вернусь к 1С, благо там в графе опыт можно писать 10 лет. Но не желаю о времени, потраченном на питон, как минимум я перестал бояться задач в 1С, связанных с взаимодействием по API с какими-то системами, плюс могу сам себе для таких задач сделать бэк, чтобы испытывать подключение и получение данных до того. как мне клиент предоставит доступ к своему API.
@Фома-ж7я
@Фома-ж7я 10 күн бұрын
@@mr.ukrainian6578 странно, написал длиннющий ответ, а он не появился
@Фома-ж7я
@Фома-ж7я 10 күн бұрын
@@mr.ukrainian6578 фреймворки изучал. Фласк чуть-чуть, чтобы потрогать что за зверь. Джанго мне понравился, через месяц после его изучения сделал сайт для текущей своей работы со списком услуг, прайс-листом, формой обратной связи. 2 года сайт поработал, но как-то им не сильно пользовались и месяц назад не стал продлевать хостинг. После рабочего сайта сделал еще пару туториалов с интернет-магазинами, для себя сделал программу для изучения английского, поместил ее в докер-контейнер и использовал. Потом закончил общение с Джанго, сделав задачу по условиям из экзаменов 1С. (документы приход товаров, расход товаров, приход денег, расход денег, контроль остатков. расчет себестоимости). Затем решил по изучать ДРФ, и чтобы нормально проекты на ДРФ выглядели, посмотрел на vue.js, чтобы не в постмэне запросы делать, а из более-менее приемлемого фронта (правда без красивой верстки). Сделал пару туториалов в ДРФ в том числе с использованием редис и селери. Затем переписал на ДРФ+Вью свою задачу из экзаменов по 1С. После этого приступил к ФастАпи. Его пару месяцев потыкал, поделал по видео с этого канала, потом по введению из документации прошелся и сделал. В промежутках между фреймворками потрогал написание телеграм-ботов. А затем понял. что работодатели не очень реагируют на мои отклики с цифрой 0 в графе опыт в резюме и решил вернуться к 1С, где в графе опыт могу писать больше 10 лет. Но не жалею, что на питон потратил время, т.к. добавило понимания в работе с API, и в задачах по взаимодействию 1С с какими-то ресурсами, я могу сам сделать свое API, которое бы выдавало данные в нужном формате, а в 1С описывать обработку этой информации до того. как клиент предоставит мне свой доступ.
@Фома-ж7я
@Фома-ж7я 10 күн бұрын
странная история, второй раз мой ответ пропал.
@CrazyElf1971
@CrazyElf1971 10 күн бұрын
Отличное видео, наконец-то у меня всё сложилось. Но вообще нужно упомянуть, что в PostgreSQL уровень изоляции read uncommited отсутствует от слова совсем. Потому что у него другой способ работы движка, у него вместо блокировок версионирование и увидеть незакоммиченные данные там невозможно - они живут в отдельной версии, которую до коммита никто не видит, просто нет никакого механизма их увидеть из другой сессии.
@user-buser_eto_ja
@user-buser_eto_ja 10 күн бұрын
Хорошее доступное объяснение. Спасибо! P.S А D Durability я пропустил? Долговечность иными словами?
@sower_tg
@sower_tg 4 күн бұрын
Ладно. Убедил, подписываюсь
@couragic
@couragic 9 күн бұрын
Теперь надо про BASE
@whatyoumean1498
@whatyoumean1498 9 күн бұрын
Спасибо за видео, а что за программа на которой ты показывал транзакции?
@ИмяФамилия-э4ф7в
@ИмяФамилия-э4ф7в 9 күн бұрын
Dbeaver
@alexeygudkov637
@alexeygudkov637 8 күн бұрын
дибивер
@artemshumeiko
@artemshumeiko 8 күн бұрын
dbeaver
@whatyoumean1498
@whatyoumean1498 8 күн бұрын
@@artemshumeiko Моё почтение, с меня подписка:)
@renyazh
@renyazh 10 күн бұрын
Отличное видео! Про depends будет ролик? P.s. не слушай комментарии, что не надо выпускать ролики про собесы. Мне и я думаю многим очень интересно слушать такие важные вещи простым и главное - правильным языком. Часто очень некоторые люди при объяснении упускают какую-то мелкую деталь из-за которой потом складывается неправильное представление о тех или иных вещах.
@АртемМирошниченко-л2н
@АртемМирошниченко-л2н 10 күн бұрын
не хватило расшифровки каждой буквы. Я люблю более наглядно получать и закреплять информацию. А так клёво. Спасибо
@Holstinin007
@Holstinin007 10 күн бұрын
огонь
@thechrom007
@thechrom007 10 күн бұрын
Какая-то странная обработка звука... наверное даже через чур обработано 🙄 Иногда даже такое чувство что мне кто-то плямкает в уши 🤔
@yevheniipolovinchuk5326
@yevheniipolovinchuk5326 8 күн бұрын
ОЧень хочу детальное видео по индексации таблиц
@АнтонБ-х9у
@АнтонБ-х9у 10 күн бұрын
Консистентность - согласованность.
@ИмяФамилия-э4ф7в
@ИмяФамилия-э4ф7в 9 күн бұрын
Не раскрывает всего смысла
@ol_suh
@ol_suh 2 күн бұрын
13 Никто не восходил на небо, как только сшедший с небес Сын Человеческий, сущий на небесах. 14 И как Моисей вознес змию в пустыне, так должно вознесену быть Сыну Человеческому, 15 дабы всякий, верующий в Него, не погиб, но имел жизнь вечную. 16 Ибо так возлюбил Бог мир, что отдал Сына Своего Единородного, дабы всякий верующий в Него, не погиб, но имел жизнь вечную. 17 Ибо не послал Бог Сына Своего в мир, чтобы судить мир, но чтобы мир спасен был чрез Него. 18 Верующий в Него не судится, а неверующий уже осужден, потому что не уверовал во имя Единородного Сына Божия. 19 Суд же состоит в том, что свет пришел в мир; но люди более возлюбили тьму, нежели свет, потому что дела их были злы; 20 ибо всякий, делающий злое, ненавидит свет и не идет к свету, чтобы не обличились дела его, потому что они злы, 21 а поступающий по правде идет к свету, дабы явны были дела его, потому что они в Боге соделаны. (Иоан.3:13-21)
@alexanderten9540
@alexanderten9540 9 күн бұрын
Соблюдайте гигиену кода...и кода и скрипта!
@legrontik
@legrontik 5 күн бұрын
Эм… без таблицы с транзакциями балансы никто не меняет
@АвгустинаЦентровская
@АвгустинаЦентровская 8 күн бұрын
удивительно, но нигде никогда ни разу и никто.
@hsqlk
@hsqlk 10 күн бұрын
Только настоящая транзакция не существует в СУБД
@grayboy
@grayboy 10 күн бұрын
атом делим:)
@CrazyElf1971
@CrazyElf1971 10 күн бұрын
Но когда его так назвали, считалось, что нет ))
@grayboy
@grayboy 9 күн бұрын
@@CrazyElf1971 деление атома открыли раньше, чем создали первый компьютер
@NikolayShangutov
@NikolayShangutov 9 күн бұрын
Не душни😄
@CrazyElf1971
@CrazyElf1971 9 күн бұрын
@@grayboy А само понятие атома восходит к древним грекам, до компьютеров было совсем далеко )
@ИмяФамилия-э4ф7в
@ИмяФамилия-э4ф7в 9 күн бұрын
Слово с греческого переводится "неделимый". Т.е., по факту, физические атомы переименовывать нужно. А тут все норм.
@АнтонБ-х9у
@АнтонБ-х9у 10 күн бұрын
Консистентность неверно обяснили. В блокноте не обьяснишь, нужно понимать как работет код на низком уровне. Вобщем не пройдешь собеседование 😊
@ИмяФамилия-э4ф7в
@ИмяФамилия-э4ф7в 9 күн бұрын
Что тебе на низком уровне? Консистентность - свойство транзакции оставлять после себя базу данных в состоянии, когда все записи удовлетворяют всем ограничениям и требованиям к таблицам. Если какой-либо запрос в транзакции приводит к нарушению консистентность БД, то вся транзакция отменяется. Вопросы?
@Nixguy
@Nixguy 4 күн бұрын
Зачем же отнимать хлеб у DBA? Эти специалисты хорошо управляются с базами данных. А разработчикам в 99% случаев возможностей ORM за глаза, а оставшийся 1% можно и DBA отдать.
@ASFNFSW
@ASFNFSW 10 күн бұрын
хватит видосы про собесы. С нынешними hr-ами про работу можно забыть. Расскажи уже, как хантить заказы backend-разработчикам.
Непосредственно Каха: сумка
0:53
К-Media
Рет қаралды 12 МЛН
Жездуха 41-серия
36:26
Million Show
Рет қаралды 5 МЛН
Counter-Strike 2 - Новый кс. Cтарый я
13:10
Marmok
Рет қаралды 2,8 МЛН
Полный роадмеп для backend-разработчика
24:03
Sergey Nemchinskiy
Рет қаралды 22 М.
Хочу стать Junior Python
16:29
Y_LAB University
Рет қаралды 10 М.
CI/CD - Простым языком на понятном примере
15:29
Артём Шумейко
Рет қаралды 124 М.