рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Работа SQL со множеством пользователей

Работа SQL со множеством пользователей - раздел Информатика, Информационные технологии Транзакция (Transaction) - Это Группа Операций Над Данными, Которые Либо Выпо...

Транзакция (transaction) - это группа операций над данными, которые либо выполняются все, либо все вместе отменяются. Сердцевиной и основой эффективности функционирования многопользовательских систем клиент-сервер является эффективное управление транзакциями. Собственно само понятие транзакции возникло именно в процессе исследования принципов построения и функционирования централизованных многопользовательских реляционных СУБД Транзакции играют важную роль в механизме обеспечения СУБД ограничений целостности базы данных. Ограничения целостности непосредственно проверяют по завершению очередной транзакции. Если условия ограничения целостности не выполняются, то происходит «откат» транзакции (выполняется SQL-инструкция ROLLBACK), в противном случае транзакция завершается.

Помимо обеспечения целостности данных механизм транзакций оказался чрезвычайно полезным для практической реализации одного из основополагающих принципов распределенных многопользовательских систем - изолированности пользователей. Единичные действия пользователей с базой данных ассоциированы с транзакциями. В том случае, когда от разных пользователей поступают транзакции, время выполнения которых перекрывается, монитор транзакций обеспечивает специальную технологию их взаимного выполнения и изоляции с тем, чтобы избежать нарушений согласованного состояния данных и других издержек совместной обработки. К числу подобных издержек относятся:

· потерянные изменения;

· «грязные данные»;

· неповторяющиеся чтения.

Потерянные изменения возникают тогда, когда две транзакции одновременно изменяют один и тот же объект базы данных. В том случае, если в силу каких-либо причин, например, из-за нарушений целостности данных, происходит откат, скажем, второй транзакции, то вместе с этим отменяются и все изменения, внесенные в соответствующий период времени первой транзакцией. В результате первая еще не завершившаяся транзакция при повторном чтении объекта не «видит» своих ранее сделанных изменений данных. Очевидным способом преодоления подобных ситуаций является запрет изменения данных любой другой транзакцией до момента завершения первой транзакции - так называемая блокировка объекта.

«Грязные данные» - возникают тогда, когда одна транзакция изменяет какой-либо объект данных, а другая транзакция в этот момент читает данные из того же объекта. Так как первая транзакция еще не завершена, и, следовательно, не проверена согласованность данных после проведенных, или вовсе еще только частично проведенных изменений, то вторая транзакция может «видеть» соответственно несогласованные, т.е. «грязные данные». Способом недопущения таких ситуаций может быть запрет чтения объекта любой другой транзакцией, пока не завершена транзакция, его изменяющая.

Неповторяющиеся чтения возникают тогда, когда одна транзакция читает какой-либо объект базы данных, а другая до завершения первой изменяет и успешно фиксируется. Если при этом первой, еще не завершенной, транзакции требуется повторно прочитать данный объект, то она «видит» его в другом состоянии, т.е. чтение не повторяется. Способом недопущения подобных ситуаций в противоположность предыдущему случаю является запрет изменения любой другой транзакцией, когда первая транзакция на чтение еще не завершена.

Механизм изоляции транзакций и преодоления ситуаций несогласованной обработки данных в общем виде основывается на технике сериализации транзакций. План (способ) выполнения совокупности транзакций называется сериальным, если результат совместного выполнения транзакций эквивалентен результату некоторого последовательного их выполнения. Сериализацией транзакций в этом смысле является организация их выполнения по некоторому сериальному плану. Существуют два различных подхода сериализации транзакций:

- синхронизационные захваты (блокировки) объектов базы данных;

- временные метки объектов базы данных.

В первом подходе определяется два основных режима захватов - совместный режим (Shared) и монопольный режим (exclusive). При совместном режиме осуществляется разделяемый захват, требующий только операций чтения. Поэтому такой захват еще называют захватом по чтению. При монопольном режиме осуществляется неразделяемый захват, требующий операций обновления данных. Такой захват, соответственно, еще называют захватом по записи.

