Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭУМКД_БД_1.doc
Скачиваний:
15
Добавлен:
23.09.2019
Размер:
4.19 Mб
Скачать

2.3.11. Консистентность данных

С понятием «ссылочной целостности» тесно связано понятие «консистентности данных».

Консистентность данных (data consistency, data validity) – согласованность данных друг с другом, целостность данных, а также внутренняя непротиворечивость.

Множество всех условий, налагаемых на данные определяется моделью (структурой) данных.

Данные представляют собой связанные отношениями узлы различного типа, и в модели данных могут быть оговорены условия: какие именно данные там могут хранится, и узлы каких типов могут быть связаны заданными в модели отношениями (связями).

Например, в базе данных людей, связь «родитель-ребёнок» направленная от узла «Родитель» к узлу «Ребёнок» подразумевает, что узел «Ребёнок» связан с «Родитель» либо как «дочь», либо как «сын», причём это непосредственно зависит от значения атрибута «пол» узла «Ребёнок».

Условия консистентности могут включать в себя указание того, какие значения могут принимать атрибуты узлов, какие отношения могут устанавливаться между узлами, каково минимальное и максимальное число отношений определённого типа, в котором может участвовать один узел, а также другие типы условий.

Условия целостности данных (integrity constraints) стали записывать в виде правил и ввели триггеры – процедуры, которые вызываются до и/или после выполнения запроса.

До запроса (триггер типа BEFORE) проходит проверка того, что данные имеют состояние, которое позволяет осуществить данный тип запроса.

После выполнения запроса (триггер типа AFTER) проверяется, что состояние базы данных удовлетворяет условиям целостности.

Если один из триггеров не срабатывает (или срабатывает с ошибкой), то транзакция откатывается (roll-back) (отменяется). Если же все триггеры сработали успешно, транзакция подтверждается (commit) (завершается).

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

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

Сейчас же мы рассмотрели основы этих вопросов и переходим к последовательному рассмотрению структуры БД…

2.4. Многоуровневая архитектура баз данных, понятие физического и логического уровней баз данных

2.4.1. Определения

Проектирование БД начинается с этапа «концептуального проектирования».

Концептуальное проектирование – это сбор, анализ и редактирование требований к данным. Для этого осуществляются следующие мероприятия:

  • обследование предметной области, изучение её информационной структуры;

  • выявление всех фрагментов предметной области, каждый из которых характеризуется представлением, информационными объектами и связями между ними, процессами над информационными объектами;

  • моделирование и интеграция всех представлений.

По окончании этапа концептуального проектирования мы получаем «концептуальную модель», инвариантную (нечувствительную) к структуре базы данных.

Эта модель будет нас интересовать на «инфологическом уровне» схемы, представленной на следующем рисунке.

Часто такая модель представляется в виде модели «сущность-связь».

Следующий этап – логическое проектирование.

Логическое проектирование – преобразование требований к данным в структуры данных.

На выходе этого этапа мы получаем СУБД-ориентированную структуру базы данных и спецификации прикладных программ.

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

Эта модель будет нас интересовать на «даталогическом уровне» схемы, представленной на следующем рисунке.

Следующий этап – физическое проектирование.

Физическое проектирование – определение особенности хранения данных, методов доступа и т.д.

На выходе этого этапа мы получаем «физическую модель» базы данных.

Эта модель будет нас интересовать на «физическом уровне» схемы, представленной на следующем рисунке.

Различие уровней представления проще понять из того, кем они реализуется и что на них реализуется:

  • концептуальный (инфологический) уровень

    • реализуется аналитиком (используется инфологическая модель «сущность-связь»);

    • формируются сущности;

    • формируются атрибуты;

    • формируются связи.

  • логический (даталогический) уровень

    • реализуется программистом;

    • определяются записи;

    • определяются элементы и типы данных;

    • определяются способы организации связей между записями.

  • физический уровень

    • реализуется администратором;

    • определяется группирование данных;

    • определяются индексы;

    • определяются методы доступа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]