Понятие ссылочной целостности

Понятие целостности является одним из основополагающих понятий в технологии баз данных.

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

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

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

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

Поддержка целостности в реляционной модели данных в ее классическом понимании включает в себя 3 аспекта.

Во-первых, это поддержка структурной целостности, которая требует того что реляционная СУБД должна допускать работу только с однородными структурами данных типа «реляционное отношение», т.е. в нем отсутствуют повторяющиеся картежи, нет упорядоченности картежей и обязательно наличие первичного ключа.

Во-вторых – поддержка языковой целостности, которая состоит в том, что реляционная СУБД должна обеспечивать языки описания и манипулирования данными не ниже стандарта SQL.

В-третьих – поддержка ссылочной целостности, которая означает обеспечение одного из принципов взаимосвязи:

– Картежи подчиненного отношения уничтожаются при удалении картежа основного отношения, связанного с ними.

– Картежи основного отношения модифицируются при удалении картежа основного отношения, связанного с ним, при этом на месте ключа родительского отношения ставится неопределенное (NULL) значение.

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

Задание ограничений целостности базы данных.

Структурная, языковая и ссылочная целостность определяют правила работы СУБД с реляционными структурами данных. Требования поддержки этих трех видов целостности должна уметь делать каждая СУБД, а разработчики должны это учитывать при построении БД.

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

Рассмотрим следующие типы ограничений целостности данных:

-Обязательные данные

- Ограничения для доменов атрибутов

- Целостность сущностей

- Ссылочная целостность

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

Задать это ограничение, значит при формировании структуры таблицы такому атрибуту установить проверку возможными для конкретной программы способами.(пример: поле должность сотрудника не может быть пустым).

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

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

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

- CASCADE (при удалении первичного ключа удаляются все строки из дочерних таблиц связанные по удаляемому ключу)

- RESTRICT (блокирует удаление ключа если есть связанные по нему данные)

- NO ACTION (не контролируются связи)

Лекция 7.

Тема: ”Создание взаимосвязанных отношений в БД между таблицами. Понятие индекса”

План лекции:

1. Понятие индексного файла

2. Создание индексов. Типы индексов.

Понятие индексного файла

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

Индекс – это указатель записи и представляет собой порядковый номер записи в таблице.

Индекс - строится по значению одного поля или по значению нескольких полей.

Индекс, построенный по значению одного поля называется простым, а индекс построенный по значению нескольких полей – сложным.

Во время построения индекса, записи в таблице сортируются по значениям поля (или полей) будущего индекса. При этом первой строке таблицы присваивается индекс №1, второй строке – индекс №2 и т.д. до конца.

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

Если индексный файл хранит только один индекс, то он называется одноиндексным и имеет расширение *.idx. Индексные файлы, которые хранят несколько индексов, называются мультииндексными и имеют расширение *.cdx.

Каждый индекс, который хранится в мультииндексном файле называется тегом. Каждый тег имеет свое уникальное имя.

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

- Автоматически открывается со своей таблицей.

- Его нельзя закрыть, но можно сделать не главным.

Одна таблица может иметь много индексных файлов как одноиндексных, так и мультииндексных.

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