Базы данных. Краморенко Н.В. - 28 стр.

UptoLike

Составители: 

29
Семантическая целостность
Структурная целостность
Структурная целостность подразумевает, что реляционная СУБД может работать только с
реляционными отношениями. А реляционное отношение, в свою очередь, должно удовлетворять
ограничениям, накладываемым на него в классической теории реляционных БД (отсутствие
одинаковых кортежей и, следовательно, наличие первичного ключа, отсутствие упорядоченности
атрибутов и кортежей).
Требование структурной целостности осуществляется с помощью двух ограничений:
при добавлении кортежей в отношение проверяется уникальность их первичных ключей
не допускается, чтобы какой-либо атрибут, участвующий в первичном ключе, принимал
неопределенное значение
Здесь возникает необходимость рассмотреть проблему неопределенных значений (Null-
значений) [1, 2]. Неопределенное значение интерпретируется в реляционной модели как значение,
неизвестное на данный момент времени. При сравнении неопределенных значений не действуют
стандартные правила сравнения: одно Null-значение никогда не считается равным другому Null-
значению.
Для выявления равенства значения некоторого атрибута неопределенному применяют
стандартные предикаты:
<Имя атрибута> Is Null
<Имя атрибута> Is Not Null
Таблица 2-2 содержит пример проверки атрибута Адрес на неопределенное значение.
Таблица 2-2
Адрес Адрес Is Null Адрес Is Not Null
Null True False
ул.Мордовцева, 12 False True
Введение Null-значений привело к модификации классической двузначной логики к трехзначной. Таблица 2-3
содержит таблицу истинности для трехзначной логики.
Таблица 2-3
A B Not A A & B
A B
True True False True True
True False False False True
True Null False Null True
False True True False True
False False True False False
False Null True False Null
Null True Null Null True
Null False Null False Null
Null Null Null Null Null
Языковая целостность
Языковая целостность состоит в том, что реляционная СУБД должна обеспечивать языки
описания и манипулирования данными не ниже стандарта SQL. Не должны быть доступны иные
низкоуровневые средства манипулирования данными, не соответствующие стандарту.
Ссылочная целостность
При установлении связи между отношениями возникает необходимость поддержания
целостности по ссылкам. Отношение со стороны «один» будем называтьосновным отношением, а
отношение со стороны «многие» – подчиненным.
Требование ссылочной целостности состоит в следующем: для каждого значения внешнего
ключа, появляющегося в подчиненном отношении, в основном отношении должен существовать
кортеж с таким же значением первичного ключа.
У первичного и внешнего ключей, образующих связь, должен быть одинаковый тип данных.
То есть значение внешнего ключа должно либо:
быть равным значению первичного ключа
быть полностью неопределенным, т.е. каждое значение поля, участвующего во внешнем
ключе должно быть неопределенным.
      • Семантическая целостность

       Структурная целостность
       Структурная целостность подразумевает, что реляционная СУБД может работать только с
реляционными отношениями. А реляционное отношение, в свою очередь, должно удовлетворять
ограничениям, накладываемым на него в классической теории реляционных БД (отсутствие
одинаковых кортежей и, следовательно, наличие первичного ключа, отсутствие упорядоченности
атрибутов и кортежей).
       Требование структурной целостности осуществляется с помощью двух ограничений:
      • при добавлении кортежей в отношение проверяется уникальность их первичных ключей
      • не допускается, чтобы какой-либо атрибут, участвующий в первичном ключе, принимал
         неопределенное значение
       Здесь возникает необходимость рассмотреть проблему неопределенных значений (Null-
значений) [1, 2]. Неопределенное значение интерпретируется в реляционной модели как значение,
неизвестное на данный момент времени. При сравнении неопределенных значений не действуют
стандартные правила сравнения: одно Null-значение никогда не считается равным другому Null-
значению.
       Для выявления равенства значения некоторого атрибута неопределенному применяют
стандартные предикаты:
      • <Имя атрибута> Is Null
      • <Имя атрибута> Is Not Null
       Таблица 2-2 содержит пример проверки атрибута Адрес на неопределенное значение.
       Таблица 2-2
                       Адрес                Адрес Is Null       Адрес Is Not Null
                        Null                    True                  False
                  ул.Мордовцева, 12             False                 True
Введение Null-значений привело к модификации классической двузначной логики к трехзначной. Таблица 2-3
содержит таблицу истинности для трехзначной логики.
       Таблица 2-3
       A                    B                  Not A               A&B                  A∨B
      True                 True                False               True                 True
      True                 False               False               False                True
      True                 Null                False               Null                 True
      False                True                True                False                True
      False                False               True                False                False
      False                Null                True                False                Null
      Null                 True                 Null               Null                 True
      Null                 False                Null               False                Null
      Null                 Null                 Null               Null                 Null

       Языковая целостность
       Языковая целостность состоит в том, что реляционная СУБД должна обеспечивать языки
описания и манипулирования данными не ниже стандарта SQL. Не должны быть доступны иные
низкоуровневые средства манипулирования данными, не соответствующие стандарту.
       Ссылочная целостность
       При установлении связи между отношениями возникает необходимость поддержания
целостности по ссылкам. Отношение со стороны «один» будем называть – основным отношением, а
отношение со стороны «многие» – подчиненным.
       Требование ссылочной целостности состоит в следующем: для каждого значения внешнего
ключа, появляющегося в подчиненном отношении, в основном отношении должен существовать
кортеж с таким же значением первичного ключа.
       У первичного и внешнего ключей, образующих связь, должен быть одинаковый тип данных.
       То есть значение внешнего ключа должно либо:
     • быть равным значению первичного ключа
     • быть полностью неопределенным, т.е. каждое значение поля, участвующего во внешнем
         ключе должно быть неопределенным.

                                                  29