Добавил:
rushevamar@mail.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры бд.docx
Скачиваний:
114
Добавлен:
17.06.2021
Размер:
4.93 Mб
Скачать

29.Основные и дополнительные правила ссылочной целостности.

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

Ссылочную целостность могут нарушить след. операции над данными:

  1. Обновление первичного ключа в строке родительской таблицы

  2. Удаление строки в родительской таблице

  3. Вставка новой строки в дочернюю таблицу

  4. Обновление внешнего ключа в строке дочерней табицы

Для поддержания ссылочной целостности используются 2 стандартных правила:

  1. Ограничить (RESTRICT) - не разрешать выполнение операций, приводящее к появлению ссылочной целостности. Это правило, требующее лишь проверки существования связей между данными в родительской и дочерней таблицах.

  2. Каскадировать (CASCADE) – разрешать выполнение требуемой операции, но внести при этом необходимые изменения в связанные таблицы так, чтобы не допустить нарушения ссылочной целостности между данными. Изменения начинаются в главной (родительской) таблице и каскадно, т. е. поочередно выполняются в подчиненных таблицах. Правило хорошо тем, что после выполнения операции с сопупств. Каскадными изменениями будут сохранятся все имеющиеся связи между данными.

Дополнительные правила поддержки ссылочной целостности являются:

  1. Установить в NULL (set null) – разрешить выполнение требуемой операции, однако все некорректные значения внешнего ключа изменить на null – значения

  2. Установить по умолчанию (set default) – разрешить значения требуемой операции, однако все некорректные значения внешнего ключа изменить на значения, принятые по умолчанию

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

Можно вообще отказать от поддержания ссылочной целостности с помощью правила «игнорировать» (IGNORE) – разрешить выполнение любой операции, не обращая внимания на нарушения правила ссылочной целостности.

30. Язык sql: основные команды манипулирования данными.

Язык SQL (Structured Query Language - структурированный язык запросов) представляет собой стандартный высокоуровневый язык описания данных и манипулирования ими в системах управления базами данных (СУБД), построенных на основе реляционной модели данных.

Язык SQL был разработан фирмой IBM в конце 70-х годов. Первый международный стандарт языка был принят международной стандартизирующей организацией ISO в 1989 г., а новый (более полный) - в 1992 г. В настоящее время все производители реляционных СУБД поддерживают с различной степенью соответствия стандарт SQL92.

Основные категории команд языка SQL:

· DDL, или язык определения данных

· DML, или язык манипулирования данными

· DQL, или язык запросов

· DCL, или язык управления данными

· Команды администрирования данных

· Команды управления транзакциями

Язык манипулирования данными (DML) — это часть языка SQL, предназначенная для реального внесения пользователем изменений в информацию, содержащуюся в реляционной базе данных. С помощью команд языка манипулирования данными пользователь может загружать в таблицы новые данные, а также изменять и удалять существующие. Команды DML также могут быть использованы при выполнении простых запросов к базе данных.

В языке SQL существует три основных команды DML:INSERT, UPDATE, DELETE.

Единственной структурой представления данных (как прикладных, так и системных) в реляционной базе данных (БД) является двумерная таблица.

В реляционной модели данных таблица обладает следующими основными свойствами:

· идентифицуруется уникальным именем;

· имеет конечное ненулевое количество столбцов;

· имеет конечное (возможно, нулевое) число строк;

· столбцы таблицы идентифицируются своими уникальными именами и номерами;

· содержимое всех ячеек столбца принадлежит одному типу данных;

· в общем случае ячейки таблицы могут оставаться пустыми, такое их состояние обозначается как NULL.