Правил Тед Кодда (1985) в журнале Computer world, которые определяют реляционную базу данных

Целостность Базы данных (integrity)

ЦБД-это правильность данных в любой момент времени. Нарушение целостности приводит к недостоверности данных.

Различают три группы правил целостности:

1. Целостность по сущностям (не допускается чтобы какой-либо атрибут входящий в pk имел неопределенное значение)

2. Целостность определяемая пользователем или бизнес-правилом. Чаще всего контролируется :

a. Уникальность атрибутов

b. Диапазон значений (например оценка принадлежит интервалу от 2 до 5)

c. Принадлежность набору значений (пол либо м либо ж)

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

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

b. При удалении записи родительской таблицы удаляются все соответствующие записи в дочерней таблице

Существует другая разновидность каскадного удаления:

1. При удалении родительской записи в записях дочерней таблицы поле связи обнуляется, принимает значение null. Применяется редко, так как приводит к избыточности данных.

Индексы

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

Например Студент

№зач книжки   ФИО   Дата рождения  
Иванов 13.03.2000
Сидоров 14.05.2001
Петров 15.01.2000

Если индекс построен по номеру зач книжки

Индекс по №зач книжки   Индекс по ФИО   Индекс по дате рождения  
№зач книжки №записи ФИО №записи    
Иванов 15.01.2000
Петров 13.03.2000
Сидоров 14.05.2001

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

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

Не рекомендуется стоить индексы если

1. Поля редко используются для поиска, объединения и сортировки.

2. Поля часто меняют значения (процесс перестройки индекса – сортируем заново из за измененных значений полей)

3. Поля содержат не большое число вариантов значений.

правил Тед Кодда (1985) в журнале Computer world, которые определяют реляционную базу данных

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

2. Правило гарантированного доступа: логический доступ ко всем и каждому элементу данных должен обеспечиваться путем использования – комбинации {имени таблицы и имени ключа и имени столбца}.

3. Правило поддержки недействительных значений: должна быть возможность представить отсутствующие данные в виде недействительных значений. Если поле пусто, оно помечается как null.

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

5. Правило исчерпывающего подъязыка данных: СУБД должна использовать язык реляционных БД (SQL), поддерживающий все основные функции СУБД:

a. Определение данных

b. Определение представлений или виртуальных таблиц (просмотр и вид)

c. Обработка данных интерактивная и программная (либо с помощью приложения или с помощью языка SQL)

d. Задание условий ограничения целостности – с помощью SQL

e. Идентификация прав доступа (роли и привилегии)

f. Задание границ транзакций.– набор операций выполняющихся как единое целое. Если одна не выполнится то произойдет откат всех составляющих транзакцию операций (начало/завершение/отмена)

6. Правило обновления представлений: все представления, которые теоретически можно обновить, должны быть доступны для обновления.

7. Правило добавления/изменения/удаления записей в таблицах: должна быть возможность осуществлять данные операции над группой записей.

8. Правило независимости физических данных: прикладные программы и утилиты для работы с данными должны оставаться неизменными при применении различных способов хранения данных и доступа к ним.

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

10. Правила независимости условий целостности: язык БД должен поддерживать ограничительные условия налагаемые на вводимые данные и действия над ними. (Нельзя удалить группу, пока не удалены студенты в ней)

11. Правило независимости распространения: реляционная СУБД не должна зависеть от потребностей конкретного клиента. Язык БД должен обеспечивать возможность работы с распределенными данными.

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

Наши рекомендации