Лабораторная работа №6
Изучение средств обеспечения целостности данных в SQL Server 2005. реализация алгоритмов поддержания целостности с помощью триггеров
1. Изучить и освоить на практике метод моделирования требований целостности с применением формальных описателей.
2. Научиться реализовывать алгоритмы поддержки целостности данных с помощью триггеров.
3. Изучить языковые средства работы с триггерами в SQL Server 2005.
2.1. Общие сведения о требованиях целостности
Помимо таблиц, представлений и хранимых SQL-подпрограмм, в реляционных базах данных существуют объекты-ограничения. Что это за объекты, и с какой целью они создаются?
Не любое значение того или иного атрибута таблицы является правильным с точки зрения здравого смысла. К примеру, масса перевозимого груза не бывает отрицательной; для договора, действующего в настоящее время, нельзя указать дату заключения, относящуюся к будущему времени. Не являются допустимыми и многие комбинации значений. Например, недопустимо, чтобы у двух и более разных человек были одинаковые ИНН; дата приема сотрудника на работу не может быть более поздней, чем дата увольнения.
Подобные ограничения характерны для любой предметной области, а значит, они должны находить отражение в базах данных. Проверка данных на соответствие ограничениям осуществляется в СУБД автоматически: если во время обработки данных появляются недопустимые значения или комбинации значений, происходит либо их автоматическое исправление, либо – при невозможности автокоррекции – запрет выполнения самой операции, приведшей к возникновению ошибки.
Ограничения предметной области находят отражение в требованиях целостности, предъявляемых к БД заказчиками. Требование целостности – это либо простое условие, с помощью которого задается множество допустимых значений одного атрибута, либо правило логического согласования значений нескольких атрибутов таблиц.
Согласно концепции Дейта, целостность может рассматриваться как корректность состояний данных и корректность переходов из одного состояния в другое.
Состоянием данных называется совокупность текущих значений, хранящихся в таблицах БД. В зависимости от целей проектирования, разработки и верификации БД, состояние данных можно рассматривать на различных уровнях детализации: допустимо говорить о состоянии БД в целом, а также о состоянии некоторых (выбранных) таблиц или отдельных столбцов. Состояния данных могут быть корректными и некорректными, т.е. допустимыми и недопустимыми с точки зрения здравого смысла. Требование целостности, задающее множество корректных состояний для выбранных таблиц и (или) столбцов, называется требованием к состоянию. Для одной БД можно задать много требований к состоянию, связывающих различные таблицы и столбцы.
Выполнение операций записи в таблицах – вставки, обновления и удаления строк – приводит к переходу данных из одного состояния в другое. Возможны случаи, когда для выбранных таблиц и (или) столбцов только часть возможных переходов является допустимой в данной предметной области или с точки зрения здравого смысла. Требование целостности, задающее множество допустимых переходов для выбранных таблиц и (или) столбцов, называется требованием к переходу. В рамках одного проекта БД может быть определено множество требований к переходу, связанных с различными таблицами и столбцами.
Реализация требований целостности – задача, решение которой включает три этапа:
· словесное описание требований целостности;
· формализованное описание требований целостности;
· разработка программной реализации требований целостности в виде ограничений целостности и триггеров.
Данная стадия соотносится с концептуальным проектированием БД. Исходными данными для нее является текстовое описание предметной области. Процесс формулирования требований целостности сопряжен с выявлением сущностей, атрибутов и связей. Результат словесного формулирования – описание требования целостности в виде высказывания на естественном языке.
Следует заметить, что в словесных описаниях требований не должны упоминаться таблицы, столбцы и строки, ключи и прочие объекты логической архитектуры баз данных. Речь идет о внешнем уровне абстрагирования данных, поэтому требования целостности в данном случае – это утверждения об атрибутах сущностей и связей.
На этой стадии каждое требование целостности представляется в виде формального описателя (или просто описателя) – логического выражения, в котором используются знаки логических операций и операторы реляционной алгебры.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.