Что означает целостность базы данных
Тема 5. Проектирование баз данных
Оглавление
Цель: изучить процесс проектирования баз данных.
Задачи:
5.1. Общие вопросы проектирования БД. Системный анализ
Процесс проектирования БД представляет собой последовательность переходов от неформального словесного описания информационной структуры предметной области к формализованному описанию объектов предметной области в терминах некоторой формальной модели. В общем случае можно выделить следующие этапы проектирования:
5.1.1. Системный анализ предметной области
Любому процессу проектирования всегда предшествует системный анализ, целью которого является анализ собственно задачи и выбор адекватных методов ее решения. При проектировании баз данных существует два диаметрально противоположных подхода: функциональный и предметный.
Функциональный подход реализует принцип движения «от задач» и применяется тогда, когда заранее известны функции некоторой группы лиц и (или комплексов) задач, для обслуживания информационных потребностей которых создается рассматриваемая БД.
Предметный подход применяется тогда, когда информационные потребности будущих пользователей БД жестко не фиксируются. Они могут быть многоаспектными и весьма динамичными. В предметной области в этом случае включаются такие объекты и взаимосвязи, которые наиболее характерны и наиболее существенны для нее. БД, конструируемая при этом, называется предметной, т. е. она может быть использована при решении множества разнообразных, заранее не определенных задач. Конструирование предметной БД в некотором смысле кажется гораздо более заманчивым, однако трудность всеобщего охвата предметной области с невозможностью конкретизации конкретных потребностей пользователей может привести к избыточно сложной схеме БД, которая для конкретных задач будет неэффективной.
На практике чаще всего используется некоторый компромиссный подход, объединяющий ранее рассмотренные подходы.
В любом случае результатом системного анализа будет первоначальное описание набора объектов предметной области, пригодное для применения дальнейших шагов проектирования. Одной из наиболее важных в процессе проектирования является процедура нормализации, которая может быть отнесена как к уровню инфологического проектирования, так и к уровню даталогического проектирования в рамках реляционной модели данных.
Нормализация в реляционных базах данных. В реляционных БД даталогическое проектирование приводит к разработке схемы БД, т. е. совокупности схем отношений, которые адекватно моделируют абстрактные объекты предметной области и семантические связи между этими объектами. Основой анализа корректности схемы являются так называемые функциональные зависимости между атрибутами БД. Некоторые функциональные зависимости являются нежелательными из-за побочных эффектов и аномалий, которые они вызывают при модификации БД. Поэтому возникает вопрос о корректности схемы БД.
Корректной схемой БД называется схема БД, в которой отсутствуют нежелательные функциональные зависимости.
Процесс разработки корректной схемы реляционной БД называется логическим проектированием БД.
Проектирование схемы БД может быть выполнено двумя путями:
В теории реляционных баз данных выделяют 6 нормальных форм, которые имеют специальные названия:
Схемы БД называются эквивалентными, если содержание исходной БД может быть получено путем естественного соединения отношений, входящих в результирующую схему и при этом не появляется новых кортежей в исходной БД.
Приведем ряд основных определений.
Функциональной зависимостью набора атрибутов В отношения R от набора атрибутов A того же отношения, обозначаемой как
Возможным ключом отношения называется набор атрибутов отношения, который полностью и однозначно (функционально полно) определяет значения всех остальных атрибутов отношения.
Неключевым, или непервичным атрибутом, называется любой атрибут отношения, не входящий в состав ни одного возможного ключа отношения.
Взаимнонезависимые атрибуты — это такие атрибуты, которые не зависят функционально один от другого.
Среди всех возможных ключей отношения обычно выбирают один, который называют первичным ключом отношения.
Если в отношении существует несколько функциональных зависимостей, то каждый атрибут или набор атрибутов, от которого зависит другой атрибут, называется детерминантом отношения.
1. Отношение находится в 1-й нормальной форме тогда и только тогда, когда на пересечении каждого столбца и каждой строки находятся только элементарные значения атрибутов.
Соответственно ненормализованные отношения, могут интерпретироваться как таблицы с неравномерным заполнением, например таблица «Расписание», которая имеет следующий вид:
Целостность базы данных
Це́лостность ба́зы да́нных (database integrity) — соответствие имеющейся в базе данных информации её внутренней логике, структуре и всем явно заданным правилам. Каждое правило, налагающее некоторое ограничение на возможное состояние базы данных, называется ограничением целостности (integrity constraint). Примеры правил: вес детали должен быть положительным; количество знаков в телефонном номере не должно превышать 25; возраст родителей не может быть меньше возраста их биологического ребёнка и т.д.
Задача аналитика и проектировщика базы данных — возможно более полно выявить все имеющиеся ограничения целостности и задать их в базе данных.
Целостность БД не гарантирует достоверности содержащейся в ней информации, но обеспечивает по крайней мере правдоподобность этой информации, отвергая заведомо невероятные, невозможные значения. Таким образом, не следует путать целостность БД с достоверностью БД. Достоверность (или истинность) есть соответствие фактов, хранящихся в базе данных, реальному миру. Очевидно, что для определения достоверности БД требуется обладание полными знаниями как о содержимом БД, так и о реальном мире. Для определения целостности БД требуется лишь обладание знаниями о содержимом БД и о заданных для неё правилах. Поэтому СУБД может (и должна) контролировать целостность БД, но принципиально не в состоянии контролировать достоверность БД. Контроль достоверности БД может быть возложен только на человека, да и то в ограниченных масштабах, поскольку в ряде случаев люди тоже не обладают полнотой знаний о реальном мире.
Итак, БД может быть целостной, но не достоверной. Возможно и обратное: БД может быть достоверной, но не целостной. Последнее имеет место, если правила (ограничения целостности) заданы неверно.