Целостность сущностей и ссылок



 

В реляционных БД существует 2 базовых требования целостности:

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

2. Требование целостности по ссылкам.

(по приведенному примеру)

Т.о. в отношение Race атрибут Чемпион становится внешним ключом, для того, чтобы иметь возможность восстановить полную сущность RaceWinner. Атрибуты такого рода называются внешними ключами, поскольку его значения однозначно характеризуют сущности, представленные кортежами другого отношения. Т.е. для поддержания ссылочной целостности данных СУБД поддерживают механизм внешних ключей. Отношение, в котором определен внешний ключ, ссылается на соответствующее отношение, в котором такой же атрибут является первичным ключом, при этом отношение, на первичный ключ которого ссылается внешний ключ другого отношения, называется главным отношением, а отношение, от которого исходит ссылка – подчиненным отношением.

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

       Можно выделить главное правило, поддерживающее ссылочную целостность:

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

           

Операции реляционной алгебры

 

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

(примеры из презентации)

1. Объединение.

       Для операций объединения над отношениями вводится понятие совместимости отношений по типу: 1. каждое из них имеет одно и тоже множество имен атрибутов; 2. атрибуты с одинаковыми именами в обоих отношениях определены на одном и том же домене.

       Объединением двух совместимых по типу отношений S и P (S union P) называется отношение с тем же заголовком, что и у исходных отношений, и с телом, состоящим из множества всех кортежей, принадлежащих S и P, или обоим отношениям.

       Пример: пусть заданы 2 отношения

S                                      P                                                      S union P

номер ФИО Город
 1 Иванов Томск
  3 Петров Томск

 

Номер ФИО Город
1 Иванов Томск
10 Смирнов Тюмень
11 Сидоров Омск

 

Номер ФИО Город
1 Иванов Томск
3 Петров Томск
10 Смирнов Тюмень
11 Сидоров Омск

S – содержит информацию о поставщиках, проживающих в Томске, P – о поставщиках одного товара (например, “мышь”). Тогда отношение S union P будет содержать сведения о поставщиках, проживающих в Томске, и о поставщиках, поставляющих товар “мышь”.

       2. Пересечение.

       Пересечением двух совместимых по типу отношений S и P (S intersect P) называется отношение с тем же заголовком, что и у исходных отношений, и с телом, состоящим из множества кортежей, принадлежащих одновременно обоим отношениям.

Номер ФИО Город
1 Иванов Томск

S intersect P

 

 

       3. Вычитание.

       Вычитанием двух совместимых по типу отношений S и P (S minus P) называется отношение с тем же заголовком, что и у исходных отношений, и с телом, состоящим из множества кортежей, принадлежащих отношению S и не принадлежащих отношению P.

Номер ФИО Город
3 Петров Томск

S minus P, P minus S 

Номер ФИО Город
10 Смирнов Тюмень
11 Сидоров Омск

 

 

           

4. Декартово произведение.

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

S                                                                                          P

код наименование Код_поставщика
1 Мышь 20
2 Клавиатура 21

 

код     Поставщик
19 Комстар
20 Интант
21 ДНС

 

 

S times P

код наименование Код_поставщика код Поставщик
1 Мышь 20 19 Комстар
1 Мышь 20 20 Интант
1 Мышь 20 21 ДНС
2 Клавиатура 21 19 Комстар
2 Клавиатура 21 20 Интант
2 Клавиатура 21 21 ДНС

 

Специальные реляционные операции:

1. Ограничение отношения (выборка).

Результатом ограничения (where) отношения по некоторому условию является отношение, включающее кортежи отношения-операнда, удовлетворяющее заданному условию.

S                                                                                                   S where Город = “Томск”

Номер ФИО Город
1 Иванов Томск
10 Смирнов Тюмень
11 Сидоров Омск

 

Номер ФИО Город
1 Иванов Томск

 

2. Проекция отношения.

Операция проекции(PROJECT) извлекает заданное подмножество столбцов, при этом, если будет несколько одинаковых кортежей, то в результирующем отношении будет только один такой кортеж (применяется оператор distinct).

Синтаксис операции п(ФИО) S

ФИО
Иванов
Смирнов
Сидоров

3. Соединение отношений.

При соединении (JOIN) двух отношений по некоторому условию образуется результирующее отношение, кортежи которого производятся путем объединения кортежей первого и второго отношений и удовлетворяют этому условию.

S JOIN P – пример в презентации

 

4. Деление отношений.

Даны два отношения S и P. Деление отношений S devideby P – означает, что из таблицы S берутся значения строк, для которых присутствуют все комбинации значений из таблицы P.

 

Достоинства реляционных моделей:

§ простота и доступность для понимания пользователем. Единственной используемой информационной конструкцией является "таблица";

§ строгие правила проектирования, базирующиеся на математическом аппарате;

§ полная независимость данных. Изменения в прикладной программе при изменении реляционной БД минимальны;

§ для организации запросов и написания прикладного ПО нет необходимости знать конкретную организацию БД во внешней памяти.

Недостатки реляционных моделей:

§ далеко не всегда предметная область может быть представлена в виде "таблиц";

§ в результате логического проектирования появляется множество "таблиц". Это приводит к трудности понимания структуры данных;

§ БД занимает относительно много внешней памяти;

§ относительно низкая скорость доступа к данным.

 


Дата добавления: 2021-03-18; просмотров: 72; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!