При использовании классической реляционной модели предполагается неделимость данных, хранящихся в полях записей таблиц. Таким образом, информация в таблице представлена в первой нормальной форме. Иногда бывают случаи, при которых такое ограничение препятствует эффективной работе приложений.
Основные понятия
Постреляционная модель данных является расширенной реляционной моделью, которая снимает ограничение неделимости хранящихся в записях таблиц данных.
При использовании постреляционной модели данных допускается создание многозначных полей – полей, значения которых допускают подзначения. Набор значений многозначных полей представляет собой самостоятельную таблицу, встроенную в основную таблицу.
Рассмотрим для сравнения представление информации о накладных и товарах с помощью реляционной (рисунок 1, а) и постреляционной (рисунок 1, б) моделей. Таблица НАКЛАДНЫЕ содержит записи Номер_накладной и Номер_покупателя.
а)
б)
Таблица НАКЛАДНЫЕ_ТОВАРЫ содержит данные о каждой накладной:
- записи Номер_накладной,
- Название_товара
- Количество_товара.
Таблица НАКЛАДНЫЕ связана с таблицей НАКЛАДНЫЕ_ТОВАРЫ по полю Номер_накладной.
В сравнении с реляционной моделью, постреляционная модель данных позволяет хранить данные более эффективно, причем при обработке не нужно выполнять соединение данных из двух таблиц.
Постреляционная модель кроме того, что позволяет обеспечить вложенность полей, также позволяет поддерживать ассоциированные многозначные поля (множественные группы).
Ассоциацией называют совокупность ассоциированных полей.
При этом в строке первые значения всех столбцов ассоциации соответствуют друг другу. Аналогично являются соответствующими все последующие значения столбцов.
Длина полей и их число в записях таблицы не должны быть обязательно постоянными. Т.е. структура данных и таблиц обладает достаточно большой гибкостью.
Т.к. при построении постреляционной модели допускается хранение в таблицах ненормализованных данных, это приводит к возникновению проблемы обеспечения целостности и непротиворечивости информации. Данную проблему решает включение в СУБД механизмов, подобных процедурам, которые хранятся в клиент-серверных системах.
Чтобы описать функции контроля значений в полях существует возможность создания процедуры (коды конверсии и корреляции), которые автоматически вызываются до или после обращения к данным. Выполнение кодов корреляции начинается сразу после чтения данных до их обработки. Выполнение кодов конверсии, наоборот, начинается после обработки данных.
Языком запросов, используемым в постреляционных моделях, является несколько расширенный SQL, который позволяет получать сложные объекты из одной таблицы без выполнения операции соединения.
Преимущества и недостатки модели
Преимуществом использования постреляционной модели является наличие возможности представления целого набора связанных реляционных таблиц в одной постреляционной таблице. Это приводит к обеспечению высокой наглядности представления данных и повышению эффективности обработки информации.
Недостаток постреляционной модели состоит в сложности решения проблемы обеспечения целостности и непротиворечивости информации, которая хранится в таблицах.
К СУБД, которые основаны на постреляционной модели данных, относятся системы Bubba и Dasdb.
Разработаны коммерческие постреляционные СУБД. Наиболее известные из них – системы Universe, Pick и Adabas.