Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к зачету.docx
Скачиваний:
7
Добавлен:
19.09.2019
Размер:
590.16 Кб
Скачать

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

Рассмотренные выше операции DELETE, INSERT и UPDATE могут оперировать не только базовыми таблицами, но и представлениями.(НЕ ВСЕГДА!!!)

Безусловно обновляемыми являются представления, полученные из единственной базовой таблицы простым исключением некоторых ее строк и (или) столбцов, обычно называемые "представление-подмножество строк и столбцов". Таким является представление S1, полученное из базовой таблицы S.

Работая с ним, можно:

  1. вставить (операция INSERT) новую строку, фактически вставляя соответствующую строку в базовую таблицу S (отсутствующие в S1 атрибуты означиваются как NULL;

  2. удалить (операция DELETE) существующую строку из представления S1, фактически удаляя соответствующую строку из таблицы S;

  3. обновить (операция UPDATE) какое-либо поле в существующей строке, фактически осуществляя то же самое изменение в соответствующем поле таблицы S.

Поддержка ограничений (ключей, ссылок) целостности средствами СУБД. Триггеры и хранимые процедуры.

Ограничения (constraints) логической целостности

Логическая целостность данных - это механизм поддержания соответствия базы данных предметной области. В реляционной модели данных определены два базовых требования обеспечения логической целостности:

  • целостность сущностей

  • целостность ссылок.

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

Каждый кортеж отношения должен отличатся от любого другого кортежа этого отношения набором ключевых атрибутов (любое отношение должно обладать первичным ключом).

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

  • при добавлении записей в таблицу проверяется уникальность их первичных ключей

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

Объявление первичного ключа :

CREATE TABLE S

( Шифр CHAR (80) NOT NULL,

Дата DATATIME NOT NULL,

Стоимость MONEY,

Подрядчик CHAR (255),

PRIMARY KEY ( Шифр, Дата, Стоимость )

);

Примечания:

1. Допускается объявление одного и более атрибутов – UNIQUE, т.о. отношение может обладать несколькими ключами UNIQUE, но только одним PRIMARY KEY

2. Компонентам атрибутов PRIMARY KEY запрещается присваивать значения NULL, для компонентов UNIQUE – разрешено.

Целостность ссылок

Для каждого значения внешнего ключа, появляющегося в дочернем отношении, в родительском отношении должен найтись кортеж с таким же значением первичного ключа.

Объявление внешнего ключа:

CREATE TABLE V

( Подрядчик CHAR (255) PRIMARY KEY;

Поручитель CHAR (255)

);

CREATE TABLE S

( Шифр CHAR (80) NOT NULL,

Дата DATATIME NOT NULL,

Стоимость MONEY,

Подрядчик CHAR (255)

PRIMARY KEY ( Шифр, Дата, Стоимость )

FOREIGN KEY ( Подрядчик )

REFERENCES V ( Подрядчик )

);

Требование целостности по ссылкам означает в нашем примере, что в таблице V не может присутствовать кортеж со значением атрибута "Подрядчик", которое не встречается в таблице S.