Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_БД.doc
Скачиваний:
27
Добавлен:
04.05.2019
Размер:
4.03 Mб
Скачать

2.1.2. Целостность базы данных.

Целостность – это свойство базы данных, которое означает, что она содержит полную, непротиворечивую и адекватно отражающую предметную область информацию. Различают физическую и логическую целостность. Физическая означает наличие физического доступа к данным и то, что они не утрачены. Логическая означает отсутствие логических ошибок в базе данных (нарушение структуры БД или ее объектов, удаление или изменение установленных между объектами связей). Целостное состояние БД задается с помощью ограничений целостности, основными из которых являются ограничения значений атрибутов отношений и структурные ограничения на кортежи отношений.

Задание ограничений на значения полей. Установленные ограничения будут заданы на физическом уровне (уровне таблицы) и действуют для любых программ, выполняющих операции с таблицей (Database Desktop, Delphi). Для установки ограничений нужно:

  1. выбрать пункт Validity Checks (проверка значений),

  2. задать:

Required Field (обязательное поле)

Minimum Value

Maximum Value

Default Value

Picture (маска ввода)

Кнопка Assist.. (помощь).

Для маски используются следующие символы:

# цифра

? – любая буква (регистр не учитывается);

& - любая буква (преобразуется к верхнему регистру),

~ - любая буква (преобразуется к нижнему регистру),

@ - любой символ,

! - любой символ (преобразуется к верхнему регистру),

; - за этим символом следует буквенный символ,

* - число повторов следующего символа,

[a, b, c] или {a, b, c} – любой из приведенных символов (a, b, c), значения перечисляются через запятую без пробелов.

Маску можно вводить вручную или с помощью кнопки Assist.., и в появившемся окне Picture Assistance ввести или откорректировать маску.

Например,

  1. телефон: [(*3{#})]*3{#}-*4{#}

  2. дата {0,1,2,3}#.{0,1}{0,1,2}.*4{#}

  3. имя &*14?

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

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

Родительская таблица

Дочерняя таблица

*

Doljn

Oklad

A, 10

$

Prep

1000

St_prep

1500


*

FIO

Doljn

Staj

Otdel

A, 30

A, 10

N

A, 20

Ivanov

Prep

3

3

Petrov

Prep

7

3

Sedov

St_prep

10

4


Внешний ключ

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


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

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

  • при удалении записи в главной таблице автоматически удаляются соответствующие ей записи в подчиненной таблице (каскадное удаление).

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

  • полями связи подчиненной табицы,

  • именем главной таблицы,

  • полями связи главной таблицы,

  • параметрами.

Для задания условия ссылочной целостности нужно:

  1. выбрать пункт Referential Integrity (ссылочная целостность),

  2. нажать кнопку Define,

  3. в появившемся окне в списке Fields выбрать поле и перевести его в список Child Fields (дочерние поля). В списке Table указывается главная таблица, имена таблиц выбираются из рабочего каталога программы Database Desktop. !!! Главная таблица должна быть закрыта. Параметры: Update rules (правила изменения), Cascade – режим каскадного удаления записей, в подчиненной таблице при удалении соответствующей записи главной таблицы, Prohibit – запрещение изменения поля связи или удаления записи главной таблицы, для которой имеются записи в подчиненной таблице.

  4. Нажать Ok.

  5. В появившемся окне Save Referential Integrity As задать имя условия, например, riDoljn. После кнопки Ok, сформированное условие ссылочной целостности добавляется к таблице.

!!! Условия ссылочной целостности задаются на физическом уровне (уровне таблицы) и действуют для любых программ, выполняющих операции с таблицей (Database Desktop, Delphi).