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

3. Реляционная модель бд, ее основные достоинства. Таблица, кортеж, атрибут, домен, первичный ключ, внешний ключ. Фундаментальные свойства отношений. Обеспечение целостности данных.

Реляционной считается БД, в кот. данные представлены для пользователя в виде прямоугольных таблиц значений, и все операции над базой данных сводятся к манипуляциям с таблицами. Таблица состоит из строк и столбцов и имеет имя, уникальное внутри базы данных. Таблица отражает тип объекта реального мира (сущность), а каждая ее строка — конкретный объект. Каждый столбец — совокуп. значений атрибута объекта (объектов?).

Каждый столбец имеет имя, которое обычно записывается в верхней части таблицы. Оно должно быть уникальным в таблице, однако различные таблицы могут иметь столбцы с одинаковыми именами. Любая таблица должна иметь, по крайней мере, один столбец; столбцы расположены в таблице в соответствии с порядком следования их имен при ее создании. В отличие от столбцов, строки не имеют имен; порядок их следования в таблице не определен, а количество логически не ограничено.

К осн. достоинствам РМД относят:

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

  2. Наличие простого и достаточно мощного математического аппарата, опирающего на теорию множеств и математическую логику и обеспечивающего теоретический базис реляционного подхода к организации БД.

  3. Возможность ненавигационного манипулирования данными без необходимости знания конкретной физической организации БД во внешней памяти.

Формал. реляц. термин

Неформал. эквивалент

Отношение

Таблица

Кортеж / запись

Строка

Кардинальное число

Кол-во строк

Атрибут / поле

Столбец

Степень

Кол-во столбцов

Первичный ключ

Уник. идентификатор

Домен

Совокуп. допустимых знач.

Фундаментальные свойства отношений:

  • в 1-м отношении нет абсолютно одинак. кортежей;

  • все кортежи в отношении не упорядочены;

  • все атрибуты в отношении не упорядочены;

  • все значения атрибутов атомарные.

Целостность (integrity) — правильность (корректность, однозначность, непротиворечивость) данных в любой момент времени. Но эта цель может быть достигнута лишь в определенных пределах. Например, нельзя обнаружить, что вводимое значение 5 (представляющее номер дня недели) в действительности должно быть равно 3. С другой стороны, значение 9 явно будет ошибочным и СУБД должна его отвергнуть. Однако для этого ей следует сообщить, что номера дней недели должны принадлежать набору (1,2,3,4,5,6,7), то есть создать домен ­– указать перечень всевозможных значений того или иного атрибута.

Для того чтобы гарантировать корректность и взаимную непротиворечивость данных, на базу данных накладываются некоторые ограничения, которые называют ограничениями целостности (data integrity constraints).

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

Выделяют четыре вида целостности:

        целостность по сущностям (декларативная целостность);

        целостность по ссылкам (ссылочная целостность – referential integrity);

        целостность, определяемая пользователем (семантическая целостность);

        физическая целостность (целостность файлов операционной системы).

 

Декларативная целостность – целостность по сущностям. Ограничения целостности, необходимые для обеспечения декларативной целостности обычно задаются при объявлении (декларировании, от слова declaration – «объявление») сущности в базе данных.

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

  • тип данных;

  • размер типа данных;

  • опция Not Null;

  • домен;

  • первичный ключ;

  • уникальный ключ.

Тип данных — характеристика, задающая перечень возможных значений атрибута.

Размер типа данных — ограничение перечня возможных значений атрибута, заданного типом данных. Например, для типа данных СТРОКА всегда указывают максимально количество символов, которое может содержать в строке.

Опция NOT NULL — назначается атрибуту в случае, если нужно, чтобы он не мог содержать неопределенное значение.

Домен — также как и тип данных, хар-ка, задающая перечень возможных знач. атрибута, но обычно этот перечень более «узкий». #: при помощи домена можно наложить ограничение ВОЗРАСТ > 0 И ВОЗРАСТ < 100, кот. не позволит для атрибута ВОЗРАСТ использовать знач., выходящие за указ. диапазон.

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

Уникальный ключ — ограничение целостности, накладываемое на набор атрибутов, и не допускающее повторение значений в указанных атрибутах. В отличие от первичного ключа, можно задать несколько уникальных ключей для одной сущности. Кроме того, уникальный ключ не требует отсутствия неопределенных значений в используемых атрибутах.

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

Внешний ключ — набор атрибутов зависимой сущности, по значениям которых можно идентифицировать сущность, с которой она связана. Иными словами, значения атрибутов, входящих в состав внешнего ключа, выбираются из значений атрибутов, составляющий первичный ключ той сущности, на которую ссылается зависимая сущность. В общем случае значения атрибутов, составляющих внешний ключ, могут иметь неопределенные значения (NULL), но если это невозможно по смыслу реализуемой задачи, можно на эти атрибуты наложить дополнительные ограничения целостности, запрещающие использование неопределенных значений.

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

В частности, необходимо определить, что случиться при попытке удаления целевой сущности, на которую ссылается внешний ключ? Например, при удалении поставщика, который осуществил, по крайней мере, одну поставку. Существует три возможности:

  • Каскадирование: операция удаления «каскадируется» с тем, чтобы удалить также поставки этого поставщика.

  • Ограничение: удаляются лишь те поставщики, которые еще не осуществляли поставок. Иначе операция удаления отвергается.

  • Установка: для всех поставок удаляемого поставщика внешний ключ устанавливается в неопределенное значение, а затем этот поставщик удаляется. Такая возможность, конечно, неприменима, если данный внешний ключ не должен содержать NULL-значений.

Кроме этого, определяется что должно происходить при попытке обновления первичного ключа целевой сущности, на которую ссылается некоторый внешний ключ? Например, может быть предпринята попытка обновить номер поставщика, для которого имеется, по крайней мере, одна соответствующая поставка. Имеются те же три возможности, как и при удалении:

  • Каскадирование: операция обновления «каскадируется» с тем, чтобы обновить также и внешний ключ в поставках этого поставщика.

  • Ограничение: обновляются первичные ключи лишь тех поставщиков, которые еще не осуществляли поставок. Иначе операция обновления отвергается.

  • Установка: для всех поставок такого поставщика внешний ключ устанавливается в неопределенное значение, а затем обновляется первичный ключ поставщика. Такая возможность, конечно, неприменима, если данный внешний ключ не должен содержать NULL-значений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]