Транзакции | Основы SQL

Поділитися
Вставка
  • Опубліковано 15 чер 2024
  • Лекция по транзакциям в базах данных. Страница курса - www.asozykin.ru/courses/sql
    Поддержать курс можно через сервис Cloudtips - pay.cloudtips.ru/p/45a4055b
    Заранее спасибо за помощь!
    VK - avsozykin
    telegram - t.me/a_sozykin
    Мой сайт - www.asozykin.ru
    00:00 - Выполнение последовательности команд SQL
    01:14 - Причины проблем в выполнении команд SQL
    02:26 - Транзакции
    03:32 - Фиксация и откат транзакций: COMMIT и ROLLBACK
    05:00 - Завершение транзакций
    06:05 - Итоги
    Инструкция по созданию демонстрационной базы данных, которая используется в курсе - www.asozykin.ru/posts/demo_da...
    Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках - / andreysozykincs
  • Наука та технологія

КОМЕНТАРІ • 57

  • @happysuccess4046
    @happysuccess4046 Рік тому +5

    ОТЛИЧНАЯ ПОДАЧА МАТЕРИАЛА
    АВТОР, ПРИЯТНЫЙ ЧЕЛОВЕК!

  • @olgads2012
    @olgads2012 2 роки тому +23

    Смотрю уже второй ваш курс. Подача информации - лучшее, что я видела на отечетсвенном ютубе. Надеюсь, будут еще какие-нибудь актуальные для меня курсы в будущем!

    • @AndreySozykin
      @AndreySozykin  2 роки тому +3

      Спасибо за приятный отзыв! Есть ли пожелания по темам курсов?

    • @olgads2012
      @olgads2012 2 роки тому +3

      @@AndreySozykin кубернетис, докеры, Linux.

  • @IvanIvanov-ym9iy
    @IvanIvanov-ym9iy Рік тому +9

    Спасибо за урок. Ещё полезно знать что есть команда savepoint. Это точка на которой мы хотим зафиксироваться в момент выполнения транзакции, и если мы потом сделаем rollback то откатимся именно к savepoint-у иногда это важно. И ещё полезно погуглить про ACID.

  • @user-rs8tp9sw4c
    @user-rs8tp9sw4c 3 роки тому +3

    спасибо...доволен, что подписался на Ваш канал: ликбез на высочайшем уровне!

    • @AndreySozykin
      @AndreySozykin  3 роки тому

      Пожалуйста! Рад, что нравится!

  • @ivanl7786
    @ivanl7786 Рік тому

    Отличное объяснение концепции!

  • @Dragoncheg
    @Dragoncheg 2 роки тому +1

    Спасибо за лекции и проделанную работу.

  • @artlaskov
    @artlaskov Рік тому

    Спасибо большое! Очень доходчиво и понятно!

  • @user-qw9uo4wo5p
    @user-qw9uo4wo5p 2 роки тому +1

    Благодарю! Применяю в работе тестировщика! :)

  • @Etein-ux9ic
    @Etein-ux9ic 3 роки тому +2

    Спасибо огромное,ты спас на одну дипломную работу больше! Желаю удачи!

    • @AndreySozykin
      @AndreySozykin  3 роки тому

      Очень рад. Что за тема и какой университет?

    • @Etein-ux9ic
      @Etein-ux9ic 3 роки тому

      @@AndreySozykin Колледж, а тема разработка "Электронной библиотеки"

  • @nordmilk
    @nordmilk 2 роки тому

    это лучшее в сети на эту тему

  • @eb6006
    @eb6006 2 роки тому +1

    Вот это очень круто! Спасибо! Продолжайте пожалуйста!

    • @AndreySozykin
      @AndreySozykin  2 роки тому +1

      Спасибо!

    • @eb6006
      @eb6006 2 роки тому

      @@AndreySozykin спасибо вам!

  • @AleksandrGolrichtGlrcht
    @AleksandrGolrichtGlrcht Рік тому

    Супер большое спасибо за материал

  • @user-wh8sn5hr3q
    @user-wh8sn5hr3q 2 роки тому

    Очень понятно, спасибо.

  • @svalyavasvalyava9867
    @svalyavasvalyava9867 3 роки тому +5

    Великолепно!

  • @evgeniydoronin
    @evgeniydoronin 3 роки тому +5

    Спасибо за SQL

    • @evgeniydoronin
      @evgeniydoronin 3 роки тому +1

      давно нужно было подключить Cloudtips )

    • @AndreySozykin
      @AndreySozykin  3 роки тому

      Пожалуйста! Про Cloudtips я недавно узнал 😟😟😟

  • @user-en2mg3wx8l
    @user-en2mg3wx8l 2 роки тому +1

    Спасибо за урок!

  • @iurii.anfinogenov
    @iurii.anfinogenov 3 роки тому +3

    Очень понятно.

  • @anele4492
    @anele4492 2 роки тому

    СПАСИБО!!!

  • @viyrzn
    @viyrzn 3 роки тому +2

    Спасибо!

  • @raff_m_d6971
    @raff_m_d6971 2 роки тому

    Спасибо

  • @user-we8if9zu6w
    @user-we8if9zu6w 3 роки тому +3

    Андрей, добрый день! Спасибо за курс! Хотелось бы увидеть от Вас разбор UNION и VIEW, планируете ли записывать?

    • @AndreySozykin
      @AndreySozykin  3 роки тому +1

      По VIEW точно буду делать, по UNION ещё не решил. Мне кажется, что UNION достаточно редко используется.

    • @user-we8if9zu6w
      @user-we8if9zu6w 3 роки тому

      @@AndreySozykin товарищ сказал, что в работе использует в основном JOIN, VIEW и UNION. Возможно он ошибся)

    • @highscreenka
      @highscreenka 2 роки тому

      @@AndreySozykin а по USING будет?

  • @oskardomnin3123
    @oskardomnin3123 3 роки тому +1

    Спасибо. Хорошо бы еще небольшой практикум по выборкам из SQL через библиотеки Python или JS. SQL тема огромная. Я так понимаю, view-шки, триггреры и индексы еще впереди. Спасибо за Ваш труд.

    • @AndreySozykin
      @AndreySozykin  3 роки тому +3

      Практикум по SQL на Python могу сделать. JS, к сожалению, не знаю совершенно, поэтому не получится. Ещё планирую записывать решение разных задачек, начать хочу с leetcode.
      По тематикам: видео про индексы уже сделал - ua-cam.com/video/C34HS5wU8Zg/v-deo.html. Ещё будут видео по ограничениям и представлениям. По триггерам пока не планирую записывать, на мой взгляд это не начальный уровень.

    • @oskardomnin3123
      @oskardomnin3123 3 роки тому

      @@AndreySozykin Спасибо огромное, за Ваш Труд.

    • @manOfPlanetEarth
      @manOfPlanetEarth 5 місяців тому

      @@AndreySozykin
      да, не начальный, но с другой стороны триггеры и курсоры - это тоже не бог весть что:)) Да ещё и в Вашем исполнении☝🏼 - объяснили бы суть, показали несколько ходовых примеров - это уже будет огромным трамплином для незнающих. После введения от вас можно будет смело идти в доки за деталями. А вот если сразу в доки без Вашего введения - это будет очень сложно людям.
      Вы очень хорошо передаете суть сущностей.

  • @skatskau1102
    @skatskau1102 2 роки тому +8

    А как понять что что-то пошло не так? Как понять что ставить в итоге commit или rollback?

    • @user-nz8zq3gj1f
      @user-nz8zq3gj1f 2 роки тому +6

      В языках программирования есть обработка исключений, как вариант в try пишем запрос а в catch блоке уже отказываемся, если есть какая-нибудь ошибка)

  • @Alexey-gp7vc
    @Alexey-gp7vc 3 роки тому +1

    Спасибо большое за лекции - отлично заходят, всем вокруг советую!
    Хотелось бы услышать про SAVEPOINT и о том сколько команд можно впихнуть в транзакцию и какие команды необратимы. Шикарно бы ещё узнать как это под капотом работает - там какая-то доп. структура данных хранит состояние для отката или как оно вообще?)) А по производительности сильно бьет злоупотребление транзакциями?

    • @AndreySozykin
      @AndreySozykin  3 роки тому +1

      На производительность влияют длинные Транзакции. Если таких не делать, то все будет хорошо.
      Устройство под капотом сильно зависит от системы управления базой данных. И такой материал больше подходит для курса по архитектуре баз данных, а не SQL.

    • @Alexey-gp7vc
      @Alexey-gp7vc 3 роки тому

      @@AndreySozykin спасибо!
      По устройству согласен. Я просто сперва задал вопрос, а потом посмотрел первое видео - о целях курса)) В этих целях лекции шикарны🤘

  • @user-do2fg1jc7u
    @user-do2fg1jc7u 2 роки тому

    start transaction? это oracle?

  • @user-hw9qv9my3l
    @user-hw9qv9my3l Рік тому

    Пример на троечку. Для транзакции достаточно одного запроса. Я уж молчу о том что вполне достаточно ограничиться триггером

  • @oleggubanov2695
    @oleggubanov2695 Рік тому +1

    Спасибо за курс. Немного только режет слух уменьшить и увеличить счет в некоем банке. Правильно списать деньги с одного клиента и зачислить деньги на счет другого клиента, при условии конечно, что оба клиента обслуживаются в одном банке.

    • @AndreySozykin
      @AndreySozykin  Рік тому +1

      Списать и зачислить - это терминология банка. Для базы данных чаще всего используют обычные математические термины.

    • @oleggubanov2695
      @oleggubanov2695 Рік тому

      @@AndreySozykin Ясно

  • @alko4188
    @alko4188 3 роки тому +3

    чем вам автоккомит мешает ? 80% запросов в базу, однозапросные и требование на доп команду коммит после каждого запроса - избыточно.
    если же разработчик с головой и понимает, что несколько запросов надо объединить в одну транзакцию, то нет проблем. begin transaction и автокоммиты идут лесом.

    • @AndreySozykin
      @AndreySozykin  3 роки тому +2

      Для большинства случаев автокоммит вполне подойдёт. Я как раз сказал, что отключать его нужно только для серьезных действий, когда возможна потеря данных.
      Вы пишете про разработчика с головой, но мой курс для начинающих, которым как раз нужно объяснять именно такие базовые вещи.

    • @alko4188
      @alko4188 3 роки тому +1

      @@AndreySozykin видимо не так вас понял, сам редко когда сейчас могу покодить, вот освежаю знания благодаря вашем видео )
      разработчик всегда должен быть с головой. не поверите, сталкивался с противоположным случаем, автоккомит отключен и ой, а чего у нас данные в базе старые.... )

    • @AndreySozykin
      @AndreySozykin  3 роки тому +2

      Я начинал с Oracle, поэтому для мена автокоммит в Postgres был большой неожиданностью. Возможно, я просто привык что Транзакции нужно явно коммитить, чтобы данные записались, и это кажется мне максимально естественным.

  • @mihax56
    @mihax56 Рік тому

    ни одна команда не завершает транзакцию неявно - субд просто не позволит запустить такие команды внутри транзакции и выплюнет ошибку.