Целостность и сохранность БД
Любое хранимое в БД значение любого семантически значимого атрибута в любой момент времени должно быть истинным значением характеристики соответствующего объекта ПО. Текущее состояние БД является целостным, если возможна осмысленная интерпретация его в терминах ПО. Существуют ограничения целостности (ОЦ) данных. Внешние ОЦ – это обусловленные требованиями конкретной ПО правила, соблюдение которых обеспечивает интерпретируемость хранимых данных. Все БД, основанные на РМД, кроме специфических правил (внешних ОЦ), подчиняются еще общим правилам целостности. Эти правила называются внутренними ОЦ РМД. Выделяют три разновидности внутренних ОЦ: n целостность домена. Правило целостности домена: всякий атрибут может принимать значения только из своего домена. n целостность сущности. Правило целостности сущности: ни один компонент первичного ключа отношения не может принимать неопределенное значение. n ссылочная целостность. Правило ссылочной целостности: ни в какой момент времени в базе данных не может быть значений ссылающегося ключа, которых нет среди существующих значений родительского ключа.
15.Проектирование баз данных. Проектирование с использованием метода сущность – связь, средства поддержки проектирования (ERWin). Концептуальная модель должна: n быть точной и однозначной; n адекватно отражать природу данных; n не зависеть от локальных интерпретаций данных (внешних моделей), обусловленных различными аспектами их использования. Основы концептуального моделирования заложены американским исследователем П. Ченом, предложившим в 1976 году так называемую модель “сущность–связь” (Entity–Relationship, ER-модель). В концептуальной модели объекту ПО соответствует сущность, а свойству объекта – атрибут. Атрибут - имя, принимающее значения на некотором множестве возможных значений. Сущность - имя, поставленное в соответствие набору атрибутов. Связь есть отношение, определенное на декартовом произведении множеств допустимых значений возможных ключей связанных сущностей и собственных атрибутов. Соединение избирательное (идентифицирующее), если переданный ему внешний ключ полностью входит в какой-либо возможный ключ потомка. При обратном условии соединение неизбирательное (неидентифицирующее). Ключ – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся. Каждая сущность обладает хотя бы одним возможным ключом. Один из них принимается за первичный ключ (уникальный). При выборе первичного ключа следует отдавать предпочтение несоставным ключам или ключам, составленным из минимального числа атрибутов. Нецелесообразно также использовать ключи с длинными текстовыми значениями (предпочтительнее использовать целочисленные атрибуты). Внешние ключи: Если сущность С связывает сущности А и В, то она должна включать внешние ключи, соответствующие первичным ключам сущностей А и В. Если сущность В обозначает сущность А, то она должна включать внешний ключ, соответствующий первичному ключу сущности А. При построении инфологических моделей можно использовать язык ER-диаграмм (от англ. Entity-Relationship, т.е. сущность-связь). В них сущности изображаются помеченными прямоугольниками, ассоциации – помеченными ромбами или шестиугольниками, атрибуты – помеченными овалами, а связи между ними – ненаправленными ребрами, над которыми может проставляться степень связи (1 или буква, заменяющая слово "много") и необходимое пояснение. Между двумя сущностям, например, А и В возможны четыре вида связей. Первый тип – связь ОДИН-К-ОДНОМУ (1:1): в каждый момент времени каждому представителю (экземпляру) сущности А соответствует 1 или 0 представителей сущности В: Второй тип – связь ОДИН-КО-МНОГИМ (1:М): одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В. Так как между двумя сущностями возможны связи в обоих направлениях, то существует еще два типа связи МНОГИЕ-К-ОДНОМУ (М:1) и МНОГИЕ-КО-МНОГИМ (М:N). Существуют три основные класса сущностей: стержневые, ассоциативные и характеристические, а также подкласс ассоциативных сущностей – обозначения. Стержневая сущность (стержень) – это независимая сущность. Ассоциативная сущность (ассоциация) – это связь вида "многие-ко-многим" ("-ко-многим" и т.д.) между двумя или более сущностями или экземплярами сущности. Ассоциации рассматриваются как полноправные сущности: · они могут участвовать в других ассоциациях и обозначениях точно так же, как стержневые сущности; · могут обладать свойствами, т.е. иметь не только набор ключевых атрибутов, необходимых для указания связей, но и любое число других атрибутов, характеризующих связь. Характеристическая сущность (характеристика) – это связь вида "многие-к-одной" или "одна-к-одной" между двумя сущностями (частный случай ассоциации). Обозначающая сущность или обозначение – это связь вида "многие-к-одной" или "одна-к-одной" между двумя сущностями и отличается от характеристики тем, что не зависит от обозначаемой сущности.
|