Ведение системного договора. 11
ЗАКЛЮЧЕНИЕ.. 13
СПИСОК ИСПОЛЬЗОВАНЫХ ИСТОЧНИКОВ.. 14
ВВЕДЕНИЕ
База данных - совместно используемый набор логически связанных данных. Это единое хранилище данных, которое однократно определяется, а затем используется одновременно многими пользователями.
Система управления базами данных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.
В реляционных базах данных (БД самого распространенного типа) данные хранятся в таблицах. На первый взгляд, эти таблицы подобны электронным таблицам Excel, поскольку они тоже состоят из строк и столбцов. Столбцы называются полями (fields) и содержат данные определенного типа. Строки именуются записями (records). В одной строке хранится один набор данных, описывающих определенный объект. Например, если в таблице хранятся данные о клиентах, она может содержать поля для имени, адреса, города, почтового индекса, номера телефона и т.д. Для каждого клиента будет создана отдельная запись.
Таблицы – не единственный тип объектов, из которых состоят базы данных. Помимо таблиц, существуют формы, отчеты и запросы.
Формы (forms) применяются для добавления новых данных и изменения уже существующих. Формы облегчают добавление и редактирование информации, а также позволяют контролировать тип водимых данных и избегать при вводе ряда ошибок.
Для отображения данных в удобном для чтения виде используются отчеты(reports). Ознакомиться со всей информацией, хранящейся в таблице, сложно по той причине, что текст не умещается в полях целиком. Существует возможность включать в отчет не все данные, а только некоторые, что значительно повышает удобство использования.
Для вывода в отчеты определенных данных применяются запросы (queries). Использование запросов похоже на процесс поиска, – задаются конкретные критерии отбора, на основе которых база данных формирует и возвращает отчет. Например, если база данных содержит информацию о телефонных номерах, то можно запросить вывести в отчете только те телефоны, которые относятся к конкретному адресу, или только те, которые относятся к конкретной фамилии, или начинающиеся с определенных цифр и т.п. Запросы записываются на языке SQL (Structured Query Language — язык структурированных запросов).
В основе реляционных баз данных лежит понятие связей (отношений,relationships). Они позволяют разработчикам связывать несколько таблиц в базе посредством общих данных. При помощи взаимосвязей разработчики баз данных моделируют таблицы, отражающие взаимодействие объектов в реальности.
СУБД обычно работают с БД значительного размера; по крайней мере этот размер обычно существенно больше доступного объема оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти. При этом, даже если операционная система производит общесистемную буферизацию (как в случае ОС UNIX), этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части БД. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов.
Заметим, что существует отдельное направление СУБД, которое ориентировано на постоянное присутствие в оперативной памяти всей БД. Это направление основывается на предположении, что в будущем объем оперативной памяти компьютеров будет настолько велик, что позволит не беспокоиться о буферизации. Пока эти работы находятся в стадии исследований.
ФУНКЦИИ СУБД
Управление транзакциями
К современным информационным системам предъявляются жесткие требования надежности. Никакие отказы и сбои не должны порождать рассогласование данных информационной системы. Не менее важно предотвращать рассогласование данных, порождаемое параллельной работой нескольких пользователей с одними и теми же данными.
Одним из распространенных методов обеспечения отказоустойчивости систем является восстановление ближайшего по времени корректного состояния системы. Этот принцип ложится в основу обработки транзакций.
Все операции с данными можно представить в виде набора логических единиц работы, которые, возможно, пересекаются по времени выполнения. Считается, что изначально данные информационной системы согласованы и ее состояние корректно
Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует (COMMIT) изменения БД, произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД. Если принять за пример информационную систему с файлами СОТРУДНИКИ и ОТДЕЛЫ, то единственным способом не нарушить целостность БД при выполнении операции приема на работу нового сотрудника является объединение элементарных операций над файлами СОТРУДНИКИ и ОТДЕЛЫ в одну транзакцию. Таким образом, поддержание механизма транзакций является обязательным условием даже однопользовательских СУБД (если, конечно, такая система заслуживает названия СУБД). Но понятие транзакции гораздо более важно в многопользовательских СУБД.
То свойство, что каждая транзакция начинается при целостном состоянии БД и оставляет это состояние целостным после своего завершения, делает очень удобным использование понятия транзакции как единицы активности пользователя по отношению к БД. При соответствующем управлении параллельно выполняющимися транзакциями со стороны СУБД каждый из пользователей может в принципе ощущать себя единственным пользователем СУБД (на самом деле, это несколько идеализированное представление, поскольку в некоторых случаях пользователи многопользовательских СУБД могут ощутить присутствие своих коллег).
С управлением транзакциями в многопользовательской СУБД связаны важные понятия сериализации транзакций и сериального плана выполнения смеси транзакций. Под сериализаций параллельно выполняющихся транзакций понимается такой порядок планирования их работы, при котором суммарный эффект смеси транзакций эквивалентен эффекту их некоторого последовательного выполнения. Сериальный план выполнения смеси транзакций - это такой план, который приводит к сериализации транзакций. Понятно, что если удается добиться действительно сериального выполнения смеси транзакций, то для каждого пользователя, по инициативе которого образована транзакция, присутствие других транзакций будет незаметно (если не считать некоторого замедления работы по сравнению с однопользовательским режимом).
Существует несколько базовых алгоритмов сериализации транзакций. В централизованных СУБД наиболее распространены алгоритмы, основанные на синхронизационных захватах объектов БД. При использовании любого алгоритма сериализации возможны ситуации конфликтов между двумя или более транзакциями по доступу к объектам БД. В этом случае для поддержания сериализации необходимо выполнить откат (ликвидировать все изменения, произведенные в БД) одной или более транзакций. Это один из случаев, когда пользователь многопользовательской СУБД может реально (и достаточно неприятно) ощутить присутствие в системе транзакций других пользователей.
Когда все действия, составляющие транзакцию успешно выполнены или возникла ошибка, транзакция должна быть завершена, для того, чтобы база данных находилась в непротиворечивом состоянии. Для этого есть два SQL-выражения:
- COMMIT - сохраняет внесенные транзакцией изменения в базу данных. Это означает, что транзакция завершена успешно.
- ROLLBACK - откат транзакции. Транзакция завершается и никаких изменений в базу данных не вносится. Данная операция выполняется при возникновении ошибки при выполнении операции (например, при невозможности обновить запись).
Параллельный доступ
Параллельный доступ основан на применении концепции баз данных для организации совместной работы с метаданными.
Рисунок 1 – Пример параллельного доступа к СУБД
Организацияпараллельного доступа пользователей к базе данных является довольно сложной задачей. Здесь нужно исключать коллизии, связанные с одновременным обновлением данных разными пользователями, с возможностью чтения одним пользователем объекта базы данных, который успел лишь частично обновить другой пользователь.
В условияхпараллельного доступа унификация описании данных приобретает особо важное значение. Следует определить правила и процедуры, регулирующие процесс описания данных. Если описание данных контролируется, то можно добиться того, чтобы в масштабах предприятия они трактовались одинаково. С этой точки зрения СССД выступает в качестве хранилища унифицированных описаний данных и должна быть настроена на использование в рамках установленных правил.
В случаепараллельного доступа вводятся блокировки на уровне записей.
Для синхронизациипараллельного доступа к коллективным ресурсам СУБД используют средства блокировки операционных систем.
Средства организациипараллельного доступа к БД дают возможность пользователю запрашивать объекты БД под монопольное или защищенное управление. Объект БД, который находится под монопольным управлением процесса, другим процессам недоступен. Объекты, находящиеся под защищенным управлением, могут быть считаны параллельно выполняемыми процессами, но обновлены ими быть не могут. В качестве таких объектов могут выступать области или записи БД. Если объект находится под защищенным управлением другого процесса, то запрашивающий его процесс переводится в состояние ожидания. В систему Сеть встроены механизмы разрешения тупиковых ситуаций, которые могут при этом возникать.
Система управляетпараллельным доступом к данным проекта и их модификациям, облегчает обмен информацией о проекте по мере его развития, обеспечивает гибкий доступ к данным для всех разработчиков изделия. Pro / PDM расширяет традиционные возможности управления файлами для полной поддержки ассоциативности и сквозной параметризации конструкций, разработанных в среде Pro / Engineer. Группа специалистов, использующая Pro / PDM, имеет возможность работать над одними и теми же изделиями одновременно, что сокращает время выхода на рынок нового продукта. Pro / PDM - это отдельная прикладная программа, которая может использоваться в сочетании с СУБД Oracle и со всеми популярными аппаратными платформами.
Разрешая таким образом проблемупараллельного доступа, блокирование ресурсов вместе с тем порождает новую проблему - возможность возникновения тупиковой ситуации. Так называется ситуация, когда группа из двух или более транзакций монопольно захватывает ресурсы таким образом, что каждая из них ожидает освобождения какого-либо ресурса, монопольно захваченного ( блокированного) другой транзакцией из этой группы.
Решение задачи защиты данных припараллельном доступе заключается во введении блокировок для доступа к данным. Прежде чем прочитать некоторое данное X, транзакция Т обязана его заблокировать: УСТАНОВИТЬ-БЛОКИРОВКУ X. Транзакция 7 2 должна ждать, пока транзакция Т не закончит работы с данным X и не разблокирует его: СНЯТЬ-БЛОКИРОВКУ X. Если некоторая транзакция пытается блокировать уже блокированный элемент, она становится в очередь на ожидание, пока блокировка с этого элемента данных не будет снята.
Параллельное коллективное использование метаданных имеет место в том случае, если с точки зрения потребителя метаданные хранятся в базе метаданных без дублирования, а все программные компоненты черпают необходимые метаданные из этого общего источника. Параллельный доступ может осуществляться одновременно.
Система управления БД СЕТЬ может обрабатывать параллельно несколько процессов. Средствапараллельного доступа позволяют запрашивать области или данные под монопольное или защищенное управление. Если объект БД находится под монопольным управлением, то для других процессов он недоступен. Если он находится под защищенным управлением, то другие, параллельно выполняемые процессы могут его считывать, но не могут выполнять запись или модификацию. В системе имеются средства устранения тупиковых ситуаций.
Можно ли с помощью программы, выполнявшей санкционированный доступ к базе данных, внести изменения в данные, если на их обновление нет полномочий. Может липараллельный доступ к данным со стороны прикладных программ привести к каскаду ошибок. Как уменьшить этот риск и как поддерживать контрольную трассу, по которой определяются возможные и реальные пути появления ошибок.
Во-вторых, предоставляемая подсистемой управления файлами объектов синхронизация доступа к объектам относится только к объектам пассивного пространства. Пользователи, желающие иметьпараллельный доступ к объектам активного пространства, должны все еще обеспечивать явную синхронизацию, такую как синхронизация при помощи задач-арбитров. Например, если А требуется активизировать объект X и затем В пытается активизировать X, то А и В разделяют одну и ту же копию объекта; в данном случае остается необходимость синхронизации.
Управление автоматизированным банком данных осуществляют проектировщики, при этом необходимо обеспечить целостность, правильность данных, эффективность и функциональные возможности СУБД. Проектировщик организует и формирует БД, определяет вопросы использования и реорганизации. База данных составляется с учетом характеристик объектов проектирования, процесса проектирования, действующих нормативов и справочных данных. При создании автоматизированных банков данных одним из основных является принцип информационного единства, заключающийся в использовании единой терминологии, условных обозначений, символов, единых проблемно-ориентированных языков, способов представления информации, единой размерности данных физических величин, хранящихся в БД. Автоматизированные банки данных должны обладать гибкостью, надежностью, наглядностью и экономичностью. Гибкость заключается в возможности адаптации, наращивания и изменения средств СУБД и структуры БД. Реорганизация БД не должна приводить к изменению прикладных программ. Для одновременного обслуживания пользователей должен быть организованпараллельный доступ к данным. При использовании интерактивных методов проектирования необходимо использовать режим диалога.