Средства поддержки целостности данных

DML

ДОМАШНЯЯ РАБОТА! Доклады по витаминам

Процедурный DML позволяет получить данные языка, как правило, такие операторы встраиваются в программу на высокоуровневых языках, где учтены конструкции для циклической обработки, cоответственные операторы ДМЛ заменяются перед вызовом функций соответствующих языков.

Непроцедурные или деклоративные ДМЛ описывают только то, какой результат будет получен и сама СУБД транслирует выражение ДМЛ прямо в низкоуровневый язык.

Хотя чистый SQL не процедурный язык, существуют его процедурные расширения, позволяющие организовать циклическое базовые конструкции:

• Для СУБД MSAccess — это язык VBA.

• Для Oracle — PLSQL

Наиболее важные для эксплутации БД процедурные расширения выполняют, как правило, главную задачу — это сохранить целостность данных, при нарушении нормализации.

Курсоры — селект только одно строку, если нужно несколько, используется курсор

◦ Он действует как указатель на конкретную строку результатов запроса.

◦ Курсор должен быть объявлен и открыт перед использованием, и закрыт по окончанию использования.

◦ Для обращения к след. строке, курсор передвигается на единицу.

◦ Выбор конкретной строки запроса осуществляется с помощью оператора FETCH.

На сегоднешний день имеются хорошие альтернативы курсору:

1. Патерн MVC – model view controller.

2. Патерн View.

Подпрограмма – хранимые процедуры или хранимые функции. Именованные блоки процедурного языка, которые могут принимать параметры и вызываться на выполнение.

• Параметров мб несколько.

• И процедуры и функции могут модифицировать и возвращать данные, передаваемые в качестве параметра.

• Параметр должен иметь конкретное имя и конкретный тип данных.

• К ним может пристроено добавочное обозначение

◦ in – входное

◦ out – выходное

◦ in/out

Тригеры — определяет действие, которое должно быть препринято базой, при возникновении в приложении некоторого события.

Используется для:

1. Осуществление ограничения ссылочной целостности.

2. Комплексных ограничений предметной области.

3. Для контроля изменений данных.

Тело тригера - код внутри тригера.

Базируется на модели — событие, условие, действие.

Как события в СУБД Oracle мб рассмотрены:

1. Операторы insert, update, delete применяемые к указанной таблице или к указанному представлению

2. Операторы create, alter, drop – применяемые к любому объекту схемы.

3. Запуск БД или остановка экземпляра.

4. Регистрация пользователя в системы и выход из системы.

5. Конкретное сообщение об ошибке или вообще сообщение об ошибке.

Можно так же определить когда должен сработать тригер — до или после события.

Действия которое должно быть препринято:

1. Операторы SQL

2. Код на высокоуровневом языке.

Которые должны быть выполнены, если выдается активизирующий оператор (событие произошло) и условие активации равно true.

Условия (как правило предикат), которые определяет действие, которое должно быть выполнено в обязательном порядке:

Существует 2 типа тригеров, которые запускаются разными ключевыми словами:

1. for, each, row – для каждой строк. Строковые тригеры.

2. new – новое значение.

Представление или view – это динамический результат одной или нескольких реляционных операций с базовыми отношениями, с целью создания нового отношения.

Особенности представления:

1. Виртуальное отношение — реально в структуре базы такой таблицы нет, но оно создается по требованию отдельно пользователя, в момент его поступления.

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

3. Имеет более жесткий механизм контроля доступа, чем просто назначения прав для таблицы.

Ограничения на изменения, которые можно заводить через представления:

1. Допускаются обновления через вью, которое определено на основе простого запроса к единственному базовому отношению и содержит первичный или потенциальный ключ этого отношения.

2. Обновления не допускаются в любых представлениях, опреденных на основе нескольких базовых отношений.

3. Обновления не допускаются в любых представлениях, включающих операции агригирования или групирования.

СУБД постоянно хранит в базе определение представления (запрос на представление) и если обнаруживается ссылка на представление СУБД применяет один из 2-х подходов:

1. Замена представления — СУБД преобразует исходный запрос в эквивалентный запрос к таблицам, использованный в определение представления.

2. Матеарилизация представления — готовое представления уже хранится в БД в виде временной таблицы, а его актуальность постоянно поддерживается по мере обновления всех таблиц основной базы.

Включает средства задания ограничений, которые вводятся для защиты базы от нарушения согласованности данных.

5 типов:

1. Обязательные данные.

2. Целостность сущностей.

3. Ссылочная целостность.

4. Ограничения для доменов.

5. Корпоративные ограничения.

Все ограничения определяются в операторах create and alter table.

Для некоторых столбцов требуется наличие в каждой строке таблицы конкретного и допустимого значения отличного от NULL.

Значение NULL служит для представления данных, которые в данный момент отсутствуют, недоступны или неопределены.

Применения NULL может вызвать проблему на этапе реализации, связанной с переходом к 3-х значной логике. Следовательно использование нул спорно.

Для разрешения это коллизии предусматривает спецификатор not null, он указывается для конкретных столбцов.

По умолчанию для всех столбцов применяется спецификатор нул.

В базом отношении ни одни атрибут первичного ключа не может содержать значение типа NULL. Для задания этого ограничения стандарт ИСО использует конструкцию primary key в операторах create and alter table. Он может состоять из одного или нескольких столбцов.

Эта конструкция указывается в определение таблицы только один раз, для альтернативных ключей используется ключевое слов unique — уникальный. Целесообразно явно прописывать нот нул.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: