- •Базы Данных
- •1.Понятие банка данных. Компоненты банков данных и их краткая характеристика
- •2.Языковые средства субд
- •3.Классификация баз данных
- •4.Этапы проектирования баз данных
- •Тсп для даталогического проектирования
- •Тсп для физического проектирования
- •5.Инфологическое (концептуальное) моделирование
- •7.Case -средства проектирования бд
- •9.Реляционные модели. Основные понятия
- •10.Реляционные модели. Нормальные формы отношений
- •5Nf. Декомпозиция без потерь
- •11.Реляционные модели. Нормализация отношений
- •12.Реляционные алгебры
- •13.Факторы, влияющие на проектирование баз данных
- •1. Специфика предметной области:
- •2. Особенности требуемой обработки информации:
- •3. Характеристика пользователей системы:
- •14.Алгоритм перехода от er-модели к реляционной модели данных
- •15.Ограничения целостности. Понятие и классификация
- •16.Возможности задания ограничений целостности в современных субд
- •17.Языки запросов. Понятие. Классификация
- •18.Классификация запросов. Особенности реализации запросов разных классов
- •19.Табличные языки запросов. Общая характеристика
- •20.Язык sql. Общая характеристика
- •21.Общая структура команды Select языка sql. Корректировка данных в sql
- •22.Sql. Создание объектов
- •23.Sql. Встроенный join
- •24.Sql. Понятие курсора. Использование курсоров
- •25.Sql. Группировка данных. Использование обобщающих функций
- •26.Sql. Создание и использование представлений
- •27.Генераторы экранных форм. Назначение. Классификация
- •28.Генераторы отчетов. Назначение. Классификация
- •29.Классификация распределенных банков данных
- •30.Проблемы обеспечения целостности в распределенных бд
- •31.Сравнение централизованных и распределенных систем
- •32.Распределенные бд. Технологии файл-сервер и клиент-сервер
- •33.Распределенные базы данных. Технология тиражирования
- •34.Проблемы, возникающие при параллельном доступе, и пути их решения
15.Ограничения целостности. Понятие и классификация
Целостность – это актуальность и непротиворечивость информации, ее защищенность от разрушения и несанкционированного изменения. Целостность данных описывается набором специальных предложений, называемых ограничениями целостности. Ограничения целостности представляют собой утверждения о допустимых значениях отдельных информационных единиц и связях между ними. Эти ограничения определяются в большинстве случаев особенностями предметной области, хотя могут отражать и чисто информационные характеристики. Ограничения целостности могут относиться к разным информационным объектам:
Поле. Для него чаще всего используются следующие виды ограничений:
Тип и формат поля (тип поля определяет допустимые для данного поля символы)
Задание диапазона значений
Признак непустого поля (характеризует недопустимость пустого значения поля в БД)
Задание домена (Поле может принимать значение из заданного множества, множество возможных значений какого-либо атрибута называется доменом. Например, пол может быть только «мужской» и «женский»)
Признак его уникальности (это ограничение проверяет допустимость значения данного поля, но при этом просматривается вся таблица; проверяется сразу после ввода значения конкретного поля)
Функциональные зависимости
Ограничения перехода (Это ограничения, которые используются только при проверке допустимости корректировки. Например, «возраст сотрудника» при корректировке значения может только увеличиваться; корректировка поля «семейное положение», вдовец может быть исправлен на женат, холост не может быть исправлен на разведен)
Кортеж (строки, записи) – ограничения на соотношения значений отдельных полей в пределах одной строки. Например, трудовой стаж начинается не ранее чем в 16 лет.
Отношения (таблицы, файлы) – ограничения целостности, относящиеся к таблице, затрагивают разные ее строки. Чаще всего для проверки их соблюдения приходится просматривать всю таблицу. К таким ограничениям целостности относятся ограничения на уникальность поля или совокупности полей.
Совокупность взаимосвязанных таблиц – например, ограничение целостности связи.
Алгоритмические зависимости между показателями (если в БД хранятся как исходные так и производные показатели, то необходимо поддерживать соответствие между ними)
Запрет на обновление (он может относиться как к отдельному полю, так и к записи или целой таблице. Заключается в том, что нельзя изменять поля, например, «дата рождения», «место рождения» и тд.)
По моменту контроля за соблюдением ограничения целостности различают одномоментные и отложенные (отложенные ограничения целостности могут не соблюдаться в процессе выполнения какой-то группы операций, но должны быть соблюдены по их завершении)
По режиму проверки корректности БД (Оперативный режим – проверка в момент корректировки, аудит БД – проверка существующей БД)
По необходимости описания ограничения целостности могут быть неявными и явными. (неявные ограничения целостности определяются спецификой модели данных и проверяются СУБД автоматически. Неявные относятся к классу синтаксических ограничений целостности)
Информационная целостность банка данных (заключается в обеспечении правильности взаимосвязи всех его информационных компонент (файлов баз данных, программных файлов, отчетов))
Логическая и физическая целостность БД. ( логическая целостность – это состояние БД, характеризующееся отсутствие нарушений ограничений целостности, присущих логической модели данных; физическая целостность – отсутствие нарушений спецификаций схемы хранения, а также физических разрушений данных на носителе.)
Некоторые ограничения целостности видны из описания предметной области в виде ER-модели.
1. Ограничение на уникальность - уникальные идентификаторы объектов являются ключами таблиц, соответствующих этим объектам. Если идентификаторов несколько, то для СУБД, поддерживающих концепцию ключа, нужно определить первичный ключ (Primary Key) и вероятные ключи (Alternate Key, Unique).
2. Если объекты связаны между собой, то соответствующие таблицы БД могут иметь ограничение целостности по связи.
Тип связи между объектами (1:1, 1:М, М:М) определяет, что будет первичным, а что - внешним ключом в этих связях. Если отношение между объектами 1:М, то очевидно, что первичным будет ключ основной таблицы (объект, который стоит со стороны единичной связи), внешним - соответствующее ему поле в таблице, отображающей объект, стоящий на стороне множественной связи. В случае, если связь 1:1, объекты относительно связи являются равноправными, и для определения, какой из файлов БД будет играть ведущую роль, необходимо рассматривать дополнительные характеристики. Например, если класс членства с одной стороны связи необязательный, а с другой - обязательный, то идентификатор объекта, имеющего необязательный класс членства, помещается в таблицу, соответствующую объекту с обязательным классом членства, и именно он будет внешним ключом. При наличии связи М:М в базу данных вводится дополнительная связующая таблица. Между ней и таблицами, соответствующими исходным объектам, существуют ограничения целостности по связи. Внешними ключами будут идентификаторы связанных объектов, помещенные в связующей таблице.
3. Если при наличии связи типа 1:М класс членства в связи - необязательный для объектов, стоящих со стороны множественной связи, то могут быть «пустые» значения внешнего ключа. В противном случае они должны иметь ограничение целостности «NON NULL».
4. Класс членства объектов в связи оказывает влияние не только на выбор варианта построения логической структуры, но и на задание ограничений целостности. Причем ограничение целостности будет определяться как классом членства, так и выбранным вариантом отображения этой связи в БД. Так, если объекты связаны отношением 1:М, класс принадлежности n-связной сущности является необязательным и для отображения связи создается третье отношение, которое содержит ключи каждой из связанных сущностей, то между связующим файлом и основными файлами будет ограничение целостности по связи, а значения каждого из полей связующего файла не должны быть пустыми. Если же дополнительная таблица не создается, то значение поля связи, включенного в таблицу, соответствующую объекту, стоящему со стороны множественной связи, либо должно совпадать с одним из значений ключевого поля связанного объекта, либо может быть пустым. Если класс членства обязательный, то поле связи не может иметь пустого значения.
5. При наличии связи 1:1 следует проверять количество элементов в связи.
6. Для статических свойств объектов можно предусматривать запрет на обновление.
7. Если свойство - условное, то соответствующий атрибут может иметь пустые значения.