Преглед на изходния код

Идеята на сделка. Явни и неявни сделки.

Транзакция - логическа единица работа в базата данни, както и устройството на възстановяване при срив на база данни. Когато се ангажират промени в базата данни гарантира запазване или каквито и да било промени, или нищо. Освен това, извършва всички правила и проверки, за да се гарантира целостта на данните.
База данни сделки имат свойства, съкратени нарича киселина (валентност, последователност, изолация, Дълготрайност).

  • Неразделна (валентност). Сделката се осъществява напълно или не се извършва.
  • Последователността (Последователност). Сделката е на база данни от една последователна състояние в друго.
  • Изолиране (Изолиране). резултати на транзакции се ползват и от други сделки само след фиксиране.
  • Продължителност (Дълготрайност). След ангажират променя се превърне в постоянна.

Всички команди се изпълняват от потребители на сървъра са направени в тялото на сделката. Въпреки това, има два подхода към указанията на границите на транзакциите в потока от инструкции - открити и тайни сделката.
Изрично сделка. По подразбиране всяка команда се изпълнява като отделна сделка. Потребителят може да комбинирате няколко команди в една сделка, ясно се посочват началото и в края.
Скритият сделка. Не е старт оператор на сделката. A транзакция започва с началото на работна сесия с базата данни. Завършен сделката за следните събития:

  • Изрично конфигуриран оператор извършване на транзакция - намаление на цените и да се ангажират
  • изявление DDL
  • Изход.
    Веднага след сделката е имплицитно започва нова сделка.

нива на изолация по сделката, в Oracle разлики изпълнение от друга база данни.

Проблеми на организацията на паралелна работа:

Съответно се определят четири сценария за смущения на множество сделки по отношение на обработката на едни и същи данни.

Характеристики на реализиране на сделки с Oracle и MS SQL Server

оператори Общото управление на сделката.
  1. Скритият сделка. Сделката е автоматично е чел или от началото на сесията или след края на предходната сделката.
  2. Типове транзакции - Прочетете пишат, четат само. Транзакция само за четене еквивалентно ниво на четене Serializable изолация. Подобна сделка вижда само промените, извършени в момента на създаването си, но в този режим не се допуска вписване, актуализиране и изтриване на данни (други сесии могат да се променят данните, но сделката е само за четене - не).
  3. Нива на изолация - Прочетете извършил Serializable
  4. multiversioning механизъм. Основни функции
    1. Прочетете консистенция за запитвания. Заявки дават постоянни резултати в началото на тяхното изпълнение. Променлива данни се поставя в областта на сегмента на намаление на цените.
    2. Non-блокиране искания. Заявки, които модифицират данни, без да блокира заявки, които четат данни и четат искания не блокират променя, какъвто е случаят в други бази данни.
  5. контролни отчети сделки
    1. SET СДЕЛКИ
    2. COMMIT, ROLLBACK
    3. точка на запис
  1. Изрично сделка. Всеки се изпълнява оператор в своята сделка, ако не е в устройството започне Трън - извършване (намаление на цените)
  2. Наличието на вложени транзакции. пример
Вложени потвърждение за сключена сделка на това, което не оказва влияние. Вложени общо намаление на цените сделка ролки обратно най-външния сделката.
  • контролни отчети сделки
    1. SET СДЕЛКИ
    2. ЗАПОЧНЕТЕ СДЕЛКИ
    3. COMMIT, ROLLBACK
    4. точка на запис
  • Концепцията на ключалки. Основните видове брави.

    Lock - един механизъм, който да управлява едновременно достъп до общ ресурс. Блокиране се случва, когато един притежава ресурс сесия по искане на друга сесия. В резултат на това искане на сесията ще бъде блокиран - то "увисва" Дотогава, докато държите на сесията не изключи ресурса.
    Оптимистично заключване (оптимистично заключване) - набор от данни, блокиране на стратегия, в която част, съдържаща променлива влизане е блокиран само в момента на промени в записа на програмата, но не и на потребителя.
    Песимистичен заключване (песимистично заключване) - набор от данни, блокиране на стратегия, в която част, съдържаща променлива рекорд е заключена по всяко време да прави промени в записа от потребителя и не е достъпен за редактиране от други потребители.
    На фокус Oracle заключващ механизъм - блок данни не се съхраняват като един ресурс, и се съдържа директно в информационните блокове. Така се избягват проблеми като заключване на ескалация. -долу са изброени пет основни класа ключалки в Oracle. Първите три - често срещаните (използва се при всички бази данни на Oracle), а другите две - само в OPS (Oracle Parallel Server - Parallel сървър).
    Заключване ГСД (DML ключалки). ГСД е манипулация на данните език (манипулация на данни Language), тоест, SELECT, INSERT, UPDATE ,, и изтриване. За DML брави включват, например, низ блокировка на данни или при заключването на ниво на маса, засягаща всички редове от таблицата.
    Брави DDL (DDL брави). DDL е Data Definition Language (Data Definition Language), което означава, изявления създава, променя, и така нататък. DDL заключване защитава определението за обект структури.
    Вътрешен заключване (вътрешни брави) и капаче (ключалки). Ключалки - обикновен инструменти от ниско ниво, за да гарантират съответствие на заявленията. Ключалки обикновено се изискват от системата в режим на готовност. Това означава, че ако не може да се установи резето, молещата сесия спира за кратко време, а след това се опитва да повтори операцията. Другите раздели могат да бъдат поискани он-лайн, което означава, че процесът ще бъде да се направи нещо друго, а не в очакване на възможност за задаване на резето. Ключалки са разпределени на случаен принцип. Фиксатори - един по-сложни средства за приоритетен достъп, те разрешава на запитващия "получите в линия" в очакване на освобождаването на ресурса. Заявяване резе уведомен веднага за освобождаването на ресурса. В случай, че блокировката молещата напълно блокиран.
    Разпределени Lock (разпределени брави). Тези брави използвани за съчетаване на OPS сървърни машини ресурси в рамките на клъстера. Разпределени Lock набор от копия на базата данни, а не на отделни транзакции.
    Заключете паралелно управление на кеша (PCM - Паралелни кеш диспечер Locks). Тази защита защита на блокове от данни в кеш паметта, когато се използват няколко екземпляра в базата данни.
    SQL Server поддържа три основни типа брави:
    Споделено Lock - сподели ключалка, която се използва, когато данните се четат операция. Разрешено е да се четат данни на друга операция, но е забранено данни промени.
    Изключителен Lock - изключително заключване, който се прилага, когато данните се променят. Този регистър е напълно не позволява достъп до данните от други сделки.
    Актуализация Lock - актуализация заключване, което е междинно между споделен и изключително заключване. Използва се, когато дадена сделка иска да актуализира данните в някакъв момент следващия път, но не сега, а когато този момент дойде, не иска да изчакаме още една сделка. В този случай, други сделки, има право да създаде споделени брави, но не позволяват да се установи монопол.
    Защити могат да бъдат определени на три нива -

    • линии ниво - нивото по подразбиране.
    • ниво страница - се използва за по-ефективно използване на ресурсите и в случай на много редове с това заключване на тази страница.
    • маса ниво - използвани при операции над масата, и в случай на заключване ескалация.

    мъртвите зони
    Възможно е, че две сделки блокират взаимно, така че непрекъсната работа не е възможно без принудително изключване на една от сделките.
    например: