- •Информация и данные
- •Основные понятия систем с базами данных
- •Пользователи информационной системы с БД
- •Требования к информационным системам с базами данных
- •Основные компоненты ИС с базами данных
- •Архитектура систем с базами данных. Понятие модели данных
- •Сущности и их свойства
- •Связи (отношения) между сущностями
- •Виды связей между сущностями
- •Еще о сущностях, их свойствах и связях между ними
- •Модели данных. Ранние подходы к организации баз данных
- •Основные понятия реляционной модели данных
- •Структуры данных реляционной модели. Реляционные отношения
- •Свойства отношений
- •Отсутствие в отношении одинаковых кортежей
- •Кортежи отношения не упорядочены (сверху вниз)
- •Атрибуты отношения не упорядочены (слева направо)
- •Значения всех атрибутов являются атомарными
- •Виды отношений
- •Реляционная база данных
- •Реляционная модель. Операции над данными
- •Реляционная алгебра
- •Пересечение отношений
- •Вычитание отношений
- •Декартово произведение отношений
- •Проекция
- •Выборка (ограничение)
- •Естественное соединение отношений
- •Деление
- •Реляционное исчисление
- •Примеры правильно построенных формул
- •Язык SQL
- •Отличие SQL от процедурных языков программирования
- •Формы и составные части SQL
- •Условия и терминология
- •Простейшие SELECT-запросы
- •Ограничения целостности в реляционной модели
- •Ограничения целостности уровня атрибута
- •Домены отношений
- •Отсутствующая информация или NULL-значения.
- •Ограничения целостности уровня кортежа
- •Ограничения целостности уровня отношения
- •Потенциальные, первичные, альтернативные ключи отношения
- •Потенциальные ключи и NULL-значения
- •Ограничения целостности уровня базы данных
- •Внешние ключи и NULL-значения
- •Правила ссылочной целостности
- •При обновлении кортежа в родительском отношении
- •При удалении кортежа в родительском отношении
- •При вставке кортежа в дочернее отношение
- •При обновлении кортежа в дочернем отношении
- •Средства обеспечения целостности данных в СУБД
- •Поддержка декларативных ограничений целостности в языке SQL
- •Проектирование базы данных
- •Функциональная зависимость
- •Нормализация отношений базы данных
- •Нормальные формы
- •Декомпозиция без потерь и функциональные зависимости
- •Первая и вторая нормальные формы.
- •Третья нормальная форма.
- •Многозначные зависимости и четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Итоговая схема процедуры нормализации
- •Структуры хранения данных и методы доступа
- •Хранение отношений и доступ к хранимым данным
- •Индексирование
- •Управление транзакциями и целостность баз данных
- •Транзакции и параллелизм
- •Проблемы, возникающие при параллельном выполнении транзакций
- •Проблема потери результатов обновления
- •Проблемы несовместимого анализа
- •Несовместимый анализ – неповторяемое считывание
- •Несовместимый анализ – фиктивные элементы (фантомы)
- •Собственно несовместимый анализ
- •Конфликты между транзакциями
- •Методы сериализации транзакций
- •Решение проблем параллелизма при помощи блокировок
- •Проблема потери результатов обновления
- •Проблема несовместимого анализа. Неповторяемое считывание
- •Фиктивные элементы (фантомы)
- •Собственно несовместимый анализ
- •Уровни изоляции. Объекты синхронизационных блокировок
- •Предикатные синхронизационные блокировки
- •Метод временных меток
- •Уровни изоляции.
- •Синтаксис операторов SQL, определяющих уровни изоляции
3.Архитектура систем с базами данных. Понятие модели данных
Как уже говорилось выше, для нормальной работы информационных систем с базами данных особенно важно обеспечение независимости прикладных программ от данных, точнее от формы их представления. В основе обеспечения такой независимости лежит следующая идея: пользователям системы требуется информационное содержание данных, а не детали их представления и размещения в памяти компьютерной системы. В связи с этим вводится концептуально важное понятие модели данных. Модель данных позволяет представлять пользователям информационное содержание базы данных, опуская подробности организации физического хранения данных. Появление в начале 70-х годов термина модель данных (в приложении к базам данных) связывают с именем американского математика Е.Ф. Кодда (E.F. Codd), внесшего большой вклад в развитие информационных систем с базами данных.
Схематично место модели данных можно представить следующим образом
(рис. 3.1).
Предметная |
Модель |
Физическая |
область |
данных |
база данных |
Это отображение должно реализовываться средствами СУБД
Рис. 3.1. Преобразование информации при отображении предметной области в модель данных и физическую базу данных
Под моделью данных понимают совокупность правил порождения структур данных в базах данных, операций над ними, а также ограничений целостности, определяющих допустимые связи и значения данных, последовательности их изменения.
При последующем изложении, говоря о модели данных, мы будем иметь в виду эти три компоненты модели данных:
•структуру данных,
•операции над данными,
20
• ограничения целостности данных.
На рисунке 3.1 модель данных представляет собой форму представления или отображения данных более высокоуровневую, чем это имеет место на уровне физического хранения данных на устройстве памяти.
Для работы с данными на уровне модели, в ней должны быть реализованы соответствующие языковые средства для описания и манипулирования данными. Запросы к данным в прикладных программах должны выражаться с помощью этих языков в терминах принятой модели данных, то есть прикладной программист и пользователи работают с записями данных на уровне соответствующей модели данных, а не в категориях, связанных с размещением данных на устройствах памяти.
Для осуществления преобразования формы представления данных между уровнями, соответствующими модели данных и физической базы данных, СУБД должна располагать информацией о структуре записей данных на уровне модели и структуре хранимых записей физической базы.
Следует, однако, иметь в виду, что в современных ЭВМ на самом деле СУБД не работает непосредственно с физическими устройствами долговременного хранения информации (с физической базой данных). Реально СУБД функционирует в среде той или иной операционной системы (ОС) и для работы с физическими данными использует соответствующие средства операционной системы, а именно средства управления файлами. С помощью этого в ЭВМ обеспечивается относительная независимость операций обработки данных от конкретных технических средств, предназначенных для их хранения.
Таким образом, фактически в системе вводится еще один уровень представления данных, который можно назвать внутренней моделью базы данных (ВМД). Соответственно, картина преобразования данных приобретает следующий вид.
Модель ↔ Внутренняя модель ↔Физическая база данных
Система управления базой данных обеспечивает доступ к записям внутренней модели через соответствующие запросы к файловой системе ОС. Во внутренней модели база данных представлена в виде совокупности файлов, для которых известна структура хранимых записей, определены соответствующие служебные поля, реализующие необходимые связи между записями, и т.д.
Таким образом, формируется двухуровневая архитектура
информационной системы с базой данных представленная на рисунке 3.2. Приведенная двухуровневая схема решает вопрос обеспечения
независимости базы данных от используемых технических средств. Однако существенным недостатком двухуровневой является то, что в этом случае каждый внешний пользователь вынужден работать со всем информационным содержимым базы данных, представленным моделью данных.
21
Пользователь |
Пользователь |
Пользователь |
Пользователь |
1 |
2 |
3 |
4 |
Модель данных
Рис. 3.2. Двухуровневая архитектура ИС с БД
При этом следует учитывать следующие обстоятельства.
•Во-первых, каждому отдельному пользователю в большинстве случаев реально требуется доступ к небольшой, вполне определенной части данных, хранимых в базе данных.
•Во-вторых, необходимое пользователю логическое представление требуемой ему части данных может отличаться от логического представления, принятого в модели данных (единственное общее представление не может одинаково успешно удовлетворить требованиям разных пользователей).
•В-третьих, необходимо обеспечивать дифференцированное управление уровнями доступа пользователей к подмножествам данных, защиту
данных от несанкционированного доступа к ним.
Указанные проблемы могут быть решены путем введения в архитектуру информационной системы еще одного (третьего) уровня логического представления данных, так называемой внешней модели данных (ВМД). Рассмотренный выше на рисунке 3.2 уровень, названный Модель данных, в котором реализуется полный охват всего содержимого базы данных, в этом случае преобразуется в уровень так называемой концептуальной модели данных (КМД). Между внешней и концептуальной моделями данных также должно быть реализовано необходимое отображение.
Внешняя |
↔ |
Концептуальная |
↔ |
Внутренняя |
↔ |
Физическая |
модель |
|
модель |
|
модель |
|
база данных |
|
|
|
|
|
|
|
22
Трехуровневая архитектура информационной системы с базой данных представлена на рисунке 3.3.
Пользователь |
Пользователь |
Пользователь |
Пользователь |
Пользователь |
А1 |
А2 |
Б1 |
Б2 |
Б3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Внешнее |
|
|
|
|
|
Внешнее |
|
|
||||
представление |
|
|
|
|
представление |
|
|
|||||
|
|
|
|
|
||||||||
A |
|
|
|
|
|
Б |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Отображение |
|
Отображение |
||||||||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
СУБД |
|
|
|
|
Концептуальное |
||||||||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
представление |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
Отображение
Рис. 3.3. Трехуровневая архитектура ИС с БД
Внешний уровень – это индивидуальный уровень пользователей. Таким пользователем может быть прикладной программист или внешний пользователь. Этому уровню соответствует внешнее представление базы данных. Внешнее представление – это содержимое базы данных, каким его видит определенный пользователь (собственно для этого пользователя внешнее представление и есть база данных).
Концептуальный уровень – это представление всей информации базы данных, но в более абстрактной форме по сравнению с внутренним уровнем (и с физическим способом хранения данных). Однако концептуальное представление существенно отличается от способа представления данных какому-либо отдельному пользователю (внешнего представления). Упрощенно можно сказать, что концептуальное представление данных это их представление такими, «какие они есть на самом деле», а не такими, какими вынужден или желает их видеть конкретный пользователь. Концептуальное представление описывается с помощью концептуальной схемы, которая включает определение каждого типа концептуальных записей, соответствующих объектам предметной области. Концептуальная схема использует соответствующий этому уровню язык определения данных. Чтобы
23
добиться действительной независимости данных, нельзя включать в определения концептуального языка любое рассмотрение структуры хранения данных или методы доступа к ним. Определения концептуального языка должны относиться только к содержанию информации.
Концептуальное представление – это представление всего содержимого базы данных, а концептуальная схема – это определение или описание самого такого представления. Кроме того, определения в концептуальной схеме могут включать определения связанных с данными дополнительных средств, таких как средства безопасности или правила для обеспечения целостности данных.
Внутреннему уровню архитектуры соответствует внутреннее представление данных. Внутреннее представление – это представление всей базы данных нижнего уровня. Оно состоит из множества экземпляров хранимых записей. Внутреннее представление так же, как внешнее и концептуальное, не совпадает с данными на физическом уровне, так как в нем не рассматриваются физические записи (блоки или страницы), не рассматриваются физические области устройств хранения, такие как цилиндры, дорожки и т.д. Другими словами, внутреннее представление предполагает бесконечное линейное адресное пространство, в котором размещаются хранимые записи данных. Подробности того, как это линейное адресное пространство записей отображается на физическое устройство хранения, существенно зависит от конкретной системы и, поэтому умышленно не включаются в архитектуру базы данных.
Внутреннее представление описывается с помощью внутренней схемы, которая определяет не только различные типы хранимых записей, поля из которых состоят записи, но также существующие индексы, способы представления хранимых полей, физическую последовательность хранимых записей и т.д. Вместо терминов внутреннее представление и внутренняя схема
обычно используют более понятные термины хранимая база данных и определение структуры хранения.
Наличие нескольких уровней моделей представления данных порождает необходимость отображения (mapping) формы данных, соответствующей конкретному уровню, в формы других уровней. Из рисунка 3.3 видно, что в трехуровневой архитектуре необходимо осуществлять преобразование формы представления данных при отображении между внешним и концептуальным уровнями и при отображении между концептуальным и внутренним уровнями.
Кроме названных трех уровней абстрагирования, при проектировании информационных систем с базами данных используют еще один, предшествующий этим трем. Модель этого уровня должна выражать информацию о предметной области в виде не зависимом от конкретной СУБД. Это чисто информационный уровень абстрагирования, он связан с фиксацией и описанием выделенных сведений о предметной области, изучением и описанием информационных потребностей пользователей. Модель этого уровня называется инфологической моделью предметной области, а этап ее
24
разработки называется этапом инфологического проектирования базы данных.
Задачей этого этапа проектирования является получение семантических (смысловых) моделей, отражающих информационное содержание конкретной предметной области.
Концептуальная инфологическая модель предметной области призвана обеспечить прочную и долговременную работу всей системы, выдерживая, возможно, даже замену одной используемой СУБД на другую.
Задачей следующего, датологического этапа проектирования является организация данных, выделенных на предыдущем этапе проектирования, в форму, принятую в конкретной выбранной СУБД.