Наиболее распространенным вариантом первого подхода является реализация двухфазного протокола синхронизационных захватов (блокировок) объектов базы данных - 2PL (Two-Phase Locks). В соответствии с данным протоколом выполнение транзакции происходит в два этапа. На первом этапе (первая фаза) перед выполнением любой операции транзакция запрашивает и накапливает захваты необходимых объектов в соответствующем режиме.

После получения и накопления необходимых захватов (блокировок) осуществляется вторая фаза - фиксация изменений (или откат по соображениям целостности данных) и освобождение захватов.

При построении сериальных планов допускается совмещение только захватов по чтению. В остальных случаях транзакции должны «ждать», когда необходимые объекты разблокируются (освободятся). Более изощренные стратеги сериализации транзакций основываются на «гранулировании» объектов захвата (файл базы данных, отдельная таблица, страница файла данных, отдельная запись-кортеж). Соответственно при этом расширяется номенклатура синхронизационных режимов захватов, например в совместном режиме (по чтению может быть захвачен в целом файл и отдельные его страницы, или в другом случае обеспечивается совместный режим захвата файла с возможностью монопольного захвата отдельных его объектов - таблиц, страниц или записей-кортежей). Грануляция синхронизированных блокировок позволяет строить более эффективные планы сериализации транзакций.

Существенным недостатком синхронизационных захватов является возможность возникновения тупиковых ситуаций (Deadlock). Предположим, одна транзакция на первой фазе установила монопольный захват одного объекта, а другая транзакция монопольный захват второго объекта. Для осуществления полного набора своих операций первой транзакции еще требуется совместный захват второго объекта, а второй транзакции, соответственно, совместный захват первого объекта. Ни одна из транзакций не может закончить первую фазу, т.е. полностью накопить все необходимые захваты, так как требуемые объекты уже монопольно захвачены, хотя были свободными к моменту начала осуществления транзакций.

Непростой проблемой является автоматическое обнаружение (распознавание) таких тупиковых ситуаций и их разрешение (разрушение). Распознавание тупиков основывается на построении и анализе графа ожидания транзакций, состоящего из вершин- транзакций и вершин-объектов захвата. Исходящие из вершин- транзакций дуги к вершинам-объектам соответствуют требуемым захватам, а дуги, исходящие из вершин-объектов к вершинам- транзакциям соответствуют полученным захватам. При тупиковых ситуациях в графе ожидания транзакций наблюдаются петли (циклы), обнаружение которых обеспечивается специальным алгоритмизируемым механизмом редукции графа. Следует отметить, что применение подобного механизма распознавания тупиков требует построения и постоянного поддержания (обновления) графа ожидания транзакций, что увеличивает накладные расходы при выполнении транзакции и снижает производительность обработки данных.

Еще одной проблемой является технология, или, лучше сказать, алгоритм разрушения тупиков. В общем плане такие алгоритмы основываются на выборе транзакции-жертвы, которая временно откатывается для предоставления возможности завершения выполнения операций другими транзакциями, что, конечно же, в определенной степени нарушает принцип изолированности пользователей. В качестве «жертвы» выбирается или самая «дешевая» транзакция в смысле затрат на выполнение, или транзакция с наименьшим приоритетом.

Более простой альтернативой технике синхронизационных захватов является техника временных меток. Суть этого метода заключается в том, что каждой транзакции приписывается временная метка, соответствующая моменту начала выполнения транзакции. При выполнении операции над объектом транзакция «помечает» его своей меткой и типом операции (чтение или изменение). Если при этом другой транзакции требуется операция над уже «помеченным» объектом, то выполняются действия по следующему алгоритму:

- проверяется, не закончилась ли транзакция, первой «пометившая» объект;

- если первая транзакция закончилась, то вторая транзакция помечает его своей меткой и выполняет необходимые операции;

- если первая операция не закончилась, то проверяется конфликтность операций (конфликтно любое сочетание, кроме «чтение-чтение»);

- если операции неконфликтны, то они выполняются для обеих транзакций, а объект до завершения операций помечается меткой более поздней, т.е. более молодой транзакции;

