Модели данных
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Модели данных
1.
Классификация
моделей
данных
Модель данных - это некоторая абстракция, которая, будучи приложима к
конкретным данным, позволяет пользователям и разработчикам трактовать их уже как
информацию, то есть сведения, содержащие не только данные, но и взаимосвязь
между
ними.
Физическая модель данных оперирует категориями, касающимися организации
внешней памяти и структур хранения, используемых в данной операционной среде. В
настоящий момент в качестве физических моделей используются различные методы
размещения данных, основанные на файловых структурах: это организация файлов
прямого и последовательного доступа, индексных файлов и инвертированных файлов,
файлов, использующих различные методы хеширования, взаимосвязанных файлов.
Физические модели данных, основанные на страничной организации, являются
наиболее
перспективными.
Инфологические и семантические модели отражают в естественной и удобной для
разработчиков и других пользователей форме информационно-логический уровень
абстрагирования, связанный с фиксацией и описанием объектов предметной области,
их
свойств
и
их
взаимосвязей.
Инфологические модели данных используются на ранних стадиях проектирования
для описания структур данных в процессе разработки приложения, а даталогические
модели
уже
Документальные
поддерживаются
модели
данных
конкретной
соответствуют
СУБД.
представлению
о
слабоструктурированной информации, ориентированной в основном на свободные
форматы
документов,
текстов
на
естественном
языке.
Тезаурусные модели основаны на принципе организации словарей, содержат
определенные языковые конструкции и принципы их взаимодействия в заданной
грамматике. Эти модели эффективно используются в системах-Переводчиках,
особенно многоязыковых переводчиках. Принцип хранения информации в этих
системах
и
подчиняется
тезаурусным
моделям.
Дескрипторные модели - самые простые из документальных моделей, они ши-роко
использовались на ранних стадиях использования документальных баз данных. В этих
моделях каждому документу соответствовал дескриптор - описатель. Этот дескриптор
имел
жесткую
структуру
и
описывал
документ
в
соответствии
с
теми
характеристиками, которые требуются для работы с документами в разрабатываемой
документальной БД. Например, для БД, содержащей описание патентов, дескриптор
содержал название области, к которой относился патент, номер патента, дату выдачи
патента и еще ряд ключевых параметров, которые заполнялись для каждого патента.
Обработка информации в таких базах данных велась исключительно по дескрипторам,
то есть по тем параметрам, которые характеризовали патент, а не по самому тексту
патента.
2.
Иерархическая
модель
данных
Типичным представителем иерархической модели данных является Information
Management System (IMS) фирмы IBM. Первая версия появилась в 1968 году. До сих
пор поддерживается много баз данных, что создает существенные проблемы с
переходом, как на новую технологию баз данных, так и на новую технику.
Иерархическая база данных состоит из упорядоченного набора деревьев; более
точно, из упорядоченного набора нескольких экземпляров одного типа дерева.
Тип дерева состоит из одного "корневого" типа записи и упорядоченного набора из
нуля или более типов поддеревьев (каждое из которых является некоторым типом
дерева). Тип дерева в целом представляет собой иерархически организованный набор
типов
записи.
Примером, иерархической организации данных, может служит представление
структуры любой организации в виде дерева отношений. Здесь тип Отдел является
предком для типов записей Начальник и Сотрудники, а Начальник и Сотрудники потомки
Отдел.
Между
типами
записи
поддерживаются
связи.
Все экземпляры данного типа потомка с общим экземпляром типа предка
называются близнецами. Для данной модели данных определен полный порядок
обхода
сверху
-
вниз,
слева
направо.
В IMS использовалась оригинальная и нестандартная терминология: "сегмент"
вместо
"запись",
а
под
"записью
БД"
понималось
все
дерево
сегментов.
Примерами типичных операторов манипулирования иерархически организованными
данными могут быть:
Найти указанное дерево БД;
Перейти от одного дерева к другому;
Перейти от одной записи к другой внутри дерева (например, от отдела к
первому сотруднику);
Перейти от одной записи к другой в порядке обхода иерархии;
Вставить новую запись в указанную позицию;
Удалить текущую запись.
Автоматически поддерживается целостность ссылок между предками и потомками.
Основное правило: никакой потомок не может существовать без своего родителя.
Заметим, что аналогичное поддержание целостности по ссылкам между записями, не
входящими
в
одну
иерархию,
не
поддерживается.
В иерархических системах поддерживалась некоторая форма представлений БД на
основе
ограничения
3.
Сетевые
иерархии.
системы
Типичным представителем является Integrated Database Management System (IDMS)
компании Cullinet Software, Inc., предназначенная для использования на машинах
основного класса фирмы IBM под управлением большинства операционных систем.
Архитектура системы основана на предложениях Data Base Task Group (DBTG)
Комитета по языкам программирования Conference on Data Systems Languages
(CODASYL), организации, ответственной за определение языка программирования
Кобол. Отчет DBTG был опубликован в 1971 г., а в 70-х годах появилось несколько
систем,
среди
которых
IDMS.
Сетевой подход к организации данных является расширением иерархического. В
иерархических структурах запись-потомок должна иметь в точности одного предка; в
сетевой
структуре
данных
потомок
может
иметь
любое
число
предков.
Сетевая БД состоит из набора записей и набора связей между этими записями, а
если говорить более точно, из набора экземпляров каждого типа из заданного в схеме
БД набора типов записи и набора экземпляров каждого типа из заданного набора типов
связи.
Тип связи определяется для двух типов записи: предка и потомка. Экземпляр типа
связи состоит из одного экземпляра типа записи предка и упорядоченного набора
экземпляров типа записи потомка. Для данного типа связи L с типом записи предка P и
типом записи потомка C должны выполняться следующие два условия: <0l>
Каждый экземпляр типа P является предком только в одном экземпляре L.
Каждый экземпляр C является потомком не более чем в одном экземпляре L.
На формирование типов связи не накладываются особые ограничения; возможны,
например, следующие ситуации:
Тип записи потомка в одном типе связи L1 может быть типом записи предка в
другом типе связи L2 (как в иерархии).
Данный тип записи P может быть типом записи предка в любом числе типов
связи.
Данный тип записи P может быть типом записи потомка в любом числе типов
связи.
Может существовать любое число типов связи с одним и тем же типом записи
предка и одним и тем же типом записи потомка; и если L1 и L2 - два типа связи с
одним и тем же типом записи предка P и одним и тем же типом записи потомка
C, то правила, по которым образуется родство, в разных связях могут
различаться.
Типы записи X и Y могут быть предком и потомком в одной связи и потомком
и предком - в другой.
Предок и потомок могут быть одного типа записи.
Для манипулирования данными используется следующий примерный набор
операций:
Найти конкретную запись в наборе однотипных записей;
Перейти от предка к первому потомку по некоторой связи;
Перейти к следующему потомку в некоторой связи;
Перейти от потомка к предку по некоторой связи;
Создать новую запись;
Уничтожить запись;
Модифицировать запись;
Включить в связь;
Исключить из связи;
Переставить в другую связь и т.д.
В принципе поддержание ограничения целостности не требуется, но иногда требуют
целостности
по
4.
ссылкам
(как
в
иерархической
Инвертированные
модели).
списки
К числу наиболее известных и типичных представителей таких систем относятся
Datacom/DB компании Applied Data Research, Inc. (ADR), ориентированная на
использование на машинах основного класса фирмы IBM, и Adabas компании Software
AG.
Организация доступа к данным на основе инвертированных списков используется
практически во всех современных реляционных СУБД, но в этих системах
пользователи не имеют непосредственного доступа к инвертированным спискам
(индексам). Кстати, когда мы будем рассматривать внутренние интерфейсы
реляционных СУБД, вы увидите, что они очень близки к пользовательским
интерфейсам
систем,
основанных
на
инвертированных
списках.
База данных, организованная с помощью инвертированных списков, похожа на
реляционную, но с тем отличием, что хранимые таблицы и пути доступа к ним видны
пользователям. При этом:
1.
Строки
таблиц
упорядочены
системой
в
некоторой
физической
последовательности.
2.
Физическая упорядоченность строк всех таблиц может определяться и для
всей БД (так делается, например, в Datacom/DB).
3.
Для каждой таблицы можно определить произвольное число ключей поиска,
для которых строятся индексы. Эти индексы автоматически поддерживаются
системой, но явно видны пользователям.
Для манипулирования данными поддерживаются два класса операторов:
1.
Операторы, устанавливающие адрес записи, среди которых:
o
прямые поисковые операторы (например, найти первую запись таблицы
по некоторому пути доступа);
o
операторы, находящие запись в терминах относительной позиции от
предыдущей записи по некоторому пути доступа.
2.
Операторы над адресуемыми записями.
3.
Типичный набор операторов:
4.
LOCATE FIRST - найти первую запись таблицы T в физическом порядке;
возвращает адрес записи;
5.
LOCATE FIRST WITH SEARCH KEY EQUAL - найти первую запись таблицы
T с заданным значением ключа поиска K; возвращает адрес записи;
6.
LOCATE NEXT - найти первую запись, следующую за записью с заданным
адресом в заданном пути доступа; возвращает адрес записи;
7.
LOCATE NEXT WITH SEARCH KEY EQUAL - найти следующую запись
таблицы T в порядке пути поиска с заданным значением K; должно быть
соответствие между используемым способом сканирования и ключом K;
возвращает адрес записи;
8.
LOCATE FIRST WITH SEARCH KEY GREATER - найти первую запись
таблицы T в порядке ключа поиска K со значением ключевого поля, большим
заданного значения K; возвращает адрес записи;
9.
RETRIVE - выбрать запись с указанным адресом;
10.
UPDATE - обновить запись с указанным адресом;
11.
DELETE - удалить запись с указанным адресом;
12.
STORE - включить запись в указанную таблицу; операция генерирует адрес
записи.
Общие правила определения целостности БД отсутствуют. В некоторых системах
поддерживаются ограничения уникальности значений некоторых полей, но в основном
все возлагается на прикладную программу.