посредством концептуального внутреннего отображения.
Оно позволяет СУБД найти физическую запись или набор записей на физическом уровне хранения, которые образуют логическую запись в концептуальной схеме, с учетом любых ограничений, установленных для выполняемых над данной логической записью операций. Оно позволяет обнаружить любые различия в именах объектов, именах атрибутов, порядке следования атрибутов, их типах данных и т.д. Наконец, каждая внешняя схема связана с концептуальной схемой с помощью
внешне концептуального отображения. С его помощью СУБД может отображать имена пользовательского представления на соответствующую часть концептуальной схемы.
Важно различать описание базы данных и саму базу данных. Описанием базы данных является схема базы данных.
Схема создается с помощью языка определения данных конкретной целевой СУБД. Это язык относительно низкого уровня, а необходимо описание схемы на некотором, более высоком уровне, которое будем называть моделью данных.
МОДЕЛЬ ДАННЫХ – это интегрированный набор понятий для описания данных, связей между ними и ограничений, накладываемых на данные в некоторой организации.
Модель является представлением «реального мира» объектов и событий, а также существующих связей между ними. Это некоторая абстракция, в которой акцент делается на самых важных и неотъемлемых аспектах деятельности организации, а все второстепенные свойства игнорируются. Модель данных можно рассматривать как сочетание трех указанных ниже компонентов.
Структурная часть, т.е. набор правил, по которым может быть построена база данных.
Управляющая часть, определяющая типы допустимых операций с данными (операции обновления и
31
извлечения данных, а также операции изменения структуры базы данных).
Набор ограничений поддержки целостности данных (необязательно), гарантирует корректность используемых данных.
Цель построения модели данных заключается в представлении данных в понятном виде.
Для отображения трехуровневой архитектуры можно идентифицировать следующие три связанные модели данных:
Внешнюю модель данных, отображающую представления каждого существующего в организации типа пользователей, которую иногда называют предметной областью.
Концептуальную модель данных, отображающую логическое представление о данных, независимое от выбранной СУБД.
Внутреннюю модель данных, отображающую концептуальную схему определенным образом, понятным выбранной целевой СУБД.
Существует много моделей данных. Они подразделяются на три категории:
Объектные,
Модели данных на основе записей,
Физические модели данных.
Первые две используются для описания данных на концептуальном и внешнем уровнях, а последняя – на внутреннем уровне.
При построении объектных моделей используются такие понятия как сущность, атрибуты и связи.
Ниже перечислены некоторые наиболее общие типы объектных моделей данных:
Модель типа «сущность-связь», или ER –модель
Семантическая модель
Функциональная модель
Объектно-ориентированная модель.
32
Остановимся более подробно на моделях, основанных на записях.
В модели на основе записей база данных состоит из нескольких записей фиксированного формата, которые могут иметь разные типы. Каждый тип записи определяет фиксированное количество полей, каждое из которых имеет фиксированную длину. Существует три основных типа логических моделей данных на основе записей:
реляционная модель данных,
сетевая модель данных,
иерархическая модель данных.
Иерархическая модель.
Иерархическая модель является ограниченным подтипом сетевой модели. В ней данные также представлены как коллекция записей, а связи – как наборы. Однако, в иерархической модели узел может иметь только одного родителя. Иерархическая модель может быть представлена как древовидный граф с записями в виде узлов и множествами в виде ребер.
Большинство коммерческих систем основано на реляционной парадигме, тогда как самые первые системы баз данных строились на основе сетевой или иерархической модели. Если в реляционных системах для обработки информации в базе данных принят декларативный подход (т. е. они указывают, какие данные следует извлечь), то в сетевых и иерархических системах – навигационный подход (т. е. они указывают, как их следует извлечь). Таким образом, при работе с реляционной моделью независимость от данных обеспечивается в значительно большей степени.
Иерархическая БД состоит из упорядоченного набора деревьев; более точно, из упорядоченного набора нескольких экземпляров одного типа дерева.
Тип дерева состоит из одного «корневого» типа записи и упорядоченного набора из нуля или более типов поддеревьев
33
(каждое из которых является некоторым типом дерева). Тип дерева в целом представляет собой иерархически организованный набор типов записи.
Пример типа дерева (схемы иерархической БД): «Отдел»
|
|
№ |
Размер |
|
Средняя |
|
||
|
|
отдела |
отдела |
|
зарплата |
|
||
|
|
|
|
|
|
отдела |
|
|
«Начальник» |
|
|
|
|
|
|
|
|
«Сотрудники» |
1 |
|
|
|
|
|||
|
|
|
|
|
|
|
||
|
|
1 |
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
№ |
|
Имя |
|
Телефон |
|
|
|
|
начальника |
|
начальника |
начальника |
|
2 |
|||
№ |
Имя |
Телефон |
сотрудника |
сотрудника |
сотрудника |
Здесь запись «Отдел» является предком для записей «Начальник» и «Сотрудники», а записи «Начальник» и «Сотрудники» - потомки записи «Отдел». Между типами записи поддерживаются связи.
База данных с такой схемой могла бы выглядеть следующим образом (один экземпляр дерева):
34
|
|
|
«Отдел» |
|
|
|
|
|
|
|
|
|
№ 352 |
50 чел. |
6000 руб. |
||
«Начальник» |
|
|
|
«Сотрудник» |
|
|
|
|
|
|
|
№ 35201 |
Иванов |
|
52-07-13 |
|
|
№ 35206 |
Петров |
49-76-54 |
Все экземпляры данного типа потомка с общим экземпляром типа предка называются близнецами. Для БД определен полный порядок обхода – сверху - вниз, слева - направо.
Манипулирование данными в иерархической модели
Примерами типичных операторов манипулирования иерархически организованными данными могут быть следующие:
Найти указанное дерево БД (например, отдел 310);
Перейти от одного дерева к другому;
Перейти от одной записи к другой внутри дерева (например, от отдела - к первому сотруднику);
Перейти от одной записи к другой в порядке обхода иерархии;
Вставить новую запись в указанную позицию;
Удалить текущую запись.
Ограничения целостности иерархической модели
Автоматически поддерживается целостность ссылок между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя.
Заметим, что аналогичное поддержание целостности по
35