- если операции конфликтны, то далее происходит откат более поздней транзакции и выполняется операция более ранней (старшей) транзакции, после завершения объект помечается меткой более молодой транзакции и цикл действий повторяется.

В результате того, что при таком алгоритме конфликтность транзакций определяется более грубо, чем при синхронизационных блокировках, реализация метода временных меток вызывает более частые откаты транзакций. Несомненным же достоинством метода временных меток является отсутствие тупиков. И, следовательно, отсутствие накладных расходов на их распознавание и разрушение.

Предотвращение несанкционированного доступа к данным является серьезной проблемой, которая решается разными способами. Самый простой - это парольная защита либо всей таблицы, либо некоторых ее полей (такой механизм поддерживается, например, в Corel Paradox).

В настоящее время более популярен другой способ защиты данных - создание списка пользователей (users) с именами (user names) и паролями (passwords). В этом случае любой объект базы данных принадлежит конкретному пользователю, и этот пользователь предоставляет другим пользователям разрешение на чтение или модификацию данных из этого объекта либо на модификацию самого объекта. Этот способ применяется во всех серверных и некоторых настольных СУБД (например, Microsoft Access).

Некоторые СУБД, в основном серверные, поддерживают не только список пользователей, но и роли (roles). Роль - это набор привилегий. Если конкретный пользователь получает одну или несколько ролей, то вместе с ними - и все привилегии, определенные для данной роли.

Любая реляционная СУБД, поддерживающая списки пользователей и ролей, должна их где-то хранить. В дополнение к этим спискам многие СУБД хранят списки таблиц, индексов, триггеров, процедур и др., а также сведения о том, кто ими владеет. Эти списки называются системными таблицами (system tables), а соответствующая часть базы данных называется системным каталогом (system catalog). Отметим, что не все СУБД поддерживают системные каталоги (например, их не поддерживают такие популярные в недавнем прошлом СУБД, как dBase и Paradox).

 

– Конец работы –

Эта тема принадлежит разделу:

Информационные технологии

Международный институт трудовых и социальных отношений... Витебский филиал... Кафедра экономики и менеджмента...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Работа SQL со множеством пользователей

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Курс лекций
Для студентов специальности «Менеджмент» (часть вторая)   Витебск, 2010 Печатается по решению научно-методического совета ВФ УО ФПБ МИТСО

Лекция 9. Экономическая информация в автоматизированных информационных системах. Организация хранения данных
  План Экономическая информация. Виды и структурные единицы экономической информации. Экономические информационные системы (ЭИС). Внемашинная организа

Внемашинная организация ЭИ
Внемашинная организация экономической информации включает в себя систему классификации и кодирования информации; системы управленческой документации; систему организации, хранения, внесения изменен

Требования, предъявляемые к базе данных
Развитие технологий баз данных определяется рядом факторов: ростом информационных потребностей пользователей, требованиями эффективного доступа к информации, появлением новых видов машиной памяти и

Основные этапы проектирования БД
Проектирование – процесс создания описаний новой системы, которая способна функционировать. В процессе проектирования базы данных выделяют 3 этапа: 1. концептуальное проектирование – созда

