Проблемы совместного доступа к данным в Oracle
Состав работы
|
|
|
|
Необходимые программы
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
Чем больше количество одновременно работающих с базой данных пользователей, тем больше вероятность конфликта одновременного редактирования одной и той же строки. Что делать серверу, если два пользователя одновременно пытаются обновить одну и ту же запись? Можно принять то изменение, которое пришло позже, но тогда один из пользователей будет видеть у себя некорректные данные. А хуже всего - он будет думать, что все в порядке. Как разрешить подобные проблемы?
Допустим, что два пользователя открыли для редактирования форму с одним и тем же документом. Первый пользователь изменяет важные параметры, цены, количество и нажимает «сохранить». Другой пользователь не видит этих изменений, потому что он получил данные раньше. При этом он изменяет некий незначительный параметр, например, дату, и тоже нажимает сохранение. Незначительное изменение второго пользователя перезаписывает важные изменения первого.
В многопользовательских приложениях к программированию можно поступать несколькими способами:
1. Кто последний, тот и прав. В этом случае вы просто реализуете логику программы и не заботитесь о том, что два пользователя могут одновременно изменять какие-то данные. Прав будет тот, кто чуть позже нажмет кнопку обновления.
2. Попытаться реализовать «одновременную» работу собственными средствами, с помощью журналов — если в журнале есть запись, что кто-то открыл документ, но не закрыл, то не разрешать повторное открытие другим пользователям. Может быть, где-то это будет удобно и быстро, но в Oracle реализованы хорошие встроенные средства блокировок, которые работают быстрее, эффективнее и надежнее, поэтому данный метод мы не рекомендуем к использованию.
3. Блокировать записи, которые пользователь собирается изменять, средствами базы данных. Заблокированную запись невозможно изменить, поэтому все запросы на редактирование будут отклоняться. Этот подход является более правильным и именно ему посвящена данная статья.
Заблокированные средствами Oracle записи может изменить только тот пользователь, который установил блокировку. Остальные могут только просматривать данные и не могут выполнять UPDATE или DELETE.
Допустим, что два пользователя открыли для редактирования форму с одним и тем же документом. Первый пользователь изменяет важные параметры, цены, количество и нажимает «сохранить». Другой пользователь не видит этих изменений, потому что он получил данные раньше. При этом он изменяет некий незначительный параметр, например, дату, и тоже нажимает сохранение. Незначительное изменение второго пользователя перезаписывает важные изменения первого.
В многопользовательских приложениях к программированию можно поступать несколькими способами:
1. Кто последний, тот и прав. В этом случае вы просто реализуете логику программы и не заботитесь о том, что два пользователя могут одновременно изменять какие-то данные. Прав будет тот, кто чуть позже нажмет кнопку обновления.
2. Попытаться реализовать «одновременную» работу собственными средствами, с помощью журналов — если в журнале есть запись, что кто-то открыл документ, но не закрыл, то не разрешать повторное открытие другим пользователям. Может быть, где-то это будет удобно и быстро, но в Oracle реализованы хорошие встроенные средства блокировок, которые работают быстрее, эффективнее и надежнее, поэтому данный метод мы не рекомендуем к использованию.
3. Блокировать записи, которые пользователь собирается изменять, средствами базы данных. Заблокированную запись невозможно изменить, поэтому все запросы на редактирование будут отклоняться. Этот подход является более правильным и именно ему посвящена данная статья.
Заблокированные средствами Oracle записи может изменить только тот пользователь, который установил блокировку. Остальные могут только просматривать данные и не могут выполнять UPDATE или DELETE.
Другие работы
Инженерная и компьютерная графика НКЭиВТ Вариант 4
Laguz
: 26 ноября 2024
Сделано по методичке:ОП.11 Инженерная и компьютерная графика
Методические указания и контрольные задания
для студентов-заочников образовательных учреждений СПО по специальности
09.02.06 «Сетевое и системное администрирование»
В компасе 16.
Состав контрольной смотрите на фото
900 руб.
История возникновения и развития политической мысли в Украине
alfFRED
: 16 февраля 2013
История возникновения и развития политической мысли в Украине План 1. Становление политических идей Киевской Руси в ІХ - ХІІ ст. и их дальнейшее развитие на этапе формирования украинского народа (ХVІ - ХVІІ ст.) 2 Основные направления и тенденции развития социально-политических взглядов в Украине в ХІХ - нач. ХХ ст. 3. Становление современной украинской политической мысли
Литература 1. Становление политических идей Киевской Руси в ІХ - ХІІ ст. и их дальнейшее развитие на этапе формирования укра
10 руб.
Розрахунок і проектування вантажно-гвинтових пристроїв (Варіант 1-5)
yura909090
: 3 февраля 2014
Розрахунок і проектування вантажно-гвинтових пристроїв є самостійною роботою, що підготовлює студентів до інженерної розробки складних одиниць і загальних видів виробів, що базується на знаннях відповідних розділів з навчальних курсів опору матеріалів, теоретичної механіки та інженерної графіки. Роботу виконують після вивчення теоретичної теми "Роз’ємні з’єднання деталей " для практичного закріплення цієї теми.
Мета даної розрахунково-графічної роботи:
- ознайомитися з конструкцією вантажно-гви
Экономика природопользования. Вариант №7
Кошка
: 10 ноября 2016
Задача № 4
Площадь сельскохозяйственных угодий в районе города составляет 300 тыс. га. Средняя величина дифференциальной ренты равна 15 тыс. руб./га. Определите показатель экономической оценки сельхозугодий района.
В результате строительства дорог, зданий, жилых построек площадь сельхозугодий района уменьшилась за прошедший год на 5 %. Определите ущерб от выбытия сельхозугодий.
Задача № 5
Введённое в работу промышленное предприятие в результате газовых и пылевых выбросов в атмосферу загрязняет
250 руб.