Определение объектов
Выделим следующие объекты: 1. ТОВАР - (Т); 2. ЗАКАЗЧИК - (З); 3. ПОСТАВЩИК - (П); 4. СЧЕТА - (С

Лекция 11. Системы управления базами данных
  План 1. Основные понятия. Классификация СУБД. 2. Функциональные возможности СУБД Режимы работы пользователя с СУБД. Направления развития СУБД

Функциональные возможности СУБД
Это возможности по созданию базы данных и ее актуализации, извлечению данных, созданию приложений базы данных, взаимодействию с другими системами, управлению базой данных. В настоящее врем

Режимы работы пользователя с СУБД. Направления развития СУБД
СУБД предполагает работу пользователя с базой в различных режимах : Ø режим «ассистента» - используется разветвленное меню, не требуется специальной подготовки пользователя;

Структура команды
<имя оператора><ключевое слово> <дополнит. ключевые слова, константы, выражения >   Приме

Связывание таблиц
С помощью языка SQL можно создавать запросы, позволяющие извлечь данные из нескольких таблиц. Одна из возможностей сделать это заключается в связывании таблиц по одному или нескольким полям. Обрати

Ключевые слова Аll и DISTINCT
До этого момента мы рассматривали, как извлечь все или заданные колонки из одной или нескольких таблиц. Для управления выводом дублирующихся строк результирующего набора данных можно использовать к

Модификация метаданных
Существуют несколько операторов SQL для управления метаданными, которые используются для создания, изменения или удаления баз данных и содержащихся в них объектов (таблиц, представлений и др.). Мы

Представления, триггеры и хранимые процедуры
Для большинства современных серверных СУБД характерны дополнительные объекты — представления, триггеры и хранимые процедуры. Представления также поддерживаются и многими настольными СУБД, например

Системы удаленной обработки данных
В работе с БД возможен одно- и многопользовательский (несколько пользователей подключаются к одному компьютеру) режимы. По технологии обработки данных базы данных подразде

Хранилища данных
Рассматриваемые до настоящего момента базы данных позволяют выполнять операционную обработку данных, то есть кроме просто поиска данных выполнять поиск (вычисление) максимальных, минимальных, средн

Функции администратора БД
Использование автоматизированных информационных систем порождает общие информационные ресурсы в виде базы или совокупности баз данных, состояние и функционирование которых может критически влиять н

Методы защиты БД
Одной из оборотных сторон компьютерных информационных технологий является обострение проблемы защиты информации. Данные в компьютерной форме сосредоточивают в физически локальном и небольшом

Резервирование и восстановление БД
В ряде приложений сохранность и работоспособность базы данных является чрезвычайно критическим аспектом либо в силу технологических особенностей (системы реального вре

Оптимизация работы БД
У каждого производителя базы данных есть целый раздел в документации, который посвящен вопросам производительности и оптимизации работы базы данных. Надо понимать, что типовая поставка базы данных

Правовая охрана баз данных
1. Закон РБ«Об авторском праве и смежных правах»от 16.05.1996 (ред. 2004 г.) – Статья 6 – объектами авторского права являются БД. 2. «Концепция формирования национальной б

Понятие искусственного интеллекта
«Интеллект – совокупность всех познавательных функций индивида: от ощущений и восприятия до мышления и воображения; в более узком смысле – мышление. И. – основная форма познания че

Области применения ИИ
Под системами, обладающими ИИ, понимаются устройства или программы, имеющие такие характеристики, присущие человеческому интеллектуальному поведению как понимание и использование языка, причинная о

Понятие экспертной системы
Наиболее широкое применение методы ИИ нашли в программах, названных экспертными системами. В них накапливается опыт специалистов в узкой предметной области. Затем при помощи знаний, накопленных в Э

Особенности предметной области как объекта автоматизации
Для многих предприятий сегодня актуальны проблемы повышения эффективности управления предприятием, для разрешения которых необходимо повышение эффективности бизнес-процессов, снижение издержек, опт

Автоматизированные системы обработки информации в промышленной сфере
Различают системы автоматического управления (САУ) и автоматизированные системы управления(АСУ).

Автоматизированные системы обработки информации в непромышленной сфере
Долгое время автоматизация учреждений осуществлялась в виде различного рода подсистем АСУ, основанных на базах данных (кадры, канцелярия, бухгалтерия, зарплата, контроль исполнения и др.). Не умаля

Лекция 17. Основы проектирования компьютерных информационных технологий
План 1. Жизненный цикл информационной системы. 2. Каноническое и индустриальное проектирование информационной системы. 3. Реинжиниринг бизнес-процессов.  

Каноническое и индустриальное проектирование информационной системы
Каноническое проектированиеИС предполагает создание индивидуального проекта по заданию заказчика.На сегодняшний день технологию канонического проектирования исполь

Реинжиниринг бизнес-процессов
Инжиниринг представляет собой приемы и методы, используемые для проектирования новых структур и процессов в соответствии с их целями и задачами. В настоящее время нет единого поняти

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги